summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--community-testing/binutils-avr/PKGBUILD72
-rw-r--r--community-testing/lilypond/PKGBUILD43
-rw-r--r--community-testing/lilypond/lilypond.install48
-rw-r--r--community-testing/lilypond/texlive-workaround.patch88
-rw-r--r--community-testing/qtcreator/PKGBUILD52
-rw-r--r--community-testing/qtcreator/qtcreator.desktop10
-rw-r--r--community-testing/qtcreator/qtcreator.install12
-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/acpitool/PKGBUILD32
-rw-r--r--community/acpitool/linux-3.0.patch18
-rw-r--r--community/acpitool/sysfs-battery.patch52
-rw-r--r--community/adesklets/PKGBUILD53
-rw-r--r--community/adesklets/adesklets.install31
-rw-r--r--community/adesklets/fontconfig-2.4.patch50
-rw-r--r--community/adesklets/posix_signal.patch81
-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/PKGBUILD34
-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/PKGBUILD41
-rw-r--r--community/aide/aide.conf146
-rw-r--r--community/aircrack-ng/ChangeLog66
-rw-r--r--community/aircrack-ng/PKGBUILD91
-rw-r--r--community/alleyoop/PKGBUILD35
-rw-r--r--community/alleyoop/alleyoop.install19
-rw-r--r--community/alltray/PKGBUILD27
-rw-r--r--community/alsa-tools/PKGBUILD40
-rw-r--r--community/alure/PKGBUILD35
-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/antiword/PKGBUILD34
-rw-r--r--community/antiword/antiword-helper13
-rw-r--r--community/antiword/antiword.install16
-rw-r--r--community/anyfs-tools/PKGBUILD23
-rw-r--r--community/apcupsd/PKGBUILD37
-rwxr-xr-xcommunity/apcupsd/apcupsd41
-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/apvlv/poppler-gdk.patch150
-rw-r--r--community/aqbanking/PKGBUILD27
-rw-r--r--community/arch/PKGBUILD27
-rw-r--r--community/aria2/PKGBUILD31
-rw-r--r--community/ario/PKGBUILD30
-rw-r--r--community/ario/ario.changelog33
-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/arp-scan/PKGBUILD26
-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/arptables/PKGBUILD38
-rw-r--r--community/arptables/arptables.rc58
-rw-r--r--community/arpwatch/ChangeLog3
-rw-r--r--community/arpwatch/PKGBUILD29
-rw-r--r--community/ascii/PKGBUILD32
-rw-r--r--community/asciijump/PKGBUILD32
-rw-r--r--community/asix-module/PKGBUILD31
-rw-r--r--community/asix-module/asix-module.install15
-rw-r--r--community/aspell-ca/PKGBUILD27
-rw-r--r--community/aspell-cs/PKGBUILD27
-rw-r--r--community/aspell-pl/PKGBUILD29
-rw-r--r--community/aspell-uk/PKGBUILD37
-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/atanks/PKGBUILD32
-rw-r--r--community/atop/PKGBUILD25
-rw-r--r--community/audex/PKGBUILD43
-rw-r--r--community/audex/audex.install11
-rw-r--r--community/audex/google_regex.patch14
-rw-r--r--community/audit/PKGBUILD59
-rwxr-xr-xcommunity/audit/auditd.rc55
-rw-r--r--community/audit/python2.patch11
-rw-r--r--community/augeas/PKGBUILD27
-rw-r--r--community/aumix/PKGBUILD39
-rw-r--r--community/aumix/aumix.desktop12
-rw-r--r--community/aumix/aumix.install13
-rw-r--r--community/autocutsel/PKGBUILD25
-rw-r--r--community/autocutsel/autocutsel.install20
-rw-r--r--community/autofs/0001-autofs-5.0.5-include-krb5-library.patch206
-rw-r--r--community/autofs/0002-autofs-5.0.5-remove-ERR_remove_state-openssl-call.patch59
-rw-r--r--community/autofs/PKGBUILD55
-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/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/PKGBUILD47
-rw-r--r--community/avifile/gcc.patch133
-rw-r--r--community/avifile/videodev.patch180
-rw-r--r--community/avrdude/PKGBUILD30
-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/bacula/PKGBUILD68
-rw-r--r--community/bacula/bacula-dir.rc.d41
-rw-r--r--community/bacula/bacula-fd.rc.d41
-rw-r--r--community/bacula/bacula-sd.rc.d41
-rw-r--r--community/bacula/bacula.install49
-rw-r--r--community/balsa/PKGBUILD44
-rw-r--r--community/balsa/balsa.install11
-rw-r--r--community/barrage/PKGBUILD30
-rw-r--r--community/barrage/barrage.changelog2
-rw-r--r--community/barrage/barrage.install11
-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/PKGBUILD29
-rw-r--r--community/bibletime/PKGBUILD31
-rw-r--r--community/bibletime/bibletime.install13
-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/bird/PKGBUILD75
-rw-r--r--community/bird/bird.conf3
-rw-r--r--community/bird/bird.rc34
-rw-r--r--community/bird/bird.service10
-rw-r--r--community/bird/bird6.service10
-rw-r--r--community/blackbox/PKGBUILD39
-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/blackbox/textpropertytostring-unconditional.patch28
-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/PKGBUILD43
-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/bonnie++/PKGBUILD29
-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/PKGBUILD69
-rw-r--r--community/btanks/btanks.install7
-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/btanks/gcc-4.6.patch26
-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/PKGBUILD31
-rw-r--r--community/busybox/busybox.install13
-rw-r--r--community/busybox/config1013
-rw-r--r--community/bwbar/PKGBUILD22
-rw-r--r--community/bwm-ng/PKGBUILD30
-rw-r--r--community/cabextract/PKGBUILD28
-rw-r--r--community/cadaver/ChangeLog3
-rw-r--r--community/cadaver/PKGBUILD25
-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/PKGBUILD73
-rwxr-xr-xcommunity/calibre/calibre-mount-helper28
-rw-r--r--community/calibre/calibre.install12
-rw-r--r--community/calibre/desktop_integration.patch68
-rw-r--r--community/camlp5/PKGBUILD77
-rw-r--r--community/canorus/PKGBUILD31
-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/PKGBUILD37
-rw-r--r--community/catdvi/texlive2008.patch58
-rw-r--r--community/ccd2iso/ChangeLog3
-rw-r--r--community/ccd2iso/PKGBUILD28
-rw-r--r--community/ccid/PKGBUILD32
-rw-r--r--community/cclive/PKGBUILD27
-rw-r--r--community/ccmalloc/PKGBUILD28
-rw-r--r--community/ccrtp/PKGBUILD34
-rw-r--r--community/ccrtp/gcc46.patch11
-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/PKGBUILD33
-rw-r--r--community/cdcd/cdcd-0.6.6-x86_64.patch11
-rw-r--r--community/cdcd/cdcd.install20
-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/PKGBUILD30
-rw-r--r--community/cdemu-daemon/60-vhba.rules1
-rw-r--r--community/cdemu-daemon/PKGBUILD40
-rw-r--r--community/cdemu-daemon/cdemud.conf12
-rw-r--r--community/cdemu-daemon/cdemud.install9
-rw-r--r--community/cdemu-daemon/cdemud.rc55
-rw-r--r--community/cdfs/PKGBUILD28
-rw-r--r--community/cdfs/cdfs-3.0.0.patch274
-rw-r--r--community/cdfs/cdfs.install11
-rw-r--r--community/cegui/PKGBUILD43
-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/PKGBUILD46
-rw-r--r--community/cgit/apache.example.conf25
-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/PKGBUILD90
-rw-r--r--community/cherokee/cherokee.logrotate9
-rwxr-xr-xcommunity/cherokee/cherokee.rc65
-rw-r--r--community/cherokee/fix-ctk-path-handler-match.patch16
-rw-r--r--community/chicken/PKGBUILD35
-rw-r--r--community/chmsee/PKGBUILD46
-rw-r--r--community/chmsee/chmsee4
-rw-r--r--community/chmsee/chmsee.install11
-rw-r--r--community/chntpw/PKGBUILD34
-rw-r--r--community/choqok/PKGBUILD35
-rw-r--r--community/choqok/choqok.install11
-rw-r--r--community/chrony/PKGBUILD30
-rwxr-xr-xcommunity/chrony/chrony37
-rw-r--r--community/chrootuid/PKGBUILD28
-rw-r--r--community/chrpath/PKGBUILD25
-rw-r--r--community/cksfv/PKGBUILD26
-rw-r--r--community/clamz/PKGBUILD31
-rw-r--r--community/clamz/clamz.install16
-rw-r--r--community/clanlib/PKGBUILD37
-rw-r--r--community/classpath/PKGBUILD62
-rw-r--r--community/clearsilver/PKGBUILD42
-rw-r--r--community/clearsilver/clearsilver-ruby-1.9.patch244
-rw-r--r--community/clementine/PKGBUILD35
-rw-r--r--community/clementine/clementine-0.7.1-fix-devicekit.patch11
-rw-r--r--community/clementine/clementine.install13
-rw-r--r--community/clewn/ChangeLog5
-rw-r--r--community/clewn/PKGBUILD23
-rw-r--r--community/clewn/clewn.install14
-rw-r--r--community/clipgrab/PKGBUILD31
-rw-r--r--community/clipgrab/clipgrab.desktop13
-rw-r--r--community/clucene/PKGBUILD31
-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/collectd/PKGBUILD76
-rw-r--r--community/collectd/install8
-rw-r--r--community/collectd/libperl.patch30
-rw-r--r--community/collectd/rc.d39
-rw-r--r--community/commoncpp2/PKGBUILD36
-rw-r--r--community/compiz-bcop/PKGBUILD29
-rw-r--r--community/compiz-fusion-plugins-extra/PKGBUILD34
-rw-r--r--community/compiz-fusion-plugins-main/PKGBUILD34
-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/PKGBUILD36
-rw-r--r--community/compizconfig-backend-kconfig4/PKGBUILD31
-rw-r--r--community/compizconfig-python/PKGBUILD25
-rwxr-xr-xcommunity/confuse/PKGBUILD23
-rw-r--r--community/conkeror-git/PKGBUILD56
-rw-r--r--community/conkeror-git/conkeror-git.install11
-rw-r--r--community/conkeror-git/conkeror.sh2
-rw-r--r--community/conkeror-git/conkeror_gimpfile.xpm2251
-rw-r--r--community/conntrack-tools/PKGBUILD42
-rw-r--r--community/conntrack-tools/conntrackd.conf3
-rw-r--r--community/conntrack-tools/conntrackd.rc34
-rw-r--r--community/converseen/PKGBUILD32
-rw-r--r--community/converseen/converseen.install11
-rw-r--r--community/convertlit/PKGBUILD31
-rw-r--r--community/coq/PKGBUILD36
-rw-r--r--community/corkscrew/ChangeLog3
-rw-r--r--community/corkscrew/PKGBUILD21
-rw-r--r--community/couchdb/PKGBUILD45
-rw-r--r--community/couchdb/couchdb.install22
-rw-r--r--community/couchdb/rc-script.patch49
-rw-r--r--community/courier-authlib/PKGBUILD68
-rw-r--r--community/courier-authlib/authdaemond.rc.d48
-rw-r--r--community/courier-authlib/courier-authlib.install32
-rw-r--r--community/courier-imap/PKGBUILD94
-rw-r--r--community/courier-imap/courier-imap.conf.d18
-rw-r--r--community/courier-imap/courier-imap.install16
-rw-r--r--community/courier-imap/courier-imap.pam5
-rw-r--r--community/courier-imap/courier-imap.rc.d62
-rw-r--r--community/courier-imap/imapd-ssl.rc.d47
-rw-r--r--community/courier-imap/imapd.rc.d47
-rw-r--r--community/courier-imap/pop3d-ssl.rc.d47
-rw-r--r--community/courier-imap/pop3d.rc.d47
-rw-r--r--community/courier-maildrop/PKGBUILD46
-rw-r--r--community/courier-mta/PKGBUILD143
-rw-r--r--community/courier-mta/courier-mta.conf.d18
-rw-r--r--community/courier-mta/courier-mta.install61
-rw-r--r--community/courier-mta/courier-mta.rc.d60
-rw-r--r--community/courier-mta/courier-webmail-cleancache.cron.hourly6
-rw-r--r--community/courier-mta/courier.rc.d45
-rw-r--r--community/courier-mta/esmtpd-msa.rc.d45
-rw-r--r--community/courier-mta/esmtpd-ssl.rc.d45
-rw-r--r--community/courier-mta/esmtpd.rc.d45
-rw-r--r--community/courier-mta/imapd-ssl.rc.d45
-rw-r--r--community/courier-mta/imapd.rc.d45
-rw-r--r--community/courier-mta/pop3d-ssl.rc.d45
-rw-r--r--community/courier-mta/pop3d.rc.d45
-rw-r--r--community/courier-mta/webmaild.rc.d45
-rw-r--r--community/cppcheck/PKGBUILD23
-rw-r--r--community/cpuburn/PKGBUILD30
-rw-r--r--community/cpuburn/cpuburn.patch41
-rw-r--r--community/cpulimit/PKGBUILD20
-rw-r--r--community/critter/PKGBUILD39
-rw-r--r--community/critter/critter-gcc43.patch69
-rw-r--r--community/critter/critter.desktop9
-rw-r--r--community/cross-arm-elf-binutils/PKGBUILD54
-rw-r--r--community/cross-arm-elf-gcc-base/PKGBUILD60
-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/PKGBUILD59
-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/PKGBUILD59
-rw-r--r--community/ctpl/PKGBUILD30
-rw-r--r--community/cuetools/PKGBUILD33
-rw-r--r--community/cuetools/cuetag.patch37
-rw-r--r--community/cuneiform/PKGBUILD36
-rw-r--r--community/cupsddk/PKGBUILD51
-rw-r--r--community/curlftpfs/PKGBUILD30
-rw-r--r--community/curlftpfs/ioerror.patch11
-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/cwiid/PKGBUILD43
-rw-r--r--community/cwiid/bluez4.patch11
-rw-r--r--community/cwiid/cwiid.install10
-rw-r--r--community/cython/PKGBUILD36
-rw-r--r--community/dante/PKGBUILD39
-rwxr-xr-xcommunity/dante/sockd.rc68
-rw-r--r--community/dar/ChangeLog3
-rw-r--r--community/dar/PKGBUILD37
-rw-r--r--community/darcs/PKGBUILD37
-rw-r--r--community/darkhttpd/PKGBUILD22
-rw-r--r--community/darkstat/PKGBUILD24
-rw-r--r--community/darktable/PKGBUILD46
-rw-r--r--community/darktable/darktable.install23
-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/PKGBUILD51
-rw-r--r--community/deadbeef/deadbeef.install14
-rw-r--r--community/deadbeef/ffmpeg.patch45
-rw-r--r--community/delegate/ChangeLog3
-rw-r--r--community/delegate/PKGBUILD31
-rw-r--r--community/delegate/delegate.install11
-rw-r--r--community/denemo/PKGBUILD26
-rw-r--r--community/devil/PKGBUILD33
-rw-r--r--community/devil/devil.install11
-rw-r--r--community/devil/libpng14.patch33
-rw-r--r--community/dfm/PKGBUILD22
-rw-r--r--community/dia/PKGBUILD48
-rw-r--r--community/dia/dia-overflow-fix.patch28
-rw-r--r--community/dia/dia.install13
-rw-r--r--community/dictd/PKGBUILD55
-rw-r--r--community/dictd/colorit.conf32
-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/PKGBUILD21
-rw-r--r--community/dillo/PKGBUILD28
-rw-r--r--community/directfb/PKGBUILD29
-rw-r--r--community/directfb/directfb.changelog40
-rw-r--r--community/discid/PKGBUILD20
-rw-r--r--community/distcc/PKGBUILD53
-rwxr-xr-xcommunity/distcc/distccd38
-rw-r--r--community/distcc/distccd.conf.d8
-rw-r--r--community/djview4/PKGBUILD37
-rw-r--r--community/djview4/install13
-rw-r--r--community/dmenu/PKGBUILD28
-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/PKGBUILD43
-rw-r--r--community/docky/docky.install30
-rw-r--r--community/dopewars/PKGBUILD47
-rw-r--r--community/dopewars/dopewars.install20
-rw-r--r--community/dosbox/PKGBUILD46
-rw-r--r--community/dosbox/dosbox.desktop10
-rw-r--r--community/dosbox/dosbox.pngbin0 -> 4691 bytes
-rw-r--r--community/dosbox/gcc46.patch12
-rw-r--r--community/driftnet/PKGBUILD25
-rw-r--r--community/drivel/PKGBUILD28
-rw-r--r--community/drivel/drivel.install13
-rw-r--r--community/dsniff/PKGBUILD36
-rw-r--r--community/dspam/PKGBUILD67
-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/PKGBUILD24
-rw-r--r--community/dumb/PKGBUILD50
-rw-r--r--community/duplicity/PKGBUILD36
-rw-r--r--community/duplicity/botobackend.patch13
-rw-r--r--community/dvdisaster/PKGBUILD36
-rw-r--r--community/dvdisaster/dvdisaster.desktop14
-rw-r--r--community/dvdstyler/PKGBUILD30
-rw-r--r--community/dvtm/PKGBUILD34
-rw-r--r--community/dvtm/config.h155
-rw-r--r--community/dwdiff/PKGBUILD24
-rw-r--r--community/dwm/PKGBUILD40
-rw-r--r--community/dwm/config.h102
-rw-r--r--community/dwm/dwm.desktop7
-rw-r--r--community/dwm/dwm.install4
-rw-r--r--community/dxpc/PKGBUILD22
-rw-r--r--community/dynamite/PKGBUILD20
-rw-r--r--community/dzen2/PKGBUILD37
-rwxr-xr-xcommunity/e-modules-extra-svn/PKGBUILD88
-rwxr-xr-xcommunity/e-svn/PKGBUILD72
-rw-r--r--community/e-svn/e-applications.menu154
-rw-r--r--community/e-svn/sysactions.patch13
-rw-r--r--community/e4rat/PKGBUILD32
-rwxr-xr-xcommunity/e_dbus-svn/PKGBUILD56
-rw-r--r--community/ebtables/PKGBUILD47
-rw-r--r--community/ebtables/ebtables.conf37
-rw-r--r--community/ebtables/ebtables.rc128
-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
-rw-r--r--community/efax-gtk/PKGBUILD33
-rw-r--r--community/efax-gtk/efax-gtk.install11
-rwxr-xr-xcommunity/efreet-svn/PKGBUILD55
-rw-r--r--community/egoboo/PKGBUILD49
-rw-r--r--community/egoboo/egoboo.desktop7
-rw-r--r--community/egoboo/egoboo.pngbin0 -> 956 bytes
-rw-r--r--community/eiciel/PKGBUILD29
-rw-r--r--community/eiciel/eiciel.install11
-rwxr-xr-xcommunity/eina-svn/PKGBUILD50
-rw-r--r--community/ejabberd/PKGBUILD44
-rw-r--r--community/ejabberd/ejabberd63
-rw-r--r--community/ejabberd/ejabberd.install24
-rw-r--r--community/ejabberd/ejabberd.logrotate12
-rw-r--r--community/ekg/PKGBUILD22
-rw-r--r--community/ekg2/PKGBUILD40
-rw-r--r--community/electricsheep/PKGBUILD35
-rw-r--r--community/electricsheep/electricsheep-ffmpeg.patch36
-rw-r--r--community/elementary-svn/PKGBUILD55
-rw-r--r--community/elinks/PKGBUILD60
-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/PKGBUILD33
-rw-r--r--community/emerald/deprecated_symbols.patch114
-rw-r--r--community/emerald/emerald.install14
-rwxr-xr-xcommunity/emesene/PKGBUILD55
-rw-r--r--community/emesene/emesene.install12
-rw-r--r--community/emesene/emesene.run2
-rw-r--r--community/emesene/setup.patch20
-rwxr-xr-xcommunity/emprint-svn/PKGBUILD56
-rw-r--r--community/encfs/PKGBUILD33
-rw-r--r--community/enet/PKGBUILD27
-rw-r--r--community/enigma/PKGBUILD29
-rw-r--r--community/enter/PKGBUILD23
-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/PKGBUILD36
-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/PKGBUILD36
-rw-r--r--community/etherape/PKGBUILD29
-rw-r--r--community/etl/PKGBUILD26
-rwxr-xr-xcommunity/evas-svn/PKGBUILD56
-rw-r--r--community/exim/ChangeLog29
-rw-r--r--community/exim/PKGBUILD71
-rw-r--r--community/exim/aliases35
-rwxr-xr-xcommunity/exim/exim42
-rw-r--r--community/exim/exim.Makefile1227
-rw-r--r--community/exim/exim.conf.d1
-rw-r--r--community/exim/exim.install25
-rw-r--r--community/exim/exim.logrotate6
-rw-r--r--community/expac/PKGBUILD26
-rw-r--r--community/ext3grep/PKGBUILD24
-rw-r--r--community/ext3grep/ext3grep.changelog3
-rw-r--r--community/ext4magic/PKGBUILD26
-rw-r--r--community/extrema/PKGBUILD43
-rw-r--r--community/extrema/extrema.desktop8
-rw-r--r--community/extrema/gcc46.patch15
-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/PKGBUILD35
-rw-r--r--community/fb-client/PKGBUILD27
-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/PKGBUILD35
-rw-r--r--community/fcgiwrap/LICENSE24
-rw-r--r--community/fcgiwrap/PKGBUILD40
-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/PKGBUILD33
-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/PKGBUILD27
-rw-r--r--community/ffmpeg2theora/ffmpeg2theora.changelog28
-rw-r--r--community/fftw2/PKGBUILD52
-rw-r--r--community/fgetty/ChangeLog3
-rw-r--r--community/fgetty/PKGBUILD25
-rw-r--r--community/filezilla/PKGBUILD37
-rw-r--r--community/filezilla/filezilla.install11
-rw-r--r--community/filezilla/gnutls-3.patch27
-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/PKGBUILD32
-rw-r--r--community/fish/fish.install15
-rw-r--r--community/fityk/PKGBUILD47
-rw-r--r--community/fityk/fityk.install11
-rw-r--r--community/flac123/ChangeLog3
-rw-r--r--community/flac123/PKGBUILD24
-rw-r--r--community/flam3/PKGBUILD25
-rw-r--r--community/flashrom/PKGBUILD29
-rw-r--r--community/fldiff/PKGBUILD31
-rw-r--r--community/fldiff/build-fix.patch31
-rw-r--r--community/fldiff/fldiff.install11
-rw-r--r--community/flickcurl/PKGBUILD25
-rw-r--r--community/flightgear-atlas/PKGBUILD32
-rw-r--r--community/flightgear-atlas/build-fix.patch448
-rw-r--r--community/flightgear/PKGBUILD32
-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.install13
-rw-r--r--community/floyd/PKGBUILD28
-rw-r--r--community/floyd/build-fix.patch30
-rw-r--r--community/fltk2/PKGBUILD33
-rw-r--r--community/fltk2/libpng14.patch12
-rw-r--r--community/flumotion/PKGBUILD40
-rw-r--r--community/flvstreamer/PKGBUILD21
-rw-r--r--community/fonteditfs/ChangeLog3
-rw-r--r--community/fonteditfs/PKGBUILD21
-rw-r--r--community/fotoxx/PKGBUILD26
-rw-r--r--community/fotoxx/fotoxx.install9
-rw-r--r--community/fox/PKGBUILD43
-rw-r--r--community/fpc/Makefile-mk382.diff174
-rw-r--r--community/fpc/PKGBUILD58
-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/PKGBUILD26
-rw-r--r--community/freedroid/freedroid.desktop8
-rw-r--r--community/freedroid/paraicon.pngbin0 -> 1000 bytes
-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/PKGBUILD47
-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/PKGBUILD44
-rw-r--r--community/freeradius/freeradius.install22
-rw-r--r--community/freeradius/krb5-build-fix.patch21
-rwxr-xr-xcommunity/freeradius/radiusd43
-rw-r--r--community/freerdp/PKGBUILD30
-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/PKGBUILD39
-rw-r--r--community/freewrl/build-fix.patch1201
-rw-r--r--community/frei0r-plugins/PKGBUILD30
-rw-r--r--community/fswebcam/PKGBUILD36
-rw-r--r--community/fuseiso/PKGBUILD33
-rw-r--r--community/fuseiso/fuseiso-20070708-largeiso.patch48
-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/galculator/PKGBUILD29
-rw-r--r--community/galculator/galculator.install10
-rw-r--r--community/gambas2/PKGBUILD950
-rw-r--r--community/gambas2/db.firebird.gcc-4.6.0-fix.patch35
-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.install12
-rw-r--r--community/gambas2/poppler-0.18.patch40
-rw-r--r--community/gambas3/PKGBUILD1097
-rw-r--r--community/gambas3/gambas3-runtime.install10
-rw-r--r--community/gambas3/gambas3-script.install15
-rw-r--r--community/gammu/PKGBUILD32
-rw-r--r--community/gammu/gammu.changelog72
-rw-r--r--community/garmindev/51-garmin.rules1
-rw-r--r--community/garmindev/PKGBUILD39
-rw-r--r--community/garmindev/garmindev.changelog8
-rw-r--r--community/garmindev/garmindev.install8
-rw-r--r--community/gavl/PKGBUILD29
-rw-r--r--community/gcc-avr/PKGBUILD59
-rw-r--r--community/gcolor2/PKGBUILD40
-rw-r--r--community/gcolor2/gcolor2-0.4-amd64.patch46
-rw-r--r--community/gcolor2/gcolor2.desktop10
-rw-r--r--community/gcompris/PKGBUILD36
-rw-r--r--community/gdal/PKGBUILD64
-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/PKGBUILD39
-rw-r--r--community/geany-plugins/geany-plugins.install15
-rw-r--r--community/geany/PKGBUILD43
-rw-r--r--community/geany/geany.install16
-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/PKGBUILD34
-rw-r--r--community/gecko-mediaplayer/firefox-8.patch48
-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/PKGBUILD33
-rw-r--r--community/gedit-plugins/gedit-plugins.install23
-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/PKGBUILD27
-rw-r--r--community/ghemical/ghemical.desktop13
-rw-r--r--community/gigedit/PKGBUILD32
-rw-r--r--community/giggle/PKGBUILD31
-rw-r--r--community/giggle/giggle.install13
-rw-r--r--community/gimmage/ChangeLog15
-rw-r--r--community/gimmage/PKGBUILD24
-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/PKGBUILD36
-rw-r--r--community/gitg/PKGBUILD36
-rw-r--r--community/gitg/gitg.install19
-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/glfw/PKGBUILD41
-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/PKGBUILD35
-rw-r--r--community/glom/glom.install15
-rw-r--r--community/gloox/PKGBUILD22
-rw-r--r--community/glpng/Makefile30
-rw-r--r--community/glpng/PKGBUILD37
-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/gluon/PKGBUILD32
-rw-r--r--community/gluon/gluon.install15
-rw-r--r--community/gmerlin-avdecoder/PKGBUILD26
-rw-r--r--community/gmerlin/PKGBUILD39
-rw-r--r--community/gmerlin/libpng.patch17
-rw-r--r--community/gmic/PKGBUILD53
-rw-r--r--community/gmic/opencv-buildfix.patch15
-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/PKGBUILD83
-rw-r--r--community/gnash/gentoo-ffmpeg-0.8.patch204
-rw-r--r--community/gnash/gnash-gtk.install12
-rw-r--r--community/gnash/xul8.patch44
-rw-r--r--community/gnofract4d/PKGBUILD30
-rw-r--r--community/gnofract4d/gnofract4d.install12
-rw-r--r--community/gnofract4d/imageIO.cpp.patch13
-rw-r--r--community/gnome-commander/PKGBUILD42
-rw-r--r--community/gnome-commander/gnome-commander.install22
-rw-r--r--community/gnome-do/PKGBUILD33
-rw-r--r--community/gnome-do/gnome-do.install25
-rw-r--r--community/gnome-mplayer/PKGBUILD33
-rw-r--r--community/gnome-mplayer/gnome-mplayer.install22
-rw-r--r--community/gnome-packagekit/PKGBUILD44
-rw-r--r--community/gnome-packagekit/arch.patch28
-rw-r--r--community/gnome-packagekit/gnome-packagekit.install19
-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-settings-daemon-updates/PKGBUILD42
-rw-r--r--community/gnome-settings-daemon-updates/arch.patch321
-rw-r--r--community/gnome-settings-daemon-updates/gnome-settings-daemon.install11
-rw-r--r--community/gnomesu/PKGBUILD30
-rw-r--r--community/gnonlin/PKGBUILD24
-rw-r--r--community/gnote/PKGBUILD33
-rw-r--r--community/gnote/gnote.install21
-rw-r--r--community/gnubiff-gtk/PKGBUILD31
-rw-r--r--community/gnubiff-gtk/build.patch23
-rw-r--r--community/gnubiff/PKGBUILD55
-rw-r--r--community/gnucap/PKGBUILD31
-rw-r--r--community/gnunet-gtk/PKGBUILD31
-rw-r--r--community/gnunet-gtk/drop_gtk2.patch11
-rw-r--r--community/gnunet/PKGBUILD38
-rw-r--r--community/gnunet/defaults.conf483
-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/PKGBUILD36
-rw-r--r--community/gnustep-base/ChangeLog6
-rw-r--r--community/gnustep-base/PKGBUILD36
-rw-r--r--community/gnustep-gui/ChangeLog2
-rw-r--r--community/gnustep-gui/PKGBUILD28
-rw-r--r--community/go/PKGBUILD95
-rw-r--r--community/go/go.install5
-rwxr-xr-xcommunity/go/go.sh3
-rw-r--r--community/gobby/ChangeLog3
-rw-r--r--community/gobby/PKGBUILD29
-rw-r--r--community/gocr/PKGBUILD33
-rw-r--r--community/gogglesmm/PKGBUILD30
-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/PKGBUILD27
-rw-r--r--community/goocanvas1/PKGBUILD26
-rwxr-xr-xcommunity/goocanvasmm/PKGBUILD32
-rw-r--r--community/google-gadgets/PKGBUILD158
-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/google-gadgets/wifi-types.patch36
-rw-r--r--community/gource/PKGBUILD28
-rw-r--r--community/gpac/PKGBUILD35
-rw-r--r--community/gpac/libpng14-infopp-null.patch12
-rw-r--r--community/gpac/openjpeg14.patch23
-rw-r--r--community/gpg-crypter/PKGBUILD36
-rw-r--r--community/gpg-crypter/gpg-crypter.desktop8
-rw-r--r--community/gphpedit/PKGBUILD29
-rw-r--r--community/gphpedit/gphpedit.install11
-rw-r--r--community/gpicview/PKGBUILD27
-rw-r--r--community/gprolog/PKGBUILD42
-rw-r--r--community/gpsbabel/PKGBUILD48
-rw-r--r--community/gpsdrive/PKGBUILD69
-rw-r--r--community/gpsdrive/gpsd-2.96.patch44
-rw-r--r--community/gpsdrive/gpsdrive.install4
-rw-r--r--community/gpsim/PKGBUILD23
-rw-r--r--community/gpsmanshp/PKGBUILD35
-rw-r--r--community/gputils/PKGBUILD27
-rw-r--r--community/gq/PKGBUILD23
-rw-r--r--community/gq/gq.install12
-rw-r--r--community/grace/PKGBUILD31
-rw-r--r--community/grafx2/PKGBUILD43
-rw-r--r--community/grafx2/grafx2.desktop12
-rw-r--r--community/grafx2/grafx2.install16
-rw-r--r--community/grass/PKGBUILD112
-rw-r--r--community/grass/grass.conf1
-rw-r--r--community/grass/grass.install6
-rw-r--r--community/grass/grass.sh4
-rw-r--r--community/gri/PKGBUILD30
-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/PKGBUILD27
-rw-r--r--community/gshutdown/PKGBUILD28
-rw-r--r--community/gsmartcontrol/PKGBUILD27
-rw-r--r--community/gsmartcontrol/gsmartcontrol.install11
-rw-r--r--community/gsoap/LICENSE163
-rw-r--r--community/gsoap/PKGBUILD34
-rw-r--r--community/gsql/PKGBUILD33
-rw-r--r--community/gsql/gsql.install24
-rw-r--r--community/gstm/PKGBUILD22
-rw-r--r--community/gstreamermm/PKGBUILD29
-rw-r--r--community/gstreamermm/gstreamermm.changelog9
-rw-r--r--community/gsynaptics/PKGBUILD36
-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.install12
-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/PKGBUILD27
-rw-r--r--community/gtk-kde4/PKGBUILD34
-rw-r--r--community/gtk-kde4/fix-permission.patch27
-rw-r--r--community/gtk-rezlooks-engine/PKGBUILD29
-rw-r--r--community/gtk-theme-switch2/PKGBUILD31
-rw-r--r--community/gtk2+extra/PKGBUILD25
-rw-r--r--community/gtk2+extra/build-fix.patch85
-rw-r--r--community/gtk2_prefs/PKGBUILD24
-rw-r--r--community/gtk2fontsel/PKGBUILD22
-rw-r--r--community/gtk2hs-buildtools/PKGBUILD27
-rw-r--r--community/gtkballs/PKGBUILD28
-rw-r--r--community/gtkdatabox/PKGBUILD23
-rw-r--r--community/gtkdialog/PKGBUILD32
-rw-r--r--community/gtkdialog/gtkdialog.install20
-rw-r--r--community/gtkperf/PKGBUILD20
-rw-r--r--community/gtksourceviewmm/PKGBUILD27
-rw-r--r--community/gtkwave/PKGBUILD39
-rw-r--r--community/gtkwave/gtkwave.install6
-rw-r--r--community/gtranslator/PKGBUILD35
-rw-r--r--community/gtranslator/gtranslator.changelog27
-rw-r--r--community/gtranslator/gtranslator.install13
-rw-r--r--community/gtypist/PKGBUILD28
-rw-r--r--community/gtypist/gtypist.install18
-rw-r--r--community/gtypist/ncurses.patch117
-rw-r--r--community/guake/PKGBUILD31
-rwxr-xr-xcommunity/guake/guake.install17
-rw-r--r--community/guichan/PKGBUILD31
-rw-r--r--community/guifications/PKGBUILD27
-rw-r--r--community/gummi/PKGBUILD32
-rw-r--r--community/gwenhywfar/PKGBUILD26
-rw-r--r--community/gxmessage/PKGBUILD28
-rw-r--r--community/gxmessage/gxmessage.desktop10
-rw-r--r--community/gxmessage/gxmessage.install4
-rw-r--r--community/hacburn/PKGBUILD21
-rw-r--r--community/haddock/PKGBUILD45
-rw-r--r--community/haddock/haddock.install25
-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/hashcash/PKGBUILD26
-rw-r--r--community/haskell-binary/PKGBUILD45
-rw-r--r--community/haskell-binary/haskell-binary.install18
-rw-r--r--community/haskell-bytestring-show/PKGBUILD44
-rw-r--r--community/haskell-bytestring-show/haskell-bytestring-show.install24
-rw-r--r--community/haskell-cairo/PKGBUILD43
-rw-r--r--community/haskell-cairo/gtk2hs-cairo.install18
-rw-r--r--community/haskell-dataenc/PKGBUILD39
-rw-r--r--community/haskell-dataenc/haskell-dataenc.install18
-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-ghc-paths/PKGBUILD45
-rw-r--r--community/haskell-ghc-paths/haskell-ghc-paths.install18
-rw-r--r--community/haskell-glib/PKGBUILD43
-rw-r--r--community/haskell-glib/gtk2hs-glib.install18
-rw-r--r--community/haskell-gtk/PKGBUILD43
-rw-r--r--community/haskell-gtk/gtk2hs-gtk.install18
-rw-r--r--community/haskell-haskeline/PKGBUILD39
-rw-r--r--community/haskell-haskeline/haskell-haskeline.install18
-rw-r--r--community/haskell-hslogger/PKGBUILD41
-rw-r--r--community/haskell-hslogger/haskell-hslogger.install18
-rw-r--r--community/haskell-mmap/PKGBUILD38
-rw-r--r--community/haskell-mmap/haskell-mmap.install18
-rw-r--r--community/haskell-pango/PKGBUILD43
-rw-r--r--community/haskell-pango/gtk2hs-pango.install18
-rw-r--r--community/haskell-tar/PKGBUILD44
-rw-r--r--community/haskell-tar/haskell-tar.install24
-rw-r--r--community/haskell-terminfo/PKGBUILD38
-rw-r--r--community/haskell-terminfo/haskell-terminfo.install18
-rw-r--r--community/haskell-utf8-string/PKGBUILD39
-rw-r--r--community/haskell-utf8-string/haskell-utf8-string.install18
-rw-r--r--community/haskell-x11-xft/PKGBUILD38
-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/PKGBUILD40
-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/PKGBUILD77
-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.install20
-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/PKGBUILD28
-rw-r--r--community/hsolink/hsolink.install3
-rw-r--r--community/ht/PKGBUILD25
-rw-r--r--community/html2text/PKGBUILD23
-rw-r--r--community/htmldoc/PKGBUILD44
-rw-r--r--community/httperf/PKGBUILD28
-rw-r--r--community/httptunnel/PKGBUILD26
-rw-r--r--community/hubbub/PKGBUILD32
-rw-r--r--community/hwinfo/PKGBUILD45
-rw-r--r--community/hwinfo/custom_ioctl.patch16
-rw-r--r--community/i3-wm/PKGBUILD58
-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/PKGBUILD50
-rw-r--r--community/iasl/iasl.install17
-rw-r--r--community/iat/PKGBUILD29
-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/PKGBUILD33
-rw-r--r--community/ibus-chewing/PKGBUILD36
-rw-r--r--community/ibus-chewing/ibus-chewing.install17
-rw-r--r--community/ibus-hangul/PKGBUILD28
-rw-r--r--community/ibus-hangul/ibus-1.4.0.patch58
-rw-r--r--community/ibus-m17n/PKGBUILD31
-rw-r--r--community/ibus-pinyin/PKGBUILD42
-rw-r--r--community/ibus-pinyin/ibus-pinyin.install13
-rw-r--r--community/ibus-qt/PKGBUILD31
-rw-r--r--community/ibus-sunpinyin/PKGBUILD32
-rw-r--r--community/ibus-table-extraphrase/PKGBUILD33
-rw-r--r--community/ibus-table/PKGBUILD34
-rw-r--r--community/ibus-unikey/PKGBUILD31
-rw-r--r--community/ibus/PKGBUILD49
-rw-r--r--community/ibus/ibus.install31
-rw-r--r--community/icecast/PKGBUILD54
-rw-r--r--community/icecast/icecast.logrotate8
-rw-r--r--community/icecast/icecastd66
-rw-r--r--community/icecast/start-by-nobody.patch15
-rw-r--r--community/icewm-utils/PKGBUILD115
-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/icoutils/PKGBUILD30
-rw-r--r--community/id3lib-rcc/PKGBUILD43
-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/PKGBUILD31
-rw-r--r--community/iksemel/iksemel.install20
-rw-r--r--community/imdbpy/PKGBUILD37
-rw-r--r--community/incron/PKGBUILD40
-rw-r--r--community/incron/incron.init34
-rw-r--r--community/incron/incron.install14
-rw-r--r--community/iniparser/PKGBUILD24
-rw-r--r--community/inn/PKGBUILD131
-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/0001-Add-w8001-flag.patch27
-rw-r--r--community/inputattach/0002-Allow-for-custom-baud-rates.patch70
-rw-r--r--community/inputattach/PKGBUILD44
-rw-r--r--community/inputattach/inputattach.conf.d10
-rw-r--r--community/inputattach/inputattach.install16
-rw-r--r--community/inputattach/inputattach.rc.d40
-rw-r--r--community/intel-tbb/PKGBUILD28
-rw-r--r--community/intellij-idea-libs/PKGBUILD26
-rw-r--r--community/ipguard/PKGBUILD28
-rw-r--r--community/ipguard/build-fix-le.patch24
-rw-r--r--community/ipsec-tools/PKGBUILD36
-rwxr-xr-xcommunity/ipsec-tools/ipsec.rc35
-rwxr-xr-xcommunity/ipsec-tools/racoon.rc35
-rw-r--r--community/ipset/PKGBUILD28
-rw-r--r--community/iptstate/PKGBUILD27
-rw-r--r--community/ipvsadm/PKGBUILD40
-rw-r--r--community/ipvsadm/ipvsadm.conf3
-rw-r--r--community/ipvsadm/ipvsadm.rc39
-rw-r--r--community/ipvsadm/ipvsadm.rules1
-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/PKGBUILD87
-rw-r--r--community/isomaster/PKGBUILD27
-rw-r--r--community/isomaster/isomaster.install11
-rw-r--r--community/jabberd14/PKGBUILD34
-rw-r--r--community/jabberd14/build-fix.patch84
-rw-r--r--community/jabberd14/jabberd58
-rw-r--r--community/jack2/40-hpet-permissions.rules2
-rw-r--r--community/jack2/99-audio.conf2
-rw-r--r--community/jack2/PKGBUILD139
-rw-r--r--community/jansson/PKGBUILD30
-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/PKGBUILD86
-rw-r--r--community/john/params.h.patch13
-rw-r--r--community/jshon/PKGBUILD25
-rw-r--r--community/judy/PKGBUILD23
-rw-r--r--community/jwm/PKGBUILD27
-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/PKGBUILD31
-rw-r--r--community/kakasi/PKGBUILD25
-rw-r--r--community/kaudiocreator/PKGBUILD34
-rw-r--r--community/kaudiocreator/kaudiocreator.install11
-rwxr-xr-xcommunity/kcheckers/PKGBUILD27
-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/PKGBUILD31
-rw-r--r--community/kde4-kio-rapip/PKGBUILD28
-rw-r--r--community/kde4-kio-rapip/kde4-kio-rapip.install14
-rw-r--r--community/kdenlive/PKGBUILD40
-rw-r--r--community/kdenlive/glu.patch11
-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/keepalived/PKGBUILD44
-rw-r--r--community/keepalived/ip_vs_moved.patch23
-rw-r--r--community/keepalived/keepalived.conf16
-rw-r--r--community/keepalived/keepalived.rc39
-rw-r--r--community/keepassx/ChangeLog16
-rw-r--r--community/keepassx/PKGBUILD22
-rw-r--r--community/kgraphviewer/PKGBUILD33
-rw-r--r--community/kgraphviewer/kgraphviewer.install11
-rw-r--r--community/kid3/PKGBUILD34
-rw-r--r--community/kid3/kid3.changelog26
-rw-r--r--community/kid3/kid3.install12
-rw-r--r--community/kiwi/PKGBUILD32
-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/PKGBUILD40
-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/PKGBUILD39
-rw-r--r--community/kovpn/kovpn.install12
-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/PKGBUILD36
-rw-r--r--community/kpovmodeler/kpovmodeler.install11
-rw-r--r--community/krecipes/PKGBUILD38
-rw-r--r--community/krecipes/krecipes.install12
-rw-r--r--community/krename/PKGBUILD31
-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/PKGBUILD30
-rw-r--r--community/ktikz/PKGBUILD39
-rw-r--r--community/ktikz/ktikz.install14
-rw-r--r--community/ktoblzcheck/PKGBUILD30
-rw-r--r--community/ktoblzcheck/ktoblzcheck-python3.patch57
-rw-r--r--community/kuickshow/PKGBUILD31
-rw-r--r--community/kuickshow/kuickshow.install11
-rw-r--r--community/kvirc/PKGBUILD33
-rw-r--r--community/kvirc/kvirc.install13
-rw-r--r--community/kvpnc/PKGBUILD33
-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/lash/PKGBUILD36
-rw-r--r--community/lash/lash.install6
-rw-r--r--community/lash/makefile.patch14
-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
-rw-r--r--community/launchy/PKGBUILD25
-rw-r--r--community/lazarus/ChangeLog3
-rw-r--r--community/lazarus/PKGBUILD52
-rw-r--r--community/ldns/PKGBUILD51
-rw-r--r--community/leafnode/PKGBUILD31
-rw-r--r--community/leafnode/leafnode.install14
-rw-r--r--community/leafnode/leafnode.xinetd18
-rw-r--r--community/leptonica/PKGBUILD35
-rw-r--r--community/libacpi/PKGBUILD23
-rw-r--r--community/libaio/PKGBUILD22
-rw-r--r--community/libalkimia/PKGBUILD34
-rw-r--r--community/libast/LICENSE.txt21
-rw-r--r--community/libast/PKGBUILD31
-rw-r--r--community/libcgi/PKGBUILD38
-rw-r--r--community/libcompizconfig/PKGBUILD33
-rw-r--r--community/libconfig/PKGBUILD25
-rw-r--r--community/libconfig/libconfig.install18
-rw-r--r--community/libcss/PKGBUILD30
-rw-r--r--community/libcuefile/PKGBUILD33
-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/PKGBUILD29
-rw-r--r--community/libdbi/libdbi.install13
-rw-r--r--community/libdesktop-agnostic/PKGBUILD44
-rw-r--r--community/libdesktop-agnostic/gir.patch27
-rw-r--r--community/libdlna/PKGBUILD31
-rw-r--r--community/libdlna/ffmpeg-0.8.patch19
-rw-r--r--community/libdlna/libdlna-0.2.3-libavcodec-libavformat-include-paths.patch89
-rw-r--r--community/libdnet/PKGBUILD34
-rw-r--r--community/libdnet/libdnet.install3
-rw-r--r--community/libesmtp/PKGBUILD28
-rw-r--r--community/libev/PKGBUILD34
-rw-r--r--community/libexosip2/ChangeLog7
-rw-r--r--community/libexosip2/PKGBUILD25
-rw-r--r--community/libextractor/PKGBUILD33
-rw-r--r--community/libextractor/libextractor.install20
-rw-r--r--community/libfakekey/PKGBUILD31
-rw-r--r--community/libfaketime/PKGBUILD24
-rw-r--r--community/libfbclient/ChangeLog26
-rw-r--r--community/libfbclient/LICENSE44
-rwxr-xr-xcommunity/libfbclient/PKGBUILD41
-rw-r--r--community/libfm/PKGBUILD34
-rw-r--r--community/libfm/libfm.install15
-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/libgda4/PKGBUILD38
-rw-r--r--community/libgda4/libgda.install12
-rw-r--r--community/libgdamm/PKGBUILD38
-rw-r--r--community/libgeotiff/PKGBUILD28
-rw-r--r--community/libgexiv2/PKGBUILD27
-rw-r--r--community/libghemical/PKGBUILD26
-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/libharu/PKGBUILD31
-rw-r--r--community/libident/PKGBUILD20
-rw-r--r--community/libinfinity/PKGBUILD31
-rw-r--r--community/libiptcdata/PKGBUILD27
-rw-r--r--community/liblinebreak/PKGBUILD22
-rw-r--r--community/liblockfile/PKGBUILD33
-rw-r--r--community/libmaa/PKGBUILD26
-rw-r--r--community/libmatchbox/PKGBUILD23
-rw-r--r--community/libmatio/PKGBUILD28
-rw-r--r--community/libmediainfo/PKGBUILD39
-rw-r--r--community/libmediainfo/libmediainfo-0.7.50-libmms.patch50
-rw-r--r--community/libmemcached/PKGBUILD32
-rw-r--r--community/libmicrohttpd/PKGBUILD37
-rw-r--r--community/libmicrohttpd/libmicrohttpd.install20
-rw-r--r--community/libmilter/PKGBUILD47
-rw-r--r--community/libmirage/PKGBUILD27
-rw-r--r--community/libmnl/PKGBUILD25
-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/PKGBUILD27
-rw-r--r--community/libnids/PKGBUILD28
-rw-r--r--community/libnoise/CMakeLists.txt101
-rw-r--r--community/libnoise/PKGBUILD33
-rw-r--r--community/libnsbmp/PKGBUILD31
-rw-r--r--community/libnsgif/PKGBUILD32
-rw-r--r--community/liboglappth/PKGBUILD26
-rw-r--r--community/libopenraw/PKGBUILD31
-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/libpaper/PKGBUILD26
-rw-r--r--community/libpar2/PKGBUILD33
-rw-r--r--community/libpar2/libpar2-0.2-bugfixes.patch29
-rw-r--r--community/libparserutils/PKGBUILD32
-rw-r--r--community/libpqxx/ChangeLog9
-rw-r--r--community/libpqxx/PKGBUILD25
-rw-r--r--community/libpqxx/build-fix.patch11
-rw-r--r--community/libquvi/PKGBUILD27
-rw-r--r--community/libraw/PKGBUILD31
-rw-r--r--community/libraw/libraw.changelog2
-rw-r--r--community/librcc/PKGBUILD49
-rw-r--r--community/librcc/librcc-strnlen.patch17
-rw-r--r--community/librcc/librcc.install6
-rw-r--r--community/librcd/PKGBUILD22
-rw-r--r--community/librep/PKGBUILD33
-rw-r--r--community/librep/librep.install18
-rw-r--r--community/libreplaygain/PKGBUILD34
-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/libsmf/PKGBUILD28
-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/libtlen/PKGBUILD20
-rw-r--r--community/libtommath/PKGBUILD32
-rw-r--r--community/libtommath/libtommath-0.42.0-makefile.patch44
-rw-r--r--community/libtorrent/PKGBUILD31
-rw-r--r--community/libuser/PKGBUILD32
-rw-r--r--community/libview/PKGBUILD23
-rw-r--r--community/libvirt/PKGBUILD88
-rw-r--r--community/libvirt/libvirt.install38
-rw-r--r--community/libvirt/libvirtd-guests.conf.d11
-rwxr-xr-xcommunity/libvirt/libvirtd-guests.rc.d107
-rw-r--r--community/libvirt/libvirtd.conf.d3
-rwxr-xr-xcommunity/libvirt/libvirtd.rc.d66
-rw-r--r--community/libvirt/openbsd-netcat-default.patch36
-rw-r--r--community/libvirt/unixperms.patch47
-rw-r--r--community/libvirt/yajl-2.x.patch66
-rw-r--r--community/libvisual-projectm/PKGBUILD26
-rw-r--r--community/libwapcaplet/PKGBUILD27
-rw-r--r--community/libwww/PKGBUILD25
-rw-r--r--community/libx86/PKGBUILD41
-rw-r--r--community/libx86/libx86-ifmask.patch21
-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/PKGBUILD26
-rw-r--r--community/libzen/PKGBUILD39
-rw-r--r--community/libzrtpcpp/PKGBUILD30
-rw-r--r--community/lightspark/PKGBUILD44
-rw-r--r--community/lightspark/lightspark.install13
-rw-r--r--community/lightspark/llvm29.diff12
-rw-r--r--community/lilypond/PKGBUILD46
-rw-r--r--community/lilypond/lilypond.install48
-rw-r--r--community/lilypond/texlive-workaround.patch88
-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/PKGBUILD37
-rw-r--r--community/linphone/disable-v4l1.patch50
-rw-r--r--community/linux-tools/PKGBUILD64
-rw-r--r--community/linux-tools/cpupower.conf14
-rw-r--r--community/linux-tools/cpupower.rc31
-rw-r--r--community/linuxdcpp/PKGBUILD30
-rw-r--r--community/linuxdcpp/linuxdcpp.install12
-rw-r--r--community/linuxsampler/PKGBUILD38
-rw-r--r--community/linuxsampler/license.txt7
-rw-r--r--community/linuxtv-dvb-apps/PKGBUILD32
-rw-r--r--community/lmms/PKGBUILD38
-rw-r--r--community/lmms/lmms.install11
-rw-r--r--community/lockdev/PKGBUILD32
-rw-r--r--community/lockfile-progs/PKGBUILD28
-rw-r--r--community/log4cpp/PKGBUILD30
-rw-r--r--community/log4cpp/gcc43.patch26
-rw-r--r--community/lomoco/PKGBUILD36
-rw-r--r--community/lomoco/lomoco.sh21
-rw-r--r--community/lomoco/lomoco_mouse.conf5
-rw-r--r--community/lorcon-old-svn/PKGBUILD27
-rw-r--r--community/lout/PKGBUILD24
-rwxr-xr-xcommunity/lout/lout.install9
-rw-r--r--community/lout/makefile.arch45
-rw-r--r--community/lrzsz/PKGBUILD28
-rw-r--r--community/lrzsz/lrzsz.patch40
-rw-r--r--community/lshw/PKGBUILD26
-rw-r--r--community/lshw/abi_stdlib.diff23
-rw-r--r--community/lsscsi/PKGBUILD27
-rw-r--r--community/ltris/PKGBUILD35
-rw-r--r--community/ltris/ltris.changelog25
-rw-r--r--community/ltris/ltris.install17
-rw-r--r--community/lua-zlib/ChangeLog42
-rw-r--r--community/lua-zlib/PKGBUILD30
-rw-r--r--community/luaexpat/PKGBUILD28
-rw-r--r--community/luaexpat/newconfig26
-rw-r--r--community/luafilesystem/LICENSE22
-rw-r--r--community/luafilesystem/PKGBUILD25
-rw-r--r--community/luakit/PKGBUILD29
-rw-r--r--community/luakit/luakit.install10
-rw-r--r--community/luarocks/PKGBUILD42
-rw-r--r--community/luarocks/packbinary.patch12
-rw-r--r--community/luasec/ChangeLog60
-rw-r--r--community/luasec/PKGBUILD30
-rw-r--r--community/luasec/luasec.patch27
-rw-r--r--community/luasocket/PKGBUILD27
-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/PKGBUILD42
-rw-r--r--community/luminancehdr/luminance-hdr-2.1.0-libraw.patch10
-rw-r--r--community/luminancehdr/luminancehdr.changelog33
-rw-r--r--community/luminancehdr/luminancehdr.install12
-rw-r--r--community/luxrays/PKGBUILD45
-rw-r--r--community/luxrays/luxrays_opencl1.2_use_deprecated.diff12
-rw-r--r--community/luxrender/PKGBUILD55
-rw-r--r--community/lwm/PKGBUILD25
-rw-r--r--community/lwp/PKGBUILD22
-rw-r--r--community/lxappearance/PKGBUILD34
-rw-r--r--community/lxappearance/gtk-3.0.patch111
-rw-r--r--community/lxde-common/PKGBUILD33
-rw-r--r--community/lxde-common/lxde-common.install13
-rw-r--r--community/lxdm/PKGBUILD50
-rw-r--r--community/lxdm/Xsession.patch11
-rw-r--r--community/lxdm/lxdm-conf.patch11
-rw-r--r--community/lxdm/lxdm-daemon36
-rw-r--r--community/lxdm/lxdm-pam.patch8
-rw-r--r--community/lxdm/lxdm.install18
-rw-r--r--community/lxdm/lxdm.patch26
-rw-r--r--community/lxlauncher/PKGBUILD27
-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/lxmenu-data/PKGBUILD26
-rw-r--r--community/lxnm/PKGBUILD25
-rw-r--r--community/lxpanel/PKGBUILD27
-rw-r--r--community/lxrandr/PKGBUILD23
-rw-r--r--community/lxsession/PKGBUILD29
-rw-r--r--community/lxtask/PKGBUILD26
-rw-r--r--community/lxterminal/PKGBUILD27
-rw-r--r--community/macchanger/PKGBUILD18
-rw-r--r--community/madman/PKGBUILD55
-rwxr-xr-xcommunity/madman/fake-g++.sh5
-rw-r--r--community/mailutils/PKGBUILD46
-rw-r--r--community/mailutils/mailutils.install20
-rw-r--r--community/mairix/PKGBUILD29
-rw-r--r--community/mairix/mairix.install14
-rw-r--r--community/makedev/PKGBUILD26
-rw-r--r--community/mandvd/PKGBUILD35
-rw-r--r--community/mandvd/mandvd.changelog8
-rw-r--r--community/mapnik/PKGBUILD52
-rw-r--r--community/mapnik/mapnik.install11
-rw-r--r--community/mashup/PKGBUILD28
-rw-r--r--community/matchbox-desktop/PKGBUILD22
-rw-r--r--community/matchbox-keyboard/PKGBUILD21
-rw-r--r--community/matchbox-panel/PKGBUILD21
-rw-r--r--community/matchbox-window-manager/PKGBUILD23
-rwxr-xr-xcommunity/mathomatic/PKGBUILD46
-rw-r--r--community/mc/PKGBUILD61
-rw-r--r--community/mcabber/PKGBUILD37
-rw-r--r--community/mcdp/PKGBUILD28
-rw-r--r--community/mcelog/PKGBUILD35
-rw-r--r--community/mcelog/mcelog.rc37
-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/PKGBUILD34
-rw-r--r--community/mediainfo-gui/mediainfo-gui.install11
-rw-r--r--community/mediainfo/PKGBUILD26
-rw-r--r--community/mediaproxy/PKGBUILD25
-rwxr-xr-xcommunity/mediaproxy/mediaproxy.init32
-rw-r--r--community/medit/PKGBUILD37
-rw-r--r--community/medit/medit-terminal.patch13
-rw-r--r--community/medit/medit.install11
-rw-r--r--community/megaglest/PKGBUILD37
-rw-r--r--community/megaglest/megaglest.sh26
-rw-r--r--community/menu-cache/PKGBUILD29
-rw-r--r--community/metakit/PKGBUILD38
-rw-r--r--community/metamail/PKGBUILD35
-rw-r--r--community/metamail/license37
-rw-r--r--community/metapixel/PKGBUILD32
-rw-r--r--community/metapixel/metapixel-1.0.2-libpng-1.5.patch174
-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/PKGBUILD34
-rw-r--r--community/mg/README74
-rw-r--r--community/mg/cleanup.patch163
-rw-r--r--community/mget/PKGBUILD26
-rw-r--r--community/mget/fix-warnings.patch40
-rw-r--r--community/mhwaveedit/PKGBUILD25
-rw-r--r--community/microblog-purple/PKGBUILD20
-rw-r--r--community/mimetex/PKGBUILD19
-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/PKGBUILD32
-rw-r--r--community/mingw32-gcc-base/PKGBUILD80
-rw-r--r--community/mingw32-gcc-base/gcc-1-mingw-float.patch18
-rw-r--r--community/mingw32-gcc/PKGBUILD78
-rw-r--r--community/mingw32-gcc/gcc-1-mingw-float.patch18
-rw-r--r--community/mingw32-pthreads/PKGBUILD34
-rw-r--r--community/minidlna/PKGBUILD35
-rw-r--r--community/minidlna/changelog4
-rwxr-xr-xcommunity/minidlna/minidlna.rc48
-rw-r--r--community/miredo/PKGBUILD37
-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/PKGBUILD36
-rw-r--r--community/mksh/PKGBUILD38
-rw-r--r--community/mksh/mksh.install13
-rw-r--r--community/mktorrent/PKGBUILD19
-rw-r--r--community/mldonkey/PKGBUILD46
-rw-r--r--community/mldonkey/mldonkey.conf5
-rw-r--r--community/mldonkey/mldonkey.desktop8
-rw-r--r--community/mldonkey/mldonkey.install17
-rw-r--r--community/mldonkey/mldonkeyd67
-rw-r--r--community/mlt/PKGBUILD60
-rw-r--r--community/mms_client/PKGBUILD32
-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/PKGBUILD72
-rw-r--r--community/mongodb/mongodb.conf8
-rwxr-xr-xcommunity/mongodb/mongodb.install32
-rwxr-xr-xcommunity/mongodb/mongodb.rc39
-rw-r--r--community/monit/PKGBUILD36
-rw-r--r--community/monit/monit.changelog28
-rw-r--r--community/monit/monitd43
-rw-r--r--community/moreutils/PKGBUILD26
-rw-r--r--community/motion/PKGBUILD61
-rw-r--r--community/motion/ffmpeg-0.8.patch112
-rw-r--r--community/motion/linux-headers.patch35
-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.changelog18
-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.install22
-rw-r--r--community/mpgtx/PKGBUILD24
-rw-r--r--community/mplayer2/PKGBUILD93
-rw-r--r--community/mtasc/PKGBUILD29
-rw-r--r--community/mtpaint/PKGBUILD37
-rw-r--r--community/mtpaint/libpng14.patch21
-rw-r--r--community/mtpaint/mtpaint.install14
-rw-r--r--community/mtpfs/PKGBUILD29
-rw-r--r--community/multiget/PKGBUILD44
-rw-r--r--community/multiget/multiget.desktop8
-rw-r--r--community/multimux/PKGBUILD28
-rw-r--r--community/multipath-tools/PKGBUILD47
-rw-r--r--community/multipath-tools/fix-build.patch140
-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/PKGBUILD46
-rw-r--r--community/mupdf/mupdf.install13
-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/PKGBUILD61
-rw-r--r--community/murmur/murmur.conf.d2
-rw-r--r--community/murmur/murmur.dbus.conf22
-rw-r--r--community/murmur/murmur.install32
-rw-r--r--community/murmur/murmur.logrotate.d6
-rw-r--r--community/murmur/murmur.rc.d44
-rw-r--r--community/musepack-tools/PKGBUILD41
-rw-r--r--community/musepack-tools/math.patch12
-rw-r--r--community/musescore/PKGBUILD38
-rw-r--r--community/musescore/musescore.install11
-rw-r--r--community/musescore/paths.patch22
-rw-r--r--community/mxml/PKGBUILD27
-rw-r--r--community/mygui/PKGBUILD77
-rw-r--r--community/mygui/mygui.install3
-rw-r--r--community/myodbc/PKGBUILD31
-rw-r--r--community/myodbc/myconf.h.in165
-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/PKGBUILD32
-rw-r--r--community/mypaint/mypaint.install13
-rw-r--r--community/mysql++/PKGBUILD41
-rw-r--r--community/mysql++/mysql++-fix-cstring.patch11
-rw-r--r--community/mysql++/mysql++-fix-size_t.patch21
-rw-r--r--community/mysql-ruby/PKGBUILD30
-rw-r--r--community/mysql-workbench/ArchLinux.xml18
-rw-r--r--community/mysql-workbench/PKGBUILD64
-rw-r--r--community/mysql-workbench/arch.patch22
-rw-r--r--community/mysql-workbench/gcc46.patch11
-rw-r--r--community/mysql-workbench/python27.patch19
-rw-r--r--community/mythplugins/PKGBUILD142
-rw-r--r--community/mythplugins/mtd.rc36
-rw-r--r--community/mythplugins/mythplugins-mythzoneminder.install3
-rw-r--r--community/mythtv/PKGBUILD82
-rw-r--r--community/mythtv/build.patch13
-rw-r--r--community/mythtv/mythbackend.conf92
-rw-r--r--community/mythtv/mythbackend.rc82
-rw-r--r--community/mythtv/mythtv-v4l2-fix.patch724
-rw-r--r--community/mythtv/mythtv.install11
-rw-r--r--community/naev/PKGBUILD28
-rw-r--r--community/namazu/PKGBUILD28
-rw-r--r--community/nas/PKGBUILD33
-rw-r--r--community/nas/license.txt22
-rw-r--r--community/nautilus-actions/PKGBUILD34
-rw-r--r--community/nautilus-actions/nautilus-actions.install24
-rw-r--r--community/nbd/PKGBUILD33
-rw-r--r--community/nbd/config24
-rw-r--r--community/nbd/nbd39
-rw-r--r--community/nbd/nbd.install13
-rwxr-xr-xcommunity/nbtscan/PKGBUILD31
-rw-r--r--community/nbtscan/nbtscan.1.gzbin0 -> 1890 bytes
-rw-r--r--community/ncdu/PKGBUILD28
-rw-r--r--community/ncmpcpp/PKGBUILD31
-rw-r--r--community/ncmpcpp/ncmpcpp.install19
-rw-r--r--community/ndisc6/PKGBUILD36
-rw-r--r--community/ndisc6/rdnssd.confd8
-rw-r--r--community/ndisc6/rdnssd.rc.d51
-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/PKGBUILD42
-rw-r--r--community/nemesis/nemesis-proto_tcp.c.diff46
-rw-r--r--community/nemiver/PKGBUILD39
-rw-r--r--community/nemiver/nemiver.install21
-rw-r--r--community/net6/PKGBUILD27
-rw-r--r--community/net6/build-fix.patch33
-rw-r--r--community/netbrake/PKGBUILD39
-rw-r--r--community/netbrake/arch-x86_64.patch39
-rw-r--r--community/netcf/PKGBUILD30
-rw-r--r--community/netcf/netcf-0.1.7.patch426
-rw-r--r--community/nethack/PKGBUILD67
-rw-r--r--community/nethack/nethack.install12
-rw-r--r--community/nethogs/PKGBUILD28
-rw-r--r--community/nethogs/gcc44.patch11
-rw-r--r--community/netstat-nat/PKGBUILD20
-rw-r--r--community/netsurf/PKGBUILD43
-rw-r--r--community/netsurf/netsurf.desktop127
-rw-r--r--community/netsurf/netsurf.install15
-rw-r--r--community/netwatch/PKGBUILD26
-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/newton-dynamics/PKGBUILD46
-rw-r--r--community/newton-dynamics/assert-fix.patch13
-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/PKGBUILD112
-rw-r--r--community/nginx/changelog4
-rw-r--r--community/nginx/nginx73
-rw-r--r--community/ngircd/PKGBUILD31
-rw-r--r--community/ngircd/ngircd.sh36
-rw-r--r--community/ngrep/PKGBUILD31
-rw-r--r--community/ngspice/PKGBUILD31
-rw-r--r--community/nickle/PKGBUILD22
-rw-r--r--community/nload/PKGBUILD26
-rw-r--r--community/nmon/PKGBUILD20
-rw-r--r--community/nodejs/PKGBUILD53
-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/notion/ChangleLog5
-rw-r--r--community/notion/PKGBUILD93
-rw-r--r--community/nrg2iso/PKGBUILD29
-rw-r--r--community/nsd/PKGBUILD34
-rw-r--r--community/nsd/install19
-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/numlockx/PKGBUILD33
-rw-r--r--community/nut/PKGBUILD40
-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/PKGBUILD32
-rw-r--r--community/nzbget/ChangeLog18
-rw-r--r--community/nzbget/PKGBUILD33
-rw-r--r--community/obby/PKGBUILD23
-rw-r--r--community/obconf/PKGBUILD33
-rw-r--r--community/obconf/config-file.patch28
-rw-r--r--community/obconf/obconf.install12
-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/PKGBUILD27
-rw-r--r--community/ogmrip/PKGBUILD42
-rw-r--r--community/ogmrip/ogmrip.changelog17
-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/PKGBUILD43
-rw-r--r--community/oolite/PKGBUILD41
-rwxr-xr-xcommunity/oolite/oolite6
-rw-r--r--community/open-vm-tools-modules/PKGBUILD47
-rw-r--r--community/open-vm-tools-modules/modprobe.conf2
-rw-r--r--community/open-vm-tools-modules/open-vm-tools-modules.install24
-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.patch38
-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/PKGBUILD72
-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/openarena/strcpy-memmove.patch20
-rw-r--r--community/openbox/PKGBUILD50
-rw-r--r--community/openbox/openbox.install4
-rw-r--r--community/openbox/which-2.20.patch11
-rw-r--r--community/openbsd-netcat/PKGBUILD33
-rw-r--r--community/openlierox/PKGBUILD61
-rw-r--r--community/openmotif/PKGBUILD61
-rw-r--r--community/openmovieeditor/PKGBUILD37
-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/PKGBUILD35
-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/PKGBUILD30
-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/PKGBUILD28
-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/PKGBUILD41
-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/PKGBUILD91
-rw-r--r--community/oss/oss.install59
-rw-r--r--community/oss/rc-script30
-rw-r--r--community/oss/remove-hal.patch20
-rw-r--r--community/oss/rm-init-scripts.patch52
-rw-r--r--community/oss/soundon.patch28
-rw-r--r--community/ozerocdoff/PKGBUILD30
-rw-r--r--community/ozerocdoff/remove-old-rules.patch64
-rw-r--r--community/p2c/PKGBUILD47
-rw-r--r--community/p3scan/PKGBUILD51
-rw-r--r--community/p3scan/p3scan.install7
-rw-r--r--community/p3scan/rc.p3scan39
-rw-r--r--community/packagekit/PKGBUILD101
-rw-r--r--community/packagekit/alpm.patch253
-rw-r--r--community/packagekit/packagekit.install11
-rw-r--r--community/paco/ChangeLog3
-rw-r--r--community/paco/PKGBUILD24
-rw-r--r--community/pam-krb5/PKGBUILD28
-rw-r--r--community/pam_mysql/PKGBUILD29
-rw-r--r--community/pam_pwcheck/PKGBUILD21
-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/PKGBUILD87
-rw-r--r--community/paraview/fixkernelversioncheck.diff19
-rw-r--r--community/paraview/paraview.desktop10
-rw-r--r--community/paraview/paraview.pngbin0 -> 367 bytes
-rw-r--r--community/parcellite/ChangeLog17
-rw-r--r--community/parcellite/PKGBUILD26
-rw-r--r--community/parcellite/history_menu_crash_patch39
-rw-r--r--community/pari/PKGBUILD35
-rw-r--r--community/parole/PKGBUILD31
-rw-r--r--community/parole/parole.install11
-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/passenger/PKGBUILD30
-rw-r--r--community/passenger/passenger-install-apache2-module.patch5
-rw-r--r--community/passenger/passenger.install32
-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/PKGBUILD39
-rw-r--r--community/pcb/PKGBUILD43
-rw-r--r--community/pcb/install37
-rw-r--r--community/pcmanfm/PKGBUILD27
-rw-r--r--community/pcsc-perl/PKGBUILD30
-rw-r--r--community/pcsc-tools/PKGBUILD30
-rw-r--r--community/pcsclite/PKGBUILD41
-rw-r--r--community/pcsclite/pcscd53
-rw-r--r--community/pcsxr/PKGBUILD28
-rw-r--r--community/pdf2djvu/PKGBUILD28
-rw-r--r--community/pdf2svg/PKGBUILD27
-rw-r--r--community/pdfedit/PKGBUILD40
-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/PKGBUILD25
-rw-r--r--community/pdnsd/PKGBUILD28
-rwxr-xr-xcommunity/pdnsd/pdnsd37
-rw-r--r--community/performous/PKGBUILD48
-rw-r--r--community/performous/boost-filesystem-v3.patch135
-rw-r--r--community/perl-berkeleydb/PKGBUILD32
-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/PKGBUILD27
-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-mail/PKGBUILD26
-rw-r--r--community/perl-datetime/PKGBUILD37
-rw-r--r--community/perl-dbd-odbc/PKGBUILD28
-rw-r--r--community/perl-dbd-pg/PKGBUILD32
-rw-r--r--community/perl-dbd-sqlite2/PKGBUILD31
-rw-r--r--community/perl-dbd-sybase/PKGBUILD28
-rw-r--r--community/perl-device-serialport/PKGBUILD25
-rw-r--r--community/perl-fuse/PKGBUILD27
-rw-r--r--community/perl-gd/PKGBUILD29
-rw-r--r--community/perl-gnome2-wnck/PKGBUILD32
-rw-r--r--community/perl-gssapi/PKGBUILD32
-rw-r--r--community/perl-gstreamer-interfaces/PKGBUILD32
-rw-r--r--community/perl-gstreamer/PKGBUILD32
-rw-r--r--community/perl-gtk2-sexy/PKGBUILD34
-rw-r--r--community/perl-gtk2-trayicon/PKGBUILD33
-rw-r--r--community/perl-gtk2-webkit/PKGBUILD32
-rw-r--r--community/perl-html-strip/PKGBUILD27
-rw-r--r--community/perl-inline-java/PKGBUILD29
-rw-r--r--community/perl-io-string/PKGBUILD23
-rw-r--r--community/perl-io-tty/PKGBUILD27
-rw-r--r--community/perl-json-xs/PKGBUILD29
-rw-r--r--community/perl-libapreq2/PKGBUILD31
-rw-r--r--community/perl-linux-pid/PKGBUILD44
-rw-r--r--community/perl-list-moreutils/PKGBUILD48
-rw-r--r--community/perl-mail-box-parser-c/PKGBUILD31
-rw-r--r--community/perl-mail-transport-dbx/PKGBUILD31
-rw-r--r--community/perl-net-dbus/PKGBUILD28
-rw-r--r--community/perl-net-libidn/PKGBUILD31
-rw-r--r--community/perl-package-stash-xs/PKGBUILD50
-rw-r--r--community/perl-params-classify/PKGBUILD23
-rw-r--r--community/perl-params-util/PKGBUILD51
-rw-r--r--community/perl-params-validate/PKGBUILD27
-rw-r--r--community/perl-string-crc32/PKGBUILD31
-rw-r--r--community/perl-text-charwidth/PKGBUILD31
-rw-r--r--community/perl-text-kakasi/ChangeLog3
-rw-r--r--community/perl-text-kakasi/PKGBUILD33
-rw-r--r--community/perl-tie-hash-indexed/PKGBUILD32
-rw-r--r--community/perl-tk-tablematrix/PKGBUILD33
-rw-r--r--community/perl-www-curl/PKGBUILD32
-rw-r--r--community/perl-xml-libxml/PKGBUILD32
-rw-r--r--community/perl-xml-libxml/perl-xml-libxml.install15
-rw-r--r--community/perl-xml-libxslt/PKGBUILD30
-rw-r--r--community/perl-xmms/PKGBUILD31
-rw-r--r--community/pgadmin3/ChangeLog28
-rw-r--r--community/pgadmin3/PKGBUILD34
-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/picard/PKGBUILD28
-rw-r--r--community/picard/install12
-rw-r--r--community/picocom/PKGBUILD26
-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/PKGBUILD30
-rw-r--r--community/pidgin-otr/PKGBUILD30
-rw-r--r--community/pigeonhole/PKGBUILD40
-rw-r--r--community/pigeonhole/dovecot.conf1
-rwxr-xr-xcommunity/pigz/PKGBUILD33
-rw-r--r--community/pinfo/ChangeLog3
-rw-r--r--community/pinfo/PKGBUILD26
-rw-r--r--community/pingus/ChangeLog21
-rw-r--r--community/pingus/PKGBUILD31
-rw-r--r--community/pingus/pingus.desktop9
-rw-r--r--community/pinot/PKGBUILD46
-rw-r--r--community/pinot/pinot.install15
-rw-r--r--community/pion-net/PKGBUILD49
-rw-r--r--community/pion-net/pion-net-4.0.5-build.patch12
-rw-r--r--community/pkgtools/PKGBUILD36
-rw-r--r--community/pkgtools/pkgtools.install66
-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/PKGBUILD44
-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/PKGBUILD29
-rw-r--r--community/portaudio/PKGBUILD28
-rw-r--r--community/portaudio_cpp/PKGBUILD26
-rw-r--r--community/portmidi/PKGBUILD41
-rw-r--r--community/postgis/PKGBUILD29
-rw-r--r--community/postgis/postgis.changelog8
-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/PKGBUILD41
-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.install10
-rw-r--r--community/prboom/PKGBUILD33
-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/PKGBUILD47
-rw-r--r--community/preload/preload.install30
-rw-r--r--community/preload/rc.preload97
-rw-r--r--community/premake/PKGBUILD25
-rw-r--r--community/premake3/PKGBUILD27
-rw-r--r--community/privoxy/PKGBUILD64
-rwxr-xr-xcommunity/privoxy/privoxy53
-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/PKGBUILD31
-rw-r--r--community/projectm/libprojectM-2.0.1-pkg-config.patch10
-rw-r--r--community/prosody/ChangeLog398
-rw-r--r--community/prosody/PKGBUILD54
-rw-r--r--community/prosody/fix-config.patch32
-rw-r--r--community/prosody/prosody.install35
-rw-r--r--community/prosody/prosody.logrotated9
-rw-r--r--community/prosody/prosody.rcd93
-rw-r--r--community/protobuf/PKGBUILD37
-rw-r--r--community/proxytunnel/PKGBUILD21
-rw-r--r--community/psimedia/PKGBUILD33
-rw-r--r--community/psimedia/psimedia-svn20110621.diff.gzbin0 -> 10776 bytes
-rw-r--r--community/psimedia/videodev.h320
-rw-r--r--community/pspshrink/PKGBUILD22
-rw-r--r--community/pspshrink/pspshrink.install19
-rw-r--r--community/psqlodbc/PKGBUILD31
-rw-r--r--community/psqlodbc/fix-function-declarations.patch47
-rw-r--r--community/pstreams/PKGBUILD18
-rw-r--r--community/puzzles/PKGBUILD37
-rw-r--r--community/pv/PKGBUILD21
-rw-r--r--community/pwmanager/ChangeLog5
-rw-r--r--community/pwmanager/PKGBUILD30
-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/PKGBUILD27
-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/PKGBUILD21
-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/PKGBUILD49
-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/PKGBUILD21
-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/PKGBUILD38
-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-pymongo/PKGBUILD22
-rw-r--r--community/python-pyro/ChangeLog21
-rwxr-xr-xcommunity/python-pyro/PKGBUILD28
-rw-r--r--community/python-pysqlite-legacy/PKGBUILD24
-rw-r--r--community/python-pyxattr/PKGBUILD33
-rw-r--r--community/python-pyxmpp/PKGBUILD20
-rwxr-xr-xcommunity/python-scipy/PKGBUILD71
-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
-rwxr-xr-xcommunity/python2-cheetah/PKGBUILD32
-rw-r--r--community/python2-ldap/PKGBUILD25
-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/PKGBUILD24
-rw-r--r--community/python2-poppler/PKGBUILD47
-rw-r--r--community/python2-poppler/pypoppler-0.12.1-poppler-0.16.0.patch11
-rw-r--r--community/python2-pymongo/PKGBUILD21
-rw-r--r--community/python2-pyopencl/LICENSE.txt20
-rw-r--r--community/python2-pyopencl/PKGBUILD32
-rw-r--r--community/python2-rst2pdf/LICENSE.txt20
-rw-r--r--community/python2-rst2pdf/PKGBUILD37
-rw-r--r--community/python2-rst2pdf/rst2pdf-0.16_docutils-0.8.patch52
-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/qbittorrent/PKGBUILD34
-rw-r--r--community/qbittorrent/qbittorrent.install11
-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/qconf/PKGBUILD22
-rw-r--r--community/qdevelop/PKGBUILD41
-rw-r--r--community/qdevelop/qt47.patch24
-rw-r--r--community/qgit/0001-Cause-qgit-to-use-git-config-everywhere.patch39
-rw-r--r--community/qgit/PKGBUILD36
-rw-r--r--community/qgit/qgit.desktop11
-rw-r--r--community/qgit/qgit.pngbin0 -> 164 bytes
-rw-r--r--community/qgo/PKGBUILD34
-rw-r--r--community/qgo/gcc43.patch37
-rw-r--r--community/qgo/gcc45.patch205
-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/PKGBUILD43
-rw-r--r--community/qlandkartegt/fix-glu-header.patch12
-rw-r--r--community/qlandkartegt/qlandkartegt-mimetypes.xml7
-rw-r--r--community/qlandkartegt/qlandkartegt.changelog30
-rw-r--r--community/qlandkartegt/qlandkartegt.install7
-rw-r--r--community/qmc2/PKGBUILD28
-rw-r--r--community/qmmp/PKGBUILD38
-rw-r--r--community/qmmp/qmmp.changelog51
-rw-r--r--community/qmmp/qmmp.install12
-rw-r--r--community/qmpdclient/PKGBUILD33
-rw-r--r--community/qmpdclient/qmpdclient.changelog12
-rw-r--r--community/qmpdclient/qmpdclient.install11
-rw-r--r--community/qoauth/PKGBUILD30
-rw-r--r--community/qps/PKGBUILD29
-rw-r--r--community/qps/version-patch.diff14
-rw-r--r--community/qpxtool/PKGBUILD26
-rw-r--r--community/qscintilla-qt3/PKGBUILD37
-rwxr-xr-xcommunity/qstardict/PKGBUILD33
-rw-r--r--community/qstardict/qstardict.changelog11
-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/PKGBUILD52
-rw-r--r--community/qtcreator/qtcreator.desktop10
-rw-r--r--community/qtcreator/qtcreator.install12
-rw-r--r--community/qtemu/PKGBUILD24
-rw-r--r--community/qtfm/PKGBUILD29
-rw-r--r--community/qtfm/qtfm.install11
-rw-r--r--community/qtmpc/PKGBUILD30
-rw-r--r--community/qtmpc/qtmpc.changelog3
-rw-r--r--community/qtmpc/qtmpc.install11
-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/PKGBUILD34
-rw-r--r--community/qtractor/qtractor.changelog14
-rw-r--r--community/quagga/PKGBUILD59
-rw-r--r--community/quagga/quagga.conf3
-rw-r--r--community/quagga/quagga.install22
-rw-r--r--community/quagga/quagga.rc34
-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/quilt/PKGBUILD21
-rw-r--r--community/quvi/PKGBUILD28
-rw-r--r--community/r8168-lts/PKGBUILD32
-rw-r--r--community/r8168-lts/r8168-lts.install17
-rw-r--r--community/radeontool/PKGBUILD29
-rw-r--r--community/radeontool/license.txt22
-rw-r--r--community/radvd/PKGBUILD38
-rw-r--r--community/radvd/radvd.install28
-rw-r--r--community/radvd/radvd.rc.d38
-rw-r--r--community/rapidsvn/PKGBUILD36
-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/PKGBUILD33
-rw-r--r--community/rawstudio/rawstudio.install11
-rw-r--r--community/rawtherapee/PKGBUILD54
-rw-r--r--community/rawtherapee/rawtherapee.install22
-rw-r--r--community/rdiff-backup/PKGBUILD27
-rw-r--r--community/recoll/PKGBUILD54
-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/PKGBUILD40
-rw-r--r--community/redis/redis.d65
-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/PKGBUILD32
-rw-r--r--community/rekonq/rekonq.install12
-rw-r--r--community/remind/ChangeLog3
-rw-r--r--community/remind/PKGBUILD28
-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/PKGBUILD25
-rw-r--r--community/ripperx/PKGBUILD21
-rw-r--r--community/rlog/PKGBUILD30
-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/PKGBUILD29
-rw-r--r--community/root/PKGBUILD97
-rw-r--r--community/root/root.install25
-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/PKGBUILD32
-rw-r--r--community/roxterm/roxterm.install11
-rw-r--r--community/rpc2/PKGBUILD22
-rw-r--r--community/rsnapshot/PKGBUILD35
-rw-r--r--community/rsnapshot/rsnapshot4
-rw-r--r--community/rss-glx/PKGBUILD49
-rw-r--r--community/rss-glx/rss-glx-desktops.tar.bz2bin0 -> 2204 bytes
-rw-r--r--community/rss-glx/rss-glx.install12
-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/PKGBUILD35
-rw-r--r--community/ruby-cairo/PKGBUILD24
-rw-r--r--community/ruby-gtk2/PKGBUILD69
-rw-r--r--community/ruby-ncurses/PKGBUILD29
-rw-r--r--community/rusxmms/PKGBUILD70
-rw-r--r--community/rxvt/PKGBUILD34
-rw-r--r--community/sage-mathematics/PKGBUILD105
-rw-r--r--community/sage-mathematics/SAGE-notebook.desktop19
-rw-r--r--community/sage-mathematics/sage-mathematics.install56
-rw-r--r--community/sakura/PKGBUILD38
-rw-r--r--community/sakura/sakura.install12
-rw-r--r--community/sarg/PKGBUILD41
-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.install21
-rw-r--r--community/scantailor/PKGBUILD35
-rw-r--r--community/scantailor/build-fix.patch16
-rw-r--r--community/schroot/PKGBUILD70
-rw-r--r--community/schroot/arch32-config11
-rw-r--r--community/schroot/arch32-copyfiles7
-rw-r--r--community/schroot/arch32-example10
-rw-r--r--community/schroot/arch32-mount12
-rw-r--r--community/schroot/arch32-nssdatabases6
-rw-r--r--community/schroot/pam.d.schroot.patch15
-rw-r--r--community/scilab/PKGBUILD86
-rw-r--r--community/scilab/classpath.xml173
-rw-r--r--community/scilab/configure-hdf5-vercheck.patch24
-rw-r--r--community/scilab/java.patch217
-rw-r--r--community/scilab/scilab.desktop9
-rw-r--r--community/scite/PKGBUILD45
-rw-r--r--community/scite/scite.install13
-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/PKGBUILD36
-rwxr-xr-xcommunity/scponly/setup_chroot.sh275
-rw-r--r--community/scrotwm/LICENSE47
-rw-r--r--community/scrotwm/PKGBUILD56
-rwxr-xr-xcommunity/scrotwm/baraction.sh82
-rw-r--r--community/scummvm-tools/PKGBUILD34
-rw-r--r--community/sdcc/PKGBUILD25
-rw-r--r--community/sdcv/PKGBUILD39
-rw-r--r--community/sdcv/sdcv-0.4.2-headers.patch46
-rw-r--r--community/sdcv/sdcv.changelog3
-rw-r--r--community/sdd/PKGBUILD33
-rw-r--r--community/sdd/build-fix.patch78
-rw-r--r--community/ser2net/PKGBUILD26
-rw-r--r--community/ser2net/ser2net.init54
-rw-r--r--community/setconf/PKGBUILD32
-rw-r--r--community/sfk/PKGBUILD26
-rw-r--r--community/sfml/PKGBUILD61
-rw-r--r--community/sfml/sfml.install3
-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/PKGBUILD49
-rw-r--r--community/shotwell/fix-with-libraw-0.4.patch50
-rw-r--r--community/shotwell/shotwell.install17
-rw-r--r--community/shuffle/ChangeLog3
-rw-r--r--community/shuffle/LICENSE88
-rw-r--r--community/shuffle/PKGBUILD30
-rw-r--r--community/siege/PKGBUILD32
-rw-r--r--community/sigil/PKGBUILD45
-rwxr-xr-xcommunity/sigil/sigil.desktop10
-rw-r--r--community/sigil/sigil.install12
-rw-r--r--community/silly/PKGBUILD24
-rw-r--r--community/simgear/PKGBUILD31
-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/PKGBUILD28
-rw-r--r--community/simple-scan/simple-scan.install18
-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/PKGBUILD36
-rw-r--r--community/skrooge/skrooge.changelog2
-rw-r--r--community/skrooge/skrooge.install16
-rw-r--r--community/sleuthkit/PKGBUILD33
-rw-r--r--community/sleuthkit/sleuthkit.changelog2
-rw-r--r--community/slimevolley/PKGBUILD28
-rw-r--r--community/sloccount/PKGBUILD23
-rw-r--r--community/slock/PKGBUILD28
-rw-r--r--community/slrn/PKGBUILD34
-rw-r--r--community/smalltalk/PKGBUILD42
-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/PKGBUILD53
-rw-r--r--community/soundkonverter/PKGBUILD43
-rw-r--r--community/soundkonverter/soundkonverter.install12
-rw-r--r--community/spawn-fcgi/PKGBUILD29
-rw-r--r--community/speed-dreams/PKGBUILD60
-rw-r--r--community/speed-dreams/speed-dreams.desktop9
-rw-r--r--community/splint/PKGBUILD30
-rw-r--r--community/splint/splint.sh2
-rw-r--r--community/splix/PKGBUILD31
-rw-r--r--community/splix/splix.install19
-rw-r--r--community/spring/PKGBUILD55
-rw-r--r--community/springlobby/PKGBUILD47
-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/PKGBUILD30
-rw-r--r--community/sqliteman/PKGBUILD33
-rw-r--r--community/sqliteman/sqliteman.install12
-rw-r--r--community/squashfs-tools/PKGBUILD29
-rw-r--r--community/sshguard/ChangeLog3
-rw-r--r--community/sshguard/PKGBUILD39
-rw-r--r--community/sshguard/sshguard.conf.d4
-rw-r--r--community/sshguard/sshguard.install8
-rwxr-xr-xcommunity/sshguard/sshguard.rc27
-rw-r--r--community/sshpass/PKGBUILD28
-rw-r--r--community/sslh/PKGBUILD36
-rw-r--r--community/sslh/sslh.conf3
-rw-r--r--community/sslh/sslh.rc34
-rw-r--r--community/stalonetray/PKGBUILD21
-rw-r--r--community/start-stop-daemon/PKGBUILD29
-rw-r--r--community/steghide/ChangeLog4
-rw-r--r--community/steghide/PKGBUILD43
-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/PKGBUILD65
-rw-r--r--community/stone-soup/stone-soup.desktop8
-rw-r--r--community/stone-soup/stone-soup.install11
-rw-r--r--community/stormbaancoureur/PKGBUILD28
-rw-r--r--community/stormbaancoureur/stormbaancoureur.desktop9
-rw-r--r--community/stow/PKGBUILD28
-rw-r--r--community/stress/PKGBUILD25
-rw-r--r--community/stunnel/Makefile.patch21
-rw-r--r--community/stunnel/PKGBUILD54
-rw-r--r--community/stunnel/stunnel.install35
-rw-r--r--community/stunnel/stunnel.rc.d36
-rw-r--r--community/subtitleeditor/PKGBUILD37
-rw-r--r--community/subtitleeditor/fix-taking-address-of-temporary-error.patch56
-rw-r--r--community/subtitleeditor/subtitleeditor.changelog51
-rw-r--r--community/subtitleeditor/subtitleeditor.install11
-rw-r--r--community/subtle/PKGBUILD24
-rw-r--r--community/subtle/subtle.install11
-rw-r--r--community/sunpinyin/PKGBUILD28
-rw-r--r--community/superswitcher/PKGBUILD42
-rw-r--r--community/supertux/PKGBUILD31
-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/PKGBUILD48
-rw-r--r--community/sword/PKGBUILD57
-rw-r--r--community/sword/curl.patch22
-rw-r--r--community/sxiv/PKGBUILD35
-rw-r--r--community/sxiv/config.h158
-rw-r--r--community/sxiv/sxiv.desktop7
-rw-r--r--community/sxiv/sxiv.install12
-rw-r--r--community/synce-libmimedir/PKGBUILD25
-rw-r--r--community/synce-librapi/PKGBUILD23
-rw-r--r--community/synce-libsynce/PKGBUILD26
-rw-r--r--community/synce-rra/PKGBUILD23
-rw-r--r--community/synce-rra/build-fix.diff51
-rw-r--r--community/synce-serial/PKGBUILD24
-rw-r--r--community/synce-vdccm/PKGBUILD24
-rw-r--r--community/synce-vdccm/build-fix.patch123
-rw-r--r--community/synergy/PKGBUILD40
-rw-r--r--community/synergy/synergys.rc38
-rw-r--r--community/synfig/PKGBUILD37
-rw-r--r--community/synfig/build-fix.patch31
-rw-r--r--community/synfig/ffmpeg-0.8.patch60
-rw-r--r--community/synfigstudio/PKGBUILD45
-rw-r--r--community/synfigstudio/synfigstudio.install11
-rw-r--r--community/sysprof/PKGBUILD28
-rw-r--r--community/sysprof/sysprof.install12
-rw-r--r--community/sysstat/PKGBUILD40
-rw-r--r--community/sysstat/sysstat22
-rw-r--r--community/systemd/PKGBUILD81
-rw-r--r--community/systemd/os-release5
-rw-r--r--community/systemd/systemctl-completion.patch77
-rw-r--r--community/systemd/systemd.install53
-rw-r--r--community/sysvbanner/PKGBUILD28
-rw-r--r--community/sysvbanner/man.patch16
-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/PKGBUILD36
-rw-r--r--community/tagtool/PKGBUILD32
-rw-r--r--community/tagtool/tagtool.install22
-rw-r--r--community/task/PKGBUILD40
-rw-r--r--community/tasks/PKGBUILD32
-rw-r--r--community/tasks/tasks.install11
-rw-r--r--community/tcc/ChangeLog3
-rw-r--r--community/tcc/PKGBUILD46
-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/PKGBUILD35
-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/PKGBUILD33
-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/PKGBUILD59
-rw-r--r--community/teeworlds/teeworlds.desktop14
-rw-r--r--community/teeworlds/teeworlds.pngbin0 -> 1701 bytes
-rw-r--r--community/tellico/PKGBUILD40
-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/PKGBUILD95
-rw-r--r--community/texmaker/PKGBUILD35
-rw-r--r--community/texvc/PKGBUILD23
-rw-r--r--community/tig/PKGBUILD27
-rw-r--r--community/tilda/PKGBUILD33
-rw-r--r--community/tilda/fix.patch24
-rw-r--r--community/tilda/tilda.changelog16
-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/PKGBUILD31
-rw-r--r--community/tls/tls.patch28
-rw-r--r--community/tmux/LICENSE13
-rw-r--r--community/tmux/PKGBUILD35
-rw-r--r--community/tmw/PKGBUILD27
-rw-r--r--community/tnef/PKGBUILD21
-rw-r--r--community/tnftp/PKGBUILD23
-rw-r--r--community/tomoyo-tools/PKGBUILD30
-rw-r--r--community/tomoyo-tools/tomoyo-tools.install11
-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/PKGBUILD33
-rw-r--r--community/tora/tora.install19
-rw-r--r--community/torch/PKGBUILD33
-rw-r--r--community/torcs/PKGBUILD35
-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/transset-df/PKGBUILD24
-rw-r--r--community/trayion/PKGBUILD18
-rw-r--r--community/trayion/trayion.install19
-rw-r--r--community/tre/PKGBUILD33
-rw-r--r--community/tremulous/PKGBUILD72
-rw-r--r--community/tremulous/fix_fs26749.patch21
-rw-r--r--community/tremulous/tremded.sh17
-rw-r--r--community/tremulous/tremdedrc1
-rw-r--r--community/tremulous/tremulous.desktop8
-rw-r--r--community/tremulous/tremulous.sh14
-rw-r--r--community/tremulous/tremulous.xpm90
-rw-r--r--community/trickle/PKGBUILD22
-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/PKGBUILD112
-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/PKGBUILD25
-rw-r--r--community/tvision/tvision-build-fix.patch13
-rw-r--r--community/tvtime/PKGBUILD33
-rw-r--r--community/tvtime/tvtime-1.0.2+linux-headers-2.6.18.patch16
-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/PKGBUILD26
-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/ucarp/01-fix-getopt.patch11
-rw-r--r--community/ucarp/02-fix-downscript-on-error.c12
-rw-r--r--community/ucarp/PKGBUILD50
-rw-r--r--community/ucarp/ucarp.conf3
-rw-r--r--community/ucarp/ucarp.rc34
-rw-r--r--community/ucl/PKGBUILD23
-rw-r--r--community/ude/PKGBUILD31
-rw-r--r--community/ude/ude.desktop8
-rw-r--r--community/udunits/PKGBUILD33
-rw-r--r--community/udunits/udunits.install26
-rw-r--r--community/ulogd/PKGBUILD44
-rw-r--r--community/ulogd/logrotate10
-rw-r--r--community/ulogd/rc54
-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/PKGBUILD48
-rw-r--r--community/unbound/install18
-rw-r--r--community/unbound/rc.d39
-rw-r--r--community/unbound/unbound.conf4
-rw-r--r--community/unclutter/PKGBUILD25
-rw-r--r--community/unhide/PKGBUILD31
-rw-r--r--community/uniconvertor/PKGBUILD25
-rw-r--r--community/unifdef/PKGBUILD22
-rw-r--r--community/units/PKGBUILD24
-rw-r--r--community/units/units.install18
-rw-r--r--community/unpaper/PKGBUILD23
-rw-r--r--community/unrealircd/PKGBUILD63
-rw-r--r--community/unrealircd/arch-fixes.patch89
-rwxr-xr-xcommunity/unrealircd/unrealircd.rc62
-rw-r--r--community/unrtf/ChangeLog8
-rw-r--r--community/unrtf/PKGBUILD32
-rw-r--r--community/unrtf/unrtf.changelog11
-rw-r--r--community/unshield/PKGBUILD27
-rw-r--r--community/unshield/libunshield.c.patch12
-rw-r--r--community/uptimed/PKGBUILD44
-rwxr-xr-xcommunity/uptimed/uptimed39
-rw-r--r--community/uptimed/uptimed.install7
-rw-r--r--community/upx/PKGBUILD30
-rw-r--r--community/uqm/PKGBUILD59
-rw-r--r--community/uqm/config.state13
-rw-r--r--community/uqm/uqm2
-rw-r--r--community/uqm/uqm.desktop10
-rw-r--r--community/uqm/uqm.pngbin0 -> 3630 bytes
-rw-r--r--community/uriparser/PKGBUILD25
-rw-r--r--community/usb_modeswitch/PKGBUILD44
-rw-r--r--community/ushare/PKGBUILD50
-rw-r--r--community/ushare/upnp-build-fix.patch156
-rwxr-xr-xcommunity/ushare/ushare56
-rw-r--r--community/ushare/ushare-config.patch22
-rw-r--r--community/ushare/ushare.install17
-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/PKGBUILD64
-rw-r--r--community/uzbl/uzbl.install17
-rw-r--r--community/v8/PKGBUILD32
-rw-r--r--community/vamps/PKGBUILD26
-rw-r--r--community/vbetool/PKGBUILD32
-rw-r--r--community/vbindiff/PKGBUILD25
-rw-r--r--community/vdrift/PKGBUILD60
-rw-r--r--community/vdrift/vdrift.desktop11
-rw-r--r--community/vhba-module/PKGBUILD30
-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/PKGBUILD27
-rw-r--r--community/vifm/vifm.changelog14
-rw-r--r--community/viking/PKGBUILD33
-rw-r--r--community/viking/viking.changelog8
-rw-r--r--community/viking/viking.install11
-rw-r--r--community/vile/PKGBUILD31
-rw-r--r--community/virtualbox-modules/60-vboxguest.rules2
-rw-r--r--community/virtualbox-modules/LocalConfig.kmk19
-rw-r--r--community/virtualbox-modules/PKGBUILD101
-rw-r--r--community/virtualbox-modules/virtualbox-archlinux-modules.install17
-rw-r--r--community/virtualbox-modules/virtualbox-modules.install19
-rw-r--r--community/virtualbox/10-vboxdrv.rules5
-rw-r--r--community/virtualbox/LocalConfig.kmk19
-rw-r--r--community/virtualbox/PKGBUILD189
-rw-r--r--community/virtualbox/change_default_driver_dir.patch18
-rw-r--r--community/virtualbox/vbox-service.conf2
-rwxr-xr-xcommunity/virtualbox/vbox-service.rc39
-rwxr-xr-xcommunity/virtualbox/vboxbuild86
-rw-r--r--community/virtualbox/vboxdrv-reference.patch57
-rw-r--r--community/virtualbox/virtualbox-source.install12
-rw-r--r--community/virtualbox/virtualbox.install34
-rw-r--r--community/virtviewer/PKGBUILD23
-rw-r--r--community/visitors/PKGBUILD24
-rw-r--r--community/vlan/PKGBUILD27
-rw-r--r--community/vlock/ChangeLog18
-rw-r--r--community/vlock/PKGBUILD32
-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/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/PKGBUILD108
-rw-r--r--community/vtk/ffmpeg-0.8.diff66
-rw-r--r--community/vtk/fixkernelversioncheck.diff19
-rw-r--r--community/vym/PKGBUILD45
-rw-r--r--community/vym/vym.changelog11
-rw-r--r--community/vym/vym.desktop38
-rw-r--r--community/vym/vym.install11
-rw-r--r--community/vyqchat/PKGBUILD29
-rw-r--r--community/vyqchat/build-fix.patch36
-rw-r--r--community/w3cam/PKGBUILD32
-rw-r--r--community/warmux/PKGBUILD35
-rw-r--r--community/warsow/PKGBUILD87
-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/PKGBUILD30
-rw-r--r--community/wbar/PKGBUILD28
-rw-r--r--community/wbar/wbar.changelog9
-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/windowlab/PKGBUILD24
-rw-r--r--community/wine/PKGBUILD144
-rw-r--r--community/wine/wine.install12
-rw-r--r--community/winefish/PKGBUILD31
-rw-r--r--community/winefish/winefish.install14
-rw-r--r--community/winegame/PKGBUILD33
-rw-r--r--community/winestuff/PKGBUILD34
-rw-r--r--community/wkhtmltopdf/PKGBUILD30
-rw-r--r--community/wmctrl/PKGBUILD29
-rw-r--r--community/wmii/PKGBUILD40
-rw-r--r--community/wmii/fix-freetype-include.patch11
-rw-r--r--community/wml/PKGBUILD42
-rw-r--r--community/wmname/PKGBUILD25
-rw-r--r--community/wol/PKGBUILD28
-rw-r--r--community/wol/wol.install20
-rw-r--r--community/workrave/PKGBUILD28
-rw-r--r--community/wput/PKGBUILD26
-rw-r--r--community/wt/PKGBUILD44
-rw-r--r--community/wt/wt-boost-1.47.patch11
-rw-r--r--community/wvdial/PKGBUILD30
-rw-r--r--community/wvstreams/PKGBUILD43
-rw-r--r--community/wvstreams/wvstreams-4.6.1-glibc212.patch24
-rw-r--r--community/wxsvg/PKGBUILD27
-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/1.11.0_pre797991-parallel-build.patch62
-rw-r--r--community/xalan-c/PKGBUILD38
-rw-r--r--community/xapian-core/PKGBUILD29
-rw-r--r--community/xautolock/PKGBUILD29
-rw-r--r--community/xautomation/PKGBUILD26
-rw-r--r--community/xbindkeys/PKGBUILD26
-rw-r--r--community/xboard/PKGBUILD33
-rw-r--r--community/xboard/xboard.desktop9
-rw-r--r--community/xboard/xboard.install15
-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/PKGBUILD47
-rw-r--r--community/xdiskusage/stdin-is-null.patch31
-rw-r--r--community/xdotool/PKGBUILD26
-rw-r--r--community/xemacs/PKGBUILD65
-rw-r--r--community/xemacs/xemacs-21.5.29-optimization-bug.patch14
-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/PKGBUILD28
-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/PKGBUILD36
-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/PKGBUILD40
-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.patch74
-rw-r--r--community/xloadimage/license.txt19
-rw-r--r--community/xlockmore/LICENSE18
-rw-r--r--community/xlockmore/PKGBUILD30
-rw-r--r--community/xml2/01_use_libxml2_instead_of_libxml.patch70
-rw-r--r--community/xml2/PKGBUILD30
-rw-r--r--community/xmldiff/PKGBUILD29
-rw-r--r--community/xmlrpc-c/PKGBUILD40
-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/PKGBUILD76
-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.rc39
-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/PKGBUILD48
-rw-r--r--community/xmonad/xmonad.desktop7
-rw-r--r--community/xmonad/xmonad.install22
-rw-r--r--community/xmonad/xmonad.pngbin0 -> 2735 bytes
-rw-r--r--community/xmonad/xmonad.session6
-rw-r--r--community/xmonad/xmonad.svg77
-rw-r--r--community/xmoto/PKGBUILD39
-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/PKGBUILD24
-rw-r--r--community/xnc/xnc-gcc44.patch72
-rw-r--r--community/xnee/PKGBUILD30
-rw-r--r--community/xnee/xnee.changelog8
-rw-r--r--community/xosd/PKGBUILD30
-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/PKGBUILD27
-rw-r--r--community/xpad/xpad-gtk-2.20.patch98
-rw-r--r--community/xpad/xpad.install11
-rw-r--r--community/xplanet/PKGBUILD22
-rw-r--r--community/xplc/PKGBUILD32
-rw-r--r--community/xrestop/ChangeLog4
-rw-r--r--community/xrestop/PKGBUILD24
-rw-r--r--community/xsel/PKGBUILD24
-rw-r--r--community/xsensors/PKGBUILD42
-rw-r--r--community/xsensors/remove-unused-variables.patch39
-rw-r--r--community/xsensors/replace-deprecated-gtk.patch168
-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/xvidcap/PKGBUILD50
-rw-r--r--community/xvidcap/ffmpeg-0.8.patch82
-rw-r--r--community/xvidcap/xextproto-7.1.1.patch11
-rw-r--r--community/xvidcap/xvidcap-ffmpeg.patch105
-rw-r--r--community/xvkbd/PKGBUILD33
-rw-r--r--community/xwax/PKGBUILD35
-rw-r--r--community/xxkb/PKGBUILD42
-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/yagf/PKGBUILD25
-rw-r--r--community/yagf/yagf.install13
-rw-r--r--community/yajl/PKGBUILD33
-rw-r--r--community/yaml-cpp/PKGBUILD25
-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.install13
-rw-r--r--community/zaz/PKGBUILD31
-rw-r--r--community/zeromq/PKGBUILD26
-rw-r--r--community/znc/PKGBUILD38
-rw-r--r--community/zynaddsubfx/PKGBUILD62
-rw-r--r--community/zynaddsubfx/zynaddsubfx.desktop8
-rw-r--r--community/zynaddsubfx/zynaddsubfx.svg313
-rw-r--r--core/acl/PKGBUILD34
-rw-r--r--core/attr/PKGBUILD38
-rw-r--r--core/bash/PKGBUILD121
-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/binutils/PKGBUILD84
-rw-r--r--core/binutils/binutils.install17
-rw-r--r--core/bison/PKGBUILD39
-rw-r--r--core/bison/bison-2.5-undefined-reference.patch11
-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/PKGBUILD69
-rw-r--r--core/bzip2/bzip2-1.0.4-bzip2recover.patch12
-rw-r--r--core/cloog/PKGBUILD31
-rw-r--r--core/coreutils/PKGBUILD70
-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/PKGBUILD34
-rw-r--r--core/crda/PKGBUILD39
-rw-r--r--core/crda/crda.install18
-rwxr-xr-xcore/crda/crda.rc26
-rw-r--r--core/cronie/PKGBUILD64
-rw-r--r--core/cronie/cron.deny1
-rw-r--r--core/cronie/pam.d10
-rwxr-xr-xcore/cronie/rc.d38
-rw-r--r--core/cryptsetup/PKGBUILD38
-rw-r--r--core/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch94
-rw-r--r--core/cryptsetup/encrypt_hook148
-rw-r--r--core/cryptsetup/encrypt_install26
-rw-r--r--core/curl/PKGBUILD70
-rw-r--r--core/curl/curlbuild.h9
-rw-r--r--core/curl/fix-J-with-O-regression.patch142
-rw-r--r--core/dash/PKGBUILD28
-rw-r--r--core/dash/dash.install11
-rw-r--r--core/db/PKGBUILD32
-rw-r--r--core/db/db.install5
-rw-r--r--core/dbus-core/PKGBUILD57
-rw-r--r--core/dbus-core/dbus57
-rw-r--r--core/dbus-core/dbus.install24
-rw-r--r--core/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch33
-rw-r--r--core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch61
-rw-r--r--core/dhcpcd/PKGBUILD57
-rw-r--r--core/dhcpcd/dhcpcd.conf.d6
-rw-r--r--core/dhcpcd/remove_ifconfig.patch20
-rw-r--r--core/dialog/PKGBUILD27
-rw-r--r--core/diffutils/PKGBUILD32
-rw-r--r--core/diffutils/diffutils.install20
-rw-r--r--core/dmraid/PKGBUILD39
-rw-r--r--core/dmraid/dmraid.install14
-rw-r--r--core/dmraid/dmraid_hook19
-rw-r--r--core/dmraid/dmraid_install19
-rw-r--r--core/dnsutils/PKGBUILD55
-rw-r--r--core/dnsutils/remove-bind.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/PKGBUILD42
-rw-r--r--core/eglibc/PKGBUILD149
-rw-r--r--core/eglibc/glibc-2.13-prelink.patch26
-rw-r--r--core/eglibc/glibc.install20
-rwxr-xr-xcore/eglibc/locale-gen42
-rw-r--r--core/eglibc/locale.gen.txt23
-rwxr-xr-xcore/eglibc/nscd40
-rw-r--r--core/eventlog/ChangeLog19
-rw-r--r--core/eventlog/PKGBUILD32
-rw-r--r--core/expat/CVE-2009-3560.patch13
-rw-r--r--core/expat/CVE-2009-3720.patch12
-rw-r--r--core/expat/PKGBUILD38
-rw-r--r--core/fakeroot/PKGBUILD35
-rw-r--r--core/fakeroot/fakeroot.install14
-rw-r--r--core/file/PKGBUILD34
-rw-r--r--core/findutils/PKGBUILD36
-rw-r--r--core/findutils/findutils.install22
-rw-r--r--core/flex/PKGBUILD59
-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/PKGBUILD41
-rw-r--r--core/gawk/gawk.install22
-rw-r--r--core/gcc/PKGBUILD278
-rw-r--r--core/gcc/gcc-ada.install20
-rw-r--r--core/gcc/gcc-fortran.install16
-rw-r--r--core/gcc/gcc-go.install20
-rw-r--r--core/gcc/gcc-hash-style-both.patch122
-rw-r--r--core/gcc/gcc-libs.install16
-rw-r--r--core/gcc/gcc-pr49720.patch26
-rw-r--r--core/gcc/gcc.install20
-rw-r--r--core/gcc/gcc_mips64el_lib.patch25
-rw-r--r--core/gcc/gcc_pure64.patch26
-rw-r--r--core/gdbm/PKGBUILD57
-rw-r--r--core/gdbm/gdbm-1.10-zeroheaders.patch33
-rw-r--r--core/gdbm/gdbm.install21
-rw-r--r--core/gettext/PKGBUILD34
-rw-r--r--core/gettext/gettext.install22
-rw-r--r--core/glib2/PKGBUILD43
-rw-r--r--core/glib2/glib2.csh1
-rw-r--r--core/glib2/glib2.sh1
-rw-r--r--core/glibc/.arch1
-rw-r--r--core/glibc/PKGBUILD222
-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-futex.patch31
-rw-r--r--core/glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--core/glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--core/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--core/glibc/glibc-2.14-revert-4768ae77.patch37
-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/538dfce27f41.patch38
-rw-r--r--core/gmp/PKGBUILD40
-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/PKGBUILD34
-rw-r--r--core/grep/grep.install21
-rw-r--r--core/groff/PKGBUILD48
-rw-r--r--core/groff/groff.install20
-rw-r--r--core/groff/site.tmac16
-rw-r--r--core/gzip/PKGBUILD43
-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/heirloom-mailx/PKGBUILD64
-rw-r--r--core/idnkit/PKGBUILD42
-rw-r--r--core/ifenslave/PKGBUILD31
-rw-r--r--core/ifenslave/bonding.conf.d12
-rw-r--r--core/inetutils/PKGBUILD72
-rw-r--r--core/inetutils/dnsdomainname3
-rw-r--r--core/inetutils/domainname3
-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/PKGBUILD51
-rw-r--r--core/iproute2/iproute2-fhs.patch84
-rw-r--r--core/iptables/PKGBUILD70
-rw-r--r--core/iptables/empty-filter.rules6
-rw-r--r--core/iptables/empty-mangle.rules8
-rw-r--r--core/iptables/empty-nat.rules7
-rw-r--r--core/iptables/empty-raw.rules5
-rw-r--r--core/iptables/empty-security.rules6
-rw-r--r--core/iptables/empty.rules6
-rwxr-xr-xcore/iptables/ip6tables69
-rwxr-xr-xcore/iptables/iptables68
-rw-r--r--core/iptables/iptables.conf.d12
-rw-r--r--core/iptables/simple_firewall.rules11
-rw-r--r--core/iputils/PKGBUILD67
-rw-r--r--core/iputils/iputils-s20101006-manpages.patch1044
-rw-r--r--core/iputils/permission-fix.patch15
-rw-r--r--core/isl/PKGBUILD33
-rw-r--r--core/iw/PKGBUILD24
-rw-r--r--core/jfsutils/PKGBUILD30
-rw-r--r--core/kbd/PKGBUILD44
-rw-r--r--core/kbd/fix-es.po.patch11
-rw-r--r--core/keyutils/PKGBUILD24
-rw-r--r--core/krb5/PKGBUILD90
-rw-r--r--core/krb5/krb5-1.9.1-2011-006.patch75
-rw-r--r--core/krb5/krb5-1.9.1-2011-007.patch40
-rw-r--r--core/krb5/krb5-1.9.1-canonicalize-fallback.patch58
-rw-r--r--core/krb5/krb5-1.9.1-config-script.patch27
-rw-r--r--core/krb5/krb5-kadmind40
-rw-r--r--core/krb5/krb5-kdc40
-rw-r--r--core/krb5/krb5-kpropd40
-rw-r--r--core/less/PKGBUILD31
-rw-r--r--core/libarchive/PKGBUILD38
-rw-r--r--core/libarchive/release-2.8-fixes.patch234
-rw-r--r--core/libcap/PKGBUILD27
-rw-r--r--core/libedit/PKGBUILD30
-rw-r--r--core/libevent/PKGBUILD34
-rw-r--r--core/libfetch/Makefile68
-rw-r--r--core/libfetch/PKGBUILD48
-rw-r--r--core/libfetch/fetch-handle-temp-redirect.patch15
-rw-r--r--core/libffi/PKGBUILD27
-rw-r--r--core/libffi/libffi.install20
-rw-r--r--core/libgcrypt/PKGBUILD41
-rw-r--r--core/libgcrypt/libgcrypt.install20
-rw-r--r--core/libgpg-error/PKGBUILD37
-rw-r--r--core/libgssglue/PKGBUILD34
-rw-r--r--core/libgssglue/gssapi_mech.conf22
-rw-r--r--core/libmpc/PKGBUILD39
-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/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch344
-rw-r--r--core/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch159
-rw-r--r--core/libpcap/PKGBUILD41
-rw-r--r--core/libpipeline/PKGBUILD30
-rw-r--r--core/librpcsecgss/PKGBUILD32
-rw-r--r--core/librpcsecgss/librpcsecgss-0.18-heimdal.patch33
-rw-r--r--core/libsasl/0003_saslauthd_mdoc.patch35
-rw-r--r--core/libsasl/0010_maintainer_mode.patch19
-rw-r--r--core/libsasl/0011_saslauthd_ac_prog_libtool.patch15
-rw-r--r--core/libsasl/0012_xopen_crypt_prototype.patch20
-rw-r--r--core/libsasl/0016_pid_file_lock_creation_mask.patch27
-rw-r--r--core/libsasl/0018_auth_rimap_quotes.patch35
-rw-r--r--core/libsasl/0019_ldap_deprecated.patch22
-rw-r--r--core/libsasl/0022_gcc4.4_preprocessor_syntax.patch26
-rw-r--r--core/libsasl/0025_ld_as_needed.patch27
-rw-r--r--core/libsasl/0026_drop_krb5support_dependency.patch14
-rw-r--r--core/libsasl/0027_db5_support.patch24
-rw-r--r--core/libsasl/0030-dont_use_la_files_for_opening_plugins.patch134
-rw-r--r--core/libsasl/PKGBUILD204
-rw-r--r--core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch170
-rw-r--r--core/libsasl/cyrus-sasl-2.1.22-as-needed.patch11
-rw-r--r--core/libsasl/cyrus-sasl-2.1.22-automake-1.10.patch94
-rw-r--r--core/libsasl/cyrus-sasl-2.1.22-crypt.patch71
-rw-r--r--core/libsasl/cyrus-sasl-2.1.22-qa.patch22
-rw-r--r--core/libsasl/cyrus-sasl-2.1.23-authd-fix.patch28
-rw-r--r--core/libsasl/saslauthd49
-rw-r--r--core/libsasl/saslauthd.conf.d1
-rw-r--r--core/libssh2/PKGBUILD33
-rw-r--r--core/libtirpc/PKGBUILD42
-rw-r--r--core/libtirpc/libtirpc-0.2.1-fortify.patch18
-rw-r--r--core/libtirpc/libtirpc-0.2.3rc1.patch637
-rw-r--r--core/libtirpc/libtirpc-fix-segfault-0.2.2.patch28
-rw-r--r--core/libtool/PKGBUILD52
-rw-r--r--core/libtool/libtool.install20
-rw-r--r--core/libtool/nopic.patch13
-rw-r--r--core/libusb-compat/PKGBUILD27
-rw-r--r--core/libusb/PKGBUILD30
-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/PKGBUILD39
-rw-r--r--core/linux-atm/PKGBUILD29
-rw-r--r--core/linux-atm/man-pages.patch45
-rw-r--r--core/logrotate/PKGBUILD48
-rw-r--r--core/logrotate/logrotate-3.8.1-noasprintf.patch53
-rw-r--r--core/logrotate/logrotate.conf31
-rwxr-xr-xcore/logrotate/logrotate.cron.daily3
-rw-r--r--core/lvm2/11-dm-initramfs.rules3
-rw-r--r--core/lvm2/PKGBUILD64
-rw-r--r--core/lvm2/lvm2_hook25
-rw-r--r--core/lvm2/lvm2_install29
-rw-r--r--core/lzo2/PKGBUILD36
-rw-r--r--core/m4/PKGBUILD36
-rw-r--r--core/m4/m4-1.4.16-readlink-einval.patch12
-rw-r--r--core/m4/m4.install20
-rw-r--r--core/make/PKGBUILD55
-rw-r--r--core/make/bug30612.patch66
-rw-r--r--core/make/bug30723.patch12
-rw-r--r--core/make/make-3.82-makeflags.patch36
-rw-r--r--core/make/make-3.82-sort-blank.patch17
-rw-r--r--core/make/make.install20
-rw-r--r--core/man-db/1361_1360.diff25
-rw-r--r--core/man-db/PKGBUILD60
-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.install22
-rw-r--r--core/mdadm/PKGBUILD55
-rw-r--r--core/mdadm/disable-werror.patch11
-rw-r--r--core/mdadm/linux-3.0.patch45
-rwxr-xr-xcore/mdadm/mdadm37
-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_install45
-rw-r--r--core/mdadm/mdadm_udev_install23
-rw-r--r--core/mkinitcpio-busybox/PKGBUILD39
-rw-r--r--core/mkinitcpio-busybox/config1013
-rw-r--r--core/mkinitcpio-nfs-utils/PKGBUILD23
-rw-r--r--core/mkinitcpio/PKGBUILD30
-rw-r--r--core/mkinitcpio/patch.patch11
-rw-r--r--core/mlocate/PKGBUILD56
-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/PKGBUILD49
-rw-r--r--core/module-init-tools/depmod.conf5
-rw-r--r--core/module-init-tools/docfix.patch90
-rw-r--r--core/module-init-tools/modprobe.conf3
-rw-r--r--core/mpfr/PKGBUILD39
-rw-r--r--core/mpfr/mpfr-3.1.0.p3.patch393
-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/PKGBUILD74
-rw-r--r--core/net-tools/PKGBUILD43
-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.install12
-rw-r--r--core/net-tools/net-tools.patch30
-rw-r--r--core/nfs-utils/PKGBUILD73
-rw-r--r--core/nfs-utils/exports15
-rw-r--r--core/nfs-utils/idmapd.conf14
-rw-r--r--core/nfs-utils/kernel-3.0-segfault.patch53
-rw-r--r--core/nfs-utils/nfs-common315
-rw-r--r--core/nfs-utils/nfs-common.conf40
-rw-r--r--core/nfs-utils/nfs-server299
-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/PKGBUILD29
-rw-r--r--core/nilfs-utils/PKGBUILD26
-rw-r--r--core/openldap/PKGBUILD96
-rw-r--r--core/openldap/ntlm.patch230
-rw-r--r--core/openldap/openldap.install20
-rwxr-xr-xcore/openldap/slapd49
-rw-r--r--core/openldap/slapd.default6
-rw-r--r--core/openssh/PKGBUILD67
-rwxr-xr-xcore/openssh/sshd45
-rw-r--r--core/openssh/sshd.confd4
-rw-r--r--core/openssh/sshd.pam12
-rw-r--r--core/openssl/PKGBUILD88
-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/PKGBUILD70
-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/pacman.conf.mips64el86
-rw-r--r--core/pam/PKGBUILD62
-rw-r--r--core/pam/other5
-rw-r--r--core/pam/pam.install12
-rw-r--r--core/patch/PKGBUILD40
-rw-r--r--core/patch/patch-2.6.1-get-arg.patch12
-rw-r--r--core/pciutils/PKGBUILD31
-rw-r--r--core/pcmciautils/PKGBUILD27
-rw-r--r--core/pcre/PKGBUILD43
-rw-r--r--core/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch83
-rw-r--r--core/perl/ChangeLog66
-rw-r--r--core/perl/PKGBUILD119
-rw-r--r--core/perl/fix-h2ph-and-tests.patch104
-rw-r--r--core/perl/perl.install10
-rw-r--r--core/perl/perlbin.csh15
-rwxr-xr-xcore/perl/perlbin.sh18
-rw-r--r--core/perl/provides.pl286
-rw-r--r--core/pkg-config/PKGBUILD37
-rw-r--r--core/pkg-config/autoconf-2.66.patch12
-rw-r--r--core/popt/PKGBUILD42
-rw-r--r--core/ppl/PKGBUILD37
-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/PKGBUILD87
-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-kernel3-uts.patch20
-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/PKGBUILD26
-rw-r--r--core/readline/PKGBUILD64
-rw-r--r--core/readline/inputrc36
-rw-r--r--core/readline/readline.install17
-rw-r--r--core/reiserfsprogs/PKGBUILD34
-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/rpcbind/PKGBUILD42
-rwxr-xr-xcore/rpcbind/rpcbind39
-rw-r--r--core/rpcbind/rpcbind-sunrpc.patch22
-rw-r--r--core/run-parts/PKGBUILD28
-rw-r--r--core/sdparm/PKGBUILD34
-rw-r--r--core/sed/PKGBUILD34
-rw-r--r--core/sed/sed.install20
-rw-r--r--core/shadow/LICENSE31
-rw-r--r--core/shadow/PKGBUILD107
-rw-r--r--core/shadow/adduser399
-rw-r--r--core/shadow/chgpasswd4
-rw-r--r--core/shadow/chpasswd6
-rw-r--r--core/shadow/defaults.pam6
-rw-r--r--core/shadow/login21
-rw-r--r--core/shadow/login.defs197
-rw-r--r--core/shadow/newusers6
-rw-r--r--core/shadow/passwd4
-rw-r--r--core/shadow/shadow-add-missing-include.patch11
-rw-r--r--core/shadow/shadow-strncpy-usage.patch27
-rwxr-xr-xcore/shadow/shadow.cron.daily6
-rw-r--r--core/shadow/shadow.install9
-rw-r--r--core/shadow/shadow_CVE-2011-0721.patch57
-rw-r--r--core/shadow/useradd.defaults9
-rw-r--r--core/shadow/xstrdup.patch9
-rw-r--r--core/sqlite3/PKGBUILD62
-rw-r--r--core/sqlite3/PKGBUILD.mips64el62
-rw-r--r--core/sqlite3/license.txt33
-rw-r--r--core/sudo/PKGBUILD38
-rw-r--r--core/sudo/sudo.pam3
-rw-r--r--core/sysfsutils/PKGBUILD36
-rw-r--r--core/syslinux/.arch1
-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/PKGBUILD53
-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.rc66
-rw-r--r--core/sysvinit/PKGBUILD32
-rw-r--r--core/sysvinit/sysvinit.install3
-rw-r--r--core/tar/PKGBUILD38
-rw-r--r--core/tar/tar.1367
-rw-r--r--core/tar/tar.install21
-rw-r--r--core/texinfo/PKGBUILD34
-rw-r--r--core/texinfo/texinfo-4.13a-data_types.patch32
-rw-r--r--core/texinfo/texinfo.install21
-rw-r--r--core/tzdata/Makefile.patch140
-rw-r--r--core/tzdata/PKGBUILD46
-rw-r--r--core/udev/81-arch.rules9
-rw-r--r--core/udev/PKGBUILD106
-rw-r--r--core/udev/udev.install62
-rw-r--r--core/usbutils/PKGBUILD43
-rw-r--r--core/usbutils/fix-python2.patch17
-rw-r--r--core/usbutils/usb.ids-2011.08.1716529
-rw-r--r--core/util-linux/PKGBUILD45
-rw-r--r--core/vi/PKGBUILD47
-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/wget/PKGBUILD45
-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/PKGBUILD30
-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/PKGBUILD43
-rw-r--r--core/zlib/PKGBUILD39
-rw-r--r--core/zlib/zlib-1.2.5-lfs-decls.patch13
-rw-r--r--elementary/gtk-engine-equinox/PKGBUILD2
-rw-r--r--elementary/postler/PKGBUILD2
-rw-r--r--elementary/vala-010/PKGBUILD2
-rw-r--r--extra/a2ps/PKGBUILD50
-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/PKGBUILD33
-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/abiword-2.8.6-no-undefined.patch21
-rw-r--r--extra/abiword/abiword.install11
-rw-r--r--extra/abook/PKGBUILD27
-rw-r--r--extra/accountsservice/PKGBUILD33
-rw-r--r--extra/acpi/PKGBUILD25
-rw-r--r--extra/acpid/PKGBUILD43
-rw-r--r--extra/acpid/acpid38
-rw-r--r--extra/acpid/acpid.conf.d5
-rw-r--r--extra/acpid/anything3
-rw-r--r--extra/acpid/handler.sh70
-rw-r--r--extra/aiksaurus/PKGBUILD32
-rw-r--r--extra/aiksaurus/aiksaurus-gcc44.patch31
-rw-r--r--extra/aisleriot/PKGBUILD36
-rw-r--r--extra/aisleriot/aisleriot.install22
-rw-r--r--extra/akonadi/PKGBUILD33
-rw-r--r--extra/akonadi/akonadi.install11
-rw-r--r--extra/alex/PKGBUILD31
-rw-r--r--extra/allegro/PKGBUILD36
-rw-r--r--extra/allegro4/LICENSE26
-rw-r--r--extra/allegro4/PKGBUILD38
-rw-r--r--extra/alsa-lib/PKGBUILD27
-rw-r--r--extra/alsa-oss/PKGBUILD25
-rw-r--r--extra/alsa-plugins/PKGBUILD36
-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/PKGBUILD38
-rw-r--r--extra/alsaplayer/alsaplayer.install11
-rw-r--r--extra/amarok/PKGBUILD39
-rw-r--r--extra/amarok/amarok.install12
-rw-r--r--extra/amule/PKGBUILD44
-rw-r--r--extra/anjuta-extras/PKGBUILD27
-rw-r--r--extra/anjuta-extras/anjuta-extras.install11
-rw-r--r--extra/anjuta/PKGBUILD33
-rw-r--r--extra/anjuta/anjuta.install21
-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/PKGBUILD145
-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/PKGBUILD28
-rw-r--r--extra/apr/PKGBUILD28
-rw-r--r--extra/apricots/PKGBUILD28
-rw-r--r--extra/apricots/apricots-0.2.6-freealut.patch65
-rw-r--r--extra/ardour/PKGBUILD56
-rw-r--r--extra/ardour/ardour.changelog49
-rw-r--r--extra/ardour/ardour.desktop9
-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/PKGBUILD49
-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/PKGBUILD40
-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/PKGBUILD27
-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/PKGBUILD33
-rw-r--r--extra/aspell/aspell.install24
-rw-r--r--extra/asymptote/PKGBUILD43
-rw-r--r--extra/asymptote/texlive.install20
-rw-r--r--extra/at-spi/PKGBUILD35
-rw-r--r--extra/at-spi/at-spi.install17
-rw-r--r--extra/at-spi2-atk/PKGBUILD34
-rw-r--r--extra/at-spi2-atk/at-spi2-atk.install11
-rw-r--r--extra/at-spi2-core/PKGBUILD33
-rw-r--r--extra/at/PKGBUILD33
-rw-r--r--extra/at/atd35
-rw-r--r--extra/aterm/PKGBUILD28
-rw-r--r--extra/atk/PKGBUILD26
-rw-r--r--extra/atkmm/PKGBUILD35
-rw-r--r--extra/attica/PKGBUILD29
-rw-r--r--extra/aubio/PKGBUILD27
-rw-r--r--extra/audacious/PKGBUILD32
-rw-r--r--extra/audacious/install13
-rw-r--r--extra/audacity/PKGBUILD36
-rw-r--r--extra/audacity/audacity-1.3.13-ffmpeg.patch164
-rw-r--r--extra/audacity/audacity.install13
-rw-r--r--extra/audiofile/PKGBUILD30
-rw-r--r--extra/autogen/PKGBUILD28
-rw-r--r--extra/autogen/autogen.install20
-rw-r--r--extra/automoc4/PKGBUILD33
-rw-r--r--extra/automoc4/license.txt31
-rw-r--r--extra/autopano-sift-c/PKGBUILD27
-rw-r--r--extra/avahi/PKGBUILD93
-rw-r--r--extra/avahi/gnome-nettool.pngbin0 -> 4509 bytes
-rw-r--r--extra/avahi/install21
-rw-r--r--extra/avahi/rc.d.patch11
-rw-r--r--extra/avfs/PKGBUILD22
-rw-r--r--extra/avidemux/PKGBUILD120
-rw-r--r--extra/avidemux/avidemux-2.5.4-x264-build115.patch45
-rw-r--r--extra/avidemux/avidemux.install11
-rw-r--r--extra/avogadro/PKGBUILD42
-rw-r--r--extra/avogadro/avogadro.install11
-rw-r--r--extra/avogadro/fix-boost.patch33
-rw-r--r--extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch778
-rw-r--r--extra/babl/PKGBUILD30
-rw-r--r--extra/banshee/PKGBUILD49
-rw-r--r--extra/banshee/banshee-recent-gpod.patch24
-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/PKGBUILD36
-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/beep/PKGBUILD26
-rw-r--r--extra/bftpd/PKGBUILD53
-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/bftpd/bftpd.xinetd11
-rw-r--r--extra/bigloo/PKGBUILD46
-rw-r--r--extra/bigloo/bigloo.install21
-rw-r--r--extra/bin86/PKGBUILD33
-rw-r--r--extra/bin86/bin86-0.16.17-x86_64-1.patch44
-rw-r--r--extra/bind/127.0.0.zone11
-rw-r--r--extra/bind/PKGBUILD89
-rw-r--r--extra/bind/install21
-rw-r--r--extra/bind/localhost.zone10
-rwxr-xr-xextra/bind/named52
-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/remove-tools.patch12
-rw-r--r--extra/bind/so_bsdcompat.patch12
-rw-r--r--extra/bitlbee/PKGBUILD57
-rw-r--r--extra/bitlbee/install14
-rw-r--r--extra/bitlbee/rc.d40
-rw-r--r--extra/bitlbee/xinetd12
-rw-r--r--extra/blas/LICENSE.blas19
-rw-r--r--extra/blas/Makefile.blas148
-rwxr-xr-xextra/blas/PKGBUILD55
-rw-r--r--extra/blas/lapack-3.1.1-make.inc.patch23
-rw-r--r--extra/blender/PKGBUILD93
-rw-r--r--extra/blender/blender.install13
-rw-r--r--extra/bluedevil/PKGBUILD31
-rw-r--r--extra/bluedevil/bluedevil.install12
-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/PKGBUILD79
-rw-r--r--extra/bluez/bluetooth.conf.d30
-rw-r--r--extra/bluez/rc.bluetooth100
-rw-r--r--extra/bmp-musepack/PKGBUILD28
-rw-r--r--extra/bmp-wma/PKGBUILD34
-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/PKGBUILD34
-rw-r--r--extra/bmp/bmp-0.9.7.1-crossfade-0.3.9.patch108
-rw-r--r--extra/bmp/bmp.install11
-rw-r--r--extra/bochs/PKGBUILD27
-rw-r--r--extra/bogofilter/PKGBUILD34
-rw-r--r--extra/boo/PKGBUILD34
-rw-r--r--extra/boo/boo.install11
-rw-r--r--extra/boost/BOOST_FOREACH.patch60
-rw-r--r--extra/boost/PKGBUILD122
-rw-r--r--extra/boost/exceptions.patch25
-rw-r--r--extra/botan/PKGBUILD28
-rw-r--r--extra/brasero/PKGBUILD38
-rw-r--r--extra/brasero/brasero.install14
-rw-r--r--extra/brltty/PKGBUILD49
-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/bzflag/PKGBUILD35
-rw-r--r--extra/bzr/PKGBUILD32
-rw-r--r--extra/c-ares/LICENSE10
-rw-r--r--extra/c-ares/PKGBUILD34
-rw-r--r--extra/cabal-install/PKGBUILD27
-rw-r--r--extra/cagibi/PKGBUILD29
-rw-r--r--extra/cairo-perl/PKGBUILD31
-rw-r--r--extra/cairo/PKGBUILD35
-rw-r--r--extra/cairo/cairo-1.10.0-buggy_gradients.patch13
-rw-r--r--extra/cairomm/PKGBUILD27
-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/PKGBUILD58
-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/PKGBUILD28
-rw-r--r--extra/caribou/PKGBUILD36
-rw-r--r--extra/caribou/caribou.install13
-rw-r--r--extra/catdoc/PKGBUILD27
-rw-r--r--extra/ccache/PKGBUILD40
-rw-r--r--extra/cd-discid/PKGBUILD25
-rw-r--r--extra/cdargs/PKGBUILD36
-rw-r--r--extra/cdargs/cdargs.install3
-rw-r--r--extra/cdparanoia/PKGBUILD29
-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/celestia/PKGBUILD38
-rw-r--r--extra/celestia/celestia-1.5.1-gcc44.patch20
-rw-r--r--extra/celestia/celestia-1.6.1-gentoo.patch23
-rw-r--r--extra/cfitsio/PKGBUILD28
-rw-r--r--extra/cheese/PKGBUILD32
-rw-r--r--extra/cheese/cheese.install20
-rw-r--r--extra/chemtool/PKGBUILD24
-rw-r--r--extra/chemtool/chemtool.desktop13
-rw-r--r--extra/chkrootkit/PKGBUILD42
-rw-r--r--extra/chkrootkit/backslashes.patch22
-rw-r--r--extra/chkrootkit/chkrootkit.cron2
-rw-r--r--extra/chkrootkit/fix-tools-path.patch11
-rw-r--r--extra/chkrootkit/kallsyms.patch30
-rw-r--r--extra/chmlib/PKGBUILD36
-rw-r--r--extra/chmlib/src_chm_lib.c.diff58
-rw-r--r--extra/cifs-utils/PKGBUILD26
-rw-r--r--extra/cinepaint/LICENSE25
-rw-r--r--extra/cinepaint/PKGBUILD42
-rw-r--r--extra/cinepaint/cinepaint.install11
-rw-r--r--extra/clamav/PKGBUILD56
-rw-r--r--extra/clamav/conf.d8
-rw-r--r--extra/clamav/config.patch30
-rw-r--r--extra/clamav/install14
-rw-r--r--extra/clamav/logrotate8
-rw-r--r--extra/clamav/rc.d72
-rw-r--r--extra/claws-mail-extra-plugins/PKGBUILD75
-rw-r--r--extra/claws-mail-extra-plugins/webkit1.6.1.patch106
-rw-r--r--extra/claws-mail/PKGBUILD61
-rw-r--r--extra/claws-mail/claws-mail.install16
-rw-r--r--extra/claws-mail/gnutls_buildfix.patch12
-rw-r--r--extra/clisp/PKGBUILD29
-rw-r--r--extra/cln/PKGBUILD40
-rw-r--r--extra/cln/cln.install20
-rw-r--r--extra/clutter-gst/PKGBUILD30
-rw-r--r--extra/clutter-gtk/PKGBUILD26
-rw-r--r--extra/clutter-gtk2/PKGBUILD33
-rw-r--r--extra/clutter-gtk2/gir.patch39
-rw-r--r--extra/clutter/PKGBUILD31
-rw-r--r--extra/cmake/PKGBUILD41
-rw-r--r--extra/cmake/cmake.install12
-rw-r--r--extra/cmatrix/PKGBUILD30
-rw-r--r--extra/cmatrix/cmatrix.install3
-rw-r--r--extra/cmt/PKGBUILD29
-rw-r--r--extra/cmus/PKGBUILD40
-rw-r--r--extra/cogl/PKGBUILD28
-rw-r--r--extra/colord/PKGBUILD34
-rw-r--r--extra/colord/scan_only_color_profile_dir.patch35
-rw-r--r--extra/compface/LICENSE94
-rw-r--r--extra/compface/PKGBUILD28
-rw-r--r--extra/conky/PKGBUILD48
-rw-r--r--extra/conky/PKGBUILD.cmake47
-rw-r--r--extra/consolekit/PKGBUILD42
-rw-r--r--extra/consolekit/consolekit.logrotate5
-rw-r--r--extra/consolekit/pam-foreground-compat.ck16
-rw-r--r--extra/convertlit/PKGBUILD31
-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/cppunit/PKGBUILD32
-rw-r--r--extra/cppunit/gcc4.5.patch15
-rw-r--r--extra/cpufrequtils/PKGBUILD36
-rw-r--r--extra/cpufrequtils/cpufreq.confd14
-rw-r--r--extra/cpufrequtils/cpufreq.rcd60
-rw-r--r--extra/cpufrequtils/cpufrequtils-mips.patch18
-rw-r--r--extra/crypto++/PKGBUILD41
-rw-r--r--extra/crypto++/libcrypto++.pc11
-rw-r--r--extra/cscope/PKGBUILD34
-rw-r--r--extra/ctags/PKGBUILD28
-rw-r--r--extra/cups-pdf/PKGBUILD34
-rw-r--r--extra/cups-pdf/cups-pdf.install16
-rw-r--r--extra/cups-pk-helper/PKGBUILD28
-rw-r--r--extra/cups/PKGBUILD143
-rwxr-xr-xextra/cups/cups68
-rw-r--r--extra/cups/cups-avahi.patch3156
-rw-r--r--extra/cups/cups-no-export-ssllibs.patch12
-rw-r--r--extra/cups/cups-no-gcrypt.patch38
-rw-r--r--extra/cups/cups.install26
-rw-r--r--extra/cups/cups.logrotate8
-rw-r--r--extra/cups/cups.pam3
-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/PKGBUILD24
-rw-r--r--extra/cx_freeze/FreezePython.sh4
-rw-r--r--extra/cx_freeze/PKGBUILD31
-rw-r--r--extra/cyrus-sasl/0003_saslauthd_mdoc.patch35
-rw-r--r--extra/cyrus-sasl/0010_maintainer_mode.patch19
-rw-r--r--extra/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch15
-rw-r--r--extra/cyrus-sasl/0012_xopen_crypt_prototype.patch20
-rw-r--r--extra/cyrus-sasl/0016_pid_file_lock_creation_mask.patch27
-rw-r--r--extra/cyrus-sasl/0018_auth_rimap_quotes.patch35
-rw-r--r--extra/cyrus-sasl/0019_ldap_deprecated.patch22
-rw-r--r--extra/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch26
-rw-r--r--extra/cyrus-sasl/0025_ld_as_needed.patch27
-rw-r--r--extra/cyrus-sasl/0026_drop_krb5support_dependency.patch14
-rw-r--r--extra/cyrus-sasl/0027_db5_support.patch24
-rw-r--r--extra/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch134
-rw-r--r--extra/cyrus-sasl/PKGBUILD204
-rw-r--r--extra/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch170
-rw-r--r--extra/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch11
-rw-r--r--extra/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch94
-rw-r--r--extra/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch71
-rw-r--r--extra/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch22
-rw-r--r--extra/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch28
-rw-r--r--extra/cyrus-sasl/saslauthd49
-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/dasher/PKGBUILD34
-rw-r--r--extra/dasher/dasher.install22
-rw-r--r--extra/davfs2/PKGBUILD32
-rw-r--r--extra/dbus-glib/PKGBUILD27
-rw-r--r--extra/dbus-python/PKGBUILD26
-rw-r--r--extra/dbus/30-dbus9
-rw-r--r--extra/dbus/PKGBUILD41
-rw-r--r--extra/dcfldd/PKGBUILD26
-rw-r--r--extra/dconf/PKGBUILD31
-rw-r--r--extra/dconf/dconf.install12
-rw-r--r--extra/dcraw/PKGBUILD48
-rw-r--r--extra/dcraw/dcraw.install13
-rw-r--r--extra/dcraw/license.txt16
-rw-r--r--extra/dcron/PKGBUILD44
-rw-r--r--extra/dcron/dcron.install6
-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/desktop-file-utils/ChangeLog7
-rw-r--r--extra/desktop-file-utils/PKGBUILD25
-rw-r--r--extra/devhelp/PKGBUILD33
-rw-r--r--extra/devhelp/devhelp.install22
-rw-r--r--extra/devilspie/PKGBUILD30
-rw-r--r--extra/dhcp/ChangeLog11
-rw-r--r--extra/dhcp/PKGBUILD84
-rw-r--r--extra/dhcp/dhclient-script-pathFixes.patch118
-rw-r--r--extra/dhcp/dhcp10
-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.install18
-rw-r--r--extra/dhcp/dhcp457
-rw-r--r--extra/dhcp/dhcp657
-rwxr-xr-xextra/dhcp/dhcpd40
-rw-r--r--extra/di/PKGBUILD24
-rw-r--r--extra/diffstat/PKGBUILD29
-rw-r--r--extra/digikam/PKGBUILD97
-rw-r--r--extra/digikam/digikam.install12
-rw-r--r--extra/digikam/kipi-plugins.install12
-rw-r--r--extra/dirmngr/PKGBUILD21
-rw-r--r--extra/dirmngr/dirmngr.install20
-rw-r--r--extra/djvulibre/PKGBUILD41
-rw-r--r--extra/djvulibre/djvulibre.install13
-rw-r--r--extra/djvulibre/git-fixes.patch1607
-rw-r--r--extra/dmapi/PKGBUILD40
-rw-r--r--extra/dmidecode/PKGBUILD26
-rw-r--r--extra/dnsmasq/PKGBUILD49
-rw-r--r--extra/dnsmasq/dnsmasq.confd9
-rw-r--r--extra/dnsmasq/dnsmasq.install21
-rw-r--r--extra/dnsmasq/dnsmasq.service13
-rwxr-xr-xextra/dnsmasq/rc.dnsmasq64
-rw-r--r--extra/docker/PKGBUILD24
-rw-r--r--extra/dosfstools/PKGBUILD23
-rw-r--r--extra/dotconf/PKGBUILD28
-rw-r--r--extra/dovecot/PKGBUILD69
-rw-r--r--extra/dovecot/dovecot.install58
-rwxr-xr-xextra/dovecot/dovecot.sh69
-rw-r--r--extra/doxygen/PKGBUILD40
-rw-r--r--extra/dssi/PKGBUILD38
-rw-r--r--extra/dssi/license.txt77
-rw-r--r--extra/dvd+rw-tools/PKGBUILD43
-rw-r--r--extra/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch13
-rw-r--r--extra/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch11
-rw-r--r--extra/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch11
-rw-r--r--extra/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch11
-rw-r--r--extra/dvdauthor/PKGBUILD31
-rw-r--r--extra/dvdrip/PKGBUILD42
-rw-r--r--extra/dvdrip/dvdrip.desktop8
-rw-r--r--extra/dvdrip/dvdrip.install11
-rw-r--r--extra/dvdrtools/PKGBUILD29
-rw-r--r--extra/dvgrab/PKGBUILD28
-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/PKGBUILD35
-rw-r--r--extra/ecasound/PKGBUILD51
-rw-r--r--extra/ecasound/ecasound.changelog49
-rw-r--r--extra/ecl/PKGBUILD35
-rw-r--r--extra/eclipse/PKGBUILD55
-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/PKGBUILD50
-rw-r--r--extra/eject/eject-2.1.1-verbose.patch15
-rw-r--r--extra/eject/eject-2.1.5-lock.patch171
-rw-r--r--extra/eject/eject-2.1.5-openrw.patch17
-rw-r--r--extra/eject/eject-2.1.5-spaces.patch62
-rw-r--r--extra/eject/eject-2.1.5-umount.patch176
-rw-r--r--extra/eject/eject-2.1.5-unlock.patch59
-rw-r--r--extra/eject/eject-timeout.patch11
-rw-r--r--extra/ekiga/PKGBUILD36
-rw-r--r--extra/ekiga/ekiga.install22
-rw-r--r--extra/elfutils/PKGBUILD32
-rw-r--r--extra/emacs/PKGBUILD50
-rw-r--r--extra/emacs/emacs.desktop12
-rw-r--r--extra/emacs/emacs.install32
-rw-r--r--extra/emelfm2/PKGBUILD27
-rw-r--r--extra/empathy/PKGBUILD41
-rw-r--r--extra/empathy/empathy.install18
-rw-r--r--extra/enblend-enfuse/PKGBUILD36
-rw-r--r--extra/enblend-enfuse/enblend-enfuse.install22
-rw-r--r--extra/enblend-enfuse/libpng-1.4.patch14
-rw-r--r--extra/enca/PKGBUILD32
-rw-r--r--extra/enchant/PKGBUILD29
-rw-r--r--extra/enlightenment/PKGBUILD40
-rw-r--r--extra/enscript/PKGBUILD26
-rw-r--r--extra/eog-plugins/PKGBUILD31
-rw-r--r--extra/eog-plugins/eog-plugins.install11
-rw-r--r--extra/eog/PKGBUILD32
-rw-r--r--extra/eog/eog.install19
-rw-r--r--extra/epiphany-extensions/PKGBUILD35
-rw-r--r--extra/epiphany-extensions/epiphany-extensions.install12
-rw-r--r--extra/epiphany-extensions/rss-link-dbus-glib.patch29
-rw-r--r--extra/epiphany/PKGBUILD32
-rw-r--r--extra/epiphany/epiphany.install20
-rw-r--r--extra/epplet-base/PKGBUILD27
-rw-r--r--extra/erlang/PKGBUILD62
-rw-r--r--extra/ethstatus/PKGBUILD25
-rw-r--r--extra/ethtool/PKGBUILD27
-rw-r--r--extra/ettercap/PKGBUILD70
-rw-r--r--extra/ettercap/ettercap-gtk.install11
-rw-r--r--extra/ettercap/ettercap.desktop9
-rw-r--r--extra/evilwm/LICENSE40
-rw-r--r--extra/evilwm/PKGBUILD26
-rw-r--r--extra/evince/PKGBUILD40
-rw-r--r--extra/evince/evince.install19
-rw-r--r--extra/evolution-data-server/PKGBUILD31
-rw-r--r--extra/evolution-ews/PKGBUILD27
-rw-r--r--extra/evolution-exchange/PKGBUILD33
-rw-r--r--extra/evolution-exchange/evolution-exchange.install17
-rw-r--r--extra/evolution-groupwise/PKGBUILD32
-rw-r--r--extra/evolution/PKGBUILD45
-rw-r--r--extra/evolution/evolution.install24
-rw-r--r--extra/exempi/PKGBUILD24
-rw-r--r--extra/exiv2/PKGBUILD26
-rw-r--r--extra/exo/PKGBUILD40
-rw-r--r--extra/exo/exo.install11
-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/PKGBUILD47
-rw-r--r--extra/f-spot/f-spot.install24
-rw-r--r--extra/f-spot/flickrnet-3.0.patch114
-rw-r--r--extra/f-spot/mono-2.8.patch22
-rw-r--r--extra/faad2/LICENSE42
-rw-r--r--extra/faad2/PKGBUILD31
-rw-r--r--extra/facile/PKGBUILD23
-rw-r--r--extra/fakechroot/PKGBUILD34
-rw-r--r--extra/fakechroot/fakechroot.install14
-rw-r--r--extra/farsight2/PKGBUILD32
-rw-r--r--extra/fastjar/PKGBUILD25
-rw-r--r--extra/fastjar/fastjar.install16
-rw-r--r--extra/fbida/PKGBUILD27
-rw-r--r--extra/fbset/PKGBUILD29
-rw-r--r--extra/fcgi/PKGBUILD35
-rw-r--r--extra/fcgi/gcc44-fix-include.patch17
-rw-r--r--extra/fcitx/PKGBUILD64
-rw-r--r--extra/fcitx/fcitx-gtk2.install11
-rw-r--r--extra/fcitx/fcitx-gtk3.install11
-rw-r--r--extra/fcitx/fcitx.install12
-rw-r--r--extra/feh/PKGBUILD29
-rw-r--r--extra/festival/PKGBUILD133
-rwxr-xr-xextra/festival/config.guess1516
-rwxr-xr-xextra/festival/config.sub1766
-rw-r--r--extra/festival/festconfig.patch84
-rw-r--r--extra/festival/festival-shared-build.patch72
-rw-r--r--extra/festival/speechconfig.patch132
-rw-r--r--extra/fetchmail/PKGBUILD40
-rw-r--r--extra/fetchmail/fetchmail.conf5
-rw-r--r--extra/fetchmail/fetchmail.install20
-rw-r--r--extra/fetchmail/fetchmail.rc40
-rw-r--r--extra/ffcall/PKGBUILD40
-rw-r--r--extra/ffcall/mipsn32.patch11
-rw-r--r--extra/ffmpeg/PKGBUILD74
-rw-r--r--extra/ffmpeg/ffmpeg-loongson.patch1767
-rw-r--r--extra/ffmpegthumbnailer/PKGBUILD34
-rw-r--r--extra/ffmpegthumbnailer/ffmpegthumbnailer.desktop4
-rw-r--r--extra/fftw/PKGBUILD60
-rw-r--r--extra/fftw/fftw.install22
-rw-r--r--extra/flac/PKGBUILD55
-rw-r--r--extra/flac/flac-1.2.1-gcc-4.3-includes.patch11
-rw-r--r--extra/fltk/PKGBUILD62
-rw-r--r--extra/fltk/fltk-games.install11
-rw-r--r--extra/fltk/fltk.install12
-rw-r--r--extra/fluidsynth/PKGBUILD46
-rw-r--r--extra/fluidsynth/fluidsynth.conf2
-rw-r--r--extra/fluidsynth/fluidsynthd40
-rw-r--r--extra/fluxbox/PKGBUILD32
-rw-r--r--extra/fluxbox/fluxbox.desktop6
-rw-r--r--extra/fluxter/PKGBUILD30
-rw-r--r--extra/fluxter/fluxter-0.1.0-asneeded.patch43
-rw-r--r--extra/folks/PKGBUILD29
-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++/PKGBUILD36
-rw-r--r--extra/foomatic/PKGBUILD94
-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/PKGBUILD36
-rw-r--r--extra/fping/PKGBUILD39
-rw-r--r--extra/fping/fping-2.4b2_p161-min-time.patch47
-rw-r--r--extra/fping/fping_2.4b2-to-ipv6-16.1.diff838
-rw-r--r--extra/fprintd/PKGBUILD30
-rw-r--r--extra/freealut/PKGBUILD26
-rw-r--r--extra/freeciv/PKGBUILD26
-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/PKGBUILD76
-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/PKGBUILD37
-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/PKGBUILD27
-rw-r--r--extra/frozen-bubble/PKGBUILD41
-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/PKGBUILD29
-rw-r--r--extra/ftjam/license.txt7
-rw-r--r--extra/fuse/PKGBUILD61
-rw-r--r--extra/fuse/fuse.conf9
-rw-r--r--extra/fuse/fuse.install10
-rwxr-xr-xextra/fuse/fuse.rc.d49
-rw-r--r--extra/fvwm/PKGBUILD33
-rw-r--r--extra/fvwm/fvwm.desktop7
-rw-r--r--extra/fwbuilder/PKGBUILD28
-rw-r--r--extra/fwbuilder/fwbuilder.install12
-rw-r--r--extra/fyre/PKGBUILD26
-rw-r--r--extra/fyre/fyre.install13
-rw-r--r--extra/gamin/PKGBUILD41
-rw-r--r--extra/gamin/fix-deprecated-const.patch56
-rw-r--r--extra/garcon/PKGBUILD37
-rw-r--r--extra/gc/PKGBUILD32
-rw-r--r--extra/gcalctool/PKGBUILD29
-rw-r--r--extra/gcalctool/gcalctool.install11
-rw-r--r--extra/gcin/PKGBUILD43
-rw-r--r--extra/gcin/install14
-rw-r--r--extra/gcin/qt4-lib64.patch31
-rw-r--r--extra/gconf-editor/PKGBUILD33
-rw-r--r--extra/gconf-editor/gconf-editor.install22
-rw-r--r--extra/gconf-perl/PKGBUILD34
-rw-r--r--extra/gconf-perl/disable-orbit.patch30
-rw-r--r--extra/gconf/01_xml-gettext-domain.patch362
-rw-r--r--extra/gconf/PKGBUILD51
-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/PKGBUILD30
-rw-r--r--extra/gd/libpng14.patch12
-rw-r--r--extra/gdb/PKGBUILD42
-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/PKGBUILD27
-rw-r--r--extra/gdm/PKGBUILD66
-rw-r--r--extra/gdm/fix_external_program_directories.patch34
-rwxr-xr-xextra/gdm/gdm36
-rw-r--r--extra/gdm/gdm-autologin.pam18
-rw-r--r--extra/gdm/gdm-fingerprint.pam18
-rw-r--r--extra/gdm/gdm-password.pam20
-rw-r--r--extra/gdm/gdm-smartcard.pam18
-rw-r--r--extra/gdm/gdm-vt-allocation-hack.patch118
-rw-r--r--extra/gdm/gdm-welcome.pam12
-rw-r--r--extra/gdm/gdm.install31
-rw-r--r--extra/gdm/gdm.pam10
-rw-r--r--extra/gdome2/PKGBUILD37
-rw-r--r--extra/gecko-sharp-2.0/PKGBUILD34
-rw-r--r--extra/gecko-sharp-2.0/gecko-sharp-2.0-0.12-xulrunner.patch42
-rw-r--r--extra/gedit/PKGBUILD32
-rw-r--r--extra/gedit/gedit.install18
-rw-r--r--extra/geeqie/PKGBUILD30
-rw-r--r--extra/geeqie/geeqie.install11
-rw-r--r--extra/gegl/0.1.6-ffmpeg.patch33
-rw-r--r--extra/gegl/PKGBUILD36
-rw-r--r--extra/genius/PKGBUILD32
-rw-r--r--extra/genius/genius.install13
-rw-r--r--extra/geoip/PKGBUILD36
-rw-r--r--extra/gettext-mono/PKGBUILD31
-rw-r--r--extra/gftp/PKGBUILD21
-rw-r--r--extra/ggv/PKGBUILD31
-rw-r--r--extra/ggv/ggv.install22
-rw-r--r--extra/ggz-client-libs/PKGBUILD27
-rw-r--r--extra/ggz-gtk-client/PKGBUILD29
-rw-r--r--extra/ggz-gtk-client/gtk2.patch40
-rw-r--r--extra/ghc/PKGBUILD79
-rw-r--r--extra/ghc/build.mk150
-rw-r--r--extra/ghc/ghc.install19
-rw-r--r--extra/ghex/PKGBUILD30
-rw-r--r--extra/ghex/ghex.install20
-rw-r--r--extra/giblib/PKGBUILD30
-rw-r--r--extra/gif2png/PKGBUILD32
-rw-r--r--extra/giflib/PKGBUILD39
-rw-r--r--extra/gifsicle/PKGBUILD25
-rw-r--r--extra/gimp-dbp/PKGBUILD25
-rw-r--r--extra/gimp-devel/PKGBUILD51
-rw-r--r--extra/gimp-devel/gimp-devel.install12
-rw-r--r--extra/gimp-devel/linux.gpl19
-rw-r--r--extra/gimp-gap/PKGBUILD28
-rw-r--r--extra/gimp-refocus/PKGBUILD35
-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/PKGBUILD35
-rw-r--r--extra/gimp-ufraw/gimp-ufraw.install11
-rw-r--r--extra/gimp/PKGBUILD55
-rw-r--r--extra/gimp/gimp-poppler-0.18.patch476
-rw-r--r--extra/gimp/gimp.install12
-rw-r--r--extra/gimp/linux.gpl19
-rw-r--r--extra/gimp/uri-backend-libcurl.patch77
-rw-r--r--extra/git/ChangeLog57
-rw-r--r--extra/git/PKGBUILD86
-rw-r--r--extra/git/git-daemon70
-rw-r--r--extra/git/git-daemon.conf5
-rw-r--r--extra/gjs/PKGBUILD25
-rw-r--r--extra/gksu/PKGBUILD33
-rw-r--r--extra/glade-perl/PKGBUILD23
-rw-r--r--extra/glade/PKGBUILD29
-rw-r--r--extra/glade/glade.install12
-rw-r--r--extra/glew/PKGBUILD29
-rw-r--r--extra/glhack/PKGBUILD54
-rw-r--r--extra/glhack/glhack.install24
-rw-r--r--extra/glib-networking/PKGBUILD31
-rw-r--r--extra/glib-networking/glib-networking.install11
-rw-r--r--extra/glib-perl/PKGBUILD32
-rw-r--r--extra/glib/PKGBUILD37
-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/PKGBUILD38
-rw-r--r--extra/glsof/glsof-filemonitor2
-rw-r--r--extra/glsof/glsof-queries2
-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/PKGBUILD31
-rw-r--r--extra/gmetadom/gmetadom-0.2.6-gcc43.patch18
-rw-r--r--extra/gmime/PKGBUILD37
-rw-r--r--extra/gmpc/PKGBUILD29
-rw-r--r--extra/gmpc/gmpc.install11
-rw-r--r--extra/gnet/PKGBUILD26
-rw-r--r--extra/gnokii/PKGBUILD46
-rw-r--r--extra/gnokii/gnokii.patch12
-rw-r--r--extra/gnome-alsamixer/PKGBUILD33
-rw-r--r--extra/gnome-alsamixer/gnome-alsamixer-0.9.6-gtk24.patch15
-rw-r--r--extra/gnome-alsamixer/gnome-alsamixer.desktop11
-rw-r--r--extra/gnome-applets/PKGBUILD36
-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/PKGBUILD40
-rw-r--r--extra/gnome-bluetooth/gnome-bluetooth.install12
-rw-r--r--extra/gnome-color-manager/PKGBUILD34
-rw-r--r--extra/gnome-color-manager/gnome-color-manager.install19
-rw-r--r--extra/gnome-contacts/PKGBUILD29
-rw-r--r--extra/gnome-control-center/PKGBUILD38
-rw-r--r--extra/gnome-control-center/gnome-control-center.install19
-rw-r--r--extra/gnome-desktop-sharp/PKGBUILD79
-rw-r--r--extra/gnome-desktop-sharp/gnome-desktop-sharp-lib-target.patch9
-rw-r--r--extra/gnome-desktop/PKGBUILD31
-rw-r--r--extra/gnome-desktop2/PKGBUILD32
-rw-r--r--extra/gnome-disk-utility/PKGBUILD52
-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-documents/PKGBUILD35
-rw-r--r--extra/gnome-documents/gnome-documents.install13
-rw-r--r--extra/gnome-games/PKGBUILD41
-rw-r--r--extra/gnome-games/gnome-games.install153
-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/PKGBUILD32
-rw-r--r--extra/gnome-keyring/gnome-keyring.install15
-rw-r--r--extra/gnome-media/PKGBUILD37
-rw-r--r--extra/gnome-media/gnome-media.install22
-rw-r--r--extra/gnome-menus/PKGBUILD36
-rw-r--r--extra/gnome-menus/menus.patch25
-rw-r--r--extra/gnome-nettool/PKGBUILD30
-rw-r--r--extra/gnome-nettool/gnome-nettool.install12
-rw-r--r--extra/gnome-online-accounts/PKGBUILD29
-rw-r--r--extra/gnome-online-accounts/gnome-online-accounts.install11
-rw-r--r--extra/gnome-panel/PKGBUILD38
-rw-r--r--extra/gnome-panel/gnome-panel.install24
-rw-r--r--extra/gnome-perl/PKGBUILD23
-rw-r--r--extra/gnome-phone-manager/PKGBUILD32
-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/PKGBUILD32
-rw-r--r--extra/gnome-power-manager/gnome-power-manager.install19
-rw-r--r--extra/gnome-python-desktop/PKGBUILD100
-rw-r--r--extra/gnome-python-extras/PKGBUILD63
-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/PKGBUILD36
-rw-r--r--extra/gnome-screensaver/gnome-screensaver.install7
-rw-r--r--extra/gnome-screensaver/gnome-screensaver.pam3
-rw-r--r--extra/gnome-session/PKGBUILD30
-rw-r--r--extra/gnome-session/gnome-session.install18
-rw-r--r--extra/gnome-settings-daemon/PKGBUILD35
-rw-r--r--extra/gnome-settings-daemon/gnome-settings-daemon.install18
-rw-r--r--extra/gnome-sharp/PKGBUILD70
-rw-r--r--extra/gnome-shell/PKGBUILD38
-rw-r--r--extra/gnome-shell/gnome-shell.install22
-rw-r--r--extra/gnome-speech/PKGBUILD30
-rw-r--r--extra/gnome-system-monitor/PKGBUILD29
-rw-r--r--extra/gnome-system-monitor/gnome-system-monitor.install19
-rw-r--r--extra/gnome-terminal/PKGBUILD33
-rw-r--r--extra/gnome-terminal/gnome-terminal.install17
-rw-r--r--extra/gnome-themes-standard/PKGBUILD30
-rw-r--r--extra/gnome-user-share/PKGBUILD33
-rw-r--r--extra/gnome-user-share/gnome-user-share.install22
-rw-r--r--extra/gnome-utils/PKGBUILD41
-rw-r--r--extra/gnome-utils/gnome-utils.install26
-rw-r--r--extra/gnome-vfs-perl/PKGBUILD23
-rw-r--r--extra/gnome-vfs/PKGBUILD49
-rw-r--r--extra/gnome-vfs/gcrypt-config.patch31
-rw-r--r--extra/gnome-vfs/gnome-vfs.install17
-rw-r--r--extra/gnome-vfs/gnutls-config.patch25
-rw-r--r--extra/gnome-vfsmm/PKGBUILD28
-rw-r--r--extra/gnomecanvas-perl/PKGBUILD23
-rw-r--r--extra/gnu-netcat/PKGBUILD27
-rw-r--r--extra/gnu-netcat/gnu-netcat.install13
-rw-r--r--extra/gnucash/PKGBUILD36
-rw-r--r--extra/gnucash/gnucash.install34
-rw-r--r--extra/gnuchess/PKGBUILD25
-rw-r--r--extra/gnugo/LICENSE70
-rw-r--r--extra/gnugo/PKGBUILD33
-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/PKGBUILD39
-rw-r--r--extra/gnupg/gnupg.install21
-rw-r--r--extra/gnupg/gnupg_1.4.11_mips_gcc4.4.patch47
-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/PKGBUILD40
-rw-r--r--extra/gnutls/gnutls.install20
-rw-r--r--extra/gob2/PKGBUILD21
-rw-r--r--extra/gobject-introspection/PKGBUILD29
-rw-r--r--extra/goffice/PKGBUILD31
-rw-r--r--extra/goffice/use-apiver-for-dirs.patch32
-rw-r--r--extra/gpart/PKGBUILD49
-rw-r--r--extra/gpart/gpart-0.1h-errno.patch20
-rw-r--r--extra/gpart/gpart-0.1h-l64seek.patch71
-rw-r--r--extra/gpart/gpart-0.1h-ntfs.patch75
-rw-r--r--extra/gpart/gpart-0.1h-openmode.patch11
-rw-r--r--extra/gpart/gpart-0.1h-reiserfs-3.6.patch443
-rw-r--r--extra/gpart/gpart-0.1h-vfat.patch17
-rw-r--r--extra/gparted/PKGBUILD52
-rw-r--r--extra/gparted/gparted.install11
-rw-r--r--extra/gparted/org.archlinux.pkexec.gparted.policy20
-rw-r--r--extra/gperf/PKGBUILD34
-rw-r--r--extra/gperf/gperf.install16
-rw-r--r--extra/gpgme/PKGBUILD30
-rw-r--r--extra/gpgme/gpgme.install18
-rw-r--r--extra/gphoto2/PKGBUILD21
-rw-r--r--extra/gpsd/PKGBUILD78
-rwxr-xr-xextra/gpsd/gpsd44
-rw-r--r--extra/gpsd/gpsd.conf.d5
-rw-r--r--extra/gpsd/gpsd.install16
-rw-r--r--extra/gptfdisk/PKGBUILD35
-rw-r--r--extra/gqview/PKGBUILD25
-rw-r--r--extra/gqview/gqview.install11
-rw-r--r--extra/grantlee/PKGBUILD30
-rw-r--r--extra/graphicsmagick/PKGBUILD48
-rw-r--r--extra/graphite/PKGBUILD39
-rw-r--r--extra/graphite/pango-graphite.install12
-rw-r--r--extra/graphviz/LICENSE87
-rw-r--r--extra/graphviz/PKGBUILD52
-rw-r--r--extra/graphviz/install12
-rw-r--r--extra/grilo-plugins/PKGBUILD39
-rw-r--r--extra/grilo/PKGBUILD27
-rw-r--r--extra/grip/PKGBUILD30
-rw-r--r--extra/grip/grip-3.3.1-invalid-genre-size.patch30
-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/gssdp/PKGBUILD31
-rw-r--r--extra/gstreamer0.10-base/PKGBUILD56
-rw-r--r--extra/gstreamer0.10-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch22
-rw-r--r--extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch21
-rw-r--r--extra/gstreamer0.10-ffmpeg/PKGBUILD30
-rw-r--r--extra/gstreamer0.10-good/PKGBUILD54
-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/PKGBUILD41
-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/PKGBUILD31
-rw-r--r--extra/gtk-sharp-2/PKGBUILD31
-rw-r--r--extra/gtk-vnc/PKGBUILD40
-rw-r--r--extra/gtk-xfce-engine/PKGBUILD34
-rw-r--r--extra/gtk/PKGBUILD38
-rw-r--r--extra/gtk/aclocal-fixes.patch11
-rw-r--r--extra/gtk/gtk.install20
-rw-r--r--extra/gtk2-perl/PKGBUILD35
-rw-r--r--extra/gtk2/PKGBUILD58
-rw-r--r--extra/gtk2/gtk2.install16
-rw-r--r--extra/gtk2/revert-iconview.patch30
-rw-r--r--extra/gtk2/xid-collision-debug.patch15
-rw-r--r--extra/gtk3/PKGBUILD44
-rw-r--r--extra/gtk3/filechooserdefault_do_not_unref_value_twice.patch24
-rw-r--r--extra/gtk3/gtk3.install15
-rw-r--r--extra/gtk3/moveresize.patch47
-rw-r--r--extra/gtk3/settings.ini2
-rw-r--r--extra/gtkglext/PKGBUILD27
-rw-r--r--extra/gtkglext/gtk2.20.patch77
-rw-r--r--extra/gtkglextmm/PKGBUILD40
-rw-r--r--extra/gtkglextmm/gdkspanfunc.patch13
-rw-r--r--extra/gtkhtml/PKGBUILD27
-rw-r--r--extra/gtkhtml4/PKGBUILD29
-rw-r--r--extra/gtkimageview/PKGBUILD32
-rw-r--r--extra/gtkmathview/PKGBUILD34
-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/gtkmm3/PKGBUILD38
-rw-r--r--extra/gtkpod/PKGBUILD31
-rw-r--r--extra/gtkpod/gtkpod.install12
-rw-r--r--extra/gtksourceview2/PKGBUILD24
-rw-r--r--extra/gtksourceview3/PKGBUILD28
-rw-r--r--extra/gtkspell/PKGBUILD23
-rw-r--r--extra/gts/PKGBUILD29
-rw-r--r--extra/gucharmap/PKGBUILD33
-rw-r--r--extra/gucharmap/gucharmap.install22
-rw-r--r--extra/guile/PKGBUILD29
-rw-r--r--extra/guile/guile.install30
-rw-r--r--extra/gupnp-av/PKGBUILD30
-rw-r--r--extra/gupnp/PKGBUILD32
-rw-r--r--extra/gutenprint/PKGBUILD41
-rw-r--r--extra/gutenprint/buildfix.patch22
-rw-r--r--extra/gutenprint/gutenprint.install9
-rw-r--r--extra/gv/PKGBUILD33
-rw-r--r--extra/gv/gv.desktop11
-rw-r--r--extra/gv/gv.install18
-rw-r--r--extra/gv/gv.pngbin0 -> 483 bytes
-rw-r--r--extra/gvfs/PKGBUILD113
-rw-r--r--extra/gvfs/gvfs-module.install7
-rw-r--r--extra/gvfs/gvfs-smb.install12
-rw-r--r--extra/gvfs/gvfs.install14
-rw-r--r--extra/gweled/PKGBUILD31
-rw-r--r--extra/gweled/gweled.install24
-rw-r--r--extra/habak/PKGBUILD26
-rw-r--r--extra/happy/PKGBUILD30
-rw-r--r--extra/haskell-cgi/PKGBUILD39
-rw-r--r--extra/haskell-cgi/haskell-cgi.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-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-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-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-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/PKGBUILD27
-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/PKGBUILD45
-rw-r--r--extra/help2man/PKGBUILD31
-rw-r--r--extra/help2man/help2man.install18
-rw-r--r--extra/hercules/PKGBUILD27
-rw-r--r--extra/hexedit/PKGBUILD28
-rw-r--r--extra/hplip/PKGBUILD68
-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/CVE-2007-6110.patch26
-rw-r--r--extra/htdig/PKGBUILD45
-rw-r--r--extra/htdig/gcc4.3.patch15
-rw-r--r--extra/htop/ChangeLog22
-rw-r--r--extra/htop/PKGBUILD38
-rw-r--r--extra/hugin/PKGBUILD34
-rw-r--r--extra/hugin/hugin.install15
-rw-r--r--extra/hunspell/PKGBUILD28
-rw-r--r--extra/hwloc/PKGBUILD31
-rw-r--r--extra/hydrogen/PKGBUILD36
-rw-r--r--extra/hydrogen/lrdf_raptor2.patch11
-rw-r--r--extra/hylafax/PKGBUILD65
-rw-r--r--extra/hylafax/config.local273
-rw-r--r--extra/hylafax/configure-6.0.5.patch11
-rwxr-xr-xextra/hylafax/hylafax71
-rw-r--r--extra/hylafax/hylafax.cron.daily4
-rw-r--r--extra/hylafax/hylafax.install44
-rw-r--r--extra/hyphen/PKGBUILD61
-rw-r--r--extra/i8kutils/PKGBUILD28
-rw-r--r--extra/icedtea-web-java7/PKGBUILD98
-rw-r--r--extra/icedtea-web-java7/icedtea-web-1.1.4-npapi-fix.patch12
-rw-r--r--extra/icedtea-web-java7/icedtea-web-java7.install11
-rw-r--r--extra/icedtea-web/PKGBUILD86
-rw-r--r--extra/icedtea-web/icedtea-web-1.1.4-npapi-fix.patch12
-rw-r--r--extra/icedtea-web/icedtea-web.install11
-rw-r--r--extra/icewm/PKGBUILD26
-rw-r--r--extra/icu/PKGBUILD35
-rw-r--r--extra/icu/icu.8198.revert.icu5431.patch129
-rw-r--r--extra/id3/PKGBUILD32
-rw-r--r--extra/id3/id3-0.78-gcc44.patch29
-rw-r--r--extra/id3lib/PKGBUILD36
-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/PKGBUILD35
-rw-r--r--extra/ilmbase/tests-compile-fixes.patch12
-rw-r--r--extra/imagemagick/PKGBUILD84
-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/PKGBUILD80
-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/PKGBUILD38
-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/PKGBUILD38
-rw-r--r--extra/indent/PKGBUILD33
-rw-r--r--extra/indent/indent-2.2.11-segfault.patch16
-rw-r--r--extra/indent/indent.install16
-rw-r--r--extra/inkscape/PKGBUILD58
-rw-r--r--extra/inkscape/install13
-rw-r--r--extra/iperf/PKGBUILD35
-rw-r--r--extra/iperf/client.cpp.patch17
-rw-r--r--extra/iperf/license25
-rw-r--r--extra/iptraf-ng/PKGBUILD31
-rw-r--r--extra/irqbalance/PKGBUILD32
-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/PKGBUILD24
-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/40-hpet-permissions.rules2
-rw-r--r--extra/jack/99-audio.conf2
-rw-r--r--extra/jack/PKGBUILD61
-rw-r--r--extra/jade/PKGBUILD41
-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/PKGBUILD27
-rw-r--r--extra/java-commons-daemon/PKGBUILD47
-rw-r--r--extra/java7-openjdk/PKGBUILD263
-rw-r--r--extra/java7-openjdk/fix_corba_cmds_path.diff33
-rw-r--r--extra/java7-openjdk/fontconfig-paths.diff134
-rw-r--r--extra/java7-openjdk/jconsole.desktop10
-rw-r--r--extra/java7-openjdk/jdk7-openjdk.profile6
-rw-r--r--extra/java7-openjdk/jdk7-openjdk.profile.csh1
-rw-r--r--extra/java7-openjdk/jre7-openjdk.install24
-rw-r--r--extra/java7-openjdk/jre7-openjdk.profile5
-rw-r--r--extra/java7-openjdk/jre7-openjdk.profile.csh5
-rw-r--r--extra/java7-openjdk/openjdk7_fix_jdk_cmds_path.diff24
-rw-r--r--extra/java7-openjdk/openjdk7_nonreparenting-wm.diff58
-rw-r--r--extra/java7-openjdk/policytool.desktop10
-rw-r--r--extra/jhead/LICENSE12
-rw-r--r--extra/jhead/PKGBUILD29
-rw-r--r--extra/js/PKGBUILD39
-rw-r--r--extra/js/js185-destdir.patch15
-rw-r--r--extra/json-c/PKGBUILD25
-rw-r--r--extra/json-glib/PKGBUILD26
-rw-r--r--extra/k3b/PKGBUILD40
-rw-r--r--extra/k3b/k3b-2.0.2-ffmpeg.patch96
-rw-r--r--extra/k3b/k3b.install13
-rw-r--r--extra/k9copy/PKGBUILD32
-rw-r--r--extra/k9copy/k9copy.install11
-rw-r--r--extra/kaffeine/PKGBUILD30
-rw-r--r--extra/kdeaccessibility/PKGBUILD82
-rw-r--r--extra/kdeaccessibility/kdeaccessibility.install11
-rw-r--r--extra/kdeadmin/PKGBUILD78
-rw-r--r--extra/kdeadmin/kdeadmin.install11
-rw-r--r--extra/kdeadmin/syslog-path.patch11
-rw-r--r--extra/kdeartwork/PKGBUILD104
-rw-r--r--extra/kdebase-konsole/PKGBUILD30
-rw-r--r--extra/kdebase-runtime/PKGBUILD43
-rw-r--r--extra/kdebase-runtime/kdebase-runtime.install12
-rw-r--r--extra/kdebase-runtime/libqzeitgeist08.patch102
-rw-r--r--extra/kdebase-workspace/PKGBUILD81
-rw-r--r--extra/kdebase-workspace/fix-powerprofiles.patch23
-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.install25
-rw-r--r--extra/kdebase-workspace/kdm36
-rw-r--r--extra/kdebase-workspace/kdm-xinitrd.patch18
-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/PKGBUILD119
-rw-r--r--extra/kdebase/kdebase.install11
-rw-r--r--extra/kdebindings-kimono/PKGBUILD32
-rw-r--r--extra/kdebindings-korundum/PKGBUILD32
-rw-r--r--extra/kdebindings-kross/PKGBUILD52
-rw-r--r--extra/kdebindings-perlkde/PKGBUILD31
-rw-r--r--extra/kdebindings-perlqt/PKGBUILD30
-rw-r--r--extra/kdebindings-python/PKGBUILD34
-rw-r--r--extra/kdebindings-qtruby/PKGBUILD31
-rw-r--r--extra/kdebindings-qyoto/PKGBUILD31
-rw-r--r--extra/kdebindings-smokegen/PKGBUILD35
-rw-r--r--extra/kdebindings-smokegen/fix-crash.patch13
-rw-r--r--extra/kdebindings-smokekde/PKGBUILD32
-rw-r--r--extra/kdebindings-smokeqt/PKGBUILD32
-rw-r--r--extra/kdeedu-blinken/PKGBUILD31
-rw-r--r--extra/kdeedu-blinken/kdeedu-blinken.install11
-rw-r--r--extra/kdeedu-cantor/PKGBUILD34
-rw-r--r--extra/kdeedu-cantor/kdeedu-cantor.install12
-rw-r--r--extra/kdeedu-kalgebra/PKGBUILD31
-rw-r--r--extra/kdeedu-kalgebra/kdeedu-kalgebra.install12
-rw-r--r--extra/kdeedu-kalzium/PKGBUILD31
-rw-r--r--extra/kdeedu-kalzium/kdeedu-kalzium.install11
-rw-r--r--extra/kdeedu-kanagram/PKGBUILD31
-rw-r--r--extra/kdeedu-kanagram/kdeedu-kanagram.install11
-rw-r--r--extra/kdeedu-kbruch/PKGBUILD31
-rw-r--r--extra/kdeedu-kbruch/kdeedu-kbruch.install11
-rw-r--r--extra/kdeedu-kgeography/PKGBUILD31
-rw-r--r--extra/kdeedu-kgeography/kdeedu-kgeography.install11
-rw-r--r--extra/kdeedu-khangman/PKGBUILD31
-rw-r--r--extra/kdeedu-khangman/kdeedu-khangman.install11
-rw-r--r--extra/kdeedu-kig/PKGBUILD34
-rw-r--r--extra/kdeedu-kig/kdeedu-kig.install12
-rw-r--r--extra/kdeedu-kiten/PKGBUILD31
-rw-r--r--extra/kdeedu-kiten/kdeedu-kiten.install11
-rw-r--r--extra/kdeedu-klettres/PKGBUILD31
-rw-r--r--extra/kdeedu-klettres/kdeedu-klettres.install11
-rw-r--r--extra/kdeedu-kmplot/PKGBUILD31
-rw-r--r--extra/kdeedu-kmplot/kdeedu-kmplot.install12
-rw-r--r--extra/kdeedu-kstars/PKGBUILD32
-rw-r--r--extra/kdeedu-kstars/kdeedu-kstars.install11
-rw-r--r--extra/kdeedu-ktouch/PKGBUILD31
-rw-r--r--extra/kdeedu-ktouch/kdeedu-ktouch.install11
-rw-r--r--extra/kdeedu-kturtle/PKGBUILD31
-rw-r--r--extra/kdeedu-kturtle/kdeedu-kturtle.install11
-rw-r--r--extra/kdeedu-kwordquiz/PKGBUILD31
-rw-r--r--extra/kdeedu-kwordquiz/kdeedu-kwordquiz.install12
-rw-r--r--extra/kdeedu-marble/PKGBUILD32
-rw-r--r--extra/kdeedu-marble/kdeedu-marble.install12
-rw-r--r--extra/kdeedu-parley/PKGBUILD31
-rw-r--r--extra/kdeedu-parley/kdeedu-parley.install12
-rw-r--r--extra/kdeedu-rocs/PKGBUILD31
-rw-r--r--extra/kdeedu-step/PKGBUILD31
-rw-r--r--extra/kdeedu-step/kdeedu-step.install11
-rw-r--r--extra/kdegames/PKGBUILD515
-rw-r--r--extra/kdegames/kdegames-kbattleship.install24
-rw-r--r--extra/kdegames/kdegames-kfourinline.install12
-rw-r--r--extra/kdegames/kdegames-kigo.install12
-rw-r--r--extra/kdegames/kdegames-kolf.install12
-rw-r--r--extra/kdegames/kdegames-kreversi.install22
-rw-r--r--extra/kdegames/kdegames-kspaceduel.install12
-rw-r--r--extra/kdegames/kdegames-ksquares.install22
-rw-r--r--extra/kdegames/kdegames-ktuberling.install12
-rw-r--r--extra/kdegames/kdegames-lskat.install12
-rw-r--r--extra/kdegames/kdegames-palapeli.install13
-rw-r--r--extra/kdegames/kdegames.install11
-rw-r--r--extra/kdegraphics-gwenview/PKGBUILD32
-rw-r--r--extra/kdegraphics-gwenview/kdegraphics-gwenview.install12
-rw-r--r--extra/kdegraphics-kamera/PKGBUILD30
-rw-r--r--extra/kdegraphics-kcolorchooser/PKGBUILD31
-rw-r--r--extra/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install11
-rw-r--r--extra/kdegraphics-kgamma/PKGBUILD33
-rw-r--r--extra/kdegraphics-kolourpaint/PKGBUILD31
-rw-r--r--extra/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install12
-rw-r--r--extra/kdegraphics-kruler/PKGBUILD31
-rw-r--r--extra/kdegraphics-kruler/kdegraphics-kruler.install12
-rw-r--r--extra/kdegraphics-ksaneplugin/PKGBUILD31
-rw-r--r--extra/kdegraphics-ksnapshot/PKGBUILD32
-rw-r--r--extra/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install12
-rw-r--r--extra/kdegraphics-mobipocket/PKGBUILD31
-rw-r--r--extra/kdegraphics-okular/PKGBUILD34
-rw-r--r--extra/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--extra/kdegraphics-okular/staging-i686/PKGBUILD34
-rw-r--r--extra/kdegraphics-okular/staging-i686/kdegraphics-okular.install12
-rw-r--r--extra/kdegraphics-strigi-analyzer/PKGBUILD31
-rw-r--r--extra/kdegraphics-svgpart/PKGBUILD31
-rw-r--r--extra/kdegraphics-thumbnailers/PKGBUILD31
-rw-r--r--extra/kdelibs/PKGBUILD54
-rw-r--r--extra/kdelibs/kde-applications-menu.patch22
-rw-r--r--extra/kdelibs/kdelibs.install13
-rw-r--r--extra/kdelibs3/PKGBUILD90
-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/kdelibs3/openssl.patch180
-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/PKGBUILD111
-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/PKGBUILD252
-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/PKGBUILD36
-rw-r--r--extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install11
-rw-r--r--extra/kdesdk-kate/PKGBUILD58
-rw-r--r--extra/kdesdk-kate/kdebase-kwrite.install12
-rw-r--r--extra/kdesdk-kate/kdesdk-kate.install12
-rw-r--r--extra/kdesdk-kate/pkgbuild-syntax-highlight.patch11
-rw-r--r--extra/kdesdk/PKGBUILD247
-rw-r--r--extra/kdesdk/fix-python2-path.patch64
-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/PKGBUILD191
-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.install13
-rw-r--r--extra/kdevplatform/PKGBUILD39
-rw-r--r--extra/kdevplatform/kdevplatform.install11
-rw-r--r--extra/kdevplatform/subversion17.patch127
-rw-r--r--extra/kdewebdev/PKGBUILD67
-rw-r--r--extra/kdewebdev/kdewebdev.install11
-rw-r--r--extra/kdiff3/PKGBUILD30
-rw-r--r--extra/kdiff3/kdiff3.install11
-rw-r--r--extra/kexec-tools/PKGBUILD41
-rwxr-xr-xextra/kexec-tools/kexec45
-rw-r--r--extra/kexec-tools/kexec-tools-2.0.0-purgatory-makefile.patch20
-rw-r--r--extra/kexec-tools/kexec-vesafb.diff78
-rw-r--r--extra/kexec-tools/kexec.conf.d16
-rw-r--r--extra/kile/PKGBUILD31
-rw-r--r--extra/kile/kile.install13
-rw-r--r--extra/kino/PKGBUILD37
-rw-r--r--extra/kino/kino.install13
-rw-r--r--extra/kino/videodev-header.patch26
-rw-r--r--extra/kismet/PKGBUILD59
-rw-r--r--extra/kismet/kismet.changelog26
-rw-r--r--extra/kismet/kismet.install34
-rw-r--r--extra/kobodeluxe/PKGBUILD50
-rw-r--r--extra/kobodeluxe/kobodeluxe-0.5.1-glibc2.10.patch11
-rw-r--r--extra/kobodeluxe/kobodeluxe-gcc-4.3.patch83
-rw-r--r--extra/kobodeluxe/kobodeluxe.install20
-rw-r--r--extra/koffice/PKGBUILD314
-rw-r--r--extra/koffice/filters.install11
-rw-r--r--extra/koffice/gcc46.patch23
-rw-r--r--extra/koffice/kde4-koffice-libwpg02.patch1323
-rw-r--r--extra/koffice/koffice.install12
-rw-r--r--extra/koffice/krita.install13
-rw-r--r--extra/koffice/qt48fix.patch10
-rw-r--r--extra/konversation/PKGBUILD40
-rw-r--r--extra/konversation/konversation.install12
-rw-r--r--extra/kradio/PKGBUILD32
-rw-r--r--extra/kradio/kradio-ffmpeg.diff34
-rw-r--r--extra/kradio/kradio.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/PKGBUILD40
-rw-r--r--extra/ktorrent/httpserver.patch10
-rw-r--r--extra/ktorrent/ktorrent.install13
-rw-r--r--extra/kwebkitpart/PKGBUILD31
-rw-r--r--extra/kwebkitpart/kwebkitpart.install11
-rw-r--r--extra/lablgtk/PKGBUILD25
-rw-r--r--extra/lablgtk2/PKGBUILD25
-rw-r--r--extra/ladspa/PKGBUILD32
-rw-r--r--extra/ladspa/hardcode-path.patch28
-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/PKGBUILD60
-rw-r--r--extra/lapack/lapack-3.1.1-make.inc.patch23
-rw-r--r--extra/latex2rtf/PKGBUILD25
-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/PKGBUILD26
-rw-r--r--extra/lcms/PKGBUILD24
-rw-r--r--extra/lcms2/PKGBUILD28
-rw-r--r--extra/leafpad/PKGBUILD28
-rw-r--r--extra/leafpad/leafpad.install12
-rw-r--r--extra/lensfun/PKGBUILD32
-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/LICENSE26
-rw-r--r--extra/lesstif/PKGBUILD60
-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/PKGBUILD30
-rw-r--r--extra/libassuan/PKGBUILD26
-rw-r--r--extra/libassuan/libassuan.install20
-rw-r--r--extra/libasyncns/ChangeLog13
-rw-r--r--extra/libasyncns/PKGBUILD29
-rw-r--r--extra/libatasmart/PKGBUILD28
-rw-r--r--extra/libavc1394/PKGBUILD26
-rw-r--r--extra/libbluedevil/PKGBUILD30
-rw-r--r--extra/libbluray/PKGBUILD28
-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/libburn/PKGBUILD27
-rw-r--r--extra/libcaca/PKGBUILD23
-rw-r--r--extra/libcanberra/PKGBUILD70
-rw-r--r--extra/libcanberra/libcanberra.install23
-rw-r--r--extra/libcanberra/libcanberra.xinit17
-rw-r--r--extra/libcap-ng/PKGBUILD30
-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/PKGBUILD26
-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/PKGBUILD26
-rw-r--r--extra/libcue/PKGBUILD24
-rw-r--r--extra/libdaemon/PKGBUILD24
-rw-r--r--extra/libdatrie/PKGBUILD26
-rw-r--r--extra/libdbusmenu-qt/PKGBUILD30
-rw-r--r--extra/libdc1394/PKGBUILD37
-rw-r--r--extra/libdc1394/fix-videodev.h.patch53
-rw-r--r--extra/libdc1394/rename-usb_init.patch53
-rw-r--r--extra/libdc1394/videodev-compile-fix.patch41
-rw-r--r--extra/libdca/PKGBUILD33
-rw-r--r--extra/libdiscid/PKGBUILD26
-rw-r--r--extra/libdmapsharing/PKGBUILD25
-rw-r--r--extra/libdmtx/PKGBUILD26
-rw-r--r--extra/libdmx/PKGBUILD25
-rw-r--r--extra/libdrm/COPYING48
-rw-r--r--extra/libdrm/PKGBUILD56
-rw-r--r--extra/libdrm/git_fixes.diff19
-rw-r--r--extra/libdrm/list.h137
-rw-r--r--extra/libdrm/no-pthread-stubs.patch66
-rw-r--r--extra/libdrm/rbo.h50
-rw-r--r--extra/libdv/PKGBUILD24
-rw-r--r--extra/libdvbpsi/PKGBUILD30
-rw-r--r--extra/libdvdcss/PKGBUILD27
-rw-r--r--extra/libdvdnav/PKGBUILD29
-rw-r--r--extra/libdvdread/PKGBUILD32
-rw-r--r--extra/libebml/PKGBUILD26
-rw-r--r--extra/libepc/PKGBUILD27
-rw-r--r--extra/libetpan/PKGBUILD26
-rw-r--r--extra/libexif/PKGBUILD26
-rw-r--r--extra/libffado/60-ffado.rules27
-rw-r--r--extra/libffado/PKGBUILD69
-rw-r--r--extra/libfontenc/PKGBUILD27
-rw-r--r--extra/libfprint/PKGBUILD33
-rw-r--r--extra/libfs/PKGBUILD24
-rw-r--r--extra/libftdi/PKGBUILD28
-rw-r--r--extra/libgadu/PKGBUILD29
-rw-r--r--extra/libgda/PKGBUILD34
-rw-r--r--extra/libgda/libgda.install12
-rw-r--r--extra/libgdata/PKGBUILD26
-rw-r--r--extra/libgdiplus/PKGBUILD26
-rw-r--r--extra/libgdiplus/gdiplus-png14.patch20
-rw-r--r--extra/libgee/PKGBUILD27
-rw-r--r--extra/libggz/PKGBUILD26
-rw-r--r--extra/libgksu/PKGBUILD35
-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/PKGBUILD27
-rw-r--r--extra/libgme/PKGBUILD24
-rw-r--r--extra/libgnome-keyring/PKGBUILD28
-rw-r--r--extra/libgnome-media-profiles/PKGBUILD36
-rw-r--r--extra/libgnome-media-profiles/libgnome-media-profiles.install17
-rw-r--r--extra/libgnome/PKGBUILD49
-rw-r--r--extra/libgnome/libgnome.install17
-rw-r--r--extra/libgnomecanvas/PKGBUILD23
-rw-r--r--extra/libgnomecanvasmm/PKGBUILD28
-rw-r--r--extra/libgnomekbd/PKGBUILD28
-rw-r--r--extra/libgnomekbd/libgnomekbd.install11
-rw-r--r--extra/libgnomemm/PKGBUILD24
-rw-r--r--extra/libgnomeui/PKGBUILD24
-rw-r--r--extra/libgnomeuimm/PKGBUILD27
-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/PKGBUILD27
-rw-r--r--extra/libgtop/PKGBUILD29
-rw-r--r--extra/libgtop/libgtop.install13
-rw-r--r--extra/libguess/PKGBUILD27
-rw-r--r--extra/libgusb/PKGBUILD27
-rw-r--r--extra/libgweather/PKGBUILD40
-rw-r--r--extra/libgweather/gettext-not-xml.patch532
-rw-r--r--extra/libgweather/libgweather.install22
-rw-r--r--extra/libhangul/PKGBUILD27
-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/PKGBUILD30
-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/PKGBUILD34
-rw-r--r--extra/libiodbc/PKGBUILD36
-rw-r--r--extra/libirman/PKGBUILD22
-rw-r--r--extra/libisoburn/PKGBUILD27
-rw-r--r--extra/libisoburn/libisoburn.install20
-rw-r--r--extra/libisofs/PKGBUILD29
-rw-r--r--extra/libjpeg-turbo/PKGBUILD42
-rw-r--r--extra/libkdcraw/PKGBUILD32
-rw-r--r--extra/libkdcraw/libkdcraw.install11
-rw-r--r--extra/libkdeedu/PKGBUILD31
-rw-r--r--extra/libkdeedu/libkdeedu.install11
-rw-r--r--extra/libkexiv2/PKGBUILD31
-rw-r--r--extra/libkipi/PKGBUILD32
-rw-r--r--extra/libkipi/libkipi.install11
-rw-r--r--extra/libksane/PKGBUILD32
-rw-r--r--extra/libksane/libksane.install11
-rw-r--r--extra/libksba/PKGBUILD23
-rw-r--r--extra/libksba/libksba.install20
-rw-r--r--extra/libktorrent/PKGBUILD30
-rw-r--r--extra/liblastfm/PKGBUILD32
-rw-r--r--extra/liblastfm/no-ftools.patch36
-rw-r--r--extra/liblo/PKGBUILD22
-rw-r--r--extra/liblouis/PKGBUILD33
-rw-r--r--extra/liblouis/liblouis.install20
-rw-r--r--extra/liblqr/PKGBUILD26
-rw-r--r--extra/liblrdf/PKGBUILD37
-rw-r--r--extra/liblrdf/md5.patch18
-rw-r--r--extra/liblrdf/pkgconfig-raptor.patch9
-rw-r--r--extra/liblrdf/raptor2.diff193
-rw-r--r--extra/libmad/PKGBUILD39
-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/PKGBUILD26
-rw-r--r--extra/libmcrypt/PKGBUILD32
-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/PKGBUILD25
-rw-r--r--extra/libmng/PKGBUILD29
-rw-r--r--extra/libmodplug/PKGBUILD28
-rw-r--r--extra/libmowgli/PKGBUILD28
-rw-r--r--extra/libmp3splt/PKGBUILD27
-rw-r--r--extra/libmp4v2/PKGBUILD29
-rw-r--r--extra/libmpcdec/PKGBUILD26
-rw-r--r--extra/libmpd/PKGBUILD26
-rw-r--r--extra/libmpdclient/PKGBUILD29
-rw-r--r--extra/libmpeg2/PKGBUILD35
-rw-r--r--extra/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch128
-rw-r--r--extra/libmsn/PKGBUILD31
-rw-r--r--extra/libmspack/PKGBUILD31
-rw-r--r--extra/libmtp/PKGBUILD27
-rw-r--r--extra/libmusicbrainz3/PKGBUILD29
-rw-r--r--extra/libmygpo-qt/PKGBUILD30
-rw-r--r--extra/libmythes/PKGBUILD35
-rw-r--r--extra/libnet/PKGBUILD29
-rw-r--r--extra/libnice/PKGBUILD26
-rw-r--r--extra/libnotify/PKGBUILD26
-rw-r--r--extra/libnova/PKGBUILD22
-rw-r--r--extra/liboauth/PKGBUILD29
-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/PKGBUILD43
-rw-r--r--extra/libogg/PKGBUILD38
-rw-r--r--extra/libogg/config_types.h9
-rw-r--r--extra/liboil/PKGBUILD25
-rw-r--r--extra/liborigin2/PKGBUILD57
-rw-r--r--extra/liborigin2/liborigin.pro.archlinux41
-rw-r--r--extra/libotf/PKGBUILD25
-rw-r--r--extra/libotr/PKGBUILD26
-rw-r--r--extra/libots/PKGBUILD28
-rw-r--r--extra/libpano13/PKGBUILD27
-rw-r--r--extra/libpciaccess/PKGBUILD24
-rw-r--r--extra/libpeas/PKGBUILD32
-rw-r--r--extra/libpeas/libpeas.install11
-rw-r--r--extra/libplist/PKGBUILD30
-rw-r--r--extra/libpng/PKGBUILD41
-rw-r--r--extra/libproxy/PKGBUILD42
-rw-r--r--extra/libpst/PKGBUILD40
-rw-r--r--extra/libqalculate/PKGBUILD28
-rw-r--r--extra/libqzeitgeist/PKGBUILD35
-rw-r--r--extra/libraw1394/PKGBUILD27
-rw-r--r--extra/libreoffice/PKGBUILD912
-rw-r--r--extra/libreoffice/buildfix_boost.diff40
-rw-r--r--extra/libreoffice/buildfix_ct2n.diff17
-rw-r--r--extra/libreoffice/fix-nobody-temp-dir.patch11
-rw-r--r--extra/libreoffice/libreoffice.install47
-rw-r--r--extra/libreoffice/scp2-more-reasonable-file-access-rights.diff15
-rw-r--r--extra/libreoffice/vbahelper.visibility.patch33
-rw-r--r--extra/librsvg/PKGBUILD31
-rw-r--r--extra/librsvg/librsvg.install11
-rw-r--r--extra/libsamplerate/PKGBUILD31
-rw-r--r--extra/libsexy/PKGBUILD28
-rw-r--r--extra/libshout/PKGBUILD28
-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/PKGBUILD26
-rw-r--r--extra/libsm/PKGBUILD25
-rw-r--r--extra/libsmbios/PKGBUILD47
-rw-r--r--extra/libsndfile/PKGBUILD26
-rw-r--r--extra/libsocialweb/PKGBUILD34
-rw-r--r--extra/libsoup/PKGBUILD48
-rw-r--r--extra/libspectre/PKGBUILD25
-rw-r--r--extra/libssh/PKGBUILD31
-rw-r--r--extra/libstdc++5/PKGBUILD52
-rw-r--r--extra/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch11
-rw-r--r--extra/libstroke/PKGBUILD44
-rw-r--r--extra/libstroke/libgstroke-Makefile.am.patch11
-rw-r--r--extra/libstroke/libstroke-0.5.1-m4_syntax.patch58
-rw-r--r--extra/libstroke/libstroke-Makefile.am.patch15
-rw-r--r--extra/libtasn1/PKGBUILD35
-rw-r--r--extra/libtasn1/libtasn1.install18
-rw-r--r--extra/libtextcat/PKGBUILD50
-rw-r--r--extra/libtextcat/fpdb.conf86
-rw-r--r--extra/libtextcat/libtextcat-2.2-OOo.patch634
-rw-r--r--extra/libtextcat/libtextcat-2.2-exportapi.patch305
-rw-r--r--extra/libthai/PKGBUILD27
-rw-r--r--extra/libtheora/PKGBUILD31
-rw-r--r--extra/libtiff/PKGBUILD29
-rw-r--r--extra/libtorrent-rasterbar/PKGBUILD28
-rw-r--r--extra/libunique/PKGBUILD37
-rw-r--r--extra/libunique/remove_G_CONST_RETURN.patch117
-rw-r--r--extra/libunique/unique-gdbus.patch529
-rw-r--r--extra/libunique3/PKGBUILD27
-rw-r--r--extra/libupnp/PKGBUILD30
-rw-r--r--extra/libva-driver-intel/PKGBUILD29
-rw-r--r--extra/libva/PKGBUILD33
-rw-r--r--extra/libva/libva.install5
-rw-r--r--extra/libvdpau/PKGBUILD30
-rw-r--r--extra/libvisual-plugins/02_64-bit_JESS_fix.patch58
-rw-r--r--extra/libvisual-plugins/03_build_against_gl_fixes.patch372
-rw-r--r--extra/libvisual-plugins/04_lv_analyzer_build_fix.patch12
-rw-r--r--extra/libvisual-plugins/050_all_automagic.patch50
-rw-r--r--extra/libvisual-plugins/05_fix_po.patch127
-rw-r--r--extra/libvisual-plugins/PKGBUILD44
-rw-r--r--extra/libvisual/PKGBUILD22
-rw-r--r--extra/libvncserver/PKGBUILD27
-rw-r--r--extra/libvorbis/PKGBUILD33
-rw-r--r--extra/libvpx/PKGBUILD40
-rw-r--r--extra/libwebkit/PKGBUILD71
-rw-r--r--extra/libwebkit/fix-mips-n32.patch25
-rw-r--r--extra/libwebkit/libwebkit.install11
-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/PKGBUILD30
-rw-r--r--extra/libwnck3/PKGBUILD28
-rw-r--r--extra/libwpd/PKGBUILD26
-rw-r--r--extra/libwpg/PKGBUILD25
-rw-r--r--extra/libwps/PKGBUILD32
-rw-r--r--extra/libx11/PKGBUILD37
-rw-r--r--extra/libx11/xorg.csh15
-rw-r--r--extra/libx11/xorg.sh15
-rw-r--r--extra/libxau/PKGBUILD26
-rw-r--r--extra/libxaw/PKGBUILD24
-rw-r--r--extra/libxcb/PKGBUILD36
-rw-r--r--extra/libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--extra/libxcb/xcb_auth-fix-memory-leak.patch38
-rw-r--r--extra/libxcomposite/PKGBUILD25
-rw-r--r--extra/libxcursor/PKGBUILD29
-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/PKGBUILD35
-rw-r--r--extra/libxfce4util/PKGBUILD33
-rw-r--r--extra/libxfcegui4/PKGBUILD33
-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/PKGBUILD32
-rw-r--r--extra/libxi/XExtInt-align-classes-n32.diff31
-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/PKGBUILD28
-rw-r--r--extra/libxmi/PKGBUILD28
-rw-r--r--extra/libxmi/libxmi.install20
-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/PKGBUILD31
-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/PKGBUILD30
-rwxr-xr-xextra/libytnef/config.guess1516
-rwxr-xr-xextra/libytnef/config.sub1766
-rw-r--r--extra/libzip/PKGBUILD30
-rw-r--r--extra/libzip/fix-headers.patch15
-rw-r--r--extra/libzvt/PKGBUILD26
-rw-r--r--extra/licq/PKGBUILD40
-rw-r--r--extra/lighttpd/PKGBUILD67
-rw-r--r--extra/lighttpd/lighttpd.conf12
-rw-r--r--extra/lighttpd/lighttpd.logrotate.d6
-rw-r--r--extra/lighttpd/lighttpd.rc.d132
-rw-r--r--extra/link-grammar/PKGBUILD30
-rw-r--r--extra/linux_logo/PKGBUILD24
-rw-r--r--extra/liquidwar/PKGBUILD32
-rw-r--r--extra/liquidwar/liquidwar-5.6.4-ovflfix.patch18
-rw-r--r--extra/liquidwar/liquidwar.install16
-rw-r--r--extra/lirc/PKGBUILD104
-rw-r--r--extra/lirc/irexec.conf5
-rwxr-xr-xextra/lirc/irexecd38
-rw-r--r--extra/lirc/kernel-2.6.39.patch54
-rw-r--r--extra/lirc/lirc.install16
-rw-r--r--extra/lirc/lirc.logrotate5
-rw-r--r--extra/lirc/lirc_atiusb-kfifo.patch31
-rw-r--r--extra/lirc/lirc_wpc8769l.patch88
-rwxr-xr-xextra/lirc/lircd52
-rw-r--r--extra/lirc/lircd-handle-large-config.patch39
-rw-r--r--extra/lirc/lircd.conf8
-rwxr-xr-xextra/lirc/lircmd36
-rw-r--r--extra/live-media/PKGBUILD40
-rw-r--r--extra/llvm/PKGBUILD199
-rw-r--r--extra/llvm/bug-9869-operator-h-c++0x.patch57
-rw-r--r--extra/llvm/cindexer-clang-path.patch10
-rw-r--r--extra/llvm/clang-plugin-loader-registry.patch11
-rw-r--r--extra/llvm/clang-pure64.patch13
-rw-r--r--extra/llvm/clang-toolchains-gcc-versions.patch12
-rw-r--r--extra/llvm/enable-lto.patch32
-rw-r--r--extra/llvm/fix-gold-lto-linking.patch11
-rw-r--r--extra/lm_sensors/PKGBUILD61
-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/linux_3.0.patch11
-rw-r--r--extra/lm_sensors/sensord.conf4
-rw-r--r--extra/lm_sensors/sensord.rc37
-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/PKGBUILD39
-rw-r--r--extra/lpsolve/PKGBUILD36
-rw-r--r--extra/lpsolve/cflags.patch25
-rw-r--r--extra/lsdvd/PKGBUILD28
-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/PKGBUILD47
-rw-r--r--extra/lua/lua-5.1-cflags.diff13
-rw-r--r--extra/lua/lua-arch.patch55
-rw-r--r--extra/lxsplit/PKGBUILD24
-rw-r--r--extra/lynx/PKGBUILD39
-rw-r--r--extra/lyx/PKGBUILD47
-rw-r--r--extra/lyx/lyx.desktop14
-rw-r--r--extra/lyx/lyx.install14
-rw-r--r--extra/lyx/lyxrc.dist14
-rw-r--r--extra/lzo/PKGBUILD35
-rw-r--r--extra/lzo/nasm-gcc3.patch40
-rw-r--r--extra/lzop/PKGBUILD26
-rw-r--r--extra/m17n-lib/PKGBUILD27
-rw-r--r--extra/mahjong/PKGBUILD26
-rw-r--r--extra/mail-notification/PKGBUILD82
-rw-r--r--extra/mail-notification/dont-update-cache.patch22
-rw-r--r--extra/mail-notification/gmime-2.4.patch63
-rw-r--r--extra/mail-notification/mail-notification-5.4-add-fallback-icon.patch16
-rw-r--r--extra/mail-notification/mail-notification-5.4-camel_headers.patch36
-rw-r--r--extra/mail-notification/mail-notification-5.4-evolution-3-0-support.patch122
-rw-r--r--extra/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch12
-rw-r--r--extra/mail-notification/mail-notification-5.4-evolution.patch244
-rw-r--r--extra/mail-notification/mail-notification-5.4-gtk3-support.patch1416
-rw-r--r--extra/mail-notification/mail-notification-5.4-icons.patch39
-rw-r--r--extra/mail-notification/mail-notification-5.4-kde-trayicon.patch72
-rw-r--r--extra/mail-notification/mail-notification-5.4-popup-attach.patch45
-rw-r--r--extra/mail-notification/mail-notification-5.4-sasl_encode64.patch24
-rw-r--r--extra/mail-notification/mail-notification-5.4-weak.patch11
-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/PKGBUILD56
-rw-r--r--extra/manedit/manedit-1.2.1-fix-man-page.patch15
-rw-r--r--extra/manedit/manedit.desktop9
-rw-r--r--extra/mash/PKGBUILD26
-rw-r--r--extra/maxima/PKGBUILD55
-rw-r--r--extra/maxima/maxima.desktop11
-rw-r--r--extra/maxima/maxima.install18
-rw-r--r--extra/mcpp/PKGBUILD32
-rw-r--r--extra/mcpp/namlen.patch11
-rw-r--r--extra/mcrypt/PKGBUILD26
-rw-r--r--extra/mediastreamer/PKGBUILD34
-rw-r--r--extra/mediastreamer/disable-v4l1.patch50
-rw-r--r--extra/memcached/ChangeLog24
-rw-r--r--extra/memcached/PKGBUILD38
-rw-r--r--extra/memcached/memcached.conf4
-rw-r--r--extra/memcached/memcached.sh63
-rw-r--r--extra/mercurial/PKGBUILD46
-rw-r--r--extra/mercurial/mercurial.profile1
-rw-r--r--extra/mesa/LICENSE82
-rw-r--r--extra/mesa/PKGBUILD338
-rw-r--r--extra/mesa/mesa-7.5-mips-wmb.patch11
-rw-r--r--extra/mesa/mesa-loongson.patch11
-rw-r--r--extra/metacity/PKGBUILD34
-rw-r--r--extra/metacity/metacity.install17
-rw-r--r--extra/metalog/PKGBUILD33
-rw-r--r--extra/metalog/metalog40
-rw-r--r--extra/metalog/metalog.confd8
-rw-r--r--extra/mhash/PKGBUILD27
-rw-r--r--extra/midori/PKGBUILD40
-rw-r--r--extra/midori/midori.install12
-rw-r--r--extra/midori/webkit_search.diff59
-rw-r--r--extra/minicom/PKGBUILD33
-rw-r--r--extra/mirage/PKGBUILD24
-rw-r--r--extra/mirage/mirage.install11
-rw-r--r--extra/miro/PKGBUILD35
-rw-r--r--extra/miro/ffmpeg.patch95
-rw-r--r--extra/miro/miro.install17
-rw-r--r--extra/mjpegtools/PKGBUILD34
-rw-r--r--extra/mjpegtools/mjpegtools-v4l-2.6.38.patch100
-rw-r--r--extra/mjpegtools/mjpegtools.install14
-rw-r--r--extra/mkvtoolnix/PKGBUILD82
-rw-r--r--extra/mkvtoolnix/mkvtoolnix.install14
-rw-r--r--extra/moc/PKGBUILD44
-rw-r--r--extra/moc/gcc-undefined-symbols.diff12
-rw-r--r--extra/moc/moc-ffmpeg.patch26
-rw-r--r--extra/mod_dnssd/PKGBUILD27
-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/PKGBUILD36
-rw-r--r--extra/mod_perl/nolfs.patch14
-rw-r--r--extra/mod_wsgi/PKGBUILD29
-rw-r--r--extra/mod_wsgi/mod_wsgi.install14
-rw-r--r--extra/modemmanager/PKGBUILD30
-rw-r--r--extra/monica/PKGBUILD33
-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/PKGBUILD29
-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/monodevelop/monodevelop_gnome3.patch101
-rw-r--r--extra/most/PKGBUILD32
-rw-r--r--extra/most/most-debian.patch2313
-rw-r--r--extra/most/most-leak-fd.patch14
-rw-r--r--extra/mousetweaks/PKGBUILD29
-rw-r--r--extra/mousetweaks/mousetweaks.install17
-rw-r--r--extra/mp3splt/PKGBUILD25
-rw-r--r--extra/mp3wrap/PKGBUILD24
-rw-r--r--extra/mpc/PKGBUILD30
-rw-r--r--extra/mpck/PKGBUILD27
-rw-r--r--extra/mpd/ChangeLog12
-rw-r--r--extra/mpd/PKGBUILD61
-rwxr-xr-xextra/mpd/mpd36
-rw-r--r--extra/mpd/mpd.install18
-rw-r--r--extra/mpg123/PKGBUILD32
-rw-r--r--extra/mrtg/PKGBUILD29
-rw-r--r--extra/msmtp/PKGBUILD38
-rw-r--r--extra/msmtp/msmtp.install20
-rw-r--r--extra/mt-st/PKGBUILD26
-rw-r--r--extra/mtools/PKGBUILD37
-rw-r--r--extra/mtools/mtools.install18
-rw-r--r--extra/mtr/PKGBUILD42
-rw-r--r--extra/mtx/PKGBUILD27
-rw-r--r--extra/multitail/PKGBUILD28
-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/PKGBUILD48
-rw-r--r--extra/mutt/install8
-rw-r--r--extra/mutter/PKGBUILD36
-rw-r--r--extra/mutter/mutter.install17
-rw-r--r--extra/mx/PKGBUILD28
-rw-r--r--extra/mysql-python/PKGBUILD20
-rw-r--r--extra/mysql/PKGBUILD130
-rw-r--r--extra/mysql/my.cnf145
-rw-r--r--extra/mysql/mysql.install26
-rwxr-xr-xextra/mysql/mysqld77
-rw-r--r--extra/naim/PKGBUILD25
-rw-r--r--extra/nasm/PKGBUILD42
-rw-r--r--extra/nasm/nasm.install20
-rw-r--r--extra/nautilus-open-terminal/PKGBUILD33
-rw-r--r--extra/nautilus-open-terminal/nautilus-open-terminal.install17
-rw-r--r--extra/nautilus-sendto/PKGBUILD31
-rw-r--r--extra/nautilus-sendto/nautilus-sendto.install11
-rw-r--r--extra/nautilus/PKGBUILD34
-rw-r--r--extra/nautilus/nautilus.install20
-rw-r--r--extra/nawk/PKGBUILD29
-rw-r--r--extra/nawk/manpage-naming.patch46
-rw-r--r--extra/ncftp/PKGBUILD35
-rw-r--r--extra/ncmpc/PKGBUILD37
-rw-r--r--extra/nedit/PKGBUILD38
-rw-r--r--extra/nedit/nedit_xorg_composite_fix.patch18
-rw-r--r--extra/neon/PKGBUILD35
-rw-r--r--extra/net-snmp/PKGBUILD51
-rw-r--r--extra/net-snmp/snmpd.confd5
-rw-r--r--extra/net-snmp/snmpd.rc39
-rw-r--r--extra/netcdf/PKGBUILD33
-rw-r--r--extra/netkit-bsd-finger/LICENSE36
-rw-r--r--extra/netkit-bsd-finger/PKGBUILD35
-rw-r--r--extra/netkit-bsd-finger/finger.xinetd8
-rw-r--r--extra/netpbm/PKGBUILD85
-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/nettle/PKGBUILD36
-rw-r--r--extra/nettle/nettle.install20
-rw-r--r--extra/network-manager-applet/PKGBUILD40
-rw-r--r--extra/network-manager-applet/network-manager-applet.install18
-rw-r--r--extra/networkmanager-openconnect/PKGBUILD31
-rw-r--r--extra/networkmanager-openconnect/networkmanager-openconnect.install16
-rw-r--r--extra/networkmanager-openvpn/PKGBUILD31
-rw-r--r--extra/networkmanager-openvpn/networkmanager-openvpn.install11
-rw-r--r--extra/networkmanager-pptp/PKGBUILD31
-rw-r--r--extra/networkmanager-pptp/networkmanager-pptp.install11
-rw-r--r--extra/networkmanager-vpnc/PKGBUILD31
-rw-r--r--extra/networkmanager-vpnc/networkmanager-vpnc.install11
-rw-r--r--extra/networkmanager/NetworkManager.conf2
-rw-r--r--extra/networkmanager/PKGBUILD63
-rw-r--r--extra/networkmanager/disable_set_hostname.patch19
-rw-r--r--extra/networkmanager/networkmanager.install9
-rw-r--r--extra/neverball/PKGBUILD46
-rw-r--r--extra/nicotine/PKGBUILD37
-rw-r--r--extra/nitrogen/PKGBUILD27
-rw-r--r--extra/nitrogen/nitrogen.install11
-rw-r--r--extra/nmap/ChangeLog17
-rw-r--r--extra/nmap/PKGBUILD40
-rw-r--r--extra/normalize/PKGBUILD30
-rw-r--r--extra/notification-daemon/PKGBUILD30
-rw-r--r--extra/notification-daemon/notification-daemon.install22
-rw-r--r--extra/nspr/PKGBUILD63
-rw-r--r--extra/nspr/nspr.pc.in10
-rw-r--r--extra/nss-mdns/PKGBUILD34
-rw-r--r--extra/nss-mdns/mdns.allow8
-rw-r--r--extra/nss-mdns/nss-mdns.install20
-rw-r--r--extra/nss/PKGBUILD106
-rw-r--r--extra/nss/add_spi+cacert_ca_certs.patch1150
-rw-r--r--extra/nss/distrust-diginotar.patch1675
-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_ntfsprogs/25-ntfs-config-write-policy.fdi42
-rw-r--r--extra/ntfs-3g_ntfsprogs/PKGBUILD47
-rw-r--r--extra/ntp/PKGBUILD61
-rw-r--r--extra/ntp/install10
-rw-r--r--extra/ntp/ntp.conf23
-rwxr-xr-xextra/ntp/ntpd52
-rw-r--r--extra/ntp/ntpd.conf5
-rwxr-xr-xextra/ntp/ntpdate31
-rw-r--r--extra/ntrack/PKGBUILD34
-rw-r--r--extra/ntrack/dead-loop-fix.patch14
-rw-r--r--extra/numactl/PKGBUILD24
-rw-r--r--extra/nx-common/NXproto.h.64bit.diff66
-rw-r--r--extra/nx-common/PKGBUILD54
-rw-r--r--extra/nx-common/nxcompsh-gcc43.patch19
-rw-r--r--extra/nxserver/NXproto.h.64bit.diff66
-rw-r--r--extra/nxserver/PKGBUILD92
-rw-r--r--extra/nxserver/nxcompsh-gcc43.patch19
-rw-r--r--extra/obex-data-server/PKGBUILD28
-rw-r--r--extra/obexd/PKGBUILD47
-rw-r--r--extra/obexftp/PKGBUILD35
-rw-r--r--extra/ocaml/PKGBUILD63
-rw-r--r--extra/ocaml/fix-caml_int64_float_of_bits-n32.patch12
-rw-r--r--extra/ocaml/fix-ocaml-binutils-2.21.patch66
-rw-r--r--extra/ocrad/PKGBUILD31
-rw-r--r--extra/ocrad/ocrad.install20
-rw-r--r--extra/octave/PKGBUILD44
-rw-r--r--extra/octave/curlfix.patch10
-rw-r--r--extra/octave/imread.patch29
-rw-r--r--extra/octave/octave-3.4.0-gcc46.patch24
-rw-r--r--extra/octave/octave.install18
-rw-r--r--extra/ode/PKGBUILD30
-rw-r--r--extra/ogle/PKGBUILD44
-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/ogle-vuln-scripts-makefile.patch36
-rw-r--r--extra/ogle/xvideofix.patch205
-rw-r--r--extra/ogmtools/PKGBUILD26
-rw-r--r--extra/opal/PKGBUILD27
-rw-r--r--extra/openal/PKGBUILD29
-rw-r--r--extra/openbabel/PKGBUILD33
-rw-r--r--extra/openconnect/PKGBUILD28
-rw-r--r--extra/opencore-amr/PKGBUILD24
-rw-r--r--extra/opencv/PKGBUILD111
-rw-r--r--extra/openexr/PKGBUILD29
-rw-r--r--extra/openexr/gcc43.patch11
-rw-r--r--extra/opengtl/PKGBUILD33
-rw-r--r--extra/openjdk6/PKGBUILD196
-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.diff60
-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/PKGBUILD36
-rw-r--r--extra/openjpeg/openjpeg-1.4-autoconf.patch78
-rw-r--r--extra/openmpi/PKGBUILD79
-rw-r--r--extra/openobex/PKGBUILD34
-rw-r--r--extra/openslp/PKGBUILD23
-rwxr-xr-xextra/openslp/rc.slpd38
-rw-r--r--extra/opensp/PKGBUILD35
-rw-r--r--extra/oprofile/PKGBUILD37
-rw-r--r--extra/oprofile/oprofile.install21
-rw-r--r--extra/orage/PKGBUILD36
-rw-r--r--extra/orage/fix-infinite-reminder.patch122
-rw-r--r--extra/orage/orage.install12
-rw-r--r--extra/orbit2/PKGBUILD22
-rw-r--r--extra/orc/PKGBUILD24
-rw-r--r--extra/ortp/PKGBUILD28
-rw-r--r--extra/ossp/PKGBUILD42
-rw-r--r--extra/ossp/osspd.conf.d10
-rwxr-xr-xextra/ossp/osspd.rc.d52
-rw-r--r--extra/oxine/PKGBUILD28
-rw-r--r--extra/oxygen-gtk/PKGBUILD30
-rw-r--r--extra/p11-kit/PKGBUILD29
-rw-r--r--extra/pam_ldap/PKGBUILD25
-rw-r--r--extra/pango-perl/PKGBUILD31
-rw-r--r--extra/pango/PKGBUILD29
-rw-r--r--extra/pango/pango.install21
-rw-r--r--extra/pangomm/PKGBUILD33
-rw-r--r--extra/paprefs/PKGBUILD35
-rw-r--r--extra/paprefs/do-not-require-recompile.patch33
-rw-r--r--extra/paprefs/paprefs.desktop13
-rw-r--r--extra/parted/PKGBUILD37
-rw-r--r--extra/parted/linux.c.patch25
-rw-r--r--extra/parted/parted.install18
-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/PKGBUILD33
-rw-r--r--extra/pavucontrol/pavucontrol.desktop11
-rw-r--r--extra/pdksh/PKGBUILD31
-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/PKGBUILD46
-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/PKGBUILD49
-rw-r--r--extra/perl-dbd-sqlite/PKGBUILD28
-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/PKGBUILD40
-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-list-moreutils/PKGBUILD49
-rw-r--r--extra/perl-locale-gettext/PKGBUILD43
-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/PKGBUILD37
-rw-r--r--extra/perl-net-upnp/PKGBUILD32
-rw-r--r--extra/perl-netaddr-ip/PKGBUILD38
-rw-r--r--extra/perl-sdl/PKGBUILD40
-rw-r--r--extra/perl-socket6/PKGBUILD49
-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/PKGBUILD35
-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/PKGBUILD37
-rw-r--r--extra/phonon/libqzeitgeist08.patch150
-rw-r--r--extra/php-apc/PKGBUILD30
-rw-r--r--extra/php-suhosin/PKGBUILD31
-rw-r--r--extra/php/PKGBUILD365
-rw-r--r--extra/php/apache.conf13
-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-fpm158
-rw-r--r--extra/physfs/PKGBUILD40
-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/PKGBUILD112
-rw-r--r--extra/pidgin/nm09-more.patch49
-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/PKGBUILD37
-rw-r--r--extra/pinentry/gtk2-pinentry-segfault.patch11
-rw-r--r--extra/pinentry/pinentry.install20
-rw-r--r--extra/pixman/PKGBUILD39
-rw-r--r--extra/pixman/pixman-loongson2f.patch2745
-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/PKGBUILD22
-rw-r--r--extra/polkit-gnome/PKGBUILD33
-rw-r--r--extra/polkit-gnome/polkit-gnome-authentication-agent-1.desktop88
-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/PKGBUILD83
-rw-r--r--extra/poppler/git-fixes.patch107
-rw-r--r--extra/postfix/PKGBUILD64
-rw-r--r--extra/postfix/aliases.patch18
-rw-r--r--extra/postfix/install34
-rwxr-xr-xextra/postfix/rc.d36
-rw-r--r--extra/postgresql-old-upgrade/PKGBUILD41
-rw-r--r--extra/postgresql/PKGBUILD138
-rwxr-xr-xextra/postgresql/postgresql79
-rw-r--r--extra/postgresql/postgresql.confd11
-rw-r--r--extra/postgresql/postgresql.install26
-rw-r--r--extra/postgresql/postgresql.logrotate4
-rw-r--r--extra/postgresql/postgresql.pam3
-rw-r--r--extra/potrace/PKGBUILD26
-rw-r--r--extra/prison/PKGBUILD29
-rw-r--r--extra/procmail/PKGBUILD31
-rw-r--r--extra/procmail/procmail-3.22-getline.patch56
-rw-r--r--extra/proftpd/PKGBUILD51
-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/PKGBUILD34
-rw-r--r--extra/progsreiserfs/fix-underquoted-definition.patch11
-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/PKGBUILD30
-rw-r--r--extra/pstoedit/PKGBUILD34
-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/PKGBUILD43
-rw-r--r--extra/ptlib/PKGBUILD33
-rw-r--r--extra/pulseaudio/PKGBUILD101
-rwxr-xr-xextra/pulseaudio/pulseaudio.install23
-rw-r--r--extra/pulseaudio/pulseaudio.xinit12
-rw-r--r--extra/purple-plugin-pack/PKGBUILD34
-rw-r--r--extra/putty/PKGBUILD27
-rw-r--r--extra/pwgen/PKGBUILD21
-rw-r--r--extra/pyalpm/PKGBUILD23
-rw-r--r--extra/pycrypto/PKGBUILD23
-rw-r--r--extra/pycups/PKGBUILD25
-rw-r--r--extra/pygobject/PKGBUILD59
-rw-r--r--extra/pygobject/fix-pycairo-capi-declaration.patch17
-rw-r--r--extra/pygobject2/PKGBUILD83
-rw-r--r--extra/pygobject2/python3-fix-build.patch34
-rw-r--r--extra/pygobject2/python3-fix-maketrans.patch36
-rw-r--r--extra/pygtk/PKGBUILD37
-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/pyqt/PKGBUILD78
-rw-r--r--extra/pysmbc/PKGBUILD24
-rw-r--r--extra/python-cairo/PKGBUILD42
-rw-r--r--extra/python-cairo/pycairo-1.8.10-pypath.patch36
-rw-r--r--extra/python-egenix-mx-base/PKGBUILD33
-rw-r--r--extra/python-geoip/PKGBUILD21
-rw-r--r--extra/python-imaging/PKGBUILD48
-rw-r--r--extra/python-iwscan/PKGBUILD18
-rw-r--r--extra/python-lxml/PKGBUILD38
-rw-r--r--extra/python-m2crypto/PKGBUILD28
-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-pycurl/PKGBUILD22
-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/ChangeLog16
-rw-r--r--extra/python-pysqlite/PKGBUILD34
-rw-r--r--extra/python-pysqlite/setup.cfg5
-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/PKGBUILD98
-rw-r--r--extra/python/gdbm-magic-values.patch13
-rw-r--r--extra/python2-cairo/PKGBUILD32
-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/PKGBUILD29
-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/PKGBUILD58
-rw-r--r--extra/qemu-kvm/qemu-kvm.install16
-rw-r--r--extra/qemu/65-kvm.rules1
-rw-r--r--extra/qemu/PKGBUILD44
-rw-r--r--extra/qemu/qemu.install24
-rw-r--r--extra/qhull/PKGBUILD49
-rw-r--r--extra/qhull/qhull-2010.1-cmake-install.patch98
-rw-r--r--extra/qhull/qhull-2010.1-overflows.patch50
-rw-r--r--extra/qimageblitz/PKGBUILD33
-rw-r--r--extra/qiv/PKGBUILD25
-rw-r--r--extra/qjackctl/PKGBUILD31
-rw-r--r--extra/qjson/PKGBUILD29
-rw-r--r--extra/qrencode/PKGBUILD30
-rw-r--r--extra/qscintilla/PKGBUILD75
-rw-r--r--extra/qscintilla/configure.py-objdir-support.diff39
-rw-r--r--extra/qsynth/PKGBUILD25
-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/PKGBUILD147
-rw-r--r--extra/qt/assistant.desktop9
-rw-r--r--extra/qt/blacklist-diginotar-certs.diff89
-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/PKGBUILD143
-rw-r--r--extra/qt3/eastern_asian_languagues.diff39
-rw-r--r--extra/qt3/gcc-4.6.patch33
-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/PKGBUILD37
-rw-r--r--extra/qtcurve-kde4/bypass-kde-config.patch32
-rw-r--r--extra/qtiplot/PKGBUILD90
-rw-r--r--extra/qtiplot/build.conf.archlinux31
-rw-r--r--extra/qtiplot/qtiplot-0.9.8.6-gold.patch15
-rw-r--r--extra/qtiplot/qtiplot-0.9.8.6-kde.patch15
-rw-r--r--extra/qtiplot/qtiplot-0.9.8.6-tamuanova.patch26
-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/PKGBUILD37
-rw-r--r--extra/quota-tools/LICENSE33
-rw-r--r--extra/quota-tools/PKGBUILD49
-rw-r--r--extra/quota-tools/nulls.diff20
-rw-r--r--extra/quota-tools/quotaon.diff216
-rw-r--r--extra/quota-tools/repquota.diff91
-rw-r--r--extra/quota-tools/system_inodes.diff18
-rw-r--r--extra/qwt/PKGBUILD42
-rw-r--r--extra/qwt/qwtconfig-archlinux.pri118
-rw-r--r--extra/qwtplot3d/PKGBUILD42
-rw-r--r--extra/qwtplot3d/qwtplot3d-gcc44.patch12
-rw-r--r--extra/r/PKGBUILD69
-rw-r--r--extra/r/r.desktop11
-rw-r--r--extra/r/r.install12
-rw-r--r--extra/r/r.pngbin0 -> 4771 bytes
-rw-r--r--extra/racket/PKGBUILD31
-rw-r--r--extra/racket/drracket.desktop9
-rw-r--r--extra/racket/racket.install11
-rw-r--r--extra/raptor/PKGBUILD30
-rw-r--r--extra/raptor1/PKGBUILD36
-rw-r--r--extra/raptor1/curl.patch11
-rw-r--r--extra/rarian/PKGBUILD30
-rw-r--r--extra/rarian/user-segfault.patch14
-rw-r--r--extra/rasqal/PKGBUILD34
-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/PKGBUILD41
-rw-r--r--extra/rcs/PKGBUILD29
-rw-r--r--extra/rdesktop/PKGBUILD35
-rw-r--r--extra/rdesktop/rdesktop-libao.patch20
-rw-r--r--extra/rdesktop/rdesktop-send_physical_buttons.diff70
-rw-r--r--extra/re-alpine/PKGBUILD38
-rw-r--r--extra/re-alpine/maildir.patch3712
-rw-r--r--extra/re2c/PKGBUILD26
-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/PKGBUILD78
-rw-r--r--extra/redland/rpath.diff11
-rw-r--r--extra/rest/PKGBUILD30
-rw-r--r--extra/rhythmbox/PKGBUILD42
-rw-r--r--extra/rhythmbox/rhythmbox.install22
-rw-r--r--extra/ristretto/PKGBUILD32
-rw-r--r--extra/ristretto/ristretto.install13
-rw-r--r--extra/rosegarden/PKGBUILD43
-rw-r--r--extra/rosegarden/rosegarden.install14
-rw-r--r--extra/rox/PKGBUILD44
-rw-r--r--extra/rox/rox.desktop7
-rw-r--r--extra/rox/rox.sh2
-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/ChangeLog39
-rw-r--r--extra/rsync/PKGBUILD41
-rw-r--r--extra/rsync/rsync.xinetd11
-rw-r--r--extra/rsync/rsyncd43
-rw-r--r--extra/rsync/rsyncd.conf16
-rw-r--r--extra/rtkit/PKGBUILD41
-rw-r--r--extra/rtkit/rtkit.install26
-rw-r--r--extra/rtmpdump/PKGBUILD27
-rw-r--r--extra/rubberband/PKGBUILD41
-rw-r--r--extra/rubberband/gcc46.patch10
-rw-r--r--extra/rubberband/vectorops.patch13
-rw-r--r--extra/ruby/PKGBUILD51
-rw-r--r--extra/rxvt-unicode/ChangeLog8
-rw-r--r--extra/rxvt-unicode/PKGBUILD53
-rw-r--r--extra/rxvt-unicode/rxvt-unicode.desktop10
-rw-r--r--extra/samba/PKGBUILD146
-rw-r--r--extra/samba/fix-ipv6-mount.patch11
-rwxr-xr-xextra/samba/samba57
-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/PKGBUILD57
-rw-r--r--extra/sane/libv4l-0.8.3.patch64
-rw-r--r--extra/sane/sane.install14
-rw-r--r--extra/sane/sane.xinetd11
-rw-r--r--extra/sane/xerox_mfp_fix_usb_devices.patch67
-rw-r--r--extra/sbcl/PKGBUILD75
-rw-r--r--extra/sbcl/arch-fixes.lisp21
-rw-r--r--extra/sbcl/mips-arch.h.diff20
-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/PKGBUILD40
-rw-r--r--extra/scim/install13
-rw-r--r--extra/screen/PKGBUILD48
-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/PKGBUILD28
-rw-r--r--extra/scummvm/PKGBUILD38
-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/PKGBUILD27
-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/PKGBUILD33
-rw-r--r--extra/sdl_sound/flac.patch126
-rw-r--r--extra/sdl_ttf/PKGBUILD26
-rw-r--r--extra/seahorse/PKGBUILD40
-rw-r--r--extra/seahorse/seahorse-ssh-askpass.sh3
-rw-r--r--extra/seahorse/seahorse.install21
-rw-r--r--extra/seed/PKGBUILD27
-rw-r--r--extra/setserial/PKGBUILD31
-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.patch42
-rw-r--r--extra/shared-mime-info/shared-mime-info.install15
-rw-r--r--extra/sharutils/PKGBUILD32
-rw-r--r--extra/sharutils/install18
-rw-r--r--extra/sip/PKGBUILD55
-rw-r--r--extra/skanlite/PKGBUILD30
-rw-r--r--extra/slang/PKGBUILD33
-rw-r--r--extra/slim/PKGBUILD68
-rw-r--r--extra/slim/gcc44.patch11
-rw-r--r--extra/slim/install7
-rw-r--r--extra/slim/logrotate9
-rw-r--r--extra/slim/no-host.patch29
-rw-r--r--extra/slim/pam.d10
-rw-r--r--extra/slim/ptr_pam.patch52
-rwxr-xr-xextra/slim/rc.d36
-rw-r--r--extra/slim/restart.patch144
-rw-r--r--extra/slim/session-name.patch21
-rw-r--r--extra/slim/sigterm.patch45
-rw-r--r--extra/slim/tty-slowness.patch30
-rw-r--r--extra/slv2/PKGBUILD32
-rw-r--r--extra/slv2/slv2.changelog23
-rw-r--r--extra/slv2/slv2.install14
-rw-r--r--extra/smartmontools/PKGBUILD41
-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.install10
-rw-r--r--extra/smpeg/PKGBUILD36
-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/PKGBUILD40
-rw-r--r--extra/socat/PKGBUILD31
-rw-r--r--extra/sofia-sip/PKGBUILD25
-rw-r--r--extra/sonata/ChangeLog16
-rw-r--r--extra/sonata/PKGBUILD30
-rw-r--r--extra/sonata/info.py.patch15
-rw-r--r--extra/soprano/PKGBUILD37
-rw-r--r--extra/sound-juicer/PKGBUILD37
-rw-r--r--extra/sound-juicer/sound-juicer.install24
-rw-r--r--extra/soundtouch/PKGBUILD46
-rw-r--r--extra/soundtouch/disable-mmx.patch36
-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/PKGBUILD32
-rw-r--r--extra/source-highlight/source-highlight.install18
-rw-r--r--extra/sox/PKGBUILD37
-rw-r--r--extra/sox/sox-14.3.2-ffmpeg.patch40
-rw-r--r--extra/spamassassin/PKGBUILD54
-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/speex/PKGBUILD28
-rw-r--r--extra/squid/PKGBUILD65
-rw-r--r--extra/squid/squid52
-rw-r--r--extra/squid/squid.conf.d4
-rw-r--r--extra/squid/squid.cron4
-rw-r--r--extra/squid/squid.install26
-rw-r--r--extra/squid/squid.pam4
-rw-r--r--extra/srm/PKGBUILD28
-rw-r--r--extra/sshfs/PKGBUILD27
-rw-r--r--extra/ssmtp/PKGBUILD35
-rw-r--r--extra/stardict/NetDictRequests.patch12
-rw-r--r--extra/stardict/PKGBUILD48
-rw-r--r--extra/stardict/gcc46.patch11
-rw-r--r--extra/startup-notification/PKGBUILD28
-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/PKGBUILD28
-rw-r--r--extra/streamripper/PKGBUILD26
-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/PKGBUILD48
-rw-r--r--extra/strigi/libstreamanalyzer_pdf.patch27
-rw-r--r--extra/subversion/PKGBUILD84
-rw-r--r--extra/subversion/subversion-perl-bindings.patch12
-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/sushi/PKGBUILD29
-rw-r--r--extra/sweep/PKGBUILD25
-rw-r--r--extra/swh-plugins/PKGBUILD46
-rw-r--r--extra/swh-plugins/mbeq_crash_fix.patch39
-rw-r--r--extra/swig/PKGBUILD27
-rw-r--r--extra/swt/PKGBUILD75
-rw-r--r--extra/swt/build-swt.xml17
-rw-r--r--extra/sysklogd/LICENSE16
-rw-r--r--extra/sysklogd/PKGBUILD47
-rwxr-xr-xextra/sysklogd/klogd37
-rw-r--r--extra/sysklogd/sysklogd-debian.patch21
-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/PKGBUILD104
-rw-r--r--extra/t1lib/PKGBUILD26
-rw-r--r--extra/t1lib/overflow.patch15
-rw-r--r--extra/taglib-extras/PKGBUILD28
-rw-r--r--extra/taglib-sharp/PKGBUILD24
-rw-r--r--extra/taglib/PKGBUILD38
-rw-r--r--extra/taglib/ape-idev2.patch12
-rw-r--r--extra/talloc/PKGBUILD31
-rw-r--r--extra/tamu-anova/PKGBUILD30
-rw-r--r--extra/tamu-anova/tamu-anova.install18
-rw-r--r--extra/tcl/PKGBUILD52
-rw-r--r--extra/tcpdump/PKGBUILD41
-rw-r--r--extra/tcpdump/ppi.h8
-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/PKGBUILD29
-rw-r--r--extra/telepathy-farstream/PKGBUILD32
-rw-r--r--extra/telepathy-gabble/PKGBUILD30
-rw-r--r--extra/telepathy-gabble/telepathy-gabble.install13
-rw-r--r--extra/telepathy-glib/PKGBUILD31
-rw-r--r--extra/telepathy-haze/PKGBUILD27
-rw-r--r--extra/telepathy-haze/telepathy-haze.install13
-rw-r--r--extra/telepathy-idle/PKGBUILD30
-rw-r--r--extra/telepathy-idle/telepathy-idle.install13
-rw-r--r--extra/telepathy-kde-accounts-kcm/PKGBUILD37
-rw-r--r--extra/telepathy-kde-approver/PKGBUILD31
-rw-r--r--extra/telepathy-kde-auth-handler/PKGBUILD30
-rw-r--r--extra/telepathy-kde-contact-applet/PKGBUILD30
-rw-r--r--extra/telepathy-kde-contact-list/PKGBUILD32
-rw-r--r--extra/telepathy-kde-contact-list/telepathy-kde-contact-list.install11
-rw-r--r--extra/telepathy-kde-filetransfer-handler/PKGBUILD30
-rw-r--r--extra/telepathy-kde-integration-module/PKGBUILD30
-rw-r--r--extra/telepathy-kde-presence-dataengine/PKGBUILD31
-rw-r--r--extra/telepathy-kde-send-file/PKGBUILD31
-rw-r--r--extra/telepathy-kde-send-file/telepathy-kde-send-file.install11
-rw-r--r--extra/telepathy-kde-text-ui/PKGBUILD31
-rw-r--r--extra/telepathy-logger/PKGBUILD34
-rw-r--r--extra/telepathy-logger/telepathy-logger.install11
-rw-r--r--extra/telepathy-mission-control/PKGBUILD32
-rw-r--r--extra/telepathy-mission-control/telepathy-mission-control.install11
-rw-r--r--extra/telepathy-qt4/PKGBUILD31
-rw-r--r--extra/telepathy-salut/PKGBUILD31
-rw-r--r--extra/telepathy-salut/telepathy-salut.install13
-rw-r--r--extra/telepathy-sofiasip/PKGBUILD27
-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/texmacs/PKGBUILD38
-rw-r--r--extra/tftp-hpa/LICENSE32
-rw-r--r--extra/tftp-hpa/PKGBUILD39
-rw-r--r--extra/tftp-hpa/tftpd.conf4
-rwxr-xr-xextra/tftp-hpa/tftpd.rc38
-rw-r--r--extra/thinkfinger/PKGBUILD45
-rw-r--r--extra/thinkfinger/gcc46.patch22
-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-volman/PKGBUILD34
-rw-r--r--extra/thunar-volman/thunar-volman.install11
-rw-r--r--extra/thunar/PKGBUILD56
-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/PKGBUILD40
-rw-r--r--extra/time/time-1.7-Recompute-CPU-usage-at-microsecond-level.patch72
-rw-r--r--extra/time/time-1.7-ru_maxrss-is-in-kilobytes-on-Linux.patch32
-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/PKGBUILD56
-rw-r--r--extra/tomboy/PKGBUILD37
-rw-r--r--extra/tomboy/tomboy.install25
-rw-r--r--extra/tomcat-native/PKGBUILD32
-rw-r--r--extra/tomcat/PKGBUILD49
-rwxr-xr-xextra/tomcat/tomcat53
-rw-r--r--extra/tomcat/tomcat.conf.d5
-rw-r--r--extra/tomcat/tomcat.install36
-rw-r--r--extra/totem-plparser/PKGBUILD29
-rw-r--r--extra/totem/PKGBUILD74
-rw-r--r--extra/totem/totem.install19
-rw-r--r--extra/tracker/PKGBUILD82
-rw-r--r--extra/tracker/tracker.install13
-rw-r--r--extra/transcode/PKGBUILD57
-rw-r--r--extra/transcode/subtitleripper-0.3.4-linkingorder.patch28
-rw-r--r--extra/transcode/subtitleripper-0.3.4-respect-ldflags.patch28
-rw-r--r--extra/transfig/ChangeLog36
-rw-r--r--extra/transfig/LICENSE23
-rw-r--r--extra/transfig/PKGBUILD36
-rw-r--r--extra/transmission/PKGBUILD71
-rw-r--r--extra/transmission/transmission-cli.install9
-rw-r--r--extra/transmission/transmission-gtk.install12
-rw-r--r--extra/transmission/transmission-qt.install11
-rw-r--r--extra/transmission/transmissiond46
-rw-r--r--extra/transmission/transmissiond.conf5
-rw-r--r--extra/trayer/PKGBUILD33
-rw-r--r--extra/trayer/manpage.diff204
-rw-r--r--extra/trayer/trayer.diff22
-rw-r--r--extra/tree/PKGBUILD26
-rw-r--r--extra/truecrypt/PKGBUILD50
-rw-r--r--extra/truecrypt/truecrypt-arch-detection.patch15
-rw-r--r--extra/truecrypt/truecrypt.desktop9
-rw-r--r--extra/tsocks/PKGBUILD25
-rw-r--r--extra/tumbler/PKGBUILD34
-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/PKGBUILD34
-rw-r--r--extra/twisted/twisted.install11
-rw-r--r--extra/udisks/PKGBUILD30
-rw-r--r--extra/uim/PKGBUILD40
-rw-r--r--extra/uim/install12
-rw-r--r--extra/umfpack/PKGBUILD56
-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/PKGBUILD28
-rw-r--r--extra/upower/PKGBUILD27
-rw-r--r--extra/usbmuxd/PKGBUILD32
-rw-r--r--extra/usbmuxd/usbmuxd-udevuser.patch12
-rw-r--r--extra/usbmuxd/usbmuxd.install19
-rw-r--r--extra/usbview/PKGBUILD32
-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/vamp-plugin-sdk/PKGBUILD35
-rw-r--r--extra/vamp-plugin-sdk/gcc44.patch14
-rw-r--r--extra/varnish/PKGBUILD45
-rw-r--r--extra/varnish/rc.varnish46
-rw-r--r--extra/varnish/varnish.conf.d9
-rw-r--r--extra/varnish/varnish.install6
-rw-r--r--extra/vcdimager/PKGBUILD32
-rw-r--r--extra/vcdimager/vcdimager.install21
-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/PKGBUILD35
-rw-r--r--extra/vice/vice-2.3-x11video.patch11
-rw-r--r--extra/vigra/PKGBUILD70
-rw-r--r--extra/vigra/vigra-1.7.1.gcc460.patch33
-rw-r--r--extra/vim/PKGBUILD198
-rw-r--r--extra/vim/archlinux.vim26
-rw-r--r--extra/vim/gvim.desktop63
-rw-r--r--extra/vim/gvim.install11
-rw-r--r--extra/vim/urxvt-mouse.diff35
-rw-r--r--extra/vim/vimrc16
-rw-r--r--extra/vinagre/PKGBUILD37
-rw-r--r--extra/vinagre/vinagre.install20
-rw-r--r--extra/vino/PKGBUILD33
-rw-r--r--extra/vino/vino.install18
-rw-r--r--extra/virtuoso/PKGBUILD38
-rw-r--r--extra/vlc/PKGBUILD109
-rw-r--r--extra/vlc/bp-set-channel-map-pulseaudio-1.0.patch33
-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/vpnc/PKGBUILD54
-rw-r--r--extra/vpnc/vpnc.conf17
-rw-r--r--extra/vsftpd/PKGBUILD43
-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/PKGBUILD38
-rw-r--r--extra/vte3/PKGBUILD45
-rw-r--r--extra/w3m/GC_set_warn_proc.patch12
-rw-r--r--extra/w3m/PKGBUILD40
-rw-r--r--extra/watchdog/PKGBUILD47
-rw-r--r--extra/watchdog/watchdog-5.9-use-oom_score_adj.patch91
-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/PKGBUILD34
-rw-r--r--extra/webmin/PKGBUILD216
-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/PKGBUILD46
-rw-r--r--extra/wesnoth/wesnoth-1.8.6-boost-foreach.patch70
-rw-r--r--extra/wesnoth/wesnoth-libpng-1.4.0.patch14
-rw-r--r--extra/wesnoth/wesnoth.install9
-rw-r--r--extra/wesnoth/wesnoth.tmpfiles.conf1
-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/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/PKGBUILD29
-rw-r--r--extra/wireshark/PKGBUILD57
-rw-r--r--extra/wireshark/wireshark-gtk.install11
-rw-r--r--extra/wireshark/wireshark.install18
-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/PKGBUILD34
-rw-r--r--extra/wxgtk/PKGBUILD37
-rw-r--r--extra/wxmaxima/PKGBUILD36
-rw-r--r--extra/wxpython/PKGBUILD34
-rw-r--r--extra/wxpython/wxpython-cairo.patch51
-rw-r--r--extra/x11-ssh-askpass/PKGBUILD44
-rw-r--r--extra/x11-ssh-askpass/profile.d4
-rw-r--r--extra/x11vnc/PKGBUILD36
-rw-r--r--extra/x11vnc/conf.d5
-rw-r--r--extra/x11vnc/rc.d37
-rw-r--r--extra/x264/PKGBUILD33
-rw-r--r--extra/x2x/LICENSE39
-rw-r--r--extra/x2x/PKGBUILD29
-rw-r--r--extra/xalan-java/PKGBUILD25
-rw-r--r--extra/xaos/PKGBUILD27
-rw-r--r--extra/xaos/xaos.install20
-rw-r--r--extra/xaw3d/LICENSE22
-rw-r--r--extra/xaw3d/PKGBUILD51
-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/PKGBUILD25
-rw-r--r--extra/xbill/PKGBUILD39
-rw-r--r--extra/xbill/xbill.install26
-rw-r--r--extra/xcb-util-image/LICENSE267
-rw-r--r--extra/xcb-util-image/PKGBUILD37
-rw-r--r--extra/xcb-util-keysyms/LICENSE267
-rw-r--r--extra/xcb-util-keysyms/PKGBUILD37
-rw-r--r--extra/xcb-util-renderutil/LICENSE267
-rw-r--r--extra/xcb-util-renderutil/PKGBUILD37
-rw-r--r--extra/xcb-util-wm/LICENSE267
-rw-r--r--extra/xcb-util-wm/PKGBUILD37
-rw-r--r--extra/xcb-util/LICENSE267
-rw-r--r--extra/xcb-util/PKGBUILD38
-rw-r--r--extra/xchm/PKGBUILD36
-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/xerces2-java/PKGBUILD28
-rw-r--r--extra/xf86-input-acecad/PKGBUILD35
-rw-r--r--extra/xf86-input-acecad/assign-local-private-after-allocating.patch24
-rw-r--r--extra/xf86-input-aiptek/PKGBUILD32
-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/PKGBUILD40
-rw-r--r--extra/xf86-input-joystick/git-fixes.patch399
-rw-r--r--extra/xf86-input-keyboard/PKGBUILD26
-rw-r--r--extra/xf86-input-mouse/PKGBUILD30
-rw-r--r--extra/xf86-input-synaptics/10-synaptics.conf9
-rw-r--r--extra/xf86-input-synaptics/PKGBUILD43
-rw-r--r--extra/xf86-input-void/PKGBUILD33
-rw-r--r--extra/xf86-input-wacom/70-wacom.rules12
-rw-r--r--extra/xf86-input-wacom/PKGBUILD35
-rw-r--r--extra/xf86-video-apm/PKGBUILD26
-rw-r--r--extra/xf86-video-ark/PKGBUILD30
-rw-r--r--extra/xf86-video-ark/git-fixes.patch118
-rw-r--r--extra/xf86-video-ast/PKGBUILD26
-rw-r--r--extra/xf86-video-ati/PKGBUILD31
-rw-r--r--extra/xf86-video-chips/PKGBUILD31
-rw-r--r--extra/xf86-video-chips/gut-overlay-8-16-support-from-driver.patch580
-rw-r--r--extra/xf86-video-cirrus/PKGBUILD26
-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-mach64/PKGBUILD30
-rw-r--r--extra/xf86-video-mga/PKGBUILD30
-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/PKGBUILD28
-rw-r--r--extra/xf86-video-r128/PKGBUILD32
-rw-r--r--extra/xf86-video-r128/git-fixes.patch842
-rw-r--r--extra/xf86-video-rendition/PKGBUILD28
-rw-r--r--extra/xf86-video-s3/LICENSE25
-rw-r--r--extra/xf86-video-s3/PKGBUILD31
-rw-r--r--extra/xf86-video-s3/git-fixes.patch458
-rw-r--r--extra/xf86-video-s3virge/PKGBUILD31
-rw-r--r--extra/xf86-video-savage/PKGBUILD27
-rw-r--r--extra/xf86-video-siliconmotion/PKGBUILD33
-rw-r--r--extra/xf86-video-sis/PKGBUILD27
-rw-r--r--extra/xf86-video-sisimedia/0001-Remove-xorgconfig-xorgcfg-from-See-Also-list-in-man-.patch25
-rw-r--r--extra/xf86-video-sisimedia/0002-Remove-XFree86-Misc-PassMessage-support.patch91
-rw-r--r--extra/xf86-video-sisimedia/0003-Fix-build-with-Werror-format-security.patch65
-rw-r--r--extra/xf86-video-sisimedia/0004-Make-sisRegs3D4-big-enough-to-hold-all-values-writte.patch32
-rw-r--r--extra/xf86-video-sisimedia/0005-Correct-bounds-check-of-blitClip-array-access.patch38
-rw-r--r--extra/xf86-video-sisimedia/0005-Fix-backlight-off-on-SiS30x.-video-bridges.patch25
-rw-r--r--extra/xf86-video-sisimedia/0006-Add-IgnoreHotkeyFlag-driver-option.patch89
-rw-r--r--extra/xf86-video-sisimedia/0007-Remove-useless-loader-symbol-lists.patch249
-rw-r--r--extra/xf86-video-sisimedia/0008-update-to-xextproto-7-1-support.patch45
-rw-r--r--extra/xf86-video-sisimedia/0009-update-for-rac-removal.patch69
-rw-r--r--extra/xf86-video-sisimedia/0010-change-to-use-abi-version-check.patch34
-rw-r--r--extra/xf86-video-sisimedia/0011-more-rac-removal.patch13
-rw-r--r--extra/xf86-video-sisimedia/COPYING139
-rw-r--r--extra/xf86-video-sisimedia/PKGBUILD85
-rw-r--r--extra/xf86-video-sisimedia/fix-xv-crash.patch11
-rw-r--r--extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-20102701.patch1376
-rw-r--r--extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-dump-regs-after-video-init.patch89
-rw-r--r--extra/xf86-video-sisimedia/xserver19.patch30
-rw-r--r--extra/xf86-video-sisusb/PKGBUILD26
-rw-r--r--extra/xf86-video-tdfx/PKGBUILD30
-rw-r--r--extra/xf86-video-trident/PKGBUILD27
-rw-r--r--extra/xf86-video-tseng/PKGBUILD29
-rw-r--r--extra/xf86-video-unichrome/LICENSE23
-rw-r--r--extra/xf86-video-unichrome/PKGBUILD26
-rw-r--r--extra/xf86-video-v4l/LICENSE826
-rw-r--r--extra/xf86-video-v4l/PKGBUILD32
-rw-r--r--extra/xf86-video-vesa/PKGBUILD33
-rw-r--r--extra/xf86-video-vesa/git-fixes.patch444
-rw-r--r--extra/xf86-video-vesa/revert-kernelcheck.patch31
-rw-r--r--extra/xf86-video-voodoo/PKGBUILD26
-rw-r--r--extra/xf86-video-xgi/PKGBUILD29
-rw-r--r--extra/xf86-video-xgi/git-fixes.patch451
-rw-r--r--extra/xf86-video-xgixp/PKGBUILD29
-rw-r--r--extra/xf86-video-xgixp/api-compat-fix-for-DRAWABLE_BUFFER.patch23
-rwxr-xr-xextra/xfburn/PKGBUILD38
-rw-r--r--extra/xfburn/fix_empty_dir_segfault.diff48
-rw-r--r--extra/xfburn/xfburn.install14
-rw-r--r--extra/xfce-utils/PKGBUILD41
-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/PKGBUILD36
-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-dev-tools/PKGBUILD29
-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/PKGBUILD38
-rw-r--r--extra/xfce4-notifyd/xfce4-notifyd.install14
-rw-r--r--extra/xfce4-panel/PKGBUILD37
-rw-r--r--extra/xfce4-panel/xfce4-panel.install12
-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/PKGBUILD50
-rw-r--r--extra/xfce4-screenshooter/fix_segfault.diff17
-rw-r--r--extra/xfce4-screenshooter/fs-25873-segfault-in-awesome-wm.patch21
-rw-r--r--extra/xfce4-screenshooter/xfce4-screenshooter-1.7.9-dsofix.patch11
-rw-r--r--extra/xfce4-screenshooter/xfce4-screenshooter.install13
-rw-r--r--extra/xfce4-sensors-plugin/PKGBUILD38
-rw-r--r--extra/xfce4-sensors-plugin/xfce4-sensors-plugin.install11
-rw-r--r--extra/xfce4-session/PKGBUILD50
-rw-r--r--extra/xfce4-session/xfce4-session.install13
-rw-r--r--extra/xfce4-settings/PKGBUILD49
-rw-r--r--extra/xfce4-settings/xfce4-settings-4.6.0.patch18
-rw-r--r--extra/xfce4-smartbookmark-plugin/PKGBUILD36
-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/PKGBUILD44
-rw-r--r--extra/xfce4-weather-plugin/xfce4-weather-plugin.install13
-rw-r--r--extra/xfce4-xkb-plugin/PKGBUILD34
-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/PKGBUILD43
-rw-r--r--extra/xfdesktop/PKGBUILD41
-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/xfwm4/PKGBUILD39
-rw-r--r--extra/xfwm4/xfwm4.install11
-rw-r--r--extra/xine-lib/PKGBUILD43
-rw-r--r--extra/xine-ui/PKGBUILD42
-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-xdg.diff206
-rw-r--r--extra/xine-ui/xine-ui.install13
-rw-r--r--extra/xmahjongg/PKGBUILD24
-rw-r--r--extra/xmlsec/PKGBUILD35
-rw-r--r--extra/xmlto/PKGBUILD31
-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/xmms/xmms.install11
-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/PKGBUILD28
-rw-r--r--extra/xorg-luit/PKGBUILD25
-rw-r--r--extra/xorg-mkfontscale/PKGBUILD28
-rw-r--r--extra/xorg-oclock/PKGBUILD23
-rw-r--r--extra/xorg-server/10-quirks.conf10
-rw-r--r--extra/xorg-server/PKGBUILD243
-rw-r--r--extra/xorg-server/Xi-allow-passive-keygrabs-on-the-XIAll-Master-Device.patch31
-rw-r--r--extra/xorg-server/autoconfig-nvidia.patch29
-rw-r--r--extra/xorg-server/autoconfig-sis.patch19
-rw-r--r--extra/xorg-server/git-fixes.patch161
-rw-r--r--extra/xorg-server/loongson.patch49
-rw-r--r--extra/xorg-server/revert-trapezoids.patch179
-rw-r--r--extra/xorg-server/vbe-fix-malloc-size-bug.patch39
-rw-r--r--extra/xorg-server/xserver-1.11.2-record-crasher.patch241
-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/PKGBUILD28
-rw-r--r--extra/xorg-twm/PKGBUILD30
-rw-r--r--extra/xorg-x11perf/PKGBUILD28
-rw-r--r--extra/xorg-xauth/PKGBUILD28
-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/PKGBUILD53
-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-consolekit.patch225
-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/PKGBUILD28
-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/PKGBUILD27
-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/PKGBUILD28
-rw-r--r--extra/xorg-xrandr/PKGBUILD29
-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/PKGBUILD28
-rw-r--r--extra/xorg-xwud/PKGBUILD24
-rw-r--r--extra/xournal/PKGBUILD35
-rw-r--r--extra/xournal/install13
-rw-r--r--extra/xournal/pdf-export-64.patch89
-rw-r--r--extra/xournal/poppler-api.patch158
-rw-r--r--extra/xpdf/PKGBUILD66
-rw-r--r--extra/xpdf/char.patch12
-rw-r--r--extra/xpdf/desktop9
-rw-r--r--extra/xpdf/install11
-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/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/PKGBUILD58
-rw-r--r--extra/xulrunner/PKGBUILD51
-rw-r--r--extra/xulrunner/mips.patch114
-rw-r--r--extra/xulrunner/mozconfig38
-rw-r--r--extra/xulrunner/mozilla-pkgconfig.patch60
-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/PKGBUILD29
-rw-r--r--extra/yelp/yelp.install19
-rw-r--r--extra/yp-tools/PKGBUILD26
-rw-r--r--extra/ypbind-mt/PKGBUILD46
-rw-r--r--extra/ypbind-mt/nisdomainname.conf4
-rwxr-xr-xextra/ypbind-mt/ypbind35
-rw-r--r--extra/ypbind-mt/ypbind.conf4
-rw-r--r--extra/ypserv/PKGBUILD37
-rwxr-xr-xextra/ypserv/yppasswd34
-rwxr-xr-xextra/ypserv/ypserv34
-rw-r--r--extra/zenity/PKGBUILD26
-rw-r--r--extra/zile/PKGBUILD27
-rw-r--r--extra/zip/PKGBUILD28
-rw-r--r--extra/zsh/PKGBUILD59
-rw-r--r--extra/zsh/modules.patch11
-rw-r--r--extra/zsh/zprofile1
-rw-r--r--extra/zsh/zsh.install11
-rw-r--r--extra/zvbi/PKGBUILD25
-rw-r--r--extra/zvbi/fix-includes.patch36
-rw-r--r--extra/zziplib/PKGBUILD37
-rw-r--r--extra/zziplib/zziplib-0.13.60-ldflags.patch14
-rw-r--r--kde-unstable/kactivities/PKGBUILD29
-rw-r--r--kde-unstable/kactivities/fix-activities.patch156
-rw-r--r--kde-unstable/kdeaccessibility-jovie/PKGBUILD34
-rw-r--r--kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install11
-rw-r--r--kde-unstable/kdeaccessibility-kaccessible/PKGBUILD30
-rw-r--r--kde-unstable/kdeaccessibility-kmag/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install11
-rw-r--r--kde-unstable/kdeaccessibility-kmousetool/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install11
-rw-r--r--kde-unstable/kdeaccessibility-kmouth/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install11
-rw-r--r--kde-unstable/kdeadmin/PKGBUILD80
-rw-r--r--kde-unstable/kdeadmin/kdeadmin.install11
-rw-r--r--kde-unstable/kdeadmin/syslog-path.patch11
-rw-r--r--kde-unstable/kdeartwork/PKGBUILD104
-rw-r--r--kde-unstable/kdebase-konsole/PKGBUILD30
-rw-r--r--kde-unstable/kdebase-runtime/PKGBUILD43
-rw-r--r--kde-unstable/kdebase-runtime/kdebase-runtime.install12
-rw-r--r--kde-unstable/kdebase/PKGBUILD120
-rw-r--r--kde-unstable/kdebase/kdebase-dolphin.install11
-rw-r--r--kde-unstable/kdebase/kdebase-konqueror.install12
-rw-r--r--kde-unstable/kdebase/kdebase.install11
-rw-r--r--kde-unstable/kdebindings-kimono/PKGBUILD32
-rw-r--r--kde-unstable/kdebindings-korundum/PKGBUILD32
-rw-r--r--kde-unstable/kdebindings-kross/PKGBUILD52
-rw-r--r--kde-unstable/kdebindings-perlkde/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-perlqt/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-python/PKGBUILD34
-rw-r--r--kde-unstable/kdebindings-qtruby/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-qyoto/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-smokegen/PKGBUILD35
-rw-r--r--kde-unstable/kdebindings-smokegen/fix-crash.patch13
-rw-r--r--kde-unstable/kdebindings-smokekde/PKGBUILD32
-rw-r--r--kde-unstable/kdebindings-smokeqt/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-analitza/PKGBUILD30
-rw-r--r--kde-unstable/kdeedu-blinken/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-blinken/kdeedu-blinken.install11
-rw-r--r--kde-unstable/kdeedu-cantor/PKGBUILD34
-rw-r--r--kde-unstable/kdeedu-cantor/kdeedu-cantor.install12
-rw-r--r--kde-unstable/kdeedu-kalgebra/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install12
-rw-r--r--kde-unstable/kdeedu-kalzium/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install11
-rw-r--r--kde-unstable/kdeedu-kanagram/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install11
-rw-r--r--kde-unstable/kdeedu-kbruch/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install11
-rw-r--r--kde-unstable/kdeedu-kgeography/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install11
-rw-r--r--kde-unstable/kdeedu-khangman/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-khangman/kdeedu-khangman.install11
-rw-r--r--kde-unstable/kdeedu-kig/PKGBUILD34
-rw-r--r--kde-unstable/kdeedu-kig/kdeedu-kig.install12
-rw-r--r--kde-unstable/kdeedu-kiten/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kiten/kdeedu-kiten.install11
-rw-r--r--kde-unstable/kdeedu-klettres/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-klettres/kdeedu-klettres.install11
-rw-r--r--kde-unstable/kdeedu-kmplot/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install12
-rw-r--r--kde-unstable/kdeedu-kstars/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-kstars/kdeedu-kstars.install11
-rw-r--r--kde-unstable/kdeedu-ktouch/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install11
-rw-r--r--kde-unstable/kdeedu-kturtle/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install11
-rw-r--r--kde-unstable/kdeedu-kwordquiz/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install12
-rw-r--r--kde-unstable/kdeedu-marble/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-marble/kdeedu-marble.install12
-rw-r--r--kde-unstable/kdeedu-parley/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-parley/kdeedu-parley.install12
-rw-r--r--kde-unstable/kdeedu-rocs/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-step/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-step/kdeedu-step.install11
-rw-r--r--kde-unstable/kdegames/PKGBUILD516
-rw-r--r--kde-unstable/kdegames/kdegames-kbattleship.install24
-rw-r--r--kde-unstable/kdegames/kdegames-kfourinline.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kigo.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kolf.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kpatience.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kreversi.install22
-rw-r--r--kde-unstable/kdegames/kdegames-kspaceduel.install12
-rw-r--r--kde-unstable/kdegames/kdegames-ksquares.install22
-rw-r--r--kde-unstable/kdegames/kdegames-ktuberling.install12
-rw-r--r--kde-unstable/kdegames/kdegames-lskat.install12
-rw-r--r--kde-unstable/kdegames/kdegames-palapeli.install13
-rw-r--r--kde-unstable/kdegames/kdegames.install11
-rw-r--r--kde-unstable/kdegraphics-gwenview/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install12
-rw-r--r--kde-unstable/kdegraphics-kamera/PKGBUILD30
-rw-r--r--kde-unstable/kdegraphics-kcolorchooser/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install11
-rw-r--r--kde-unstable/kdegraphics-kgamma/PKGBUILD33
-rw-r--r--kde-unstable/kdegraphics-kolourpaint/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install12
-rw-r--r--kde-unstable/kdegraphics-kruler/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install12
-rw-r--r--kde-unstable/kdegraphics-ksaneplugin/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-ksnapshot/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install12
-rw-r--r--kde-unstable/kdegraphics-mobipocket/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install11
-rw-r--r--kde-unstable/kdegraphics-okular/PKGBUILD34
-rw-r--r--kde-unstable/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-svgpart/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-thumbnailers/PKGBUILD31
-rw-r--r--kde-unstable/kdelibs/PKGBUILD56
-rw-r--r--kde-unstable/kdelibs/archlinux-menu.patch22
-rw-r--r--kde-unstable/kdelibs/kde-applications-menu.patch22
-rw-r--r--kde-unstable/kdelibs/kdelibs.install13
-rw-r--r--kde-unstable/kdemultimedia/PKGBUILD108
-rw-r--r--kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install12
-rw-r--r--kde-unstable/kdemultimedia/kdemultimedia.install11
-rw-r--r--kde-unstable/kdemultimedia/mplayerthumbs.config2
-rw-r--r--kde-unstable/kdenetwork/PKGBUILD110
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kget.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kopete.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kppp.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork.install11
-rw-r--r--kde-unstable/kdepim-runtime/PKGBUILD32
-rw-r--r--kde-unstable/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--kde-unstable/kdepim/PKGBUILD253
-rw-r--r--kde-unstable/kdepim/kdepim-kleopatra.install12
-rw-r--r--kde-unstable/kdepim/kdepim-kmail.install12
-rw-r--r--kde-unstable/kdepim/kdepim-korganizer.install12
-rw-r--r--kde-unstable/kdepim/kdepim.install11
-rw-r--r--kde-unstable/kdepimlibs/PKGBUILD32
-rw-r--r--kde-unstable/kdepimlibs/kdepimlibs.install11
-rw-r--r--kde-unstable/kdeplasma-addons/PKGBUILD618
-rw-r--r--kde-unstable/kdeplasma-addons/fix-build.patch163
-rw-r--r--kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install12
-rw-r--r--kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install11
-rw-r--r--kde-unstable/kdesdk-kate/PKGBUILD60
-rw-r--r--kde-unstable/kdesdk-kate/kdebase-kwrite.install12
-rw-r--r--kde-unstable/kdesdk-kate/kdesdk-kate.install13
-rw-r--r--kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch11
-rw-r--r--kde-unstable/kdesdk/PKGBUILD258
-rw-r--r--kde-unstable/kdesdk/fix-python2-path.patch32
-rw-r--r--kde-unstable/kdesdk/kdesdk-cervisia.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kcachegrind.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kompare.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kuiviewer.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-lokalize.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-okteta.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-umbrello.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk.install11
-rw-r--r--kde-unstable/kdetoys/PKGBUILD56
-rw-r--r--kde-unstable/kdetoys/kdetoys.install11
-rw-r--r--kde-unstable/kdeutils-filelight/PKGBUILD35
-rw-r--r--kde-unstable/kdeutils-filelight/kdeutils-filelight.install12
-rw-r--r--kde-unstable/kdeutils-kcalc/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install11
-rw-r--r--kde-unstable/kdeutils-kcharselect/PKGBUILD32
-rw-r--r--kde-unstable/kdeutils-kdf/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kdf/kdeutils-kdf.install11
-rw-r--r--kde-unstable/kdeutils-kfloppy/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install12
-rw-r--r--kde-unstable/kdeutils-kgpg/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install12
-rw-r--r--kde-unstable/kdeutils-kremotecontrol/PKGBUILD35
-rw-r--r--kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install11
-rw-r--r--kde-unstable/kdeutils-ktimer/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install11
-rw-r--r--kde-unstable/kdeutils-kwallet/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install12
-rw-r--r--kde-unstable/kdeutils-printer-applet/PKGBUILD38
-rw-r--r--kde-unstable/kdeutils-superkaramba/PKGBUILD31
-rw-r--r--kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install12
-rw-r--r--kde-unstable/kdeutils-sweeper/PKGBUILD33
-rw-r--r--kde-unstable/kdewebdev/PKGBUILD70
-rw-r--r--kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install12
-rw-r--r--kde-unstable/kdewebdev/kdewebdev.install11
-rw-r--r--kde-unstable/libkdcraw/PKGBUILD32
-rw-r--r--kde-unstable/libkdcraw/libkdcraw.install11
-rw-r--r--kde-unstable/libkdeedu/PKGBUILD31
-rw-r--r--kde-unstable/libkdeedu/libkdeedu.install11
-rw-r--r--kde-unstable/libkexiv2/PKGBUILD31
-rw-r--r--kde-unstable/libkipi/PKGBUILD32
-rw-r--r--kde-unstable/libkipi/libkipi.install11
-rw-r--r--kde-unstable/libksane/PKGBUILD32
-rw-r--r--kde-unstable/libksane/libksane.install11
-rw-r--r--libre-testing/b43-tools-git/PKGBUILD2
-rw-r--r--libre-testing/unace-libre/PKGBUILD2
-rw-r--r--libre/abiword-libre/PKGBUILD94
-rw-r--r--libre/abiword-libre/compat_libwpg_0_9.patch371
-rw-r--r--libre/abiword-libre/liberation-fonts.patch1606
-rw-r--r--libre/abuse-libre/PKGBUILD2
-rw-r--r--libre/aspell-pl-libre/PKGBUILD2
-rw-r--r--libre/audacious-plugins-libre/PKGBUILD6
-rw-r--r--libre/audacity-libre/PKGBUILD2
-rw-r--r--libre/aufs2-libre/PKGBUILD2
-rw-r--r--libre/crosstool-ng/PKGBUILD2
-rw-r--r--libre/ffmpeg-libre/PKGBUILD8
-rw-r--r--libre/file-roller-libre/PKGBUILD2
-rw-r--r--libre/ghostscript-libre/PKGBUILD2
-rw-r--r--libre/grub2/PKGBUILD31
-rw-r--r--libre/gstreamer0.10-bad-libre/PKGBUILD9
-rw-r--r--libre/gstreamer0.10-bad-libre/mpeg2enc-mjpegtools-2.0.patch26
-rw-r--r--libre/hardinfo/PKGBUILD2
-rw-r--r--libre/icecat/PKGBUILD5
-rw-r--r--libre/kdeutils-libre/PKGBUILD2
-rw-r--r--libre/kernel26-libre-lts/PKGBUILD2
-rw-r--r--libre/kernel26-libre/Kbuild19
-rw-r--r--libre/kernel26-libre/Kbuild.platforms6
-rw-r--r--libre/lame-libre/PKGBUILD2
-rw-r--r--libre/lesspipe-libre/PKGBUILD2
-rw-r--r--libre/libquicktime-libre/PKGBUILD2
-rw-r--r--libre/libretools/PKGBUILD2
-rw-r--r--libre/liferea-libre/PKGBUILD2
-rw-r--r--libre/linux-libre/Kbuild19
-rw-r--r--libre/linux-libre/Kbuild.platforms6
-rw-r--r--libre/linux-libre/PKGBUILD82
-rw-r--r--libre/linux-libre/linux-libre.install4
-rw-r--r--libre/linux-libre/linux-libre.preset.mips64el14
-rw-r--r--libre/mesa-demos-libre/PKGBUILD2
-rw-r--r--libre/metalog/PKGBUILD4
-rw-r--r--libre/mplayer-libre/PKGBUILD9
-rw-r--r--libre/mplayer-vaapi-libre/PKGBUILD2
-rw-r--r--libre/p7zip-libre/PKGBUILD18
-rw-r--r--libre/pacman/PKGBUILD17
-rw-r--r--libre/pacman/makepkg.conf.mips64el114
-rw-r--r--libre/pacman/mips64el.patch26
-rw-r--r--libre/psutils-libre/PKGBUILD2
-rw-r--r--libre/python-reportlab-libre/PKGBUILD2
-rw-r--r--libre/python2-libre/PKGBUILD2
-rw-r--r--libre/rp-pppoe-libre/PKGBUILD2
-rw-r--r--libre/sdl-libre/PKGBUILD2
-rw-r--r--libre/seamonkey-libre/PKGBUILD2
-rw-r--r--libre/sqlite3/PKGBUILD2
-rw-r--r--libre/texlive-bin-libre/PKGBUILD4
-rw-r--r--libre/thunderbird-libre/PKGBUILD2
-rw-r--r--libre/unarchiver/PKGBUILD2
-rw-r--r--libre/unrar-libre/PKGBUILD2
-rw-r--r--libre/xarchiver-libre/PKGBUILD2
-rw-r--r--libre/xchat-libre/PKGBUILD2
-rw-r--r--multilib-testing/binutils-multilib/PKGBUILD75
-rw-r--r--multilib-testing/binutils-multilib/binutils.install17
-rw-r--r--multilib-testing/gcc-multilib/PKGBUILD303
-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.patch26
-rw-r--r--multilib-testing/lib32-glibc/PKGBUILD167
-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.14-libdl-crash.patch132
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch37
-rw-r--r--multilib-testing/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib-testing/lib32-glibc/lib32-glibc.conf2
-rw-r--r--multilib/jack2-multilib/40-hpet-permissions.rules2
-rw-r--r--multilib/jack2-multilib/99-audio.conf2
-rw-r--r--multilib/jack2-multilib/PKGBUILD142
-rw-r--r--social/batctl/PKGBUILD2
-rw-r--r--social/bitcoin-daemon/PKGBUILD2
-rw-r--r--social/diaspora-git/PKGBUILD2
-rw-r--r--social/ffingerd/PKGBUILD2
-rw-r--r--social/haveged/PKGBUILD2
-rw-r--r--social/inadyn-opendns/PKGBUILD2
-rw-r--r--social/liblockfile/PKGBUILD11
-rw-r--r--social/libowfat/PKGBUILD2
-rw-r--r--social/lockfile-progs/PKGBUILD8
-rw-r--r--social/miniupnpc/PKGBUILD2
-rw-r--r--social/monkeysphere/PKGBUILD2
-rw-r--r--social/olsrd/PKGBUILD2
-rw-r--r--social/opentracker/PKGBUILD4
-rw-r--r--social/tomoyo-tools/PKGBUILD2
-rw-r--r--staging/cloog/PKGBUILD31
-rw-r--r--staging/gcc/PKGBUILD259
-rw-r--r--staging/gcc/gcc-ada.install20
-rw-r--r--staging/gcc/gcc-fortran.install16
-rw-r--r--staging/gcc/gcc-go.install20
-rw-r--r--staging/gcc/gcc-hash-style-both.patch122
-rw-r--r--staging/gcc/gcc-libs.install16
-rw-r--r--staging/gcc/gcc-pr49720.patch26
-rw-r--r--staging/gcc/gcc.install20
-rw-r--r--staging/gcc/gcc_pure64.patch26
-rw-r--r--staging/isl/PKGBUILD33
-rw-r--r--staging/kadu/PKGBUILD28
-rw-r--r--staging/kdeaccessibility/PKGBUILD82
-rw-r--r--staging/kdeaccessibility/kdeaccessibility.install11
-rw-r--r--staging/kdeadmin/PKGBUILD78
-rw-r--r--staging/kdeadmin/kdeadmin.install11
-rw-r--r--staging/kdeadmin/syslog-path.patch11
-rw-r--r--staging/kdeartwork/PKGBUILD104
-rw-r--r--staging/kdebase-konsole/PKGBUILD30
-rw-r--r--staging/kdebase-runtime/PKGBUILD43
-rw-r--r--staging/kdebase-runtime/kdebase-runtime.install12
-rw-r--r--staging/kdebase-runtime/libqzeitgeist08.patch102
-rw-r--r--staging/kdebase-workspace/PKGBUILD83
-rw-r--r--staging/kdebase-workspace/fix-powerprofiles.patch23
-rw-r--r--staging/kdebase-workspace/fixpath.patch34
-rw-r--r--staging/kdebase-workspace/kde-np.pam7
-rw-r--r--staging/kdebase-workspace/kde.pam7
-rw-r--r--staging/kdebase-workspace/kdebase-workspace.install25
-rw-r--r--staging/kdebase-workspace/kdm36
-rw-r--r--staging/kdebase-workspace/kdm-xinitrd.patch18
-rw-r--r--staging/kdebase-workspace/kdm-zsh-profile.patch11
-rw-r--r--staging/kdebase-workspace/kscreensaver.pam1
-rw-r--r--staging/kdebase-workspace/terminate-server.patch11
-rw-r--r--staging/kdebase/PKGBUILD119
-rw-r--r--staging/kdebase/kdebase.install11
-rw-r--r--staging/kdebindings-kimono/PKGBUILD32
-rw-r--r--staging/kdebindings-korundum/PKGBUILD32
-rw-r--r--staging/kdebindings-kross/PKGBUILD52
-rw-r--r--staging/kdebindings-perlkde/PKGBUILD31
-rw-r--r--staging/kdebindings-perlqt/PKGBUILD30
-rw-r--r--staging/kdebindings-python/PKGBUILD34
-rw-r--r--staging/kdebindings-qtruby/PKGBUILD31
-rw-r--r--staging/kdebindings-qyoto/PKGBUILD31
-rw-r--r--staging/kdebindings-smokegen/PKGBUILD35
-rw-r--r--staging/kdebindings-smokegen/fix-crash.patch13
-rw-r--r--staging/kdebindings-smokekde/PKGBUILD32
-rw-r--r--staging/kdebindings-smokeqt/PKGBUILD32
-rw-r--r--staging/kdeedu-blinken/PKGBUILD31
-rw-r--r--staging/kdeedu-blinken/kdeedu-blinken.install11
-rw-r--r--staging/kdeedu-cantor/PKGBUILD34
-rw-r--r--staging/kdeedu-cantor/kdeedu-cantor.install12
-rw-r--r--staging/kdeedu-kalgebra/PKGBUILD31
-rw-r--r--staging/kdeedu-kalgebra/kdeedu-kalgebra.install12
-rw-r--r--staging/kdeedu-kalzium/PKGBUILD31
-rw-r--r--staging/kdeedu-kalzium/kdeedu-kalzium.install11
-rw-r--r--staging/kdeedu-kanagram/PKGBUILD31
-rw-r--r--staging/kdeedu-kanagram/kdeedu-kanagram.install11
-rw-r--r--staging/kdeedu-kbruch/PKGBUILD31
-rw-r--r--staging/kdeedu-kbruch/kdeedu-kbruch.install11
-rw-r--r--staging/kdeedu-kgeography/PKGBUILD31
-rw-r--r--staging/kdeedu-kgeography/kdeedu-kgeography.install11
-rw-r--r--staging/kdeedu-khangman/PKGBUILD31
-rw-r--r--staging/kdeedu-khangman/kdeedu-khangman.install11
-rw-r--r--staging/kdeedu-kig/PKGBUILD34
-rw-r--r--staging/kdeedu-kig/kdeedu-kig.install12
-rw-r--r--staging/kdeedu-kiten/PKGBUILD31
-rw-r--r--staging/kdeedu-kiten/kdeedu-kiten.install11
-rw-r--r--staging/kdeedu-klettres/PKGBUILD31
-rw-r--r--staging/kdeedu-klettres/kdeedu-klettres.install11
-rw-r--r--staging/kdeedu-kmplot/PKGBUILD31
-rw-r--r--staging/kdeedu-kmplot/kdeedu-kmplot.install12
-rw-r--r--staging/kdeedu-kstars/PKGBUILD32
-rw-r--r--staging/kdeedu-kstars/kdeedu-kstars.install11
-rw-r--r--staging/kdeedu-ktouch/PKGBUILD31
-rw-r--r--staging/kdeedu-ktouch/kdeedu-ktouch.install11
-rw-r--r--staging/kdeedu-kturtle/PKGBUILD31
-rw-r--r--staging/kdeedu-kturtle/kdeedu-kturtle.install11
-rw-r--r--staging/kdeedu-kwordquiz/PKGBUILD31
-rw-r--r--staging/kdeedu-kwordquiz/kdeedu-kwordquiz.install12
-rw-r--r--staging/kdeedu-marble/PKGBUILD32
-rw-r--r--staging/kdeedu-marble/kdeedu-marble.install12
-rw-r--r--staging/kdeedu-parley/PKGBUILD31
-rw-r--r--staging/kdeedu-parley/kdeedu-parley.install12
-rw-r--r--staging/kdeedu-rocs/PKGBUILD31
-rw-r--r--staging/kdeedu-step/PKGBUILD31
-rw-r--r--staging/kdeedu-step/kdeedu-step.install11
-rw-r--r--staging/kdegames/PKGBUILD515
-rw-r--r--staging/kdegames/kdegames-kbattleship.install24
-rw-r--r--staging/kdegames/kdegames-kfourinline.install12
-rw-r--r--staging/kdegames/kdegames-kigo.install12
-rw-r--r--staging/kdegames/kdegames-kolf.install12
-rw-r--r--staging/kdegames/kdegames-kreversi.install22
-rw-r--r--staging/kdegames/kdegames-kspaceduel.install12
-rw-r--r--staging/kdegames/kdegames-ksquares.install22
-rw-r--r--staging/kdegames/kdegames-ktuberling.install12
-rw-r--r--staging/kdegames/kdegames-lskat.install12
-rw-r--r--staging/kdegames/kdegames-palapeli.install13
-rw-r--r--staging/kdegames/kdegames.install11
-rw-r--r--staging/kdegraphics-gwenview/PKGBUILD32
-rw-r--r--staging/kdegraphics-gwenview/kdegraphics-gwenview.install12
-rw-r--r--staging/kdegraphics-kamera/PKGBUILD30
-rw-r--r--staging/kdegraphics-kcolorchooser/PKGBUILD31
-rw-r--r--staging/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install11
-rw-r--r--staging/kdegraphics-kgamma/PKGBUILD33
-rw-r--r--staging/kdegraphics-kolourpaint/PKGBUILD31
-rw-r--r--staging/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install12
-rw-r--r--staging/kdegraphics-kruler/PKGBUILD31
-rw-r--r--staging/kdegraphics-kruler/kdegraphics-kruler.install12
-rw-r--r--staging/kdegraphics-ksaneplugin/PKGBUILD31
-rw-r--r--staging/kdegraphics-ksnapshot/PKGBUILD32
-rw-r--r--staging/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install12
-rw-r--r--staging/kdegraphics-mobipocket/PKGBUILD31
-rw-r--r--staging/kdegraphics-okular/PKGBUILD34
-rw-r--r--staging/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--staging/kdegraphics-okular/staging-i686/PKGBUILD34
-rw-r--r--staging/kdegraphics-okular/staging-i686/kdegraphics-okular.install12
-rw-r--r--staging/kdegraphics-strigi-analyzer/PKGBUILD31
-rw-r--r--staging/kdegraphics-svgpart/PKGBUILD31
-rw-r--r--staging/kdegraphics-thumbnailers/PKGBUILD31
-rw-r--r--staging/kdelibs/PKGBUILD57
-rw-r--r--staging/kdelibs/archlinux-menu.patch22
-rw-r--r--staging/kdelibs/kde-applications-menu.patch22
-rw-r--r--staging/kdelibs/kdelibs.install13
-rw-r--r--staging/kdemultimedia/PKGBUILD109
-rw-r--r--staging/kdemultimedia/kdemultimedia.install11
-rw-r--r--staging/kdemultimedia/mplayerthumbs.config2
-rw-r--r--staging/kdenetwork/PKGBUILD111
-rw-r--r--staging/kdenetwork/kdenetwork.install11
-rw-r--r--staging/kdepim-runtime/PKGBUILD32
-rw-r--r--staging/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--staging/kdepim/PKGBUILD252
-rw-r--r--staging/kdepim/kdepim.install11
-rw-r--r--staging/kdepimlibs/PKGBUILD32
-rw-r--r--staging/kdepimlibs/kdepimlibs.install11
-rw-r--r--staging/kdeplasma-addons/PKGBUILD603
-rw-r--r--staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install12
-rw-r--r--staging/kdeplasma-addons/kdeplasma-addons-applets.install11
-rw-r--r--staging/kdesdk-kate/PKGBUILD58
-rw-r--r--staging/kdesdk-kate/kdebase-kwrite.install12
-rw-r--r--staging/kdesdk-kate/kdesdk-kate.install12
-rw-r--r--staging/kdesdk-kate/pkgbuild-syntax-highlight.patch11
-rw-r--r--staging/kdesdk/PKGBUILD247
-rw-r--r--staging/kdesdk/fix-python2-path.patch64
-rw-r--r--staging/kdesdk/kdesdk-okteta.install12
-rw-r--r--staging/kdesdk/kdesdk.install11
-rw-r--r--staging/kdetoys/PKGBUILD56
-rw-r--r--staging/kdetoys/kdetoys.install11
-rw-r--r--staging/kdeutils/PKGBUILD191
-rw-r--r--staging/kdeutils/kdeutils.install11
-rw-r--r--staging/kdewebdev/PKGBUILD67
-rw-r--r--staging/kdewebdev/kdewebdev.install11
-rw-r--r--staging/libkdcraw/PKGBUILD32
-rw-r--r--staging/libkdcraw/libkdcraw.install11
-rw-r--r--staging/libkdeedu/PKGBUILD31
-rw-r--r--staging/libkdeedu/libkdeedu.install11
-rw-r--r--staging/libkexiv2/PKGBUILD31
-rw-r--r--staging/libkipi/PKGBUILD32
-rw-r--r--staging/libkipi/libkipi.install11
-rw-r--r--staging/libksane/PKGBUILD32
-rw-r--r--staging/libksane/libksane.install11
-rw-r--r--testing/binutils/PKGBUILD83
-rw-r--r--testing/binutils/binutils.install17
-rw-r--r--testing/fakeroot/PKGBUILD35
-rw-r--r--testing/fakeroot/fakeroot.install14
-rw-r--r--testing/fontforge/PKGBUILD39
-rw-r--r--testing/gcc/PKGBUILD259
-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-pr49720.patch26
-rw-r--r--testing/gcc/gcc.install20
-rw-r--r--testing/gcc/gcc_pure64.patch26
-rw-r--r--testing/ghc/PKGBUILD43
-rw-r--r--testing/ghc/build.mk150
-rw-r--r--testing/ghc/ghc.install19
-rw-r--r--testing/glibc/PKGBUILD204
-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.14-libdl-crash.patch132
-rw-r--r--testing/glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--testing/glibc/glibc-2.14-revert-4768ae77.patch37
-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/kdevplatform/PKGBUILD39
-rw-r--r--testing/kdevplatform/kdevplatform.install11
-rw-r--r--testing/kdevplatform/subversion17.patch127
-rw-r--r--testing/keyutils/PKGBUILD24
-rw-r--r--testing/krb5/PKGBUILD90
-rw-r--r--testing/krb5/krb5-1.9.1-2011-007.patch40
-rw-r--r--testing/krb5/krb5-1.9.1-canonicalize-fallback.patch58
-rw-r--r--testing/krb5/krb5-1.9.1-config-script.patch27
-rw-r--r--testing/krb5/krb5-kadmind40
-rw-r--r--testing/krb5/krb5-kdc40
-rw-r--r--testing/krb5/krb5-kpropd40
-rw-r--r--testing/libdrm/COPYING48
-rw-r--r--testing/libdrm/PKGBUILD56
-rw-r--r--testing/libdrm/git_fixes.diff19
-rw-r--r--testing/libdrm/list.h137
-rw-r--r--testing/libdrm/no-pthread-stubs.patch66
-rw-r--r--testing/libdrm/rbo.h50
-rw-r--r--testing/linux-api-headers/PKGBUILD42
-rw-r--r--testing/llvm/PKGBUILD199
-rw-r--r--testing/llvm/cindexer-clang-path.patch10
-rw-r--r--testing/llvm/clang-plugin-loader-registry.patch11
-rw-r--r--testing/llvm/clang-pure64.patch13
-rw-r--r--testing/llvm/enable-lto.patch32
-rw-r--r--testing/llvm/fix-gold-lto-linking.patch11
-rw-r--r--testing/module-init-tools/PKGBUILD49
-rw-r--r--testing/module-init-tools/depmod.conf5
-rw-r--r--testing/module-init-tools/docfix.patch90
-rw-r--r--testing/module-init-tools/modprobe.conf3
-rw-r--r--testing/openldap/PKGBUILD96
-rw-r--r--testing/openldap/ntlm.patch230
-rw-r--r--testing/openldap/openldap.install20
-rwxr-xr-xtesting/openldap/slapd49
-rw-r--r--testing/openldap/slapd.default6
-rw-r--r--testing/pcre/PKGBUILD43
-rw-r--r--testing/pyalpm/PKGBUILD23
-rw-r--r--testing/shadow/LICENSE31
-rw-r--r--testing/shadow/PKGBUILD107
-rw-r--r--testing/shadow/adduser399
-rw-r--r--testing/shadow/chgpasswd4
-rw-r--r--testing/shadow/chpasswd6
-rw-r--r--testing/shadow/defaults.pam6
-rw-r--r--testing/shadow/login21
-rw-r--r--testing/shadow/login.defs197
-rw-r--r--testing/shadow/newusers6
-rw-r--r--testing/shadow/passwd4
-rw-r--r--testing/shadow/shadow-add-missing-include.patch11
-rw-r--r--testing/shadow/shadow-strncpy-usage.patch27
-rwxr-xr-xtesting/shadow/shadow.cron.daily6
-rw-r--r--testing/shadow/shadow.install9
-rw-r--r--testing/shadow/shadow_CVE-2011-0721.patch57
-rw-r--r--testing/shadow/useradd.defaults9
-rw-r--r--testing/shadow/xstrdup.patch9
-rw-r--r--testing/subversion/PKGBUILD79
-rw-r--r--testing/subversion/subversion.rpath.fix.patch10
-rw-r--r--testing/subversion/svn11
-rw-r--r--testing/subversion/svnmerge.py2370
-rwxr-xr-xtesting/subversion/svnserve42
-rw-r--r--testing/subversion/svnserve.conf7
-rw-r--r--testing/syslinux/PKGBUILD49
-rw-r--r--testing/syslinux/syslinux-dont-build-dos-windows-targets.patch12
-rw-r--r--testing/syslinux/syslinux-install_update459
-rw-r--r--testing/syslinux/syslinux.cfg79
-rw-r--r--testing/syslinux/syslinux.install13
-rw-r--r--testing/texinfo/PKGBUILD34
-rw-r--r--testing/texinfo/texinfo-4.13a-data_types.patch32
-rw-r--r--testing/texinfo/texinfo.install21
-rw-r--r--~fauno/distccd-zeroconf/PKGBUILD2
-rw-r--r--~fauno/minidjvu/PKGBUILD24
-rw-r--r--~lukeshu/android-udev/51-android.rules6
-rw-r--r--~lukeshu/android-udev/PKGBUILD2
-rw-r--r--~lukeshu/openni-unstable/PKGBUILD8
-rw-r--r--~lukeshu/openni-unstable/openni.install11
-rw-r--r--~mtjm/zbar/PKGBUILD2
-rw-r--r--~xihh/blast/PKGBUILD32
-rw-r--r--~xihh/libtre/PKGBUILD47
-rw-r--r--~xihh/muscle/LICENSE10
-rw-r--r--~xihh/muscle/PKGBUILD38
-rw-r--r--~xihh/ugene/PKGBUILD29
-rw-r--r--~xihh/viennarna/PKGBUILD42
-rw-r--r--~xihh/viennarna/setup.py31
7005 files changed, 343138 insertions, 90 deletions
diff --git a/.gitignore b/.gitignore
index 9a6d4ab3d..0a050de19 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,11 @@
*~
#*#
+.#*
src/
pkg/
*.pkg.tar.*
*.src.tar.*
-namcap.log
+*.log*
+*lastsync
+kde-unstable/
+gnome-unstable/
diff --git a/community-testing/binutils-avr/PKGBUILD b/community-testing/binutils-avr/PKGBUILD
new file mode 100644
index 000000000..1dfbbe0d7
--- /dev/null
+++ b/community-testing/binutils-avr/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 60056 2011-12-04 14:59:45Z jelle $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: danst0 <danst0@west.de>
+
+pkgname=binutils-avr
+pkgver=2.22
+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-5' 'zlib')
+options=('!libtool' '!distcc' '!ccache')
+source=(http://ftp.gnu.org/gnu/${pkgname/-avr}/${pkgname/-avr}-${pkgver}.tar.bz2{,.sig})
+md5sums=('ee0f10756c84979622b992a4a61ea3f5'
+ '6aea2485019497583e5c3f5fc4a39cd5')
+
+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-testing/lilypond/PKGBUILD b/community-testing/lilypond/PKGBUILD
new file mode 100644
index 000000000..3e8fbbea7
--- /dev/null
+++ b/community-testing/lilypond/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 60446 2011-12-14 11:46:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+
+pkgname=lilypond
+pkgver=2.14.2
+pkgrel=3
+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' 'texi2html')
+options=('emptydirs')
+install=lilypond.install
+source=(http://download.linuxaudio.org/lilypond/sources/v2.14/$pkgname-$pkgver.tar.gz
+ texlive-workaround.patch)
+md5sums=('4053a19e03181021893981280feb9aaa'
+ 'ff32863f3eed67ac744e50bc4fc67a87')
+
+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
+
+ rm -rf python/out/
+ patch -p1 <$srcdir/texlive-workaround.patch
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-testing/lilypond/lilypond.install b/community-testing/lilypond/lilypond.install
new file mode 100644
index 000000000..934e7b435
--- /dev/null
+++ b/community-testing/lilypond/lilypond.install
@@ -0,0 +1,48 @@
+infodir=usr/share/info
+filelist=(music-glossary.info
+ lilypond-web.info
+ lilypond-contributor.info
+ lilypond-contributor.info-1
+ lilypond-contributor.info-2
+ lilypond-internals.info-1
+ lilypond-internals.info-2
+ lilypond-internals.info-3
+ lilypond-internals.info-4
+ lilypond-internals.info-5
+ lilypond-notation.info-1
+ lilypond-notation.info-2
+ lilypond-notation.info-3
+ lilypond-notation.info-4
+ lilypond-notation.info-5
+ lilypond-notation.info-6
+ lilypond-usage.info
+ lilypond-learning.info
+ lilypond-web.info-1
+ lilypond-web.info-2
+ lilypond-internals.info
+ lilypond-essay.info
+ lilypond-notation.info
+ lilypond-learning.info-1
+ lilypond-learning.info-2
+ lilypond-extending.info
+ lilypond-changes.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-testing/lilypond/texlive-workaround.patch b/community-testing/lilypond/texlive-workaround.patch
new file mode 100644
index 000000000..1eb262863
--- /dev/null
+++ b/community-testing/lilypond/texlive-workaround.patch
@@ -0,0 +1,88 @@
+diff --git a/mf/feta-autometric.mf b/mf/feta-autometric.mf
+index d5cbb7f..b25c4bc 100644
+--- a/mf/feta-autometric.mf
++++ b/mf/feta-autometric.mf
+@@ -149,7 +149,6 @@ def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) =
+ & to_bp (w) & " "
+ & to_bp (h);
+ special "% MF2PT1: font_size " & decimal designsize;
+- special "% MF2PT1: font_slant " & decimal font_slant_;
+
+ for fvar = "font_identifier",
+ "font_coding_scheme",
+@@ -175,9 +174,6 @@ def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) =
+ fi;
+ endfor;
+
+- special "% MF2PT1: font_fixed_pitch "
+- & (if font_fixed_pitch_: "1" else: "0" fi);
+-
+ % this must come after the `font_size' special
+ special "% MF2PT1: charwd " & decimal charwd;
+ fi;
+diff --git a/mf/mf2pt1.mp b/mf/mf2pt1.mp
+index a8b45aa..c935628 100644
+--- a/mf/mf2pt1.mp
++++ b/mf/mf2pt1.mp
+@@ -61,7 +61,6 @@ def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ def to_bp (expr num) = decimal (ceiling (num*bp_per_pixel)) enddef;
+ special "% MF2PT1: glyph_dimensions 0 " & to_bp (-d) & " " & to_bp(w) & " " & to_bp(h);
+ special "% MF2PT1: font_size " & decimal designsize;
+- special "% MF2PT1: font_slant " & decimal font_slant_;
+ special "% MF2PT1: charwd " & decimal charwd; % Must come after the |font_size| |special|
+ for fvar = "font_identifier", "font_coding_scheme", "font_version",
+ "font_comment", "font_family", "font_weight", "font_unique_id",
+@@ -76,8 +75,6 @@ def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ scantokens ("decimal " & fvar & "_");
+ fi;
+ endfor;
+- special "% MF2PT1: font_fixed_pitch " &
+- (if font_fixed_pitch_: "1" else: "0" fi);
+ enddef;
+
+
+@@ -91,19 +88,6 @@ enddef;
+
+
+ %% \begin{explaincode}
+-%% Store the value of \mfcomment
+-% |font_slant_|, so we can recall it at each |beginchar|.
+-%% \end{explaincode}
+-
+-font_slant_ := 0;
+-
+-def font_slant expr x =
+- font_slant_ := x;
+- fontdimen 1: x
+-enddef;
+-
+-
+-%% \begin{explaincode}
+ %% Redefine \mfcomment
+ % |bpppix_|, the number of ``big'' points per pixel. \mfcomment
+ % This in turn redefines |mm|, |in|, |pt|, and other derived units.
+@@ -141,11 +125,6 @@ forsuffixes fvar = font_underline_position, font_underline_thickness:
+ scantokens ("def " & str fvar & " expr x = " & str fvar & "_ := x enddef;");
+ endfor;
+
+-boolean font_fixed_pitch_;
+-font_fixed_pitch_ := false;
+-def font_fixed_pitch expr x = font_fixed_pitch_ := x enddef;
+-
+-
+ %% \begin{explaincode}
+ %% We'd like to be able to use calligraphic pens. Normally, MetaPost's
+ %% output routine does all the work for us of converting these to filled
+diff --git a/scripts/build/mf2pt1.pl b/scripts/build/mf2pt1.pl
+index 95df0f8..20f410b 100644
+--- a/scripts/build/mf2pt1.pl
++++ b/scripts/build/mf2pt1.pl
+@@ -427,7 +427,7 @@ ENDHEADER
+ sub get_bboxes ($)
+ {
+ execute_command 1, ("mpost", "-mem=mf2pt1", "-progname=mpost",
+- "\\mode:=localfont; mag:=$mag; bpppix $bpppix; input $mffile");
++ "\\mode:=localfont; mag:=$mag; bpppix:=$bpppix; input $mffile");
+ opendir (CURDIR, ".") || die "${progname}: $! ($filedir)\n";
+ @charfiles = sort
+ { ($a=~ /\.(\d+)$/)[0] <=> ($b=~ /\.(\d+)$/)[0] }
diff --git a/community-testing/qtcreator/PKGBUILD b/community-testing/qtcreator/PKGBUILD
new file mode 100644
index 000000000..1c0271947
--- /dev/null
+++ b/community-testing/qtcreator/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 58646 2011-11-17 02:49:13Z svenstaro $
+# Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Dan Vratil <progdan@progdansoft.com>
+# Contributor: thotypous <matiasΘarchlinux-br·org>
+# Contributor: delor <bartekpiech gmail com>
+
+pkgname="qtcreator"
+pkgver=2.4.0rc
+_pkgver=2.4.0-rc
+pkgrel=1
+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.4')
+makedepends=('qt-private-headers>=4.7.4' 'git')
+options=('docs')
+install=qtcreator.install
+source=("http://get.qt.nokia.com/qtcreator/qt-creator-${_pkgver}-src.tar.gz"
+ 'qtcreator.desktop')
+md5sums=('1967144101796674ce6e994e66213f81'
+ 'f1f4680b9838ff0b8f4cf11eb850d662')
+
+build() {
+ cd ${srcdir}
+ [[ -d build ]] && rm -r build
+ mkdir build && cd build
+
+ qmake ${srcdir}/qt-creator-${_pkgver}-src/qtcreator.pro
+ make
+}
+
+package() {
+ optdepends=('qt-doc: for the integrated Qt documentation'
+ 'gdb: for the debugger'
+ 'cmake: for cmake project suppport'
+ 'openssh-askpass: for ssh support'
+ 'git: for git support'
+ 'mercurial: for mercurial support'
+ 'bzr: for bazaar 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
+}
diff --git a/community-testing/qtcreator/qtcreator.desktop b/community-testing/qtcreator/qtcreator.desktop
new file mode 100644
index 000000000..0fd562bd9
--- /dev/null
+++ b/community-testing/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/icons/hicolor/128x128/apps/qtcreator.png
+Terminal=false
+Type=Application
+Categories=Qt;Development
diff --git a/community-testing/qtcreator/qtcreator.install b/community-testing/qtcreator/qtcreator.install
new file mode 100644
index 000000000..4d4a283db
--- /dev/null
+++ b/community-testing/qtcreator/qtcreator.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/6tunnel/PKGBUILD b/community/6tunnel/PKGBUILD
new file mode 100644
index 000000000..a3c169763
--- /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' 'mips64el')
+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..aa2dbb008
--- /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' 'mips64el')
+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/acpitool/PKGBUILD b/community/acpitool/PKGBUILD
new file mode 100644
index 000000000..acd8be747
--- /dev/null
+++ b/community/acpitool/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 58302 2011-11-10 17:58:29Z spupykin $
+# 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=5
+pkgdesc="ACPI client - replacement for apm tool"
+url="http://sourceforge.net/projects/acpitool/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gcc-libs')
+source=(http://downloads.sourceforge.net/sourceforge/acpitool/acpitool-$pkgver.tar.bz2
+ linux-3.0.patch
+ sysfs-battery.patch)
+md5sums=('9e4ec55201be0be71ffbc56d38b42b57'
+ 'eb149edb32be6cdf20a7d16beb3e9f70'
+ '969fc4929cc215756db27168646c2b7a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 <$srcdir/linux-3.0.patch
+ patch -p1 <$srcdir/sysfs-battery.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/acpitool/linux-3.0.patch b/community/acpitool/linux-3.0.patch
new file mode 100644
index 000000000..ba454a0c2
--- /dev/null
+++ b/community/acpitool/linux-3.0.patch
@@ -0,0 +1,18 @@
+diff -wbBur acpitool-0.5.1/src/acpitool.cpp acpitool-0.5.1.my/src/acpitool.cpp
+--- acpitool-0.5.1/src/acpitool.cpp 2009-08-13 23:37:48.000000000 +0400
++++ acpitool-0.5.1.my/src/acpitool.cpp 2011-08-11 21:53:17.000000000 +0400
+@@ -205,8 +205,12 @@
+ Kernel_24 = 1;
+ Kernel_26 = 0;
+ }
+-
+- if(strncmp(str,"2.6",3)==0)
++ else if(strncmp(str,"2.6",3)==0)
++ {
++ Kernel_24 = 0;
++ Kernel_26 = 1;
++ }
++ else
+ {
+ Kernel_24 = 0;
+ Kernel_26 = 1;
diff --git a/community/acpitool/sysfs-battery.patch b/community/acpitool/sysfs-battery.patch
new file mode 100644
index 000000000..4f6898a78
--- /dev/null
+++ b/community/acpitool/sysfs-battery.patch
@@ -0,0 +1,52 @@
+diff -wbBur acpitool-0.5.1/src/acpitool.h acpitool-0.5.1.my/src/acpitool.h
+--- acpitool-0.5.1/src/acpitool.h 2008-10-16 19:38:12.000000000 +0400
++++ acpitool-0.5.1.my/src/acpitool.h 2011-11-10 21:55:23.000000000 +0400
+@@ -29,11 +29,11 @@
+
+ struct Battery_Info {
+ int Battery_Present;
+- char Charging_State[12];
+- char Remaining_Cap[10];
+- char Design_Cap[10];
+- char LastFull_Cap[10];
+- char Present_Rate[10];
++ char Charging_State[13];
++ char Remaining_Cap[13];
++ char Design_Cap[13];
++ char LastFull_Cap[13];
++ char Present_Rate[13];
+ char Technology[13];
+ char Model[13];
+ char Serial[13];
+diff -wbBur acpitool-0.5.1/src/battery.cpp acpitool-0.5.1.my/src/battery.cpp
+--- acpitool-0.5.1/src/battery.cpp 2009-08-13 23:42:43.000000000 +0400
++++ acpitool-0.5.1.my/src/battery.cpp 2011-11-10 21:48:22.000000000 +0400
+@@ -614,7 +614,7 @@
+ }
+
+ memset(str, '\0', 100);
+- for(int t=0; t<5; t++)
++ for(int t=0; t<1; t++)
+ fgets(str, 100, power_fp); /* skip first 5 lines */
+
+ /* get battery status (full, charging, ...) */
+@@ -664,8 +664,8 @@
+
+
+
+- fgets(str, 100, power_fp); /* skip 1 line */
+-
++ fgets(str, 100, power_fp); /* cycle count - skip 1 line */
++ fgets(str, 100, power_fp); /* voltage_min - skip 1 line */
+
+ /* get voltage_now */
+ memset(str, '\0', 100);
+@@ -756,7 +756,7 @@
+ else
+ strncpy(batt_info->Model, "unknown", 7);
+
+- fgets(str, 100, power_fp);
++ fgets(str, 100, power_fp); /* manufacturer - skip 1 line */
+
+ /* get serial */
+ memset(str, '\0', 100);
diff --git a/community/adesklets/PKGBUILD b/community/adesklets/PKGBUILD
new file mode 100644
index 000000000..419b35387
--- /dev/null
+++ b/community/adesklets/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 59648 2011-11-29 01:35:36Z ebelanger $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Fubar
+
+pkgname=adesklets
+pkgver=0.6.1
+pkgrel=12
+pkgdesc="An imlib2-based system to have interactive 'desklets'."
+arch=('i686' 'x86_64' 'mips64el')
+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 posix_signal.patch)
+md5sums=('cd390c9398449c5566033e2e4792bccb'
+ '0374aec97670c90713fcabc2710e2160'
+ 'd9ac15cc92f833f2446218e487e6c607')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i "${srcdir}/posix_signal.patch"
+
+ #patch for fontconfig => 2.4
+ patch -Np0 -i "${srcdir}/fontconfig-2.4.patch"
+
+ autoreconf
+ PYTHON=/usr/bin/python2 ./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
+
+ #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/adesklets/posix_signal.patch b/community/adesklets/posix_signal.patch
new file mode 100644
index 000000000..90b3e8a12
--- /dev/null
+++ b/community/adesklets/posix_signal.patch
@@ -0,0 +1,81 @@
+From 92e686badce5c549699a30e82458a42dbcd99183 Mon Sep 17 00:00:00 2001
+From: Sylvain <syfou@users.sourceforge.net>
+Date: Wed, 2 May 2007 13:23:18 -0400
+Subject: [PATCH] Definitive fix for the signal module importation problem
+ ...from posix_signal on some amd64 systems. Many thanks to Jason
+ Pontious for his support and patience.
+
+---
+ scripting/python/posix_signal.c | 34 ++++++++++++++++++----------------
+ 1 files changed, 18 insertions(+), 16 deletions(-)
+
+diff --git a/scripting/python/posix_signal.c b/scripting/python/posix_signal.c
+index 620248f..7c5ac25 100644
+--- a/scripting/python/posix_signal.c
++++ b/scripting/python/posix_signal.c
+@@ -1,16 +1,17 @@
+ /*--- posix_signal.c -----------------------------------------------------------
+-This is nothing but a forward port from older python code by Lance Ellinghaus,
+-Guido van Rossum & al., reformatted and put back together by Sylvain Fourmanoit <syfou@users.sourceforge.net>
+-for recent (2.2.0 final and newer) python implementations.
+-
+-The ability to temporarily delay signals delivery is a very usefull feature -
+-not all C functions are reentrant (in fact, only a few need to be 'safe'
+-according to the POSIX 1003.1-2003 list), so being able to create critical
+-code sections is a must. Although I am convinced Python's developpers
+-had good reasons, I do not know myself why 'sigprocmask' and associated
+-functions support was dropped from the signal module on systems which
+-implemented them... Since I needed them in my blissful ignorance,
+-here they are, alive and kicking. :-)
++This is nothing but a forward port from older python code by Lance
++Ellinghaus, Guido van Rossum & al., reformatted and put back together
++by Sylvain Fourmanoit <syfou@users.sourceforge.net> for recent (2.2.0
++final and newer) python implementations.
++
++The ability to temporarily delay signals delivery is a very usefull
++feature - not all C functions are reentrant (in fact, only a few need
++to be 'safe' according to the POSIX 1003.1-2003 list), so being able
++to create critical code sections is a must. Although I am convinced
++Python's developpers had good reasons, I do not know myself why
++'sigprocmask' and associated functions support was dropped from the
++signal module on systems which implemented them... Since I needed them
++in my blissful ignorance, here they are, alive and kicking. :-)
+
+ ------------------------------------------------------------------------------*/
+ #include <Python.h>
+@@ -214,8 +215,9 @@ PyMODINIT_FUNC
+ initposix_signal(void)
+ {
+ const char * KEYS [] = { "__doc__", "__name__" , NULL};
+- int i, pos=0;
++ int i;
+ char * key_str, * doc_str , * new_str;
++ Py_ssize_t pos = 0;
+ PyObject * m, * mDoc, *d,
+ * pName, * pModule, * pDict,
+ * key, * value, *x;
+@@ -236,7 +238,6 @@ initposix_signal(void)
+ /* The chunk of code below roughly perfoms python equivalent of:
+ 'from signal import *' inside what would be a pure python posix_signal
+ module ... */
+- pName=PyString_FromString("signal");
+ if ((pModule=PyImport_Import((pName=PyString_FromString("signal"))))) {
+ pDict=PyModule_GetDict(pModule);
+ while (PyDict_Next(pDict, &pos, &key, &value))
+@@ -246,10 +247,11 @@ initposix_signal(void)
+ for(i=0;KEYS[i];++i)
+ if (strncmp(key_str,KEYS[i],strlen(KEYS[i]))==0)
+ break;
+- if (!KEYS[i])
++ if (!KEYS[i]) {
+ /* This needs python 2.2 and up */
++ Py_INCREF(value);
+ PyModule_AddObject(m,key_str,value);
+- else {
++ } else {
+ if (i==0) {
+ /* Append signal module documentation */
+ if ((mDoc=PyDict_GetItemString(d,KEYS[0]))) {
+--
+1.6.5.GIT
+
diff --git a/community/adns-python/PKGBUILD b/community/adns-python/PKGBUILD
new file mode 100644
index 000000000..c6c393de7
--- /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' 'mips64el')
+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..4e2dacb81
--- /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' 'mips64el')
+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..3998f6d51
--- /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' 'mips64el')
+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..4ac0172da
--- /dev/null
+++ b/community/agg/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 55569 2011-09-14 10:30:07Z andrea $
+# Maintainer: Jonathan Conder <jonno dot conder at gmail dot com>
+
+pkgname=agg
+pkgver=2.5
+pkgrel=4
+pkgdesc="A High Quality Rendering Engine for C++"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.antigrain.com/"
+license=('GPL')
+depends=('gcc-libs' 'sdl' 'freetype2')
+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"
+ patch -Np1 -i "${srcdir}/agg-2.5-pkgconfig.patch"
+ sh ./autogen.sh
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..318010c22
--- /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' 'mips64el')
+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..d7961b649
--- /dev/null
+++ b/community/aide/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 60050 2011-12-03 20:33:18Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: 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=3
+pkgdesc='A file integrity checker and intrusion detection program.'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.cs.tut.fi/~rammer/aide.html"
+license=('GPL')
+makedepends=('mhash' 'elfutils')
+backup=('etc/aide.conf')
+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..a8feddaab
--- /dev/null
+++ b/community/aircrack-ng/ChangeLog
@@ -0,0 +1,66 @@
+2011-06-28 Brad Fanella
+
+ * Fix FS#24880
+
+2011-06-15 Brad Fanella
+
+ * Fix FS#24633
+
+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..4bb49cd21
--- /dev/null
+++ b/community/aircrack-ng/PKGBUILD
@@ -0,0 +1,91 @@
+# $Id: PKGBUILD 50616 2011-06-29 02:16:27Z 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=7.1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.aircrack-ng.org"
+license=('GPL2')
+source=("http://download.aircrack-ng.org/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f7a24ed8fad122c4187d06bfd6f998b4')
+depends=('openssl' 'sqlite3' 'iw' 'net-tools')
+
+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/airdriver-ng
+ rm ${pkgdir}/usr/sbin/airodump-ng-oui-update
+ # Man pages
+ mkdir -p ${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}/aircrack-ng-${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
+
+ ### 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/alleyoop/PKGBUILD b/community/alleyoop/PKGBUILD
new file mode 100644
index 000000000..895a91d77
--- /dev/null
+++ b/community/alleyoop/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 57801 2011-11-03 09:12:48Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+# Contributor: Lex Rivera aka x-demon <aur@x-demon.org>
+pkgname=alleyoop
+pkgver=0.9.7
+pkgrel=3
+pkgdesc="A Valgrind front-end for the GNOME environment"
+arch=('x86_64' 'i686')
+url="http://alleyoop.sourceforge.net/"
+license=('GPL')
+depends=('valgrind' 'libgnomeui')
+makedepends=('intltool')
+install=alleyoop.install
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('b45ab041dea15cd0ae663183bef893c6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ 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 alleyoop "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -r "$pkgdir/etc"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/alleyoop/alleyoop.install b/community/alleyoop/alleyoop.install
new file mode 100644
index 000000000..16e3af018
--- /dev/null
+++ b/community/alleyoop/alleyoop.install
@@ -0,0 +1,19 @@
+pkgname=alleyoop
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/alltray/PKGBUILD b/community/alltray/PKGBUILD
new file mode 100644
index 000000000..b61827550
--- /dev/null
+++ b/community/alltray/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 51791 2011-07-15 09:01:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : James Rayner <iphitus@gmail.com>
+# Contributor: Roberto Salas <ro0xito@gmail.com>
+
+pkgname=alltray
+pkgver=0.7.5dev
+pkgrel=1
+pkgdesc="Drops any app in the tray."
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://alltray.trausch.us/"
+depends=('libxpm' 'libgtop' 'libwnck')
+options=('!libtool')
+source=(https://code.launchpad.net/alltray/trunk/${pkgver}/+download/alltray-${pkgver}.tar.gz)
+md5sums=('faef46b14a3f9c14d4e5efd65245796e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/alsa-tools/PKGBUILD b/community/alsa-tools/PKGBUILD
new file mode 100644
index 000000000..1e097048e
--- /dev/null
+++ b/community/alsa-tools/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 59642 2011-11-28 23:44:29Z seblu $
+#Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+#Contributor: Jochen Immend�rfer <jochen dot immendoerfer at gmail dot com>
+
+pkgname=alsa-tools
+pkgver=1.0.24.1
+pkgrel=1
+pkgdesc='ALSA tools package'
+arch=('i686' 'x86_64')
+url='http://alsa-project.org/'
+license=('GPL2')
+depends=('fltk' 'alsa-lib' 'gtk2')
+options=('!libtool')
+source=("ftp://ftp.alsa-project.org/pub/tools/$pkgname-$pkgver.tar.bz2")
+md5sums=('08fe93a12006093e590d7ecc02b119dd')
+
+build() {
+ for f in $(find "$srcdir/$pkgname-$pkgver" -type f -name configure ); do
+ [[ -x $f ]] || continue
+ cd "${f%/*}"
+ [[ qlo10k1 = ${PWD##*/} ]] && continue
+ [[ hwmixvolume = ${PWD##*/} ]] && continue
+ msg2 "Building ${PWD##*/}"
+ ./configure --prefix=/usr --x-libraries=/usr/lib
+ make
+ done
+}
+
+package() {
+ for f in $(find "$srcdir/$pkgname-$pkgver" -type f -name configure ); do
+ [[ -x $f ]] || continue
+ cd "${f%/*}"
+ [[ qlo10k1 = ${PWD##*/} ]] && continue
+ [[ hwmixvolume = ${PWD##*/} ]] && continue
+ msg2 "Installing ${PWD##*/}"
+ make "DESTDIR=$pkgdir" install
+ done
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/alure/PKGBUILD b/community/alure/PKGBUILD
new file mode 100644
index 000000000..a7aac2f8b
--- /dev/null
+++ b/community/alure/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Markus Martin <markus@archwyrm.net>
+
+pkgname=alure
+pkgver=1.2
+pkgrel=1
+pkgdesc='Utility library to help manage common tasks with OpenAL applications.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://kcat.strangesoft.net/alure.html'
+license=('MIT')
+depends=('openal')
+makedepends=('cmake' 'libsndfile' 'libvorbis' 'flac' 'mpg123' 'dumb' 'fluidsynth')
+optdepends=('libsndfile: for uncompressed audio support'
+ 'libvorbis: for OGG Vorbis support'
+ 'flac: for FLAC support'
+ 'mpg123: for MPEG support'
+ 'dumb: for IT, XM, S3M and MOD support'
+ 'fluidsynth: for SoundFont 2 support')
+source=("http://kcat.strangesoft.net/alure-releases/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('3088aba074ad02d95ea51e705053b9f5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm0644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/community/amaya/PKGBUILD b/community/amaya/PKGBUILD
new file mode 100644
index 000000000..909d4871a
--- /dev/null
+++ b/community/amaya/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 54286 2011-08-16 07:11:40Z 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=8
+pkgdesc="W3C's Editor/Browser"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.w3.org/Amaya/"
+license=('Custom/BSD')
+depends=('wxgtk' 'libgl' 'raptor1' 'libxt')
+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..249bf8494
--- /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' 'mips64el')
+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..8159f68f7
--- /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' 'mips64el')
+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/antiword/PKGBUILD b/community/antiword/PKGBUILD
new file mode 100644
index 000000000..260633c73
--- /dev/null
+++ b/community/antiword/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 55537 2011-09-14 08:02:10Z andrea $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron, phrakture, Griffin <aaron@archlinux.org>
+# Contributor: Gustav Munkby <grddev@gmx.net>
+
+pkgname=antiword
+pkgver=0.37
+pkgrel=3
+pkgdesc="A free MS Word reader for Linux and RISC OS"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.winfield.demon.nl/"
+license=('GPL')
+depends=('bash')
+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|GLOBAL_INSTALL_DIR =.*|GLOBAL_INSTALL_DIR = /usr/bin|g" \
+ Makefile.Linux
+
+ make OPT="${CFLAGS} -DNDEBUG" LDFLAGS="${LDFLAGS}"
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ 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..010579522
--- /dev/null
+++ b/community/antiword/antiword.install
@@ -0,0 +1,16 @@
+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
+}
diff --git a/community/anyfs-tools/PKGBUILD b/community/anyfs-tools/PKGBUILD
new file mode 100644
index 000000000..41643d5a1
--- /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' 'mips64el')
+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..1cec8981d
--- /dev/null
+++ b/community/apcupsd/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 55548 2011-09-14 08:57:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Todd Musall <tmusall@comcast.net>
+
+pkgname=apcupsd
+pkgver=3.14.10
+pkgrel=1
+pkgdesc="power mangement and controlling most of APC's UPS models"
+arch=(i686 x86_64 mips64el)
+url="http://www.apcupsd.org"
+license=('GPL')
+depends=('gcc-libs')
+optdepends=('gd: for CGI'
+ 'gconf: for frontend'
+ 'gtk2: for frontend')
+makedepends=('pkgconfig' 'gd' 'gconf' 'gtk2')
+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=('5928822d855c5cf7ac29655e3e0b8c23'
+ '8bc674da24188c69b0ad5d7fe7510f73')
+
+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..73ca2b4bf
--- /dev/null
+++ b/community/apcupsd/apcupsd
@@ -0,0 +1,41 @@
+#!/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
+ 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_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..707c5a6af
--- /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 'mips64el')
+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..10072bee7
--- /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' 'mips64el')
+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..b3e7346c6
--- /dev/null
+++ b/community/apvlv/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 56937 2011-10-17 08:19:53Z ibiru $
+# 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.2
+pkgrel=2
+pkgdesc="A PDF Viewer which behaves like Vim"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://naihe2010.github.com/apvlv/"
+license=('GPL')
+depends=('gtk2' 'cairo' 'poppler-glib' 'djvulibre')
+source=(https://github.com/downloads/naihe2010/$pkgname/$pkgname-${pkgver}-Source.tar.gz apvlv-poppler015.patch poppler-gdk.patch)
+md5sums=('381d83aa9c253fac5e0be165fca39222'
+ '308b17a563ed470ea47d408f324ab745'
+ '076d794ab865e9bd53a5dfd2db1eaa8b')
+
+makedepends=('cmake')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-Source
+ patch -Np1 -i $srcdir/apvlv-poppler015.patch
+ patch -Np1 -i $srcdir/poppler-gdk.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..0a261b1db
--- /dev/null
+++ b/community/apvlv/apvlv-poppler015.patch
@@ -0,0 +1,12 @@
+diff -Naur apvlv-0.1.2-Source.orig//src/ApvlvFile.cpp apvlv-0.1.2-Source.new//src/ApvlvFile.cpp
+--- apvlv-0.1.2-Source.orig//src/ApvlvFile.cpp 2011-07-29 17:19:13.000000000 +0200
++++ apvlv-0.1.2-Source.new//src/ApvlvFile.cpp 2011-07-29 17:22:22.000000000 +0200
+@@ -304,7 +304,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/apvlv/poppler-gdk.patch b/community/apvlv/poppler-gdk.patch
new file mode 100644
index 000000000..ab487cf1c
--- /dev/null
+++ b/community/apvlv/poppler-gdk.patch
@@ -0,0 +1,150 @@
+diff -ruN apvlv-0.1.2-Source/src/ApvlvFile.cpp apvlv-0.1.2-Source.new/src/ApvlvFile.cpp
+--- apvlv-0.1.2-Source/src/ApvlvFile.cpp 2011-10-10 14:23:19.205606984 +0200
++++ apvlv-0.1.2-Source.new/src/ApvlvFile.cpp 2011-10-10 14:21:50.870952455 +0200
+@@ -29,6 +29,10 @@
+ #include "ApvlvUtil.hpp"
+ #include "ApvlvView.hpp"
+
++#ifndef POPPLER_WITH_GDK
++#include "poppler-gdk.h"
++#endif
++
+ #ifdef HAVE_LIBUMD
+ #define LIBUMD_ENABLE_GTK
+ #include <umd.h>
+diff -ruN apvlv-0.1.2-Source/src/poppler-gdk.h apvlv-0.1.2-Source.new/src/poppler-gdk.h
+--- apvlv-0.1.2-Source/src/poppler-gdk.h 1970-01-01 01:00:00.000000000 +0100
++++ apvlv-0.1.2-Source.new/src/poppler-gdk.h 2011-10-10 14:22:06.077846565 +0200
+@@ -0,0 +1,132 @@
++#include <goo/gtypes.h>
++
++static void
++copy_cairo_surface_to_pixbuf (cairo_surface_t *surface,
++ GdkPixbuf *pixbuf)
++{
++ int cairo_width, cairo_height, cairo_rowstride;
++ unsigned char *pixbuf_data, *dst, *cairo_data;
++ int pixbuf_rowstride, pixbuf_n_channels;
++ unsigned int *src;
++ int x, y;
++
++ cairo_width = cairo_image_surface_get_width (surface);
++ cairo_height = cairo_image_surface_get_height (surface);
++ cairo_rowstride = cairo_image_surface_get_stride (surface);
++ cairo_data = cairo_image_surface_get_data (surface);
++
++ pixbuf_data = gdk_pixbuf_get_pixels (pixbuf);
++ pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
++ pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf);
++
++ if (cairo_width > gdk_pixbuf_get_width (pixbuf))
++ cairo_width = gdk_pixbuf_get_width (pixbuf);
++ if (cairo_height > gdk_pixbuf_get_height (pixbuf))
++ cairo_height = gdk_pixbuf_get_height (pixbuf);
++ for (y = 0; y < cairo_height; y++)
++ {
++ src = (unsigned int *) (cairo_data + y * cairo_rowstride);
++ dst = pixbuf_data + y * pixbuf_rowstride;
++ for (x = 0; x < cairo_width; x++)
++ {
++ dst[0] = (*src >> 16) & 0xff;
++ dst[1] = (*src >> 8) & 0xff;
++ dst[2] = (*src >> 0) & 0xff;
++ if (pixbuf_n_channels == 4)
++ dst[3] = (*src >> 24) & 0xff;
++ dst += pixbuf_n_channels;
++ src++;
++ }
++ }
++}
++
++static void
++_poppler_page_render_to_pixbuf (PopplerPage *page,
++ int src_x, int src_y,
++ int src_width, int src_height,
++ double scale,
++ int rotation,
++ GBool printing,
++ GdkPixbuf *pixbuf)
++{
++ cairo_t *cr;
++ cairo_surface_t *surface;
++
++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
++ src_width, src_height);
++ cr = cairo_create (surface);
++ cairo_save (cr);
++ switch (rotation) {
++ case 90:
++ cairo_translate (cr, src_x + src_width, -src_y);
++ break;
++ case 180:
++ cairo_translate (cr, src_x + src_width, src_y + src_height);
++ break;
++ case 270:
++ cairo_translate (cr, -src_x, src_y + src_height);
++ break;
++ default:
++ cairo_translate (cr, -src_x, -src_y);
++ }
++
++ if (scale != 1.0)
++ cairo_scale (cr, scale, scale);
++
++ if (rotation != 0)
++ cairo_rotate (cr, rotation * G_PI / 180.0);
++
++ if (printing)
++ poppler_page_render_for_printing (page, cr);
++ else
++ poppler_page_render (page, cr);
++ cairo_restore (cr);
++
++ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
++ cairo_set_source_rgb (cr, 1., 1., 1.);
++ cairo_paint (cr);
++
++ cairo_destroy (cr);
++
++ copy_cairo_surface_to_pixbuf (surface, pixbuf);
++ cairo_surface_destroy (surface);
++}
++
++/**
++ * poppler_page_render_to_pixbuf:
++ * @page: the page to render from
++ * @src_x: x coordinate of upper left corner
++ * @src_y: y coordinate of upper left corner
++ * @src_width: width of rectangle to render
++ * @src_height: height of rectangle to render
++ * @scale: scale specified as pixels per point
++ * @rotation: rotate the document by the specified degree
++ * @pixbuf: pixbuf to render into
++ *
++ * First scale the document to match the specified pixels per point,
++ * then render the rectangle given by the upper left corner at
++ * (src_x, src_y) and src_width and src_height.
++ * This function is for rendering a page that will be displayed.
++ * If you want to render a page that will be printed use
++ * poppler_page_render_to_pixbuf_for_printing() instead
++ *
++ * Deprecated: 0.16
++ **/
++void
++poppler_page_render_to_pixbuf (PopplerPage *page,
++ int src_x, int src_y,
++ int src_width, int src_height,
++ double scale,
++ int rotation,
++ GdkPixbuf *pixbuf)
++{
++ g_return_if_fail (POPPLER_IS_PAGE (page));
++ g_return_if_fail (scale > 0.0);
++ g_return_if_fail (pixbuf != NULL);
++
++ _poppler_page_render_to_pixbuf (page, src_x, src_y,
++ src_width, src_height,
++ scale, rotation,
++ gFalse,
++ pixbuf);
++}
diff --git a/community/aqbanking/PKGBUILD b/community/aqbanking/PKGBUILD
new file mode 100644
index 000000000..de236d4cd
--- /dev/null
+++ b/community/aqbanking/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59854 2011-12-01 11:32:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: David Moore <davidm@sjsoft.com>
+
+pkgname=aqbanking
+pkgver=5.0.17
+_dnrel=88
+pkgrel=1
+pkgdesc="A library for online banking and financial applications"
+arch=(i686 x86_64 'mips64el')
+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=${_dnrel}&file=01&dummy=aqbanking-$pkgver.tar.gz")
+md5sums=('4543012286159310bdf13badf221a173')
+
+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..de474a313
--- /dev/null
+++ b/community/arch/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 46342 2011-05-05 11:48:15Z spupykin $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname='arch'
+pkgver=1.3.5
+pkgrel=8
+pkgdesc="a modern and remarkable revision control system"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://regexps.srparish.net/www/#Gnu-arch"
+depends=('zlib' 'expat' 'krb5')
+options=('!makeflags')
+source=(ftp://ftp.gnu.org/gnu/gnu-arch/tla-$pkgver.tar.gz)
+md5sums=('db31ee89bc4788eef1eba1cee6c176ef')
+
+build() {
+ cd "${srcdir}/tla-$pkgver/src"
+ mkdir =build
+ cd =build
+ ../configure --prefix /usr
+ make
+}
+
+package() {
+ cd "${srcdir}/tla-$pkgver/src/=build"
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/community/aria2/PKGBUILD b/community/aria2/PKGBUILD
new file mode 100644
index 000000000..fed44e432
--- /dev/null
+++ b/community/aria2/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=aria2
+pkgver=1.13.0
+pkgrel=2
+pkgdesc='Download utility that supports HTTP(S), FTP, BitTorrent, and Metalink'
+arch=('i686' 'x86_64' 'mips64el')
+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=('b86a5bd4a94e465a58656f71b48c90b9')
+
+build() {
+ cd aria2-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
+
+ make
+}
+
+package() {
+ cd aria2-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ario/PKGBUILD b/community/ario/PKGBUILD
new file mode 100644
index 000000000..d96fa671c
--- /dev/null
+++ b/community/ario/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 52022 2011-07-19 19:38:14Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=ario
+pkgver=1.5.1
+pkgrel=1
+pkgdesc="A GTK client for MPD (Music player daemon) inspired by Rhythmbox but much lighter and faster"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ario-player.sourceforge.net/"
+license=('GPL')
+depends=('avahi' 'curl' 'dbus-glib' 'gnutls' 'hicolor-icon-theme' 'libglade' 'libmpdclient' 'libnotify' 'libsoup' '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)
+sha256sums=('0831281ab8634eb92424b61230eee035822f7f92d8b0526da7316c898239c91e')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ }
+
+package () {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ario/ario.changelog b/community/ario/ario.changelog
new file mode 100644
index 000000000..d2839893f
--- /dev/null
+++ b/community/ario/ario.changelog
@@ -0,0 +1,33 @@
+2011-07-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.1
+
+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..a6ab55b6b
--- /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' 'mips64el')
+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/arp-scan/PKGBUILD b/community/arp-scan/PKGBUILD
new file mode 100644
index 000000000..e4878c4fe
--- /dev/null
+++ b/community/arp-scan/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 57027 2011-10-18 19:06:52Z mtorromeo $
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Contributor: xav <xav at ethertricks dot net>
+
+pkgname=arp-scan
+pkgver=1.8.1
+pkgrel=1.1
+pkgdesc="A tool that uses ARP to discover and fingerprint IP hosts on the local network"
+arch=(mips64el)
+url="http://www.nta-monitor.com/tools/arp-scan/"
+license=('GPL')
+depends=('libpcap' 'perl-libwww')
+source=(http://www.nta-monitor.com/tools/arp-scan/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('38db8f27fc6553a88367748ea04483d6')
+
+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/arpack/PKGBUILD b/community/arpack/PKGBUILD
new file mode 100644
index 000000000..5b92af19f
--- /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' 'mips64el')
+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/arptables/PKGBUILD b/community/arptables/PKGBUILD
new file mode 100644
index 000000000..172baf2bd
--- /dev/null
+++ b/community/arptables/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 59644 2011-11-29 01:04:59Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net
+# Contributor: Daniel Micay <danielmicay@gmail.com>
+# Contributor: Michal Soltys <soltys@ziu.info>
+
+pkgname=arptables
+pkgver=0.0.3_4
+pkgrel=1
+pkgdesc='ARP filtering utility'
+arch=('i686' 'x86_64')
+url='http://ebtables.sourceforge.net/'
+license=('GPL')
+source=("http://downloads.sourceforge.net/ebtables/$pkgname-v${pkgver//_/-}.tar.gz" 'arptables.rc')
+md5sums=('1d4ab05761f063b0751645d8f2b8f8e5'
+ 'f8c0ecad9151a16347c133e043232d4a')
+
+build() {
+ cd $pkgname-v${pkgver//_/-}
+ make
+}
+
+package() {
+ # install rc script
+ install -D -m 0755 arptables.rc "$pkgdir/etc/rc.d/arptables"
+
+ # setup arptables
+ cd $pkgname-v${pkgver//_/-}
+ make install \
+ DESTDIR="$pkgdir" \
+ PREFIX=/usr \
+ LIBDIR=/usr/lib/arptables \
+ BINDIR=/usr/sbin \
+ MANDIR=/usr/share/man \
+ INITDIR=/etc/rc.d \
+ SYSCONFIGDIR=/etc/arptables
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/arptables/arptables.rc b/community/arptables/arptables.rc
new file mode 100644
index 000000000..dae90ac2a
--- /dev/null
+++ b/community/arptables/arptables.rc
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[[ -x /usr/sbin/arptables ]] || exit 1
+[[ -x /usr/sbin/arptables-save ]] || exit 1
+[[ -x /usr/sbin/arptables-restore ]] || exit 1
+
+do_start() {
+ stat_busy "Restore arptables rules"
+ if [[ -r /etc/arptables/arptables ]]; then
+ /usr/sbin/arptables-restore </etc/arptables/arptables
+ (( $? == 0 )) && stat_done && add_daemon arptables && return
+ fi
+ stat_fail
+}
+
+do_stop() {
+ stat_busy "Flushing arptables rules"
+ /usr/sbin/arptables-restore </dev/null
+ if (( $? == 0 )); then
+ stat_done
+ rm_daemon arptables
+ else
+ stat_fail
+ fi
+}
+
+do_save() {
+ stat_busy "Saving arptables rules"
+ /usr/sbin/arptables-save >/etc/arptables/arptables
+ (( $? == 0 )) && stat_done || stat_fail
+}
+
+case "$1" in
+ start)
+ do_start
+ ;;
+ stop)
+ do_stop
+ ;;
+ restart)
+ do_stop
+ do_start
+ ;;
+ save)
+ do_save
+ ;;
+ status)
+ /usr/sbin/arptables-save
+ ;;
+ *)
+ echo "Usage $0 {start|stop|restart|save|status}" >&2
+ exit 1
+esac
+
+# vim:set ts=2 sw=2 ft=sh et:
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..ae9acd0c2
--- /dev/null
+++ b/community/arpwatch/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 44377 2011-04-06 19:43:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=arpwatch
+pkgver=2.1a15
+pkgrel=7
+pkgdesc="arpwatch and arpsnmp network monitoring tools"
+arch=(i686 x86_64 'mips64el')
+url="ftp://ftp.ee.lbl.gov/"
+license=("GPL")
+depends=(libpcap)
+source=(ftp://ftp.ee.lbl.gov/$pkgname-$pkgver.tar.gz)
+md5sums=('cebfeb99c4a7c2a6cee2564770415fe7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i 's|ARPDIR = $(prefix)/arpwatch|ARPDIR = /var/lib/arpwatch|' Makefile.in
+
+ ./configure --prefix=/usr
+ make SENDMAIL=/usr/sbin/sendmail
+ install -d -m 0755 $pkgdir/usr/sbin
+ make DESTDIR=$pkgdir install
+ install -D -m 0644 arpwatch.8 $pkgdir/usr/share/man/man8/arpwatch.8
+ install -D -m 0644 arpsnmp.8 $pkgdir/usr/share/man/man8/arpsnmp.8
+ install -d -m 0755 $pkgdir/var/lib/arpwatch
+ touch $pkgdir/var/lib/arpwatch/arp.dat
+}
diff --git a/community/ascii/PKGBUILD b/community/ascii/PKGBUILD
new file mode 100644
index 000000000..fc86b799a
--- /dev/null
+++ b/community/ascii/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: Grigorios Bouzakis <grbzks@xsmail.com>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=ascii
+pkgver=3.11
+pkgrel=1
+pkgdesc="Utility for conversion between various byte representations and the ASCII character table"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.catb.org/~esr/ascii"
+license=('BSD')
+source=("http://www.catb.org/~esr/ascii/ascii-${pkgver}.tar.gz")
+md5sums=('ba8a9392f8aa8c6b7a52923fba870579')
+
+build() {
+ cd ascii-${pkgver}
+
+ make
+}
+
+package() {
+ cd ascii-${pkgver}
+
+ install -D ascii \
+ ${pkgdir}/usr/bin/ascii
+
+ install -D -m644 ascii.1 \
+ ${pkgdir}/usr/share/man/man1/ascii.1
+
+ install -D -m644 COPYING \
+ ${pkgdir}/usr/share/licenses/ascii/LICENSE
+}
diff --git a/community/asciijump/PKGBUILD b/community/asciijump/PKGBUILD
new file mode 100644
index 000000000..137c3dc92
--- /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' 'mips64el')
+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/asix-module/PKGBUILD b/community/asix-module/PKGBUILD
new file mode 100644
index 000000000..c3479d094
--- /dev/null
+++ b/community/asix-module/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+
+pkgname=asix-module
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="A kernel module for the ASIX USB 2.0 low power AX88772B/AX88772A/AX88760/AX88772/AX88178 ethernet controllers"
+url="http://www.asix.com.tw"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('glibc' 'linux>=3.1' 'linux<3.2')
+makedepends=('linux-headers')
+source=(http://www.asix.com.tw/FrootAttach/driver/AX88772B_772A_760_772_178_LINUX_Driver_v${pkgver}_Source.zip)
+install=$pkgname.install
+
+_extramodules=extramodules-3.1-ARCH
+_kernver="$(cat /lib/modules/$_extramodules/version || true)"
+
+build() {
+ cd "$srcdir/AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source"
+ make SYSSRC=/usr/src/linux-$_kernver
+ gzip -f9 asix.ko
+}
+
+package() {
+ cd "$srcdir/AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source"
+ install -D -m644 asix.ko.gz "$pkgdir/lib/modules/$_extramodules/asix.ko.gz"
+}
+
+md5sums=('b3261d17e21b026d2c50dbc54227eb9c')
+sha256sums=('cac6b217672399439b571c77232f4beb22a5dffb54afeaf714c2b7559d41493d')
diff --git a/community/asix-module/asix-module.install b/community/asix-module/asix-module.install
new file mode 100644
index 000000000..54bfb9ff4
--- /dev/null
+++ b/community/asix-module/asix-module.install
@@ -0,0 +1,15 @@
+rebuild_module_dependencies() {
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_install() {
+ rebuild_module_dependencies
+}
+post_upgrade() {
+ rebuild_module_dependencies
+}
+
+post_remove() {
+ rebuild_module_dependencies
+}
diff --git a/community/aspell-ca/PKGBUILD b/community/aspell-ca/PKGBUILD
new file mode 100644
index 000000000..70fafa27d
--- /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' 'mips64el')
+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..e9aef2380
--- /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' 'mips64el')
+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..b46e38cd8
--- /dev/null
+++ b/community/aspell-pl/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 58727 2011-11-18 05:20:53Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Arkadiusz Laczynski <alaczynski@gmail.com>
+
+pkgname=aspell-pl
+pkgver=20111117
+pkgrel=1
+pkgdesc="Polish dictionary for aspell"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+source=(ftp://ftp.archlinux.org/other/community/$pkgname/sjp-aspell6-pl-6.0_$pkgver-0.tar.bz2)
+md5sums=('27aa9ca734d7049238399c279c5417fb')
+
+build() {
+ cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
+
+ ./configure
+ make
+}
+
+package() {
+ cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/aspell-uk/PKGBUILD b/community/aspell-uk/PKGBUILD
new file mode 100644
index 000000000..08a4999bd
--- /dev/null
+++ b/community/aspell-uk/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 60430 2011-12-13 20:24:40Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=aspell-uk
+pkgver=1.6.5
+_ftpver=1.4.0
+pkgrel=3
+pkgdesc="Ukrainian dictionary for aspell"
+arch=('i686' 'x86_64' 'mips64el')
+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/project/ispell-uk/spell-uk/$pkgver/spell-uk-$pkgver.tgz)
+sha256sums=('35f9a7e840c1272706bc6dd172bc9625cbd843d021094da8598a6abba525f18c'
+ '90eff3b9e40d04b53717240b725e303f02cec4ee8bef9bded69b7481e41fa422')
+
+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..93d1f9ecd
--- /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' 'mips64el')
+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..e7a64294a
--- /dev/null
+++ b/community/astyle/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56885 2011-10-16 05:34:00Z bpiotrowski $
+# 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.02
+pkgrel=1.1
+pkgdesc="A Free, Fast and Small Automatic Formatter for C, C++, C#, and Java Source Code"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/astyle/"
+license=('LGPL')
+depends=('gcc-libs')
+source=(http://downloads.sourceforge.net/sourceforge/astyle/${pkgname}_${pkgver}_linux.tar.gz)
+md5sums=('6ce1f5c766ba142f152dab4ddd1ee3b7')
+
+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/atanks/PKGBUILD b/community/atanks/PKGBUILD
new file mode 100644
index 000000000..5dfb0c657
--- /dev/null
+++ b/community/atanks/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 56999 2011-10-18 03:48:36Z ebelanger $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jacek Poplawski <jacekpoplawski@gmail.com>
+# Contributor: Charlie Cox <ccoxiv@yahoo.com>
+
+pkgname=atanks
+pkgver=5.2
+pkgrel=1
+pkgdesc="Atomic Tanks"
+url="http://atanks.sourceforge.net"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('sed')
+depends=('allegro4>=4.4.0.1' 'gcc-libs')
+source=("http://downloads.sourceforge.net/project/atanks/atanks/atanks-${pkgver}/atanks-${pkgver}.tar.gz")
+md5sums=('05bedbb7b3f50831a30b47f7776c8c1a')
+
+build() {
+ cd atanks-${pkgver}
+ make
+}
+
+package() {
+ cd atanks-${pkgver}
+ make DESTDIR=${pkgdir} 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..909c10bd3
--- /dev/null
+++ b/community/atop/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 57413 2011-10-27 08:43:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: John Gerritse <john.gerritse@gmail.com>
+
+pkgname=atop
+pkgver=1.26
+pkgrel=2
+pkgdesc="A system and process level monitor."
+arch=(i686 x86_64 'mips64el')
+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
+ sed -i 's#root ##' atop.cron
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir INIPATH=/etc/rc.d install
+}
diff --git a/community/audex/PKGBUILD b/community/audex/PKGBUILD
new file mode 100644
index 000000000..3b0e855f3
--- /dev/null
+++ b/community/audex/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 57952 2011-11-04 20:47:05Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: mightyjaym <jmambrosino@gmail.com>
+# Contributor: moostik <mooostik_at_gmail.com>
+
+pkgname=audex
+pkgver=0.74b1
+pkgrel=3
+pkgdesc="A CDDA extraction tool with a ftp upload function for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kde-apps.org/content/show.php?content=77125"
+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=("ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.xz"
+ "google_regex.patch")
+md5sums=('20fdf9a0f89c08f44a151b6bdaab8782'
+ '77b33d8daead89d5f4f15b78a1cd1d55')
+
+build() {
+ cd ${srcdir}
+ # fix bug FS#25193
+ patch -Np0 -i google_regex.patch
+
+ 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/audex/google_regex.patch b/community/audex/google_regex.patch
new file mode 100644
index 000000000..86917e66f
--- /dev/null
+++ b/community/audex/google_regex.patch
@@ -0,0 +1,14 @@
+--- audex-0.74b1/utils/coverfetcher.cpp 2011-01-15 12:06:25.000000000 +0100
++++ audex-0.74b1/utils/coverfetcher_new.cpp 2011-07-20 18:43:37.554588883 +0200
+@@ -162,7 +162,10 @@
+ cover_tbnids.clear();
+ cover_thumbnails.clear();
+
+- QRegExp rx("<a\\shref=(\\/imgres\\?imgurl=[a-zA-Z0-9\\&\\_\\%\\/\\=\\.\\:\\-\\?]+)>[\\s\\n]*<img\\ssrc=([a-zA-Z0-9\\&\\_\\%\\/\\=\\.\\:\\-\\?]+).*>[\\s\\n]*</a>");
++ QRegExp rx("<a\\shref=\"(\\/imgres\\?imgurl=[^\"]+)\">[\\s\\n]*<img[^>]+src=\"([^>]+)\"></a>");
++ QString html = xml;
++ html.replace( QLatin1String("&amp;"), QLatin1String("&") );
++
+ rx.setMinimal(TRUE);
+
+ int pos = 0; int i = 0;
diff --git a/community/audit/PKGBUILD b/community/audit/PKGBUILD
new file mode 100644
index 000000000..d5ee232b4
--- /dev/null
+++ b/community/audit/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 57389 2011-10-26 20:55:52Z mtorromeo $
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Contributor: Connor Behan <connor.behan@gmail.com>
+# Contributor: henning mueller <henning@orgizm.net>
+
+pkgname=audit
+pkgver=2.1.3
+pkgrel=1
+pkgdesc='User space utilities for storing and searching the audit records generated by the audit subsystem in the Linux kernel.'
+url=http://people.redhat.com/sgrubb/$pkgname
+arch=(i686 x86_64)
+depends=(linux-headers python2 libldap)
+makedepends=(libldap swig)
+license=(GPL)
+options=(!libtool emptydirs)
+backup=(
+ etc/libaudit.conf
+ etc/audit/audit.rules
+ etc/audit/auditd.conf
+ etc/audisp/audispd.conf
+ etc/audisp/audisp-remote.conf
+ etc/audisp/zos-remote.conf
+ etc/audisp/plugins.d/af_unix.conf
+ etc/audisp/plugins.d/audispd-zos-remote.conf
+ etc/audisp/plugins.d/au-remote.conf
+ etc/audisp/plugins.d/syslog.conf
+)
+source=(
+ $url/$pkgname-$pkgver.tar.gz
+ auditd.rc
+ python2.patch
+)
+md5sums=(
+ abf26e3ac09f666905c5636dd24611fa
+ bd5574064e0c88748aebf0cd92ebcf0c
+ 45a33c6bef84f8e1701cb0b5e187336b
+)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p0 -i "$srcdir/python2.patch"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/audit \
+ --with-apparmor
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ cd "$pkgdir"
+ install -m755 "$srcdir/auditd.rc" etc/rc.d/auditd
+ install -d var/log/audit
+ rm -rf etc/rc.d/init.d etc/sysconfig
+ mv usr/sbin sbin
+}
diff --git a/community/audit/auditd.rc b/community/audit/auditd.rc
new file mode 100755
index 000000000..ea2e305ba
--- /dev/null
+++ b/community/audit/auditd.rc
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID auditd`
+
+case "$1" in
+ start)
+ stat_busy "Starting auditd"
+ [ -z "$PID" ] && {
+ /sbin/auditctl -R /etc/audit/audit.rules >/dev/null
+ /sbin/auditd
+ }
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon auditd
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping auditd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon auditd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ reload)
+ stat_busy "Reloading auditd"
+ [ ! -z "$PID" ] && kill -HUP $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon auditd
+ stat_done
+ fi
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|reload}"
+esac
+
+exit 0
diff --git a/community/audit/python2.patch b/community/audit/python2.patch
new file mode 100644
index 000000000..b5f6cbc25
--- /dev/null
+++ b/community/audit/python2.patch
@@ -0,0 +1,11 @@
+--- configure.old 2010-10-22 15:54:13.193333452 +0200
++++ configure 2010-10-22 15:54:52.546667020 +0200
+@@ -10662,7 +10662,7 @@
+
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+- for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
++ for ac_prog in python2
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
diff --git a/community/augeas/PKGBUILD b/community/augeas/PKGBUILD
new file mode 100644
index 000000000..0d53076e5
--- /dev/null
+++ b/community/augeas/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 60191 2011-12-07 04:43:36Z ebelanger $
+# Contributor: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Jon Nordby <jononor@gmail.com>
+
+pkgname=augeas
+pkgver=0.10.0
+pkgrel=1
+pkgdesc="A configuration editing tool that parses config files and transforms them into a tree"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://augeas.net"
+license=('LGPL')
+depends=('libxml2')
+options=('!libtool')
+source=(http://augeas.net/download/$pkgname-$pkgver.tar.gz{,.sig})
+md5sums=('fe1834e90a066c3208ac0214622c7352'
+ 'efb3f1a90ff31320dcc4c499eba5a555')
+
+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..d7a2d697d
--- /dev/null
+++ b/community/aumix/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58670 2011-11-17 13:07:03Z 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' 'mips64el')
+license=('GPL')
+depends=()
+makedepends=('gtk2' 'gpm' 'ncurses')
+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..9d14f623f
--- /dev/null
+++ b/community/autocutsel/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 45035 2011-04-14 10:45:17Z 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=6
+pkgdesc="synchronizes the two copy/paste buffers mainly used by X applications"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libxaw')
+source=(http://lepton.fr/tools/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ba4a6f632cb4815ae4e5c3027c24cfc5')
+url="http://lepton.fr/tools/autocutsel/"
+install=autocutsel.install
+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/autocutsel/autocutsel.install b/community/autocutsel/autocutsel.install
new file mode 100644
index 000000000..56fde35d7
--- /dev/null
+++ b/community/autocutsel/autocutsel.install
@@ -0,0 +1,20 @@
+post_install() {
+ cat << EOF
+ Add the following lines to your ~/.xinitrc or, for
+ system-wide use, to a new file, named, say, 40-autocutsel
+ in the directory /etc/X11/xinit/xinitrc.d/ :
+
+autocutsel -fork &
+autocutsel -selection PRIMARY -fork &
+EOF
+}
+
+post_upgrade() {
+ post_install
+}
+post_remove() {
+cat << EOF
+ you might want to remove autocutsel related files in
+ /etc/X11/xinit/xinitrc.d now.
+EOF
+}
diff --git a/community/autofs/0001-autofs-5.0.5-include-krb5-library.patch b/community/autofs/0001-autofs-5.0.5-include-krb5-library.patch
new file mode 100644
index 000000000..572ca97fd
--- /dev/null
+++ b/community/autofs/0001-autofs-5.0.5-include-krb5-library.patch
@@ -0,0 +1,206 @@
+From e467755fac27630730be25c4b41e5d0cfcd89c67 Mon Sep 17 00:00:00 2001
+From: Ian Kent <raven@themaw.net>
+Date: Tue, 10 Aug 2010 15:48:21 +0800
+Subject: [PATCH 1/2] autofs-5.0.5 - include krb5 library
+
+Since the Cyrus SASL module calls Kerberos directly we should be
+linking against the Kerberos librarys.
+---
+ Makefile.conf.in | 2 +
+ aclocal.m4 | 19 +++++++++++++++
+ configure | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ configure.in | 5 +++-
+ modules/Makefile | 4 +-
+ 5 files changed, 93 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.conf.in b/Makefile.conf.in
+index f0287c3..a9bcf8c 100644
+--- a/Makefile.conf.in
++++ b/Makefile.conf.in
+@@ -31,6 +31,8 @@ XML_FLAGS = @XML_FLAGS@
+ SASL = @HAVE_SASL@
+ LIBSASL= @LIBSASL@
+ SASL_FLAGS = @SASL_FLAGS@
++KRB5_LIBS=@KRB5_LIBS@
++KRB5_FLAGS=@KRB5_FLAGS@
+
+ # NIS+ support: yes (1) no (0)
+ NISPLUS = @HAVE_NISPLUS@
+diff --git a/aclocal.m4 b/aclocal.m4
+index e7f1a30..750a159 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -215,6 +215,25 @@ else
+ fi])
+
+ dnl --------------------------------------------------------------------------
++dnl AF_CHECK_KRB5
++dnl
++dnl Check for Kerberos 5
++dnl --------------------------------------------------------------------------
++AC_DEFUN([AF_CHECK_KRB5],
++[AC_PATH_PROGS(KRB5_CONFIG, krb5-config, no)
++AC_MSG_CHECKING(for Kerberos library)
++if test "$KRB5_CONFIG" = "no"
++then
++ AC_MSG_RESULT(no)
++ HAVE_KRB5=0
++else
++ AC_MSG_RESULT(yes)
++ HAVE_KRB5=1
++ KRB5_LIBS=`$KRB5_CONFIG --libs`
++ KRB5_FLAGS=`$KRB5_CONFIG --cflags`
++fi])
++
++dnl --------------------------------------------------------------------------
+ dnl AF_CHECK_LIBHESIOD
+ dnl
+ dnl Check for lib hesiod
+diff --git a/configure b/configure
+index 159f25f..500411c 100755
+--- a/configure
++++ b/configure
+@@ -640,6 +640,8 @@ ac_subst_vars='LTLIBOBJS
+ LIBOBJS
+ DAEMON_LDFLAGS
+ DAEMON_CFLAGS
++KRB5_FLAGS
++KRB5_LIBS
+ LIBSASL
+ HAVE_SASL
+ SASL_FLAGS
+@@ -657,6 +659,7 @@ LIBHESIOD
+ HAVE_HESIOD
+ LIBRESOLV
+ LIBNSL
++KRB5_CONFIG
+ XML_CONFIG
+ PATH_RPCGEN
+ RPCGEN
+@@ -3723,7 +3726,7 @@ $as_echo "no" >&6; }
+ fi
+ fi
+
+-# LDAP SASL auth need libxml
++# LDAP SASL auth needs libxml and Kerberos
+ for ac_prog in xml2-config
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+@@ -3801,6 +3804,66 @@ _ACEOF
+ fi
+ fi
+ fi
++for ac_prog in krb5-config
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if test "${ac_cv_path_KRB5_CONFIG+set}" = set; then
++ $as_echo_n "(cached) " >&6
++else
++ case $KRB5_CONFIG in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_KRB5_CONFIG="$KRB5_CONFIG" # Let the user override the test with a path.
++ ;;
++ *)
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ ac_cv_path_KRB5_CONFIG="$as_dir/$ac_word$ac_exec_ext"
++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++IFS=$as_save_IFS
++
++ ;;
++esac
++fi
++KRB5_CONFIG=$ac_cv_path_KRB5_CONFIG
++if test -n "$KRB5_CONFIG"; then
++ { $as_echo "$as_me:$LINENO: result: $KRB5_CONFIG" >&5
++$as_echo "$KRB5_CONFIG" >&6; }
++else
++ { $as_echo "$as_me:$LINENO: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++ test -n "$KRB5_CONFIG" && break
++done
++test -n "$KRB5_CONFIG" || KRB5_CONFIG="no"
++
++{ $as_echo "$as_me:$LINENO: checking for Kerberos library" >&5
++$as_echo_n "checking for Kerberos library... " >&6; }
++if test "$KRB5_CONFIG" = "no"
++then
++ { $as_echo "$as_me:$LINENO: result: no" >&5
++$as_echo "no" >&6; }
++ HAVE_KRB5=0
++else
++ { $as_echo "$as_me:$LINENO: result: yes" >&5
++$as_echo "yes" >&6; }
++ HAVE_KRB5=1
++ KRB5_LIBS=`$KRB5_CONFIG --libs`
++ KRB5_FLAGS=`$KRB5_CONFIG --cflags`
++fi
+
+ #
+ # glibc/libc 6 new libraries
+@@ -5178,6 +5241,8 @@ fi
+
+
+
++
++
+ LDFLAGS="${AF_tmp_ldflags}"
+
+ #
+diff --git a/configure.in b/configure.in
+index f649a58..70b45e8 100644
+--- a/configure.in
++++ b/configure.in
+@@ -144,8 +144,9 @@ AF_CHECK_PROG(RPCGEN, rpcgen, , $searchpath)
+ #
+ AF_SLOPPY_MOUNT()
+
+-# LDAP SASL auth need libxml
++# LDAP SASL auth needs libxml and Kerberos
+ AF_CHECK_LIBXML()
++AF_CHECK_KRB5()
+
+ #
+ # glibc/libc 6 new libraries
+@@ -274,6 +275,8 @@ AC_SUBST(XML_LIBS)
+ AC_SUBST(SASL_FLAGS)
+ AC_SUBST(HAVE_SASL)
+ AC_SUBST(LIBSASL)
++AC_SUBST(KRB5_LIBS)
++AC_SUBST(KRB5_FLAGS)
+ LDFLAGS="${AF_tmp_ldflags}"
+
+ #
+diff --git a/modules/Makefile b/modules/Makefile
+index 13b3bd8..2389196 100644
+--- a/modules/Makefile
++++ b/modules/Makefile
+@@ -42,8 +42,8 @@ ifeq ($(LDAP), 1)
+ MODS += lookup_ldap.so
+ ifeq ($(SASL), 1)
+ SASL_OBJ = cyrus-sasl.o
+- LDAP_FLAGS += $(SASL_FLAGS) $(XML_FLAGS) -DLDAP_THREAD_SAFE
+- LIBLDAP += $(LIBSASL) $(XML_LIBS)
++ LDAP_FLAGS += $(SASL_FLAGS) $(XML_FLAGS) $(KRB5_FLAGS) -DLDAP_THREAD_SAFE
++ LIBLDAP += $(LIBSASL) $(XML_LIBS) $(KRB5_LIBS)
+ endif
+ endif
+
+--
+1.7.5.1
+
diff --git a/community/autofs/0002-autofs-5.0.5-remove-ERR_remove_state-openssl-call.patch b/community/autofs/0002-autofs-5.0.5-remove-ERR_remove_state-openssl-call.patch
new file mode 100644
index 000000000..e4e480e82
--- /dev/null
+++ b/community/autofs/0002-autofs-5.0.5-remove-ERR_remove_state-openssl-call.patch
@@ -0,0 +1,59 @@
+From 205c305922cdbded91ff8fadbaad7959bdb497bc Mon Sep 17 00:00:00 2001
+From: Ian Kent <raven@themaw.net>
+Date: Wed, 11 Aug 2010 09:33:09 +0800
+Subject: [PATCH 2/2] autofs-5.0.5 - remove ERR_remove_state() openssl call
+
+autofs should never have had to use ERR_remove_state() so remove that call.
+
+Lukas: Resolve a conflict in "CHANGELOG" that occured due to cherry
+picking Kerberos related patches from the 5.0.6 development branch.
+
+Conflicts:
+
+ CHANGELOG
+
+Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
+---
+ CHANGELOG | 4 ++++
+ modules/lookup_ldap.c | 12 +-----------
+ 2 files changed, 5 insertions(+), 11 deletions(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index e734cb3..1a20a81 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -1,3 +1,7 @@
++??/??/20?? autofs-5.0.6
++-----------------------
++- remove ERR_remove_state() openssl call.
++
+ 03/09/2009 autofs-5.0.5
+ -----------------------
+ - fix dumb libxml2 check
+diff --git a/modules/lookup_ldap.c b/modules/lookup_ldap.c
+index 2ecf5fe..1221c2c 100644
+--- a/modules/lookup_ldap.c
++++ b/modules/lookup_ldap.c
+@@ -168,18 +168,8 @@ int unbind_ldap_connection(unsigned logopt, LDAP *ldap, struct lookup_context *c
+ int rv;
+
+ #ifdef WITH_SASL
+- /*
+- * The OpenSSL library can't handle having its message and error
+- * string database loaded multiple times and segfaults if the
+- * TLS environment is not reset at the right times. As there
+- * is no ldap_stop_tls call in the openldap library we have
+- * to do the job ourselves, here and in lookup_done when the
+- * module is closed.
+- */
+- if (ctxt->use_tls == LDAP_TLS_RELEASE) {
+- ERR_remove_state(0);
++ if (ctxt->use_tls == LDAP_TLS_RELEASE)
+ ctxt->use_tls = LDAP_TLS_INIT;
+- }
+ autofs_sasl_unbind(ctxt);
+ #endif
+
+--
+1.7.5.1
+
diff --git a/community/autofs/PKGBUILD b/community/autofs/PKGBUILD
new file mode 100644
index 000000000..618933cfa
--- /dev/null
+++ b/community/autofs/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 51120 2011-07-05 13:23:33Z 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.6
+pkgrel=2
+pkgdesc='A kernel-based automounter for Linux.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://freshmeat.net/projects/autofs'
+license=('GPL2')
+depends=('libldap' 'libxml2' 'krb5')
+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"
+ "http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}-fix-ipv6-name-for-lookup-fix.patch"
+ 'autofs'
+ 'autofs.conf.d'
+ 'auto.master'
+ 'auto.misc')
+md5sums=('44cea7f711e2290a0b50fddeda079705'
+ '221bf50d6e496b22014a9a7b234fe556'
+ 'e307bf6d2638e46eeb916cf42fe029b2'
+ '47f597c870410055e0fdb66103daf928'
+ 'a6cefb591e77b31b79dbb7243646c96b'
+ 'd8a15ec9186c5c0b36e5cea1e2739e8a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i "s:SUBDIRS = lib daemon modules man samples:SUBDIRS = lib daemon modules man:" \
+ Makefile.rules
+
+ patch -p1 -i "../${pkgname}-${pkgver}-fix-ipv6-name-for-lookup-fix.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/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..dc3634f58
--- /dev/null
+++ b/community/autossh/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Ian Taylor <ian at lorf dot orgs>
+
+pkgname=autossh
+pkgver=1.4c
+pkgrel=1
+pkgdesc="Automatically restart SSH sessions and tunnels"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.harding.motd.ca/autossh/"
+license=('custom')
+depends=('openssh')
+source=("http://www.harding.motd.ca/autossh/$pkgname-$pkgver.tgz"
+ "LICENSE")
+md5sums=('26520eea934f296be0783dabe7fcfd28'
+ '5d65ce1eff3f2c72546a8343b18d67bf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ msg "Configuring"
+ ./configure --prefix=$pkgdir/usr --sysconfdir=/etc --localstatedir=/var
+
+ msg "Building"
+ make
+
+ msg "Creating package"
+ install -D -m755 autossh $pkgdir/usr/bin/autossh
+ install -D -m644 CHANGES $pkgdir/usr/share/doc/autossh/CHANGES
+ install -D -m644 README $pkgdir/usr/share/doc/autossh/README
+ install -D -m644 autossh.host $pkgdir/usr/share/autossh/examples/autossh.host
+ install -D -m644 rscreen $pkgdir/usr/share/autossh/examples/rscreen
+ install -D -m644 autossh.1 $pkgdir/usr/share/man/man1/autossh.1
+ install -D -m644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/avant-window-navigator/PKGBUILD b/community/avant-window-navigator/PKGBUILD
new file mode 100644
index 000000000..3813dd1c3
--- /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' 'mips64el')
+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..01a3fb809
--- /dev/null
+++ b/community/avifile/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 58655 2011-11-17 10:01:32Z spupykin $
+# 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=8
+pkgdesc="A library that allows you to read and write compressed AVI files"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('qt' 'sdl' 'freetype2' 'libpng' 'libjpeg'
+ 'libvorbis' 'xvidcore' 'libxxf86dga' 'libxi' 'libxv')
+makedepends=('lame' 'qt3' 'v4l-utils' 'chrpath')
+url="http://avifile.sourceforge.net"
+license=('GPL')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/avifile/$pkgname-0.7-$pkgver.tar.bz2"
+ 'gcc.patch'
+ 'videodev.patch')
+md5sums=('7da94802f120d1b69e04a13170dcd21d'
+ '588c3ce7bdebc1244f46ba56d8ef8a42'
+ '6cca050885afe85c2d98982f75f5e3b0')
+
+build() {
+ cd $pkgname-0.7-$pkgver
+
+ patch -Np1 <$srcdir/gcc.patch
+ patch -Np1 <$srcdir/videodev.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
+
+ cd $pkgdir/usr/bin
+ chrpath -d avibench avicap avicat avirec kv4lsetup avimake aviplay avitype avirecompress
+}
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/avifile/videodev.patch b/community/avifile/videodev.patch
new file mode 100644
index 000000000..0729c8ab9
--- /dev/null
+++ b/community/avifile/videodev.patch
@@ -0,0 +1,180 @@
+diff -wbBur avifile-0.7-0.7.45/acinclude.m4 avifile-0.7-0.7.45.my/acinclude.m4
+--- avifile-0.7-0.7.45/acinclude.m4 2006-03-06 12:11:19.000000000 +0300
++++ avifile-0.7-0.7.45.my/acinclude.m4 2011-11-17 13:20:52.000000000 +0400
+@@ -1158,7 +1158,7 @@
+ AC_ARG_ENABLE(v4l, [ --enable-v4l support v4l video interface. (autodetect)],
+ [], enable_v4l=yes)
+ if test x$enable_v4l = xyes; then
+- AC_CHECK_HEADER([linux/videodev.h], [], [ enable_v4l=no; ])
++ AC_CHECK_HEADER([libv4l1-videodev.h], [], [ enable_v4l=no; ])
+ fi
+
+ if test x$enable_v4l = xyes; then
+diff -wbBur avifile-0.7-0.7.45/configure avifile-0.7-0.7.45.my/configure
+--- avifile-0.7-0.7.45/configure 2006-03-06 12:11:32.000000000 +0300
++++ avifile-0.7-0.7.45.my/configure 2011-11-17 13:20:47.000000000 +0400
+@@ -27667,8 +27667,8 @@
+ fi;
+ if test x$enable_v4l = xyes; then
+ if test "${ac_cv_header_linux_videodev_h+set}" = set; then
+- echo "$as_me:$LINENO: checking for linux/videodev.h" >&5
+-echo $ECHO_N "checking for linux/videodev.h... $ECHO_C" >&6
++ echo "$as_me:$LINENO: checking for libv4l1-videodev.h" >&5
++echo $ECHO_N "checking for libv4l1-videodev.h... $ECHO_C" >&6
+ if test "${ac_cv_header_linux_videodev_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ fi
+@@ -27676,8 +27676,8 @@
+ echo "${ECHO_T}$ac_cv_header_linux_videodev_h" >&6
+ else
+ # Is the header compilable?
+-echo "$as_me:$LINENO: checking linux/videodev.h usability" >&5
+-echo $ECHO_N "checking linux/videodev.h usability... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking libv4l1-videodev.h usability" >&5
++echo $ECHO_N "checking libv4l1-videodev.h usability... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -27685,7 +27685,7 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ $ac_includes_default
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+@@ -27720,15 +27720,15 @@
+ echo "${ECHO_T}$ac_header_compiler" >&6
+
+ # Is the header present?
+-echo "$as_me:$LINENO: checking linux/videodev.h presence" >&5
+-echo $ECHO_N "checking linux/videodev.h presence... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking libv4l1-videodev.h presence" >&5
++echo $ECHO_N "checking libv4l1-videodev.h presence... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ _ACEOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+@@ -27762,25 +27762,25 @@
+ # So? What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: linux/videodev.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: proceeding with the compiler's result" >&5
+-echo "$as_me: WARNING: linux/videodev.h: proceeding with the compiler's result" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: proceeding with the compiler's result" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: linux/videodev.h: present but cannot be compiled" >&2;}
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: linux/videodev.h: check for missing prerequisite headers?" >&2;}
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: see the Autoconf documentation" >&5
+-echo "$as_me: WARNING: linux/videodev.h: see the Autoconf documentation" >&2;}
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: section \"Present But Cannot Be Compiled\"" >&5
+-echo "$as_me: WARNING: linux/videodev.h: section \"Present But Cannot Be Compiled\"" >&2;}
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: linux/videodev.h: proceeding with the preprocessor's result" >&2;}
+- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: in the future, the compiler will take precedence" >&5
+-echo "$as_me: WARNING: linux/videodev.h: in the future, the compiler will take precedence" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: present but cannot be compiled" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: present but cannot be compiled" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: check for missing prerequisite headers?" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: see the Autoconf documentation" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: see the Autoconf documentation" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: section \"Present But Cannot Be Compiled\"" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: section \"Present But Cannot Be Compiled\"" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: proceeding with the preprocessor's result" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: in the future, the compiler will take precedence" >&5
++echo "$as_me: WARNING: libv4l1-videodev.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+ ## ------------------------------------------ ##
+@@ -27791,8 +27791,8 @@
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ esac
+-echo "$as_me:$LINENO: checking for linux/videodev.h" >&5
+-echo $ECHO_N "checking for linux/videodev.h... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking for libv4l1-videodev.h" >&5
++echo $ECHO_N "checking for libv4l1-videodev.h... $ECHO_C" >&6
+ if test "${ac_cv_header_linux_videodev_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+diff -wbBur avifile-0.7-0.7.45/ffmpeg/libavformat/grab.c avifile-0.7-0.7.45.my/ffmpeg/libavformat/grab.c
+--- avifile-0.7-0.7.45/ffmpeg/libavformat/grab.c 2006-02-04 11:57:34.000000000 +0300
++++ avifile-0.7-0.7.45.my/ffmpeg/libavformat/grab.c 2011-11-17 13:21:12.000000000 +0400
+@@ -23,7 +23,7 @@
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #define _LINUX_TIME_H 1
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <time.h>
+
+ typedef struct {
+diff -wbBur avifile-0.7-0.7.45/ffmpeg/libavformat/v4l2.c avifile-0.7-0.7.45.my/ffmpeg/libavformat/v4l2.c
+--- avifile-0.7-0.7.45/ffmpeg/libavformat/v4l2.c 2006-03-02 00:36:52.000000000 +0300
++++ avifile-0.7-0.7.45.my/ffmpeg/libavformat/v4l2.c 2011-11-17 13:29:40.000000000 +0400
+@@ -31,7 +31,8 @@
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #define _LINUX_TIME_H 1
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
++#include <linux/videodev2.h>
+ #include <time.h>
+
+ static const int desired_video_buffers = 256;
+diff -wbBur avifile-0.7-0.7.45/m4/v4l.m4 avifile-0.7-0.7.45.my/m4/v4l.m4
+--- avifile-0.7-0.7.45/m4/v4l.m4 2004-02-18 23:53:58.000000000 +0300
++++ avifile-0.7-0.7.45.my/m4/v4l.m4 2011-11-17 13:20:56.000000000 +0400
+@@ -10,7 +10,7 @@
+ AC_ARG_ENABLE(v4l, [ --enable-v4l support v4l video interface. (autodetect)],
+ [], enable_v4l=yes)
+ if test x$enable_v4l = xyes; then
+- AC_CHECK_HEADER([linux/videodev.h], [], [ enable_v4l=no; ])
++ AC_CHECK_HEADER([libv4l1-videodev.h], [], [ enable_v4l=no; ])
+ fi
+
+ if test x$enable_v4l = xyes; then
+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 2011-11-17 13:29:34.000000000 +0400
+@@ -39,7 +39,7 @@
+
+ /* Necessary to prevent collisions between <linux/time.h> and <sys/time.h> when V4L2 is installed. */
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+
+ #ifndef X_DISPLAY_MISSING
+ #include <X11/Xlib.h>
+diff -wbBur avifile-0.7-0.7.45/samples/qtvidcap/v4lxif.h avifile-0.7-0.7.45.my/samples/qtvidcap/v4lxif.h
+--- avifile-0.7-0.7.45/samples/qtvidcap/v4lxif.h 2003-11-14 19:42:04.000000000 +0300
++++ avifile-0.7-0.7.45.my/samples/qtvidcap/v4lxif.h 2011-11-17 13:35:57.000000000 +0400
+@@ -32,7 +32,8 @@
+
+ /* Necessary to prevent collisions between <linux/time.h> and <sys/time.h> when V4L2 is installed. */
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
++#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
+
+ #define V4L_DEVICE "/dev/video"
+ #define V4L_VBI_DEVICE "/dev/vbi"
diff --git a/community/avrdude/PKGBUILD b/community/avrdude/PKGBUILD
new file mode 100644
index 000000000..6aee519ea
--- /dev/null
+++ b/community/avrdude/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60059 2011-12-04 15:21:41Z jelle $
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=avrdude
+pkgver=5.11.1
+pkgrel=1
+pkgdesc="Download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nongnu.org/avrdude/"
+license=('GPL')
+depends=('libusb-compat' 'readline')
+source=(http://download.savannah.gnu.org/releases/avrdude/${pkgname}-${pkgver}.tar.gz{,.sig})
+md5sums=('3a43e288cb32916703b6945e3f260df9'
+ '0c23b005d4090aef4e081476aabc1958')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --mandir=/usr/share/man \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/awn-extras-applets/PKGBUILD b/community/awn-extras-applets/PKGBUILD
new file mode 100644
index 000000000..4b29d8403
--- /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' 'mips64el')
+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..14dbd8691
--- /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' 'mips64el')
+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/bacula/PKGBUILD b/community/bacula/PKGBUILD
new file mode 100644
index 000000000..669385f72
--- /dev/null
+++ b/community/bacula/PKGBUILD
@@ -0,0 +1,68 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: Calogero Lo Leggio <kalos@autistici.org>
+# Contributor: Matias Hernandez <msdark@archlinux.cl>
+
+pkgname=bacula
+pkgver=5.2.2
+pkgrel=1
+pkgdesc="An advanced backup tool with network and tape changer support (MySQL backend)"
+arch=(mips64el)
+url="http://www.${pkgname}.org"
+license=("GPL")
+depends=("libmysqlclient")
+makedepends=("qt" "wxgtk" "gtk2")
+optdepends=("qt: for bat"
+ "wxgtk: for bwx console"
+ "gtk2: for tray monitor")
+options=(!buildflags !libtool)
+conflicts=("${pkgname}-sqlite" "${pkgname}-postgresql" "${pkgname}-client")
+backup=("etc/${pkgname}/bconsole.conf"
+ "etc/${pkgname}/${pkgname}-dir.conf"
+ "etc/${pkgname}/${pkgname}-fd.conf"
+ "etc/${pkgname}/${pkgname}-sd.conf")
+install="${pkgname}.install"
+source=(http://downloads.sourceforge.net/project/bacula/bacula/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ ${pkgname}-sd.rc.d
+ ${pkgname}-fd.rc.d
+ ${pkgname}-dir.rc.d)
+md5sums=('227b88f56ae085da8f48823b220d4c87'
+ 'e7be4c9fb3c7ce334f9ee24d71652d3e'
+ 'a9a070a862e9cf39ae4bc374409c721d'
+ '55619ae3094c698541a3bfedc87bdb48')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Build
+ ./configure --prefix=/usr \
+ --enable-build-dird --enable-build-stored --enable-smartalloc \
+ --enable-bat --enable-tray-monitor --enable-bwx-console \
+ --with-mysql --without-openssl \
+ --with-dir-user=${pkgname} --with-dir-group=${pkgname} \
+ --with-sd-user=${pkgname} --with-sd-group=${pkgname} \
+ --sysconfdir=/etc/${pkgname} --with-scriptdir=/etc/${pkgname}/scripts \
+ --with-working-dir=/var/cache/${pkgname}/working \
+ --with-subsys-dir=/var/cache/${pkgname}/working \
+ --with-archivedir=/var/cache/${pkgname}/archive
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # Permissions
+ chmod a+x ${pkgdir}/etc/${pkgname}/scripts/{update_${pkgname}_tables,delete_catalog_backup,update_mysql_tables,make_catalog_backup,bconsole}
+
+ # Daemons
+ mkdir -p ${pkgdir}/etc/rc.d/
+ install -Dm755 ${srcdir}/*.rc.d ${pkgdir}/etc/rc.d/
+
+ # Logs
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/scripts/logrotate ${pkgdir}/etc/logrotate.d/${pkgname}
+ sed -i "s|/var/cache/${pkgname}/working/log|/var/log/${pkgname}.log|g" ${pkgdir}/etc/{${pkgname}/${pkgname}-dir.conf,logrotate.d/${pkgname}}
+}
+
diff --git a/community/bacula/bacula-dir.rc.d b/community/bacula/bacula-dir.rc.d
new file mode 100644
index 000000000..a5a103dca
--- /dev/null
+++ b/community/bacula/bacula-dir.rc.d
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/bacula ] || mkdir -p /var/run/bacula
+ chown bacula:bacula /var/run/bacula
+
+ stat_busy "Starting Bacula Director Daemon"
+ /usr/sbin/bacula-dir
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon bacula-dir
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Bacula Director Daemon"
+ killall bacula-dir > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon bacula-dir
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/bacula/bacula-fd.rc.d b/community/bacula/bacula-fd.rc.d
new file mode 100644
index 000000000..3817a0fed
--- /dev/null
+++ b/community/bacula/bacula-fd.rc.d
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/bacula ] || mkdir -p /var/run/bacula
+ chown bacula:bacula /var/run/bacula
+
+ stat_busy "Starting Bacula File Daemon"
+ /usr/sbin/bacula-fd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon bacula-fd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Bacula File Daemon"
+ killall bacula-fd > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon bacula-fd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/bacula/bacula-sd.rc.d b/community/bacula/bacula-sd.rc.d
new file mode 100644
index 000000000..96f200916
--- /dev/null
+++ b/community/bacula/bacula-sd.rc.d
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/bacula ] || mkdir -p /var/run/bacula
+ chown bacula:bacula /var/run/bacula
+
+ stat_busy "Starting Bacula Storage Daemon"
+ /usr/sbin/bacula-sd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon bacula-sd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Bacula Storage Daemon"
+ killall bacula-sd > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon bacula-sd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/bacula/bacula.install b/community/bacula/bacula.install
new file mode 100644
index 000000000..4d061ddfa
--- /dev/null
+++ b/community/bacula/bacula.install
@@ -0,0 +1,49 @@
+post_install() {
+ if [ -z "`grep '^bacula::' /etc/group`" ]; then
+ echo "Adding bacula system group... "
+ groupadd -g 77 bacula >& /dev/null
+ fi
+
+ if [ -z "`grep '^bacula::' /etc/passwd`" ]; then
+ echo "Adding bacula system user... "
+ useradd -u 77 -c "Bacula Daemon" -d / -g bacula -s /bin/false bacula
+ fi
+
+ echo "Locking Bacula User Account..."
+ passwd -l bacula &>/dev/null
+
+ post_upgrade
+}
+
+post_upgrade() {
+
+cat << EOM
+
+Note:
+==> Please don't forget to config your MySQL database for the program.
+==>
+==> 1. If you have not init your MySQL DB yet, run mysql_install_db.
+==> 2. Run /etc/bacula/scripts/grant_mysql_privileges. This script creates database user
+==> 'bacula' with unrestricted rights to the bacula's database. The
+==> script create user is without any password. You may want to edit
+==> the script before run it.
+==> 3. Run /etc/bacula/scripts/create_mysql_database to create the Database
+==> Bacula.
+==> 4. Run /etc/bacula/scripts/make_mysql_tables to create tables used by bacula.
+
+==> The archive directory is: /var/cache/bacula
+
+==> Bacula's offical website : http://www.bacula.org
+
+EOM
+}
+
+post_remove() {
+ echo "Removing Bacula's system users..."
+ userdel bacula &> /dev/null
+ groupdel bacula &> /dev/null
+}
+
+op=$1
+shift
+[ "$(type -t "$op")" = "function" ] && $op "$@"
diff --git a/community/balsa/PKGBUILD b/community/balsa/PKGBUILD
new file mode 100644
index 000000000..da1d77a3f
--- /dev/null
+++ b/community/balsa/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 51383 2011-07-08 03:41:33Z bfanella $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=balsa
+pkgver=2.4.10
+pkgrel=1
+pkgdesc="An e-mail client for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url='http://pawsa.fedorapeople.org/balsa/'
+depends=('gmime' 'libwebkit' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell' 'gnome-icon-theme')
+makedepends=('perlxml' 'gnome-doc-utils' 'intltool' 'namcap')
+install=balsa.install
+source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('fa2b7cb9d248912ac2e3dcc08cd6aa5b')
+
+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 \
+ --with-html-widget=webkit
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
+}
diff --git a/community/balsa/balsa.install b/community/balsa/balsa.install
new file mode 100644
index 000000000..cb9a7a5c3
--- /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..f0b9f4fc1
--- /dev/null
+++ b/community/barrage/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 54560 2011-08-20 17:29:58Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=barrage
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="A violent point-and-click shooting game with nice effects"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://lgames.sourceforge.net/index.php?project=Barrage"
+license=('GPL')
+depends=('hicolor-icon-theme' 'sdl_mixer')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/lgames/$pkgname-$pkgver.tar.gz)
+sha256sums=('ad74e049dfded3bca28b8dc1c5870408cfad9e024b35cc5b501ba90486d9af25')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/barrage/barrage.changelog b/community/barrage/barrage.changelog
new file mode 100644
index 000000000..62e407871
--- /dev/null
+++ b/community/barrage/barrage.changelog
@@ -0,0 +1,2 @@
+2011-08-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * barrage 1.0.4-1
diff --git a/community/barrage/barrage.install b/community/barrage/barrage.install
new file mode 100644
index 000000000..b711352cb
--- /dev/null
+++ b/community/barrage/barrage.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/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..9440101d6
--- /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 'mips64el')
+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..24df597dd
--- /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 'mips64el')
+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..61493b795
--- /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' 'mips64el')
+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..b0d67aaad
--- /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' 'mips64el')
+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..5d5187d25
--- /dev/null
+++ b/community/beye/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 58672 2011-11-17 13:41:21Z 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=2
+pkgdesc="Binary viewer"
+arch=(i686 x86_64 'mips64el')
+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 $srcdir/biew-${_lver}
+ CFLAGS="$CFLAGS -mmmx -msse" ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/biew-${_lver}
+ make DESTDIR=$pkgdir install
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/bibletime/PKGBUILD b/community/bibletime/PKGBUILD
new file mode 100644
index 000000000..f5b061581
--- /dev/null
+++ b/community/bibletime/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60250 2011-12-08 17:32:00Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Tobias T. <OldShatterhand at gmx-topmail dot de>
+pkgname=bibletime
+pkgver=2.9.0
+pkgrel=1
+pkgdesc="Bible software that uses the Sword Engine for KDE4"
+arch=('x86_64' 'i686')
+url="http://www.bibletime.info/"
+license=('GPL2')
+depends=('qt' 'sword' 'openssl' 'clucene')
+makedepends=('cmake' 'boost-libs')
+install=$pkgname.install
+source=("http://sourceforge.net/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('0190b64de5892fc5f45e9a3d46bb29d6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/bibletime/bibletime.install b/community/bibletime/bibletime.install
new file mode 100644
index 000000000..ad97d7bab
--- /dev/null
+++ b/community/bibletime/bibletime.install
@@ -0,0 +1,13 @@
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/bin2iso/PKGBUILD b/community/bin2iso/PKGBUILD
new file mode 100644
index 000000000..cba38728a
--- /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' 'mips64el')
+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..d2899c826
--- /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 'mips64el')
+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..e7cdafe4b
--- /dev/null
+++ b/community/binutils-avr/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 58711 2011-11-17 21:06:00Z jelle $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: danst0 <danst0@west.de>
+
+pkgname=binutils-avr
+pkgver=2.21.1
+pkgrel=2
+pkgdesc="A set of programs to assemble and manipulate binary and object files for the avr architecture"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+depends=('glibc>=2.12-5' 'zlib')
+options=('!libtool' '!distcc' '!ccache')
+source=(http://ftp.gnu.org/gnu/${pkgname/-avr}/${pkgname/-avr}-${pkgver}.tar.bz2)
+md5sums=('bde820eac53fa3a8d8696667418557ad')
+
+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/bird/PKGBUILD b/community/bird/PKGBUILD
new file mode 100644
index 000000000..ca55214c5
--- /dev/null
+++ b/community/bird/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgbase=bird
+pkgname=('bird' 'bird6')
+pkgver=1.3.4
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+url='http://bird.network.cz/'
+license=('GPL2')
+depends=('readline' 'ncurses')
+source=("ftp://bird.network.cz/pub/bird/${pkgname}-${pkgver}.tar.gz"
+ 'bird.rc'
+ 'bird.conf'
+ 'bird.service'
+ 'bird6.service')
+md5sums=('20f5aa9d3f853d2c922438dc9d922ecc'
+ '1a4b98756d64f52333a83eff2e95d233'
+ '25241a4d7ef639506e0080431b2c1690'
+ 'e82a0519dca0b289685fda44787f5911'
+ 'c32e7f6cf1be6ed6f9aa98feea25176d')
+
+build() {
+ # different directory to build seprate version of bird
+ cp -a ${pkgbase}-${pkgver} ${pkgbase}6-${pkgver}
+
+ # build classic bird
+ cd ${pkgbase}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+
+ # build ipv6 bird
+ cd "$srcdir/${pkgbase}6-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-ipv6
+ make
+}
+
+package_bird () {
+ pkgdesc='RIP, OSPFv2 and BGP daemon'
+ backup=('etc/bird.conf')
+
+ # iniscripts files
+ install -D -m 755 bird.rc "${pkgdir}/etc/rc.d/bird"
+ install -D -m 644 bird.conf "${pkgdir}/etc/conf.d/bird"
+ # systemd file
+ install -D -m 644 bird.service "${pkgdir}/lib/systemd/system/bird.service"
+
+ cd ${pkgname}-${pkgver}
+ make prefix="${pkgdir}/usr" sysconfdir="${pkgdir}/etc" localstatedir="${pkgdir}/var" install
+ make docdir="${pkgdir}/usr/share/doc/${pkgname}" install-docs
+
+ # no /var inside pkg
+ rm -r "$pkgdir/var"
+}
+
+package_bird6 () {
+ pkgdesc='RIP, OSPFv3, RADV and BGP daemon (ipv6 version)'
+ backup=('etc/bird6.conf')
+
+ # iniscripts files
+ install -D -m 755 bird.rc "${pkgdir}/etc/rc.d/bird6"
+ install -D -m 644 bird.conf "${pkgdir}/etc/conf.d/bird6"
+ sed -ri 's/bird/bird6/' "${pkgdir}/etc/rc.d/bird6"
+ # systemd config file
+ install -D -m 644 bird6.service "${pkgdir}/lib/systemd/system/bird6.service"
+
+ cd ${pkgname}-${pkgver}
+ make prefix="${pkgdir}/usr" sysconfdir="${pkgdir}/etc" localstatedir="${pkgdir}/var" install
+ make docdir="${pkgdir}/usr/share/doc/${pkgname}" install-docs
+
+ # no /var inside pkg
+ rm -r "$pkgdir/var"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/bird/bird.conf b/community/bird/bird.conf
new file mode 100644
index 000000000..88276d8cf
--- /dev/null
+++ b/community/bird/bird.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+DAEMON_OPTS='-u nobody -g nobody'
diff --git a/community/bird/bird.rc b/community/bird/bird.rc
new file mode 100644
index 000000000..95fe65217
--- /dev/null
+++ b/community/bird/bird.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+NAME=bird
+DAEMON=/usr/sbin/bird
+PID=$(pidof -o %PPID $DAEMON)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping $NAME daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh noet:
diff --git a/community/bird/bird.service b/community/bird/bird.service
new file mode 100644
index 000000000..ebdcd6078
--- /dev/null
+++ b/community/bird/bird.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=BIRD routing daemon
+
+[Service]
+ExecStart=/usr/sbin/bird
+ExecReload=/bin/sh -c "echo configure | /usr/sbin/birdc"
+ExecStop=/bin/sh -c "echo down | /usr/sbin/birdc"
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/bird/bird6.service b/community/bird/bird6.service
new file mode 100644
index 000000000..e4b824ee2
--- /dev/null
+++ b/community/bird/bird6.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=BIRD6 routing daemon
+
+[Service]
+ExecStart=/usr/sbin/bird6
+ExecReload=/bin/sh -c "echo configure | /usr/sbin/birdc6"
+ExecStop=/bin/sh -c "echo down | /usr/sbin/birdc6"
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/blackbox/PKGBUILD b/community/blackbox/PKGBUILD
new file mode 100644
index 000000000..036a2ffff
--- /dev/null
+++ b/community/blackbox/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58674 2011-11-17 13:44:24Z spupykin $
+# 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=10
+pkgdesc="A window manager for X11"
+url="http://blackboxwm.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gcc-libs' 'libxft' 'libxext' 'libx11' 'libxt')
+license=('MIT')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/blackboxwm/$pkgname-$pkgver.tar.gz
+ gcc4.3.patch
+ bbdock.patch
+ bsetbg-feh.patch
+ textpropertytostring-unconditional.patch)
+md5sums=('2d173b95ca5e64ef478c6a5d2deee9df'
+ 'bc7a1335d77cdeb6f85cba4d01e68e63'
+ '69c5a5e981b087b2d8267cab996b48dd'
+ 'e7fb0d5bfd95820c0194ec73df66dadc'
+ '3b92ad246f07126dd55ae9634d6e875e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i ../gcc4.3.patch
+ patch -Np0 -i ../bbdock.patch
+ patch -Np0 -i ../bsetbg-feh.patch
+ patch -Np1 -i ../textpropertytostring-unconditional.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 LICENSE $pkgdir/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/blackbox/textpropertytostring-unconditional.patch b/community/blackbox/textpropertytostring-unconditional.patch
new file mode 100644
index 000000000..ed320388a
--- /dev/null
+++ b/community/blackbox/textpropertytostring-unconditional.patch
@@ -0,0 +1,28 @@
+Description: Declare bt::textPropertyToString unconditionally.
+Author: Jakub Wilk <jwilk@debian.org>
+Forwarded: no
+Bug-Debian: http://bugs.debian.org/614468
+Last-Update: 2011-03-12
+
+--- a/lib/Util.hh
++++ b/lib/Util.hh
+@@ -25,6 +25,8 @@
+ #ifndef __Util_hh
+ #define __Util_hh
+
++#include <X11/Xutil.h>
++
+ #include <limits.h>
+ #include <string>
+
+@@ -94,10 +96,8 @@
+
+ std::string tolower(const std::string &string);
+
+-#ifdef _XUTIL_H_
+ std::string textPropertyToString(::Display *display,
+ ::XTextProperty& text_prop);
+-#endif
+
+ } // namespace bt
+
diff --git a/community/bless/PKGBUILD b/community/bless/PKGBUILD
new file mode 100644
index 000000000..87a3034e9
--- /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' 'mips64el')
+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..05c7119e4
--- /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.9c
+arch=('x86_64' 'i686' 'mips64el')
+pkgrel=1
+pkgdesc="A beach ball game with blobs of goo"
+url="http://sourceforge.net/projects/blobby/"
+license=('GPL')
+depends=('sdl' 'physfs' 'libgl')
+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=('d3a6d185c4acd1c5eddf0ce46b3f55bb'
+ '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..7ef622c93
--- /dev/null
+++ b/community/blueman/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 59799 2011-11-30 12:25:12Z spupykin $
+# Maintainer : Ionut Biru <ibiru@archlinux.org
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=blueman
+pkgver=1.23
+pkgrel=2
+pkgdesc="GTK+ bluetooth manager"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'libpulse')
+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)
+md5sums=('f0bee59589f4c23e35bf08c2ef8acaef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export PYTHON=python2
+ for file in apps/blueman*; do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+ sed -i 's|"blueman-tray"|"blueman"|' blueman/plugins/applet/StatusIcon.py
+
+ [ -f Makefile ] || ./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/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..51a16900e
--- /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' 'mips64el')
+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..21d94a1da
--- /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' 'mips64el')
+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/bonnie++/PKGBUILD b/community/bonnie++/PKGBUILD
new file mode 100644
index 000000000..f787b68ee
--- /dev/null
+++ b/community/bonnie++/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: jelle van der Waa <jelle@vdwaa.nl>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=bonnie++
+pkgver=1.03e
+pkgrel=5
+pkgdesc="Based on the Bonnie hard drive benchmark by Tim Bray"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.coker.com.au/bonnie++/"
+license=('GPL')
+depends=('perl')
+source=(http://www.coker.com.au/bonnie++/$pkgname-$pkgver.tgz)
+sha256sums=('cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ sed -i "s:CFLAGS=-O2 -DNDEBUG \$(WFLAGS) \$(MORECFLAGS):CFLAGS=${CFLAGS}:" Makefile
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+ make prefix="${pkgdir}/usr" install
+ install -d $pkgdir/usr/share/doc/bonnie++
+ install -Dm644 $srcdir/$pkgname-$pkgver/readme.html $pkgdir/usr/share/doc/bonnie++/readme.html
+}
+
diff --git a/community/box2d/PKGBUILD b/community/box2d/PKGBUILD
new file mode 100644
index 000000000..64d037453
--- /dev/null
+++ b/community/box2d/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 55963 2011-09-27 03:30:57Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=box2d
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="2D rigid body simulation library for games"
+url="http://www.box2d.org/"
+license=('zlib')
+arch=('i686' 'x86_64' 'mips64el')
+#depends=('freeglut')
+makedepends=('cmake')
+optdepends=()
+source=(http://box2d.googlecode.com/files/Box2D_v${pkgver}.zip)
+md5sums=('9e9d32a34fb5554c47f0f9cade0fa611')
+
+build() {
+ cd ${srcdir}/Box2D_v${pkgver}
+
+ 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}/build
+
+ make DESTDIR=${pkgdir} install
+
+ mkdir -p ${pkgdir}/usr/share/doc/box2d/
+ cp -r ${srcdir}/Box2D_v${pkgver}/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}/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..c625183c3
--- /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' 'mips64el')
+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..25ed02f70
--- /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' 'mips64el')
+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..9a8f86538
--- /dev/null
+++ b/community/btanks/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 59272 2011-11-22 09:39:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Nick B <Shirakawasuna at gmail _dot_ com>
+
+pkgname=btanks
+pkgver=0.9.8083
+pkgrel=3
+pkgdesc="Fast 2d tank arcade game with multiplayer and split-screen modes."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://btanks.sourceforge.net"
+license=('GPL')
+depends=('expat' 'libgl' 'libsigc++2.0' 'libvorbis' 'lua' 'openal' 'sdl' 'sdl_image'
+ 'smpeg' "btanks-data=$pkgver")
+makedepends=('scons' 'chrpath' 'mesa')
+source=(http://downloads.sourceforge.net/btanks/btanks-$pkgver.tar.bz2
+ btanks_desktop
+ btanks_script
+ bted_script
+ gcc-4.6.patch)
+install=btanks.install
+md5sums=('49cb95c0eec47d3436c4fdf65e7c9d12'
+ 'a2ddeb1e79dff8d3fd702984c8d3aab5'
+ '07657cfa71b1de1d008cc5e3ade9749b'
+ '91a61c0f581ea27281bdaecb7a3cd58b'
+ '173f0ffe46bb1bab2c8aa240fe5331f3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/gcc-4.6.patch
+ python2 engine/sl08/sl08.py >engine/sl08/sl08.h
+ scons
+
+ mkdir -p $pkgdir/usr/share/btanks
+ cp *.so btanks bted $pkgdir/usr/share/btanks/
+
+ # Install script
+ install -D -m755 $srcdir/bted_script $pkgdir/usr/bin/bted
+ install -D -m755 $srcdir/btanks_script $pkgdir/usr/bin/btanks
+
+ # Install desktop file
+ install -D -m644 $srcdir/btanks_desktop $pkgdir/usr/share/applications/btanks.desktop
+
+ # Install icon
+ install -D -m644 $srcdir/$pkgname-$pkgver/data/tiles/icon.png $pkgdir/usr/share/pixmaps/btanks.png
+
+ # 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/
+
+ ln -s /usr/bin/btanks-bin ./btanks
+ ln -s /usr/bin/bted-bin ./bted
+
+ ls -1 $pkgdir/usr/lib/btanks/ | while read A; do
+ ln -s /usr/lib/btanks/$A ./$A
+ 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..f9ac8fce7
--- /dev/null
+++ b/community/btanks/btanks.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo "In order to be able to change game preferences, you must be in the 'games' group."
+}
+
+post_upgrade() {
+ echo "In order to be able to change game preferences, you must be in the 'games' group."
+}
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/btanks/gcc-4.6.patch b/community/btanks/gcc-4.6.patch
new file mode 100644
index 000000000..d371abd53
--- /dev/null
+++ b/community/btanks/gcc-4.6.patch
@@ -0,0 +1,26 @@
+From: Ansgar Burchardt <ansgar@debian.org>
+Bug-Debian: http://bugs.debian.org/624916
+Subject: Fix FTBFS with gcc-4.6
+
+--- btanks-0.9.8083.orig/engine/sl08/sl08.py
++++ btanks-0.9.8083/engine/sl08/sl08.py
+@@ -152,8 +152,8 @@ class Generator(object):
+ typedef base_signalXXX %s signal_type;
+ typedef return_type (object_type::*func_t) %s;
+
+- inline slotXXX () : object(NULL), func(NULL) {}
+- inline slotXXX(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {}
++ inline slotXXX () : object(0), func(0) {}
++ inline slotXXX(object_type *object, func_t func, signal_type * signal = 0) : object(object), func(func) {}
+
+ inline void assign(object_type *o, func_t f) { object = o; func = f; }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); }
+@@ -187,7 +187,7 @@ class Generator(object):
+ typedef base_signalXXX %s signal_type;
+ typedef void (object_type::*func_t) %s ;
+
+- inline slotXXX () : object(NULL), func(NULL) {}
++ inline slotXXX () : object(0), func(0) {}
+ inline slotXXX (object_type *object, func_t func) : object(object), func(func) {}
+ inline void assign(object_type *o, func_t f) { object = o; func = f; }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
diff --git a/community/bti/PKGBUILD b/community/bti/PKGBUILD
new file mode 100644
index 000000000..a89339b72
--- /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=031
+pkgrel=1
+pkgdesc='Console client for Twitter and identi.ca'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://gregkh.github.com/bti/'
+license=('GPL')
+depends=('pcre' 'libxml2' 'curl' 'liboauth')
+
+md5sums=('9f79fcd398fe1df5bdffeb28b42f3433')
+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..48f49d067
--- /dev/null
+++ b/community/bullet/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 55766 2011-09-19 23:58:08Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgbase=bullet
+pkgname=('bullet' 'bullet-docs')
+pkgver=2.79
+pkgrel=1
+pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation"
+arch=('i686' 'x86_64' 'mips64el')
+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}-rev2440.tgz \
+ ${pkgbase}.pc)
+md5sums=('29d6f43964d8494f0366cd69e4883dd1'
+ '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..371abe0e0
--- /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' 'mips64el')
+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..8d34c17d3
--- /dev/null
+++ b/community/busybox/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56916 2011-10-16 17:30:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jens Pranaitis <jens@jenux.homelinux.org>
+
+pkgname=busybox
+pkgver=1.19.2
+pkgrel=3
+pkgdesc="Utilities for rescue and embedded systems"
+arch=("i686" "x86_64" 'mips64el')
+url="http://busybox.net"
+license=('GPL')
+makedepends=("make" "gcc" "sed" "ncurses")
+source=($url/downloads/$pkgname-$pkgver.tar.bz2
+ config)
+install=busybox.install
+md5sums=('50267054345f1a0b77fe65f6e0e5ba29'
+ 'edd5c66c974ccc1b0030fd00beaa1b02')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cp $srcdir/config .config
+ # if you want to run menuconfig uncomment the following line:
+ # make menuconfig ; return 1
+ sed -i '1,2i#define __packed __attribute__((packed))' miscutils/ubi_tools.c
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -Dm755 busybox $pkgdir/bin/busybox
+}
diff --git a/community/busybox/busybox.install b/community/busybox/busybox.install
new file mode 100644
index 000000000..233b70799
--- /dev/null
+++ b/community/busybox/busybox.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo "You may want to do setuid on /bin/busybox"
+ echo " chmod 4555 /bin/busybox"
+}
+
+pre_upgrade() {
+ stat -c %a /bin/busybox >tmp/busybox.upgrade.script
+}
+
+post_upgrade() {
+ [ -f tmp/busybox.upgrade.script ] && chmod `cat tmp/busybox.upgrade.script` /bin/busybox
+ rm -f tmp/busybox.upgrade.script
+}
diff --git a/community/busybox/config b/community/busybox/config
new file mode 100644
index 000000000..493a766d5
--- /dev/null
+++ b/community/busybox/config
@@ -0,0 +1,1013 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.19.2
+# Wed Sep 7 13:01:26 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_UTMP=y
+CONFIG_FEATURE_WTMP=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_FEATURE_SYSTEMD is not set
+CONFIG_FEATURE_RTMINMAX=y
+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_REVERSE_SEARCH 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_FEATURE_SKIP_ROOTFS=y
+# 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 is not set
+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_ID=y
+CONFIG_GROUPS=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+CONFIG_WHO=y
+CONFIG_USERS=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=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=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=y
+CONFIG_SHA512SUM=y
+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_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_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_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_REGEX_SEARCH is not set
+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_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_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=y
+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
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=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=y
+
+#
+# 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=y
+CONFIG_FEATURE_BLKID_TYPE=y
+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 is not set
+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=y
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+# CONFIG_MKFS_REISER is not set
+CONFIG_MKFS_VFAT=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+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=y
+CONFIG_LSUSB=y
+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=y
+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=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
+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=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY 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_ASK_TERMINAL is not set
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+CONFIG_SETSERIAL=y
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+CONFIG_UBIMKVOL=y
+CONFIG_UBIRMVOL=y
+CONFIG_UBIRSVOL=y
+CONFIG_UBIUPDATEVOL=y
+CONFIG_ADJTIMEX=y
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=4000
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
+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=y
+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=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY 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=y
+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=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+CONFIG_WALL=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_WHOIS=y
+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=y
+CONFIG_FEATURE_FTP_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
+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=y
+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_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_NTPD=y
+CONFIG_FEATURE_NTPD_SERVER=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=y
+# 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=y
+CONFIG_FEATURE_TUNCTL_UG=y
+# 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_FEATURE_UDHCPD_BASE_IP_ON_MAC 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_FEATURE_UDHCP_8021Q 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_NMETER=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+CONFIG_PSTREE=y
+CONFIG_PWDX=y
+CONFIG_SMEMCAP=y
+CONFIG_UPTIME=y
+CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=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_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_IDLE_TIMEOUT is not set
+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
+CONFIG_FEATURE_SH_HISTFILESIZE=y
+
+#
+# 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_CFG=y
+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..6fa870990
--- /dev/null
+++ b/community/bwbar/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 59215 2011-11-21 15:20:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=bwbar
+pkgver=1.2.3
+pkgrel=2
+arch=(i686 x86_64 'mips64el')
+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)
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/$pkgname-$pkgver.tar.gz)
+md5sums=('766265ddf0615b552ff19d12f78be719')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure
+ make
+ install -D -m755 bwbar $pkgdir/usr/bin/bwbar
+}
diff --git a/community/bwm-ng/PKGBUILD b/community/bwm-ng/PKGBUILD
new file mode 100644
index 000000000..bfd69190f
--- /dev/null
+++ b/community/bwm-ng/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58638 2011-11-16 22:54:07Z andrea $
+# 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 'mips64el')
+url="http://www.gropp.org/"
+license=('GPL')
+depends=('ncurses')
+options=('!libtool')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir} install
+
+ install -d ${pkgdir}/usr
+ mv ${pkgdir}/bin ${pkgdir}/usr/
+ #mv ${pkgdir}/share ${pkgdir}/usr/
+}
diff --git a/community/cabextract/PKGBUILD b/community/cabextract/PKGBUILD
new file mode 100644
index 000000000..ba6680251
--- /dev/null
+++ b/community/cabextract/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59583 2011-11-28 16:44:30Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=cabextract
+pkgver=1.4
+pkgrel=2
+pkgdesc="A program to extract Microsoft cabinet (.CAB) files"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.cabextract.org.uk/"
+depends=('glibc')
+source=("http://www.cabextract.org.uk/${pkgname}-${pkgver}.tar.gz")
+md5sums=('79f41f568cf1a3ac105e0687e8bfb7c0')
+
+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..48f5205db
--- /dev/null
+++ b/community/cadaver/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 46500 2011-05-07 23:09:15Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=cadaver
+pkgver=0.23.3
+pkgrel=2
+pkgdesc="Command-line WebDAV client for Unix"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd $srcdir/cadaver-$pkgver
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/cairo-clock/PKGBUILD b/community/cairo-clock/PKGBUILD
new file mode 100644
index 000000000..31900493c
--- /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' 'mips64el')
+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..7edc07f86
--- /dev/null
+++ b/community/cairo-compmgr/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 56292 2011-10-05 06:05:11Z 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=git20111002
+_commit=348f149af30bc829c2100d0e622c5dcaf43925b7
+pkgrel=1
+epoch=1
+pkgdesc="A Cairo based composite manager"
+arch=(i686 x86_64 'mips64el')
+url="http://cairo-compmgr.tuxfamily.org/"
+license=(GPL)
+makedepends=(gettext gtk-doc "intltool>=0.41" git)
+depends=("gtk2>=2.16.0" "vala>=0.14" libsm gconf)
+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..33ec82e75
--- /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 'mips64el')
+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..7deb25387
--- /dev/null
+++ b/community/calcurse/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55277 2011-09-08 13:31:41Z 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.9.2
+pkgrel=1
+pkgdesc='A text-based personal organizer.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://calcurse.org/'
+license=('BSD')
+depends=('ncurses')
+source=("http://calcurse.org/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5cb7d9c9edddc551fc62c9c5733591c5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --enable-docs --without-asciidoc --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..9a71587e4
--- /dev/null
+++ b/community/calibre/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 60299 2011-12-09 17:18:34Z 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.8.30
+pkgrel=1
+pkgdesc="Ebook management application"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://calibre-ebook.com/"
+license=('GPL3')
+depends=('python2-dateutil' 'python2-cssutils' 'python2-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-pyqt' 'icu')
+makedepends=('python2-pycountry')
+optdepends=('ipython: to use calibre-debug')
+install=calibre.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.xz"
+ 'desktop_integration.patch'
+ 'calibre-mount-helper')
+md5sums=('0af59b942b6184ce7b9c4247555b68dd'
+ '253ce4fe5d01f8ff76b63cd3825755ea'
+ '675cd87d41342119827ef706055491e7')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ #rm -rf src/{cherrypy,pyPdf}
+ rm -rf src/cherrypy
+ 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
+ python2 setup.py resources
+ python2 setup.py translations
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ patch -Np1 -i "${srcdir}/desktop_integration.patch"
+
+ # 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
+
+ install -d "${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
+
+ # See http://lwn.net/SubscriberLink/465311/7c299471a5399167/
+ rm -rf ${pkgdir}/usr/bin/calibre-mount-helper
+ install -m 755 ${srcdir}/calibre-mount-helper "${pkgdir}/usr/bin"
+}
diff --git a/community/calibre/calibre-mount-helper b/community/calibre/calibre-mount-helper
new file mode 100755
index 000000000..00cac4270
--- /dev/null
+++ b/community/calibre/calibre-mount-helper
@@ -0,0 +1,28 @@
+#!/bin/sh -e
+# Replacement for upstream mount helper using udisks/eject
+# (C) 2010 Martin Pitt <mpitt@debian.org>
+
+ACTION="$1"
+DEV="$2"
+
+case "$ACTION" in
+ mount)
+ udisks --mount "$DEV"
+
+ # check if mount worked. If not, fail
+ # udisks does return 0 even if mount failed
+ mount | grep -q "$DEV" || exit 0
+ ;;
+
+ eject)
+ eject "$DEV"
+ ;;
+
+ cleanup)
+ ;;
+
+ *)
+ echo "unknown action" >&2
+ exit 1
+esac
+
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..4dbf53757
--- /dev/null
+++ b/community/calibre/desktop_integration.patch
@@ -0,0 +1,68 @@
+--- a/src/calibre/linux.py 2011-06-17 19:56:05.000000000 +0200
++++ b/src/calibre/linux.py 2011-06-18 00:07:46.000000000 +0200
+@@ -339,51 +339,39 @@
+
+ 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 and 'ctc-posml' 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', '--noupdate', './'+x]
+- check_call(' '.join(cmd), shell=True)
+- self.menu_resources.append(x)
+- check_call(['xdg-desktop-menu', 'forceupdate'])
+- 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/PKGBUILD b/community/camlp5/PKGBUILD
new file mode 100644
index 000000000..9e6f0e5ce
--- /dev/null
+++ b/community/camlp5/PKGBUILD
@@ -0,0 +1,77 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Nathan Owe <ndowens.aur at gmail dot com>
+# Contributor: George Giorgidze <giorgidze@gmail.com>
+# Contributor: Massimiliano Brocchini <brocchini@netseven.it>
+
+pkgname=('camlp5' 'camlp5-transitional')
+_baseversion=6.02.3
+_patchlevel=1
+pkgver=${_baseversion}.${_patchlevel}
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+url='http://pauillac.inria.fr/~ddr/camlp5/'
+license=('BSD')
+depends=('sh')
+makedepends=('ocaml')
+options=('!makeflags')
+source=("http://pauillac.inria.fr/~ddr/camlp5/distrib/src/camlp5-${_baseversion}.tgz")
+# upstream likes to release occasional patches instead of releasing new versions
+for i in $(seq ${_patchlevel}); do
+ source+=("http://pauillac.inria.fr/~ddr/camlp5/distrib/src/patch-${_baseversion}-${i}")
+done
+md5sums=('a4f5e0dc13c43d50eb655c8e929f556e'
+ 'bd5afff0952b407bc63a7b1928e5d6d6')
+
+build() {
+ cd camlp5-${_baseversion}
+
+ for i in $(seq ${_patchlevel}); do
+ patch -Np0 -i ${srcdir}/patch-${_baseversion}-${i}
+ done
+
+ cd ${srcdir}
+
+ cp -r camlp5-${_baseversion} camlp5-transitional-${_baseversion}
+
+ cd ${srcdir}/camlp5-${_baseversion}
+
+ ./configure \
+ -prefix '/usr' \
+ -mandir '/usr/share/man' \
+ -strict
+
+ make world.opt
+
+ cd ${srcdir}/camlp5-transitional-${_baseversion}
+
+ ./configure \
+ -prefix '/usr' \
+ -mandir '/usr/share/man' \
+ -transitional
+
+ make world.opt
+}
+
+package_camlp5() {
+ pkgdesc='A preprocessor-pretty-printer of OCaml.'
+ conflicts=('camlp5-transitional')
+
+ cd camlp5-${_baseversion}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/camlp5/LICENSE
+}
+
+package_camlp5-transitional() {
+ pkgdesc='A preprocessor-pretty-printer of OCaml. (transitional)'
+ conflicts=('camlp5')
+
+ cd camlp5-transitional-${_baseversion}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/camlp5-transitional/LICENSE
+}
diff --git a/community/canorus/PKGBUILD b/community/canorus/PKGBUILD
new file mode 100644
index 000000000..184290b1e
--- /dev/null
+++ b/community/canorus/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59873 2011-12-01 13:49:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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=4
+pkgdesc="A free music score editor"
+arch=('i686' 'x86_64' 'mips64el')
+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" \
+ -DNO_SWIG=ON
+ 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..2a1de1674
--- /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' 'mips64el')
+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..df0ee279c
--- /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' 'mips64el')
+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..d75c81ab1
--- /dev/null
+++ b/community/catdvi/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 56716 2011-10-11 07:11:55Z andrea $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Xilon <xilonmu@gmail.com>
+
+pkgname=catdvi
+pkgver=0.14
+pkgrel=4
+pkgdesc="A DVI to plain text translator"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://catdvi.sourceforge.net"
+license=('GPL')
+depends=('glibc' 'texlive-core')
+makedepends=('texlive-fontsextra')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'texlive2008.patch')
+md5sums=('b18eac65baf522c1e37bb3dc37ab42c3'
+ '509f61a30d3758e5d102c124bc5fa9a0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i "${srcdir}"/texlive2008.patch
+ autoconf
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+
+ install -d $pkgdir/usr/bin $pkgdir/usr/share/man/man1
+ sed -i "s#\(bindir = \)\(.*\)#\1$pkgdir\2#" config.mk
+ sed -i "s#\(mandir = \)\(.*\)#\1$pkgdir\2#" config.mk
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/catdvi/texlive2008.patch b/community/catdvi/texlive2008.patch
new file mode 100644
index 000000000..20ee9732e
--- /dev/null
+++ b/community/catdvi/texlive2008.patch
@@ -0,0 +1,58 @@
+--- catdvi-0.14-orig/config.mk.in
++++ catdvi-0.14/config.mk.in
+@@ -23,6 +23,7 @@
+
+ CFG_HAS_GETOPT_LONG = @CFG_HAS_GETOPT_LONG@
+ CFG_HAS_KPATHSEA = @CFG_HAS_KPATHSEA@
++CFG_HAS_KPATHSEA_VERSION_H = @CFG_HAS_KPATHSEA_VERSION_H@
+ CFG_KPATHSEA_HAS_GETOPT_LONG = @CFG_KPATHSEA_HAS_GETOPT_LONG@
+ CFG_SHOW_PSE2UNIC_WARNINGS = @CFG_SHOW_PSETOUNIC_WARNINGS@
+
+--- catdvi-0.14-orig/configure.in
++++ catdvi-0.14/configure.in
+@@ -48,6 +48,9 @@
+ AC_MSG_ERROR([*** kpathsea library (required) not found; try to use the --with-kpathsea-prefix option ***])
+ fi
+
++AC_CHECK_HEADERS([kpathsea/version.h], CFG_HAS_KPATHSEA_VERSION_H=yes, CFG_HAS_KPATHSEA_VERSION_H=no)
++AC_SUBST(CFG_HAS_KPATHSEA_VERSION_H)
++
+ dnl It seem libkpathsea provides a getopt_long() implementation
+ dnl if and only if the C library does not.
+ dnl
+--- catdvi-0.14-orig/GNUmakefile
++++ catdvi-0.14/GNUmakefile
+@@ -36,6 +36,10 @@
+ endif
+ endif
+
++ifeq ($(CFG_HAS_KPATHSEA_VERSION_H),yes)
++CPPFLAGS += -DCFG_HAS_KPATHSEA_VERSION_H
++endif
++
+ ifeq ($(CFG_HAS_KPATHSEA),yes)
+ FINDTFM = kpathsea.o
+ LDLIBS = -lkpathsea
+--- catdvi-0.14-orig/kpathsea.c
++++ catdvi-0.14/kpathsea.c
+@@ -21,6 +21,12 @@
+ #include "findtfm.h"
+ #include "version.h"
+
++#ifdef CFG_HAS_KPATHSEA_VERSION_H
++#include <kpathsea/version.h>
++#else
++extern char * kpathsea_version_string;
++#endif
++
+ void setup_findtfm(char const * progname)
+ {
+ kpse_set_program_name(progname, PACKAGE);
+@@ -36,7 +42,6 @@
+
+ void version_findtfm(void)
+ {
+- extern char * kpathsea_version_string;
+ puts(kpathsea_version_string);
+ }
+
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..907e8fae1
--- /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' 'mips64el')
+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..5a8d76997
--- /dev/null
+++ b/community/ccid/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59246 2011-11-21 21:28:58Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Daniel Plaza <daniel.plaza.espi@gmail.com>
+
+pkgname=ccid
+pkgver=1.4.5
+pkgrel=2
+pkgdesc="A generic USB Chip/Smart Card Interface Devices driver"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pcsclite.alioth.debian.org/ccid.html"
+license=('LGPL' 'GPL')
+depends=('pcsclite')
+makedepends=('pkg-config')
+backup=(etc/reader.conf.d/libccidtwin)
+source=("https://alioth.debian.org/frs/download.php/3672/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('cb9a77194ac335c39b262ea83a5b7d2e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-twinserial
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/cclive/PKGBUILD b/community/cclive/PKGBUILD
new file mode 100644
index 000000000..68ae47376
--- /dev/null
+++ b/community/cclive/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59926 2011-12-02 20:58:05Z ibiru $
+# 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.7
+pkgrel=2
+pkgdesc='Commandline downloader for popular video websites.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://cclive.sourceforge.net/'
+license=('GPL3')
+depends=('boost-libs' 'pcre' 'curl' 'libquvi')
+makedepends=('boost')
+source=("http://downloads.sourceforge.net/project/${pkgname}/0.7/${pkgname}-${pkgver}.tar.gz")
+md5sums=('8265be865a22fb477bcc050f0dc310dc')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ccmalloc/PKGBUILD b/community/ccmalloc/PKGBUILD
new file mode 100644
index 000000000..95df39a45
--- /dev/null
+++ b/community/ccmalloc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 2304 2008-05-31 05:00:40Z paul $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: aurelien <aurelien@archlinux.org>
+
+pkgname=ccmalloc
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="Track down memory related problems with C and C++ programs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://packages.debian.org/sid/ccmalloc"
+license=('GPL2')
+depends=('sh')
+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 -i $srcdir/ccmalloc_$pkgver-9.diff
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=$pkgdir/usr install
+}
diff --git a/community/ccrtp/PKGBUILD b/community/ccrtp/PKGBUILD
new file mode 100644
index 000000000..e50fdefcc
--- /dev/null
+++ b/community/ccrtp/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 47033 2011-05-14 10:27:41Z jelle $
+# 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.8.0
+pkgrel=1
+pkgdesc="GNU ccRTP"
+arch=('i686' 'x86_64' 'mips64el')
+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 gcc46.patch)
+md5sums=('3410d2f43a6a28679bd091ed8b2ed228'
+ '17ce9c79c4518f35f484b539bcff570d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i $srcdir/gcc46.patch
+ # 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/ccrtp/gcc46.patch b/community/ccrtp/gcc46.patch
new file mode 100644
index 000000000..a4b25b369
--- /dev/null
+++ b/community/ccrtp/gcc46.patch
@@ -0,0 +1,11 @@
+diff -aur ccrtp-1.8.0.old//src/ccrtp/sources.h ccrtp-1.8.0.new//src/ccrtp/sources.h
+--- ccrtp-1.8.0.old//src/ccrtp/sources.h 2011-05-14 03:15:35.993564505 -0700
++++ ccrtp-1.8.0.new//src/ccrtp/sources.h 2011-05-14 03:19:02.033569568 -0700
+@@ -46,6 +46,7 @@
+
+ #include <string>
+ #include <ccrtp/rtcppkt.h>
++#include <stddef.h>
+
+ #ifdef CCXX_NAMESPACES
+ namespace ost {
diff --git a/community/ccrypt/PKGBUILD b/community/ccrypt/PKGBUILD
new file mode 100644
index 000000000..eda5acd9e
--- /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' 'mips64el')
+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..160886073
--- /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.1
+pkgdesc="Robust and modular log colorizer with many plugins"
+arch=('i686' 'x86_64' 'mips64el')
+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 --build=$CHOST
+ 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..671485ef7
--- /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 'mips64el')
+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..57338fc35
--- /dev/null
+++ b/community/cdcd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 55773 2011-09-20 06:44:34Z andrea $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=cdcd
+pkgver=0.6.6
+pkgrel=6
+pkgdesc="A commandline cd-player"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libcdaudio' 'readline')
+url="http://libcdaudio.sourceforge.net/"
+license=('GPL2')
+install=cdcd.install
+source=("http://downloads.sourceforge.net/libcdaudio/$pkgname-$pkgver.tar.gz"
+ cdcd-0.6.6-x86_64.patch)
+md5sums=('dc17f2e275c7214cb693f6abb50f29fb'
+ '7c39f01408fc084e2c62da4da324370e')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ patch -Np1 -i "${srcdir}"/cdcd-0.6.6-x86_64.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make prefix="${pkgdir}"/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/cdcd/cdcd.install b/community/cdcd/cdcd.install
new file mode 100644
index 000000000..e859c40b7
--- /dev/null
+++ b/community/cdcd/cdcd.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cdcd.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/cdck/PKGBUILD b/community/cdck/PKGBUILD
new file mode 100644
index 000000000..bfe461b59
--- /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' 'mips64el')
+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..255d1136f
--- /dev/null
+++ b/community/cdcover/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 58600 2011-11-16 15:26:59Z spupykin $
+# 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' 'mips64el')
+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..2c871e955
--- /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' 'mips64el')
+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..278fa33dd
--- /dev/null
+++ b/community/cdemu-client/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=cdemu-client
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="Simple command-line client for controlling cdemu-daemon"
+arch=('i686' 'x86_64' 'mips64el')
+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=('ce469f0660dfa4a9306faed00b3e6d6c')
+
+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..da6024658
--- /dev/null
+++ b/community/cdemu-daemon/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 57021 2011-10-18 18:14:16Z bpiotrowski $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=cdemu-daemon
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="CD/DVD-ROM device emulator daemon"
+arch=('i686' 'x86_64' 'mips64el')
+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=$pkgver" 'libao')
+install=cdemud.install
+source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz
+ cdemud.conf
+ cdemud.rc
+ 60-vhba.rules)
+md5sums=('f7ccc0abc33057d552ec7b0925fce63a'
+ '2b94bd399873e585e40b2bfd8634f322'
+ '340a30ab2c42162b3bd042c74a399219'
+ '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..8e49cdfd5
--- /dev/null
+++ b/community/cdemu-daemon/cdemud.conf
@@ -0,0 +1,12 @@
+# how many optical drives to emulate
+NUM_DRIVES=1
+
+# control device
+CTL_DEVICE=/dev/vhba_ctl
+
+# audio backend (null or alsa)
+AUDIO_BACKEND=null
+
+DAEMON="/usr/bin/cdemud"
+BUS="system"
+LOG_FILE="/var/log/cdemu.log"
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..6e1b0b091
--- /dev/null
+++ b/community/cdemu-daemon/cdemud.rc
@@ -0,0 +1,55 @@
+#!/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 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 --ctl-device=$CTL_DEVICE --bus=$SYSTEM --num-devices=$NUM_DEVICES --audio-driver=$AUDIO_DRIVER --logfile=$LOG_FILE &
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon cdemud
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping cdemud"
+ kill -9 `pidof cdemud` &>/dev/null && sleep 1 && rmmod vhba
+ 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..e231f2f09
--- /dev/null
+++ b/community/cdfs/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58212 2011-11-08 22:41:05Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar>
+
+pkgname=cdfs
+pkgver=2.6.27
+pkgrel=17
+pkgdesc="File system module that 'exports' all tracks and boot images on a CD as normal files."
+arch=(i686 x86_64 'mips64el')
+url="http://www.elis.UGent.be/~ronsse/cdfs/"
+license=('GPL')
+makedepends=('linux-headers')
+install=cdfs.install
+source=("http://www.elis.UGent.be/~ronsse/cdfs/download/$pkgname-$pkgver.tar.bz2"
+ "cdfs-3.0.0.patch")
+md5sums=('ac64c014a90e3c488394832ea29605b3'
+ 'aba7da94a9dcbb8a93ea423cb6958fef')
+
+build() {
+ _kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -`
+ depends=("linux>=3.${_kernver}" "linux<3.`expr ${_kernver} + 1`")
+ _kernverfull=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version`
+
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/cdfs-3.0.0.patch
+ make KDIR=/lib/modules/${_kernverfull}/build
+ install -Dm0644 cdfs.ko $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/cdfs.ko
+}
diff --git a/community/cdfs/cdfs-3.0.0.patch b/community/cdfs/cdfs-3.0.0.patch
new file mode 100644
index 000000000..20194b848
--- /dev/null
+++ b/community/cdfs/cdfs-3.0.0.patch
@@ -0,0 +1,274 @@
+diff -wbBur cdfs-2.6.27/cddata.c cdfs-2.6.27.my/cddata.c
+--- cdfs-2.6.27/cddata.c 2009-12-21 17:04:03.000000000 +0300
++++ cdfs-2.6.27.my/cddata.c 2011-07-24 21:18:44.000000000 +0400
+@@ -83,7 +83,7 @@
+ #else
+ .mmap = generic_file_readonly_mmap,
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
+- .sendfile = generic_file_sendfile
++// .sendfile = generic_file_sendfile
+ #else
+ .splice_read = generic_file_splice_read
+ #endif
+diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c
+--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300
++++ cdfs-2.6.27.my/root.c 2011-07-25 13:16:59.000000000 +0400
+@@ -32,19 +30,14 @@
+ * Added code to transform /proc/cdfs into a sequential synthetic file. *
+ *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+-
+ #include <linux/seq_file.h>
+-
+-#ifndef OLD_KERNEL
+ #include <linux/statfs.h>
+-#endif
++#include <linux/sched.h>
+
+ extern struct seq_operations cdfs_operations;
+ extern struct _track_info *dummy_track_p;
+
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ struct inode *cdfs_iget(struct super_block *sp, unsigned long ino);
+-#endif
+ /*============================================================================*
+ * cdfs_open() *
+ * Description: *
+@@ -115,15 +108,8 @@
+
+ /********************************************************************/
+
+-#ifdef OLD_KERNEL
+-static struct super_block * cdfs_mount(struct super_block *sb, void *data, int silent){
+- kdev_t dev = sb->s_dev;
+- int i, j, t;
+- struct cdrom_tochdr hdr;
+-#else
+ static int cdfs_fill_super(struct super_block *sb, void *data, int silent){
+ int i, t;
+-#endif
+ struct cdrom_tocentry entry;
+ int no_audio=0, no_data=0;
+ cd * this_cd;
+@@ -131,24 +117,13 @@
+
+ PRINT("cdfs_mount\n");
+
+-#ifdef OLD_KERNEL
+- MOD_INC_USE_COUNT;
+-
+- set_blocksize(dev, CD_FRAMESIZE); // voor bread met ide-cd
+-#else
+ sb_set_blocksize(sb, CD_FRAMESIZE); // voor bread met ide-cd
+-#endif
+
+ sb->s_blocksize = CD_FRAMESIZE;
+ sb->s_blocksize_bits = 11;
+
+ if (!(this_cd = cdfs_info(sb) = kmalloc(sizeof(cd), GFP_KERNEL))){
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ return -ENOMEM;
+-#endif
+ }
+
+ this_cd->mode = MODE;
+@@ -160,13 +135,8 @@
+
+ // Initialize cache for maximum sector size
+ if (!(this_cd->cache = kmalloc(CD_FRAMESIZE_RAWER*CACHE_SIZE, GFP_KERNEL))) {
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ kfree(cdfs_info(sb));
+ return -ENOMEM;
+-#endif
+ }
+
+ // Cache is still invalid
+@@ -183,23 +153,13 @@
+ if (this_cd->toc_scsi){
+ if (cdfs_toc_read_full(sb)){
+ printk("TOC read failed\n");
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ goto invalid;
+-#endif
+ }
+ } else {
+ //if (cdfs_ioctl(sb, CDROMREADTOCHDR, (unsigned long)&hdr)){
+ if (cdfs_toc_read(sb)){
+ printk("cdfs_toc_read failed\n");
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ goto invalid;
+-#endif
+ }
+ }
+
+@@ -365,11 +325,7 @@
+ sb->s_flags |= MS_RDONLY;
+ sb->s_op = &cdfs_ops;
+ /* always get inode status */
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ retinode=cdfs_iget(sb, 0);
+-#else
+- retinode=iget(sb, 0);
+-#endif
+ if ( IS_ERR(retinode) )
+ return PTR_ERR(retinode);
+
+@@ -379,16 +335,12 @@
+
+ cdfs_proc_cd = this_cd;
+
+-#ifdef OLD_KERNEL
+- return sb;
+-#else
+ return 0;
+
+ invalid:
+ kfree(this_cd->cache);
+ kfree(cdfs_info(sb));
+ return -EINVAL;
+-#endif
+ }
+
+ /************************************************************************/
+@@ -410,27 +362,12 @@
+ // Remove /proc entry
+ cdfs_proc_cd = NULL;
+ kfree(cdfs_info(sb));
+-
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+-#endif
+-
+ }
+
+ /************************************************************************/
+
+-#ifdef OLD_KERNEL
+-static int cdfs_statfs(struct super_block *sb, struct statfs *buf) {
+- cd * this_cd = cdfs_info(sb);
+-#else
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
+ static int cdfs_statfs(struct dentry *d, struct kstatfs *buf) {
+ cd * this_cd = cdfs_info(d->d_sb);
+-#else
+-static int cdfs_statfs(struct super_block *sb, struct kstatfs *buf) {
+- cd * this_cd = cdfs_info(sb);
+-#endif
+-#endif
+ PRINT("rmfs_statfs\n");
+
+ buf->f_type = CDFS_MAGIC;
+@@ -460,11 +397,7 @@
+
+ /************************************************************************/
+
+-#ifdef OLD_KERNEL
+-static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry){
+-#else
+ static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){
+-#endif
+ struct inode * inode;
+ int i;
+ cd * this_cd = cdfs_info(dir->i_sb);
+@@ -480,15 +413,9 @@
+ /* Use goto and read inode with iget()/cdfs_iget() */
+ /* Thanks to David Howells for patch and Master class in his mail */
+ found:
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ inode = cdfs_iget(dir->i_sb, i);
+ if (IS_ERR(inode))
+ return ERR_CAST(inode);
+-#else
+- inode = iget(dir->i_sb, i);
+- if (!inode)
+- return ERR_PTR(-ENOMEM);
+-#endif
+ d_add(dentry, inode);
+ return NULL;
+ }
+@@ -529,12 +456,8 @@
+ i->i_fop = &cdfs_dir_operations;
+ } else { /* file */
+ i->i_size = this_cd->track[i->i_ino].size;
+-#ifdef OLD_KERNEL
+- i->i_mtime = i->i_atime = i->i_ctime = this_cd->track[i->i_ino].time;
+-#else
+ i->i_mtime.tv_sec = i->i_atime.tv_sec = i->i_ctime.tv_sec = this_cd->track[i->i_ino].time;
+ i->i_mtime.tv_nsec = i->i_atime.tv_nsec = i->i_ctime.tv_nsec = 0;
+-#endif
+ i->i_mode = this_cd->mode;
+ if ((this_cd->track[i->i_ino].type==DATA) && this_cd->track[i->i_ino].iso_size) {
+ i->i_fop = &cdfs_cddata_file_operations;
+@@ -587,33 +510,21 @@
+ /******************************************************************/
+
+ static struct super_operations cdfs_ops = {
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+- .read_inode = cdfs_read_inode,
+-#endif
+ .put_super = cdfs_umount,
+ .statfs = cdfs_statfs
+ };
+
+-#ifdef OLD_KERNEL
+-static DECLARE_FSTYPE_DEV(cdfs_fs_type, FSNAME, cdfs_mount);
+-#else
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
+-static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) {
+- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt);
+-#else
+-static struct super_block *cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) {
+- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super);
+-#endif
+-}
++//static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) {
++// return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt);
++//}
+
+ static struct file_system_type cdfs_fs_type = {
+ .owner = THIS_MODULE,
+ .name = "cdfs",
+- .get_sb = cdfs_get_sb,
++// .get_sb = cdfs_get_sb,
+ .kill_sb = kill_block_super,
+ .fs_flags = FS_REQUIRES_DEV
+ };
+-#endif
+
+ /******************************************************/
+
+@@ -621,10 +532,6 @@
+ MODULE_DESCRIPTION("CDfs: a CD filesystem");
+ MODULE_LICENSE("GPL");
+
+-#ifdef OLD_KERNEL
+-EXPORT_NO_SYMBOLS;
+-#endif
+-
+ /******************************************************************/
+
+ static int __init cdfs_init(void) {
+@@ -676,11 +583,7 @@
+
+ if (!options) return;
+
+-#ifdef OLD_KERNEL
+- for (this_char = strtok(options,","); this_char; this_char = strtok(NULL,",")) {
+-#else
+ while ((this_char = strsep(&options,",")) != NULL) {
+-#endif
+
+ if (!strcmp(this_char,"single"))
+ this_cd->single=TRUE;
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..9bd00f25a
--- /dev/null
+++ b/community/cegui/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 55877 2011-09-24 16:48:18Z stephane $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# 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=5
+pkgdesc="A free library providing windowing and widgets for graphics APIs/engines"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://crayzedsgui.sourceforge.net"
+#options=('!libtool')
+license=("MIT")
+depends=('pcre' 'glew' 'expat' 'freetype2' 'libxml2' 'devil' 'freeglut' 'lua' 'silly')
+makedepends=('python2' 'doxygen')
+source=(http://downloads.sourceforge.net/crayzedsgui/CEGUI-$pkgver.tar.gz)
+md5sums=('38c79d1fdfaaa10f481c99a2ac479516')
+
+build() {
+ cd $srcdir/CEGUI-${pkgver}
+
+ sed -i '1i#include <cstddef>' cegui/include/CEGUIString.h
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-xerces-c \
+ --enable-null-renderer
+
+ make
+}
+
+package() {
+ cd $srcdir/CEGUI-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ #build docs
+ cd doc/doxygen && doxygen
+ cd .. && make DESTDIR=${pkgdir} install-html
+
+ install -Dm644 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..4b7c5aa1c
--- /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' 'mips64el')
+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..0b8efa1c4
--- /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' 'mips64el')
+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..f206f6f19
--- /dev/null
+++ b/community/centerim/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58739 2011-11-18 12:12:26Z 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' 'mips64el')
+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
+ sed -i '1,1i#include <stdio.h>' libicq2000/libicq2000/sigslot.h
+ ./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..d8c3ebaa7
--- /dev/null
+++ b/community/cgit/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 59218 2011-11-21 15:21:07Z 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.0.2
+_gitver=1.7.4
+pkgrel=3
+pkgdesc="A web interface for git written in plain C"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://hjemli.net/git/cgit"
+license=('GPL')
+depends=('openssl')
+makedepends=('git' 'zlib' 'curl' 'asciidoc')
+install=cgit.install
+# "http://www.kernel.org/pub/software/scm/git/git-${_gitver}.tar.bz2"
+source=("http://hjemli.net/git/cgit/snapshot/$pkgname-$pkgver.tar.bz2"
+ "http://arch.p5n.pp.ru/~sergej/dl/2011/git-${_gitver}.tar.bz2"
+ "apache.example.conf")
+md5sums=('5b92b07e0107ff24a783adfb8c0cd1f2'
+ 'fa24dc1ef0b663327ea0fe1981365b39'
+ 'bd5696bea0654bfcf98f249b1a36737d')
+
+build() {
+ cd "$pkgname-$pkgver"
+ _cgit_gitver=`grep 'GIT_VER = ' Makefile | cut -f3 -d\ `
+ [ "x${_gitver}" == "x${_cgit_gitver}" ] || { msg "Bad git version"; return 1; }
+ rm -rf git/*
+ mv ../git-${_gitver}/* git/
+ make
+ make doc-man
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make CGIT_SCRIPT_PATH=/usr/share/webapps/cgit DESTDIR="$pkgdir" install install-man
+ install -vDm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ install -vd "$pkgdir/var/cache/$pkgname"
+ install -vDm0644 $srcdir/apache.example.conf $pkgdir/etc/webapps/cgit/apache.example.conf
+ mkdir -p $pkgdir/usr/lib/cgit
+ mv $pkgdir/usr/share/webapps/cgit/cgit.cgi $pkgdir/usr/lib/cgit
+ ln -sf ../../../lib/cgit/cgit.cgi $pkgdir/usr/share/webapps/cgit/cgit.cgi
+}
diff --git a/community/cgit/apache.example.conf b/community/cgit/apache.example.conf
new file mode 100644
index 000000000..9beb27db3
--- /dev/null
+++ b/community/cgit/apache.example.conf
@@ -0,0 +1,25 @@
+ScriptAlias /cgit/ "/usr/lib/cgit/cgit.cgi/"
+
+Alias /cgit-css "/usr/share/webapps/cgit/"
+
+<Directory "/usr/share/webapps/cgit/">
+ AllowOverride None
+ Options None
+ Order allow,deny
+ Allow from all
+ AuthType Basic
+ AuthName cgit
+ AuthUserFile /etc/httpd/conf/passwd
+ Require user root
+</Directory>
+
+<Directory "/usr/lib/cgit/">
+ AllowOverride None
+ Options ExecCGI FollowSymlinks
+ Order allow,deny
+ Allow from all
+ AuthType Basic
+ AuthName cgit
+ AuthUserFile /etc/httpd/conf/passwd
+ Require user root
+</Directory>
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..6d15ab543
--- /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' 'mips64el')
+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..3e509e4bc
--- /dev/null
+++ b/community/cherokee/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 58385 2011-11-12 17:16:09Z ibiru $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=cherokee
+pkgver=1.2.101
+pkgrel=2
+pkgdesc="A very fast, flexible and easy to configure Web Server"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'etc/pam.d/cherokee')
+options=('!libtool')
+source=(http://www.cherokee-project.com/download/1.2/$pkgver/cherokee-$pkgver.tar.gz
+ cherokee.rc
+ cherokee.logrotate
+ fix-ctk-path-handler-match.patch)
+sha256sums=('ca465ab3772479fc843b38ffc45113bf24d8bfae9185cdd5176b099d5a17feb8'
+ '4c06cebfab8b68edd4967c020bfb41b077cfff10d76596d1ed192d0b6cedbd86'
+ '20e26d633f8c1cd90eb21f41dd163b73a83846e405b1ce995e072c4efefc522e'
+ '2bd05e0181024c9bd02d828e8329d4d96a779e4870b1fc4f18aa8667d8c6a630')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Fix path matching bug in CTK apps (e.g. market)
+ patch -Np1 -i "$srcdir/fix-ctk-path-handler-match.patch"
+
+ # 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 \
+ --disable-static \
+ --with-wwwroot=/srv/http \
+ --with-wwwuser=http \
+ --with-wwwgroup=http \
+ --with-python=python2 \
+ --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$/&2/' \
+ "$pkgdir/usr/share/cherokee/admin/"{server,upgrade_config}.py \
+ "$pkgdir/usr/bin/"{CTK-run,cherokee-{admin-launcher,tweak}}
+ sed -i -r "s/['\"]python/&2/g" \
+ "$pkgdir/usr/share/cherokee/admin/wizards/django.py"
+
+ # 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/cherokee/fix-ctk-path-handler-match.patch b/community/cherokee/fix-ctk-path-handler-match.patch
new file mode 100644
index 000000000..abd20c5ef
--- /dev/null
+++ b/community/cherokee/fix-ctk-path-handler-match.patch
@@ -0,0 +1,16 @@
+diff -upr cherokee-1.2.99.orig/admin/CTK/CTK/Server.py cherokee-1.2.99/admin/CTK/CTK/Server.py
+--- cherokee-1.2.99.orig/admin/CTK/CTK/Server.py 2011-06-06 14:17:35.000000000 +0300
++++ cherokee-1.2.99/admin/CTK/CTK/Server.py 2011-09-16 03:31:06.000000000 +0300
+@@ -121,8 +121,11 @@ class ServerHandler (pyscgi.SCGIHandler)
+ my_thread.scgi_conn = self
+ my_thread.request_url = url
+
++ # Drop the query string before matching against the handlers
++ path = url.split('?', 1)[0]
++
+ for published in server._web_paths:
+- if re.match (published._regex, url):
++ if re.match (published._regex, path):
+ # POST
+ if published._method == 'POST':
+ post = self._process_post()
diff --git a/community/chicken/PKGBUILD b/community/chicken/PKGBUILD
new file mode 100644
index 000000000..842cf4fe4
--- /dev/null
+++ b/community/chicken/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: <david@pako.st>
+
+pkgname=chicken
+pkgver=4.7.0
+pkgrel=1
+pkgdesc='A compiler for R5RS scheme, featuring handy extensions'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.call-with-current-continuation.org/'
+license=('BSD')
+depends=('gcc')
+source=("http://code.call-cc.org/releases/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+
+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}
+
+
+ # parallel builds are not supported..
+ export MAKEFLAGS="${MAKEFLAGS/-j?/}"
+ make PLATFORM=linux PREFIX=/usr DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+md5sums=('9389388fdf04c3c64de29633aae12539')
diff --git a/community/chmsee/PKGBUILD b/community/chmsee/PKGBUILD
new file mode 100644
index 000000000..3326b81db
--- /dev/null
+++ b/community/chmsee/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 59248 2011-11-21 23:02:41Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: dionydonny <dionydonny@gmail.com>
+# Contributor: Ermanno <erm67@yahoo.it>
+
+pkgname=chmsee
+pkgver=1.99.06
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="A chm (MS HTML help file format) viewer based on xulrunner."
+url="http://chmsee.googlecode.com/"
+license=('GPL')
+depends=('xulrunner>=8.0' 'chmlib' 'desktop-file-utils')
+makedepends=('python2')
+source=(chmsee-$pkgver.tar.gz::https://github.com/jungleji/chmsee/tarball/v$pkgver
+ chmsee)
+install=chmsee.install
+md5sums=('fb11a4492795635bda843064f5b7f261'
+ '4999362b0c89c24764cbd25173610a38')
+
+build() {
+ cd ${srcdir}/jungleji-chmsee-dd9130e/src
+
+ cp Makefile.arch Makefile
+ sed -i -e 's/5.0/8.0/g' Makefile
+
+ make
+}
+
+package() {
+ cd ${srcdir}/jungleji-chmsee-dd9130e
+
+ install -d ${pkgdir}/usr/share/chmsee
+ cp -a * ${pkgdir}/usr/share/chmsee
+ rm -r ${pkgdir}/usr/share/chmsee/src
+ install -Dm644 data/chmsee.desktop.in \
+ ${pkgdir}/usr/share/applications/chmsee.desktop
+ # Fix FS#25152
+ sed -i -e 's/_//g' ${pkgdir}/usr/share/applications/chmsee.desktop
+ #
+ install -d ${pkgdir}/usr/share/pixmaps
+ install -Dm644 data/chmsee-icon.png ${pkgdir}/usr/share/pixmaps
+ install -Dm755 ${srcdir}/chmsee ${pkgdir}/usr/bin/chmsee
+# install -d ${pkgdir}/usr/share/icons
+# cp -a data/icons/* ${pkgdir}/usr/share/icons/
+}
diff --git a/community/chmsee/chmsee b/community/chmsee/chmsee
new file mode 100644
index 000000000..0e7a79096
--- /dev/null
+++ b/community/chmsee/chmsee
@@ -0,0 +1,4 @@
+#!/bin/sh
+cd /usr/share/chmsee/
+xulrunner application.ini $@
+cd -
diff --git a/community/chmsee/chmsee.install b/community/chmsee/chmsee.install
new file mode 100644
index 000000000..308f27d33
--- /dev/null
+++ b/community/chmsee/chmsee.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/chntpw/PKGBUILD b/community/chntpw/PKGBUILD
new file mode 100644
index 000000000..9393e9e36
--- /dev/null
+++ b/community/chntpw/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 48999 2011-06-09 15:13:27Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=chntpw
+pkgver=110511
+pkgrel=1
+pkgdesc='Offline NT Password Editor - reset passwords in a Windows NT SAM userdatabase file'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://pogostick.net/~pnh/ntpasswd/'
+license=('GPL' 'LGPL')
+makedepends=('openssl')
+source=("http://pogostick.net/~pnh/ntpasswd/${pkgname}-source-${pkgver}.zip")
+md5sums=('a3fb358d1adec589cd6bc8dedf68896c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ [ "$CARCH" = "x86_64" ] && sed -i "s|CFLAGS= -DUSEOPENSSL -g -I. -I\$(OSSLINC) -Wall -m32|CFLAGS= -DUSEOPENSSL -g -I. -I\$(OSSLINC) -Wall|" Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # install binaries, don't install static binaries!
+ install -Dm0755 "${srcdir}/${pkgname}-${pkgver}/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm0755 "${srcdir}/${pkgname}-${pkgver}/reged" "${pkgdir}/usr/bin/reged"
+ install -Dm0755 "${srcdir}/${pkgname}-${pkgver}/cpnt" "${pkgdir}/usr/bin/cpnt"
+
+ for _f in *.txt; do
+ install -Dm0644 "${_f}" "${pkgdir}/usr/share/doc/${pkgname}/${_f}"
+ done
+}
diff --git a/community/choqok/PKGBUILD b/community/choqok/PKGBUILD
new file mode 100644
index 000000000..741b8e036
--- /dev/null
+++ b/community/choqok/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58036 2011-11-05 17:31:00Z plewis $
+# Maintainer: Peter Richard Lewis <plewis@aur.archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Emanuele Rossi <newdna1510@yahoo.it>
+# Contributor: Bram Schoenmakers <me@bramschoenmakers.nl>
+
+pkgname=choqok
+pkgver=1.2
+pkgrel=2
+pkgdesc="A Twitter/identi.ca/laconica client for KDE"
+url="http://choqok.gnufolks.org/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('kdebase-runtime' 'qjson' 'qoauth' 'qca-ossl')
+makedepends=('cmake' 'automoc4')
+optdepends=('kdebase-konqueror: proxy support')
+install="${pkgname}.install"
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('05d01f4c93c081f3a84ea013cfba7229')
+
+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/chrony/PKGBUILD b/community/chrony/PKGBUILD
new file mode 100644
index 000000000..a957f837a
--- /dev/null
+++ b/community/chrony/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
+# Contributor: cdhotfire <cdhotfire@gmail.com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Maintainer: Elisamuel Resto <ryuji@simplysam.us>
+
+pkgname=chrony
+pkgver=1.26
+pkgrel=1
+pkgdesc="Dial-up friendly NTP daemon and excellent replacement for NTP on desktop systems"
+arch=(mips64el)
+url="http://chrony.tuxfamily.org/"
+options=('strip')
+license=('GPL')
+depends=('readline' 'libcap')
+backup=('etc/chrony.conf')
+source=("http://download.tuxfamily.org/chrony/${pkgname}-${pkgver}.tar.gz" \
+ 'chrony')
+md5sums=('ad6dd619ff1986e4ff780363c64e2246'
+ 'd8b653c8bcc76cef00aa10fbd3eeb4f7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m0644 $srcdir/$pkgname-$pkgver/examples/chrony.conf.example $pkgdir/etc/chrony.conf
+ install -D -m0755 $srcdir/chrony $pkgdir/etc/rc.d/chrony
+}
diff --git a/community/chrony/chrony b/community/chrony/chrony
new file mode 100755
index 000000000..ec042d798
--- /dev/null
+++ b/community/chrony/chrony
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/chronyd`
+case "$1" in
+ start)
+ stat_busy "Starting chrony Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/chronyd $NTPD_ARGS &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon chrony
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping chrony Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon chrony
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/chrootuid/PKGBUILD b/community/chrootuid/PKGBUILD
new file mode 100644
index 000000000..0f33c5971
--- /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 'mips64el')
+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/PKGBUILD b/community/chrpath/PKGBUILD
new file mode 100644
index 000000000..6aebf2278
--- /dev/null
+++ b/community/chrpath/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 55552 2011-09-14 09:27:16Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=chrpath
+pkgver=0.13
+pkgrel=3.1
+pkgdesc="Change or delete the rpath or runpath in ELF files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://directory.fsf.org/project/chrpath/"
+license=('GPL2')
+depends=('glibc')
+source=("http://ftp.tux.org/pub/X-Windows/ftp.hungry.com/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b73072a8fbba277558c50364b65bb407')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man --build=$CHOST
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ 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..b8b4192d0
--- /dev/null
+++ b/community/cksfv/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 57202 2011-10-23 23:26:43Z andrea $
+# Maintainer: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Wijnand Modderman <wijanand+aur@archlinux.nl>
+
+pkgname=cksfv
+pkgver=1.3.14
+pkgrel=2
+pkgdesc="SFV (Simple File Verification) Checker"
+arch=('i686' 'x86_64' 'mips64el')
+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 $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --package-prefix=$pkgdir
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make install
+ chmod 644 $pkgdir/usr/share/man/man1/$pkgname.1
+}
diff --git a/community/clamz/PKGBUILD b/community/clamz/PKGBUILD
new file mode 100644
index 000000000..ae887294d
--- /dev/null
+++ b/community/clamz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 57215 2011-10-24 18:32:20Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=clamz
+pkgver=0.5
+pkgrel=1
+pkgdesc="Command-line program to download MP3 files from Amazon.com's music store."
+arch=('i686' 'x86_64' 'mips64el')
+url='http://code.google.com/p/clamz/'
+license=('GPL3')
+depends=('libgcrypt' 'curl' 'expat' 'shared-mime-info' 'desktop-file-utils')
+install='clamz.install'
+source=("http://clamz.googlecode.com/files/clamz-${pkgver}.tar.gz")
+md5sums=('84543c9346b285bdc218879e241941a8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fix issue with update-mime-database
+ sed -i 's|$(UPDATE_DESKTOP_DATABASE)\ $(DESTDIR)$(applications_dir)||' Makefile.in
+ sed -i 's|$(UPDATE_MIME_DATABASE)\ $(DESTDIR)$(mime_dir)||' Makefile.in
+
+ ./configure --prefix=/usr/
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/clamz/clamz.install b/community/clamz/clamz.install
new file mode 100644
index 000000000..7daacb23a
--- /dev/null
+++ b/community/clamz/clamz.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-mime-database /usr/share/mime
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-mime-database /usr/share/mime
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-mime-database /usr/share/mime
+ update-desktop-database -q
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/clanlib/PKGBUILD b/community/clanlib/PKGBUILD
new file mode 100644
index 000000000..bf4035763
--- /dev/null
+++ b/community/clanlib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 60147 2011-12-06 05:24:01Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=clanlib
+pkgver=2.3.4
+pkgrel=1
+pkgdesc="A multi-platform game development library."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://clanlib.org/"
+license=('zlib')
+depends=('alsa-lib' 'libjpeg' 'libmikmod' 'libpng' 'libvorbis' 'libxi' 'libxmu' 'mesa' 'sdl_gfx' 'freetype2' 'pcre' 'sqlite3')
+makedepends=('doxygen' 'graphviz')
+options=('!libtool')
+source=(http://clanlib.org/download/releases-2.0/ClanLib-${pkgver}.tgz)
+md5sums=('cc89f632aa194399e909bbbd13beca1b')
+
+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..61359b1c2
--- /dev/null
+++ b/community/classpath/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 59865 2011-12-01 13:10:18Z 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=4
+pkgdesc="A free replacement for Sun's proprietary core Java class libraries."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/classpath/"
+license=('GPL')
+depends=('gtk2>=2.8' 'libxtst' 'libsm')
+makedepends=('gtk2>=2.8' 'libxtst' 'gconf' 'openjdk6')
+optdepends=('file' 'gconf')
+source=(ftp://ftp.gnu.org/gnu/classpath/$pkgname-$pkgver.tar.gz)
+md5sums=('90c6571b8b0309e372faa0f9f6255ea9')
+
+build() {
+ cd $srcdir/$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=
+ make EXAMPLESDIR= DESTDIR=$pkgdir install
+
+ rm -f $pkgdir/usr/bin/gappletviewer
+ rm -f $pkgdir/usr/bin/gjar
+ rm -f $pkgdir/usr/bin/gjarsigner
+ rm -f $pkgdir/usr/bin/gjavah
+ rm -f $pkgdir/usr/bin/gkeytool
+ rm -f $pkgdir/usr/bin/gnative2ascii
+ rm -f $pkgdir/usr/bin/gorbd
+ rm -f $pkgdir/usr/bin/grmic
+ rm -f $pkgdir/usr/bin/grmid
+ rm -f $pkgdir/usr/bin/grmiregistry
+ rm -f $pkgdir/usr/bin/gserialver
+ rm -f $pkgdir/usr/bin/gtnameserv
+ rm -f $pkgdir/usr/lib/logging.properties
+ rm -f $pkgdir/usr/lib/security/classpath.security
+ rm -f $pkgdir/usr/share/man/man1/gappletviewer.1*
+ rm -f $pkgdir/usr/share/man/man1/gcjh.1*
+ rm -f $pkgdir/usr/share/man/man1/gjar.1*
+ rm -f $pkgdir/usr/share/man/man1/gjarsigner.1*
+ rm -f $pkgdir/usr/share/man/man1/gjavah.1*
+ rm -f $pkgdir/usr/share/man/man1/gkeytool.1*
+ rm -f $pkgdir/usr/share/man/man1/gnative2ascii.1*
+ rm -f $pkgdir/usr/share/man/man1/gorbd.1*
+ rm -f $pkgdir/usr/share/man/man1/grmid.1*
+ rm -f $pkgdir/usr/share/man/man1/grmiregistry.1*
+ rm -f $pkgdir/usr/share/man/man1/gserialver.1*
+ rm -f $pkgdir/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..0f19cd85c
--- /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' 'mips64el')
+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..32f7ebcb0
--- /dev/null
+++ b/community/clementine/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 55879 2011-09-24 16:48:26Z 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=7
+pkgdesc="A music player and library organizer"
+url="http://www.clementine-player.org/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gstreamer0.10' 'taglib' 'glew' 'liblastfm' 'libgpod' 'libmtp' 'libplist' 'hicolor-icon-theme' 'qt' 'libimobiledevice')
+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
+ clementine-0.7.1-fix-devicekit.patch)
+sha1sums=('8b2025b8876f9f3fe33ef5001e0621f3a5d0f142'
+ 'd595e2746949363680e0d64fe2fb97b524c8d27c')
+install=clementine.install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../clementine-0.7.1-fix-devicekit.patch
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DSTATIC_SQLITE=0 -DENABLE_GIO=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/clementine/clementine-0.7.1-fix-devicekit.patch b/community/clementine/clementine-0.7.1-fix-devicekit.patch
new file mode 100644
index 000000000..797a2c864
--- /dev/null
+++ b/community/clementine/clementine-0.7.1-fix-devicekit.patch
@@ -0,0 +1,11 @@
+diff -Naur clementine-0.7.1.ori/src/config.h.in clementine-0.7.1/src/config.h.in
+--- clementine-0.7.1.ori/src/config.h.in 2011-03-29 12:16:15.000000000 -0700
++++ clementine-0.7.1/src/config.h.in 2011-05-09 16:00:26.505080057 -0700
+@@ -29,6 +29,7 @@
+ #cmakedefine HAVE_STATIC_SQLITE
+
+ #cmakedefine HAVE_DBUS
++#cmakedefine HAVE_DEVICEKIT
+ #cmakedefine HAVE_GIO
+ #cmakedefine HAVE_IMOBILEDEVICE
+ #cmakedefine HAVE_LIBARCHIVE
diff --git a/community/clementine/clementine.install b/community/clementine/clementine.install
new file mode 100644
index 000000000..2f0338d8a
--- /dev/null
+++ b/community/clementine/clementine.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+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..b3314f4e3
--- /dev/null
+++ b/community/clewn/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 55182 2011-09-05 09:01:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tardo <tardo@nagi-fanboi.net>
+
+pkgname=clewn
+pkgver=1.15
+pkgrel=5
+pkgdesc="gdb support for vim"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://clewn.sourceforge.net"
+license=('GPL')
+depends=("gvim" "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..64961231a
--- /dev/null
+++ b/community/clipgrab/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59252 2011-11-22 02:19:48Z ebelanger $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: thacrazze <thacrazze|googlemail|com>
+
+pkgname=clipgrab
+pkgver=3.1.3.0
+pkgrel=1
+pkgdesc='A video downloader and converter for YouTube, Veoh, DailyMotion, MyVideo, ...'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://clipgrab.de/'
+license=('GPL3')
+depends=('qt')
+optdepends=('ffmpeg: for some encodings')
+source=(http://clipgrab.de/download/${pkgname}-${pkgver}.tar.bz2
+ ${pkgname}.desktop)
+md5sums=('3e8f5ab9ef0144fa234cf3b725797123'
+ '9a141791f6952917c441050c3dac81ce')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ qmake
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -Dm755 ${pkgname} "$pkgdir/usr/bin/${pkgname}"
+ install -Dm644 icon.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/clucene/PKGBUILD b/community/clucene/PKGBUILD
new file mode 100644
index 000000000..ed52f0128
--- /dev/null
+++ b/community/clucene/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 49740 2011-06-20 20:01:57Z andrea $
+# Maintainer:
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=clucene
+pkgver=2.3.3.4
+pkgrel=1
+pkgdesc="A C++ port of Lucene: the high-performance, full-featured text search engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://clucene.sourceforge.net"
+license=('APACHE' 'LGPL')
+depends=('gcc-libs' 'zlib' 'boost-libs')
+makedepends=('cmake' 'boost')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-core-$pkgver.tar.gz")
+md5sums=('48d647fbd8ef8889e5a7f422c1bfda94')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../$pkgname-core-$pkgver \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
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..6962a2369
--- /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' 'mips64el')
+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..46484ec4b
--- /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' 'mips64el')
+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/collectd/PKGBUILD b/community/collectd/PKGBUILD
new file mode 100644
index 000000000..9d4d70ec6
--- /dev/null
+++ b/community/collectd/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 56935 2011-10-17 07:29:09Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Gerhard Brauer <gerhard.brauer@web.de>
+
+pkgname=collectd
+pkgver=5.0.1
+pkgrel=1
+pkgdesc='Daemon which collects system performance statistics periodically'
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ 'libperl.patch'
+ 'rc.d')
+sha1sums=('ec1bf97d21a27d9b53b20f7dc4fb61441b4e42e0'
+ 'b221352447b2d42cade4a65ced322bcff8a40366'
+ '0f441718d5519cb043b1130e5a1d0379078adbcc')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../libperl.patch
+ autoconf
+
+ ./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/libperl.patch b/community/collectd/libperl.patch
new file mode 100644
index 000000000..d6184f29d
--- /dev/null
+++ b/community/collectd/libperl.patch
@@ -0,0 +1,30 @@
+diff -aur old/configure.in new/configure.in
+--- old/configure.in 2011-09-29 20:38:56.725672831 +1000
++++ new/configure.in 2011-09-29 20:39:07.975658829 +1000
+@@ -2810,11 +2810,13 @@
+ then
+ SAVE_CFLAGS="$CFLAGS"
+ SAVE_LDFLAGS="$LDFLAGS"
++ SAVE_LIBS="$LIBS"
+ dnl ARCHFLAGS="" -> disable multi -arch on OSX (see Config_heavy.pl:fetch_string)
+ PERL_CFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ccopts`
+ PERL_LDFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ldopts`
+ CFLAGS="$CFLAGS $PERL_CFLAGS"
+ LDFLAGS="$LDFLAGS $PERL_LDFLAGS"
++ LIBS="$LIBS -L/usr/lib/perl5/core_perl/CORE -lperl"
+
+ AC_CACHE_CHECK([for libperl],
+ [c_cv_have_libperl],
+@@ -2833,7 +2835,10 @@
+ Nullsv);
+ ]]),
+ [c_cv_have_libperl="yes"],
+- [c_cv_have_libperl="no"]
++ [
++ c_cv_have_libperl="no"
++ LIBS="$SAVE_LIBS"
++ ]
+ )
+ )
+
+Only in new: configure.in.orig
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/commoncpp2/PKGBUILD b/community/commoncpp2/PKGBUILD
new file mode 100644
index 000000000..5eedfa17a
--- /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' 'mips64el')
+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..1f21e760f
--- /dev/null
+++ b/community/compiz-bcop/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 52296 2011-07-23 10:43:33Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Maintainer: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=compiz-bcop
+pkgver=0.8.8
+pkgrel=1
+pkgdesc="Compiz option code generator"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.compiz.org"
+license=('GPL')
+depends=('compiz-core>=0.8.8' 'libxslt')
+makedepends=('intltool' 'pkgconfig')
+conflicts=('compiz-bcop-git')
+source=(http://releases.compiz-fusion.org/$pkgver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('9210bd2a537480bdb11df0e3cc5f6d4548fd12da')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/compiz-fusion-plugins-extra/PKGBUILD b/community/compiz-fusion-plugins-extra/PKGBUILD
new file mode 100644
index 000000000..5698e5c6d
--- /dev/null
+++ b/community/compiz-fusion-plugins-extra/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 52300 2011-07-23 10:44:02Z rvanharen $
+# 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.8
+pkgrel=1
+pkgdesc="Compiz Fusion Extra plugins"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.compiz.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)
+sha1sums=('ce592993696c0b5d4e0bb13171897b4c25b3844e')
+
+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..08115867a
--- /dev/null
+++ b/community/compiz-fusion-plugins-main/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 52337 2011-07-23 11:20: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.8
+pkgrel=1
+pkgdesc="Compiz Fusion Main plugins"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.compiz.org"
+license=('GPL')
+depends=('compiz-core' 'libjpeg>=7' 'librsvg' 'compiz-bcop' 'libxdamage' 'libxcomposite'
+ 'libxinerama' 'startup-notification')
+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)
+sha1sums=('3c99841b744ae6c4a3edf2019626484880607dc6')
+
+build() {
+ cd "${srcdir}/compiz-plugins-main-${pkgver}"
+
+ CPPFLAGS="$CPPFLAGS -I/usr/include/compiz -I/usr/include/startup-notification-1.0 \
+ -I/usr/include/libxml2" ./configure --prefix=/usr --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd "${srcdir}/compiz-plugins-main-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..8f5e14815
--- /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.8
+pkgrel=2
+pkgdesc="Composite manager for Aiglx and Xgl"
+url="http://www.compiz.org/"
+license=('GPL' 'LGPL' 'MIT')
+arch=('i686' 'x86_64' 'mips64el')
+groups=('compiz' 'compiz-kde' 'compiz-gtk' 'compiz-fusion')
+makedepends=('intltool' 'gnome-control-center' 'libwnck' 'kdebase-workspace'
+ 'startup-notification' 'librsvg' 'libgl' 'dbus' 'mesa' 'libxslt' 'fuse' 'metacity')
+options=(!libtool !emptydirs)
+conflicts=('compiz' 'compiz-core-git' 'compiz-git')
+replaces=('compiz')
+source=(http://releases.compiz.org/0.8.8/compiz-$pkgver.tar.gz)
+sha1sums=('01d065db07f6fd6bcad51811ffba69221aff656e')
+
+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
+}
+
+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' 'metacity')
+ install=compiz-decorator-gtk.install
+
+ cd $srcdir/compiz-$pkgver
+
+ pushd gtk
+ make DESTDIR=$pkgdir install
+ 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}
+ 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..8d21fbbea
--- /dev/null
+++ b/community/compizconfig-backend-gconf/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 52306 2011-07-23 10:45:30Z 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.8
+pkgrel=1
+pkgdesc="Compizconfig backend for gconf"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+sha1sums=('3869e83a50e82caa4bfda5474a3bf44095ee78dc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --infodir=/usr/share/info \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/community/compizconfig-backend-kconfig4/PKGBUILD b/community/compizconfig-backend-kconfig4/PKGBUILD
new file mode 100644
index 000000000..c063ffd06
--- /dev/null
+++ b/community/compizconfig-backend-kconfig4/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 52303 2011-07-23 10:45:04Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=compizconfig-backend-kconfig4
+pkgver=0.8.8
+pkgrel=1
+pkgdesc="Compizconfig backend for kconfig4"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.compiz.org/"
+license=('GPL2')
+depends=('libcompizconfig' 'kdelibs' 'libxcomposite' 'libxinerama')
+makedepends=('cmake' 'automoc4')
+groups=('compiz-fusion-kde' 'compiz-fusion')
+source=("http://releases.compiz.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('d7a29339b47233ad53fe04ca0136fdb511b945ac')
+
+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/compizconfig-python/PKGBUILD b/community/compizconfig-python/PKGBUILD
new file mode 100644
index 000000000..3dd61035e
--- /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' 'mips64el')
+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..ddfb63ec2
--- /dev/null
+++ b/community/confuse/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# 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' 'mips64el')
+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..0cc4cc632
--- /dev/null
+++ b/community/conkeror-git/PKGBUILD
@@ -0,0 +1,56 @@
+# Contributor: Heeru Kiyura <M8R-p9i5nh@mailinator.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+_commit=b0882d615876ec7c1554e50b652bed79209da4d6
+pkgname=conkeror-git
+pkgver=1.0pre
+pkgrel=3
+pkgdesc="A highly programmable web browser based on Mozilla XULRunner."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://conkeror.mozdev.org/"
+license=('MPL' 'GPL' 'LGPL')
+depends=('xulrunner' 'desktop-file-utils')
+makedepends=('git')
+provides=('conkeror')
+source=(conkeror_gimpfile.xpm conkeror.sh)
+md5sums=('b592582a5b923db1707615564a95737f'
+ '11c6c76a2639254754b34a542f1965a1')
+install=conkeror-git.install
+
+__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,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/${__gitname}-build/debian/conkeror.desktop" \
+ "$pkgdir/usr/share/applications/conkeror.desktop"
+ rm -r "$pkgdir/usr/share/conkeror/debian"
+ install -Dm644 "$srcdir/conkeror_gimpfile.xpm" "$pkgdir/usr/share/pixmaps/conkeror_gimpfile.xpm"
+ install -Dm755 "$srcdir/conkeror.sh" "$pkgdir/usr/bin/conkeror"
+}
diff --git a/community/conkeror-git/conkeror-git.install b/community/conkeror-git/conkeror-git.install
new file mode 100644
index 000000000..308f27d33
--- /dev/null
+++ b/community/conkeror-git/conkeror-git.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/conkeror-git/conkeror.sh b/community/conkeror-git/conkeror.sh
new file mode 100644
index 000000000..963720513
--- /dev/null
+++ b/community/conkeror-git/conkeror.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec xulrunner /usr/share/conkeror/application.ini "$@"
diff --git a/community/conkeror-git/conkeror_gimpfile.xpm b/community/conkeror-git/conkeror_gimpfile.xpm
new file mode 100644
index 000000000..ee2dc0773
--- /dev/null
+++ b/community/conkeror-git/conkeror_gimpfile.xpm
@@ -0,0 +1,2251 @@
+/* XPM */
+static char * conkeror_gimpfile_xpm[] = {
+"337 274 1974 2",
+" c None",
+". c #BD8A7A",
+"+ c #F1D9A4",
+"@ c #587533",
+"# c #2F6B20",
+"$ c #347028",
+"% c #38732C",
+"& c #3D7630",
+"* c #437935",
+"= c #487D3C",
+"- c #4F8141",
+"; c #558447",
+"> c #558546",
+", c #4C7F3D",
+"' c #417935",
+") c #5C7736",
+"! c #9D9C64",
+"~ c #29671B",
+"{ c #2D6A1E",
+"] c #2C6A1E",
+"^ c #2D6A1F",
+"/ c #2C6A1F",
+"( c #2B6A1E",
+"_ c #2D6B1F",
+": c #326D25",
+"< c #39732C",
+"[ c #4B7E3E",
+"} c #578546",
+"| c #4C8040",
+"1 c #427934",
+"2 c #367129",
+"3 c #2C691E",
+"4 c #246314",
+"5 c #EBD49F",
+"6 c #266619",
+"7 c #36712A",
+"8 c #4E8040",
+"9 c #538346",
+"0 c #467B39",
+"a c #38722B",
+"b c #2B6A1D",
+"c c #246414",
+"d c #DAC691",
+"e c #2A681C",
+"f c #2C6A1D",
+"g c #2D6B21",
+"h c #39722A",
+"i c #558346",
+"j c #487D3B",
+"k c #39722B",
+"l c #2D6B20",
+"m c #246417",
+"n c #236415",
+"o c #497C3C",
+"p c #568246",
+"q c #326F25",
+"r c #256516",
+"s c #2B681C",
+"t c #336F25",
+"u c #417733",
+"v c #558147",
+"w c #457B37",
+"x c #336E25",
+"y c #2C691D",
+"z c #276618",
+"A c #246415",
+"B c #26631A",
+"C c #276219",
+"D c #266119",
+"E c #2D6620",
+"F c #437A36",
+"G c #4D7F3F",
+"H c #2B6A1F",
+"I c #276619",
+"J c #2D6B1E",
+"K c #2B681D",
+"L c #2A661C",
+"M c #27641B",
+"N c #256219",
+"O c #316A25",
+"P c #316D24",
+"Q c #28681A",
+"R c #246516",
+"S c #2B691D",
+"T c #2A671C",
+"U c #28651C",
+"V c #266219",
+"W c #2A651E",
+"X c #457A37",
+"Y c #417834",
+"Z c #2F6C20",
+"` c #2C6B1E",
+" . c #2B691B",
+".. c #27641A",
+"+. c #28641B",
+"@. c #3D7430",
+"#. c #2E6B20",
+"$. c #2E6B1F",
+"%. c #2D6C1F",
+"&. c #2A691C",
+"*. c #2A691B",
+"=. c #2C6B1F",
+"-. c #2B681E",
+";. c #29651B",
+">. c #27621A",
+",. c #27631C",
+"'. c #3F7631",
+"). c #306C22",
+"!. c #2D6C20",
+"~. c #2E6C1F",
+"{. c #2E6C20",
+"]. c #29691B",
+"^. c #27631A",
+"/. c #2A641D",
+"(. c #508042",
+"_. c #357028",
+":. c #2A691A",
+"<. c #29671D",
+"[. c #28631A",
+"}. c #2F6821",
+"|. c #4E8242",
+"1. c #407733",
+"2. c #2E6D20",
+"3. c #2D6D21",
+"4. c #26621A",
+"5. c #3A722F",
+"6. c #336F27",
+"7. c #2D6D20",
+"8. c #28691A",
+"9. c #29661B",
+"0. c #2D6720",
+"a. c #508142",
+"b. c #447B38",
+"c. c #2E6D21",
+"d. c #27681A",
+"e. c #467B38",
+"f. c #3C7630",
+"g. c #2D6C21",
+"h. c #2E6E21",
+"i. c #2F6E21",
+"j. c #2F6D21",
+"k. c #276818",
+"l. c #2E6C21",
+"m. c #2B671C",
+"n. c #266118",
+"o. c #366E29",
+"p. c #38712A",
+"q. c #266718",
+"r. c #2E6E20",
+"s. c #316924",
+"t. c #558347",
+"u. c #347027",
+"v. c #2E6E22",
+"w. c #2F6E22",
+"x. c #2F6F21",
+"y. c #266818",
+"z. c #2D6821",
+"A. c #558547",
+"B. c #548246",
+"C. c #2F6D20",
+"D. c #2F6F22",
+"E. c #246617",
+"F. c #2B691E",
+"G. c #29651C",
+"H. c #2C6720",
+"I. c #538246",
+"J. c #548347",
+"K. c #2E6F21",
+"L. c #256716",
+"M. c #29671C",
+"N. c #367027",
+"O. c #2F6F23",
+"P. c #306F22",
+"Q. c #236615",
+"R. c #2A681E",
+"S. c #28631B",
+"T. c #2F6921",
+"U. c #3A742C",
+"V. c #2E6F22",
+"W. c #2F7022",
+"X. c #2F7023",
+"Y. c #216515",
+"Z. c #336C26",
+"`. c #417833",
+" + c #307022",
+".+ c #307023",
+"++ c #216513",
+"@+ c #3D742F",
+"#+ c #497D3C",
+"$+ c #2F7123",
+"%+ c #226614",
+"&+ c #4A7F3C",
+"*+ c #578348",
+"=+ c #306D24",
+"-+ c #307123",
+";+ c #2B6C1E",
+">+ c #568248",
+",+ c #3B752F",
+"'+ c #307124",
+")+ c #317123",
+"!+ c #356D29",
+"~+ c #4A7F3E",
+"{+ c #306F23",
+"]+ c #307224",
+"^+ c #286B1B",
+"/+ c #276B1A",
+"(+ c #4C803E",
+"_+ c #357027",
+":+ c #317124",
+"<+ c #317224",
+"[+ c #477C3A",
+"}+ c #307122",
+"|+ c #2F7124",
+"1+ c #307024",
+"2+ c #317225",
+"3+ c #256218",
+"4+ c #2D7020",
+"5+ c #2D6E20",
+"6+ c #307225",
+"7+ c #317325",
+"8+ c #276C1A",
+"9+ c #384E16",
+"0+ c #2C681D",
+"a+ c #27631B",
+"b+ c #256118",
+"c+ c #367128",
+"d+ c #2D6D1F",
+"e+ c #307325",
+"f+ c #307324",
+"g+ c #317324",
+"h+ c #567834",
+"i+ c #296C1D",
+"j+ c #2F6923",
+"k+ c #508243",
+"l+ c #2F7024",
+"m+ c #307223",
+"n+ c #317326",
+"o+ c #327326",
+"p+ c #518244",
+"q+ c #317426",
+"r+ c #327425",
+"s+ c #327426",
+"t+ c #246917",
+"u+ c #2A671D",
+"v+ c #3B722F",
+"w+ c #326E24",
+"x+ c #327325",
+"y+ c #317425",
+"z+ c #2C7120",
+"A+ c #2A661D",
+"B+ c #2C661F",
+"C+ c #327526",
+"D+ c #327527",
+"E+ c #266C19",
+"F+ c #2D1616",
+"G+ c #2E1717",
+"H+ c #305716",
+"I+ c #518245",
+"J+ c #317526",
+"K+ c #327427",
+"L+ c #7B8B4D",
+"M+ c #C0A880",
+"N+ c #2B6E1E",
+"O+ c #28641A",
+"P+ c #427936",
+"Q+ c #317527",
+"R+ c #316C21",
+"S+ c #327627",
+"T+ c #266B19",
+"U+ c #2A681D",
+"V+ c #29641D",
+"W+ c #327628",
+"X+ c #337627",
+"Y+ c #2B7120",
+"Z+ c #317223",
+"`+ c #266218",
+" @ c #548547",
+".@ c #4B7F3F",
+"+@ c #337527",
+"@@ c #337628",
+"#@ c #246C18",
+"$@ c #2A5315",
+"%@ c #4B803F",
+"&@ c #447B36",
+"*@ c #327528",
+"=@ c #337728",
+"-@ c #327728",
+";@ c #BAAD7B",
+">@ c #2D6F1F",
+",@ c #2F6E20",
+"'@ c #437A35",
+")@ c #3D7531",
+"!@ c #312117",
+"~@ c #2E6D22",
+"{@ c #37702A",
+"]@ c #38722C",
+"^@ c #347729",
+"/@ c #337729",
+"(@ c #307525",
+"_@ c #BCA47D",
+":@ c #E4CC9B",
+"<@ c #28681B",
+"[@ c #2A661B",
+"}@ c #326A26",
+"|@ c #337829",
+"1@ c #3E2723",
+"2@ c #8A7359",
+"3@ c #CDB68A",
+"4@ c #2F7223",
+"5@ c #307125",
+"6@ c #337828",
+"7@ c #347828",
+"8@ c #246517",
+"9@ c #432C26",
+"0@ c #A68E6D",
+"a@ c #226215",
+"b@ c #317125",
+"c@ c #2C6620",
+"d@ c #316D23",
+"e@ c #337526",
+"f@ c #347829",
+"g@ c #34782A",
+"h@ c #EDD5A1",
+"i@ c #78604C",
+"j@ c #D8C092",
+"k@ c #2E7121",
+"l@ c #306D22",
+"m@ c #584135",
+"n@ c #C6AF85",
+"o@ c #BEAA7E",
+"p@ c #29651E",
+"q@ c #2F6D23",
+"r@ c #347728",
+"s@ c #347929",
+"t@ c #34792A",
+"u@ c #4D362D",
+"v@ c #2A6C1C",
+"w@ c #2A651D",
+"x@ c #337727",
+"y@ c #35792A",
+"z@ c #296D1E",
+"A@ c #2F1818",
+"B@ c #574034",
+"C@ c #D4BC8F",
+"D@ c #357929",
+"E@ c #347A2A",
+"F@ c #357A2A",
+"G@ c #34792B",
+"H@ c #236617",
+"I@ c #61493C",
+"J@ c #D0B98C",
+"K@ c #2B651F",
+"L@ c #35782A",
+"M@ c #347A2B",
+"N@ c #553E33",
+"O@ c #2E7223",
+"P@ c #38732A",
+"Q@ c #357A2B",
+"R@ c #316B24",
+"S@ c #3D752F",
+"T@ c #337528",
+"U@ c #35792B",
+"V@ c #357B2A",
+"W@ c #357B2B",
+"X@ c #307425",
+"Y@ c #2C6F1F",
+"Z@ c #427A36",
+"`@ c #367B2C",
+" # c #286D1E",
+".# c #2D1717",
+"+# c #77604C",
+"@# c #E7CF9D",
+"## c #4A7E3D",
+"$# c #357B2C",
+"%# c #226416",
+"&# c #A38B6B",
+"*# c #2E7022",
+"=# c #528448",
+"-# c #357C2C",
+";# c #442D27",
+"># c #718448",
+",# c #28651B",
+"'# c #548448",
+")# c #367C2C",
+"!# c #2E7425",
+"~# c #2E1716",
+"{# c #A99170",
+"]# c #38732B",
+"^# c #357C2D",
+"/# c #367C2D",
+"(# c #377C2C",
+"_# c #276B1D",
+":# c #DDC595",
+"<# c #316B25",
+"[# c #457A38",
+"}# c #377C2D",
+"|# c #9B9A65",
+"1# c #2A6B1C",
+"2# c #528546",
+"3# c #377D2D",
+"4# c #367D2D",
+"5# c #367D2E",
+"6# c #357C2B",
+"7# c #377D2E",
+"8# c #CCB489",
+"9# c #2D7122",
+"0# c #377E2D",
+"a# c #367E2E",
+"b# c #2E7424",
+"c# c #6B5343",
+"d# c #A78F6E",
+"e# c #2E6821",
+"f# c #377E2E",
+"g# c #266B1B",
+"h# c #988063",
+"i# c #307526",
+"j# c #29661C",
+"k# c #56874A",
+"l# c #367B2B",
+"m# c #BAAE7B",
+"n# c #2E1617",
+"o# c #B8A07B",
+"p# c #588749",
+"q# c #337929",
+"r# c #357A2C",
+"s# c #367E2D",
+"t# c #387F2E",
+"u# c #387F2F",
+"v# c #5B4438",
+"w# c #29631B",
+"x# c #3D7632",
+"y# c #377E2F",
+"z# c #347C2B",
+"A# c #286D1D",
+"B# c #37702D",
+"C# c #538647",
+"D# c #367D2C",
+"E# c #377F2F",
+"F# c #2E7423",
+"G# c #528547",
+"H# c #367A2B",
+"I# c #387E2F",
+"J# c #37802F",
+"K# c #256B1A",
+"L# c #2E7222",
+"M# c #3F7732",
+"N# c #387F30",
+"O# c #38802F",
+"P# c #D2BF8D",
+"Q# c #38712D",
+"R# c #33782A",
+"S# c #357829",
+"T# c #387E2E",
+"U# c #388030",
+"V# c #347628",
+"W# c #266319",
+"X# c #337B2C",
+"Y# c #236717",
+"Z# c #317427",
+"`# c #497E3C",
+" $ c #398030",
+".$ c #388130",
+"+$ c #388031",
+"@$ c #398130",
+"#$ c #2C7223",
+"$$ c #276319",
+"%$ c #2D691E",
+"&$ c #388131",
+"*$ c #246919",
+"=$ c #2F1717",
+"-$ c #2F1817",
+";$ c #286C1C",
+">$ c #337629",
+",$ c #276118",
+"'$ c #3D7530",
+")$ c #377F2E",
+"!$ c #398031",
+"~$ c #398131",
+"{$ c #301718",
+"]$ c #2F1718",
+"^$ c #2E1718",
+"/$ c #366E2B",
+"($ c #327727",
+"_$ c #3A8232",
+":$ c #301717",
+"<$ c #311817",
+"[$ c #301817",
+"}$ c #301818",
+"|$ c #2D7223",
+"1$ c #28661B",
+"2$ c #367028",
+"3$ c #398232",
+"4$ c #337B2A",
+"5$ c #311818",
+"6$ c #2E6822",
+"7$ c #398231",
+"8$ c #3A8231",
+"9$ c #2B7222",
+"0$ c #321918",
+"a$ c #321818",
+"b$ c #321718",
+"c$ c #311718",
+"d$ c #311717",
+"e$ c #307527",
+"f$ c #316E24",
+"g$ c #2E6D1F",
+"h$ c #398132",
+"i$ c #236918",
+"j$ c #331918",
+"k$ c #331818",
+"l$ c #321819",
+"m$ c #2B661E",
+"n$ c #508244",
+"o$ c #398332",
+"p$ c #341819",
+"q$ c #331919",
+"r$ c #341918",
+"s$ c #331819",
+"t$ c #2A691D",
+"u$ c #3A8233",
+"v$ c #351919",
+"w$ c #341919",
+"x$ c #351819",
+"y$ c #286C1D",
+"z$ c #4E8143",
+"A$ c #3A8332",
+"B$ c #31792A",
+"C$ c #361919",
+"D$ c #351818",
+"E$ c #341818",
+"F$ c #3A8333",
+"G$ c #2A7121",
+"H$ c #361A19",
+"I$ c #36191A",
+"J$ c #317727",
+"K$ c #3B8433",
+"L$ c #236818",
+"M$ c #371A19",
+"N$ c #37191A",
+"O$ c #371919",
+"P$ c #371A1A",
+"Q$ c #351918",
+"R$ c #2E1817",
+"S$ c #2C7020",
+"T$ c #2C691F",
+"U$ c #336F26",
+"V$ c #377F30",
+"W$ c #3A8433",
+"X$ c #3B8434",
+"Y$ c #381A19",
+"Z$ c #381919",
+"`$ c #256919",
+" % c #3A8434",
+".% c #39191A",
+"+% c #381A1A",
+"@% c #391A1A",
+"#% c #38191A",
+"$% c #3A732D",
+"%% c #378030",
+"&% c #398333",
+"*% c #3A8534",
+"=% c #3A1B1A",
+"-% c #3A1A1A",
+";% c #3A191A",
+">% c #391919",
+",% c #351A19",
+"'% c #27651B",
+")% c #336B27",
+"!% c #3B8333",
+"~% c #378130",
+"{% c #3A1A1B",
+"]% c #3B1A1B",
+"^% c #28651A",
+"/% c #26641A",
+"(% c #3A8432",
+"_% c #3B8534",
+":% c #327A2A",
+"<% c #3B1B1A",
+"[% c #3B1A1A",
+"}% c #3B1B1B",
+"|% c #391A19",
+"1% c #2F7526",
+"2% c #27651A",
+"3% c #2E6A1F",
+"4% c #3B8535",
+"5% c #2D7524",
+"6% c #3C1A1A",
+"7% c #3C1B1B",
+"8% c #3C1B1A",
+"9% c #2A701F",
+"0% c #28621A",
+"a% c #347B2B",
+"b% c #397F30",
+"c% c #3B8533",
+"d% c #286E1F",
+"e% c #3D1B1B",
+"f% c #3C1A1B",
+"g% c #3D1A1B",
+"h% c #391B1A",
+"i% c #2B6B1E",
+"j% c #518447",
+"k% c #3C8534",
+"l% c #236919",
+"m% c #3E1B1B",
+"n% c #3E1C1B",
+"o% c #3A1B1B",
+"p% c #276419",
+"q% c #306A24",
+"r% c #3C8635",
+"s% c #E5CF9B",
+"t% c #3E1C1C",
+"u% c #321817",
+"v% c #266419",
+"w% c #497E3D",
+"x% c #2F6D22",
+"y% c #3A8131",
+"z% c #3A8331",
+"A% c #3C8535",
+"B% c #3C8636",
+"C% c #401C1C",
+"D% c #3F1B1C",
+"E% c #3F1B1B",
+"F% c #3F1C1C",
+"G% c #3F1C1B",
+"H% c #3E1B1C",
+"I% c #487E3E",
+"J% c #336E24",
+"K% c #3B8635",
+"L% c #3B8636",
+"M% c #401C1B",
+"N% c #401B1B",
+"O% c #401B1C",
+"P% c #2F7424",
+"Q% c #2C661E",
+"R% c #3D8636",
+"S% c #388331",
+"T% c #411C1C",
+"U% c #2A6E1E",
+"V% c #367A2C",
+"W% c #377D2C",
+"X% c #3D8736",
+"Y% c #327C2C",
+"Z% c #411D1C",
+"`% c #421C1C",
+" & c #421D1C",
+".& c #367B2D",
+"+& c #28661C",
+"@& c #3C8736",
+"#& c #3D8637",
+"$& c #2D7725",
+"%& c #431C1C",
+"&& c #431D1D",
+"*& c #421C1D",
+"=& c #411C1D",
+"-& c #411C1B",
+";& c #3B8634",
+">& c #3C8637",
+",& c #3D8737",
+"'& c #286F1F",
+")& c #431C1D",
+"!& c #431D1C",
+"~& c #421D1D",
+"{& c #2A6A1E",
+"]& c #27661B",
+"^& c #49803F",
+"/& c #3B8334",
+"(& c #3C8837",
+"_& c #441D1D",
+":& c #3D1B1C",
+"<& c #28661A",
+"[& c #377229",
+"}& c #3D8837",
+"|& c #451D1D",
+"1& c #451D1C",
+"2& c #441D1C",
+"3& c #441C1D",
+"4& c #306A23",
+"5& c #3D8836",
+"6& c #461D1E",
+"7& c #461E1D",
+"8& c #441C1C",
+"9& c #327626",
+"0& c #3A8334",
+"a& c #3A8533",
+"b& c #3D8838",
+"c& c #461D1D",
+"d& c #461E1E",
+"e& c #471D1E",
+"f& c #471E1D",
+"g& c #451E1D",
+"h& c #3E6E29",
+"i& c #388232",
+"j& c #471E1E",
+"k& c #337C2C",
+"l& c #481E1E",
+"m& c #481E1D",
+"n& c #471D1D",
+"o& c #27661A",
+"p& c #3E8938",
+"q& c #2D7726",
+"r& c #491E1E",
+"s& c #491E1F",
+"t& c #481D1E",
+"u& c #327929",
+"v& c #367C2B",
+"w& c #3D8938",
+"x& c #28701F",
+"y& c #4A1F1E",
+"z& c #4A1E1E",
+"A& c #477C39",
+"B& c #3C8737",
+"C& c #3E8838",
+"D& c #236B19",
+"E& c #4A1F1F",
+"F& c #4B1E1E",
+"G& c #4B1F1E",
+"H& c #4A1E1F",
+"I& c #491F1F",
+"J& c #451C1D",
+"K& c #266A1B",
+"L& c #29681C",
+"M& c #457B39",
+"N& c #3C8836",
+"O& c #D3BF8D",
+"P& c #4B1F1F",
+"Q& c #4C1F1E",
+"R& c #4B1E1F",
+"S& c #491F1E",
+"T& c #718549",
+"U& c #26651A",
+"V& c #2F6A24",
+"W& c #3D8937",
+"X& c #3E8837",
+"Y& c #3E8A39",
+"Z& c #4C1F1F",
+"`& c #3C8735",
+" * c #4D1F1F",
+".* c #4C1E1F",
+"+* c #28671B",
+"@* c #578748",
+"#* c #4E201F",
+"$* c #4D1F20",
+"%* c #4E2020",
+"&* c #4E1F1F",
+"** c #451D1E",
+"=* c #307728",
+"-* c #27671B",
+";* c #548649",
+">* c #477C3B",
+",* c #2F7122",
+"'* c #377C2E",
+")* c #337C2D",
+"!* c #4F1F1F",
+"~* c #4E1F20",
+"{* c #411B1C",
+"]* c #E5CC9B",
+"^* c #2B7121",
+"/* c #2B6B1F",
+"(* c #477D3B",
+"_* c #3C742D",
+":* c #3E8939",
+"<* c #3E8A38",
+"[* c #2D7626",
+"}* c #4F2020",
+"|* c #4F1F20",
+"1* c #4F201F",
+"2* c #4D201F",
+"3* c #4C1F20",
+"4* c #CEB48A",
+"5* c #246A19",
+"6* c #336C27",
+"7* c #502020",
+"8* c #A4896A",
+"9* c #33792A",
+"0* c #3D8738",
+"a* c #276E1E",
+"b* c #512020",
+"c* c #502021",
+"d* c #502121",
+"e* c #502120",
+"f* c #512021",
+"g* c #512120",
+"h* c #451E1E",
+"i* c #846752",
+"j* c #28701D",
+"k* c #512121",
+"l* c #522020",
+"m* c #522021",
+"n* c #522120",
+"o* c #4D2020",
+"p* c #3D1C1B",
+"q* c #6B4E3F",
+"r* c #3E8937",
+"s* c #3E8A3A",
+"t* c #256C1C",
+"u* c #532021",
+"v* c #532120",
+"w* c #532121",
+"x* c #522121",
+"y* c #441D1E",
+"z* c #5D3F35",
+"A* c #2F7626",
+"B* c #29691D",
+"C* c #548446",
+"D* c #3C8634",
+"E* c #3F8A39",
+"F* c #3E8B39",
+"G* c #542121",
+"H* c #4B2C27",
+"I* c #296E1F",
+"J* c #28671C",
+"K* c #518547",
+"L* c #497F3D",
+"M* c #3D8939",
+"N* c #3F8A3A",
+"O* c #246B1A",
+"P* c #427835",
+"Q* c #3F8B3A",
+"R* c #226918",
+"S* c #552121",
+"T* c #552221",
+"U* c #542122",
+"V* c #ECD4A0",
+"W* c #F0D8A3",
+"X* c #3F7632",
+"Y* c #3F8939",
+"Z* c #226919",
+"`* c #562122",
+" = c #562121",
+".= c #562221",
+"+= c #552122",
+"@= c #D5BC8F",
+"#= c #356C27",
+"$= c #3E7129",
+"%= c #562222",
+"&= c #572222",
+"*= c #BBA07A",
+"== c #572122",
+"-= c #582222",
+";= c #8B6E57",
+">= c #2F7525",
+",= c #582223",
+"'= c #582322",
+")= c #572221",
+"!= c #80624D",
+"~= c #29641B",
+"{= c #3C8536",
+"]= c #592222",
+"^= c #582323",
+"/= c #592223",
+"(= c #69493C",
+"_= c #4A7831",
+":= c #388231",
+"<= c #592323",
+"[= c #5A2323",
+"}= c #592322",
+"|= c #5A2322",
+"1= c #552222",
+"2= c #715343",
+"3= c #256119",
+"4= c #5A2223",
+"5= c #5B2322",
+"6= c #5B2323",
+"7= c #66463A",
+"8= c #276218",
+"9= c #3F8B3B",
+"0= c #E4CD9A",
+"a= c #5A2222",
+"b= c #5B2222",
+"c= c #745544",
+"d= c #357D2C",
+"e= c #408B3A",
+"f= c #5C2323",
+"g= c #5C2424",
+"h= c #5B2223",
+"i= c #481D1D",
+"j= c #6A493C",
+"k= c #347A29",
+"l= c #408B3B",
+"m= c #5C2324",
+"n= c #5C2423",
+"o= c #5D2323",
+"p= c #5D2423",
+"q= c #5D2324",
+"r= c #5B2423",
+"s= c #572121",
+"t= c #3E8B3A",
+"u= c #408C3B",
+"v= c #5D2424",
+"w= c #5E2423",
+"x= c #532020",
+"y= c #27671C",
+"z= c #266519",
+"A= c #5F2525",
+"B= c #5F2424",
+"C= c #5F2524",
+"D= c #5F2425",
+"E= c #602525",
+"F= c #5E2424",
+"G= c #5E2324",
+"H= c #602524",
+"I= c #E5CD9B",
+"J= c #2E7224",
+"K= c #612626",
+"L= c #612526",
+"M= c #622626",
+"N= c #612525",
+"O= c #602526",
+"P= c #542222",
+"Q= c #CFB58A",
+"R= c #2C7122",
+"S= c #632626",
+"T= c #642727",
+"U= c #632627",
+"V= c #642627",
+"W= c #642626",
+"X= c #632726",
+"Y= c #642726",
+"Z= c #A08365",
+"`= c #2B7020",
+" - c #652827",
+".- c #652828",
+"+- c #662827",
+"@- c #652727",
+"#- c #652627",
+"$- c #632727",
+"%- c #572322",
+"&- c #765746",
+"*- c #397F2F",
+"=- c #3D8635",
+"-- c #408A3A",
+";- c #642828",
+">- c #652728",
+",- c #662929",
+"'- c #672929",
+")- c #672928",
+"!- c #682929",
+"~- c #542120",
+"{- c #56332D",
+"]- c #266C1D",
+"^- c #682A2A",
+"/- c #6A2B2B",
+"(- c #692A2A",
+"_- c #682829",
+":- c #672828",
+"<- c #662828",
+"[- c #542221",
+"}- c #276B1B",
+"|- c #27661C",
+"1- c #3F8B39",
+"2- c #682A29",
+"3- c #692B2B",
+"4- c #6B2B2B",
+"5- c #6A2C2B",
+"6- c #6B2C2C",
+"7- c #6B2C2B",
+"8- c #6A2A2A",
+"9- c #5E2425",
+"0- c #246A1A",
+"a- c #2F6822",
+"b- c #3A8132",
+"c- c #6C2D2D",
+"d- c #6C2D2E",
+"e- c #6D2D2D",
+"f- c #6D2E2D",
+"g- c #6C2D2C",
+"h- c #6C2C2C",
+"i- c #662728",
+"j- c #236618",
+"k- c #3B8435",
+"l- c #6D2E2F",
+"m- c #6D2E2E",
+"n- c #6F2F2F",
+"o- c #6E2F2F",
+"p- c #702F30",
+"q- c #703030",
+"r- c #6F302F",
+"s- c #6F2F30",
+"t- c #70302F",
+"u- c #6E2F2E",
+"v- c #6E2E2E",
+"w- c #6B2D2C",
+"x- c #6D2F2F",
+"y- c #6E302F",
+"z- c #6F3031",
+"A- c #713131",
+"B- c #713132",
+"C- c #723231",
+"D- c #723132",
+"E- c #723232",
+"F- c #733232",
+"G- c #733132",
+"H- c #713130",
+"I- c #723131",
+"J- c #5E2524",
+"K- c #5E2525",
+"L- c #4C1E1E",
+"M- c #728549",
+"N- c #497F3E",
+"O- c #538446",
+"P- c #378131",
+"Q- c #6E3030",
+"R- c #703131",
+"S- c #703232",
+"T- c #723233",
+"U- c #743333",
+"V- c #753333",
+"W- c #753434",
+"X- c #753435",
+"Y- c #763434",
+"Z- c #743232",
+"`- c #4D1E1F",
+" ; c #548546",
+".; c #723333",
+"+; c #733333",
+"@; c #763534",
+"#; c #773535",
+"$; c #773635",
+"%; c #783535",
+"&; c #773435",
+"*; c #692A29",
+"=; c #662829",
+"-; c #50201F",
+";; c #E3CC9A",
+">; c #763535",
+",; c #783636",
+"'; c #793636",
+"); c #783737",
+"!; c #793838",
+"~; c #7A3838",
+"{; c #793737",
+"]; c #7A3737",
+"^; c #7A3738",
+"/; c #793637",
+"(; c #783635",
+"_; c #753334",
+":; c #662928",
+"<; c #642728",
+"[; c #5D2524",
+"}; c #357D2E",
+"|; c #773636",
+"1; c #793939",
+"2; c #7A3839",
+"3; c #7C3A3A",
+"4; c #7D3A3B",
+"5; c #7E3B3B",
+"6; c #7D3A3A",
+"7; c #7B3939",
+"8; c #7B3839",
+"9; c #793736",
+"0; c #783736",
+"a; c #733131",
+"b; c #6E2E2F",
+"c; c #642827",
+"d; c #367C2E",
+"e; c #7A3939",
+"f; c #7B3B3A",
+"g; c #7C3B3A",
+"h; c #7D3B3B",
+"i; c #7D3B3C",
+"j; c #7F3C3D",
+"k; c #803D3D",
+"l; c #7F3C3C",
+"m; c #7F3C3B",
+"n; c #7E3A3B",
+"o; c #7B3938",
+"p; c #6D2F2E",
+"q; c #6B2D2D",
+"r; c #672A2A",
+"s; c #4C2020",
+"t; c #491D1E",
+"u; c #2A691E",
+"v; c #337B2B",
+"w; c #7B3A3A",
+"x; c #7F3D3D",
+"y; c #803D3E",
+"z; c #813E3E",
+"A; c #823F3F",
+"B; c #833F40",
+"C; c #823E3F",
+"D; c #823E3E",
+"E; c #7A3837",
+"F; c #602625",
+"G; c #5C2524",
+"H; c #501F20",
+"I; c #7E3C3C",
+"J; c #803E3E",
+"K; c #834040",
+"L; c #844141",
+"M; c #854242",
+"N; c #864242",
+"O; c #864241",
+"P; c #854241",
+"Q; c #854142",
+"R; c #843F3F",
+"S; c #803C3C",
+"T; c #7C3A39",
+"U; c #783837",
+"V; c #6C2E2E",
+"W; c #67292A",
+"X; c #632728",
+"Y; c #327A29",
+"Z; c #7F3E3E",
+"`; c #813F3F",
+" > c #874343",
+".> c #874344",
+"+> c #884444",
+"@> c #894544",
+"#> c #894444",
+"$> c #894545",
+"%> c #894445",
+"&> c #884443",
+"*> c #874242",
+"=> c #833F3F",
+"-> c #7B3A39",
+";> c #6C2E2F",
+">> c #6A2C2C",
+",> c #682A2B",
+"'> c #5D2425",
+")> c #337626",
+"!> c #568649",
+"~> c #2F7827",
+"{> c #824040",
+"]> c #874443",
+"^> c #894646",
+"/> c #8A4646",
+"(> c #8B4747",
+"_> c #8B4646",
+":> c #8C4646",
+"<> c #874342",
+"[> c #844041",
+"}> c #763635",
+"|> c #743334",
+"1> c #5F2626",
+"2> c #2E6B1E",
+"3> c #317827",
+"4> c #844242",
+"5> c #864444",
+"6> c #884545",
+"7> c #8A4747",
+"8> c #8D4847",
+"9> c #8D4848",
+"0> c #8D4948",
+"a> c #8D4949",
+"b> c #8C4647",
+"c> c #864343",
+"d> c #864342",
+"e> c #763636",
+"f> c #713232",
+"g> c #692C2B",
+"h> c #66292A",
+"i> c #642928",
+"j> c #602626",
+"k> c #286319",
+"l> c #398331",
+"m> c #2F7625",
+"n> c #874444",
+"o> c #884645",
+"p> c #8A4746",
+"q> c #8B4848",
+"r> c #8C4949",
+"s> c #8E4A49",
+"t> c #8F4B4B",
+"u> c #904B4B",
+"v> c #904B4C",
+"w> c #904B4A",
+"x> c #8F4A4A",
+"y> c #8C4746",
+"z> c #854342",
+"A> c #743434",
+"B> c #692C2C",
+"C> c #672A2B",
+"D> c #2F6A23",
+"E> c #884546",
+"F> c #8E4A4B",
+"G> c #8F4C4C",
+"H> c #914C4C",
+"I> c #924C4C",
+"J> c #914C4B",
+"K> c #8E4A4A",
+"L> c #763536",
+"M> c #733433",
+"N> c #6F3030",
+"O> c #6C2F2E",
+"P> c #682B2B",
+"Q> c #622726",
+"R> c #5B2424",
+"S> c #327828",
+"T> c #2E7523",
+"U> c #8A4847",
+"V> c #8B4849",
+"W> c #8D494A",
+"X> c #904C4C",
+"Y> c #914D4D",
+"Z> c #924E4E",
+"`> c #934E4E",
+" , c #944E4E",
+"., c #944E4F",
+"+, c #934D4E",
+"@, c #904A4A",
+"#, c #8D4747",
+"$, c #7C3B3B",
+"%, c #773637",
+"&, c #743535",
+"*, c #6F3131",
+"=, c #6A2C2D",
+"-, c #652929",
+";, c #622727",
+">, c #5B2324",
+",, c #317627",
+"', c #8B4949",
+"), c #8E4B4B",
+"!, c #904D4D",
+"~, c #924E4F",
+"{, c #934F4E",
+"], c #944F4F",
+"^, c #954F4F",
+"/, c #955050",
+"(, c #95504F",
+"_, c #924D4E",
+":, c #8B4748",
+"<, c #7A3A3A",
+"[, c #773737",
+"}, c #6C2F2F",
+"|, c #6B2E2E",
+"1, c #672B2A",
+"2, c #582221",
+"3, c #307524",
+"4, c #2B7220",
+"5, c #8D4A4A",
+"6, c #8F4C4B",
+"7, c #914F4E",
+"8, c #93504F",
+"9, c #945150",
+"0, c #945151",
+"a, c #965151",
+"b, c #965152",
+"c, c #965251",
+"d, c #965252",
+"e, c #924D4D",
+"f, c #8B4847",
+"g, c #894645",
+"h, c #7B3B3B",
+"i, c #783939",
+"j, c #733334",
+"k, c #632828",
+"l, c #5A2324",
+"m, c #2D7123",
+"n, c #2A651F",
+"o, c #914E4E",
+"p, c #975454",
+"q, c #975352",
+"r, c #975353",
+"s, c #985353",
+"t, c #975253",
+"u, c #975252",
+"v, c #975251",
+"w, c #955150",
+"x, c #945050",
+"y, c #934F4F",
+"z, c #8C4848",
+"A, c #884445",
+"B, c #823F40",
+"C, c #793839",
+"D, c #763736",
+"E, c #753535",
+"F, c #692D2D",
+"G, c #904E4E",
+"H, c #914F4F",
+"I, c #945251",
+"J, c #975554",
+"K, c #985554",
+"L, c #995555",
+"M, c #995655",
+"N, c #985454",
+"O, c #935050",
+"P, c #924F4E",
+"Q, c #884646",
+"R, c #854343",
+"S, c #824142",
+"T, c #803F3F",
+"U, c #7D3C3C",
+"V, c #773736",
+"W, c #713333",
+"X, c #6E3131",
+"Y, c #6A2E2D",
+"Z, c #662A2A",
+"`, c #642929",
+" ' c #2B6F1F",
+".' c #28651D",
+"+' c #91504E",
+"@' c #995856",
+"#' c #9B5A57",
+"$' c #9B5C58",
+"%' c #9C5C59",
+"&' c #9C5A58",
+"*' c #9A5756",
+"=' c #9A5655",
+"-' c #94504F",
+";' c #914E4D",
+">' c #834141",
+",' c #7A3B3B",
+"'' c #773838",
+")' c #6D3030",
+"!' c #612727",
+"~' c #5A2424",
+"{' c #296E1D",
+"]' c #37722A",
+"^' c #935251",
+"/' c #995956",
+"(' c #9F5F5B",
+"_' c #9F605C",
+":' c #A0605C",
+"<' c #9E5F5A",
+"[' c #9E5C5A",
+"}' c #9B5856",
+"|' c #9A5555",
+"1' c #894647",
+"2' c #834242",
+"3' c #753637",
+"4' c #733434",
+"5' c #6B2F2F",
+"6' c #682C2C",
+"7' c #672B2B",
+"8' c #5A2423",
+"9' c #276A1B",
+"0' c #2C6B20",
+"a' c #4A803F",
+"b' c #935452",
+"c' c #985A56",
+"d' c #9D5E5A",
+"e' c #A0625D",
+"f' c #A36560",
+"g' c #A36660",
+"h' c #A2635E",
+"i' c #A05F5C",
+"j' c #9A5857",
+"k' c #995654",
+"l' c #965353",
+"m' c #955151",
+"n' c #924F4F",
+"o' c #8C4A49",
+"p' c #894747",
+"q' c #874545",
+"r' c #7D3E3D",
+"s' c #703231",
+"t' c #642829",
+"u' c #612627",
+"v' c #27691A",
+"w' c #2B691F",
+"x' c #9B5D59",
+"y' c #A0635D",
+"z' c #A36761",
+"A' c #A66A63",
+"B' c #A76B64",
+"C' c #A56762",
+"D' c #A2635F",
+"E' c #A05E5B",
+"F' c #9B5A58",
+"G' c #955152",
+"H' c #814040",
+"I' c #7E3E3E",
+"J' c #723434",
+"K' c #703132",
+"L' c #6B2F2E",
+"M' c #662B2B",
+"N' c #622828",
+"O' c #5E2626",
+"P' c #256A18",
+"Q' c #9D605B",
+"R' c #A96E66",
+"S' c #A96F66",
+"T' c #A86C64",
+"U' c #A1615E",
+"V' c #9D5C59",
+"W' c #9A5757",
+"X' c #8D4B4B",
+"Y' c #894748",
+"Z' c #864545",
+"`' c #7D3E3E",
+" ) c #753636",
+".) c #713434",
+"+) c #6F3231",
+"@) c #6D2F30",
+"#) c #6A2E2E",
+"$) c #226616",
+"%) c #467C3A",
+"&) c #9F615C",
+"*) c #A46862",
+"=) c #A86D65",
+"-) c #AA7067",
+";) c #AB7168",
+">) c #AA7068",
+",) c #A66963",
+"') c #9D5D5A",
+")) c #9A5957",
+"!) c #8A4949",
+"~) c #854545",
+"{) c #824242",
+"]) c #7C3D3D",
+"^) c #753536",
+"/) c #682B2C",
+"() c #632928",
+"_) c #226517",
+":) c #398233",
+"<) c #4D7932",
+"[) c #9E625D",
+"}) c #A46962",
+"|) c #A86E66",
+"1) c #AB7068",
+"2) c #AB7269",
+"3) c #A2645F",
+"4) c #9E5E5B",
+"5) c #975453",
+"6) c #955353",
+"7) c #955252",
+"8) c #8F4D4D",
+"9) c #8C4A4A",
+"0) c #8A4848",
+"a) c #854444",
+"b) c #804040",
+"c) c #743636",
+"d) c #713433",
+"e) c #672C2C",
+"f) c #5E2625",
+"g) c #9D615C",
+"h) c #A76C64",
+"i) c #A96F67",
+"j) c #AA6F67",
+"k) c #A76D65",
+"l) c #A0625E",
+"m) c #9B5C59",
+"n) c #985756",
+"o) c #965553",
+"p) c #925050",
+"q) c #904F4F",
+"r) c #8E4C4C",
+"s) c #864646",
+"t) c #854445",
+"u) c #793B3B",
+"v) c #763838",
+"w) c #743534",
+"x) c #713334",
+"y) c #6E3231",
+"z) c #692D2C",
+"A) c #652A2B",
+"B) c #622929",
+"C) c #592423",
+"D) c #526F32",
+"E) c #357B2D",
+"F) c #A0645E",
+"G) c #A76C65",
+"H) c #A86C65",
+"I) c #9F5F5C",
+"J) c #975655",
+"K) c #925151",
+"L) c #8E4D4D",
+"M) c #8C4B4B",
+"N) c #8B4A4A",
+"O) c #884747",
+"P) c #844444",
+"Q) c #814141",
+"R) c #7E3F3F",
+"S) c #7B3C3C",
+"T) c #783A3A",
+"U) c #753737",
+"V) c #6F3232",
+"W) c #6B2E2F",
+"X) c #682D2C",
+"Y) c #5D2526",
+"Z) c #707B46",
+"`) c #9D5F5A",
+" ! c #A46861",
+".! c #A46761",
+"+! c #A16660",
+"@! c #9F625D",
+"#! c #985755",
+"$! c #945252",
+"%! c #935151",
+"&! c #915050",
+"*! c #8E4E4E",
+"=! c #8D4C4C",
+"-! c #8A4849",
+";! c #874747",
+">! c #834343",
+",! c #7C3E3E",
+"'! c #763939",
+")! c #723435",
+"!! c #682D2D",
+"~! c #652A2A",
+"{! c #602727",
+"]! c #5D2626",
+"^! c #5D2525",
+"/! c #985A57",
+"(! c #9D615B",
+"_! c #9F615D",
+":! c #9E615D",
+"<! c #9D5F5B",
+"[! c #9A5C58",
+"}! c #975855",
+"|! c #945453",
+"1! c #925251",
+"2! c #8F4E4E",
+"3! c #8E4D4C",
+"4! c #8C4B4A",
+"5! c #864645",
+"6! c #7B3C3B",
+"7! c #733635",
+"8! c #703333",
+"9! c #6A2D2D",
+"0! c #672D2D",
+"a! c #622928",
+"b! c #5D2625",
+"c! c #5C2625",
+"d! c #A6986C",
+"e! c #316A24",
+"f! c #935351",
+"g! c #955754",
+"h! c #975956",
+"i! c #985957",
+"j! c #955554",
+"k! c #8C4B4C",
+"l! c #894848",
+"m! c #7A3B3C",
+"n! c #783B3B",
+"o! c #753736",
+"p! c #6F3333",
+"q! c #6A2E2F",
+"r! c #672C2D",
+"s! c #662B2C",
+"t! c #642B2B",
+"u! c #612828",
+"v! c #5B2524",
+"w! c #8D4E4D",
+"x! c #90504F",
+"y! c #925250",
+"z! c #925351",
+"A! c #8D4D4D",
+"B! c #8C4C4B",
+"C! c #8A4A4A",
+"D! c #804242",
+"E! c #7B3D3D",
+"F! c #783B3A",
+"G! c #6A2F2F",
+"H! c #63292A",
+"I! c #A5986C",
+"J! c #447A38",
+"K! c #8E985C",
+"L! c #8C4D4C",
+"M! c #8E4F4E",
+"N! c #8E4F4D",
+"O! c #8E4E4D",
+"P! c #8A4A49",
+"Q! c #884848",
+"R! c #864747",
+"S! c #7F4040",
+"T! c #7C3E3D",
+"U! c #793A3B",
+"V! c #773A39",
+"W! c #733535",
+"X! c #6F3332",
+"Y! c #6D3130",
+"Z! c #692D2E",
+"`! c #672C2B",
+" ~ c #642A2A",
+".~ c #5F2727",
+"+~ c #5C2525",
+"@~ c #884949",
+"#~ c #8B4B4B",
+"$~ c #894949",
+"%~ c #864647",
+"&~ c #834444",
+"*~ c #814242",
+"=~ c #804141",
+"-~ c #7C3D3E",
+";~ c #793C3B",
+">~ c #793A3A",
+",~ c #763839",
+"'~ c #6E3232",
+")~ c #6C3030",
+"!~ c #692F2F",
+"~~ c #652B2B",
+"{~ c #5C2526",
+"]~ c #5A2524",
+"^~ c #D7C091",
+"/~ c #864847",
+"(~ c #874748",
+"_~ c #884948",
+":~ c #884849",
+"<~ c #894948",
+"[~ c #89494A",
+"}~ c #874646",
+"|~ c #864746",
+"1~ c #844544",
+"2~ c #824342",
+"3~ c #814142",
+"4~ c #7F4141",
+"5~ c #783A3B",
+"6~ c #773939",
+"7~ c #743737",
+"8~ c #713435",
+"9~ c #6A3030",
+"0~ c #5B2525",
+"a~ c #592424",
+"b~ c #844646",
+"c~ c #874848",
+"d~ c #874949",
+"e~ c #854647",
+"f~ c #854646",
+"g~ c #834544",
+"h~ c #824343",
+"i~ c #814342",
+"j~ c #7E403F",
+"k~ c #7A3C3C",
+"l~ c #713535",
+"m~ c #6B302F",
+"n~ c #692E2E",
+"o~ c #652B2C",
+"p~ c #572323",
+"q~ c #39802F",
+"r~ c #824443",
+"s~ c #834545",
+"t~ c #844645",
+"u~ c #824344",
+"v~ c #773A3A",
+"w~ c #6E3132",
+"x~ c #692F30",
+"y~ c #622829",
+"z~ c #5E2727",
+"A~ c #5B2526",
+"B~ c #2C7322",
+"C~ c #7F4241",
+"D~ c #7D3F3F",
+"E~ c #7C3E3F",
+"F~ c #793C3C",
+"G~ c #753838",
+"H~ c #753837",
+"I~ c #723635",
+"J~ c #6D3132",
+"K~ c #6C3130",
+"L~ c #69302F",
+"M~ c #612829",
+"N~ c #602828",
+"O~ c #326D23",
+"P~ c #286E1C",
+"Q~ c #7D3F40",
+"R~ c #7E4040",
+"S~ c #7C3F3F",
+"T~ c #763A3A",
+"U~ c #743837",
+"V~ c #733636",
+"W~ c #703534",
+"X~ c #6F3434",
+"Y~ c #6D3333",
+"Z~ c #6B3030",
+"`~ c #662C2C",
+" { c #612928",
+".{ c #5E2627",
+"+{ c #B9B07B",
+"@{ c #7A3D3D",
+"#{ c #7B3E3E",
+"${ c #7B3D3E",
+"%{ c #793D3C",
+"&{ c #773B3B",
+"*{ c #76393A",
+"={ c #753938",
+"-{ c #713536",
+";{ c #703535",
+">{ c #6E3333",
+",{ c #6D3232",
+"'{ c #6B3130",
+"){ c #662D2D",
+"!{ c #5D2727",
+"~{ c #5A2525",
+"{{ c #582424",
+"]{ c #773A3B",
+"^{ c #783C3C",
+"/{ c #773C3B",
+"({ c #773B3A",
+"_{ c #753939",
+":{ c #733838",
+"<{ c #723737",
+"[{ c #703435",
+"}{ c #6C3132",
+"|{ c #682E2E",
+"1{ c #672E2E",
+"2{ c #632A2B",
+"3{ c #632A2A",
+"4{ c #5F2828",
+"5{ c #5C2626",
+"6{ c #562223",
+"7{ c #29651D",
+"8{ c #743939",
+"9{ c #743839",
+"0{ c #733737",
+"a{ c #723837",
+"b{ c #723736",
+"c{ c #6C3232",
+"d{ c #662E2E",
+"e{ c #632B2A",
+"f{ c #5C2627",
+"g{ c #6F3535",
+"h{ c #713636",
+"i{ c #713637",
+"j{ c #703635",
+"k{ c #6B3131",
+"l{ c #682F2F",
+"m{ c #652C2B",
+"n{ c #622A2A",
+"o{ c #5A2425",
+"p{ c #2A661E",
+"q{ c #6E3434",
+"r{ c #6E3433",
+"s{ c #6B3031",
+"t{ c #652C2C",
+"u{ c #632C2C",
+"v{ c #612929",
+"w{ c #5E2828",
+"x{ c #5C2727",
+"y{ c #5B2626",
+"z{ c #582324",
+"A{ c #6B3132",
+"B{ c #6C3231",
+"C{ c #6B3232",
+"D{ c #6A3130",
+"E{ c #682E2F",
+"F{ c #672E2F",
+"G{ c #652D2C",
+"H{ c #632B2B",
+"I{ c #602929",
+"J{ c #5D2828",
+"K{ c #592324",
+"L{ c #562323",
+"M{ c #3D1B1A",
+"N{ c #2E6823",
+"O{ c #683030",
+"P{ c #682F30",
+"Q{ c #68302F",
+"R{ c #672F2F",
+"S{ c #672D2E",
+"T{ c #652C2D",
+"U{ c #642C2C",
+"V{ c #61292A",
+"W{ c #5A2526",
+"X{ c #572423",
+"Y{ c #3E7530",
+"Z{ c #9D9B65",
+"`{ c #642D2D",
+" ] c #652E2D",
+".] c #652E2E",
+"+] c #642E2D",
+"@] c #642C2D",
+"#] c #612A2A",
+"$] c #5F2929",
+"%] c #572324",
+"&] c #572424",
+"*] c #481E1F",
+"=] c #366D29",
+"-] c #622B2B",
+";] c #622B2C",
+">] c #632C2B",
+",] c #622B2A",
+"'] c #5D2728",
+")] c #5A2625",
+"!] c #592525",
+"~] c #562423",
+"{] c #5F2A2A",
+"]] c #602A2A",
+"^] c #602A29",
+"/] c #60292A",
+"(] c #5E2928",
+"_] c #5E2929",
+":] c #5B2627",
+"<] c #5D2829",
+"[] c #5D2929",
+"}] c #5E2827",
+"|] c #5A2726",
+"1] c #5A2727",
+"2] c #552323",
+"3] c #327525",
+"4] c #2F7725",
+"5] c #5A2626",
+"6] c #5A2627",
+"7] c #592625",
+"8] c #592626",
+"9] c #592524",
+"0] c #592425",
+"a] c #562322",
+"b] c #A5976B",
+"c] c #3E7732",
+"d] c #2B701F",
+"e] c #582425",
+"f] c #562324",
+"g] c #226314",
+"h] c #26691A",
+"i] c #562424",
+"j] c #552322",
+"k] c #266719",
+"l] c #552223",
+"m] c #532221",
+"n] c #3E7632",
+"o] c #532222",
+"p] c #391A1B",
+"q] c #2E6B21",
+"r] c #C5A981",
+"s] c #522122",
+"t] c #522222",
+"u] c #532122",
+"v] c #29631C",
+"w] c #307726",
+"x] c #6D493D",
+"y] c #614439",
+"z] c #DBC193",
+"A] c #46211F",
+"B] c #391C1B",
+"C] c #9A7F63",
+"D] c #2A671E",
+"E] c #256818",
+"F] c #AE9170",
+"G] c #4E312A",
+"H] c #516E31",
+"I] c #2D6822",
+"J] c #C0AB7E",
+"K] c #8D6F57",
+"L] c #4D1F1E",
+"M] c #765645",
+"N] c #58372E",
+"O] c #4C201F",
+"P] c #E8D09D",
+"Q] c #3D1C1C",
+"R] c #361918",
+"S] c #BBA07B",
+"T] c #472824",
+"U] c #326820",
+"V] c #8C6E57",
+"W] c #CCB1A1",
+"X] c #DFC696",
+"Y] c #412220",
+"Z] c #371D1B",
+"`] c #D8C091",
+" ^ c #6F5041",
+".^ c #C1A6A1",
+"+^ c #B0958D",
+"@^ c #4A2C28",
+"#^ c #361C1B",
+"$^ c #4F2F29",
+"%^ c #5B4337",
+"&^ c #4A7E3E",
+"*^ c #947878",
+"=^ c #3C221F",
+"-^ c #407834",
+";^ c #DAC192",
+">^ c #BEA2A1",
+",^ c #9D827F",
+"'^ c #4A2F29",
+")^ c #6A5141",
+"!^ c #A38A6B",
+"~^ c #37722B",
+"{^ c #A08567",
+"]^ c #967979",
+"^^ c #BDA1A1",
+"/^ c #31671F",
+"(^ c #B69D78",
+"_^ c #5B3D33",
+":^ c #977979",
+"<^ c #316D25",
+"[^ c #432522",
+"}^ c #40221F",
+"|^ c #CDB489",
+"1^ c #977C60",
+"2^ c #402220",
+"3^ c #411D1D",
+"4^ c #C2A7A1",
+"5^ c #C5A9A1",
+"6^ c #C9AEA1",
+"7^ c #CBB0A1",
+"8^ c #CEB3A2",
+"9^ c #D2B7A2",
+"0^ c #D1B7A2",
+"a^ c #D1B6A2",
+"b^ c #CDB3A1",
+"c^ c #D4B9A2",
+"d^ c #CFB5A2",
+"e^ c #CEB3A1",
+"f^ c #316D22",
+"g^ c #94795F",
+"h^ c #442522",
+"i^ c #C4A9A1",
+"j^ c #DAC0A2",
+"k^ c #E5CCA3",
+"l^ c #EDD5A3",
+"m^ c #EFD7A3",
+"n^ c #E9D0A3",
+"o^ c #DFC6A3",
+"p^ c #D3B8A2",
+"q^ c #CDB2A1",
+"r^ c #2C6F20",
+"s^ c #987D61",
+"t^ c #553830",
+"u^ c #3C1E1D",
+"v^ c #C3A8A1",
+"w^ c #CFB4A2",
+"x^ c #E2C9A3",
+"y^ c #EED6A3",
+"z^ c #E6CDA3",
+"A^ c #D8BEA2",
+"B^ c #D0B5A2",
+"C^ c #CCB288",
+"D^ c #9D8265",
+"E^ c #95795F",
+"F^ c #BAA07A",
+"G^ c #C8ADA1",
+"H^ c #EAD1A3",
+"I^ c #D9C0A2",
+"J^ c #527031",
+"K^ c #E7CFA3",
+"L^ c #E3CAA3",
+"M^ c #246718",
+"N^ c #DCC3A2",
+"O^ c #EBD2A3",
+"P^ c #E7CEA3",
+"Q^ c #E2C8A3",
+"R^ c #DBC1A2",
+"S^ c #39722C",
+"T^ c #8B8758",
+"U^ c #256718",
+"V^ c #2D6F21",
+"W^ c #967879",
+"X^ c #3F7530",
+"Y^ c #317626",
+"Z^ c #927777",
+"`^ c #376F2B",
+" / c #447937",
+"./ c #317525",
+"+/ c #316C22",
+"@/ c #2A641C",
+"#/ c #326A25",
+"$/ c #528243",
+"%/ c #326E25",
+"&/ c #2B6620",
+"*/ c #3B732F",
+"=/ c #346F25",
+"-/ c #477B3A",
+";/ c #4C7F3E",
+">/ c #3C752F",
+",/ c #2C681E",
+"'/ c #2B651E",
+")/ c #4A7D3C",
+"!/ c #4A7F3D",
+"~/ c #346C26",
+"{/ c #568447",
+"]/ c #558345",
+"^/ c #356E29",
+"// c #2D6A20",
+"(/ c #518041",
+"_/ c #346F26",
+":/ c #3F7733",
+"</ c #417835",
+"[/ c #467B37",
+"}/ c #4D7E3F",
+"|/ c #447A37",
+"1/ c #326E26",
+"2/ c #336E26",
+"3/ c #447B37",
+"4/ c #558246",
+"5/ c #568147",
+"6/ c #497D3B",
+"7/ c #2F6B1F",
+"8/ c #4E7E40",
+"9/ c #4E7E3F",
+"0/ c #558247",
+"a/ c #4F8041",
+"b/ c #3E7630",
+"c/ c #367127",
+" ",
+" ",
+" . + + + @ # $ % & * = - ; ",
+" > , ' ) . . . . . . + + ! ~ { { ] { ^ / ^ ( _ : < ' [ } ",
+" | 1 2 # 3 ] / ] / 4 + . . . . . . . . . . + + 5 6 ^ ] / ] ] { ^ / / { ] ^ { 3 # 7 1 8 ",
+" 9 0 a # b ] / ] { { { { ^ ] ^ c + + . . . . . . . . . . . . . + + + d e { / / / { ] { { { { { { { { ^ { { f g h 0 i ",
+" j k l ] { { / ] { ] ] ] ] ^ ] ] { ] ] m + + . . . . . . . . . . . . . . . + + + + n { { ^ ] { / ^ ] { ] ] / ] ^ { { ] ^ { { ^ ^ l k o ",
+" p * q ( { { { { / { { { ] { ^ { ] { { { ] ] ] { r + + + . . . . . . . . . . . . . . . . . + + + + s ^ { / { ^ ^ ] ^ / / { / ^ ^ ] / { { ^ { { { ] { f t u v ",
+" w x y ] ^ ^ { { { ] ] ] ^ { / { { { { { / { ] / ^ / ^ z + + + . . . . . . . . . . . . . . . . . . + + + + A { ] ] ] { ^ ] ^ { / { { ^ { { { ] / ] / ^ / ] { { B C D E F ",
+" G k H { { / { { ] { ^ { ^ { { ] { ] { { / ] ^ ] ^ { { { { ^ ^ I + + + . . . . . . . . . . . . . . . . . . . + + + + + + e ^ J { / ] ^ ^ ] ^ { { { { { / { ] { { ^ ] { { ^ K L M C C N O G ",
+" w P ^ ] ^ ^ ] ^ { { ] ^ ^ ] ^ / / ^ ^ / { ^ ] ^ { { ] { { / ] / J _ Q + + + . . . . . . . . . . . . . . . . . . . . . + + + + + + + R J ^ { _ ] ^ / ] { ^ { / { { { { ] ^ / { ] ] ^ ] ^ ] S T U V C C W X ",
+" Y Z ^ { ^ { / ] { ^ ^ { ] ] { { { ] { ^ / { ^ { ^ { ^ ^ { / ` _ J _ _ _ _ .+ + + . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + S _ _ _ _ J ^ _ ^ J / ^ ] { ^ { ] / ^ ] ^ / { ^ ^ ] { { S T ..C V V +.@. ",
+" 1 #.{ { ] ^ ] ] ] { / { { { { { ] / ^ / { ] ] ] / ^ { ] ] _ _ ^ _ _ _ _ l $._ %.&.+ + + . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + *._ _ _ ^ _ ^ { ^ =.{ / ^ / ] { { ^ ^ { { { ] / { { { / ] { -.;.>.V >.V ,.'. ",
+" 0 ).{ ] / ^ ^ { { { { ] { ^ { / ^ / ^ { ^ { / ] ] { { { ^ _ ^ _ _ _ _ _ _ _ !.~._ {.%.] + + + . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + ]._ %.l %.#._ _ _ ^ ^ J ` / { { ] ] { ] { { ] { { / { { / { ^ S L ^.C C C C /.0 ",
+" (._.] ] ] ^ ^ ] { { { ] ] / / { ^ { ^ ] ] { ^ ^ ] { ] _ =.{ J _ ^ _ $._ %.!._ l {.%._ %.{.!.` + + + . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + :.l l !.!.l _ _ _ _ ^ _ ^ ^ ` { ^ ` ] ] ] { { ^ { { ] ] ^ ] ^ { { <.[.V >.C >.C }.|. ",
+" 1.] ] / { { ] ] { / ] ^ ^ ] ] { { { ^ / ] { { ^ { / ] ` ^ ^ ^ _ $.l _ _ $.{.{.{.{.!.~.!.!.{.{.2.3.+ + + . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + Q ~.~.%.{.!.~.~._ %._ $._ J _ _ / _ ^ { { / ] / ] ] / { / / ^ ] ] ] L ^.V 4.C C V 4.5. ",
+" (.6./ ] { / / / { / / { ] ] ] ^ ] { { / / ] { { ] { ] ^ ^ =.J ^ _ l _ $.$.l #.!.!.!.{.!.2.7.{.{.2.2.2.2.+ + + . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + 8.!.{.{.{.{.!.%.#._ _ l _ _ _ _ _ ^ / { ] ^ / / ^ { ] / { { ^ { ^ { { 9.C >.V C C V C 0.a. ",
+" b.=./ ] { { ^ ^ { ^ ] ^ { / ^ { { / ] / ] { / ] / ^ { { =.^ _ _ _ _ _ _ {.l !.%.%.{.!.2.!.2.2.2.2.2.c.2.c.c.+ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + d.2.{.!.!.2.{.!.{.~.l _ $._ _ _ _ ^ _ J ^ ^ ] { { / { { ] { { ] ^ ^ { S U V V >.V C V 4.B e. ",
+" f.y / / / ^ ] { ] { ] ] ^ / / / ] ^ { / { ] ] ] ] ^ _ ] J J _ _ #._ $.~.{.{.%.{.!.{.g.!.7.{.c.2.2.2.c.h.c.c.i.j.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + k.l.2.c.{.{.2.!.{.#.$.$.!.l _ %._ J _ ^ =.J ^ / { ^ { ] { { { ^ ] ^ ^ ] m.[.C >.C C >.C V n.o. ",
+" p.] ^ ] ] / { { / { ] / ^ { ] { { { { ^ { ] ] ] { ^ { ] _ ^ _ _ _ _ #.%.l {.{.!.!.7.3.{.{.c.c.2.2.i.h.j.h.h.h.i.i.h.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + q.r.2.2.!.2.2.2.{.!.{.{.%.%.l _ _ %._ _ _ _ / { ^ { ] ] ] / { { { { ^ / / ;.C C >.C 4.>.C 4.C s. ",
+" t.u.{ ] ] { { { ^ ] { ^ / ] { ] ^ ] ] ] ] { ] { ] ] ^ ^ =._ _ _ _ #.~.!.{.~.!.{.{.{.2.2.2.c.c.c.c.c.h.h.h.c.c.v.h.w.h.i.x.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + y.j.2.2.c.c.c.{.{.{.{.7.{.{.~.!.#.l _ _ _ _ _ J ^ { { / { { / { ^ / { / { s [.V V C V V V >.>.C z.A. ",
+" B.t ] ^ ^ { ^ ] ] { ] ^ { ] ^ ] { { ^ ] { { ^ ] ^ ] { { _ _ _ %._ %.{.%.%.!.!.%.{.{.{.2.3.2.r.C.c.r.c.h.j.i.w.h.D.i.i.i.x.x.D.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + E.c.2.c.c.c.c.2.2.2.2.{.7.{.!.~.{.#.!._ _ _ _ _ / { { { ^ { ] ] ] { { / ] F.G.C C >.C V C >.V C 4.H.I. ",
+" J.t ] { ^ ^ ^ / / / / { / ] ^ ] / ] ] ] { ^ { { ^ / { / _ ^ _ _ $.!.%._ ~.{.2.!.c.{.c.2.c.c.2.c.h.h.h.h.i.i.K.i.v.v.w.w.D.D.D.D.D.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + L.i.c.i.h.c.r.2.c.{.3.!.c.2.{.{.%.{.!._ _ _ ^ _ ^ ` { ] ^ { ^ ] { ] ] ] / / M.C V >.C 4.C C 4.C C C H.J. ",
+" N.{ { / { / { ^ { ] { { { ^ { ^ { ^ ] / { { / { ^ ^ { J ^ _ _ _ _ $.#.!.{.{.{.2.!.{.c.c.2.2.c.c.c.i.c.h.x.x.D.D.D.w.w.D.D.O.D.P.D.+ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + Q.h.h.h.i.j.h.j.c.2.2.c.2.2.{.{.{.!.%.%.!._ _ _ _ ] _ / { ] { ] { ] ] ^ { / R.S.V 4.C C 4.C C V 4.>.>.T. ",
+" U.] ] ^ { ^ { / ^ ] ] / ^ { ] ] / { { ^ / / ] ] ^ { _ ^ _ ^ $.$.$.$.{.{.!.!.{.{.c.c.c.c.c.h.c.c.c.h.i.h.w.V.D.w.D.D.D.D.D.D.D.W.O.D.X.+ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + Y.i.i.i.i.h.i.h.c.C.2.c.l.7.!.2.!.{.#.!.~._ _ _ _ _ { / ^ ^ ^ { { { ] { { / y ;.>.>.C 4.>.4.V C V 4.C >.Z. ",
+" `.{ { ] ^ ] / ^ ^ ] { / ] { { { { ] { ] / { { { / { ^ _ =.^ ^ _ _ $.#.!.{.~.{.2.7.7.2.h.c.i.j.i.h.i.h.w.x.v.K.w.D.D.D.D.D.D.W.P.O. + +W..++ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + ++h.i.w.x.i.w.h.h.c.c.2.c.2.7.l.7.%.!.#.!.!.l _ _ _ ^ ^ / ] ] / ] { ] / / { ^ L C C C 4.C V C C C >.>.>.>.@+ ",
+" #+] { ^ / { ^ ] { ^ / ] ] { { / { / ^ ] { { ^ { ] / ^ { J J _ _ %.!.{.!.{.!.2.2.2.l.2.c.c.j.c.i.h.h.i.V.v.D.D.D.D.D.D.D.X.W.X.X. +X..+$+X.X..++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + %+D.w.V.i.D.h.h.c.j.c.r.2.c.2.{.{.{.{.{.{.%.!.$._ _ _ { _ J { ^ { { ^ ^ ] / / T >.V 4.C V C C C 4.V V 4.C C &+ ",
+" *+=+{ ^ ] { { ] { / ^ / { ] { / ] ] ] ^ ^ ^ / ] ^ { { ] ^ ^ _ $.%._ %._ {.{.!.{.2.l.2.C.c.i.c.i.i.w.i.i.w.x.D.D.D.O.D. +D.X.X.W.X..+$+$+.+.+.+-+.++ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + ;+D.x.x.D.x.i.x.h.i.h.c.j.2.c.2.2.!.!.{.{.!.{.%.$._ _ ^ ` ` { ^ { / { ] ^ ] ^ T C V C C C C V 4.C V V >.C V W >+ ",
+" ,+] / / ] ^ ^ { { / / ] ^ / { / ^ { { { { / { { ^ ] ` ^ ^ ^ $.%.l !.!.!.{.{.2.2.2.2.c.c.h.v.i.h.i.i.i.V.D.D.D.D.D.W..+D.X. +W.X..+.+-+.+.+.+-+'+)+'++ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + D.O.D.D.D.D.i.w.i.w.i.c.h.j.c.2.2.7.{.{.!.!.!.!.#._ _ _ ] _ / { ^ { { { { / / K ^.>.V V >.C C V V V 4.4.>.>.V !+ ",
+" ~+b ^ ] ^ ^ / ] / ] { ] ^ ] { ] ] { { { ^ ^ ] ^ ] ] J ] _ =._ _ l _ {.{.{.{.7.7.c.2.c.r.c.h.i.i.w.w.i.i.w.D.W.P.W.{+O.X..+ +.+.+-+.+-+$+-+-+-+'+'+'+]+^++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + /+X.P.D.P.D.D.x.V.V.x.h.h.h.h.2.2.c.2.c.2.2.!.#.{.%.%._ _ { =.^ { ] ] { ] ^ ] { K ^.C C C C >.>.C >.>.V V C 4.V V (+ ",
+" _+/ { ] ] ] { / { { { ^ { / ^ { ] { ] ] ] / ^ ] { ] ] _ _ ^ _ ~.%.%.!.{.!.{.{.2.2.c.j.h.c.h.h.i.D.i.v.x.D.D.X.D.W.O.X..+.+X.-+X..+'+'+'+-+:+-+]+<+]+'+]++ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + V.X.X.O.W.D.D.D.w.h.v.v.i.i.i.i.c.c.c.2.3.{.{.~.!._ $.%._ _ ^ ^ { / ] ^ / ] ^ ^ y ^.V C 4.>.V C 4.C >.C C V C C >.z. ",
+" [+( / ] ^ ] { { / { { ] / / { / { ] ] ] ^ ^ { { ] ^ ^ _ ^ _ _ _ %.!.!.!.!.!.l.{.2.c.c.h.c.i.i.i.w.w.w.D.D.O.D.X.D. +W.}+.+.+.+|+|+1+-+'+-+]+'+'+]+]+]+<+<+2++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + %+ + +W.W.D.D.D.D.D.w.i.D.h.v.j.h.j.c.c.{.2.2.!.!.{._ _ l l _ J ] / ^ / ^ ] { { ^ 3 S.C C C C V >.C C C C C V V 4.C 3+[+ ",
+" t { ] { ^ ] ^ ] ^ ^ ] ] / { ] { ^ / ^ { / ] { ^ / { / ] ] _ _ _ %.%.{.!.{.{.2.c.c.c.j.c.h.h.w.w.i.i.D.D.D.D.W.X.W.W.W.-+X.$+-+-+-+-+:+-+]+:+]+<+'+<+2+2+]+]+4++ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + 5+X..+.+O.{+O.O.D.D.D.D.K.K.i.h.v.c.h.c.2.2.2.!.{.!.~.%.$._ _ _ _ J ^ / ] ^ ^ / ] S [.C C >.V >.4.C V V C C 4.C C V C H. ",
+" j y { / ^ ^ ] { ] ] { ] ] { { ] { ] ^ { ] { { { / { { =.J _ _ _ %.%.%.{.2.2.{.c.c.2.c.h.h.i.h.h.w.D.x.D.O..+D.D..+.+X..+-+1+|+.+'+'+'+:+<+]+]+]+6+6+<+2+2+2+2+7+8++ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + 9+-+.+X.X..+ +O..+W.P.D.D.D.D.v.w.c.h.h.c.c.2.l.{.!.!.%.{.l _ _ _ / { =.^ { { ] ^ ] 0+a+C C C C C 4.>.V C >.>.C >.>.>.V b+o ",
+" c+/ ^ ] { ] { / / ^ ^ { { { / ^ ] ^ ^ { { ] / ] / { ] { ^ J _ _ _ #.!.d+{.2.7.c.c.c.i.h.h.i.w.D.w.w.D.D.D.D.W.X.X..+$+-+$+-+'+-+'+'+]+]+<+<+2+2+e+7+7+f+g+7+7+7+7+h++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + i+-+-+'+.+.+X.X.W.D.P.D.D.V.v.D.h.w.c.h.h.h.c.c.2.2.{.{.{.!.l l _ _ J ^ ^ ^ ^ ^ / { K >.V C C >.>.>.4.4.V 4.C C V V >.>.C j+ ",
+" k+{ ] ^ / ] { { ] { { / / { { ^ ] { ] ] { { ] ] ] ^ { { J _ _ _ #.#.l !.!.2.!.{.2.h.c.c.h.h.i.K.x.D.D.W.W.W. +.+X.W.-+l+-+-+-+'+)+'+m+]+6+<+]+2+2+2+7+g+7+7+7+n+n+7+o++ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + m+'+-+'+-+.+.+X..+.+ +D.D.D.V.x.w.w.h.h.h.2.c.c.2.2.7.%.%.%.$.%._ _ _ ` { / ] { ] { s C V >.C C 4.V V C >.V >.C V C 4.4.4.V p+ ",
+" `.^ { / { { { ^ / / ^ ^ { { ] ^ { ^ ] ] ^ { ^ ^ { ^ ] { _ ^ _ _ ~.%.{.{.2.2.2.{.c.j.h.h.h.h.w.w.x.D.O.W.X.W.X..+.+X..+1+-+'+'+<+]+]+]+]+f+<+]+<+7+7+7+7+n+7+7+q+r+r+s+q++ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + t+'+'+-+'+X.-+$+.+X. +.+W.W.D.D.w.K.D.i.j.c.h.2.c.2.3.!.!.!.~.!.%._ _ _ J ^ { ] { ^ ] u+V C >.V C V C C 4.C 4.V C C >.C C C V v+ ",
+" w+{ / ] / ] / ^ ^ { ] / ^ { ] ] ] / ^ ^ ^ ^ ] { { / { { _ / _ _ %.!.!.{.{.2.{.l.2.2.h.h.i.x.i.D.D.D.D..+W.W..+.+-+.+'+'+-+-+<+]+]+'+6+]+]+2+7+f+7+7+7+n+q+x+x+r+o+y+q+q+z++ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + D.]+m+'+'+1+.+$+$+$+X..+X.D.D.D.D.D.D.i.h.v.i.c.2.c.l.{.{.{.{.!.l _ _ ^ { ^ ^ ^ { { ] A+C V V C C >.C V C >.C C C C 4.C C V C B+ ",
+" p+F.^ { { { ^ ] ] { ^ { ] ] / { ] ^ { { ] ] / { { ] { ^ ^ ^ J _ $.$.{.!.!.{.c.2.C.c.j.h.v.i.v.i.V.D.D.D.D.X.X..+.+.+'+-+'+'+'+'+]+<+]+<+<+7+g+7+7+7+7+y+r+y+s+n+q+C+s+s+D+C+E++ + + + + + + + . . . . . F+F+F+F+F+G+G+G+G+. . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + H+'+:+-+'+-+-+.+-+.+-+.+O.X.W.D.D.D.D.D.h.w.i.h.h.2.c.{.2.{.{.{.!.~._ _ J _ _ { ] ] ] / ;.>.C C C C >.V C C V V 4.V 4.V >.V >.V n.I+ ",
+" F ^ ] { { { / { / { { ] ] ] { ] ] ] { { / ^ ] { ^ ] ] ^ / _ _ _ _ %.!.{.2.2.2.{.C.j.i.h.i.i.w.D.D.D.P.D.W.O..+X.X.X.'+'+-+:+]+]+2+6+]+f+2+7+7+7+x+7+s+q+n+s+q+s+J+J+s+D+s+C+K+L++ + + + + + + + . . . F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+M+. . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + N+6+<+<+:+)+-+'+'+.+.+X..+X.W.O.D.D.D.D.i.i.i.i.c.c.c.2.g.{.!.!.%.$.$._ _ ^ { { ^ ^ { { O+C C C >.C 4.V >.V C 4.V C >.4.>.4.4.C 4.P+ ",
+" a { / { ^ ^ ] { ^ ^ ] { { { ] { { ^ ] ] ^ ] ^ ^ ^ { ] ^ J / _ !._ #.!.%.{.!.l.{.c.h.h.i.w.w.w.D.D.D.{+P.{+ +.+.+X.-+-+'+<+'+]+<+2+2+2+e+7+2+7+7+r+7+o+7+s+s+s+q+q+s+Q+s+C+C+D+D++ + + + + + + + + . . F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + 2+6+<+]+]+<+'+-+'+-+.+.+.+X.O.X.W.W.D.D.w.h.i.h.j.c.c.c.2.{.{.!.{.l $._ _ _ J ^ ] { { y [.V C 4.4.>.C >.C >.C C 4.V C C C V >.C 4.O ",
+" R+^ ] { / ] { ^ ] / ] ^ / { / { ] ] ] { { { ] { { / { ] ^ _ ^ _ #._ ~.~.{.3.2.2.j.c.h.w.h.w.D.D.D.D.D.D.W.X. +.+-+-+'+-+]+<+<+]+]+6+7+g+7+7+7+7+r+o+s+s+q+q+s+K+D+D+D+D+D+C+D+S+J++ + + + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + T+7+2+]+]+]+]+m+:+'+'+-+-+.+.+.+O.W.D.D.D.K.D.x.i.h.h.2.c.2.2.2.{.!.!._ $.^ { J / / { / U+>.C C 4.C >.>.>.C C C C C C C C C C C V C V+ ",
+" ; ( ] ^ ^ { ] ^ { ^ ^ { ^ ] ^ { { ^ / { ] { ] { { / ^ { _ =._ _ _ !._ {.7.{.c.2.2.j.i.i.h.h.D.w.x.W.W.W.X. +X.$+-+$+'+'+:+<+'+6+2+<+7+7+2+7+n+n+y+s+s+q+C+s+s+K+s+D+D+D+C+S+S+S+W+X+Y++ + + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + ]+7+7+2+2+<+:+:+Z+'+'+-+-+.+.+.+O.X.W..+D.D.i.v.w.i.h.2.2.c.2.!.{.!.!.%._ _ ` J / / ] ^ A+V C C C C C V V 4.>.4.>.C C 4.V >.C C C 4.`+ @ ",
+" .@] / ] / ^ ^ ^ ] { ^ / ^ / / ] { ^ { { / { ] ] { { ^ { { =._ _ _ _ _ {.{.{.2.2.c.h.c.i.w.K.i.D.D.D.D.{+X.X..+-+$+-+]+-+-+6+]+<+<+<+7+7+7+7+x+o+y+s+s+q+K+K+K+D+D++@C+D+D+S+X++@@@X+S+#@+ + + + + + + G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + $@7+e+6+7+2+g+6+'+'+:+'+-+-+-+W..+X.X.W.D.D.x.D.v.v.h.c.r.j.7.2.2.{.!.#._ _ _ ^ ^ ^ { { / ;.4.V V V C C >.C C C 4.>.C >.V C C 4.4.V >.V %@ ",
+" &@^ ] { / ^ ^ ] ^ { { { ] ] / ^ ] ^ ] ] / ] ] ] ] { { ] { ^ _ _ _ $.%.%.{.!.2.2.2.c.j.h.w.D.D.i.D.P.D. +{+X..+-+$+-+'+]+'+<+2+2+e+7+2+7+7+y+y+7+x+s+s+s+C+C+D+D+C+C+D+S+@@*@@@@@@@@@=@-@;@+ + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + >@7+7+6+g+2+<+<+:+:+'+'+'+-+-+X.X..+D. +D.W.D.x.D.i.i.h.,@c.2.2.l.!.{.{.#._ _ ^ { ] { { y S.C >.V C >.>.C V C C V >.>.C 4.V C C C C >.V '@ ",
+" )@{ ^ ] ^ { / { { ] ^ { { { / / ^ ^ { ] / { { { ] { ] / ^ J ^ _ $._ {.~.!.2.2.2.c.j.h.h.v.i.w.w.D.P.P.W..+X.-+-+.+'+:+]+]+:+<+]+f+7+7+7+y+n+y+y+s+C+K+q+K+C+C+D+D+D+D+X+S+@@S+@@@@-@=@=@=@+ + + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + !@n+7+7+7+7+2+<+g+<+]+<+-+-+'+.+.+X.W.O.P.D.D.x.D.x.i.~@h.C.2.2.{.{.!.{.~.%.%._ J ^ =.] ] e V C >.C C C C 4.V C 4.4.4.V C >.V C 4.V C C >.{@ ",
+" ]@/ { ^ { ] { ] ] { ^ ] ] { ] / ] { / ] ] / { ] ^ ] ] ] { ^ ^ ^ ~.$._ ~.!.!.c.2.c.c.h.i.i.h.x.D.W.O.D..+X..+X.-+'+'+'+]+<+<+2+g+2+7+7+n+7+q+s+s+q+s+C+C+K+D+C++@S+X+S+@@W+X+@@@@=@^@=@=@/@(@+ + + + + + + + G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. _@:@+ + + + + + + + + + + + + + + + + + + + + + + + + + + <@n+n+x+7+7+7+f+]+2+2+]+]+'+'+'+'+.+.+W.W.O.D.D.D.D.i.i.h.h.2.2.{.l.!.~.%.$.l ^ ^ _ / { ] [@C V C V V C C >.V C C V >.C >.C V V V V V C >.}@ ",
+" _+/ { { / ] { ^ { { { ^ { ^ { / { { ] ] ] ] ^ { / / ] ] ^ J { _ _ l {.#.!.2.c.2.c.j.c.h.v.w.D.D.D.W.X.X.X.$+'+'+]+'+<+<+]+]+6+e+7+2+7+x+n+r+q+s+K+D+D+C+C+D+S+D+S+X+X+-@W+@@=@=@=@/@=@|@/@|@N++ + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+1@2@3@+ + + + + + + + + + + + + + + + + + + + + + + + + G+4@y+s+n+7+7+7+7+<+]+6+<+Z+]+-+-+X..+X.X.O.D.D.D.V.w.v.v.h.j.h.c.2.2.2.!.~.!.%._ _ =.^ ^ ] ..>.V 4.>.V C C 4.V 4.>.C C 4.C >.C V >.C V V V z. ",
+" w+/ ^ / { ^ ] ] / ^ { ] ] { ] ] { ^ { ] { ^ { { { { { { _ ^ ^ _ %.%.%.%.7.{.c.2.h.j.i.i.i.D.D.D.D.{+X..+X.$+.+-+]+<+'+5@<+7+2+7+7+7+q+y+r+n+q+C+s+s+D+D+D+S+X+S+X+@@@@-@=@=@=@=@=@=@6@/@7@7@6@8@+ + + + + + G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+9@0@+ + + + + + + + + + + + + + + + + + + + + + + + + a@q+s+y+s+7+7+7+<+g+<+<+b@'+'+'+'+|+X.X.P.X.P.D.D.i.v.i.w.h.r.C.c.2.!.!.!._ %.%._ ^ J ] { K C >.V >.V V >.C C V C C 4.4.>.4.V V V V V >.4.C c@ ",
+" d@^ ^ { / ] ] ^ / ] { ^ { { ] / { / ^ { ] { { / ^ ^ ^ / { ^ ^ _ _ %.{.{.{.{.2.2.c.c.h.w.w.i.w.D.D.X.X..+.+.+.+-+'+'+'+<+e+2+2+7+7+n+y+n+y+q+s+D+D+D+D+D+e@S+D+X+W+S+@@=@@@=@=@^@/@=@=@|@7@f@f@g@h@+ + + + + + G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+i@j@+ + + + + + + + + + + + + + + + + + + + + + + G+k@q+y+y+o+7+7+n+7+g+2+]+<+]+]+]+'+-+$+.+W.X.P.X.D.D.K.x.h.j.j.r.c.2.c.!.%.{.%.%._ { { ] ^ L >.4.>.>.V 4.>.V V 4.C V C V C 4.>.V >.C C >.V C W ",
+" l@{ ^ { ^ ^ { ] ] { / ] ^ ] { ^ ] ] / { ^ { ^ ] { ] ^ { ^ _ _ _ _ $.{.{.2.{.c.2.r.i.i.h.x.x.D.D.O. +.+.+-+.+-+-+'+:+]+]+6+e+<+g+7+o+n+y+y+q+q+K+D+D+C+D+S+X+X+X+S+@@=@W+=@=@=@f@/@6@|@f@f@f@g@f@f@+ + + + + + G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m@n@+ + + + + + + + + + + + + + + + + + + + + + + o@C+s+q+s+n+7+y+7+7+7+e+<+<+'+]+-+-+'+-+-+.+{+ +O.D.D.K.i.i.h.h.2.2.c.l.{.{.!.!._ _ _ { J { O+>.V C >.>.4.C 4.C C C C C C V C C 4.V V V >.C C p@ ",
+" q@] { ^ { ^ ^ { ] ] ^ { { ] { ^ { ] { { { / { ] ] ] ^ ^ ] ] ^ _ l l l ~.7.3.c.i.c.j.h.i.i.D.D.D.D.D.X..+-+-+'+:+'+]+]+2+2+2+7+2+n+7+y+q+y+s+s+s+K+D+S++@X+X+X+S+W+=@@@=@r@=@/@f@|@f@f@f@s@g@t@f@t@(@+ + + + + + G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+u@M++ + + + + + + + + + + + + + + + + + + + + + + v@s+C+q+s+n+7+y+7+7+e+7+7+]+<+:+'+'+$+-+.+X.X.P.D.D.D.w.v.i.i.h.j.c.c.!.2.%.!.%._ _ _ { ] -.C C 4.V C V C 4.C 4.V 4.4.C >.C C V V V >.C C C 4.w@ ",
+" d@] { / { { { ] ^ ] { ] { ] ^ ] { { { { ^ { { / ^ ] { / { ` _ ^ _ _ l {.{.{.c.c.h.i.h.h.v.x.x.P.{+.+W..+-+-+'+-+:+'+:+<+6+e+7+7+n+7+y+r+q+q+C+D+C+D+D+S+X+X+@@@@x@=@@@/@/@=@|@/@/@f@|@f@s@g@g@t@y@t@z@+ + + + + + G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+A@B@C@+ + + + + + + + + + + + + + + + + + + + + + + q+C+J+s+s+o+q+n+y+7+2+2+g+]+]+]+'+'+'+-+.+$+X.X.O.O.D.V.w.i.h.h.r.c.2.{.7.!.!._ $.^ =.{ { ;.V V >.V C V >.4.4.>.C V 4.C V C V >.C >.>.>.C >.>.W ",
+" : { { { ] ^ { ] ^ { ^ ] { { ^ { / { ^ { ] / / { ] { ] { / J ] _ _ %.~.!.2.2.{.c.C.c.w.K.v.D.D.O.X.W.W..+.+.+-+'+'+]+6+2+]+]+7+n+7+q+y+q+J+s+D+C+C+D++@W+S+@@X+@@@@/@=@^@/@7@f@f@f@f@f@f@D@t@t@t@E@F@G@H@+ + + + + + G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+I@J@+ + + + + + + + + + + + + + + + + + + + + + 8@C+K+C+K+s+s+x+y+7+7+7+7+6+<+]+]+'+'+-+-+.+X. +D.D.D.D.w.i.i.h.c.i.c.2.3.!.%.!.l %._ ^ _ S ^.V 4.>.C 4.C C V C 4.>.>.4.C 4.4.C 4.V V V C 4.V C K@ ",
+" u.{ ^ { / ^ { ^ / / ] ^ { { ^ ^ { ] ^ { { ] { ] ] ] ] { ] _ ^ _ _ l !.%.!.2.2.2.c.c.h.h.i.x.D.D.X.X.X..+.+-+-+Z+m+]+6+7+f+2+7+7+x+q+q+s+C+s+C+D+C+D+D+@@@@W+@@=@=@=@=@=@f@=@f@f@f@s@f@s@L@t@E@t@F@M@M@F@+ + + + + + + G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+N@n@+ + + + + + + + + + + + + + + + + + + + + + O@D+C+K+s+K+q+q+s+y+7+7+2+2+<+2+:+'+-+-+-+.+$+O.X..+W.w.w.D.i.v.h.2.C.2.7.!.!.$._ _ _ _ ^ T V C C C C >.C C C C 4.>.>.V >.C C 4.V V >.4.V V 4.C z. ",
+" P@/ / { ] / { ^ ^ { ] ] { ] { ] / ] { ^ { / / ] { ] ] { ^ ^ { J _ $.!.%.{.{.{.2.c.h.i.h.w.V.w. +D.X.X.-+.+-+-+'+'+<+]+6+7+7+7+y+q+7+s+s+s+Q+C+D+D+S+X+S+X+@@=@=@@@/@7@/@|@f@f@s@t@g@f@t@s@y@t@E@Q@F@Q@Q@M@+ + + + + + + G+G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+u@M++ + + + + + + + + + + + + + + + + + + + + ;@D++@D+C+C+s+q+q+s+r+7+n+7+g+2+<+<+'+'+'+.+'+.+ + +D.D.D.x.w.h.j.h.r.c.l.{.{.%.~.%._ _ { ^ +.V 4.C 4.C V C V >.C 4.V C C V V >.C C >.4.C C C V V R@ ",
+" S@{ { ^ { / { ^ { / { { { { / / / / ] { { { { ^ ] { { ^ ^ ] { ^ _ _ ~.~.~.{.c.c.h.h.h.i.D.w.x.D.O. +O..+X.-+'+-+'+'+<+e+7+g+7+7+o+q+s+s+J+D+K+D+S+X+S+T@X+@@=@=@=@^@r@f@f@f@f@f@f@t@t@t@t@G@E@U@M@Q@V@W@W@X@+ + + + + + + G+G+G+G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+A@B@C@+ + + + + + + + + + + + + + + + + + + + + Y@T@C+D+C+K+K+s+s+q+q+7+n+7+6+2+:+]+]+'+'+$+X.$+ +D.P.D.x.w.i.h.i.h.r.2.{.2.!.#._ l _ _ J s V C V C C V 4.C V >.V V V V V 4.C V C 4.V C >.>.C C V !+ ",
+" Z@{ ] ] ] ^ ] { { ] / / / / { ^ ] ] { ^ / { ] { / ^ ^ { ] ] { _ _ %._ %.{.!.2.2.2.j.h.h.i.K.D.O.D.D. +X.|+.+'+'+:+'+<+g+7+g+7+7+x+y+q+q+D+K+D+C+S++@X+S+=@@@@@@@/@6@^@^@|@g@s@t@t@t@D@y@t@y@Q@F@F@V@Q@W@W@`@ #+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.#G+G+G+G+G+G+G++#@#+ + + + + + + + + + + + + + + + + + + + + @@X+D+D+C+C+C+q+q+q+q+n+7+<+2+2+e+<+'+-+-+-+.+X. +W.O.D.w.D.x.i.c.c.c.2.2.{.!.#.!.l _ ^ J G.C C C V C V V V >.V 4.V >.V >.>.C V 4.>.C C >.4.>.V V Y ",
+" ##^ ] ^ { { ] { { { ] ] { { ] { ^ ] { ^ / { { ] ^ { ^ { ^ ] ^ _ ^ $.!.#.{.2.2.3.j.2.h.v.i.V.D.W.D.W.X..+.+.+-+-+]+<+]+2+<+7+7+7+s+r+r+s+D+s+D+D+S++@W+x@=@=@@@=@/@^@|@^@f@s@t@s@g@t@t@t@F@Q@E@Q@Q@Q@Q@W@$#W@$#%#+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&#+ + + + + + + + + + + + + + + + + + + + + *#W+T@+@D++@D+C+q+q+s+n+n+7+7+f+<+2+<+]+:+-+-+$+.+ +O.D.D.D.w.K.i.h.c.2.l.2.{.!.{.!._ J =.F.C V V C V V C 4.V C V >.C C C C V >.V V V 4.C 4.C C >.4.## ",
+" =#/ { { { / ] / { ] { ] { { ^ / { { { { ] ^ ] { { { { { { { ^ { _ _ l %.~.{.7.2.c.h.i.w.D.v.D.D.X.O.{+.+X.-+-+-+<+<+2+g+7+7+7+7+q+r+s+s+C+D+D+C++@T@@@=@=@@@=@r@6@f@|@|@f@f@f@t@D@t@t@t@U@Q@Q@Q@Q@Q@Q@$#`@-#-#`@+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;#C@+ + + + + + + + + + + + + + + + + + + + >#@@S++@D+D+D+D+C+J+s+s+n+7+7+7+7+<+2+]+:+]+'+.+$+X.X.X.O.W.D.x.w.w.i.h.c.c.c.!.~.{._ _ _ { ,#C 4.>.V 4.>.C 4.C C >.C >.4.>.C 4.V >.C 4.V C >.V C >.V '# ",
+" y / { / { { { ^ ^ { ^ ^ ] ^ { ] ^ ] { / ] { ] / { ] ] ] { { ^ J _ $.$.!.{.{.c.c.2.c.i.v.x.D.D.W..+X..+X.-+-+:+]+<+]+2+<+7+7+q+n+o+q+q+s+D+D+D+X+X+@@@@@@=@/@/@=@|@f@|@f@s@t@g@y@t@y@F@Q@Q@F@Q@Q@Q@W@W@$#`@)#)#W@+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++#@#+ + + + + + + + + + + + + + + + + + + + X@X+@@X+D++@D+D+C+s+q+r+s+y+7+7+6+2+<+'+'+'+'+'+.+ +W.W.W.P.x.i.h.h.h.h.2.g.2.{.{.~.#._ _ F.V C 4.V 4.V C C C >.C C 4.>.4.C C C >.V >.>.V >.>.C V V b+ ",
+" ).^ ] ^ ] { ] / ] / ] { / ^ ] { { { ^ ^ { ^ { ] / ] / ^ / { { J _ _ ~.!.!.{.{.c.h.c.w.w.D.x.D.D.D.X.W.-+$+-+'+<+]+]+<+2+7+7+n+q+r+s+s+C+C+C+D+S+X+@@S+@@=@/@6@/@|@f@g@f@t@t@t@t@t@y@F@F@M@Q@W@W@$#W@$#)#`@)#-#)#!#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+G+G+G+{#+ + + + + + + + + + + + + + + + + + + + E.@@@@@@W+D+D+D+C+C+s+s+7+s+7+7+2+2+6+2+<+'+-+-+-+-+.+.+D.{+D.w.D.x.c.i.c.2.3.{.%.!.#.l _ J L C C 4.>.4.V C V C V V >.V C V C >.V 4.>.V 4.C C 4.>.>.>./. ",
+" ]#/ / { / / ^ ^ ] { { ] { ] { ] ] ^ / { ^ ^ ^ { { { ] / { { =._ _ _ {.~.{.{.{.2.c.h.h.v.h.h.D.O.D..+.+.+-+'+'+<+]+<+2+7+7+7+q+y+q+s+C+J+D+C+D+S+@@@@@@W+@@/@/@r@/@f@f@s@D@t@t@y@y@E@Q@Q@W@W@Q@W@$#$#)#`@^#)#/#/#(#_#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+:#+ + + + + + + + + + + + + + + + + + + + =@@@X+x@S+D+D+X+C+s+C+s+y+n+n+y+2+g+g+]+<+]+'+'+|+-+W.W.X.D.D.w.i.i.c.h.2.c.l.{.{.%.%._ ^ y 4.V 4.V C V V C V C C C C V C C V C C C 4.V V V C 4.4.C V <# ",
+" [#{ ] { / ] { ] ] ^ { { { { { { ] { ^ / ] ] ] ] { { { ] { / ^ ] { _ l {.{.{.7.2.c.c.i.i.i.V.D.W.D.X.-+.+'+-+]+:+]+<+<+7+7+7+s+r+s+s+s+J+C+D+S+@@W+X+S+@@r@r@r@r@f@|@g@t@t@t@t@F@y@U@E@Q@Q@$#`@W@$#`@$#)#$#)#/#/#/#}#|#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+:@+ + + + + + + + + + + + + + + + + + + 1#=@=@=@=@X+X+S+S+D+C+q+J+y+s+q+x+7+7+]+]+]+:+'+-+-+.+X.W.X.D.D.i.h.h.h.c.r.c.l.{.!.!._ _ _ T ^.C V V 4.C C >.C V >.4.V 4.C 4.C V C C C >.C 4.V C V C >.[# ",
+" 2#/ / { ^ / ^ ] { ] ^ / { { / ] / { ] ^ ^ { ] { / ] ] { { { ^ { _ _ _ l {.2.{.c.j.c.h.i.K.v.D.D.O. +X.X..+-+-+:+]+<+<+<+7+7+n+n+r+s+s+C+C+S+D+X+W+W+S+=@=@/@/@=@f@f@f@t@g@y@t@F@Q@Q@Q@W@Q@W@$#$#W@-#)#/#)#/#)#/#3#4#5#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M++ + + + + + + + + + + + + + + + + + + + =@/@=@=@W+S+W+X++@D+K+D+s+y+7+7+7+e+2+e+]+]+<+-+-+-+.+.+D.D.D.D.w.D.i.c.c.c.l.!.{.~.l %._ ] >.>.4.>.V 4.>.4.V V V >.4.V C C 4.V V 4.4.V C C V C C V >.C 2# ",
+" ] { { ] / ^ ] ] { / { ^ ] / ] ^ ] ^ ] ] { / ] { { { { ^ { { { _ _ %.~.$.!.{.2.2.h.j.w.h.V.D.D.P.O.W..+$+$+'+'+]+]+7+f+g+7+7+q+q+q+s+s+D++@+@X+X+x@W+@@=@6@6@/@|@|@f@s@t@t@y@y@t@Q@Q@Q@Q@W@$#6#)#`@-#)#)#/#4#3#4#4#7#W@+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+8#:@+ + + + + + + + + + + + + + + + + 9#=@=@=@=@x@X+D+S+D+D+K+K+q+o+r+7+7+g+2+7+]+<+'+'+-+.+$+X.X.D.D.V.x.h.i.j.c.2.l.7.{.!.!._ _ 9.>.4.V V C >.V >.V V V V C C C 4.V 4.V C V V 4.4.V C >.4.C C ",
+" _+{ ^ ] { ^ { { ] { { { { ] ] { ] { ] { { / / / ] ] { { / { =.^ _ l %._ !.!.{.2.h.h.c.i.D.D.D.D.W..+.+$+-+-+]+]+]+f+f+2+7+n+y+y+y+K+Q+C+D+S+X+W+=@=@=@r@/@f@|@f@f@f@t@t@t@E@M@F@Q@W@Q@`@$#$#)#)#)#)#/#/#/#4#/#4#0#7#a#b#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+G+G+c#d#:@+ + + + + + + + + + + + + + + + ;@^@=@/@=@@@=@X+X+X+D+D+D+s+J+y+n+7+7+7+7+<+<+'+'+-+-+.+.+P.D.W.D.D.i.w.i.j.h.2.{.{.!.$.~._ y ^.V C V C 4.C >.V C V V >.V V V 4.C C V C C V >.4.V V >.>.C e# ",
+" b.{ { ^ ] / { { { ^ { { ^ ] { { ] ^ ^ { { ] ] ] ^ / ^ { { ^ { ^ ^ _ _ _ #.{.2.2.2.h.c.w.h.D.D.D.{+P.-+X.$+-+'+'+<+<+7+7+7+n+n+y+s+s+K+D+D+D+X+X+@@=@@@/@/@f@^@f@f@s@y@t@U@t@Q@M@Q@W@$#$#`@6#`@`@`@/#/#/#4#4#4#a#0#0#7#f#g#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;#h#:@+ + + + + + + + + + + + + + + + i#r@r@=@/@=@W+X+D+S++@D+D+s+s+s+7+7+7+7+7+<+]+'+]+-+|+.+.+W.W.D.D.x.i.w.j.c.c.2.2.2.!.~._ _ j#V V V C 4.C 4.V >.V V >.C V V V V >.C C 4.C 4.4.V V 4.C C 4.b. ",
+" k#{ / / { { { / ] / / { { { { ^ ] / ^ ] ^ { ] { ] { { { { ] { { _ ^ _ $.l {.7.c.c.c.c.h.D.V.D.D.D.O.X.$+-+'+]+]+2+6+f+f+7+n+s+s+q+s+J+C++@D+S+W+-@X+@@/@=@/@f@s@f@t@s@t@y@E@U@Q@Q@Q@$#$#l#$#`@)#/#/#4#4#4#3#3#7#7#7#f#f#f#m#+ + + + + + + + G+n#G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;#o#+ + + + + + + + + + + + + + + + H@/@f@f@=@/@=@@@S+*@D+D+D+D+s+s+r+n+7+7+f+g+7+]+'+-+'+-+$+X.X.D.D.x.w.i.w.h.r.c.2.{.{.!._ %.F.^.>.4.4.4.C >.4.4.C 4.C >.C C C C C V >.V C >.>.C 4.V 4.C C V p# ",
+" # ] { ] / ] { { ^ ] { ] { ] ] { { { ] { ^ ] ] { ] ] { / ^ { ^ _ _ _ %.$.!.!.l.c.c.h.h.v.i.D.D.O.X.X..+-+-+'+:+]+2+g+2+7+7+7+s+s+s+C+D+C+D+X+W+W+=@=@r@f@^@f@f@q#t@t@t@G@F@Q@Q@Q@r#$#`@W@`@-#`@)#/#)#/#3#4#7#f#s#f#f#f#t#u#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+v#j@+ + + + + + + + + + + + + + + + -@f@f@|@r@=@W+X+@@W+S+S+C+C+q+s+s+n+n+7+7+<+6+6+]+'+l+'+-+X.X.W.D.x.V.h.h.c.c.c.c.7.!.!.%._ G.4.>.>.C >.>.4.C >.C >.C C V V >.V V V 4.V C V V 4.C V >.>.V w# ",
+" x#] ^ ^ / ] / { ] { ^ ] / { { ^ ] ^ ^ / ^ / / / { ^ { / ^ ^ / ] ^ _ l _ ~.!.!.{.c.j.j.v.h.x.D.O.W.X.X.-+$+-+'+<+<+7+7+7+7+7+q+q+q+C+D+D+D+S+@@@@=@=@=@=@/@^@f@s@s@y@y@t@E@G@F@W@W@$#W@$#)#)#)#/#/#4#4#5#a#3#5#f#f#f#f#y#t#z#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M++ + + + + + + + + + + + + + + + A#|@f@f@/@/@=@X+=@X+X+D+D+K+K+s+q+r+n+7+7+<+g+]+'+'+-+-+.+X.W.X.O.D.D.V.h.j.2.c.c.7.~.{.l %.K ^.>.C >.V V C V C >.>.C C >.>.>.V 4.C 4.V C C C C >.C V 4.V 4.B# ",
+" C#^ / { { { { { { ^ ^ ] { ] ^ { ^ { { ^ { { { ^ ] ] / { ] { { { ^ _ _ ~.!.%.7.3.c.h.h.i.K.x.D.D.W. +X.$+.+'+'+<+]+]+7+7+7+y+y+q+C+q+C+D+D+S+@@S+=@/@6@^@|@f@|@s@f@s@y@t@E@Q@Q@Q@r#l#`@`@)#-#/#)#D#4#4#a#7#7#f#f#f#y#f#E#y#E#F#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++#+ + + + + + + + + + + + + + + + + t@|@r@^@6@=@=@@@W+@@D+X+D+K+C+s+s+s+y+7+2+g+2+:+:+]+'+-+1+W.D.O.D.x.v.i.i.h.c.2.2.!.{._ _ _ +.4.C V C C 4.4.>.>.>.C >.C >.>.>.>.>.V V >.V V V C V V C C V C G# ",
+" #./ { ^ ] { ^ ] { ^ / ^ ] { / ^ { { ^ { ^ { { ^ ] ] { { ^ ^ { ^ _ _ !.l {.{.!.c.2.j.j.w.h.i.D.D.D..+X.1+-+m+]+<+6+6+g+7+7+q+y+q+s+C+D+D+W+@@@@@@=@=@=@^@f@|@t@t@s@y@t@Q@M@Q@W@H#W@`@6#`@)#/#/#}#4#3#5#7#f#7#f#f#I#E#u#I#J#u#K#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + L#s@|@|@|@f@=@=@W+@@S+D+D+D+C+q+q+y+r+7+n+7+g+<+:+'+-+'+1+-+.+ +D.D.D.x.h.i.c.2.{.2.{.!.!._ u+C >.4.V V C >.4.C C C V C V V C V >.V >.V V C V C V C 4.C V >.,. ",
+" M#] { ] / { ] { ^ { { / / { ] ^ { ^ { { ] { ] { ] { { ^ ] ] { ^ ^ _ l !.l !.c.2.c.c.h.i.w.D.i.D..+{+X.-+'+'+m+]+]+]+2+7+y+x+r+s+s+Q+C+S+X+S+S+=@@@=@=@6@f@f@|@s@t@E@U@G@Q@Q@Q@r#W@W@$#`@`@)#4#D#4#3#3#f#3#f#y#t#y#y#u#E#N#u#O#P#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + |#t@g@f@/@f@|@=@=@=@W+X+X+D+D+s+s+s+7+7+7+7+7+2+6+<+'+:+-+.+.+X.X.W.D.i.x.i.c.c.c.c.2.{.$._ ] ^.>.B V >.4.4.>.V C V >.V C C C C 4.V 4.>.C 4.V C V C >.4.V C C Q# ",
+" / / ] { ^ ^ / { { { ] ] / ^ / { ^ / { ] { ] { { { / / ] { ^ { ] J _ _ !.{.{.2.2.,@h.h.w.v.D.D.W..+W.-+-+'+-+<+2+6+7+2+7+7+q+q+J+s+D+D+X+W+@@=@x@r@=@=@|@R#R#S#t@F@M@F@F@Q@Q@W@W@)#-#-#`@/#4#4#5#3#7#7#f#f#T#f#E#E#u#N#N#u#U#U#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + i#f@g@s@f@f@/@V#=@=@W+X+D++@C+Q+C+s+x+s+7+7+6+e+]+]+-+-+-+.+X.X.W.D.D.v.D.w.i.r.c.c.2.{.$.%.j#^.W#C 4.C V >.C C C C C 4.C V 4.V C >.V C >.V C C V V C C >.V C ",
+" P / ] { { { ] { { ] { { ] ^ { ] ^ { ^ / ] ^ ^ ] ] { ^ { { ^ ] =.^ _ _ $._ 7.2.2.c.i.c.i.v.w.D.W.W.X..+-+-+:+<+<+6+2+7+7+y+q+q+q+C+D++@S+S+W+X+=@=@r@7@f@f@s@t@s@y@U@y@Q@Q@Q@Q@H#`@$#)#/#/#/#3#5#7#5#5#f#f#f#y#E#u#u#u#N#N#U#U#X#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + Y#t@g@f@f@|@=@|@=@=@@@@@W+S+D+D+Z#s+q+o+7+x+e+7+2+<+<+'+-+-+.+X.O.W.D.w.i.K.i.h.c.c.{.{.%._ b ^.B C >.V C C 4.V V C 4.C 4.V V >.V >.C V C V >.>.V >.4.4.>.>.4.W ",
+" `#^ { { { ] / { { { ] { { { ] { ^ ^ ] { ^ ] ] { { ] { { { / ^ / =._ _ %.~.{.!.2.2.c.h.h.x.D.D.W.D.X. +.+'+'+]+]+]+g+<+7+7+n+q+s+C+D+D+S+@@@@-@-@=@r@6@|@R#g@t@y@E@y@F@Q@W@W@`@$#`@`@)#/#)#/#4#3#7#4#7#f#f#y#E#t#u#u#u#U# $.$+$@$#$+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + f@y@g@g@f@^@^@/@=@x@S+@@W++@+@C+s+q+q+r+y+7+7+2+2+<+'+]+'+-+ + +O.D.D.D.w.i.c.h.2.c.2.!.%.~.+.$$$$>.C C C C V V V 4.C >.>.>.C C C C >.V V C C C C 4.V C C C V `# ",
+" %$] { { ] ] ] { { ] { ^ { { ] ] ^ { { / / ] { ] { { / ] / { { ^ J _ _ l {.{.!.{.h.i.i.w.w.w.D.D.P..+X.'+-+'+<+2+7+g+7+7+q+s+s+C+C+D+D+S+X+@@W+=@/@6@|@|@g@f@s@y@E@E@Q@Q@W@l#W@-#`@)#/#4#4#3#4#3#5#f#f#f#T#E#I#E#J#U#U#U#U# $ $&$*$+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+=$=$=$-$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + ;$t@t@s@s@f@r@^@=@>$W+x@@@S+S+C+K+C+s+s+x+7+7+7+f+<+<+-+-+-+.+X.{+D.P.D.i.h.i.r.j.2.!.{.l {.e ^.^.C >.>.>.>.C C C 4.>.C >.V 4.C C 4.C 4.4.4.4.>.C C V >.C V >.,$ ",
+" '$^ ] ] ^ / ^ / { ] ] { ] { ^ ^ ^ { ] ] ] { ^ { ] ] { { ] ] ^ ] ^ _ $.%.l !.2.l.c.h.c.h.D.V.D.D.O..+-+$+-+]+'+b@<+g+7+7+7+r+s+s+s+s+D+S+@@=@@@=@=@/@/@^@|@g@s@t@t@y@U@Q@W@`@$#l#-#)#/#/#/#4#3#3#7#7#f#)$I#y#u#N#N#U#U# $U#!$@$.$~$+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{$]$-$=$=$=$A@^$=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + E@t@t@|@f@/@f@=@r@@@S+W+*@S++@D+J+s+q+s+7+7+7+<+]+]+<+-+-+-+$+X.W.D.D.D.i.i.c.c.c.c.!.{.~.] ^.$$>.C V 4.V 4.C V C V C V V 4.V V >.4.>.>.>.C 4.V >.C 4.4.V C V /$ ",
+" ] / ^ ^ / { { { ] / { ] ] / ] ^ { { ^ { ^ ] { ^ { ] { { { / ] ^ _ $.l ~.!.{.l.c.c.h.c.h.w.D.D.D.X.X.X..+-+:+]+]+<+2+7+n+y+s+s+D+D+D+D+X+@@($@@/@r@7@f@f@s@s@t@E@E@Q@Q@$#$#W@-#)#/#/#/#4#3#3#a#7#f#y#f#y#u#E#N#u#U#U#.$+$+$~$~$~$_$+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+:${$<$[$}$:$}$-$[$=$A@=$=$]$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + |$E@y@t@s@f@f@/@=@=@@@X+@@X++@C+D+s+q+y+q+y+7+2+6+]+6+]+-+-+.+.+W. +D.D.h.x.v.h.h.l.{.{.{.%.1$^.$$^.C C C C C >.V V C C C V V 4.>.C 4.C >.4.>.V C >.C 4.C V >.>. ",
+" 2$^ { { ^ ^ { { ] ] ] { ] ^ ] ] / { { ] ] ] ^ { ^ ] ^ / { ] { =.^ _ %.l _ {.{.2.c.c.h.v.D.D.D.W.D.X.$+-+'+-+'+<+]+e+7+y+7+s+q+D+C+e@D+D+X+X+x@@@/@r@/@|@f@t@t@U@t@M@Q@Q@$#W@W@$#)#)#4#3#5#0#3#f#f#f#E#y#u#E#u#O#O#U# $.$~$&$~$~$3$4$+ + + + + + + + + G+G+=$]$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+5$5$<$5$5${$}$:${$[$[$-$=$:$=$=$=$-$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + ;@E@t@t@s@f@g@f@/@^@=@=@X+S+S+S+D+D+s+s+r+q+7+7+e+6+]+'+'+-+.+X.W.X.P.W.D.v.x.i.r.2.c.{.{.{.K ^.^.$$C V >.>.C C >.C >.V C V V >.C C >.C C V C C >.>.>.V >.>.C V 6$ ",
+" =#] { / ^ { ^ / / { ^ { ] { { { { { ] { / / / ] ^ ] { ] ^ ] / { ] ^ _ _ ~.!.7.{.2.h.h.h.w.w.D.W.W.X..+X.-+m+'+6+6+]+2+7+y+s+y+s+Z#C+D+D+S+W+-@r@r@6@|@f@s@t@D@G@F@F@Q@Q@W@$#l#)#`@)#/#4#4#3#3#7#f#f#f#E#u#u#N#U#U#U#U#+$!$~$~$7$3$8$9$+ + + + + + + + + =$G+=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+0$a$a$a$a$5$a$b$5$5$c$c$5$d$}${$=$:$-$=$=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + e$E@t@f@t@R#f@r@/@=@=@=@X+S+S+e@C+D+s+q+n+7+7+2+e+<+2+]+'+-+.+.+.+.+X.D.i.v.h.j.c.2.2.{.{.=...^.^.V C C C V C >.>.>.C 4.V V >.C 4.4.V C >.C >.4.C 4.C >.V C 4.4.'# ",
+" f$] { ^ ^ ] { { / ^ ^ ] { { / ] ^ { / ] { ] / ] ] ^ { { ^ ] { ] / _ _ #.{.g${.c.2.h.c.w.w.x.D.W. +W.X.'+-+-+<+6+7+2+7+7+q+q+s+C+C+D++@T@-@X+=@=@|@|@f@t@f@s@t@t@G@Q@W@Q@W@`@-#-#/#/#4#4#7#0#3#f#T#)$E#u#u#J#u#U#U#U#!$~$~$~$3$h$7$3$i$+ + + + + + + + =$=$-$]$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+j$k$k$k$k$a$l$0$a$a$a$a$5$a$5$5$5$<$[$}$A@:$[$-$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + H@Q@E@t@t@s@q#f@/@/@/@@@-@S+W+D+C+D+C+s+n+n+7+7+g+7+<+<+:+'+-+-+.+.+X.D.V.D.w.i.j.c.7.2.{.~.9.^.>.C 4.4.C V >.C C C >.V C 4.V V V >.C >.>.>.C C V V C C V >.>.>.m$ ",
+" n$^ { ] { { ^ { ] { / ] { { { ] ] ] ] ] { { ^ ] { / ] { ] ^ ] ^ { / ^ _ !.%.{.3.c.h.h.h.i.i.D.D.W..+-+-+'+'+]+:+7+2+g+7+q+q+s+C+J+D+S+X+@@@@=@=@r@f@f@f@|@f@t@E@E@E@W@W@Q@$#$#^#)#/#4#5#s#7#7#f#T#y#t#u#O#u#U#U# $@$&$@$~$7$7$_$_$3$o$+ + + + + + + + + [$}${$c$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+p$q$r$s$s$j$p$k$s$a$q$a$l$l$a$a$5$a$5$}$}$}$A@[$-$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+n#G+G+G++ + + + + + + + + + + + + + + + |@M@M@t@s@s@f@f@f@=@=@@@@@W+D++@C+D+s+s+s+7+7+2+6+2+]+'+]+-+1+$+W.O.W.D.D.w.h.i.h.c.{.{.{.t$^.^.^.4.>.C V C >.4.4.4.C C >.C >.V C V C >.>.C V C V >.V >.>.C C C n$ ",
+" l@{ ^ { / { ^ { ] { { / { { ^ ^ { ] ^ ^ ^ ^ ] ] ] ] { { { ] ^ / / _ _ _ %.{.{.2.2.c.h.h.V.D.D.X. +.+.+'+-+'+]+<+2+2+7+7+7+q+s+C+D+D+S+W+@@-@/@/@/@^@s@g@g@y@t@M@Q@M@W@W@`@-#)#)#D#D#3#4#3#f#f#f#E#E#u#u#O#U# $ $@$!$~$7$~$7$7$3$_$u$.$+ + + + + + + + + {$}$5$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+v$w$w$x$w$p$p$r$w$s$p$s$k$j$k$a$k$a$a$a$b$a$5$}$}$[$}$-$=$=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + y$Q@F@y@t@t@s@g@f@f@=@r@=@@@W+S++@e@s+s+q+q+7+7+7+2+<+<+'+-+$+X.-+X.X.D.D.i.i.c.c.c.2.7.{._ ..a+^.>.C V 4.C C V V C >.C C C C V 4.C C >.C C >.V C 4.V V V C V >.w@ ",
+" z$] ] / ^ ] ^ ] ] { { { ] ] { { { { { ] / ^ { ^ / ^ / { { { ^ ^ ^ / _ l %.{.{.!.c.c.c.c.i.w.D.W.P. +.+.+'+'+:+]+<+7+7+7+n+s+s+s+C+D+D+S+X+@@=@=@/@|@f@f@t@t@t@M@y@W@Q@`@W@$#)#/#/#}#}#4#5#7#7#I#)$u#u#O#O#N#U#U#+$+$~$~$7$~$_$3$3$o$A$B$+ + + + + + + + 5$5$5$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C$C$C$v$C$v$r$w$v$D$E$E$w$w$j$k$j$j$k$k$a$l$a$a$5$c$:$[$[$=$A@=$=$G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + Q@Q@F@E@t@f@f@|@|@6@/@=@=@S+W++@C+C+C+s+r+y+n+7+g+7+]+]+'+-+-+X.X. +D.D.w.v.i.h.j.l.2.{.!.G...>.B C C V V C >.C C 4.C C C 4.C >.V >.>.C C V >.C C V >.V C C V 4.z$ ",
+" d@/ ] { { ^ ] { / { { ] { { / ^ { { ] ^ { ] ] { ^ ] ] / ] { ] { { _ _ l %.!.!.{.c.i.v.i.i.x.D.D..+ +-+-+-+]+]+]+<+7+7+y+q+s+s+D+C+C+X+@@W+@@r@/@7@|@f@t@s@t@y@F@Q@W@W@Q@`@-#/#)#/#/#3#4#0#f#f#T#y#u#E#u#U#U#U#+$~$~$~$7$_$3$3$3$F$F$F$G$+ + + + + + + + 5$a$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C$H$C$C$C$C$I$C$C$v$v$v$v$w$D$w$p$E$k$k$j$k$a$a$a$a$5$5${$:$[$=$-$=$G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + J$Q@E@t@t@t@t@f@|@|@/@/@=@-@X+X+X+C+s+s+y+q+y+7+7+<+f+]+]+m+-+X..+.+D.D.D.x.i.h.c.c.2.{.{.K M ^.>.>.V V C >.C C V 4.C 4.C C C V C C 4.C C V >.>.>.C >.V 4.C V C W ",
+" 2#{ ] / / ] { ] { / { { ] { / { ^ / ] ] ] ^ ] ] ^ ] { ] ] ] ] ] { _ _ _ !.{.{.c.c.c.h.i.D.D.D.O.P. +.+.+-+:+<+<+7+2+7+x+y+y+s+J+s++@W+X+W+@@=@6@^@f@f@f@g@t@F@t@Q@W@W@$#`@-#/#)#/#/#4#3#f#f#f#f#E#E#u#O#U#U#U# $&$~$~$7$3$3$A$_$_$A$F$K$L$+ + + + + + + a$a$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M$N$O$P$H$O$O$O$C$C$C$v$C$v$v$v$v$Q$p$r$q$s$s$q$k$l$a$c$5$d$5$}$:$:$A@R$=$G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + S$W@Q@U@t@y@t@g@|@|@7@/@=@=@S++@D+D+C+D+C+n+q+7+7+2+<+'+]+:+'+.+X.X. +D.D.w.v.i.h.h.c.2.{.T$[.a+^.B 4.C >.C V V >.C V >.C V C V 4.C C V >.V >.C C C C 4.V C C 4.>.2# ",
+" U$] ] { / ] { / ^ ] ^ { { ] / { / ] { ] ^ { { ^ ] ^ { ^ { ^ { / { { _ _ #.!.2.7.c.c.i.i.V.D.D.{+W.-+.+-+-+-+6+g+<+7+7+o+y+s+q+D+D+S+S+W+@@=@=@6@/@f@|@t@s@y@y@Q@W@W@$#W@$#$#^#4#/#4#7#a#f#y#y#f#u#V$O#N#U#.$@$@$&$7$_$7$3$o$A$F$A$W$W$X$m#+ + + + + + + a$k$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Y$P$M$Z$M$M$M$P$O$M$I$C$C$H$C$C$v$v$v$r$w$r$p$r$k$j$k$a$a$5$a$5$d${$[$:$=$G+]$G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + `$W@Q@E@E@E@t@g@s@|@f@|@=@=@S+W+@@S+C+s+C+s+x+q+7+7+2+6+<+'+]+-+.+.+D.W.D.D.w.i.i.2.c.2.{.{.j#^.^.W#>.W#>.4.V C V V C >.C V C >.>.V C >.V >.>.V V V C C V V >.C >.0. ",
+" { ^ ] ^ { { / ^ / { / ] { ^ / ] ] ] ] { ^ { / { { { / ] / ] ] / J _ _ _ !.!.{.c.2.h.i.v.i.D.X.X. +.+$+$+'+'+]+2+7+2+n+n+s+J+D+D+D+X+@@@@=@=@/@|@|@f@f@s@t@y@y@Q@W@W@l#l#`@)#/#4#/#3#7#7#f#f#E#E#E#U#O#U#.$U#.$~$7$7$3$3$3$A$F$A$F$W$W$ %+ + + + + + + + s$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.%+%@%+%+%#%+%Y$N$Y$+%O$M$H$C$I$O$C$C$v$v$v$Q$w$v$p$k$q$j$a$a$a$a$5$}$[$:$]$=$=$G+G+G+G+G+G+G++ + + + + + + + + + + + + + + |#Q@Q@Q@Q@y@t@t@g@|@f@^@/@=@@@=@S+S+X+D+s+s+s+s+7+7+7+f+<+]+]+.+.+X.W.W.D.D.w.i.v.h.2.c.7.{.U+O+......^.$$$$$$4.C C C C C V C C V >.C V C >.C >.>.V C C C C C V C >. ",
+" $%{ ^ ^ { { ] { ^ ^ { ] ^ { / ] { { ^ ^ { / / ] ] ] ] { { { ^ { ^ ^ _ !.{.~.!.{.c.c.i.w.w.i.D.D. +.+1+-+'+'+'+2+e+7+7+y+s+r+J+K+D+D++@X+=@@@=@6@|@f@f@s@t@G@F@Q@Q@W@$#`@-#-#/#4#4#3#3#f#7#t#f#E#%%E#N#U# $@$@$~$h$7$3$3$_$&%A$A$K$W$K$ %*%+ + + + + + + s$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+=%@%-%;%@%@%Y$>%Y$Y$#%+%Y$N$Y$Z$M$O$C$C$,%v$v$C$Q$w$r$p$q$k$k$l$a$a$5$[$}${$[$-$=$=$G+G+G+G+G++ + + + + + + + + + + + + + + + l#Q@W@M@M@t@y@t@t@f@f@^@/@=@@@@@X+X+C+C+q+s+s+y+7+7+7+]+<+<+'+'+.+ +.+W.D.D.w.h.h.c.2.{.!.b '%......$$W#$$$$W#C $$>.4.V >.V C 4.V C C V C C C C 4.C V C C V 4.C C )% ",
+" { / { ] ] ] ^ ] { ] ] / ^ ^ { / { ^ { { ] ^ { { { { ^ / ^ ^ { ] ^ _ _ ~.$.{.2.7.c.c.h.w.D.x.D.X.D..+.+'+]+:+]+2+2+7+7+r+q+s+s+C+X+S+S+@@=@=@/@/@f@f@s@t@t@F@M@Q@W@W@)#$#`@)#D#/#7#7#5#f#f#y#E#u#E#U#U#U#!$&$~$~$7$7$_$_$_$A$!%W$F$W$ %X$~%+ + + + + + p$Q$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{%]%-%{%{%{%-%-%@%@%@%@%.%Y$@%+%+%+%N$O$M$P$C$C$C$C$v$v$w$p$s$j$q$a$a$5$5$c$5$}$[$=$=$=$G+G+G+G++ + + + + + + + + + + + + + + + l#Q@Q@Q@U@E@G@t@f@f@|@r@=@=@@@W+X+X+D+C+J+s+r+r+7+7+7+6+<+:+'+'+-+.+ +W. +x.V.w.h.c.c.{.!.=.^%....../%$$W#W#$$^.W#$$$$C >.C V >.V 4.V C >.C >.>.>.C V V 4.C V V C >. ",
+" b.^ / { { { ] ^ { ] ^ ] / ] ] ] { { { ] { / ^ / { ] ] { ] ] ] ] ] _ _ $.l ~.d+2.c.h.i.i.V.D.D.W..+ +-+.+-+]+<+<+6+7+7+7+n+s+q+K+C++@S+@@X+@@/@/@f@|@f@s@y@M@y@Q@Q@W@$#$#-#/#/#/#4#7#5#f#f#E#u#E#E#O#O#U#.$~$@$7$~$_$_$3$A$_$(%K$ %W$X$ %_%:%+ + + + + + v$v$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+<%]%[%[%}%[%{%-%[%-%-%-%=%@%@%@%|%+%Z$#%+%M$#%I$M$C$C$C$C$Q$w$r$r$q$j$k$a$a$a$}$d$[$-$-$=$-$G+~#G++ + + + + + + + + + + + + + + 1%W@$#Q@Q@y@Q@t@t@f@|@|@|@^@=@=@@@W+S+C+C+C+q+y+o+7+7+]+<+]+]+'+-+-+X.X.W.D.V.i.h.h.r.2.{.2.~ 2%O+..^.B B W#B B ^.^.$$W#W#B V 4.>.C C 4.C V 4.4.4.C C >.V 4.>.C C C b. ",
+" 3%{ / / ] ] / ^ ] { { { ] { { { { ^ { ^ / / ] ] ] { / ^ { { { { { { _ _ !.{.!.2.2.c.i.h.w.D.D.O.W..+-+'+-+:+<+<+2+7+7+y+s+s+C+C+S+X+W+-@W+=@=@|@|@s@t@t@t@y@Q@M@W@Q@W@$#`@)#/#4#4#0#f#f#)$)$y#u#O#U# $@$.$~$~$h$~$3$3$_$A$W$W$K$ %X$X$_%4%5%+ + + + + + v$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+6%6%7%<%}%<%}%8%[%}%}%[%=%-%-%-%@%@%@%@%Y$+%+%+%N$O$O$H$C$C$v$v$w$E$E$q$q$k$a$5$c$d$[${$=$=$G+G+G++ + + + + + + + + + + + + + + 9%`@W@Q@Q@F@E@y@t@f@R#|@r@r@=@=@x@W+D+D+D+C+s+q+n+y+7+e+2+<+:+:+-+-+.+X.O.D.D.V.h.h.r.r.2.{.K M ..../%^.W#W#W#W#B B W#W#W#B $$C 4.>.4.V >.4.V C C V >.4.4.V C C V 4.0% ",
+" 2#] { ] { ] { { { { ] { { { { / ^ ] ^ ] { ^ { { { ^ ^ ] { ] ^ ] ^ =._ _ !.#.{.2.c.C.c.h.h.w.D.P.D.X.X.-+'+)+6+2+f+e+n+r+x+s+K+D+D+S++@@@W+=@r@|@=@f@s@s@t@E@Q@a%Q@Q@l#$#)#/#/#4#3#5#0#f#f#y#E#E#E#b% $@$.$~$~$~$7$3$A$A$A$F$W$!%W$c%X$_%4%_%d%+ + + + + C$M$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+e%7%f%g%6%e%7%f%8%8%6%f%8%[%]%-%}%-%=%h%@%@%@%+%Y$#%P$N$O$C$C$v$v$v$w$r$k$j$s$l$a$a$}$:${$]$=$G+n#+ + + + + + + + + + + + + + + L$$#$#Q@W@M@y@E@t@t@g@q#/@|@=@@@X+X+S+S+D+D+s+J+n+y+7+e+f+<+'+'+'+-+$+W.X.{+V.D.v.i.c.2.c.l.i%,#,#......^.^.W#W#$$$$$$W#W#^.^.W#$$C >.C C 4.4.>.C >.C V V >.>.4.C V C j% ",
+" a / { { { / { ] / ^ { { ] ] / ^ ] ] { { { ] { { ] ] ^ { { ] ] { J ^ _ _ %.{.{.2.c.h.h.h.v.D.D.D.W.-+.+'+:+]+<+6+6+7+n+q+s+C+K+C+D+D+D+@@@@=@/@|@f@|@s@t@y@F@M@W@Q@W@$#`@/#)#3#4#5#3#f#f#t#u#u#E#O#U# $~$.$~$~$_$_$A$A$A$W$F$F$K$X$X$_%k%4%4%l%+ + + + + H$M$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m%n%e%m%e%m%e%e%7%e%e%e%f%8%<%]%}%[%]%o%=%-%-%@%@%+%@%#%N$Z$O$I$C$H$v$v$w$r$p$k$j$a$a$5$<$[$}$}$]$=$+ + + + + + + + + + + + + + + ;@)#$#r#l#Q@Q@t@E@y@L@s@f@|@r@@@x@@@W+S+D+C+D+q+r+y+7+7+g+]+6+]+'+-+-+X.X.D.D.D.i.i.c.c.2.l.{.2%^%..p%..^.B $$B $$^.^.$$B $$W#$$^.W#C V C >.C >.>.V >.C >.C >.>.4.>.C q% ",
+" ] ^ ^ { / ^ ] ] { ^ { ] { { ^ { { ^ { / { { { / ] { / ^ ^ ] ] { ^ _ _ l {.!.l.2.h.r.i.K.V.D.D.O..+X.-+-+:+]+]+7+6+x+n+q+q+C+D+D+X+S+S+W+=@^@7@f@f@g@t@y@t@Q@W@W@W@W@`@^#)#)#/#7#7#0#f#y#y#u#u#O#U#U#U#!$7$~$~$7$_$A$A$F$F$W$W$ %X$X$4%4%r%r%s%+ + + + + O$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m%t%m%m%m%m%n%m%e%e%e%e%g%e%g%7%7%6%8%f%]%[%-%<%@%-%@%@%+%#%#%+%N$N$C$C$x$D$v$E$w$k$a$l$a$u%c$[$=$]$+ + + + + + + + + + + + + + + + -#$#`@Q@Q@Q@y@F@y@t@s@g@f@7@r@V#X+=@S++@D+K+s+q+q+y+7+7+2+]+]+]+-+$+X.X.X.D.D.h.w.c.h.c.2.!.M.2%....v%^.$$$$B W#$$W#^.W#$$^.W#W#$$$$V >.C C C V C C V V 4.>.4.>.4.C C ",
+" w%] { ^ { ^ { ^ ] ^ / ^ / { { { { ] ] { ] ] ^ ] { { { ^ ] ^ { { =.^ _ _ %.%.{.c.2.2.r.x%i.w.D.D.X..+.+-+'+Z+'+6+<+7+7+r+y+q+K+C+S+X+W+@@=@=@=@/@f@t@s@t@t@Q@Q@W@Q@l#$#`@^#4#4#/#4#7#7#T#I#E#N#u#u#U#U#+$&$~$y%7$z%_$F$A$F$!%X$X$_%_%A%A%r%r%B%+ + + + + + #%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C%D%D%E%F%G%m%H%m%m%m%m%n%e%e%e%e%e%7%8%7%6%[%]%=%]%-%@%@%@%#%Y$M$M$N$C$I$v$v$p$w$r$w$k$a$5$a$}$c$A@:$+ + + + + + + + + + + + + + + a%$#$#$#Q@W@E@Q@t@L@s@g@f@/@|@>$=@@@X+D+S+C+s+q+s+n+n+7+7+f+'+m+-+-+-+X.W.D.D.D.v.h.j.c.c.{.U+'%....p%..W#W#$$^.B W#$$^.W#$$W#$$^.$$^.B >.C V C C C >.C C >.>.C C 4.4.I% ",
+" J%^ { ] ^ { { / ] { ^ { / { ^ / { { ] ] { ] ^ ^ { ] { ] { { ^ ] ^ ^ _ %.$.#.{.c.2.2.h.h.w.D.D.O.W. +.+'+:+:+b@e+2+7+x+r+y+J+C+C+D++@@@x@=@=@=@|@f@t@f@t@F@F@Q@W@$#W@)#-#D#)#4#3#7#f#y#I#I#u#N#U#U#@$.$ $~$~$3$_$A$_$F$F$W$X$X$X$X$4%K%K%r%L%r%+ + + + + |%@%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C%M%G%N%F%M%O%G%F%G%E%E%E%m%E%H%m%e%e%e%e%e%7%6%8%<%[%[%{%-%@%@%@%+%+%M$M$O$H$C$v$v$E$w$j$s$0$a$5$<$:$:$+ + + + + + + + + + + + + + + P%/#-#$#$#Q@W@F@y@t@t@f@f@f@7@=@@@x@@@W+D++@C+q+s+n+o+7+2+2+]+'+'+'+.+-+D.X.D.D.i.w.i.c.2.!.] ,#......^.v%^.^.^.$$^.$$$$^.B $$W#B ^.$$B V C C >.4.C 4.>.4.C V V >.C 4.Q% ",
+" { ] / ^ ] { / ^ ] ^ { { ^ / { ] ^ { / / ] { ] ^ ^ ] { { ] ^ ] ^ ^ / ^ ~.l !.2.c.c.c.h.i.D.D.D.O..+X.$+-+]+2+]+6+e+7+x+q+q+q+D++@+@D+@@=@=@=@^@/@f@t@t@t@F@Q@W@W@$#l#`@)#/#4#5#0#f#f#T#y#E#O#E#U#U# $&$@$~$7$3$_$A$A$W$F$!%K$X$_%_%4%r%r%r%R%S%+ + + + + .%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C%T%C%T%T%C%T%M%N%O%C%N%F%D%F%E%m%m%H%n%e%e%e%7%f%6%f%6%{%{%-%-%@%@%+%@%+%Y$M$I$C$v$v$r$r$E$s$k$0$a$5$}$+ + + + + + + + + + + + + + + U%^#$#6#W@W@Q@Q@E@t@s@s@f@^@=@=@=@=@@@S+S++@C+C+q+s+y+7+<+2+<+]+'+-+X..+O.W.W.x.D.v.h.h.C.c._ '%'%2%..^.B B ^.$$W#^.W#$$$$W#^.W#$$$$W#W#B ^.V >.C V C 4.4.4.V C V V C V ",
+" [+{ ^ ] { ^ / ^ { { ^ ] ^ ] ^ ] ^ { ] ^ / { { ^ ^ ^ / / { ^ / ] { / ^ _ !.!.7.{.2.c.c.i.i.h.D.W.X..+-+$+)+]+]+2+]+2+n+y+s+J+C+C++@T@@@W+=@=@6@f@f@s@s@t@E@M@E@V%$#W@-#)#/#W%5#3#7#f#f#y#I#N#U#O#U#.$&$~$~$~$3$A$A$F$F$F$F$X$_%X$4%k%4%r%r%r%X%Y%+ + + + + {%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T%Z%`% &T%T%T%T%T%T%T%T%C%O%O%F%G%D%G%G%E%m%m%e%e%e%7%7%7%7%<%[%-%h%-%@%@%+%P$P$N$C$v$v$v$w$r$s$j$a$a$5$+ + + + + + + + + + + + + + + Y#)#.&)#`@W@r#Q@F@F@E@t@s@f@|@/@=@@@=@W++@D+C+D+s+q+n+x+7+g+<+]+:+-+-+.+X.X.W.D.x.D.h.h.c.2.7.+&..2%..../%$$$$^.W#$$W#W#W#W#W#$$$$$$W#W#$$B 4.C >.4.V C V 4.C C C V C V [+ ",
+" w+^ { { { ] / ] / ^ ] { ] ] ] ] ^ ] ] { / { { ^ / ] ^ ^ ] ^ { { ^ J ^ _ !.{.!.2.2.2.i.i.v.w.D.{+X.X..+'+'+]+]+7+e+7+7+y+s+s+C+D+D+@@@@=@@@/@^@|@f@R#s@t@t@Q@Q@`@$#6#`@-#/#W%}#3#5#f#y#I#E#O#U#N#U# $~$@$h$3$3$3$u$F$F$F$X$X$X$_%A%4%A%r%r%@&#&$&+ + + + + [%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+%&&&`% &*&`%`%`%`%Z%`%=&T%-&C%T%O%D%F%C%E%E%m%t%m%n%e%e%e%7%8%<%o%{%-%-%@%@%Z$O$N$N$H$I$v$x$w$w$E$k$s$5$5$+ + + + + + + + + + + + + + h@/#)#-#`@$#Q@W@y@F@t@t@t@f@f@/@=@=@@@X+D+S+C+C+s+s+s+7+7+7+]+'+'+'+-+1+X.W. +D.D.w.i.h.h.2.2.U+'%2%......B W#$$$$$$$$^.$$W#W#^.$$^.^.W#^.^.$$$$4.4.V V >.4.>.>.>.C V C m$ ",
+" ] { { / ] { { { { { ^ / { ] { ] { { / ^ ^ { / / ^ / / ^ { ^ { ] ] =._ $.%.!.{.{.c.i.h.D.x.D.P.W.W..+X.'+)+'+]+2+7+n+n+s+q+C+C+D+S+*@@@=@=@/@f@f@f@t@t@E@U@W@Q@$#`@`@-#)#/#4#5#7#f#y#u#E#u#N#U#U# $&$@$~$h$_$A$_$F$F$!% %X$X$_%;&K%K%r%B%B%>&,&'&+ + + + <%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+)&%&)&!&%&&&%&&& &~&*&*&`%`%T%T%T%C%C%C%M%M%F%G%m%n%n%e%e%7%7%6%[%}%<%<%-%@%@%|%Y$+%H$O$I$v$v$p$q$s$q$k$a$+ + + + + + + + + + + + + + + /#/#`@-#`@W@Q@Q@y@t@t@t@f@f@^@r@/@=@X+W++@+@K+q+q+y+o+7+7+f+]+]+]+-+$+.+.+.+D.D.w.i.i.h.c.{.{&]&+.......$$$$$$^.W#W#^.$$^.W#W#W#^.B $$$$^.^.B ^.V C >.C V C V >.>.C >.>. ",
+" ^&^ ^ { { { { ] / ] { ] { { / ] / { { { / { { ] ] { ] / ^ ] ] { { _ / _ %.l {.c.2.r.h.h.v.w.D.W.X.X..+-+-+<+:+2+2+7+7+n+q+s+D+D+C+W+X+x@=@=@|@f@|@f@f@t@U@U@W@l#`@`@)#)#/#3#3#a#a#f#y#T#y#u#U#U# $!$~$~$7$8$_$_$_$F$F$/&*%X$X$4%A%4%r%r%@&,&,&(&*$+ + + + 8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+_&_&&&_&_&&&&&)&)&&&%&%&)&*&~&~&T%T%T%T%C%M%M%F%G%G%m%m%:&m%e%g%f%7%}%[%{%{%-%@%|%#%N$M$I$C$C$v$w$p$r$l$k$+ + + + + + + + + + + + + + + 4$4#-#/#6#$#W@Q@F@E@y@t@g@f@f@=@=@=@-@@@D++@+@D+C+s+q+7+7+7+]+]+]+:+.+.+ +O.W.D.V.h.i.h.c.c.` 1$<&'%..^.$$^.^.W#W#W#$$W#^.B ^.^.W#$$$$$$$$B B C C >.V 4.C V V C C C V C %@ ",
+" [&/ { { ^ ^ { ^ ^ { { { ] ^ ^ { ^ { ^ { { ] / { { ] { { ] { { / { ^ _ _ _ !.2.{.c.j.h.i.x.w.D.D..+X..+-+]+:+'+]+7+7+x+s+q+q+s+D+D++@X+@@=@=@6@/@f@s@y@F@F@F@W@l#l#-#)#/#/#4#7#3#f#f#E#E#u#u#U#U#U#@$~$7$3$8$_$A$!%F$K$ %X$4%4%_%A%B%B%B%R%X%,&}&s%+ + + <%7%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+|&_&|&|&|&1&_&_&2&3&&&!&!&&&)&`%!&`%Z%T%`%T%T%T%C%N%M%H%t%m%m%e%e%e%6%f%[%[%o%-%@%+%>%+%O$O$C$v$v$v$r$q$k$+ + + + + + + + + + + + + + + b#/#)#)#$#`@`@Q@M@y@t@t@s@f@f@|@/@=@@@@@X+D+C+D+C+q+n+y+7+6+6+]+:+]+-+1+X.O.O.D.D.h.i.c.i.c.!.]&2%M ......^.$$$$$$B $$W#B W#^.W#B W#W#$$W#$$$$W#C C >.>.V V C C C >.>.V 4& ",
+" f ^ { / { ^ / { ^ ^ / { ] { { ^ ^ / ^ ] { / { ] ^ ] / ] { ^ ] ] / ^ _ $.l !.{.2.2.h.h.i.i.D.W.O.X.-+l+-+'+'+<+2+g+7+y+s+s+s+D+D+S+X+@@=@=@=@^@f@g@t@t@t@F@Q@Q@$#$#-#-#/#4#3#3#f#f#u#)$u#u#N#U# $~$&$~$3$_$z%_$A$F$!%W$X$_%X$4%_%A%r%@&B%,&@&5&}&+ + + + e%8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+6&7&|&|&|&|&|&|&|&_&|&|&_&2&&&8&3&&&%&`% &`%`%`%=&C%O%M%G%G%m%n%m%m%e%7%7%7%[%}%-%-%@%@%@%#%+%O$H$v$v$p$w$r$+ + + + + + + + + + + + + + + y$/#/#$#`@$#W@W@Q@U@y@t@f@g@|@f@r@=@=@X+S+S+C+C+C+s+n+q+7+2+g+<+6+]+'+X..+W. +W.D.w.i.h.h.c.{.+&1$1$2%2%....$$p%W#^.$$$$W#$$W#^.W#^.^.W#$$B ^.^.W#V C C V >.C V C 4.C C `+ ",
+" { ^ / { { ] { / { ] { { { ] / ] { / / / ] / ] ^ ^ ] ] / ^ ^ { { { / _ _ !.{.l.{.2.i.h.x.x.w.D..+.+-+'+-+:+]+7+<+7+r+s+q+s+D+D+9&X+X+@@=@=@7@f@s@s@S#t@y@Q@Q@l#`@`@`@^#4#3#4#7#f#f#T#)$E#O#U#U#&$&$~$~$~$3$_$F$F$W$0&a&X$_%4%r%A%r%r%@&R%,&5&}&b&+ + + + g%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+c&d&d&e&f&c&6&c&c&|&c&c&g&|&|&|&_&_&!&&&_&!&)&`%`%T%T%T%T%C%C%C%E%G%m%e%e%e%7%8%7%]%=%-%-%@%#%Z$P$O$O$C$Q$r$w$j$+ + + + + + + + + + + + + + h&}#4#)#`@$#r#W@F@Q@y@F@s@f@s@|@/@/@=@@@@@T@D+D+C+C+q+q+x+7+2+2+]+'+]+.+-+X.D.D.x.x.x.c.c.2.c.t$1$2%2%2%......v%^.B W#$$$$$$B $$$$$$^.$$W#^.$$$$W#W#C V 4.4.C >.V C V C C ",
+" F ^ ^ { ] { ^ { ] { ^ { { ] ^ { / ] ] / { { ] ] / ] { ] { { ] ^ ^ / ^ _ _ ~.{.l.2.2.h.h.h.D.D.W.P..+-+1+'+'+<+2+2+7+n+q+s+C+D+C+D+X+@@=@V#6@f@/@f@t@t@G@t@a%W@`@-#)#-#/#}#3#3#3#f#E#)$E#u#O#U#U#@$@$~$7$7$8$A$A$F$W$K$ %_%4%4%r%r%r%@&@&X%(&,&}&i&+ + + e%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+j&j&f&j&e&f&j&6&6&7&6&7&7&|&|&g&|&|&|&2&_&)&8&_&~&%&`%*&T%T%C%C%F%O%F%m%n%m%e%8%7%8%[%-%o%-%|%+%#%P$O$O$C$v$x$r$+ + + + + + + + + + + + + + + 4#D#/#)#`@W@W@Q@E@t@t@t@t@f@f@7@^@/@=@X+S++@S+D+C+s+q+n+7+2+g+<+]+'+$+-+$+X.O.P.w.x.i.h.2.7.b 1$^%'%2%2%/%v%....^.B W#B B ^.B $$$$W#$$^.B ^.W#$$$$V >.>.>.C >.>.V V 4.4.Y ",
+" : / ^ { ] / / ] ^ ] { ] ] / ^ / ^ { { ^ { { ^ { { { ] ] { ^ ^ { ] _ J $.%.{.!.{.c.c.h.i.v.V.D.D.X..+|+-+<+'+2+6+<+x+y+q+q+s+C+D+D+W+X+=@=@^@^@s@s@s@t@E@E@Q@W@W@`@-#/#)#/#5#3#0#f#f#u#u#O#u#U#!$&$~$~$7$_$3$A$!%K$ %X$X$_%_%4%A%r%B%R%B%,&X%}&}&k&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+l&l&l&l&l&l&m&f&j&j&l&n&f&e&e&n&6&7&|&c&|&|&_&_&&&&&)&)&*&`%`%T%T%C%C%C%D%G%m%n%e%e%8%<%<%o%-%@%@%.%+%M$O$O$C$D$w$+ + + + + + + + + + + + + + + 7#/#/#/#$#l#$#Q@Q@F@F@y@t@g@f@|@^@/@=@=@W+S+C+C+C+q+q+n+7+6+g+6+'+'+-+.+-+X.X.D.x.K.i.h.j.c.] 1$1$o&2%2%2%../%p%/%$$$$$$W#^.$$$$^.W#^.W#$$$$$$^.^.V V C >.4.V C >.V C 4.K@ ",
+" S ] / { { { { / { { { ] / ] { ^ ] ^ ^ { { ^ { { { ] { ] ^ ] { ^ / ^ _ _ %.%.2.2.2.c.h.v.D.D.D.D.X.$+.+-+]+'+]+2+7+7+n+y+s+K+e@+@+@W+x@=@/@/@|@s@t@f@t@G@F@Q@$#$#`@-#)#/#4#3#f#f#)$E#u#O#U#U# $U#&$~$7$_$_$A$F$F$!%W$X$X$_%4%r%A%r%B%X%}&}&}&}&p&q&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+l&l&r&r&r&s&r&r&l&l&t&l&t&n&j&j&e&j&7&d&c&c&|&g&_&_&_&&&&&%&)&`%T%T%C%C%M%F%E%E%m%e%7%8%8%8%<%{%@%@%@%Z$Y$N$C$C$Q$+ + + + + + + + + + + + + + + u&4#/#)#$#v&`@W@W@Q@M@t@L@f@f@f@/@6@=@@@W+S+D++@C+q+s+n+7+2+7+g+<+)+-+.+.+.+O.D.D.D.x.h.i.c.%.1$<&'%o&2%../%/%p%/%p%p%^.$$$$$$$$$$$$^.^.^.W#$$$$$$W#>.V C >.>.V V C 4.C D ",
+" { ] { ^ / { / ] ] ^ / ] ] ^ ^ ] ^ { ] ] { ] { / ] { ^ { { / ] ^ { ^ _ #.!.!.2.3.c.j.c.w.D.w. +X.X.1+-+-+<+]+<+6+7+n+n+s+q+J+D+D+W+X+W+@@/@|@f@f@g@t@E@y@F@Q@W@$#`@)#/#4#4#4#7#f#)$I#E#u#U#U#.$@$~$~$_$_$o$_$F$F$F$X$X$_%_%4%4%r%B%,&X%}&}&}&}&w&x&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+y&z&z&r&z&z&s&s&z&r&l&r&l&r&l&m&t&j&j&e&j&6&c&c&|&|&_&|&2&&&!&`%%&`%Z%C%C%C%G%E%n%n%m%e%e%7%}%]%=%-%@%@%+%N$O$C$v$+ + + + + + + + + + + + + + + #$4#4#/#)#)#$#`@W@Q@E@t@y@t@g@|@|@=@=@=@=@X++@C+D+q+s+q+x+7+7+7+]+m+-+X..+X.X.O.D.i.i.h.c.C.%.]&<&<&2%2%2%/%/%/%v%....p%$$B W#W#$$$$^.^.W#^.^.$$^.$$$$C 4.V C 4.>.C C V C ",
+" A&] / ^ ] ^ ] { { ] { / { { ] / ] { ] { ] ^ ^ ] / / / ] { ] ] ^ { ] _ _ l _ {.2.{.C.h.j.i.w.D.W.O.X..+-+'+]+<+7+g+7+y+q+s+C+D+D+X+D+X+=@=@^@/@g@f@f@t@t@Q@W@W@W@l#)#)#4#/#4#f#f#f#I#)$V$O#U#.$@$@$~$~$_$3$A$_$F$K$X$ %_%_%_%r%r%B%X%,&B&(&}&}&C&p&D&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+y&E&F&G&F&z&y&H&z&z&y&z&s&r&I&r&r&r&f&j&j&j&j&6&c&c&c&|&J&|&!&_&%&&&T%T%T%M%C%E%D%F%m%e%e%e%8%8%[%[%h%@%+%Y$O$N$C$+ + + + + + + + + + + + + + + K&3#/#/#)#-#`@H#`@Q@Q@Q@t@t@f@|@|@/@=@W+x@W+D+D+D+C+s+s+r+7+2+6+]+'+'+'+.+.+.+W.O.x.i.i.i.c.2.L&<&o&2%2%/%/%../%/%..v%p%^.^.^.$$B $$$$B W#W#^.W#W#W#^.C C >.4.4.C C C >.C M& ",
+" [&{ { { ] ^ / / ] ] ^ ^ ^ ^ { / / ] { { { { ] ] / ] { { { / { ] ^ { ^ %.l {.{.7.2.c.c.i.h.D.O.D. +X.-+.+:+]+g+2+7+7+y+q+q+C+D+S+*@W+@@=@^@6@f@f@t@t@M@F@F@Q@W@W@-#`@4#}#3#4#7#f#y#E#E#N#N#U#U#@$&$7$7$3$3$A$F$!%/&K$X$_%A%r%r%r%B%B%@&N&}&w&b&p&p&O&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+P&P&G&Q&P&F&P&F&P&G&F&R&y&z&H&z&z&r&S&l&r&l&f&l&f&e&c&c&c&c&|&_&3&)&&&!&~&`%T%T%C%G%F%G%m%e%e%7%8%6%<%-%-%@%@%Z$N$I$C$+ + + + + + + + + + + + + + T&3#3#4#D#)#)#$#Q@W@Q@M@F@t@g@g@|@=@=@@@=@X++@D+C+C+s+r+q+r+2+]+6+]+:+-+1+.+.+O.P.x.D.i.i.j.2.U+]&]&]&o&2%U&/%/%../%/%..$$B B ^.^.^.B ^.$$$$^.B $$W#$$$$V V 4.V >.C >.C V V& ",
+" _ ] { / / { { { { ] { { / { / / ] { ] ] { / ] ^ ] ] ^ { { { { ^ ^ ^ _ _ #.%.2.2.2.i.c.w.x.x.D.X. +$+-+'+-+2+]+2+7+7+q+s+C+C+D+S+S+W+@@@@=@|@|@f@s@y@E@Q@M@Q@W@W@`@-#)#/#3#0#7#f#E#E#E#U#O# $!$~$~$7$3$_$o$A$F$F$X$c%X$_%A%A%r%@&B%B&,&}&}&W&X&p&Y&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Z&Z&Z&Z&Z&P&Z&R&Z&G&Z&P&P&F&R&F&F&z&r&r&s&S&l&l&t&l&j&f&n&|&|&|&|&3&_&%&&&`%`%T%T%C%F%C%m%m%m%e%e%7%[%<%{%-%@%#%+%Y$H$+ + + + + + + + + + + + + + + 4#3#4#/#)#`@W@Q@W@M@Q@t@t@t@f@f@f@|@r@X+X+X+D+C+C+Z#s+r+7+7+7+]+]+'+-+-+-+X.W.D.D.v.i.c.2.c.U+1$<&1$2%2%2%/%../%p%v%../%$$$$W#$$$$^.W#$$W#$$$$^.B $$V C V 4.C >.C 4.C 4.B ",
+" { ^ / { ] ] { { ^ ] { { ] ^ ^ ] ^ { ^ ^ { ] { ^ ] { { { / / { / ] ^ ^ _ _ {.!.l.c.h.h.h.w.D.D.O..+-+.+'+'+'+<+2+7+n+o+s+J+s++@S+W+X+@@=@^@^@f@s@t@t@t@Q@M@$#$#v&`@-#D#3#4#7#f#f#t#E#O#U#U#.$!$@$~$h$7$_$u$!%K$ %X$X$_%k%r%r%r%`&B&@&,&}&b&}&p&p&p&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+ * * * * * *Z&Z&Z& *Z&Z&Z&.*Z&P&G&H&H&z&E&z&s&r&l&l&l&t&n&d&f&|&g&|&_&_&2&%&~& &=&T%C%F%D%E%n%m%e%7%f%]%[%=%@%@%@%N$M$+ + + + + + + + + + + + + + + 7#5#4#)#/#/#`@W@Q@F@Q@t@t@t@R#|@^@/@=@@@@@S+D+C+D+C+s+q+n+7+g+f+'+]+'+'+.+.+W.D.D.w.w.h.c.2.( +*o&o&^%2%2%/%/%..v%v%p%../%W#$$$$^.^.B W#W#$$$$B W#B $$4.V >.C C C C 4.4.C ",
+" @*] / ] { { ^ ^ ] ] ^ { { { ] / { { ^ ] ^ ] / ] { { / { { ^ / { ] { ^ _ $.{.{.{.{.2.h.j.x.w.D.O..+X.-+-+m+<+]+2+2+7+x+q+q+s+K+D+S+T@W+@@=@/@/@f@g@t@y@M@Q@Q@l#l#-#-#)#)#4#5#a#f#)$E#I#u#U# $U#~$~$7$8$7$o$u$F$W$X$X$_%_%A%K%r%@&B%@&,&B&}&C&p&p&p&W$+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+#*$*%*%*&*%*$*#*$* * * *$* * *Z&Z&Z&P&P&R&R&R&H&r&r&r&l&l&j&j&7&n&c&**|&_&_&2&%&*&`%T%T%C%O%O%E%m%t%e%e%8%}%{%{%-%@%Y$Y$+ + + + + + + + + + + + + + + =*3#4#/#/#-#)#$#l#Q@F@U@y@g@f@f@f@r@=@=@S+X+@@S+D+Z#s+q+q+7+2+2+6+]+'+-+-+X.O.O.D.i.h.i.i.r.=.-*]&]&2%2%..../%/%..v%p%/%..$$B ^.$$B ^.^.W#W#^.^.$$$$B C C C V C C C C C 4.;* ",
+" >*^ ] { { { ^ ] { / ^ { ^ ] ] { ^ ] { ^ ] { { ] { ^ { ] / { { ] ^ _ _ _ ~.%.{.2.2.c.j.i.h.D.P.X.W.,*.+'+]+'+<+6+7+r+y+s+q+s+D+D+D+X+x@=@=@f@f@g@g@y@F@U@F@Q@$#W@$#)#/#3#'*4#5#f#f#u#E#u#U# $.$!$~$7$8$3$A$A$W$!%W$_%X$_%r%r%r%B%B&@&}&,&}&C&b&p&Y&)*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+%*!*#*&*%*%*~*%*&*~*#*&*~*&* *$* * *.*Z&.*P&z&P&z&s&z&r&s&r&l&e&j&f&7&6&|&_&_&!&&&)&~&T%T%{*C%G%G%m%m%e%7%f%<%[%-%@%@%Y$]*+ + + + + + + + + + + + + + ^*3#4#/#)#)#-#$#$#Q@E@E@E@t@f@|@f@r@/@=@@@@@X+D+D+C+q+y+7+n+7+]+]+]+m+-+-+X.W.D.O.x.w.i.h.h./*+*-*]&'%2%U&U&/%/%....p%v%v%B $$$$^.$$^.$$^.$$W#$$^.^.$$V >.C 4.V >.4.>.4.V (* ",
+" _*{ ] ] { ] { ^ ] { ] / { / ^ { ^ ] { { ] ^ { { ] { ^ { ^ { { ^ { / ^ _ l {.{.2.c.c.c.i.w.v.D.W.X.-+-+'+'+]+]+<+7+7+7+y+C+C+D+e@X+W+@@=@=@/@|@f@t@t@y@E@F@W@$#$#$#)#/#4#4#3#0#y#f#t#u#U#U#@$U#@$~$h$y%o$u$F$W$W$X$c%4%_%A%A%B%B%X%X%}&b&p&w&p&:*<*[*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+}*}*!*}*|*|*1*|*%*1*!*%*#*#*$* *2* * *3*Z&Z&Z&Q&G&F&R&z&s&s&r&r&j&e&j&n&c&c&|&|&&&&&!&`%T%T%C%C%G%H%m%m%e%7%7%<%-%-%@%+%4*+ + + + + + + + + + + + + + 5*f#5#4#4#)#)#$#W@Q@F@E@t@y@f@s@f@=@/@=@@@X+W+D+D+D+C+r+o+7+7+7+2+]+'+-+.+.+.+O.D.V.x.i.c.c.!.+*1$1$<&'%2%....../%/%../%v%p%..$$^.$$B ^.W#W#^.W#$$B B W#V >.C 4.C V V C C 6* ",
+" P { { { { ] { ^ / / ^ { { { { { / / { ] { ] ^ ^ ] ] ^ ^ / { ] { { J { _ {.!.{.2.2.c.c.h.D.D.O.X.X.-+.+'+)+:+<+7+7+7+q+s+s+K+D+D+@@=@=@=@=@|@f@|@g@t@G@F@Q@W@$#$#`@)#/#/#4#a#f#)$u#I#J#U#U# $+$~$~$7$3$3$&%W$W$W$X$X$_%K%r%r%B%@&X%5&}&}&X&C&p&:*Y&x&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+7*}*7*7*7*7*7*7*}*7*|*|*}*1*!*%*%*~*2*&*#* * * *Z&.*Q&R&F&G&y&r&l&l&l&e&f&c&c&|&|&|&&&2& &*&`%T%C%C%G%H%t%m%e%e%6%[%{%-%@%8*+ + + + + + + + + + + + + + ;@3#5#3#/#)#`@$#V%r#Q@Q@t@t@s@g@f@=@=@=@=@x@D+S+D+D+J+s+s+7+7+2+]+<+'+-+-+.+.+X.O.D.D.v.i.r.c.+&]&1$2%2%..2%../%/%v%..p%..v%W#W#$$W#^.W#$$W#$$^.B $$$$$$$$V C C V V C C >.W ",
+" ] { ^ ] { { { { { { { { / ^ { / ] { { { { { ^ ^ ] ^ { { ] ] ^ / { / _ $.%.!.{.{.2.i.h.i.K.D.O.X.X.X.-+-+]+<+6+7+7+x+y+q+C+s++@D+W+@@@@=@r@/@f@9*s@y@F@F@W@$#W@)#^#/#4#4#7#0#y#E#I#u#u#O#U#~$~$~$7$7$8$o$A$F$K$ %X$_%4%r%r%K%B%X%@&X%0*W&b&w&p&<*Y&a*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+b*c*b*d*e*b*f*b*b*b*g*7*7*7*7*7*}*}*1*~*%* * * * * *Z&P&Q&P&z&H&s&r&r&l&l&j&n&c&h*|&2&!&!&%& &`%T%T%N%F%G%H%m%7%7%]%]%<%-%i*+ + + + + + + + + + + + + + + 7#3#4#D#)#-#v&$#`@F@E@F@t@s@s@|@|@f@/@X+@@S+D+C+K+s+q+7+n+7+2+2+'+'+'+$+.+.+X. +w.D.i.h.c.c.L&]&]&'%<&2%/%../%....p%..v%..p%W#$$^.B ^.^.$$^.^.^.$$$$^.>.C C C 4.>.C C V V ",
+" { ] ^ ^ { { { ^ ] ^ { { ^ / { ] / { ^ { ] ] { { ] ] { { ] ] { ] J ^ J _ %.!.!.c.2.c.h.i.D.D.D. +X..+|+-+:+:+2+7+7+7+s+s+Z#D+D+X+W+@@-@^@=@f@f@g@t@t@F@Q@Q@$#W@)#-#D#4#4#4#a#y#y#f#E#N#U#U#~$@$~$3$7$A$A$A$F$W$K$X$k%4%K%r%`&X%X%,&}&}&w&w&p&Y&<*Y&j*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+k*l*f*b*l*m*n*l*b*l*b*b*b*b*7*7*7*}*7*}*}*%*~*&*#*o* * *Z&R&P&z&z&y&r&r&l&l&n&c&c&**_&2&&&&&*&`%Z%T%C%C%D%m%p*e%f%6%}%{%-%q*+ + + + + + + + + + + + + + + -#7#5#3#/#)#)#`@W@Q@Q@E@t@t@g@s@=@/@=@x@W+W+D+D+K+C+s+7+q+7+7+7+]+'+'+-+X..+ +D.D.D.h.h.j.c.M.]&o&]&2%2%2%..../%..../%/%p%$$$$B $$$$W#^.B ^.^.W#W#^.$$4.C 4.>.C V >.C >.V ",
+" ] { ] { { ] { ^ { ^ { { { { { ^ / ] { { ] { { ^ ^ { { / { ] ^ ] J { _ %.#.{.!.2.2.c.w.i.D.D.D.X.X.|+-+'+:+]+7+7+7+q+r+s+C+D+S+W+X+=@=@/@^@f@s@g@t@y@E@Q@Q@`@$#`@)#)#4#4#4#f#y#y#u#%%O# $U#@$&$~$7$3$_$F$F$W$W$X$X$_%k%4%r%B%B%X%}&}&C&r*p&p&Y&s*s*t*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+u*l*u*n*v*n*w*l*x*m*n*k*m*k*b*b*7*7*7*7*}*1*%*#*%*~* *2* * *Z&R&G&E&H&r&r&l&l&j&f&6&c&y*|&_&_&~&`%`%T%C%G%E%E%p*e%7%}%]%<%z*+ + + + + + + + + + + + + + + A*3#4#4#D#)#)#`@W@Q@F@t@t@t@s@f@f@=@=@@@S+W+D+D+C+K+s+n+q+7+7+<+2+'+'+-+$+.+P.D.D.D.h.h.h.c.B*1$]&]&2%2%..../%........v%../%$$B ^.$$B $$$$W#W#$$B ^.W#B 4.V C C C V C C C ",
+" C*{ { { / / ^ ^ { ^ { ] { / { ] ] ^ ^ ^ { { ] ] ^ ^ { ] ] ] ] ] { { _ 3%_ !.!.2.3.2.h.h.w.D.D.D.D..+.+-+'+]+2+2+<+q+x+q+q+K+s+S+S+@@@@>$r@r@f@f@f@t@E@M@F@W@W@`@-#)#/#4#5#5#3#f#y#E#O#u#U#U#@$~$~$7$3$A$F$F$W$X$X$X$4%D*r%r%B%R%5&X%}&C&r*C&p&Y&E*F*t*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w*w*w*G*w*w*w*u*w*v*w*v*x*w*l*n*l*m*l*f*b*b*7*7*}*|*%*~*#* * *Z&.*P&P&R&H&s&r&l&l&t&d&6&|&|&|&&&)&!&`%T%C%C%F%G%n%n%e%7%8%]%H*+ + + + + + + + + + + + + + + I*7#4#/#/#)#`@-#l#W@Q@F@M@t@f@q#f@^@=@@@W+@@S+S+C+s+s+s+y+7+7+<+<+]+'+-+.+.+ + +D.x.w.w.h.2.t$J*]&1$'%2%......../%....v%/%..$$$$$$^.$$W#^.$$W#W#W#$$B B >.C C C C V V C >.K* ",
+" L*{ ] { ^ { { { { ] ] ^ ^ / ^ { { { ] { ] ^ ] / / ^ ^ ] ] ] { ^ ] J _ _ _ $.{.{.c.c.i.i.K.D.D.D.W.-+$+-+'+6+<+2+7+7+y+r+C+C+C+D+X+@@@@/@=@/@f@g@t@y@G@Q@V@Q@`@-#)#/#D#3#3#4#f#f#f#E#N#u#U#@$~$7$8$7$_$_$A$K$X$W$X$4%_%A%K%B%@&@&,&}&}&}&W&M*Y&Y&N*N*O*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G*G*G*G*G*G*G*G*w*G*G*G*w*w*w*v*x*u*u*n*l*f*b*b*7*7*}*!*}*!*&*2* *Z&Z&G&P&y&E&r&r&r&l&f&6&c&7&|&_&&&)&`%Z%T%C%C%M%m%n%e%e%f%<%<%+ + + + + + + + + + + + + + + L$0#4#/#/#)#)#`@`@r#Q@M@t@t@L@f@|@=@=@@@X+=@X+D+D+C+s+q+n+7+7+2+]+]+]+-+|+$+W.P.D.D.D.h.c.h.S 1$1$o&o&2%....../%....p%....p%B $$^.^.$$W#^.$$$$W#^.B B B V C V >.4.C C C V L* ",
+" P*{ { { { / { ] { ] { ^ { { / { ] / { { ^ ] { ^ { { { ] { ^ { ^ / ^ ^ _ !.%.2.!.2.c.i.i.v.v.D.{+D..+X.'+-+]+6+2+g+7+n+r+C+K+C+X+@@S+=@=@=@f@|@R#t@y@E@Q@Q@W@$#-#`@/#4#3#4#f#f#E#u#u#O#U#U#+$&$~$7$_$o$_$F$F$W$X$*%_%4%A%r%B%B%X%,&,&b&}&b&:*Y&:*E*Q*R*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+S*T*G*U*S*S*S*S*S*G*T*G*S*G*G*w*w*w*w*x*v*x*l*b*b*e*b*7*}*|*~*}*~* * *Z&Z&F&z&E&r&l&l&l&t&f&c&c&_&_&&&&&`%T%T%M%F%G%H%e%m%f%}%[%V*+ + + + + + + + + + + + + + W*7#4#4#W%)#)#)#l#W@W@Q@M@t@t@s@f@|@=@=@@@S+S+D+D+s+C+q+q+r+7+g+<+<+-+-+-+X.O.X.D.D.V.h.h.j.H J*1$o&2%2%../%../%/%/%/%/%p%p%..$$^.$$W#$$$$B ^.W#^.^.B C C V >.C V C V C C X* ",
+" _*{ { ] { ] ^ ] ^ ] { ^ { ^ ] / { / ^ { ] ^ { ^ ] / { ] { { { { ^ ^ _ _ %.{.2.2.2.i.c.i.w.D.D. +.+W.X.'+]+:+]+<+7+o+y+s+s+K+D+D+S+X+@@=@6@r@|@s@s@t@F@M@Q@W@$#$#`@/#/#3#s#f#f#u#y#u#u# $.$~$~$~$y%7$A$3$F$W$K$a&X$4%4%K%4%B%#&,&5&}&}&w&w&:*Y&Y*s*Q*Z*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+`*S*`*S* =`*`*.= =.=`*+= =S*S*S*+=G*G*G*G*u*u*v*x*x*k*b*b*7*7*}*}*}* *&* * *Z&P&R&H&S&l&l&m&j&d&6&|&_&8&_&&& &T%T%C%O%t%m%e%f%7%}%@=+ + + + + + + + + + + + + + + 3#a#4#3#/#)#$#$#W@Q@G@y@E@g@s@g@/@/@=@-@@@S+D+D+C+C+q+s+7+7+7+<+'+]+'+$+.+X.P.W.D.D.v.c.c./*-*1$<&'%2%/%..../%../%/%/%..p%^.^.B $$$$W#$$$$W#$$W#B W#^.>.>.4.C >.V V >.>.#= ",
+" _.^ { ^ / { ] / { { { ^ ] ] ] / { ^ ] { ] { ^ ] ] { { { ] ] / { / { ^ _ $.{.!.l.2.C.i.h.w.D.D.D.W..+.+]+]+6+f+<+7+7+q+q+C+C+S++@S+@@=@/@|@^@|@f@D@t@U@M@Q@Q@$#$#/#/#4#4#a#0#y#f#E#E#u#U#U#U#~$7$~$_$A$A$W$F$ %W$_%_%A%4%B%B%@&X%X%b&X&C&w&Y&:*N*s*N*$=+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++=`*%=&=`*`*&=%=.=.=%=.=%=`*.= = =S*S*G*G*G*G*w*w*m*n*l*b*b*7*7*}*1*%* *o* *Z&Q&G&G&z&r&r&l&j&n&c&7&|&1&3&&&!&T%T%C%N%D%t%H%e%8%7%*=+ + + + + + + + + + + + + + + a%7#4#/#/#/#l#$#W@W@Q@t@y@t@f@g@f@/@=@=@@@X+X+D+D+C+s+o+n+7+2+7+<+]+-+$+.+ +X.D.D.x.v.c.r.` +*1$1$2%o&2%../%..../%....../%W#^.$$^.$$B ^.B $$^.$$W#W#W#>.C C 4.C >.C >.4.6$ ",
+" P ] ^ { / { { { ^ / ] { ] ] { ] { { { ^ ] { / ] ] ^ { { ] { ] ^ ^ J =._ %.!.{.2.c.j.j.i.D.w.D.W.X.$+-+'+<+<+]+g+7+y+q+q+s+D+D++@X+X+@@/@^@|@s@s@t@F@F@F@W@Q@`@$#)#)#}#4#3#7#f#I#u#E#N#b%+$.$~$~$8$7$&%F$F$W$W$X$4%4%r%L%B%B%X%B&,&}&b&p&p&:*Y&Y&Q*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.===&=&=&=&=-=&=&=&=&===%=%=%=.=%=%=.=S*T*U*G*G*w*w*w*l*l*b*f*c*}*7*!*&*&*&* * *R&F&F&r&r&r&l&l&n&c&7&**|&)&)&%&T%T%C%N%F%m%m%g%7%;=+ + + + + + + + + + + + + + + >=7#3#4#/#)#v&l#H#Q@Q@M@U@g@s@f@f@/@=@=@@@W+X+D+C+s+q+y+r+7+g+]+'+-+m+.+X.X..+D.D.x.h.h.j.` +&]&,#,#o&2%/%/%/%v%/%v%p%....B W#^.^.$$W#B ^.$$W#$$$$$$$$4.4.4.4.4.C C 4.C W ",
+" {.] { ] { ] / ] ^ { ^ ] ^ { ] { / ] ] { ^ / { ^ { / ^ { / ^ / ^ ] { ^ $.%.{.{.3.c.h.j.i.v.D.D.W. +X.'+'+:+2+]+g+7+7+q+s+D+s+D+D+W+=@=@=@|@f@|@g@s@E@F@Q@W@$#$#`@)#/#}#3#a#f#f#y#E#E#u# $U#U#&$7$7$3$_$A$W$/&X$_%_%4%K%r%B%B%@&}&}&}&C&p&p&<*E*Y&Q*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+-=&=-=-=-=-=,='=-=-=,=-=&=)=&=&=)=%=`* =S*S*T*S*S*G*G*w*x*n*b*b*7*7*7*1*#*%*~* * *.*Q&R&z&z&r&m&j&n&7&c&_&3&&&!&~&`%T%C%C%G%m%e%7%!=+ + + + + + + + + + + + + + + A#f#4#4#)#-#)#$#`@Q@F@y@y@t@g@R#f@/@=@=@W+X+D+D+D+J+s+x+x+7+2+2+2+]+-+.+.+W.W.W.D.w.i.i.h.=.1$+*<&^%2%2%....../%v%../%p%W#B B B W#W#W#^.B W#$$W#$$^.C V C C V C V >.C C ~= ",
+" / / ] / { ] ] ] { ] { ^ { / / { { { ^ ] { ] ^ / ^ / ^ ] { ] { ^ ] _ ^ _ !.!.{.3.c.h.j.i.K.D.W.W..+$+1+)+'+<+]+7+7+7+n+C+q+D+C+S+X+-@@@=@7@f@|@s@y@U@G@Q@Q@$#)#)#/#)#3#4#7#f#f#u#u#E#O#U# $&$~$3$7$A$A$F$F$W$X$X$_%A%K%{=r%@&,&(&}&}&p&p&p&Y&E*F*N*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+-=-=]=]=]=]=,=,='=^=/=]=]=-=,=-=-=-=&=)=== =%=S* =T*G*G*G*w*w*w*n*b*7*7*7*}*}*#*o*$*Z&Q&R&y&y&r&l&j&f&6&c&|&_&_&!&%& &T%C%C%G%m%m%g%(=+ + + + + + + + + + + + + + + _=0#5#4#4#)#)#$#$#H#F@U@t@y@s@f@f@^@/@=@=@X+X+D+D+D+s+s+r+7+7+<+6+]+'+-+X..+P.D.D.w.w.h.h.!.+*1$]&o&2%2%../%......p%../%p%W#B $$^.$$^.^.$$$$^.B W#B >.>.>.>.>.C 4.C 4.C 4. ",
+" y { { ^ ] ] ] ] ^ { { { { ] / ] ^ { { ^ / ] { ] ^ ] / ] ] { { { / _ _ l !.{.7.2.c.h.h.D.v.D.W.D..+-+X.'+]+2+2+g+7+n+s+J+K+K+D+X+@@@@=@=@/@|@q#t@t@y@U@Q@W@`@l#)#-#/#7#s#f#f#f#)$u#E#O#U#!$!$:=8$h$3$A$F$F$/&W$X$_%A%4%r%r%R%B&,&,&X&p&p&p&E*Y&N*N*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+]=<=/=]=[=}=/=[=]=}=<=|=]=]=/=}=-=-=-=&=&=&=)=%=%=`*1=S*G*G*w*w*n*m*f*b*7*7*|*#*~*2*Z&Z&P&F&R&y&l&r&l&j&j&6&|&_&&&!& &=&T%C%C%D%H%e%2=+ + + + + + + + + + + + + + + + 7#5#4#}#)#-#v&$#Q@Q@Q@F@t@g@g@f@6@r@=@W+@@W+S+K+K+s+q+x+7+7+g+<+:+-+-+.+X..+D.D.i.h.c.c.%.+*+*1$'%o&2%........p%....p%$$^.B ^.^.W#$$$$W#^.W#B ^.B V >.C C C >.C 4.V V 3= ",
+" f / { { ^ ] ^ ] { ^ { { { ^ ^ { ] { { ] { { { { / / ^ ] ] { ] ] / ` _ %.!.{.!.c.2.c.i.i.v.D.W.O.X..+-+'+-+<+2+7+7+n+s+J+Z#D+D+D+W+@@@@/@^@f@g@t@y@t@M@a%Q@W@)#)#/#4#3#7#a#f#y#I#u#u#u#U#&$@$~$h$3$3$o$F$F$W$ %X$4%;&A%r%r%>&@&5&}&}&X&p&:*E*E*E*N*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+<=<=[=[=4=5=4=[=|=6=[=[=4=[=4=]=<=]=]='=-=-=-=)=%=)=%=S*S*G*G*w*w*l*l*g*b*7*7*}*|*#* * *Q&P&G&z&r&l&l&f&7&6&|&|&2&_&`%`%`%C%N%G%m%m%7=+ + + + + + + + + + + + + + + + 3#f#4#4#)#$#$#W@Q@M@E@y@t@s@s@f@7@=@=@@@X+X++@D+C+C+q+y+7+7+2+2+'+'+'+.+.+W.O.D.v.w.w.i.!.+&]&]&]&2%2%../%p%..p%v%v%$$$$W#W#^.^.$$$$$$W#^.B B $$W#4.V V C V C C V V C 8= ",
+" y { / ] { { ] / ^ ^ { / ^ { { ^ / ^ ] ^ { ] { { ^ ^ ] ] { ] { { J ^ _ l ~.~.l.c.c.j.i.i.D.D.D.X..+.+.+m+]+6+6+7+7+7+q+s+s+D+X+X+X+@@=@^@|@f@g@g@t@G@E@M@Q@W@`@)#)#4#4#7#3#f#f#I#E#u#U#U# $~$~$_$_$_$_$F$F$/& %X$_%k%4%r%r%X%X%,&}&r*b&p&Y&:*Y&E*Q*9=0=+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+a=6=5=6=b=6=6=6=6=6=6=6=6=4=6=b=4=[=<=[=<=,=]=]=-=-=&=&=%=`*+=S*G*G*w*u*m*b*k*7*7*|*!*~* *Z&P&P&P&H&z&l&l&m&n&7&**|&_&&&`%`%Z%C%O%n%m%c=+ + + + + + + + + + + + + + + + d=0#4#4#/#)#`@W@l#F@y@G@t@s@g@|@f@=@r@@@X+@@D+D+s+s+s+y+7+e+g+<+:+]+'+-+W.W.D.D.v.x.x%r.%.+&+*1$'%'%2%2%../%....v%..^.W#^.^.B W#$$$$^.^.$$^.$$W#V V >.V >.4.4.C V C C n. ",
+" ^ ^ ] ^ / ] ^ ] ^ ] ^ ] / ] / / { { { / ] ^ ] { / ] { ] ^ ] { ] ] ^ _ _ !.!.!.c.h.r.h.h.x.D.W.W.X.$+-+'+'+]+f+7+y+7+s+s+K+D+D+S+X+x@=@r@^@|@f@f@y@t@M@M@W@r#W@)#/#/#4#3#f#f#E#y#u#u#O#.$@$~$~$y%3$_$o$F$F$K$X$X$_%A%A%B%X%@&N&N&X&b&W&:*<*Y&E*s*Q*e=0=+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+6=f=f=f=f=g=f=f=f=f=f=f=f=f=6=6=b=[=h=[=|=]=/=-=]=]=-=&=)= =`*.=G*G*G*w*u*l*l*b*7*7*1*&*#* *Z&Z&P&z&r&S&l&i=e&j&d&|&|&)&%& &*&C%C%G%D%j=+ + + + + + + + + + + + + + + + M@5#4#4#)#/#`@`@W@Q@M@U@E@f@f@f@=@r@=@@@@@+@D+C+C+q+q+y+x+7+]+<+]+]+-+.+-+O.D.D.D.v.c.c.%.+*1$o&^%^%2%/%..p%p%v%p%p%$$W#B $$^.$$B ^.$$^.$$^.$$^.4.4.C C V C >.>.4.4.C C ",
+" ] { ] { { ] { { / / { ^ ^ { ] { ] ^ { { ] ] ] { { ^ { / / ^ ] / { ] _ $.l !.2.{.j.h.~@i.x.D.D..+X.|+'+m+'+2+7+7+n+o+s+s+K+C+D++@S+=@=@=@=@f@R#t@k=t@E@Q@W@W@$#.&/#4#4#7#f#f#I#E#E#O#O#U#&$~$&$7$3$A$&%F$K$W$_%_%4%A%A%r%@&R%B&(&}&w&C&p&Y&E*Y&Q*Q*l=+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+f=m=f=n=o=o=o=f=p=o=q=n=p=f=n=n=r=6=6=6=6=[=|=/=}=/=-=-=-===s=%=1=S*S*G*w*n*g*l*e*7*}*~*#*&* *Z&Z&F&H&z&r&l&j&e&d&|&_&&&2&%&`%T%C%N%E%H%+ + + + + + + + + + + + + + + + u&3#4#/#)#)#)#$#W@F@U@Q@t@g@f@f@f@6@=@S+X+X+D+e@C+C+q+y+n+7+6+6+]+-+'+.+W.W.D.D.w.i.h.h.!.J*1$1$o&2%2%2%..p%/%p%/%^.W#$$^.^.$$$$W#$$W#^.$$W#$$W#^.V V C V >.V C V C 4.C ",
+" ] { { / ^ / ] ^ ^ ^ / ] ^ ] ] { / ^ ] ^ { ^ ] ] ^ ] ^ { ^ ^ { { ] _ _ _ %.!.{.c.2.h.c.w.w.D.D.O..+.+-+'+'+]+e+7+7+q+q+C+C+D++@S+X+@@=@6@|@f@f@t@t@G@Q@Q@H#`@-#)#/#D#3#0#a#f#E#E#u#u#b%U#@$~$~$h$_$A$A$F$K$X$X$k%4%r%B%B%B%@&,&,&}&b&w&p&p&E*s*t=Q*u=+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+q=p=q=o=v=v=w=w=v=q=q=v=o=q=q=o=n=f=f=6=f=6=[=[=]=a=]=-=-=&=%=%=.=1=S*G*w*w*x=n*g*f*7*}*!*~* * *Z&R&G&s&s&r&m&j&6&|&|&J&)&)&~&T%C%N%F%m%+ + + + + + + + + + + + + + + + S+4#3#4#)#)#$#$#Q@Q@y@t@t@t@|@R#r@r@=@=@X+T@D+D+Z#s+s+7+7+7+6+]+]+:+-+.+X.X.D.D.D.i.i.2.%.y=1$o&1$'%2%2%z=..../%p%B W#B $$$$W#W#B B W#$$B W#$$^.V C >.C C 4.>.V V V C 4. ",
+" { { ] ] ^ ] ^ / ] ^ ^ ^ / { { / / ] ^ / { ^ / ^ { { { ] { ] ] { / { ^ _ l {.{.2.j.j.w.x.D.P. + +X.$+-+]+<+]+g+g+7+n+r+s+C+D+C+@@@@@@=@=@f@|@f@s@y@t@F@Q@W@$#l#`@/#)#4#5#7#f#)$y#E#U#N# $~$~$~$8$8$A$o$F$ % %_%X$A%k%r%r%R%B%,&}&}&r*p&:*Y*Y&N*N*Q*9=+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+o=o=w=A=B=C=D=E=A=A=A=A=C=F=G=w=o=p=p=p=m=p=f=6=6=5=6=4=a=/='=-=&= =.=S*S*G*u*w*x*b*b*7*7*}*|*%*o*Z&Z&y&y&H&r&l&l&f&7&**|&&&2&)&`%T%C%G%H%+ + + + + + + + + + + + + + + + 1%3#4#4#/#-#l#$#Q@M@U@E@y@g@g@|@^@r@/@@@@@*@D+C+s+s+s+n+7+7+7+6+<+'+'+-+.+X.W.D.w.K.h.h.c.+&1$1$2%2%2%../%/%p%/%B $$W#B ^.$$B $$W#$$B $$W#W#W#C V C 4.V V C 4.4.>.4.V C ",
+" y { ] ^ ^ { { { { ] ] { / ] ^ { ] ] / ] ^ { { { / { ] ] { ^ ^ ^ ^ J _ $.~.!.!.c.C.j.h.x.D.D.W..+.+.+'+]+:+<+7+2+n+n+y+s+C++@S+D+x@=@=@/@/@f@s@t@y@E@M@W@l#`@`@-#)#)#3#3#f#f#)$u#%%U#O#U# $!$7$~$3$A$o$F$W$W$ %_%k%4%B%r%@&@&,&}&}&X&p&p&E*E*E*N*Q*Q*+ + + + `%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+A=C=E=E=A=E=E=E=E=E=E=E=E=H=A=A=E=C=w=w=v=n=f=n=f=6=[=[=<=]=/=-=&=&=)= =S*+=G*w*u*m*g*e*7*7*!*&*$*$*Z&Z&R&z&r&r&l&e&6&6&|&_&)&&&*&T%T%E%F%I=+ + + + + + + + + + + + + + + J=f#4#4#)#`@$#`@Q@M@Q@t@y@g@s@|@/@/@=@=@@@S+S+D+C+K+y+q+7+2+g+<+'+m+-+$+X.W.D.O.D.V.h.c.c.J*+&]&2%]&2%2%../%p%$$W#W#B ^.W#$$^.$$W#^.B B $$B W#C C >.C 4.C >.C C 4.V C n. ",
+" f { { ] { { { { ^ ] { ^ ] ^ ] ] ^ ^ { / { { { { ] { ^ { ] { ] / ^ J _ ~.%.!.l.2.c.c.h.K.x.{+W.W.X.'+-+'+]+<+<+7+7+s+q+C+q+C+D+@@@@@@=@^@|@f@f@t@F@M@F@Q@W@W@`@$#)#/#4#7#0#7#f#y#u#O#U#U#!$~$~$~$7$3$F$F$X$W$X$4%4%A%r%B%`&@&,&}&b&b&p&p&:*Y&E*N*Q*u=+ + + + G%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+K=K=L=K=K=K=M=M=M=M=M=M=M=N=O=E=E=H=A=A=w=w=o=g=m=6=6=6=4=]=}=]=-=-=&=.=`*S*P=G*w*x*m*k*b*7*}*&*#*#* *Z&F&E&z&r&t&j&6&7&g&_&3&&&`%T%T%C%N%Q=+ + + + + + + + + + + + + + + R=5#4#3#)#^#$#$#W@Q@M@U@t@g@s@f@|@/@=@W+@@S+S++@q+q+y+7+7+7+6+2+:+]+-+$+$+W.W.D.D.x.h.j.c.+*]&<&<&'%'%2%..v%v%^.W#$$B $$W#$$W#^.^.$$W#$$W#B V C C C 4.C C 4.V C >.V C V ",
+" y { { ] ] { ^ ] ^ { { ] { / { ] ] { ^ ] { ^ { { ] { { ] ] { ] ^ { =._ _ ~.{.{.c.2.,@h.i.x.D.O.W.X.'+-+]+<+<+<+7+7+q+s+s+Q+D++@S+X+($=@=@^@f@f@f@t@t@F@Q@W@$#)#)#)#/#3#0#0#f#f#I#u#O#u#U#!$~$~$h$3$_$u$A$W$K$X$X$k%4%L%B%@&X%5&}&}&b&w&p&:*Y&N*Q*N*e=+ + + + 6%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+K=K=M=S=S=T=U=V=W=X=W=V=Y=S=U=M=M=N=E=N=E=A=A=B=v=p=q=f=f=5=5=}=a=^='=&=%=%=S*S*+=G*u*u*b*f*b*7*|*}*~* *Z&R&F&z&r&l&t&f&c&g&|&_&&&!&`%Z%C%O%Z=+ + + + + + + + + + + + + + + `=4#3#/#)#)#`@W@W@Q@Q@y@t@s@g@f@^@^@=@X+X+S+D+C+C+s+n+q+7+7+g+2+]+'+-+-+.+X..+D.D.v.i.h.!.+*1$]&^%2%2%2%/%/%p%B B $$^.W#W#W#W#$$^.B W#W#^.W#V V >.C C 4.C 4.4.>.>.C V b+ ",
+" ^ { / ] ] ] { { / ] { ^ ] { { / { { { ^ ] ^ { / ^ ] ] / { ] { / { ^ _ %.{.!.7.{.c.j.i.i.V.D.W.X..+-+'+:+]+<+2+7+7+s+r+s+s+D+D+@@@@@@@@=@f@f@s@s@t@F@F@Q@W@$#`@`@)#}#5#f#f#f#f#E#E#N#N#@$ $.$7$7$3$_$F$!%!% %X$_%_%_%K%r%B%@&X%5&X&}&C&M*p&Y&E*Q*Q*l=+ + + 2*>%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+S=X=U=W= -.-+-@-.-@-W=#-T=T=Y=V=S=$-S=M=E=N=E=E=D=F=v=o=q=6=6=4=a=a=]=%--=)=.=`*S*G*w*u*n*x*f*7*}*}*$* * *Z&P&y&z&l&t&e&c&c&|&2&3&)&*&`%T%C%&-+ + + + + + + + + + + + + + + d%3#3#4#/#`@$#`@W@Q@F@t@y@g@g@f@f@6@>$W+@@D+D++@s+q+q+o+7+7+2+<+'+-+-+-+X.W. +D.D.v.v.h.!.+*]&]&]&'%2%../%$$$$$$B ^.$$W#$$W#$$$$$$^.^.$$B >.>.4.>.C 4.C V C V V >.C V >. ",
+" Z ] { / ] { ^ ] { / / ^ { ] { ] { ^ ] { { ] ] { { { ] / ^ { { { / ^ _ %.%.!.!.2.j.h.w.w.w.D.W.W..+l+X.'+:+<+]+7+7+y+r+q+C+D+X+S+-@@@=@|@f@f@f@s@t@E@Q@Q@Q@Q@$#)#4#3#3#4#0#f#I#t#u#N#*-.$+$&$~$7$_$o$A$F$K$X$X$X$A%K%A%B%=-B&@&}&}&w&b&p&:*Y&E*N*Q*--+ + + 3&E$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;->-.-,-'-)-'-'-)-'-'-'-)-!-'->-@-W=T=V=X=M=N=E=E=B=D=p=g=f=f=5=4=a=]=^=-=&=&=.=S*S*G*~-x*l*b*7*7*#*!* * *Z&P&y&y&r&l&l&f&6&c&_&_&&&*&T%{*M%{-+ + + + + + + + + + + + + + + ]-4#4#/#/#`@$#l#Q@Q@E@G@y@t@s@f@=@/@=@=@@@S+D+C+J+s+q+q+7+7+7+<+'+-+'+-+.+ +{+D.w.i.h.C.%.+*+*1$]&]&2%..v%$$^.^.B W#B W#^.B W#B W#$$^.^.$$V V C >.C >.>.V V >.C C V 4.+. ",
+" P { ^ / ] / { / { ^ { / ] ] ^ { / / ] / ^ ] { ] ] { ] ^ { { ^ ^ ^ _ _ %.%.{.g.2.h.2.h.v.h.D.D.W.W.-+.+-+]+6+g+7+7+7+q+s+s+C+D+W+X+@@r@=@6@f@s@t@t@y@Q@Q@H#$#$#)#)#)#4#7#3#f#t#t#u#N#N# $~$&$~$7$_$_$_$F$F$W$X$X$k%A%r%L%B%X%,&}&}&p&C&p&<*Y&E*Q*Q*@&+ + + 8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+,-'-!-^-^-^-/-/-/-/-/-(-!-!-!-_-:-<-.-Y=V=Y=X=N=E=E=C=C=q=o=f=6=6=[=]=<=^=-===&=%=+=[-w*w*n*b*b*7*}*|*#* * *P&P&E&s&l&l&j&c&|&|&_&)&!&*&T%T%C%+ + + + + + + + + + + + + + + }-3#/#/#)#)#-#l#$#F@M@t@t@t@f@f@/@=@=@-@@@X++@C+J+s+q+y+7+7+]+<+m+'+-+|+ +.+W.D.w.i.h.j.!.|-]&1$]&o&..^.p%$$W#B B $$$$$$B $$$$$$B W#B W#^.C V V C C >.V C >.4.4.C >.V W ",
+" 2${ ] ^ { { { ] ] ] / / { ^ ] ^ / { ] ^ { ] { { ] ^ / ^ ^ { { / ] _ _ l ~.{.!.{.2.h.h.h.D.D.W.O..+$+'+)+]+]+<+7+7+n+s+q+K+D++@X+X+=@=@=@7@f@f@g@t@F@M@F@Q@W@`@`@^#3#4#5#f#7#)$)$I#O#N#U#U#@$~$7$_$3$o$F$F$ % %X$_%A%K%B%B%X%@&}&b&p&p&M*Y&Y&Y&1-Q*,&+ + + E$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+2-3-3-/-4-5-/-6-6-6-6-6-4-4-7-(-8-!-'-'-+-.-W=W=X=O=E=E=B=9-o=f=6=6=[=]='=-=&=%=.=S*[-G*G*x*m*g*7*}*1*%*2*Z&.*P&H&H&r&l&e&e&****|&!&)&*&`%T%M%+ + + + + + + + + + + + + + + 0-4#3#3#)#$#$#$#W@F@Q@y@y@f@s@|@f@=@=@@@X+X+S+D+C+s+q+q+7+e+g+]+'+'+-+.+.+.+{+D.D.v.h.c.!.+*-*<&'%..../%..$$$$W#^.$$W#^.B B $$B $$W#$$$$$$V C >.>.V V V V 4.4.>.>.C C a- ",
+" _*^ { / ] ] { / { { { { { / ] { { ^ ^ ^ ^ ^ ^ { { { / { { / ^ { J _ _ l !.!.{.2.r.h.i.i.x.D.D.X..+X.-+'+]+<+g+2+7+7+x+s+C+D+D+X+S+=@/@=@/@f@g@t@t@t@F@Q@$#$#)#)#)#4#7#7#7#f#y#t#u#u#U#U#U#&$~$h$b-_$o$F$!%K$X$X$4%4%A%r%@&X%,&,&,&}&C&p&p&:*E*Y&1-4%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+7-6-c-c-d-c-d-e-e-f-e-e-d-g-h-6-6-/-(-(-!-<-i-V=U=S=M=E=D=A=9-f=f=6=[=[=a=/=-=-=.=1=S*G*G*u*l*n*c*7*}*|* *$*Z&R&P&z&r&l&l&f&6&c&_&_&!& &`%C%O%+ + + + + + + + + + + + + + + j-4#/#4#)#)#$#r#W@Q@U@t@t@g@s@f@=@/@=@@@X+X+X+C+s+q+n+q+x+g+6+<+'+-+-+.+-+.+{+D.w.i.h.j.d+]&+*]&M M ..^.$$$$$$^.$$^.$$^.B $$$$$$B W#$$C C C >.>.>.V V 4.>.C C >.C C >.#= ",
+" 1 ^ ] ^ / ] { ] ] { { ] ] ] { ^ ] / ] { / ^ ] ^ / { / ] { ] / ] ] _ ^ ~.l !.!.2.2.r.c.x.x.D.D.{+W.$+'+'+]+2+2+7+7+r+q+s+Q+D+S+S+X+W+=@/@=@|@g@t@t@t@M@Q@W@$#W@-#/#/#/#4#7#f#f#E#E#N#U#U#.$&$7$~$3$_$_$F$F$ %X$X$k-A%A%B%B%@&X%}&,&b&r*C&p&<*E*N*Q**%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+c-l-m-n-o-n-p-q-r-s-t-r-n-u-o-v-w-g-6-4-(-^-!-+- -Y=U=K=E=A=D=9-p=f=5=[=4=]=-=&=%=.=.=T*G*v*v*f*b*7*}*}*&*&*Z&Z&z&z&r&l&l&j&n&g&|&_&8&*&=&T%T%+ + + + + + + + + + + + + + + $=7#4#4#)#)#`@W@Q@Q@M@t@t@s@f@f@/@=@=@=@S+X+D+D+s+C+y+x+7+7+6+2+]+-+-+.+X.P.D.D.D.w.h.,@$.1$1$,#O+2%..W#p%^.$$B W#^.$$B W#W#B W#B W#V C C >.C V V V V 4.4.C 4.V >.V >.X* ",
+" L*^ ] ] / { ] ^ { ] / { { / ] / { { ^ { { { { ] { { ] ] / { { ] =.{ _ ~._ l {.2.c.i.h.i.V.D.D.W..+.+-+-+]+]+7+7+7+y+q+s+K+D+D+W+W+@@=@=@^@|@f@f@t@G@F@W@W@l#l#)#^#4#4#7#7#f#T#)$u#N#u# $@$&$7$~$7$7$o$F$F$!% %X$_%D*A%A%r%@&,&5&}&W&C&p&p&:*N*E*t=*%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m-x-y-z-A-B-C-D-E-F-G-F-H-I-A-A-n-u-o-c-h-6-8-^-)-@-.-W=S=S=E=D=J-K-n=5=[=a=]=]=&===%=.=T*G*G*u*n*g*7*7*1*}* * *Z&L-y&y&r&t&f&6&c&|&_&)&)&*&T%T%+ + + + + + + + + + + + + + + M-7#3#D#/#-#)#W@Q@F@G@t@s@t@f@|@^@=@=@=@S++@e@s+C+q+y+7+7+7+g+:+<+'+-+.+.+W..+D.D.w.h.c.=.,#,#,#......p%^.B $$B B $$^.$$^.W#^.W#$$$$$$>.C 4.>.C >.C V >.4.C C V 4.V >.N- ",
+" O-] ^ ] / ] ] ] / { { / ^ { / / { { { ] { / ^ ] ] { { ] / ^ ^ ] / ^ ^ _ !.{.{.c.2.h.h.h.D.D.D.X.X.-+'+'+'+]+e+<+7+n+7+q+D+D+D+D+@@=@=@=@|@f@f@t@g@y@Q@Q@$#H#-#$#)#)#}#3#f#f#T#I#f#%%O#U# $U#@$7$y%o$A$A$!%F$W$ %4%K%A%A%B%@&@&,&,&}&p&p&:*E*:*s*N*P-+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Q-R-S-E-T-U-U-V-W-X-Y-Y-U-Z-Z-I-I-A-R-n-u-e-w-6-(-^-'-i-S=U=M=A=J-K-F=6=6=[=4=]=-=&=&= =T*S*G*w*x*n*g*7*}*&*2* *`-Z&H&y&S&l&j&7&c&|&_&2&)&~&T%C%F%+ + + + + + + + + + + + + + m#7#D#/#)#/#W@$#Q@F@y@t@t@t@|@f@/@r@=@X+S++@D+K+C+s+o+q+7+<+g+]+'+'+-+-+ +X.D.D.D.h.i.r.=.1$'%..'%2%..$$W#$$$$W#$$W#$$^.$$$$$$W#$$4.V V V >.C >.4.V V V C V C V V >.V ; ",
+" ] ^ { { ] ^ { ] ] { ^ { ] ] ] ] ] ^ / ^ { ^ ] ] ] { ] ^ { ^ ] ] ^ _ #.#.{.{.2.c.j.c.i.i.x.D.O. +.+l+-+<+'+<+7+7+7+r+s+q+C+D+S+X+x@=@^@/@/@|@t@y@Q@U@F@Q@Q@$#$#/#/#/#7#3#f#f#t#E#u#N#O#.$.$~$7$7$3$_$A$A$F$X$X$X$k%4%4%B%@&,&}&,&}&b&p&M*Y*:*N*Q*P-+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.;T-+;U-Y-Y-@;#;$;$;%;%;%;#;&;V-U-Z-I-A-s-o-m-6-6-(-*;=; - -M=K=A=K-v=m=6=h=<=/=-=-=)=`*+=S*G*w*x*l*b*7*-;1*%*2*Z&Z&G&E&S&r&l&f&7&c&|&_&%&%&`%C%C%+ + + + + + + + + + + + + + ;;3#4#D#)#)#$#l#W@Q@t@y@t@g@f@f@6@=@@@@@W+D++@D+C+r+y+y+7+7+6+6+'+-+.+.+X.D.D.V.D.w.j.2./ '%]&'%..2%^.^.$$$$$$$$B W#B W#B $$W#^.C C V C C >.4.C C 4.C 4.C 4.C V C V V ",
+" { { { { ^ { ] / ^ { { ^ { { / ] / ] { ] / { / ] { ^ ^ ] / ^ ^ / =.^ _ _ !.!.2.2.h.i.h.x.D.D..+W.$+'+-+'+6+<+7+7+n+s+q+s+C+D+S+X+@@@@=@/@f@R#f@t@t@y@E@Q@l#l#-#^#/#4#/#7#0#f#f#u#u#u#U#U#.$&$7$~$_$A$A$A$K$!%_%_%4%_%4%B%@&R%B&,&b&b&W&:*p&Y*E*s*J#+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+U-W->;,;';,;);!;~;{;];~;^;';/;(;%;&;_;U-I-H-n-l-c-6-/-!-:;<;U=M=L=B=K-[;f=6=[=<=}=-===&=%=+=G*w*l*n*f*b*7*1*&* * *Z&F&H&z&l&m&j&f&|&|&_&)&!&`%T%C%+ + + + + + + + + + + + + + + 4#4#4#)#)#`@Q@Q@Q@F@t@g@s@s@f@r@/@@@@@*@S+D+D+s+s+r+x+7+2+]+<+'+-+$+.+X.O.D.D.i.h.c.c.( +&,#^%O+M v%B $$B B $$^.$$^.W#$$W#$$>.V V V 4.C 4.C V 4.C >.>.V >.V C C V >. ",
+" ] / ] { ] / ^ { { / ^ ^ ^ { ^ ] ^ / { { / ^ ^ / / ^ ^ { { / { { J _ l ~.!.!.{.l.j.h.i.V.D.D.D.W..+-+-+]+<+<+2+7+n+o+r+s+D+D+S+T@X+=@=@=@|@f@f@t@E@y@M@Q@H#`@)#)#/#4#3#5#7#f#I#u#E#J#O#+$U#@$~$_$3$_$A$F$W$X$ %_%X$A%A%r%@&@&@&}&}&b&p&:*:*Y&Y&E*};+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+>;|;{;1;2;3;4;5;5;5;6;5;5;7;7;8;9;0;%;W-V-a;A-r-b;c-6-3-^-<-c;S=M=E=D=v=v=6=[=a=}=-=&=)=%=+=U*u*w*l*f*e*7*}*}*&* *Q&P&z&r&r&l&j&e&c&|&|&!&`% &T%O%+ + + + + + + + + + + + + + + 4#/#/#`@v&l#W@Q@E@t@t@t@s@f@^@|@r@=@@@S++@+@C+C+s+q+y+7+<+<+'+-+'+'+ +X.W.X.D.w.w.h.2.( U ,#'%^%....p%W#$$W#$$$$$$^.^.$$^.^.V C >.4.C 4.C C C V C C >.>.4.>.>.C C 4. ",
+" P ] ^ ^ ^ / ^ { ] { ] ] / ] { { { { { / ] ^ ] ] ^ ] { ^ { ^ { { _ _ l $.%.{.c.c.2.h.i.i.w.W.X.X..+.+'+:+:+2+2+7+7+q+q+s+s+D++@X+@@-@=@=@/@f@g@t@F@G@Q@Q@r#`@l#/#)#4#d;f#7#f#y#u#E#u#*- $U#~$~$7$3$o$A$F$F$F$X$*%_%4%A%B%@&@&,&}&}&X&p&w&p&E*Y&1-};+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+);e;f;g;h;i;j;k;k;k;k;l;l;m;n;5;3;o;';,;%;U-E-A-r-p;q;6-3-r;;-<;M=K=C=9-v=6=[=[=a=}=-=&=.=+=S*G*u*u*f*g*7*1*}*&*s;Z&R&G&H&r&t;j&n&7&|&_&%&`%`%T%M%D%+ + + + + + + + + + + + + + 4#4#/#-#)#l#Q@Q@Q@y@y@t@s@f@6@7@=@=@=@X+X+D+D+C+q+7+7+2+2+]+]+'+'+$+$+X.X.D.D.i.i.h.c.u;1$,#2%......^.W#$$$$W#$$$$^.$$$$W#4.V >.4.4.V >.V >.V 4.C C >.V >.V C >.V W ",
+" _*] ^ ] { ^ ] { / { { { { ] ] / { { ] ] ] ] ^ { { ^ { ^ { ^ ] / _ ^ $.~.{.{.2.c.2.r.h.w.w.W.P.O..+'+'+'+]+2+2+g+n+y+s+s+K+D++@X+W+@@=@^@|@|@f@g@s@M@Q@Q@Q@l#v&`@-#/#4#3#0#7#E#f#u#E#N#U# $!$~$7$7$_$o$A$F$W$W$X$k-4%A%r%B%@&@&N&B&X&}&p&p&:*Y&E*v;+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w;3;i;x;y;z;z;A;A;B;A;A;C;D;l;l;5;h;3;E;,;%;W-U-I-o-m-q;6-^-r;<;$-M=F;D=J-G;h=|=a=-='=&=)=T*1=G*w*u*x*b*b*H;|*~* *Z&P&E&r&s&r&f&n&c&|&_&2&&&~&T%O%C%+ + + + + + + + + + + + + + /#3#/#-#`@$#Q@Q@M@t@t@s@g@f@|@=@=@=@W+X+S+D+C+D+q+q+q+2+2+<+:+]+'+l+$+.+X.D.x.v.i.h.c.U+1$^%M ......^.B B $$$$$$B W#W#^.4.C V 4.>.>.C >.C C >.V C V 4.4.C 4.>.4.V #= ",
+" >*/ ^ { { ] { { ] / { { ^ ^ { { ^ ^ / { { ^ ] ] ] ^ { / { { { / { _ _ %.{.7.{.2.c.c.h.x.x.D.P.X..+.+-+:+]+]+e+7+x+r+y+s+C+D+S+X+=@X+/@r@6@|@f@t@y@E@E@F@Q@$#`@`@)#4#4#3#3#f#f#y#E#u#u#U#.$.$~$7$~$o$u$F$W$W$ %X$_%A%4%A%r%B%@&@&5&,&w&C&p&:*<*E*4$+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+I;J;z;z;K;L;L;M;M;N;N;O;P;Q;R;D;z;S;5;T;8;U;|;W-+;A-o-V;q;5-W;'-X;M=M=J-9-v=g=6=<=]=,=&=&=.=S*G*v*w*m*g*7*}*1*~* * *P&E&H&S&r&f&e&d&|&_&3&%&`%`%T%C%E%+ + + + + + + + + + + + + 3#)#-#)#$#`@W@F@F@F@t@f@f@f@/@^@=@@@W++@D+D+C+q+q+o+7+]+<+]+]+m+-+-+ +D.W.W.D.h.h.h.c.e 1$,#,#2%../%$$$$$$W#$$$$W#$$4.>.V V >.C C >.>.C C V V V 4.4.C V V V V V 4.j ",
+" ;*/ ] ] { { { { ^ { { { { ^ / ] { ^ / ^ ] { / ] / / / { { { ] / ] ^ _ $.{.!.{.c.c.c.c.i.x.D.W.W.-+.+1+]+:+2+2+g+n+q+n+J+s+D++@S+@@($@@=@=@f@g@g@s@E@Q@Q@Q@l#`@`@/#)#/#4#0#f#I#f#I#V$O#u#.$+$&$7$3$_$_$o$W$W$K$X$_%_%D*r%r%B%X%@&,&}&b&C&b&p&Y&Y&Y;+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Z;`;L;M; >.>+>@>#>$>%>+>&> >*>N;=>D;k;5;5;->);|;W-E-A-o-;>>>,>'-T=$-K=K=J-'>g=6=<=]=-=-=%=.=.=S*~-u*m*k*b*}*#*#*#*Z&Z&P&z&S&r&j&f&6&|&|&_&%&%& &T%C%D%+ + + + + + + + + + + + + /#D#/#`@l#l#Q@Q@U@y@t@f@s@f@r@|@=@W+@@+@)>D+C+s+y+n+7+7+<+]+m+-+'+|+X.D.D.w.x.i.i.h.c.J*1$'%M ....B ^.$$W#B $$$$>.4.>.C >.>.C 4.V 4.V C 4.C V V C 4.>.C C V V 4.4.!> ",
+" ] { { ] / ^ ] ] { ^ ] { / { { ] ] ] ] ] ^ { ^ { / { ^ / / ] { { ^ _ _ {.!.7.2.h.c.h.w.V.w.D.O. +.+.+'+]+<+]+6+7+y+q+q+C+K+C+X+X+@@=@/@/@^@|@s@t@t@E@G@W@W@$#-#/#)#4#}#4#f#f#)$I#u#U#O# $ $~$~$h$3$A$o$F$W$0&K$_%4%A%r%A%B%B%@&,&}&}&b&p&p&:*Y*~>+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{>L;M;]>$>^>/>(>(>_>_>:>_>_>@><><>[>A;k;l;h;7;{;}>|>B-q-o-q;5-r;W;$-U=K=1>[;g=n=[=}=]=&=&=`*S*T*G*w*m*k*b*7*|*&* *Z&P&P&z&E&l&l&j&c&g&|&3&&&!&T%C%M%G%+ + + + + + + + + + + + + 3#/#`@)#W@H#Q@Q@Q@F@t@g@f@f@^@=@=@X+S+D+D+s+C+s+n+7+7+7+]+]+<+]+-+-+.+X.X.D.D.i.h.h.c.M.'%,#^%M ......^.W#^.V >.V V V C C C C V >.>.C V V >.>.V C C V C C V C 4.C ",
+" 2>{ ^ ^ ^ ^ { / { { { { { / / ] { ] ^ ] { ^ / ] / ] { { ] { { / ^ _ ~._ !.2.2.c.h.h.i.x.D.D.W..+.+1+)+:+]+f+7+2+r+o+s+J+Q+C+D+S+=@@@=@^@^@f@s@t@t@y@E@Q@W@W@$#)#/#4#4#7#f#f#)$y#u#E#O#U#+$U#~$7$7$A$A$A$W$F$X$_%_%4%4%A%`&@&@&,&X%}&}&b&w&:*Y*3>+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+4>5>6>7>7>(>8>9>0>a>a>a>9>b>_>/>@>c>d>A;k;l;h;e;);e>+;f>x-x-q;g>h>i>$-K=j>F=G;g=[=]=]=-=&= =S*G*G*w*x*x*k*7*}*#*~*3*Q&P&F&z&l&l&e&d&c&|&_&&&`%=&T%C%F%+ + + + + + + + + + + + + V@/#`@$#l#W@Q@Q@Q@y@t@|@|@|@6@=@=@=@S+D+D+s+J+s+y+n+7+7+]+]+:+-+-+.+X.W.D.x.D.v.v.C.c.1$,#^%M O+..^.B ^.$$V C >.>.C V V >.V >.>.V >.C >.V C V V V C V C C C V V k> ",
+" [&^ ] / { ^ / { ] { { ^ ] / ^ { ^ ] { ] / ] ] ^ ] ^ ^ { ] ] { / ^ _ _ {.!.!.2.c.c.j.w.w.V.D.W.X..+.+-+]+]+6+7+2+7+q+q+J+C+D+D+D+@@x@=@=@/@f@f@t@t@E@Q@Q@$#W@$#`@/#/#/#5#a#f#y#y#f#u#O#u#U#&$~$7$7$l>o$A$F$W$/&X$_%4%4%A%B%R%B%X%N&}&X&w&p&p&:*m>+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+n>o>p>q>r>s>s>t>t>u>v>w>x>s>9>y>_>$> >z>A;k;5;3;!;e>A>.;R-x-q;B>C>,-$-$-j>v=g=g=|=}=,=-=&=`*`*[-G*w*u*b*7*7*|*1* * *Z&F&F&E&l&m&f&c&|&g&_&)&&&T%C%C%F%+ + + + + + + + + + + + + t@)#$#)#$#r#Q@Q@F@E@t@f@f@f@|@=@@@=@W+X++@D+q+s+o+7+7+f+<+<+]+m+X.-+ +O.D.D.x.h.h.c.%.1$'%2%O++...B C V C V C C V V C V C V C >.4.C V V >.V 4.C 4.4.C >.>.V V V D> ",
+" 0 ^ ] ^ { ^ ] ] { { ^ ^ ] { ^ { ] ] ] ] { ] { ] { { ^ ] ^ ^ { ^ ^ _ _ $.{.{.2.2.c.i.v.i.w.D.D. +$+.+-+]+<+]+<+7+7+x+n+C+D+C+D+S+X+@@=@=@6@f@|@t@t@t@M@Q@r#r#-#)#)#)#4#7#5#f#f#y#E#u#O#O#U#+$!$~$~$3$_$F$A$W$/& %X$_%_%K%A%r%B%#&B&}&b&b&X&p&<*5%+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+E>7>r>r>F>G>H>H>I>I>I>I>J>w>x>K>9>/>6> >M;A;k;h;e;);L>M>A-N>O>w-P>,-$-Q>j>A=g=g=R>}=]=-=-=.=`*U*G*w*n*g*7*7*1*~*$* *Z&Z&R&H&r&l&f&n&**|&_&_&`%`%C%C%E%+ + + + + + + + + + + + + S>/#$#`@$#$#W@F@M@y@t@q#|@f@=@=@=@S++@D+D+C+s+y+q+7+7+<+<+]+'+-+-+.+X.D.D.D.D.i.h.c.=.1$o&+...^.^.$$V C >.C V >.V V V V 4.C C C C >.V 4.C 4.>.4.C V >.V >.V V C 0 ",
+" { { ] ^ / { { / ] ] { ] { { ] ] { ] { { ] { ] / / { { ^ / { ] ^ J l _ %.!.7.2.c.h.i.i.v.D. +.+.+-+'+'+<+2+7+e+7+q+q+s+C++@D+*@T@x@=@/@^@|@f@f@t@t@y@F@W@W@$#-#)#)#4#7#3#7#f#)$y#E#O#O# $ $~$~$~$7$3$A$F$F$X$W$K$_%4%4%K%r%`&X%X%(&,&b&b&W&:*T>+ + }*G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+U>V>W>G>X>Y>Z>`>`> ,., ,+,H>H>@,K>#,/>6>c>[>`;j;$,e;%,&,.;*,O>=,3-,--,;,K=j>v=g=>,[=<=-=)=%=+=T*U*w*m*m*b*7*}*#*&* *.*R&E&s&r&l&j&d&c&|&_&&&&&T%C%C%E%+ + + + + + + + + + + + + ,,)#)#l#r#Q@F@M@U@s@s@g@f@/@=@@@@@@@D+e@C+K+s+s+o+7+7+2+]+<+]+|+-+X..+D.D.K.h.c.2.2.( ,#M M O+^.C ^.V V >.V C >.V C >.C V C C C V V C 4.C C C >.C C C C C V >.4. ",
+" y ] ] { { { ] { { { ^ ] { ] { / / ] ] { ^ { ^ ^ ^ { { { { ] { { =._ _ {.{.2.2.C.i.i.w.x.D. +O..+.+1+]+:+<+<+7+7+7+y+q+C+D+D+D+@@@@=@/@^@|@f@t@t@y@Q@U@Q@W@W@)#)#)#}#4#7#3#f#)$)$u#N#N# $@$~$~$7$3$3$A$u$A$W$X$c%_%_%_%K%B%r%@&@&N&(&X&b&w&p&^*+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+',),G>!,Z>~,{,],^,^,/,(,/,],_,X>@,W>:,^>n>M;A;`;h;<,[,L>.;R-},|,3-1,-,X=;,j>K-g=g=4=]=-=2,%=+=G*G*w*x*l*e*7*1*#* * *L-R&y&r&r&l&m&j&g&|&_&%&*&=&T%M%M%+ + + + + + + + + + + + + 3,/#$#l#Q@Q@M@F@t@s@s@|@|@=@/@@@@@S+X+D+D+C+q+y+x+7+2+<+2+<+m+'+.+ + +{+D.D.w.c.i.h.F.+.O++...^.>.>.V C 4.V V V C 4.C 4.V C C C V C 4.V C >.C V V C >.>.4.C V 3= ",
+" : ] { ^ { { / ] ^ ] ^ { { { / / { { { { ] { ] { { ] / / { ^ { ] ^ _ l !.!.!.3.2.j.h.i.i.D.W..+X..+-+-+]+<+6+2+7+7+y+s+K+D+D+S+S+X+@@@@/@^@f@f@f@t@F@F@Q@Q@V%W@)#)#)#/#4#a#7#f#)$E#E#O#N#U#@$~$~$8$3$3$A$A$!%F$X$X$_%_%K%K%r%@&@&@&N&}&}&r*p&4,+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+5,6,!,7,8,9,0,a,b,c,d,a,/,/,],e,X>x>a>f,g,c>L;`;l;h,i,}>j,R-N>},B>P>-,k,Q>j>K-v=R>l,^=-===%= =S*G*w*v*g*g*7*7*~*&*$*Z&Z&H&s&r&t&m&6&7&|&2&&&`%T%T%C%D%+ + + + + + + + + + + + + m,)#`@Q@W@Q@Q@M@t@g@s@f@|@/@=@W+@@X+D+D+K+q+s+s+y+7+g+2+]+'+'+-+X.X.X.D.D.D.i.v.C.2.U++.M M ^.^.B >.V >.V >.V C C C >.C 4.>.V >.C 4.C V >.C C V C >.V >.4.>.>.n, ",
+" F ^ { / { ^ { { ] ^ { { / { ] ^ / ^ { { { / ] / { ] ] { ] { / ^ / ^ %.l !.{.2.c.i.w.h.x.D.{+W.X.X.-+'+]+<+]+2+7+7+y+o+s+s+D+D+S+X+@@=@/@6@f@f@t@y@E@M@Q@Q@W@$#)#)#)#/#}#a#a#f#u#E#u#E#U#U#.$@$@$~$3$3$3$&%F$W$W$_%_%_%K%r%r%`&@&@&}&,&}&X&p&9%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+),o,8,9,d,p,q,r,q,s,t,u,v,w,x,y,Y>G>5,z,^>A,4>B,Z;h;C,D,E,f>Q-;>F,P>-,k,M=1>1>g=g=R>]=-=&=&=%=T*G*w*v*k*e*7*}*}*$* *Z&R&z&E&r&l&j&e&c&|&_&_&!&`%T%O%N%+ + + + + + + + + + + + + Y+$#$#$#W@Q@F@E@t@t@f@f@r@/@>$=@@@@@S+S+D+C+s+x+7+7+<+<+<+'+'+|+.+X.D.D.w.D.v.h.c.2.j#+.M ^.[.^.W#V C C >.V V >.C 4.>.>.4.C C 4.C C 4.C V C >.C C >.C >.C 4.C Y ",
+" { ] ^ ] ^ ^ ] ] ] ] { ] { { { ] ] ] ^ { { { { ^ ^ ^ { { ^ { ] J _ _ %.~.2.7.c.2.c.h.x.D.W.X.X..+X.'+m+'+]+2+g+y+7+s+s+C+D+D++@X+W+=@=@^@f@f@f@s@t@F@F@Q@l#$#v&)#/#4#4#a#f#f#y#T#u#E#N#O#U#U#@$h$~$_$_$3$F$W$K$K$_%_%k%K%K%B%`&X%X%(&}&}&b&i$+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G,H,I,J,K,L,M,M,K,N,s,s,u,u,/,O,P,X>x>5,7>Q,R,S,T,U,<,V,E,W,X,},Y,P>Z,`,K=j>1>g=r=R>]=,===)=+=S*G*v*n*m*7*7*}*|*#* *Z&Z&F&z&r&l&f&e&6&|&_&&&*&T%T%C%F%+ + + + + + + + + + + + + '$#`@l#M@F@F@t@t@s@f@f@f@^@@@X+@@W+S+C+s+s+s+x+y+e+e+<+<+-+-+.+.+W.X.D.V.i.w.h.2.c..',#+.M ^.^.>.>.>.4.C C V C 4.C V >.4.4.V V V 4.>.V C C V C C C V C C >.C ",
+" f { ^ { { ] { ] ^ ] ^ / { ^ / { / ^ ^ ] ] { ^ / ^ { ] / ] { { { _ _ _ !.{.{.c.,@c.i.i.w.D.W. +X..+'+]+<+<+2+7+7+x+q+s+D+D++@S+W+=@($/@6@=@f@g@f@y@t@F@Q@W@`@`@`@)#/#/#4#0#7#f#T#E#u#N#U#U#@$~$~$~$7$3$A$A$F$F$X$X$_%4%r%r%r%r%B%B&X%}&0*b&h@+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++'I,J,@'#'$'%'&'*'='K,s,s,d,c,-'y,;'G>5,q>^>n>>'T,I;,'''E,.;*,)'V;B>Z,`,!'1>1>g=>,~'-=-=&=&=.=T*G*v*m*b*b*|*}*}*#*Z&Z&G&E&H&l&t&e&c&c&|&3&&&)&`%C%C%D%+ + + + + + + + + + + + + {'-#$#r#Q@M@F@y@s@9*f@7@|@/@@@=@X+D+D+C+C+C+y+7+y+2+7+2+:+'+-+.+X.W.X.D.x.x.h.r.c.!.U M ....^.^.4.V C V C >.C C >.4.>.C 4.V >.>.C 4.V V 4.C V >.V >.C C V 4.3+ ",
+" ]'{ ] ] / / ] ] { / { { / ^ / { ^ { ] { / ] ] ] ^ / { { ^ { ^ / ^ ^ %.!.{.2.2.j.r.i.w.w.D.W.{+.+1+'+'+'+]+<+g+7+y+y+s+s+D+S++@S+W+X+r@=@f@|@f@g@t@F@Q@Q@W@$#$#)#)#4#4#5#3#f#f#I#E#u#u#N#U# $@$~$7$7$l>A$A$F$F$W$K$*%_%4%A%r%r%r%@&@&X%(&X&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+^'J,/'%'('_':'<'['}'|'N,s,r,b,x,8,Z>G>5,',1'5>2'`;I;,'''3'4'R-x-5'6'7';-!'j>1>g=R>8',=&===%=T*G*w*w*m*b*7*}*1*&*&* *Z&P&H&S&l&m&j&c&6&|&&&!& &~&T%O%G%+ + + + + + + + + + + + + 9'l#Q@r#F@U@t@t@t@f@f@f@=@@@@@S+X+D+D+Q+C+q+s+7+7+]+]+<+]+-+.+.+X.W.D.D.D.w.h.C.c.0'+.+.M ..^.B C >.C V >.C C C V V V C C V V V V V V C V 4.4.>.C V 4.>.C >.D> ",
+" a'/ { ^ { ] { / / { ] ^ { ] { ] { / ] ] ] { { { ] ^ { { ^ ^ ] { J _ _ %.{.2.{.c.j.~@x.x.x.D.W.{+-+-+-+m+<+]+2+7+7+q+r+s+D+D+S+S+S+=@@@=@r@f@g@s@t@t@F@F@Q@$#`@`@)#/#/#3#4#f#7#f#)$u#u#U#U#.$@$@$~$_$3$o$3$A$A$K$ %c%_%4%A%A%B%B%B%R%5&,&W$+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+b'c'd'e'f'f'g'h'i'%'j'k'N,r,l'm'8,n'G>),o'p'q'4>`;r'h,''e>4's'x-|,6'7't'u'K=1>>,R>~']=&=)=%=S*U*u*u*m*b*7*7*}*&* *Z&R&P&y&S&l&m&f&n&h*|&2&&&)&`%T%C%E%+ + + + + + + + + + + + + v'`@W@Q@M@Q@E@t@g@q#f@^@r@@@=@@@X+S+C+s+s+q+q+7+7+<+]+<+'+-+'+.+X.X.W.D.D.h.h.c.2.w'+...M ..^.4.V C V >.>.>.C 4.C V C V C V V 4.>.C 4.V V >.4.C >.4.V V C C %@ ",
+" / ] ] ] { ] ] { ] ] { / / { { { ] { / ] { ] ] ^ { ^ / ] { ] ] ^ _ _ %.%.{.2.c.i.i.h.w.i.D.D.X..+-+-+-+:+6+2+e+y+7+y+s+C+K+X+*@S+W+W+/@=@r@f@s@s@t@y@M@Q@Q@H#`@.&)#/#4#7#3#7#y#E#u#E#O#O#U#@$@$~$~$7$3$_$A$F$F$!%X$c%X$_%_%A%B%@&@&@&X%d=+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+x'y'z'A'B'B'C'D'E'F'='N,p,l'G'y,n'G>),r>^>q'4>H'I'$,''e>J'K'x-L'6'M't'N'j>O'R>6=l,-=-=)=%=+=G*w*w*m*b*7*7*%*#* *Z&Z&P&H&r&l&l&e&6&c&|&_&!&*&`%C%C%n%+ + + + + + + + + + + + + P'`@$#Q@F@y@t@t@f@|@/@=@=@=@X+W+D++@C+s+C+s+y+7+2+g+<+'+-+'+.+.+X.W.P.V.x.h.j.j.2.S +...^.^.^.^.W#C C >.V >.C C C C C 4.C C C >.C C C C >.4.C 4.V 4.C >.V >. ",
+" w+] ] ^ / / / ^ { / { ] ] { { ^ ] { ] ^ { ^ { / ] ^ / { ^ ] ^ { _ _ l %.{.3.c.2.h.v.w.D.D.{+O..+X.-+'+]+]+2+7+n+7+s+q+s+C+D+D+S+S+=@/@6@6@f@t@t@y@y@F@E@Q@l#`@6#)#/#)#'*7#7#f#f#t#E#%%u# $ $@$~$~$~$_$7$A$F$F$ %W$X$X$k-k%A%r%@&@&R%X%>=+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Q'g'B'R'S'R'T'C'U'V'W'p,r,l'm'n'H,!,X'',Y'Z'2'H'`'h,'' ).)+)@)#)6'M'`,!'j>O'r=r=l,,=&=)=.=S*G*v*n*n*g*7*}*|*~* * *P&H&z&I&l&l&7&7&|&_&_&~&*&T%T%C%F%+ + + + + + + + + + + + + $)W@Q@Q@t@F@t@t@f@f@f@=@/@-@X++@X+C+C+q+q+x+x+7+2+2+'+]+-+-+-+.+.+P.D.D.K.v.h.c.2.e M O+^.^.^.W#C C C V C V V >.V C C C C C C C >.V >.4.V V >.4.C V C 4.V m$ ",
+" %){ { / ] { / { ^ { { ^ ] { ] { { / ^ ] { { / { / ^ { ^ ^ / { { J _ {.$.{.{.2.j.c.i.h.D.D.O.X.X.X.-+:+]+<+]+7+7+n+7+s+C+C+D+D+X+X+W+=@=@^@r@f@g@y@y@M@Q@Q@W@l#l#)#-#/#3#7#3#f#y#f#u#u#N#u# $~$~$&$~$7$8$o$F$A$F$X$*%X$X$A%4%r%r%r%R%@&'&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&)*)=)-);)>)R',)D'')))J,l'l'0,n'H,!,X'!)p'~){)H']),'''^)W,+)x-#)/)M'()!'1>O'R>[=[=-=&=.= =G*G*w*x*g*f*7*7*}*~* * *P&G&y&r&t;e&n&7&|&_&&&)&*&T%C%N%m%+ + + + + + + + + + + + + _)$#W@M@F@y@t@s@|@|@^@/@/@x@W+S+S+C+D+Z#q+s+r+7+2+<+<+'+-+l+.+.+X. +D.w.x.i.h.2.7.+&+.a+^.^.^.W#C V C V C C >.C V 4.C >.4.>.4.V C V 4.V >.>.>.V V C C 4.C [+ ",
+" { { / ] ] { ^ { { { ^ { ] / / ] / { { { ] { / ^ { ^ ^ / { { / ^ _ _ $.!.2.{.c.j.h.h.x.D.P.D.O..+-+'+-+<+<+<+<+7+s+r+J+K+C++@+@X+X+=@=@/@f@s@f@t@E@y@Q@Q@Q@$#W@-#)#4#3#4#5#7#7#I#E#u#%%O#U#@$U#&$~$~$_$o$:)F$F$W$K$_%X$_%4%r%B%L%`&R%<)+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+[)})|)1)2)1)R',)3)4)@'5)6)7)0,n'o,8)9)0)p'a){)b)]),'''c)d)X,@)#)e)Z,k,!'1>f)~'[=<=&===`* =[-G*w*n*f*e*7*|*&* * *Z&P&E&r&l&l&f&6&7&|&_&&&)&Z%T%C%E%E%+ + + + + + + + + + + + + _)Q@W@F@F@t@g@t@f@|@^@=@@@@@@@D++@D+J+q+n+y+7+7+7+6+]+]+-+-+.+X.D.D.i.v.h.i.c.c._ ,#+.^.a+^.4.V C C C 4.C C 4.V C C 4.V C V C >.V V V C >.>.>.4.V >.C C 4. ",
+" : ] ] { ^ ] / / ] { { { ^ { ] ] { { ] ^ / / ^ / / { { ^ ] / { ^ _ %.%.{.{.2.2.c.h.w.w.x.D.P.W.X.-+-+'+]+]+]+7+7+n+n+s+q+C+D+D+S+@@-@/@/@|@f@t@g@t@G@U@Q@W@$#l#`@`@/#/#3#3#0#7#f#y#I#u#N#U# $!$@$&$~$y%3$3$A$F$F$K$K$ %4%_%A%k%B%B%B%+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+g)z'h)i)1)j)k)*)l)m)n)o)7)0,p)q)G,r)9)0)s)t){)T,])u)v)w)x)y)},z)C>A)B)!'O'K-l,C)<=)=&= =+=G*G*w*m*b*7*}*~*~*$*2*Z&P&H&s&l&l&n&6&6&y*_&&& &`%T%C%D%D%+ + + + + + + + + + + + + D)Q@Q@F@E@t@f@f@f@=@/@=@X+=@@@S++@D+C+q+s+n+7+2+g+<+]+'+.+.+,*X.P.D.D.V.i.i.c.2.` +.M O+^.C ^.4.>.C C C >.V C V 4.C V >.C C V C C 4.V C C C C >.V C V V Q% ",
+" w%{ ] ^ ^ ] ^ ^ ^ ] { ] { { / { / / ] { ^ { / ] ^ / ] / ] / { ^ J %._ !.{.7.l.2.i.i.v.i.D.W.D.W.X..+-+'+2+6+<+7+y+s+r+C+C+C++@D+W+x@=@=@^@|@g@f@t@t@F@M@Q@r#W@`@E))#/#/#4#3#f#f#t#y#u#u#N#U#U#U#@$~$7$h$7$3$F$F$W$F$K$X$X$4%4%4%r%B%+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+x'F)})G)|)H)A'g'I)F'J)I,0,K)n'G,L)M)N)O)s)P)Q)R)S)T)U)4'V)Q-W)X)Z,-,N'1>O'Y)[=[=<=&=%=+=+=G*v*u*k*b*b*}*#*&*2* *Z&P&y&r&l&l&j&f&|&_&_&!&*&=&T%M%D%H%+ + + + + + + + + + + + + Z)Q@M@Q@y@s@s@s@|@^@r@@@@@@@X+D+C+J+s+s+x+7+7+g+7+]+:+:+'+.+.+X.D.D.i.i.j.i.h.2.F.M M a+^.^.>.4.C C C V V >.C 4.V C >.4.C V C >.4.C >.4.>.C C >.C >.4.V w% ",
+" ] { ] { / ] { ] ^ { ] ^ { ^ { ] ^ ] ] ^ { { { ] { ^ ] ] / ^ / { _ _ !.!.2.!.2.2.h.v.V.D.D. +X..+.+'+'+]+<+e+7+n+n+y+q+C+C+D+X+S+-@@@/@|@/@f@g@s@t@t@F@M@Q@$#W@$#)#)#}#4#3#7#7#I#y#y#V$u#O#U#!$@$~$7$_$3$o$A$F$(%!%K$K$_%_%4%4%A%3$+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+c'`)F)z' !.!+!@!m)#!$!0,%!&!G,*!=!9)-!;!~)>!b),!u)'! ))!V))'W)!!~!`,{!1>]!^!8'<=<=&=.=T*G*G*u*l*f*b*7*7*!*&* * *P&E&E&r&l&l&n&6&7&_&8&!&`%T%C%C%G%m%+ + + + + + + + + + + + + Z)F@y@y@y@t@f@|@=@6@=@=@W+@@W+D+C+K+J+7+y+7+2+2+]+:+'+-+-+.+X.O.D.x.D.i.i.c.r.{.u++.+.^.^.>.>.C V C C C >.>.4.>.>.4.4.V >.C 4.V V >.4.>.V >.4.>.4.C V V ",
+" ]'{ / { { ] / { { ^ ^ ] ^ { { { { ] ^ ] ^ { / / ^ ^ ^ ^ ^ { ^ _ ^ _ %.%.{.l.c.c.c.w.w.D.D.D..+-+-+-+-+]+2+g+7+x+s+n+r+K+K+C+D+X+S+=@@@=@^@f@|@f@t@t@F@Q@W@W@$#)#$#/#/#/#4#a#f#f#T#y#u#E#u#U#+$ $+$~$h$7$A$_$A$F$W$!%W$X$_%4%4%A%4$+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+/!x'(!_!:!<![!}!|!1!K)&!q)2!3!4!!);!5!P){)R)6!u)v)7!8!X,},9!0!~!a!!'1>b!c!<=^=&= =%=S*G*w*x*x*b*7*-;}*#*~*o*Z&R&H&I&s&m&j&n&|&|&2&_&`%`%*&O%F%E%n%+ + + + + + + + + + + + + d!F@U@E@t@f@g@7@f@r@=@@@W+S++@D+C+s+y+y+7+7+7+<+<+'+'+-+-+.+ +P.D.x.x.i.j.c.c.{.U +.M ^.^.^.>.4.>.C 4.4.C V V V C 4.4.V 4.C >.V C C C >.V C C C C 4.C e! ",
+" j%] ^ ] { ] { { { { / { / ^ { / { ] { ^ { ] / ] { ] ^ { { ^ { ^ _ _ ~._ {.{.c.2.h.h.w.D.D.W.D. +X.-+'+:+<+<+2+2+o+o+q+s+q++@D+S+@@@@@@r@=@f@f@f@t@t@F@U@F@W@`@`@)#-#/#/#4#3#s#f#f#)$u#V$O#N#O#@$ $@$~$h$_$_$o$o$A$K$K$X$X$X$_%4%b#+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+f!g!h!/!i!}!j!f!&!&!H,q)L)r)k!!)l!s)~)>!b)`'m!n!o!J'p!X,q!r!s!t!u!{!O'c!v!<=<=&=`*+=1=G*x=x=k*k*7*}*|*%* *Z&Z&R&y&r&r&m&j&6&c&_&2&_&*& &T%T%O%E%m%+ + + + + + + + + + + + + d!E@F@t@t@s@|@f@^@=@=@@@S++@D+e@C+s+s+q+7+7+2+]+'+:+-+'+-+.+X.D.D.x.i.i.c.c.c._ +.M ^.[.^.V V C C 4.V C V >.C C >.4.>.C >.V V V C C C V V >.4.>.C >.V 2# ",
+" 3%^ { ] { ] { ] { ] / ] ^ / ^ ] ^ ^ ] / ^ ^ { ] / ] ] { ^ { ^ ^ ^ _ _ {.{.2.2.c.h.w.D.D.D.D..+$+$+'+<+:+<+<+e+7+7+s+q+C+C+C+D+X+@@=@=@=@/@|@f@f@t@y@Q@Q@Q@Q@W@-#`@/#/#/#4#3#7#7#y#y#I#O#U#U#U# $~$~$7$7$8$3$o$F$K$W$X$_%c%_%A% #+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w!x!y!b'b'z!K)x!2!2!2!A!=!B!C!l!s)~)>!D!R)E!F!v)c)W,V))'G!0!A)H!!'{!Y)Y)~'<=^=`*.=T*S*G*u*v*b*7*7*}*%*2* *Z&P&R&y&r&l&l&e&d&|&_&&&%&~&=&C%C%G%n%e%+ + + + + + + + + + + + + I!E@t@t@t@9*f@|@6@=@@@@@*@D+C+s+C+q+r+q+7+2+e+<+<+-+'+$+X.X..+D.D.i.h.v.c.C.c.3 M [.^.^.C V V 4.C V C >.V 4.V V V V >.V C C C 4.4.C V 4.C 4.>.C C >.0% ",
+" J!] / { ^ { { { { { { { ^ ^ ^ { { / { / ] ^ ] ] ^ { { ] { ^ { ^ _ _ {.{.{.l.c.c.h.i.w.D.D..+W.-+.+-+'+]+]+f+g+7+7+y+y+C+C+D++@X+X+X+@@r@=@f@q#q#s@y@M@Q@Q@Q@W@`@`@)#/#4#4#3#7#f#f#f#u#E#O#N#O# $ $~$~$3$7$3$_$F$F$F$!%!%W$X$_%K!+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+N)L!w!M!N!O!L)L)A!=!k!B!P!Q!R!s)P){)S!T!U!V!U)W!X!Y!G!Z!`! ~B).~.~c!+~<=<=%-%=T*S*G*w*v*n*b*c*}*|*~*$* *Z&P&G&S&r&l&t&j&c&|&_&)&&&`%T%C%M%F%n%m%+ + + + + + + + + + + + + + F@t@f@9*f@7@6@|@=@@@@@X+S+D+D+C+s+7+y+7+g+6+]+'+]+-+.+X.X.X.D.x.w.i.h.2.c.c.S O+[.^.^.^.C >.C C >.>.C C 4.4.>.C C C V C C C C C V >.C V V 4.C V V b. ",
+" ^ { ] ] ^ / ] { ^ / { { { ] ] ] { { / ] ^ { ] { ^ { ] { { { { ^ _ !.~.!.2.2.2.h.w.h.K.D.D.X..+.+-+-+:+]+6+f+2+7+x+n+s+K+D+D+D+X+W+=@=@/@^@f@s@g@s@y@F@M@F@l#W@`@`@`@)#4#4#7#f#f#f#u#u#E#N#N#U#U#U#&$7$~$3$3$_$A$F$F$W$/&X$_%+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+@~C!C!C!#~#~#~#~#~#~C!$~;!%~s)&~*~=~-~;~>~,~W!8!'~)~!~e)~~`,{!.~O'{~]~<=^=== =+=G*u*v*m*b*7*7*-;~*~* * *Q&P&z&z&r&l&e&d&6&**_&!&!&*&T%M%M%D%m%e%+ + + + + + + + + + + + + ^~y@s@s@f@f@|@=@=@@@@@X+S+X+D+D+s+n+7+x+7+2+6+]+'+-+'+.+.+X.D.D.D.x.i.h.c.c.c.J*......^.>.C C >.>.>.C C C 4.>.>.V 4.V 4.C C >.4.V V 4.V >.V >.C 4.V ",
+" $%] { ^ / ] / / { ^ { { { / ] { ] ^ ^ ] { ] / { / ] / { ^ ] J =._ _ !.!.{.c.2.h.h.x.w.x.W.X.W.X..+-+'+'+<+<+7+7+7+s+s+C+K+D+9&+@X+W+=@=@6@|@|@t@f@t@F@E@Q@W@Q@`@)#)#/#)#4#3#7#a#f#)$)$u#U#u# $U#!$!$~$~$h$_$3$o$F$A$W$!%X$X$+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+/~(~_~:~<~[~C!$~$~Q!}~s)|~1~2~3~4~-~u)5~6~7~8~'~'~9~F,s! ~B).~.~^!0~a~^=,=%=S*S*w*w*w*m*b*7*}*|*~* *3*.*G&H&z&r&r&j&e&6&g&|&3&&&~&Z%T%C%D%D%m%e%+ + + + + + + + + + + + + + t@g@g@f@|@6@r@@@@@X+*@X+D+K+K+q+o+q+7+7+<+6+:+Z+'+-+.+X.D.W.D.w.v.i.h.j.c.2.M +.[.^.>.V C C >.V C V V C C C >.V >.V C C V V C V V V >.V 4.>.V 4.)% ",
+" / ^ ] ] ^ { ^ { { { ^ / ] / { { ] { ^ { { { { ] { { ] ] / { _ _ l !.{.2.2.j.j.h.h.w.w.D.W.D.-+.+-+'+'+]+6+]+7+7+7+q+q+D+K+e@X+S+-@=@=@r@/@|@s@t@t@t@M@Q@Q@Q@l#$#$#/#)#}#4#3#5#f#f#f#I#u#N#U#U# $&$~$~$~$7$_$o$_$A$F$F$K$J#+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&~b~s)/~c~d~R!(~e~R!f~g~h~i~=~j~-~k~T)6~7~l~p!y)m~n~0!o~B)N'.~]!+~~'<=p~%= =T*G*G*w*l*b*b*7*1*1*%* *Z&P&P&E&z&r&l&t&f&7&|&|&_&%&~&T%C%C%D%H%m%g%+ + + + + + + + + + + + + + t@f@q#|@|@=@=@=@x@X+D+D+C+D+s+y+7+7+7+6+]+<+]+'+|+.+$+W.D.D.D.x.i.j.,@c.2.` ..[.^.^.>.C C 4.C >.C V C 4.V C C C V V C C 4.V V V C C 4.>.>.V V V ",
+" U$] ] ] { { ] { ] ] { ] ^ ^ { ] ^ ] ] ^ / { / / ] / ^ ] / { ] _ !._ !.{.2.{.2.i.j.x.w.D.D.{+.+-+.+-+]+]+2+2+7+7+r+s+s+Z#D+D+D+S+S+X+@@/@f@|@|@q#t@t@t@M@M@W@Q@`@`@$#)#/#4#7#3#f#7#E#y#u#u#u#N#q~ $~$&$~$7$8$8$_$o$u$A$F$u&+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+r~&~s~s~b~t~b~g~u~r~h~*~4~`'T!k~v~'!7~l~p!w~5'x~0!t!y~a!.~z~A~0~~'^=p~S*S*G*w*w*n*n*b*7*H;}*#*$*Z&Z&P&E&H&s&l&l&e&f&c&|&_&&&%&`%T%T%M%t%m%m%e%+ + + + + + + + + + + + + + s@t@|@f@6@r@=@x@@@X++@C+C+K+s+y+x+7+7+6+2+5@<+'+'+-+ +{+D.D.w.w.h.h.c.2.2.U+^.O+^.^.C C C C C >.C C C V >.4.>.V V C 4.C >.C 4.>.C C V V 4.C 4.H. ",
+" 2#] / { / / ] ] { { { ] ] { ] { { ] { ] / { ] { / ] ^ { / / ^ _ _ _ %.~.{.c.c.h.h.h.h.D.D.W.X.$+.+-+'+Z+<+e+2+7+x+y+q+C+q+D+C+X+W+X+=@=@/@^@|@|@t@D@y@F@Q@Q@Q@l#`@)#)#)#/#4#5#s#f#f#t#)$u#u#N#O#U# $~$~$~$~$3$_$o$u$u$F$B~+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+4~D!*~*~i~h~h~h~=~C~S!D~E~k~F~'!G~H~I~8!J~K~L~0!~~t!M~N~z~]!0~a~a~'=.=S*[-w*u*n*l*b*b*7*}*~*&* * *Z&R&E&r&r&l&e&6&d&|&|&)&!&*&`%C%C%D%E%p*e%7%+ + + + + + + + + + + + + + t@q#f@/@=@=@@@@@@@D++@D+C+s+s+s+q+7+7+]+]+:+m+'+l+X. +D.O.D.w.w.h.j.c.7.g.j#+.^.^.>.W#V >.C C 4.V >.C V >.C 4.C V C V V >.C V 4.C V C 4.V V 4.2# ",
+" O~^ ^ ] ^ { { ] { { ^ / ] ] { ^ ^ ] ] ] { ^ { ] ^ ^ ] ^ { ^ _ _ _ _ !.!.{.2.2.h.h.K.V.D.W.X. +-+'+'+'+<+<+6+7+n+y+y+C+q+C+D++@X+X+=@=@=@|@^@f@s@g@t@t@F@Q@W@r#`@l#)#/#W%)#4#s#3#7#f#E#y#u#N#U#u#U# $@$~$~$~$3$_$3$F$A$P~+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+D~D~Q~S!S!R~R~R~D~S~E!E!F~T~'!U~V~W~X~Y~Z~!~0!`~t! {u!.~.{0~0~C)^=&=S*S*G*w*w*l*f*b*7*}*}*%*&*$*Z&R&H&z&r&r&l&f&c&7&|&2&3&%& &`%O%G%F%m%m%e%f%+ + + + + + + + + + + + + + t@|@|@/@/@=@@@W+X+S+D+K+s+s+r+y+7+2+<+6+]+Z+'+$+.+X..+{+D.V.V.x%i.2.c.2.=.+...[.^.C ^.>.V C C V C C 4.>.V V 4.V 4.C 4.C V V C C 4.V C >.>.V W ",
+" z$^ ] { ] { { ^ ] / ] ] ^ ^ / { / { / ^ ] ^ ^ ] ] / / ] ] ] { _ _ _ {.{.{.2.2.c.c.h.i.x.D.{+X.$+1+.+'+]+<+6+2+7+y+q+q+s+K+D+S+X+S+W+($r@r@f@|@f@g@t@F@U@Q@Q@W@$#W@)#-#/#/#4#d;7#7#f#y#)$f#u#U#u#U#U#&$~$~$~$h$3$_$_$A$+{+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+@{E!#{${#{#{@{E!%{&{v~*{={V~-{;{>{,{'{!~){`~t!H!N~z~!{A~~{a~{{p~`*S*G*w*v*x*l*b*7*7*1*|*&*$*Z&Z&P&z&z&l&l&j&j&d&c&|&&&!&*&`%T%C%C%F%m%e%e%<%+ + + + + + + + + + + + + + f@f@^@r@=@=@X+W++@X+D+s+J+s+q+n+7+7+]+]+'+<+-+$+-+X.D.P.D.D.i.i.h.2.2.7.F.O+M ^.C ^.V V >.4.>.C 4.C >.>.4.>.>.>.4.C V C C 4.>.>.V C V C >.C z$ ",
+" l@] ^ { / ] ] ] / { { ^ ^ ] { ] { ] { { ^ / ] { ^ ] ] ] { ] J _ l #.!.7.c.c.h.i.v.v.V.D.W.{+W.-+-+'+'+<+]+]+7+7+y+q+s+s+D+D+S++@X+-@=@=@6@|@f@g@t@s@t@y@F@Q@Q@$#W@)#)#)#/#4#4#5#s#a#T#f#E#u#E#N#O#.$U#+$~$7$7$8$_$_$+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T~&{]{^{&{/{({]{6~_{G~:{<{[{X~>{}{Z~|{1{`~2{3{u!4{!{5{0~8'a~%=6{S*G*w*w*m*k*g*b*7*}*}*~* *Z&Z&G&H&s&r&l&l&j&c&|&|&2&2&!&`%T%M%N%C%H%H%e%7%8%+ + + + + + + + + + + + + + |@|@/@r@@@@@X+W++@D+Q+C+C+y+r+7+7+g+e+<+'+'+-+'+X.X.O.D.x.w.K.h.c.2.{.!.u+a+S.^.4.C V C >.V >.C C C V C C V >.>.C C V 4.C 4.C >.4.V V >.>.7{ ",
+" n${ { { { / { { ] { ^ ^ ] { / { { ] { ] / ] ^ { ] ^ ] ] ^ _ { _ _ l $.!.l.2.c.r.c.h.V.D.D.X.P.X.-+-+-+'+<+g+f+7+7+s+s+s+K+D++@S+@@S+=@=@=@^@^@f@f@t@t@y@M@F@W@W@$#-#)#`@/#4#'*5#7#7#y#I#t#u#%%N#N#U#.$+$!$&$~$7$8$3$+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+:{_{8{_{_{9{9{0{a{b{;{X~p!Y~c{Z~9~1{d{`~e{3{N~4{!{f{~{8'{{p~6{T*G*w*w*n*n*g*7*7*7*1*&*$*Z&Z&P&G&F&z&r&r&f&j&6&|&_&_&&&&&`%T%M%F%G%H%p*7%7%]%+ + + + + + + + + + + + + + |@7@f@=@=@S+@@S+D++@C+s+s+r+7+7+2+<+]+]+:+-+-+$+ +X.W.D.w.D.i.c.C.{.{.!.G.[.^.>.B 4.C C C C 4.C 4.V 4.C C V V >.V V C V C V C V C C V V 4.n$ ",
+" w+{ ^ ] { { ] ^ ] / ] ^ { ] ] ] { ] { ] ] { ^ { ] { ] ] { { _ _ %.!.{.2.2.2.c.i.h.w.D.D.D. +.+-+-+:+]+]+]+e+7+7+q+y+s+s+D+D+D+S+W+=@@@=@=@/@|@f@t@t@t@y@F@W@Q@W@$#`@)#)#)#4#4#f#4#f#f#T#E#u#E#N#u#U#U#+$~$&$7$7$f#+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+g{h{h{h{i{j{j{;{p!p!Y~c{k{9~l{d{m{t!H!n{N~4{!{]!o{~'{{{{%=S*G*G*w*n*m*f*7*7*7*}*1*#*Z& *Z&P&E&S&r&l&t&f&n&g&|&|&&& &`%T%T%O%M%H%:&e%7%6%[%+ + + + + + + + + + + + + + ^@=@/@@@@@X+X+9&C+s+C+s+x+n+7+2+2+<+'+'+'+1+X.X.P.O.P.x.x.v.i.h.2.c.2./ a+^.^.^.^.>.4.>.4.V C V 4.C V C >.>.>.C C C >.C V >.C C >.C >.V p{ ",
+" =#{ ] { { / { / ] / ] { { / ^ ^ / / ^ { ^ ^ { ] { { { ] ^ ] _ ^ l _ %.{.2.2.2.i.v.V.D.D.D.X.{+-+$+-+]+]+<+e+2+7+n+y+s+q+C+D+D+*@+@X+@@=@=@/@7@f@f@t@y@E@F@M@W@Q@r#$#-#/#/#4#4#4#a#7#7#f#f#I#E#N#N#N# $U#@$~$~$~$J$+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+q{r{X~X~>{>{>{c{c{c{s{!~!~1{){t{u{n{v{4{w{x{y{y{a~{{z{%=+=S*w*w*u*n*f*b*7*7*|*}* *$*Z&Z&Z&G&E&r&r&t&e&d&7&**_&3&2&*& &T%C%F%E%H%e%g%f%<%-%+ + + + + + + + + + + + + + =@/@r@@@X+@@S+D+C+q+s+s+o+n+7+g+g+]+]+m+'+-+$+.+W.D.D.D.x.v.j.r.c.2.!.U+..^.>.^.V C V C 4.C >.C V C V C V >.V V V >.C V C C >.C >.V C >.'# ",
+" _.] { ] ^ { / { { ^ ^ ^ { { / / ] ] ] ^ ^ { ] ^ ] { { { / ^ ^ _ %.l !.{.c.,@j.h.i.i.x.O.D.D.X.-+.+'+'+<+<+<+2+y+7+x+s+s+C+C+D+S+X+@@=@=@/@/@/@f@f@t@t@F@t@F@Q@Q@W@`@-#)#-#/#4#4#4#5#f#f#E#E#I#O#O#U#U#!$ $@$&$^*+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+k{A{B{C{C{C{C{D{x~E{E{F{`~G{H{3{I{v{w{J{]!y{y{K{z{z{L{1=G*v*u*v*n*b*7*b*7*-;}*~* *3*.*P&H&y&r&s&t&l&e&c&7&|&_&_&)&~&*&{*C%F%D%e%e%M{f%[%-%+ + + + + + + + + + + + + + /@=@@@@@@@S+D+C+D+D+y+q+q+x+7+<+]+]+'+'+'+.+.+X. +W.w.h.i.h.c.c.{.{.!.,#O+^.>.^.C 4.C V C V C C C C 4.C >.4.C C >.V V >.C C >.C >.C >.N{ ",
+" ^ { ] / ] / ] { { ] { ] ] { { ] ] { / / ] / ] { ^ / ^ { ^ { _ _ _ #.g$l.2.i.i.h.x.x.D.O.W. +$+-+'+:+<+5@<+<+7+x+y+r+s+C+C+S+D+D+@@W+@@=@^@|@f@f@t@y@t@E@Q@F@Q@Q@$#W@)#)#)#)#4#7#5#7#7#f#u#t#u#u#N#N#O#U#@$ $g#+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+O{l{P{Q{O{R{R{F{S{t{T{U{u{3{V{I{I{w{J{5{W{W{C)z{X{%=1=w*G*w*n*m*g*g*e*H;7*&*%* * *Z&R&G&H&H&r&r&j&f&f&c&|&_&&&&&)&`%T%C%F%G%m%e%7%8%<%[%-%+ + + + + + + + + + + + + + /@@@S+S+W+S+D+C+C+s+n+q+s+7+g+2+<+:+'+-+$+X.W.X.D.D.w.v.i.h.i.c.{.{.=.O+[.^.$$C 4.4.C >.4.V V C C >.C 4.C C V C C V >.C C V V V >.V V ",
+" Y{{ / / { ] ^ { { ^ ^ ^ { ^ / { ] { ^ ] { / { { { { { ] ] J _ _ _ #.%.{.c.2.j.h.h.D.x.D.P.X.X.$+-+'+]+<+<+f+7+7+o+r+s+q+s+D+D+S+S+X+=@^@|@f@f@|@f@g@t@G@y@M@Q@W@Q@$#`@`@`@4#/#}#5#f#7#f#f#u#u#E#u#E#U#U# $+$Z{+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+`{ ].]+] ].]u{@]U{3{n{n{#]I{$]J{J{!{y{W{W{z{%]&]p~G*w*w*u*x*m*l*f*7*}*}*%*~*2*$*Z&Z&R&H&y&r&*]l&m&c&7&**|&_&&&%&*&`%T%C%G%n%H%e%7%6%]%[%+ + + + + + + + + + + + + + + =@=@W+X+T@D+D+Q+q+s+q+y+7+g+g+6+]+]+'+-+1+.+{+O.D.D.x.h.i.2.c.c.2.!.-.^.^.^.C C >.C C >.V C V C 4.C V 4.>.C >.V C 4.C V V V >.V C >.=] ",
+" 3 / ] / { { { { { ] { ] { ^ ] / ^ { ^ ^ / { ] ^ { ] { { { _ _ #.%.!.2.2.2.c.c.i.i.D.w.D..+X.-+-+'+'+<+]+]+6+e+7+y+s+q+s+C+D+S+W+X+=@=@/@6@|@|@|@f@t@t@t@y@Q@Q@Q@W@l#$#)#)#)#4#3#3#s#0#7#y#y#E#E#J#u#U#U#U#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+-];]H{H{-]>],]#]#]#]$]I{$]']J{!{y{)]!]<=^=%]~]L{G*w*w*l*n*n*f*f*7*}*|*#*~* * *Z&Q&Z&H&S&r&l&l&j&f&7&|&|&|&2&&& &`%C%C%D%F%n%m%e%f%[%[%-%+ + + + + + + + + + + + + + + =@=@@@S+D+D+C+s+q+q+r+7+7+<+7+<+'+'+'+.+$+W.D.W.D.i.i.h.h.,@2.2.{.!.+&^.^.>.>.>.4.4.C V >.V V >.4.>.V 4.V V V 4.C >.V C C V C C C ,$ ",
+" `#^ ^ { ] / ] { / ^ / ^ ^ { { ] { ^ { { { / ^ / { { ] ] ^ ^ ^ ~.%.!.{.2.2.c.C.h.i.i.D.D.X.D.X.-+.+'+]+:+<+g+7+7+7+y+q+J+C+C+C+S+@@X+x@=@=@=@^@f@f@t@t@t@t@y@Q@W@W@Q@$#`@.&)#/#/#4#4#5#7#f#f#y#E#E#u#u#O#*-+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{]]]^]]]/]/]]](]_](]_]J{f{!{:]W{W{!]%]p~L{L{P=w*w*x*x*g*b*b*d*7*}*}*!*~* *Z& *Z&F&R&y&r&r&t&j&e&6&c&|&_&3&)&*&`%T%T%M%F%H%e%e%7%[%<%-%-%+ + + + + + + + + + + + + + + @@=@*@T@D+D+s+s+y+s+n+7+7+2+]+'+:+'+1+.+W.X.X.D.D.V.x.h.j.c.2.{.!._ a+^.C C 4.V C >.C >.C C V 4.>.V 4.4.>.C C C C V V >.C C C C 4.= ",
+" =+] { ] ^ ] ] ] { ^ ^ ] ] ] { { { ^ ] ] { { ] ] ] { / { / ^ _ $.!.!.~.{.c.2.c.i.x.i.D.W.X..+.+-+1+-+<+<+]+]+7+7+n+q+q+s+K+D+S+S+@@@@@@=@=@|@f@|@f@g@s@t@U@G@Q@$#Q@W@-#`@)#)#/#4#5#5#7#3#f#y#I#y#u#E#u#-#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+']']<][][][][]}]x{!{x{|]1]!]W{a~X{%]L{~]2]G*w*w*n*n*l*g*e*b*H;}*}*|*~* * *Z&Q&G&y&z&s&r&m&t&e&f&c&|&_&_&!&%& &`%T%O%E%G%H%e%7%8%]%[%{%@%+ + + + + + + + + + + + + + + x@S+D++@D+C+J+q+r+x+7+7+7+2+<+'+'+'+-+-+X.X.X.D.D.i.w.i.2.c.c.!.!.K a+>.^.>.V V C V V C >.4.>.4.C 4.V 4.>.4.>.V C >.V C 4.C C 4.W ",
+" { { { ^ { { ] / { { { / ^ ] { ^ { { { / { ] { { / ] ^ { ^ _ ~.%.!.!.7.2.h.,@h.w.i.D.D.D.O.X.X.'+-+<+'+6+<+2+7+7+q+s+3]C+J+D+D+X+W+=@=@r@r@7@^@f@f@t@D@y@t@y@Q@Q@Q@W@$#`@-#/#/#/#4#5#4#f#7#f#)$u#E#u#4]+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+5]:]6]5]:]6]5]5]|]5]7]8]9]0]&]~]p~L{a]P=w*w*m*x*k*l*b*b*7*1*-;#*#*%* * *Z&Q&P&P&y&r&r&l&l&j&7&6&|&_&_&&&%&`%~&T%C%E%m%H%e%e%7%]%[%-%-%@%+ + + + + + + + + + + + + + b]X+S+9&D+D+C+q+y+n+n+7+2+6+'+'+]+-+.+.+.+.+O.D.D.i.h.i.i.2.g.g.{.~.;.^.^.^.C C V C >.V C C 4.>.V C V 4.C >.V C C V 4.>.V V >.>.V ",
+" c]{ ] ] ] { { { ] { / ^ ] ] { { ] / ^ ] { / { ] { { { { / _ _ _ {.{.!.7.2.r.j.i.i.w.D.D.W.X.W.-+-+'+'+]+<+6+g+7+y+o+q+C+s+D+D++@S+X+@@=@=@=@|@f@f@f@t@y@t@E@M@Q@r#l#$#`@)#)#)#)#3#5#s#7#3#f#f#)$)$u#d]+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+!]~{!]W{~{W{0]a~0]a~&]e]f]L{L{L{L{P=w*v*x*m*l*f*f*7*7*7*}*|*%*&*~* *$*Z&P&P&H&y&r&l&l&t&m&6&c&c&_&2&&&!&`% &T%C%M%D%t%n%e%7%6%]%[%-%.%+ + + + + + + + + + + + + + + g]S+S++@s+D+s+q+7+7+7+7+7+6+5@'+:+.+.+.+X.O.P.w.V.i.h.c.h.c.2.2.{.=.^.[.>.>.V >.C V 4.C C >.C C C V C V V 4.V C C C V 4.C 4.>.C Q# ",
+" #.^ { { { ^ { ^ / { ] ] { { ] { ] { ] ] ] ^ ^ ^ / { { ^ J { l _ !.{.2.7.c.c.i.D.w.D.W.W.W..+.+.+-+-+'+2+<+2+7+7+y+n+q+J+C+s+D+X+X+@@X+V#=@=@f@|@f@t@t@t@E@t@Q@Q@W@W@$#$#`@)#)#}#4#4#5#3#a#f#y#I#T#h]+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&]&]&]&]&]&]i]&]&]&]L{L{2]2]j]P=P=x*x*l*n*g*g*e*b*7*}*H;|*%*~*%* *Z&.*G&F&z&r&I&r&r&j&t&j&7&|&|&_&_&!&~&T% &C%N%C%G%m%e%7%7%f%=%-%-%Z$+ + + + + + + + + + + + + + + k]S+D+D+C+Z#r+s+q+7+2+]+]+:+'+m+'+X.X..+D.{+D.w.v.i.h.i.2.2.2.{.!.T ^.^.W#C V C V V C C >.C C >.>.V V C V C 4.>.C >.C 4.C V V a+ ",
+" C#{ ] ^ / ^ ] / ] / / { ] { { ] / ] { / ^ { ] ] { ] ] / / _ _ _ $.!.{.2.2.j.c.v.w.D.D.D.{+.+W.-+-+'+]+<+2+<+7+2+7+r+s+q+C+C+C+S+S+X+-@=@=@=@7@f@f@f@t@t@t@E@F@Q@Q@W@`@`@$#)#)#)#)#/#4#4#7#3#f#f#E#O&+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~]i]~]i]2]l]2]2]2]2]2]P=[-U*m]l*x*l*g*b*b*f*g*7*}*1*!*~*%*%* * *Z&Z&P&P&y&z&z&S&r&m&j&f&7&c&g&_&_&)&!&`%Z%C%O%O%D%m%e%7%e%7%]%=%@%@%+ + + + + + + + + + + + + + + + /*+@D+C+s+q+n+r+x+7+6+6+6+:+m+-+'+.+W.W.D.D.D.D.i.i.c.c.2.2.7.!.l ~=^.^.C V V C C >.>.C C C C C C V >.>.>.V C V C V C C V C C G# ",
+" n]^ ^ / { ] { ^ / / { / { / { ] ] ] ^ ^ ] { ] ^ { { ] ] ^ _ _ %.!.~.!.2.2.c.i.w.v.x.D.D.D. +X.1+-+-+]+]+<+2+7+7+7+o+x+s+K+C+S+D+X+S+X+X+/@^@|@|@f@s@s@y@t@t@F@F@a%l#Q@$#)#-#/#)#/#4#4#4#7#0#7#7#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w*G*U*o]w*o]U*o]o]o]o]w*m*m*m*f*b*b*b*7*7*7*-;}*1*|*#*&* * *2*Z&L-R&F&y&S&r&l&l&l&e&d&c&**|&_&_&%&!&*&T%T%M%M%E%t%m%e%8%7%[%[%p]|%#%+ + + + + + + + + + + + + + + + L#+@C+s+q+r+x+o+7+7+7+2+<+'+'+1+-+.+.+{+P.D.D.i.h.h.c.c.2.2.~.~.( ^.^.>.>.C V C >.4.>.C >.>.>.>.V V >.>.C V C C 4.>.C V V V B# ",
+" q]{ / ] ^ { { / ] { ^ ] { { ^ ] { ^ { / { / { ^ { / ] _ _ _ _ %.!.{.3.2.c.h.h.x.v.V.D.X. + +$+$+'+-+:+<+]+7+7+7+7+s+q+s+K+D+D++@X+@@@@@@=@=@7@^@f@g@f@t@t@t@F@Q@Q@Q@W@$#-#-#)#)#/#/#/#7#4#a#)#+ + + + + + + + r]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+s]x*t]u]t]s]o]t]s]b*k*b*b*k*7*b*7*7*7*|*H;H;|*%*&*&*&*2* *Z&Z&G&P&z&E&H&r&r&m&l&j&7&6&c&|&_&)&)&`%&& &T%C%O%F%F%m%e%e%8%8%<%-%@%+%Y$+ + + + + + + + + + + + + + + + D+C+C+C+s+o+n+7+7+6+<+2+<+m+1+-+X..+ +O.D.x.V.v.h.h.c.{.{.!.l %.j#^.V >.4.V C C >.4.C C C 4.>.V V 4.C C C V V C C V V V 4.v] ",
+" p#] ] { { / ] / ^ ^ ] { / ] ^ { ^ { ] ^ ^ { { { { { ^ { / ^ l !._ ~.!.7.c.r.h.h.w.x.D.W.X..+.+.+-+'+'+:+<+<+7+7+x+y+s+J+s+D+D+D+S+X+X+@@=@/@/@|@f@|@g@t@y@t@E@F@M@Q@W@$#$#l#`@)#/#)#/#3#3#7#w]+ + + + + + + + x]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+b*b*7*b*b*f*b*b*b*b*c*7*f*b*7*|*}*}*}*}*%*|*%*#*~* *2*Z&Z&Z&P&R&z&z&r&r&l&r&i=j&n&7&g&|&_&3&_&&& &=&T%C%G%C%E%m%m%M{7%6%-%{%@%@%#%y]+ + + + + + + + + + + + + + + + K+s+C+s+n+x+7+7+7+<+<+]+'+'+'+.+.+X.D.P.x.V.h.v.j.j.c.{.{.%.~.=.^.^.>.$$4.C C 4.>.V V C C V C 4.4.V 4.4.C V 4.C V 4.4.V >.k# ",
+" b.{ ^ ] { { ] { ^ { { ^ ^ / { ^ ] / ] { / ^ { ^ ^ { { ] _ _ _ !.{.!.7.c.c.h.j.i.D.D.D.P.W.O.X.$+|+'+'+2+]+g+e+7+7+7+q+s+s+D+C++@X+W+S+x@=@=@7@7@/@f@g@g@s@t@F@E@F@F@Q@W@$#$#)#`@-#/#/#4#4#U%+ + + + + + + z]A]G+G+G+G+G+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+7*7*7*7*7*7*7*7*7*7*}*}*7*|*1*1*~*1*1*&*&* *&*2* *Z&Z&.*G&P&E&H&E&S&r&l&l&j&f&n&6&d&|&1&_&%&)&`%T%Z%C%C%M%E%m%e%e%7%8%]%[%-%|%#%Z$B]C]+ + + + + + + + + + + + + + ^~D+C+C+q+y+x+7+2+<+]+'+]+'+-+-+.+X.W.D.D.D.v.i.h.,@2.l.{.!.%.l D]^.^.4.4.>.V C >.>.V V C C C >.C V C C 4.C C C >.C V V C b. ",
+" $ ] ] { ] { ] ] ] / { { ] ] { ] { ] ] ^ { / ^ { ] { { { _ ^ _ ~.{.{.2.l.2.h.h.h.w.w.D.D.W.X.$+-+-+'+'+<+]+]+e+7+n+s+q+s+s+K++@+@S+W+W+@@=@/@^@/@r@g@t@t@t@t@F@F@Q@Q@Q@$#$#$#6#)#^#/#)#D#E]+ + + + + + + F]`%G+G+G+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+}*|*|*!*}*}*}*|*|*}*}*}*}*|*~*&*#*%*~*&*2* *Z&Z&Z&Z&P&P&H&z&z&I&S&r&t&m&e&7&f&****|&J&&&)&&&`%T%T%C%M%M%G%E%e%e%8%8%[%-%-%@%.%Y$M$P$G]+ + + + + + + + + + + + + + H]K+q+q+s+7+y+<+6+2+<+]+-+'+1+.+X.{+D.D.D.i.h.i.c.i.c.2.{.{.!.#.+.^.>.C C C >.4.C C C V C V V C C 4.>.C 4.C V V V C 4.V I] ",
+" { ^ ] { ^ ] { ] { ] ^ { { { ^ / { { ^ { ^ ^ ] / / ] { J _ _ l $.{.2.2.c.j.j.i.x.w.w.D.P.X..+.+'+-+-+'+<+2+2+7+n+x+o+s+s+Z#D+D++@D+W+x@X+=@/@=@/@f@|@s@g@g@t@t@U@Q@Q@Q@Q@$#W@$#`@/#)#/#J]+ + + + + + + K]T%G+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&*#*~*#*#*1*&*~*#*}*~*1*&*~*~*$*&* * * *$*Z&L]Z&Z&G&P&F&E&z&z&S&l&r&l&l&f&7&d&c&|&|&_&2&!&)&`%*&T%C%C%G%F%m%H%e%M{7%}%-%-%@%@%+%Z$H$I$P$+ + + + + + + + + + + + + + + q+s+s+q+7+7+g+<+6+:+<+'+.+$+X. +X.P.x.D.w.v.r.i.c.2.{.{.~.%.K >.^.C V C C >.C V 4.C >.C C V V 4.V C V V 4.C 4.V >.C V ",
+" 2#{ / { ^ ] { { { / ^ / { / / { { ^ ] { ] { ^ / ] { ] { J _ _ _ l {.7.7.2.c.h.h.K.K.D.W.W.W..+.+$+-+'+]+]+2+7+7+7+n+s+s+C+s+C+S+S++@@@-@-@=@=@r@^@|@f@s@t@t@y@U@E@M@Q@W@W@Q@$#W@`@-#/#+ + + + + + + + M]T%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+ *2*~*~*o* *2*2*~*&* * * * *2* *$*Z& *Z&Z&G&G&R&P&R&P&H&H&r&r&r&l&m&j&e&7&c&c&|&_&_&&&%&!&`%=&T%T%D%E%F%H%m%e%7%}%f%<%-%-%+%.%Y$O$C$C$Q$+ + + + + + + + + + + + + + + + s+n+x+7+7+<+6+]+-+-+1+.+X..+O.W.D.w.x.h.j.r.c.2.l.{.l !.l G.>.4.4.4.C 4.C C C V C C C >.V V V >.>.V V V V 4.>.>.C 2# ",
+" [#{ ^ { / ^ ] ] ] / { ^ { / ] ] { ^ / ] / ] ^ { ^ { =.^ _ _ %.l {.{.2.c.c.c.v.h.K.D.D.X. + +.+X.-+'+'+]+2+2+<+7+y+x+s+q+C+D+D+e@X+S+@@=@X+=@r@r@/@f@R#s@g@g@t@y@F@M@Q@Q@r#r#$#`@`@y@+ + + + + + + + N]N%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Z&$*Z&Z&O] *Z& *2* * *Z&Z&Z&Z&Q&P&Z&.*.*P&P&R&H&z&y&H&r&r&r&m&l&m&j&7&6&c&|&|&2&2&_&)&*&*&T%T%C%F%O%H%E%H%e%7%}%}%[%-%@%@%+%+%M$O$C$C$v$+ + + + + + + + + + + + + + + + + 7+7+e+<+]+:+-+]+1+-+X..+O.W.D.D.x.h.i.c.C.2.{.{.%.{.l F.^.$$C V C 4.C 4.V C >.C C V C V C >.V C V V C C C V C [# ",
+" ]#^ { ^ / { ^ { ] { ^ / { { ] { ^ ] ^ { ] ^ / { ^ / { J _ $.#.%.%.2.c.C.h.i.h.h.v.x.D.W.W.W..+-+'+Z+]+]+]+2+6+7+7+o+q+s+s+C++@D++@S+X+@@=@=@=@/@|@f@f@g@g@s@t@t@F@Q@F@F@Q@H#W@W@4@+ + + + + + + P]t%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+P&L-Q&Z&Z&Z&Z&Z&.*Z&Z&Z&Z&Z&Z&Z&Z&P&F&R&P&y&z&H&r&z&I&l&l&l&m&e&j&j&6&d&g&|&_&2&!&!&)&`%T%T%T%O%C%F%E%m%Q]e%7%7%}%<%=%@%@%.%#%M$C$C$R]v$r$+ + + + + + + + + + + + + + + + + + 2+2+]+<+'+'+-+.+.+.+X.D.D.v.x.i.h.h.2.c.2.{.!.%.$._ j#>.>.>.C V C 4.C >.V >.C >.C C >.C V >.>.C >.C C V C <# ",
+" )./ ^ ] { ] { ] { ^ ] ] ^ { / { ] { { { ] ] { ] { { =._ _ _ l l !.2.7.c.h.i.h.i.D.D.D.{+X.X.X..+'+-+]+6+2+7+7+7+n+q+s+s+s+s+C++@S+D+@@=@=@@@=@/@f@|@f@f@s@g@t@t@E@y@E@Q@Q@W@Q@i++ + + + + + + S]m%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+y&P&R&P&F&G&P&Z&Z&G&G&L-P&F&F&P&G&F&E&y&E&H&S&z&r&S&l&r&l&l&j&e&e&n&6&|&**_&_&_&_&&&~& &=&T%T%O%M%F%m%n%m%e%g%7%<%<%T]@%@%+%+%O$I$I$C$v$w$E$+ + + + + + + + + + + + + + + + + + 2+<+]+]+]+-+1+X..+ +W.D.D.D.i.w.i.i.c.2.{.7.%.%._ ] B B C C >.>.4.C >.C C 4.>.C V V >.V V >.C 4.C V >.C /. ",
+" y { ] ] ] { ^ { / ] { { { { { ] / { { / { / { ] / / { _ _ l !.~.2.2.2.c.j.h.h.x.D.D.D.D.X.X..+1+'+'+'+6+]+7+7+7+7+y+q+J+C+K+C+9&D+X+X+S+=@=@/@r@|@/@f@f@g@s@y@t@t@F@U@Q@W@$#U]+ + + + + + + V]F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+H&H&H&H&R&y&y&z&F&y&H&E&H&E&F&y&z&H&H&H&r&S&S&l&r&l&l&l&l&t&e&f&c&c&**|&_&_&_&2&&&)&`%*&`%T%C%C%N%D%H%H%e%e%e%7%W]W]W]X]Y]+%M$+%O$C$v$Q$v$w$w$Z]+ + + + + + + + + + + + + + + + + <+]+'+)+-+-+.+.+.+D.P.D.D.x.i.i.h.C.c.2.2.{.l _ _ M.>.C C C V C 4.V V C >.>.V >.4.V V 4.>.V V V 4.V C b+ ",
+" =#/ { { { ^ { { { / { ] / ] / { ] { ^ ^ ] ] { { ^ / ^ { _ _ ~.%.!.2.{.2.h.h.w.x.D.w.D.W.D..+X.$+$+-+'+'+<+2+g+7+7+7+q+r+s+C+s+D+C+X+D+W+@@X+@@=@6@=@|@g@f@f@g@t@t@E@y@E@E@Q@`]+ + + + + + + ^F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+r&r&S&r&r&S&r&z&z&z&s&E&z&y&E&r&z&s&r&r&r&r&l&l&l&l&l&l&f&j&f&7&6&**|&|&|&|&3&&&)&!&`%`%T%M%C%M%G%G%m%m%e%e%M{W]W].^.^.^.^+^@^M$O$C$v$v$x$E$j$k$#^+ + + + + + + + + + + + + + + + + ]+]+m+'+'+-+X. +P.W.D.D.v.K.h.j.c.2.{.2.!.#._ _ ] 4.C C 4.V 4.V C V C >.C >.C C 4.V 4.C C >.C >.V C C '# ",
+" ##/ { ^ { ^ ^ ] ^ { ^ ] { ] { { { ^ { { { / { / { { ^ _ _ _ _ {.{.{.c.c.c.i.i.v.i.D.D.D..+.+.+.+-+]+<+6+6+<+g+7+7+7+o+r+s+s+C+D+D+S+@@X+@@=@@@=@^@/@f@f@f@f@t@t@t@t@t@F@Q@+ + + + + + + + $^F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+t&m&l&r&r&r&l&l&l&S&S&r&r&r&l&r&l&l&r&l&m&l&l&j&l&e&j&f&6&j&7&**h*c&|&_&_&_&!&&&%&`%*&Z%T%T%{*F%D%G%m%:&m%e%W]W]W]W].^.^.^.^.^W]W]W]W]v$w$w$k$a$a$%^+ + + + + + + + + + + + + + + + + + '+'+'+-+.+.+P.{+W.x.x.v.v.i.h.2.2.2.!.{.%._ _ T >.C V C C >.C C 4.C >.V C C 4.C 4.V V 4.V >.4.C 4.&^ ",
+" Z@/ { ] { ^ { ^ ^ ^ ] / { { { ^ ^ { ] ] { ] ^ ^ ] ^ ^ _ _ $.!.!.{.l.c.2.j.h.h.h.D.D.W.W..+X.X..+'+'+'+]+]+6+7+7+7+r+q+y+s+C+s+C+C++@X+X+@@X+@@@@/@r@=@f@f@g@f@s@s@E@t@S>+ + + + + + + + ]%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+j&j&j&t&t&m&t&t&l&l&l&l&l&l&l&m&t&j&m&l&j&l&e&e&j&j&f&d&7&|&c&h*|&**_&_&_&&&)&!&%&*&`%T%T%C%C%E%G%G%H%m%e%W]W]W]W]W].^.^.^.^.^.^.^W]W]W]W]*^s$a$a$=^&#+ + + + + + + + + + + + + + + + + + '+'+'+$+X.O.W.D.D.w.K.h.h.i.h.2.7.%.%.%.~._ ] >.>.C >.V 4.V V C >.C C V C C C 4.V V C C 4.C C C -^ ",
+" '$^ ] { ] { { / ] / { ] / { ^ { ] ] { / ^ ] ^ / ^ / ^ _ $._ _ ~.7.!.c.c.i.h.i.x.i.D.W.O.X..+.+.+'+'+<+:+2+7+7+7+7+7+7+s+s+s+C+C+9&X+@@W+W+@@=@/@=@|@^@|@f@|@f@t@s@t@R=+ + + + + + + ;^-%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+c&n&6&j&n&7&f&f&n&n&f&t&f&j&m&f&j&f&j&e&f&7&e&c&d&c&g&6&|&|&|&|&|&_&_&_&3&%&*&%&`%T%=&T%T%M%M%E%D%G%m%e%W]W]W]W]W]W].^.^.^.^.^.^>^>^>^W]W]W]W],^'^)^!^+ + + + + + + + + + + + + + + + + + + + .+.+.+X. +D.D.x.i.i.i.i.h.2.{.{.{.#.l #.=.T C >.C V >.C 4.C C 4.C >.V C V C 4.>.C V C C C V !+ ",
+" ~^] / { ^ { { ^ ] ] ] { / { ^ ] { ^ ] ^ ] / { ] ] { _ _ _ %.!.2.7.l.2.c.c.h.i.i.D.D.D.D.X.X..+'+.+<+]+<+2+g+<+7+7+y+s+7+s+s+K+D+D+D+X+W+@@@@=@=@=@7@/@f@f@t@f@g@g@K&+ + + + + + I={^=%G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+|&|&|&c&|&**|&c&j&c&6&n&7&j&j&e&6&f&c&c&6&d&6&c&c&g&c&|&c&g&|&|&|&2&&&!&%&)&)&`%`%`%T%T%T%C%O%F%E%H%n%]^W]W]W]W]W]W]W].^.^.^.^.^>^>^>^^^>^.^W]W]W].^W]W]+ + + + + + + + + + + + + + + + + + + + + .+.+W.O.D.D.D.i.i.v.c.i.2.2.{.d+{.!.%._ ] 4.>.V C >.C C V V V >.4.V C V >.4.>.V V C C C 4.O ",
+" u.{ ] ] ^ ] ^ ^ ] { { { ^ / ] ] ^ { ] / / { ] / ` J J _ _ !.$.7.2.2.2.h.h.w.i.V.D.D.D.X..+X.-+-+-+'+]+<+6+2+<+7+7+n+o+s+q+J+q+C+D+D+X+X+@@@@=@=@=@/@6@^@f@f@f@t@/^+ + + + + + (^_^@%G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+_&2&_&J&|&|&|&g&|&**|&|&|&6&g&c&7&c&c&**g&6&c&**|&|&|&|&|&|&J&2&_&3&2&&&&&)&`%=&`% &T%C%{*C%F%G%G%H%:^W]W]W]W]W]W]W]W]W]W].^.^>^>^>^>^>^.^>^.^.^W]>^.^W]W]+ + + + + + + + + + + + + + + + + + + + + $+X.D.W.D.w.D.h.c.h.c.c.2.l.!.!.!._ _ =.G.>.>.>.>.4.4.>.>.V V >.>.>.C V C C V >.4.C V C z. ",
+" <^] { ] { { ] ] / ^ { { { ] ] { ^ ^ / { ^ { ] ] { { ^ _ _ !.{.{.2.c.2.c.h.h.w.x.w.O.P.X.W..+-+'+'+'+]+]+]+2+2+2+7+7+7+q+s+s+s+D+D+D+S+X+@@X+@@@@=@=@|@|@/@f@|@+ + + + + + + {^[^}^G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+%&&&!&_&&&3&_&2&_&3&|&_&|&_&|&_&|&|&_&|&|&|&_&_&|&|&J&_&|&_&_&2&&&&&!&&&!&~& &T%`%=&T%T%C%C%C%F%G%n%H%W]W]W]W]W]W]W]W].^.^.^W]W]>^>^>^>^>^.^W].^.^>^>^>^.^.^W]W]+ + + + + + + + + + + + + + + + + + + + .+P.D.D.D.D.V.h.h.j.c.2.2.2.~.{.l _ _ f >.>.>.4.>.>.C V >.4.C >.C 4.C C V C >.C >.>.V n, ",
+" d@^ ] { ] { { ] ] / / ^ ] { ^ ^ / { ] ^ { { { ^ { _ _ _ #.%.!.2.2.2.c.c.h.i.i.D.w.D.W.X.X.X.-+'+-+'+'+'+2+2+<+7+7+y+7+q+s+q+s+C+D+e@X+W+W+=@@@=@>$r@r@|@7@f@+ + + + + + + |^{^1^2^G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+`%~&`%%&`%%&)&)&!&!&&&2&_&_&_&_&_&_&3&2&_&_&_&_&2&_&&&3&&&)&!&`%`%)&)&`%`%3^T%T%T%M%T%M%M%D%D%E%n%W]W]W]W]W].^.^.^.^.^4^5^6^7^8^9^0^a^b^c^d^e^W]W].^.^.^.^.^.^W]+ + + + + + + + + + + + + + + + + + + + P.O.D.D.w.w.h.h.h.c.c.2.{.!.#._ _ _ _ j#V V V C V V C 4.>.>.>.V V 4.4.V C C 4.V 4.4.W ",
+" f^/ { { ] / { ] ^ { { ] ^ ^ / ^ / ] ] { { { { ^ ^ _ _ l #.{.%.!.{.2.r.c.h.h.V.D.V.P.W.W.O.X.X.-+'+:+-+'+<+6+g+2+7+n+s+r+s+q+s+K+D+D+S+S++@@@=@@@@@=@=@6@s++ + + + + + + + + + g^h^G+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+T%Z%*&`%~&`%*&!&)&)&)&)&)&&&%&)&&&3&%&&&!&)&!&!&&&!&)&!&)&%&`%*&`%Z%T%T%T%T%T%T%C%C%C%E%E%E%m%:^]^W]W]W].^.^.^.^.^i^7^j^k^l^+ + + + + + m^n^o^p^q^W].^.^.^.^.^W]W]W]+ + + + + + + + + + + + + + + + + + O.D.D.V.h.h.i.c.2.2.{.7.{.{.l _ _ ^ K V C C V V 4.V V V V 4.C C C 4.4.V >.C C V V p@ ",
+" l@{ ] ] ] ^ { { ^ { / / ^ { { { ^ ^ ] ] / / ] { ^ _ _ _ %.!.{.7.2.c.r.c.c.h.h.V.w.D.W.O.X..+-+l+-+-+'+]+]+2+2+<+7+n+n+r+s+s+s+C+K+D++@X+X+W+S+x@@@=@=@r^+ + + + + + + + + + + s^t^u^@%F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+`%`%`%`%~&&&`%)&!&`%`%`%%&!&!&`%`%T%`%T%`%`%T%T%T%T%O%O%C%C%D%G%H%m%m%m%]^]^W]W]W]W].^.^.^v^w^x^y^W*+ + + + + + + + + + W*m^z^A^B^W].^W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + x.w.v.h.c.c.c.2.{.2.~.l _ _ _ { =.O+V V V V C 4.V V C V C V C >.C >.>.V >.C 4.p@ ",
+" O~{ / { ^ ^ { ] ] ^ ] ] { ] { ^ ^ { ] ] ] { { ] { ^ _ %.{.!.%.{.c.2.c.h.h.i.h.D.D.D.W.W. +.+-+-+-+'+'+6+<+2+2+7+7+7+y+s+s+q+s+J+C+D+X+S+X+X+@@@@x@@@E]+ + + + + + + + + + + + C^D^g^E^F^F+F+F+F+F+8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T%T%T%*&`%T%=&T%`%=&=& &T%`%Z%T%C%C%T%T%C%O%C%N%F%E%F%H%t%H%e%e%]^W]W]W]W]W].^.^.^G^j^y^W*+ + + + + + + + + + + + + + + + H^I^e^W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + w.V.v.h.j.c.c.c.{.{.%.!._ _ _ / T V V C 4.>.C C C C C C C V C V >.C >.C V >.W ",
+" x { ] ^ / ] { / { ^ ^ ^ / ] { { { { ] ] { ] ^ ^ _ _ _ %.l !.{.2.2.2.c.c.i.w.x.D.x.D.P.X.O..+-+-+-+'+'+<+]+g+<+2+7+7+x+7+q+s+C+C+D+C+9&+@D+S+@@S+=@J^+ + + + + + + + + ;@+ + + + + + W]W]W]W]W]W]W][%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T%T%T%T%T%C%-&T%T%T%T%C%C%C%M%C%N%N%O%E%D%E%E%D%m%n%Q]m%W]W]W]W]W]W]W]W]W]W]i^d^K^W*+ + + + + + + + + + + + + + + + + + + + L^0^W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + w.h.i.i.c.2.l.{.{.!.l %._ _ J S ^.C V V 4.C C 4.C V V >.C >.V V >.V V C C B+ ",
+" _+^ ] / { { { ] { ^ ^ { ^ ] { ] { / ] { ] / { ^ ` _ $._ %.#.{.!.2.2.r.i.h.h.x.x.D.D.D.X..+X.l+'+-+'+]+:+2+<+2+2+7+7+q+y+r+n+J+K+C+D+D++@X++@S+@@+ + + + + + M^5+@@|@f@i++ + + + + W]W]W]W]W]W]W]W]W]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M%C%M%O%N%M%C%C%C%C%D%G%O%G%F%G%F%D%n%n%n%m%H%e%:^]^]^W]W]W]W]W]W]W]W]W]W]9^N^y^W*+ + + + + + + + + + + + + + + + + + + + + + m^O^K^P^k^Q^R^W]W]W]W]W]+ + + + + + + + + + + + i.h.r.c.c.2.{.{.!.$._ _ ^ ] _ G.V C V C C C V >.>.V >.V 4.4.C V >.>.C 4.z. ",
+" S^] ] { { { ] { { / { ^ ] / ^ { ] / ] ^ ] ^ { J J _ _ %.~.{.!.{.c.c.c.h.h.K.K.w.D.D.D.X.X..+-+-+'+'+'+-+2+6+e+2+2+7+x+q+o+y+q+C+D+C+D++@D++@X++ T^U^V^@@=@^@/@/@6@^@f@O@+ + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G%G%G%F%E%E%C%G%E%D%D%D%F%G%D%E%D%E%n%:^:^:^:^]^]^W^W]W]W]W]W]W]W]W]W]W]9^+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W*y^W]W]W]W]W]+ + + + + + + + + + + + h.c.2.2.c.!.!.{.%._ _ ^ / U+C C C C >.V C V >.>.C 4.V V >.V C V >.V }@ ",
+" X^/ ] ] ^ ^ ] { ] { ] ] { { / { { { ^ ^ ^ ] ^ / J _ _ _ $.!.2.7.c.2.c.c.v.i.i.D.D.D.P.D. +-+.+X.-+-+'+:+]+2+2+2+7+7+x+7+n+r+s+s+C+s+D+D++@X+X+X+@@@@W+x@@@=@/@=@|@7@7@Y^+ + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]Z^G+G+G+G+G+m%E%t%H%m%m%m%m%n%D%H%H%m%m%m%:^]^]^W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]B^+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W]W]W]W]W]+ + + + + + + + + + + c.c.2.2.{.!.!._ _ _ _ _ ] M 4.4.4.V V C 4.C V 4.>.V >.>.C C >.C C `^ ",
+" /{ ^ { { ^ / ] ^ ^ { ^ { ] { { ^ ] { ^ { / { ^ _ _ _ #.%.~.2.2.2.c.h.h.w.h.v.D.D.D.W.P..+W.-+X.-+'+-+m+<+]+<+6+<+7+7+7+n+x+s+./s+s+C+K+D+X+X++@X+X+@@@@=@=@=@=@=@/@/@+ + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]j^+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W]W]+ + + + + + + + + + + + + l.2.{.~.~._ %.^ _ ^ / j#V C 4.>.C C >.4.4.>.C C >.>.V 4.4.C C '@ ",
+" .@{ / ^ { { / { ^ { ^ ] ] ^ { ^ { ^ { / ] { ` J _ _ _ !.$.%.{.2.{.2.c.j.h.v.x.w.x.D.W.W..+.+$+.+'+'+'+]+]+:+2+g+<+7+7+y+7+n+q+s+s+C+D+Q+C+D+D++@X+W+X+x@=@=@=@@@=@|@+ + + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7.!.!.~.l l _ ^ _ / K V V V C >.>.C >.V C >.V V V C C V V V a' ",
+" J.f ^ / ^ / ^ ] { ^ / { / ^ ] { ^ ] ] / ^ { ^ ^ { ^ _ %.{.%.{.{.{.C.j.c.h.h.h.D.D.W.D.O.X.W..+.+.+$+-+'+]+]+2+7+e+2+7+7+7+s+q+y+s+s+s+D+D+D+D+D+D+S+X+W+S+x@=@@@=@=@+ + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {.%.$.%._ _ _ ` ^ / ..V C >.V 4.V V 4.C C C C V C V V C V G# ",
+" +/] { { ^ ] { ^ ] / ] { ^ / ] / ^ ] { { ] ] J _ _ l {.#.$.{.c.2.c.c.h.i.w.v.i.D.D.D.W.W.O..+$+$+1+'+'+:+]+]+<+]+7+e+7+7+7+q+q+q+s+C+C+s+D+D+D+S++@D+W+X+x@=@@@=@@@+ + + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {.!._ _ _ _ ] { j#V C V 4.V 4.V >.C C >.C >.C V 4.>.@/ ",
+" a { ^ / { { ] ] ^ ^ ] / ] { { { { { ^ / ^ ^ ] ^ _ !.l $.{.2.{.2.2.c.c.c.i.D.w.D.D.D. +X.X. +.+-+-+'+m+:+]+]+2+7+<+e+7+7+7+7+q+s+q+q+C+K+C+K+D+C+D+X+*@S+W+W+X+=@W++ + + + + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ~._ _ ^ ^ ] / s C V V >.4.>.>.V >.V >.V V V 4.V >.#/ ",
+" F / { ] ] { ^ ] ^ { { ^ / / ] ] / ] ] { ^ J { _ _ $.%.l !.7.{.l.2.c.h.i.h.w.w.i.D.D.P.{+ +W.X.X.$+1+'+<+'+'+]+<+2+]+7+7+7+7+7+y+n+q+s+J+s+K+s+C+D+X+D+S+T@S+S+@@@@x@+ + + + + + + + + + + + W]W]W]W]W]W]W]W]W]W]+ W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %._ ^ _ J ^ y S.V >.>.V V C >.4.C >.C V C V C >.Y ",
+" $/F.{ { { { ] / ] { { { / ] { { / ] ^ { / { J _ _ _ ~.l {.!.2.2.2.c.c.i.i.v.x.w.x.D.D.X.X..+.+X.-+-+-+-+]+<+<+2+]+2+<+7+7+7+7+r+o+q+q+s+C+C+D+D+D+9&D+D++@W+X+S+W+@@+ + + + + + + + + + + + + + + + + + + + + + + + W]W]W]W]W]W]+ W]W]W]W]W]W]W]+ W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^ J { { / { G.C >.V 4.>.C C C >.V C C >.V C ,$I+ ",
+" %// ] { / ] { / ] { { { { { ^ { ] { ] ] ^ _ _ _ _ !.~.%.{.l.2.2.,@c.i.i.i.i.D.D.D.D.W.X.X.X.$+.+-+.+-+-+:+<+<+6+2+7+7+7+7+7+q+n+n+r+s+J+q+C+K+D+D+D+C+D++@X+@@@@@@W+@@+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ ^ J { / { L >.V C C C V >.V C >.V V V V 4.&/ ",
+" `.] / / ] ^ { / { ^ ] { { { / ] ] ] ^ ] ^ ^ J _ _ #.l %.{.{.2.2.2.2.j.h.i.V.x.i.D.D.D.W. +X.X..+$+-+'+m+]+'+]+]+f+<+<+7+2+7+7+x+7+7+s+s+s+s+C+q+K+D+D+D+D+D+D+S+T@+@S++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ ^ _ ] ^ ^ s V V C V C V >.>.V C C 4.C 4.4.*/ ",
+" k+^ ] { { { ] { ] { { { { ] { / { { { / { { J _ _ !.!.~.!.!.!.7.2.2.h.v.v.v.K.V.D.D.W.D.O. +.+.+1+$+-+-+-+'+]+<+<+]+e+g+<+7+7+7+n+o+n+s+s+q+q+C+K+s+C+C+D+D+C++@S+S+@@+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + J J ] _ ^ { F.a+C >.C V V V V >.V V V C C C p+ ",
+" 2 ] / { ] / ^ ] ] ] { { { ] { { ^ ^ ^ { ^ ^ _ _ %.!.$.{.2.2.l.2.2.,@h.c.w.h.w.D.w.D.P.X.X..+ +X..+'+'+'+]+]+<+'+<+6+2+7+g+7+7+7+y+7+r+y+s+s+q+s+J+C+D+s+D+D+D+D+D+X+T@+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + j.r.2.c.l.2.!.!._ $.%.$._ _ ^ ] ] ^ ] +.V V C 4.V C C >.C V C C C j+ ",
+" j S ^ ] ^ ^ ] / { ] { { ] { ] ] { / { / ^ / _ _ _ $.{.{.{.{.l.c.c.c.c.h.i.i.w.w.D.D.D.O.O.O.X.W.$+.+$+-+'+-+'+<+]+<+]+g+6+7+7+7+n+n+7+r+o+r+q+s+s+s+q+C+s+C+D+K++@D+D++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .+{+P. +D.D.D.K.D.i.i.c.c.c.r.c.{.{.{.{.%.!._ _ _ _ J { ] { / G.V 4.C C C C 4.C C >.>.C 3=j ",
+" =/{ ^ ^ ^ / ] ^ ^ { { { { / { / ] { / / J _ _ _ {.l !.~.{.2.c.c.h.h.h.i.i.w.D.D.x.D.D.O.W. + +.+.+.+.+'+-+<+'+'+<+<+2+2+g+2+7+7+7+n+7+n+n+n+r+q+q+q+s+J+J+C+D+D+D+C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W.X.W.P.D.x.w.D.V.h.v.i.c.c.c.2.2.{.7.%.%.%.$._ _ / ^ { ] { { L >.>.C V C C V V V >.C C c@ ",
+" -/( / { { ^ { ^ ] { ] { { ] { { ^ ^ { J { / _ _ %.%.!.g${.{.{.2.c.h.h.v.h.h.i.D.V.D.D.W.W.P..+.+-+.+.+-+'+'+<+]+<+]+]+]+f+<+7+2+7+7+7+y+o+q+q+q+q+s+s+q+C+q+q+C+C+J+C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X.D.D.D.D.i.v.w.h.j.2.c.c.2.c.7.{.!.~.!._ _ _ _ / { { ] { { T C V C V C >.4.C 4.>.C `+[+ ",
+" u./ / { { ] / { ^ ] / / ^ { ^ ] / ] ` { ^ _ _ _ _ %.!.{.l.{.2.c.h.i.h.i.V.x.h.D.D.D.D.P.W.X.W..+-+$+'+.+-+'+'+'+<+<+6+<+<+<+<+7+7+2+7+n+r+n+o+y+y+y+o+q+r+q+s+s+q+C+C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X.D.P.D.w.D.i.w.v.j.i.i.c.2.2.{.7.!.!.{.%._ _ _ ^ ^ / { / / / s C V >.V V 4.>.>.C C V z. ",
+" ;/] ] { ^ { { ] ] { { { { { ] / { / ^ { J _ _ _ ~.!.!.!.!.{.2.c.c.i.h.i.h.i.h.w.D.D.O.D.W..+X.X.X.-+$+-+.+-+m+'+'+'+<+'+]+<+e+<+2+2+7+7+7+7+n+n+y+r+o+s+s+s+s+y+C+s+s+s++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X.X.P.W.{+D.D.w.x.h.h.i.h.h.2.2.2.{.2.!.#.%.l _ _ _ ^ ^ { { { ] ] R.4.C V 4.C 4.C >.4.V `+[ ",
+" >/^ { ^ { / ] ^ { { ] { { { ] { ^ ] _ J _ _ _ ~.%.!.{.%.{.2.c.c.2.c.i.c.v.h.w.w.w.D.P.{+P. +.+.+X.-+.+-+1+-+)+'+'+]+]+b@]+]+2+2+2+f+e+2+7+7+n+n+n+y+7+o+r+s+q+q+n+r+q+s+s++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .+.+P.W.O.D.D.D.D.D.w.i.i.h.c.h.r.c.2.{.7.!.{.!.!._ _ J { =./ { { { ^ ,/^.C C >.C V 4.>.V C !+ ",
+" *+d@] ^ ] ^ ] ] ^ ] { { / ^ ] { ] / { ^ ^ _ _ _ {.%.~.{.!.c.l.2.h.c.h.i.~@v.h.v.x.w.D.D.O.X.W..+.+-+$+.+.+-+'+-+'+'+]+'+:+]+]+2+<+2+f+2+7+2+7+7+7+7+7+y+n+x+7+s+y+y+q+q+y+q+q++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X.W.X.W.W.D.D.D.w.w.h.w.h.h.,@c.c.2.{.{.7.!.~.{._ l _ _ J { ^ / { { ] y [.C >.C C C C >.C '/>+ ",
+" )/] ^ { ] ] / { ] { { { / / / { ] ] ] ^ J _ l l !.~.{.{.!.2.2.2.i.c.c.h.v.i.i.w.w.w.D.D.W.W. +W. +X..+.+.+-+-+'+-+Z+]+'+'+<+'+<+]+6+<+e+g+e+e+7+g+7+7+7+7+y+7+n+7+n+n+x+s+q+s++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .+.+W..+ +D.D.W.D.D.D.K.V.D.i.i.c.h.h.c.2.c.2.7.!.~.!.!.!.#._ _ _ _ ^ ^ ] ^ { ] 3 ^.C V >.V >.V >.V !/ ",
+" `.{ ^ { { { ^ { ] ^ ] ] ] { / { ] =.^ _ _ _ l %.%.{.{.{.{.2.c.c.c.i.h.v.i.K.x.h.w.w.D.D.W.W.P. +.+.+$+-+-+-+-+-+-+-+m+'+'+'+<+<+<+<+6+2+7+<+2+e+<+7+7+7+7+7+7+7+7+n+7+y+7+7+q+y+y+x+r++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -+X..+X.X..+X.X.X.W.W.D.w.D.w.i.i.i.h.c.j.c.j.c.l.{.2.{.!.{.%._ _ _ _ =.^ ^ ^ ^ ] { ^ S [.>.V C C 4.V V @+ ",
+" U.] { ^ / { ] { / { / { { { / ] / { ^ J _ _ _ !.!.{.{.{.{.c.c.c.h.c.c.c.i.i.i.V.x.D.D.D.D.{+D..+ +X..+$+-+.+.+-+'+'+]+:+'+'+m+<+]+]+]+2+]+]+g+<+f+e+<+2+f+7+7+e+7+7+7+7+2+7+7+7+7+7+7+7+7+7+7+7+7+7++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + -+.+1+.+.+ +.+W.W.{+O.P.P.D.D.w.x.i.K.h.h.v.i.h.c.c.c.c.7.!.%.{.%.~.!.l _ ^ J { { ] ] { ^ ] K ^.C C C >.>.V ~/ ",
+" N.] ] ] / ^ / { { / { / { { ^ { _ { ^ _ _ _ _ ~.{.!.{.!.l.!.c.c.h.c.i.h.h.h.h.w.w.D.D.D.P.O.D.D.W..+.+-+$+.+-+.+'+-+-+'+m+]+m+]+:+'+'+6+<+]+6+<+<+<+g+2+2+2+<+2+g+2+g+2+2+e+7+7+g+7+2+<+e+7+2+7+6+f+2+2+<+]+<+g+2+<+<+6+]+]+]+<+'+'+]+'+'+'+-+-+'+-+.+X.1+.+.+.+X. +{+{+ +D.D.D.D.x.w.i.x.v.w.h.h.c.c.c.c.2.7.2.{.{.{.~.$.%.$._ J ^ ` { ^ / ] { / ] R.a+C V 4.V >.}. ",
+" {/t { ^ ] { { ^ / ^ / / ] ] { { ^ { _ _ _ _ l %.!.!.!.2.{.{.2.2.2.h.i.h.~@i.h.w.w.D.K.D.D.D..+X.O.D..+.+ + +$+X..+-+$+-+-+-+-+-+'+-+'+<+'+]+'+'+]+6+]+<+<+<+]+6+<+g+<+2+f+<+2+]+g+6+e+g+]+2+6+<+2+6+]+]+2+<+]+:+'+6+]+]+]+'+:+'+-+'+]+'+-+-+1+.+.+.+.+.+-+X..+W.W.D.W.D.D.D.V.D.h.w.h.w.~@h.i.h.c.r.!.2.!.{.2.!.{.{.~.l _ ^ { / { / ] ^ ] { { { m.>.C >.V 4.H.{/ ",
+" ]/t / ] { ] ] ] ] { ^ { / / ] { J ^ _ _ _ l #.%.%.{.2.{.2.c.c.c.c.h.c.i.i.i.i.i.D.v.w.K.D.D.D.X.D.O.W.X..+.+X..+.+.+X.-+-+-+'+'+'+-+'+'+]+:+-+m+'+]+Z+]+'+'+'+]+:+]+]+<+]+]+:+<+'+<+]+b@'+:+]+<+]+'+]+:+:+'+]+]+-+m+]+'+'+'+-+-+-+1+.+-+.+-+X.W. +X.W.D.O.D.P.W.D.D.V.D.x.V.i.i.i.h.c.2.c.c.2.2.7.2.%.!.{.{.l %._ _ ^ { J ] ^ { { ^ { ] ^ M.>.C V >.H.I. ",
+" t.u.^ { / { ^ ] / ] { { ^ { { =.^ ^ J _ _ {.~.!.l !.{.!.{.2.c.2.i.h.h.h.c.i.h.i.h.V.D.D.w.D.W.D.D.P.X.O.X.X.W.X..+.+.+-+.+'+-+'+-+'+-+'+-+-+'+]+'+]+m+'+:+'+:+m+'+'+:+]+'+]+'+-+'+]+]+'+-+'+'+-+]+'+'+'+-+-+-+-+'+-+-+.+.+-+X.$+X..+X. +.+.+X.O.X.W.W.D.D.D.w.x.K.D.v.i.v.i.c.j.h.2.c.7.2.{.{.{.!.{.{._ _ _ ` ^ ^ ^ ] { { { ] { / / L >.V 4.z.A. ",
+" p.{ { ] { { ] ^ { ^ { / { ] { _ _ _ _ _ !._ !.!.!.{.!.7.{.c.c.c.c.h.j.j.i.h.h.w.w.V.V.D.w.D.D.D.D.O..+W.X.W.W..+X.X..+.+X.$+-+-+.+$+|+-+'+.+-+'+'+-+-+'+'+-+'+-+'+-+'+-+'+'+-+'+-+-+'+'+-+|+-+$+-+1+.+.+.+X..+$+.+$+W..+.+D.W.{+P.O.D.D.W.D.D.D.D.w.D.i.w.h.i.i.c.h.c.c.2.l.2.2.{.2.{.$.!.{._ %._ _ ^ { ^ ^ { ] ^ ] ] { ^ y ,#>.C s. ",
+" f.S { { / { ^ { ] ^ ] ] ] { ] J _ _ _ _ $.~._ ~.d+{.!.{.2.2.2.C.c.i.h.c.i.i.h.i.i.h.i.D.D.D.D.D.D.O.W. +O.W.X.X.W.W..+X.$+W.$+.+.+.+$+.+X..+.+'+$+-+.+'+-+-+1+.+'+'+'+.+-+'+-+-+.+.+X.$+X.X..+.+-+.+.+X.W.X..+X..+.+{+X.D.D.D.D.D.D.w.w.h.D.i.h.h.i.h.c.,@c.c.2.c.c.c.7.{.!.!.!.!.l l _ _ _ _ / { ] { ] { ^ { ] ] ^ K [.b+^/ ",
+" e.//] / { ^ ] { ^ { / { ] _ / J { _ _ %._ ~.{.!.~.~.{.{.2.c.c.c.c.c.c.c.c.h.h.h.h.D.w.x.x.D.w.D.D.W.D.D.O.W.W.O.W.X.D. + +X.X..+X.X.X.X.X..+.+X..+-+X.-+X.X.-+-+.+X..+.+X..+.+W.X..+X..+ +X.X.O.X.W.P.W.P.D.D.W.D.D.D.D.x.K.x.D.K.i.x.h.i.c.j.h.h.c.,@c.c.c.l.7.2.{.{.~.$.%.%.%.$.^ _ ^ ^ { { / { { ^ ] ^ { { M.^.e. ",
+" (/_// ] ] ^ { ] ^ ^ { ^ ] ^ J =._ _ l _ _ _ {.{.%.!.{.2.{.2.c.2.,@j.c.c.j.h.i.w.h.i.i.V.w.i.D.D.w.D.D.W.D.D.D.{+P.W.W.P.W.W.W.W.W.X. +X.X.X.{+X..+W.X..+.+W.W..+W..+ +W..+W.P.D.X.{+X..+D.W.D.W.D.W.D.D.D.D.D.x.w.D.D.i.w.h.w.i.i.c.j.c.j.2.h.2.{.{.{.g.!.{.$.#.!._ _ _ _ _ _ ^ { J { ^ ^ ^ ] { / { / S 4&a. ",
+" M#] ^ { / ] / { / / { ] ^ ^ _ _ _ _ $._ ~.!.%.!.{.{.2.!.2.c.2.2.2.c.c.c.h.h.h.i.i.h.i.v.x.v.w.i.D.i.V.D.D.D.D.D.D.O.O.P.W.P.W.W.D.X.W.O.X.W.O.P.X.D.W.D.X.X.O.W.O.{+D.W.W.D.{+D.O.D.D.D.D.D.D.D.D.w.i.D.h.w.i.v.w.i.i.h.h.c.c.c.h.c.{.{.2.7.2.{.!.!.!.l l l _ _ _ J { ^ J ^ ] ^ ] / ] ] ^ { { :/ ",
+" - _+] / / ^ { ^ ^ ] { / { ] ^ _ _ _ _ !.%.!.!.!.!.~.{.!.{.l.{.7.c.r.2.c.c.r.c.v.h.i.i.v.x.w.i.i.i.h.x.i.V.D.x.D.x.D.D.D.D.D.D.D.D. +D.X.O. +O.W.D.D.O.W.D.D.D.D.D.D.D.D.D.D.V.i.D.i.w.v.V.x.D.i.K.v.w.i.i.i.h.h.r.2.2.c.2.2.2.c.{.2.2.{.{.!._ ~.!._ _ _ =.^ _ J { / { { ] / / ^ ] ^ 2$(. ",
+" 0 ).] ] { { ] ] / ^ / ^ / ^ =._ _ _ _ _ l %.%.{.~.{.{.!.{.7.2.c.2.2.h.2.c.c.2.i.h.i.h.i.v.w.i.x.i.w.h.V.w.w.x.w.w.D.w.D.i.D.w.D.D.D.x.D.D.D.D.D.x.V.D.i.D.D.V.i.w.i.h.x.w.h.K.x.h.i.h.v.j.h.i.c.C.j.j.c.c.c.l.c.3.2.7.{.2.7.!.~.!.{.~.~.l _ ^ _ ^ / ^ ^ { { ^ / ] ^ ^ ^ ).0 ",
+" 1 #./ { { { ] / / ^ J =.^ J { _ _ _ _ %.l %.{.!.!.7.2.l.c.{.l.c.2.c.r.c.c.2.j.h.h.c.h.c.h.h.v.h.i.h.h.i.v.h.x.v.x.i.x.v.D.D.w.w.D.x.D.w.K.w.w.D.i.w.i.K.v.v.h.i.v.i.w.h.w.i.h.i.h.i.j.c.c.c.2.c.c.2.2.c.7.{.2.{.~.!.{.!.l _ #._ _ _ _ ^ J =./ / / ] ] { { { g </ ",
+" Y Z ] ^ { { / / { ] ^ / ` _ _ _ %._ %.#._ %.{.{.!.{.7.{.!.2.2.c.2.c.c.c.c.j.r.h.c.j.h.j.i.i.h.c.c.i.i.h.i.h.i.v.h.i.i.x.v.i.i.h.i.w.i.i.h.i.h.i.h.i.h.h.h.i.i.c.h.h.2.i.2.i.c.r.2.7.2.7.2.{.2.l.!.{.{.%.{.%.!.#._ $._ _ ^ _ ^ _ ^ { { ] { { / ^ q]Y ",
+" X O~/ ] ] / ] / ^ / _ ^ _ { _ _ l _ $.!.!.{.#.l {.{.!.2.{.{.!.{.7.2.2.c.c.2.h.c.2.c.,@c.c.c.h.c.j.i.c.c.c.i.h.j.h.c.h.h.c.j.h.c.w.i.h.h.h.c.c.h.i.c.h.2.c.c.i.2.c.{.c.2.2.2.2.{.2.7.!.{.{.{.%.~.!.%.$.!.$._ _ _ ^ ^ =.{ / ] ] ] ] { O~[/ ",
+" G a H { ] ] { ] / { _ ^ _ _ _ _ %._ !.!._ $.%.{.!.{.{.2.{.{.g.7.{.{.2.2.2.2.2.c.2.2.c.c.c.2.c.h.h.c.c.r.C.c.h.h.h.c.C.r.c.h.j.c.2.c.c.2.c.2.2.c.c.{.2.c.2.2.c.{.!.7.{.!.7.!.%.{.!.%.l %._ ~.l $._ _ _ _ / ] ^ ] / ^ ] ( a }/ ",
+" |/1/S { / ] ] { J J ^ _ _ _ _ %.!.%._ !.!.%.l %.!.{.{.!.{.!.{.2.{.2.!.l.2.c.{.2.2.c.c.2.2.c.c.c.2.2.2.c.2.2.2.2.c.c.2.c.2.{.2.c.l.l.{.c.c.7.{.!.{.{.{.%.{.~.~.%.%.$.!.~.$.$._ $._ _ _ { J J J ^ ] { { S 2/3/ ",
+" 4/* t ( { ] ^ { / =./ ^ _ _ _ _ l $.$.$.!.l {.!.!.{.!.!.{.7.{.{.{.{.{.2.{.{.g.{.2.2.{.2.2.{.2.c.{.{.7.2.{.2.2.2.{.2.{.{.!.{.2.7.~.{.g${.{.%.~.%.$.%.!.%._ _ $.~._ _ _ _ J J _ _ _ ^ ^ ^ b t * 5/ ",
+" 6/k 7/{ / ^ =.] J _ ^ / _ _ $._ _ _ _ l _ _ ~.!.!.l !.!.{.~.!.{.{.7.%.{.~.{.~.7.!.g${.!.{.%.~.2.{.{.!.{.!.{.!.!.!.{.{.!.~.!.%.~.$.$.$._ %._ _ _ _ ^ _ _ _ _ _ { ] ^ { #.k 6/ ",
+" i 0 h # ] ` ] ` J ^ J ^ _ _ _ _ _ l $.l _ _ !._ _ l %.~._ #.!.!.l %.{.!.#.~.%.{.!.!.l %.{.~.!.!.~.{.{._ $.%._ %.l {.l %._ l _ _ _ _ _ _ _ J ` _ J b q]h 0 i ",
+" 8/1 2 q]3 =._ ^ _ _ _ ^ _ _ _ _ %._ $.l _ _ #.!.%._ _ $.#.l ~._ !.$.~.$.!.~.!.!.{.%.~.!.!._ _ l _ l _ _ _ _ _ ^ _ ^ / ^ ^ { c.]'1 9/ ",
+" 0/[ ' < %/!.` ^ ^ ^ J ^ _ _ _ _ _ _ _ %.l _ $._ l $._ _ l l l _ _ _ _ _ _ _ _ _ _ ^ _ _ _ ^ ^ ( %.: < ' , > ",
+" 0/a/6/* b/< c/%/x%q]^ J ` ] ] _ ^ _ _ _ _ 3 { ` / ^ {.x%%/_.< b/* #+a/> ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/community/conntrack-tools/PKGBUILD b/community/conntrack-tools/PKGBUILD
new file mode 100644
index 000000000..ae06f501d
--- /dev/null
+++ b/community/conntrack-tools/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 60046 2011-12-03 18:18:50Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Valere Monseur <valere_monseur@hotmail.com>
+# Contributor: Alessandro Sagratini <ale_sagra@hotmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+
+pkgname=conntrack-tools
+pkgver=1.0.0
+pkgrel=3
+pkgdesc='Userspace tools to interact with the Netfilter connection tracking system'
+arch=('i686' 'x86_64')
+url='http://www.netfilter.org/projects/conntrack-tools'
+license=('GPL2')
+depends=('libnetfilter_conntrack')
+backup=('etc/conntrackd/conntrackd.conf')
+source=("http://www.netfilter.org/projects/${pkgname}/files/${pkgname}-${pkgver}.tar.bz2"
+ 'conntrackd.rc'
+ 'conntrackd.conf')
+md5sums=('5add24d4761baf17af630d5627a71752'
+ '619ab1e15837436b47cbdc739d69ee78'
+ '92a7fc6ab5cba5e48cde4cac0ac403b1')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ # initscripts scripts
+ install -D -m 755 conntrackd.rc "$pkgdir/etc/rc.d/conntrackd"
+ install -D -m 644 conntrackd.conf "$pkgdir/etc/conf.d/conntrackd"
+
+ # install empty configuration files
+ install -D -m 644 /dev/null "${pkgdir}/etc/conntrackd/conntrackd.conf"
+
+ # install binaries
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/conntrack-tools/conntrackd.conf b/community/conntrack-tools/conntrackd.conf
new file mode 100644
index 000000000..b90427a49
--- /dev/null
+++ b/community/conntrack-tools/conntrackd.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+DAEMON_OPTIONS='-d'
diff --git a/community/conntrack-tools/conntrackd.rc b/community/conntrack-tools/conntrackd.rc
new file mode 100644
index 000000000..ba1c7ef49
--- /dev/null
+++ b/community/conntrack-tools/conntrackd.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+NAME=conntrackd
+DAEMON=/usr/sbin/conntrackd
+PID=$(pidof -o %PPID $DAEMON)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTIONS && add_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping $NAME daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh noet:
diff --git a/community/converseen/PKGBUILD b/community/converseen/PKGBUILD
new file mode 100644
index 000000000..c324f06d4
--- /dev/null
+++ b/community/converseen/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 60165 2011-12-06 10:42:48Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: archtux <antonio.arias99999 at gmail.com>
+
+pkgname=converseen
+pkgver=0.4.7
+pkgrel=1
+pkgdesc="The batch image converter and resizer"
+arch=('i686' 'x86_64')
+url="http://converseen.sourceforge.net/"
+license=('GPL3')
+depends=('imagemagick' 'qt')
+makedepends=('cmake')
+install=converseen.install
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('d21cb571b268ddf4bcdc395d01c0dc49')
+
+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/converseen/converseen.install b/community/converseen/converseen.install
new file mode 100644
index 000000000..9af7fa81f
--- /dev/null
+++ b/community/converseen/converseen.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/convertlit/PKGBUILD b/community/convertlit/PKGBUILD
new file mode 100644
index 000000000..3cfb61356
--- /dev/null
+++ b/community/convertlit/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59640 2011-11-28 23:08:09Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: gDD (usrgdd | gmail)
+# Contributor: cantabile
+
+pkgname=convertlit
+pkgver=1.8
+pkgrel=5
+pkgdesc="An extractor/converter for .LIT eBooks"
+arch=('i686' 'x86_64')
+url="http://www.convertlit.com/"
+license=('GPL')
+depends=('glibc')
+makedepends=('libtommath')
+source=("http://www.convertlit.com/clit18src.zip")
+md5sums=('d691d4729485fe5d73e3f0937d8fb42e')
+
+build() {
+ cd ${srcdir}/lib
+ make
+
+ cd ../clit18
+ sed -i 's|../libtommath-0.30/|/usr/lib/|' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/clit18
+
+ install -Dm755 clit "$pkgdir/usr/bin/clit"
+}
diff --git a/community/coq/PKGBUILD b/community/coq/PKGBUILD
new file mode 100644
index 000000000..4fd420e77
--- /dev/null
+++ b/community/coq/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: George Giorgidze <giorgidze@gmail.com>
+
+pkgname=coq
+pkgver=8.3pl2
+pkgrel=3
+pkgdesc='Formal proof management system.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://coq.inria.fr/'
+license=('GPL')
+depends=('gtk2')
+makedepends=('ocaml' 'lablgtk2' 'camlp5-transitional' 'netpbm' 'hevea')
+source=("http://coq.inria.fr/distrib/V${pkgver}/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('db415f6c5372f5a443699c62f5affcb4')
+
+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..207f74aec
--- /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' 'mips64el')
+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..2722803ac
--- /dev/null
+++ b/community/couchdb/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 58574 2011-11-15 15:35:36Z 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.2.0
+pkgrel=1git20111115
+pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://couchdb.apache.org"
+license=('APACHE')
+depends=('icu' 'erlang' 'js' '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"
+source=("http://arch.p5n.pp.ru/~sergej/dl/apache-couchdb-$pkgver.git20111115.tar.gz"
+ "rc-script.patch")
+md5sums=('b4236a36a473e3a1c81e7548de194c47'
+ '559b5e1483c3fb3e4327a9c58181a46c')
+
+build() {
+ cd "$srcdir/apache-$pkgname-$pkgver"
+
+ [ -x configure ] || ./bootstrap
+ sed -i 's|-ljs|-lmozjs185|' configure
+ [ -f Makefile ] || ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+ patch etc/init/couchdb <$srcdir/rc-script.patch
+}
+
+package() {
+ cd "$srcdir/apache-$pkgname-$pkgver"
+ 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
+
+ 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..ef7be39df
--- /dev/null
+++ b/community/couchdb/rc-script.patch
@@ -0,0 +1,49 @@
+--- couchdb.orig 2011-11-15 19:06:16.000000000 +0400
++++ couchdb 2011-11-15 19:08:24.000000000 +0400
+@@ -1,4 +1,6 @@
+-#!/bin/sh -e
++#!/bin/bash
++. /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 +31,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
+
+@@ -42,16 +44,14 @@
+ fi
+
+ log_daemon_msg () {
+- # Dummy function to be replaced by LSB library.
+-
+- echo $@
++ stat_busy $@
+ }
+
+ log_end_msg () {
+- # Dummy function to be replaced by LSB library.
+-
+ if test "$1" != "0"; then
+- echo "Error with $DESCRIPTION: $NAME"
++ stat_fail
++ else
++ stat_done
+ fi
+ return $1
+ }
+@@ -66,7 +66,7 @@
+ command="$command $COUCHDB_OPTIONS"
+ fi
+ if test -n "$COUCHDB_USER"; then
+- if su $COUCHDB_USER -c "$command"; then
++ if su $COUCHDB_USER -s /bin/bash -c "$command"; then
+ return $SCRIPT_OK
+ else
+ return $SCRIPT_ERROR
diff --git a/community/courier-authlib/PKGBUILD b/community/courier-authlib/PKGBUILD
new file mode 100644
index 000000000..b4389d8a1
--- /dev/null
+++ b/community/courier-authlib/PKGBUILD
@@ -0,0 +1,68 @@
+# $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=6
+pkgdesc="Authentification library for the courier mailserver(s)"
+arch=(i686 x86_64 'mips64el')
+license=('GPL2')
+url="http://courier-mta.org/authlib/"
+backup=('etc/authlib/authdaemonrc' 'etc/authlib/authldaprc' \
+ 'etc/authlib/authmysqlrc' 'etc/authlib/authpgsqlrc')
+depends=('openssl' 'gdbm' 'perl' 'libtool' 'expect')
+makedepends=('pam' 'expect' 'libldap' 'libmysqlclient' 'postgresql-libs>=8.3.0')
+optdepends=('libmysqlclient' 'libldap' 'postgresql-libs')
+conflicts=('courier-imap-mysql' 'courier-imap-pgsql' 'courier-imap-ldap')
+provides=('courier-imap-mysql' 'courier-imap-pgsql' 'courier-imap-ldap')
+options=(!libtool)
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/project/courier/authlib/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ authdaemond.rc.d)
+md5sums=('411a927d178f783a1e8fab9964ce0dd2'
+ '911ee9f40d70fafc6bb4cc636c5ad531')
+
+build() {
+ #export MAKEFLAGS="-j1"
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --with-db=gdbm \
+ --with-mailuser=courier --with-mailgroup=courier \
+ --with-authpam --with-authpwd --with-authshadow \
+ --with-authldap --with-authmysql --with-authpgsql \
+ --with-authuserdb --with-authcram --with-authdaemon
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ ###############################################################################
+ # post_installation ---- rename the config file and change ownerschip
+ for distfile in ${pkgdir}/etc/authlib/*.dist; do
+ chown 72:72 ${distfile}
+ mv ${distfile} ${pkgdir}/etc/authlib/`basename ${distfile} .dist`
+ done
+ # copy the .schema; mostly refered to as courier.schema -> rename it
+ install -Dm 444 authldap.schema \
+ ${pkgdir}/etc/openldap/schema/courier.schema
+ ###############################################################################
+ # Install daemon, that wraps couriers bashscript
+ install -Dm 755 ${srcdir}/authdaemond.rc.d ${pkgdir}/etc/rc.d/authdaemond
+ chown -R 72:72 ${pkgdir}/var/spool/authdaemon
+ mkdir ${pkgdir}/var/spool/courier
+ chown -R 72:72 ${pkgdir}/var/spool/courier
+ # docs say we can remove .a files after make
+ find ${pkgdir} -name '*\.a' -exec rm -f {} \;
+ # Make libs available to /usr/lib
+ cd $pkgdir/usr/lib
+ for lib in courier-authlib/*.so; do
+ ln -s $lib .
+ done
+}
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..b1f818791
--- /dev/null
+++ b/community/courier-imap/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 60091 2011-12-05 02:57:32Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Committer: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=courier-imap
+pkgver=4.10.0
+pkgrel=1
+pkgdesc="IMAP(s)/POP3(s) Server"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.courier-mta.org/imap/"
+depends=('courier-maildrop>=2.5.0' 'gcc-libs' 'gamin' 'gdbm' 'openssl')
+backup=('etc/courier-imap/imapd.cnf' 'etc/courier-imap/pop3d.cnf' \
+ 'etc/courier-imap/imapd' 'etc/courier-imap/imapd-ssl' \
+ 'etc/courier-imap/pop3d' 'etc/courier-imap/pop3d-ssl'\
+ 'etc/conf.d/courier-imap')
+conflicts=('courier-mta')
+provides=('imap-server' 'pop3-server')
+options=('!libtool')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/project/courier/imap/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ courier-imap.conf.d
+ courier-imap.rc.d
+ imapd.rc.d
+ imapd-ssl.rc.d
+ pop3d.rc.d
+ pop3d-ssl.rc.d)
+md5sums=('2f95c99b9ad1380b9f3ac733ccd741a2'
+ '3e08f017f6c5a52dea28f6f0dbd50b86'
+ '500c37831974f4676b67e650c67a59f6'
+ '6574c8046e44698efa7452c4b445d88e'
+ '437167a58efddc523f25180df284da20'
+ '1be23fb224bde93b23da6e771bd1cf01'
+ 'a326309b02fed3d7226d9aac88add7f2')
+
+# MIGRATION NOTE:
+# In 2012, support for courier-imap.conf.d and courier-imap.rc.d will be removed.
+# Remove those files and this note and also courier-imap.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # fix a tiny bug
+ sed -i -e \
+ 's|--with-authchangepwdir=/var/tmp/dev/null|--with-authchangepwdir=$libexecdir/authlib|' \
+ configure && chmod 755 configure
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/courier-imap \
+ --libexecdir=/usr/lib/courier-imap \
+ --localstatedir=/var/spool/courier-imap \
+ --disable-root-check \
+ --enable-unicode \
+ --enable-workarounds-for-imap-client-bugs \
+ --with-piddir=/var/run/courier \
+ --with-trashquota \
+ --with-db=gdbm \
+ --with-trashquota \
+ --with-mailuser=courier --with-mailgroup=courier
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # cleanup - provided by courier-maildrop
+ rm ${pkgdir}/usr/bin/{deliverquota,maildirmake}
+ rm ${pkgdir}/usr/share/man/man1/maildirmake*
+ rm ${pkgdir}/usr/share/man/man8/deliverquota*
+ find ${pkgdir} -name '*\.a' -exec -rm -f {} \;
+ ###############################################################################
+ # this is what usually "make install-configure" does
+ # *.dist files get rid of "dist"
+ for distfile in ${pkgdir}/etc/courier-imap/*.dist; do
+ mv ${distfile} ${pkgdir}/etc/courier-imap/$(basename ${distfile} .dist)
+ done
+ sed -i 's|TLS_CERTFILE=/usr/share/|TLS_CERTFILE=/etc/courier-imap/|' \
+ ${pkgdir}/etc/courier-imap/*-ssl
+ for pamfile in imap/*.pam; do
+ sed -i "s|/lib/security/||;s|pam_pwdb|pam_unix|" ${pamfile}
+ install -Dm 644 ${pamfile} \
+ ${pkgdir}/etc/pam.d/$(basename ${pamfile} .pam | sed "s/d$//")
+ done
+ # install thingies
+ install -D -m 755 ${srcdir}/courier-imap.rc.d ${pkgdir}/etc/rc.d/courier-imap
+ install -D -m 755 ${srcdir}/imapd.rc.d ${pkgdir}/etc/rc.d/imapd
+ install -D -m 755 ${srcdir}/imapd-ssl.rc.d ${pkgdir}/etc/rc.d/imapd-ssl
+ install -D -m 755 ${srcdir}/pop3d.rc.d ${pkgdir}/etc/rc.d/pop3d
+ install -D -m 755 ${srcdir}/pop3d-ssl.rc.d ${pkgdir}/etc/rc.d/pop3d-ssl
+ install -D -m 644 ${srcdir}/courier-imap.conf.d ${pkgdir}/etc/conf.d/courier-imap
+}
diff --git a/community/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.install b/community/courier-imap/courier-imap.install
new file mode 100644
index 000000000..9046777a7
--- /dev/null
+++ b/community/courier-imap/courier-imap.install
@@ -0,0 +1,16 @@
+post_upgrade() {
+ echo "Please migrate to the new daemon format:"
+ echo "/etc/rc.d/courier-imap has been split into separate daemons:"
+ echo " imapd, imads-ssl, pop3d, pop3d-ssl"
+ echo "This elimates the need for /etc/conf.d/courier-imap"
+ echo "Update your /etc/rc.conf and manually add the desired daemons. Make sure"
+ echo "you first start authdaemond before any other of these daemons."
+ echo "Example prior to this change:"
+ echo " DAEMONS=( ... courier-imap ...)"
+ echo "Example after this change:"
+ echo " DAEMONS=( ... authdaemond imapd imapd-ssl pop3d pop3d-ssl ... )"
+ echo "This allows better control over the daemons and will generate"
+ echo "correct entries in /run/daemons"
+ echo "An old configuration will keep working but please do migrate in time"
+ echo "as support for this will be removed some time in 2012."
+}
diff --git a/community/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..8876fe401
--- /dev/null
+++ b/community/courier-imap/courier-imap.rc.d
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+CI_DAEMONS=
+[ -f /etc/conf.d/courier-imap ] && . /etc/conf.d/courier-imap
+[ -z $AUTO_AUTHDAEMON_LAG ] && AUTO_AUTHDAEMON_LAG=2
+[ -z $AUTO_AUTHDAEMON ] && AUTO_AUTHDAEMON="false"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond start
+ sleep ${AUTO_AUTHDAEMON_LAG}
+ fi
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Starting Courier ${daemon}"
+ /usr/lib/courier-imap/${daemon}.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $daemon
+ stat_done
+ fi
+ done
+ ;;
+ stop)
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Stopping Courier ${daemon}"
+ /usr/lib/courier-imap/$daemon.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $daemon
+ stat_done
+ fi
+ done
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond stop
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/courier-imap/imapd-ssl.rc.d b/community/courier-imap/imapd-ssl.rc.d
new file mode 100644
index 000000000..6730d452c
--- /dev/null
+++ b/community/courier-imap/imapd-ssl.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd-ssl"
+ /usr/lib/courier-imap/imapd-ssl.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd-ssl"
+ /usr/lib/courier-imap/imapd-ssl.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/courier-imap/imapd.rc.d b/community/courier-imap/imapd.rc.d
new file mode 100644
index 000000000..867b52b78
--- /dev/null
+++ b/community/courier-imap/imapd.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd"
+ /usr/lib/courier-imap/imapd.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd"
+ /usr/lib/courier-imap/imapd.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/courier-imap/pop3d-ssl.rc.d b/community/courier-imap/pop3d-ssl.rc.d
new file mode 100644
index 000000000..aab0f6a95
--- /dev/null
+++ b/community/courier-imap/pop3d-ssl.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d-ssl"
+ /usr/lib/courier-imap/pop3d-ssl.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d-ssl"
+ /usr/lib/courier-imap/pop3d-ssl.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/courier-imap/pop3d.rc.d b/community/courier-imap/pop3d.rc.d
new file mode 100644
index 000000000..7b73c5a7a
--- /dev/null
+++ b/community/courier-imap/pop3d.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d"
+ /usr/lib/courier-imap/pop3d.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d"
+ /usr/lib/courier-imap/pop3d.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community/courier-maildrop/PKGBUILD b/community/courier-maildrop/PKGBUILD
new file mode 100644
index 000000000..8988afeee
--- /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.5
+pkgrel=1
+pkgdesc="mail delivery agent - procmail like but nicer syntax"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://courier-mta.org/maildrop/"
+depends=('courier-authlib>=0.63.0' 'gamin' 'pcre' 'gdbm')
+conflicts=('courier-mta')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/courier/${_srcname}/${pkgver}/${_srcname}-${pkgver}.tar.bz2)
+md5sums=('5d71455ab26096ecf4f624fbee0320cb')
+
+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..45249a6f8
--- /dev/null
+++ b/community/courier-mta/PKGBUILD
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 75460 2010-04-01 16:56:22Z giovanni $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+# ----------- NOTE TO ALL USERS ------------
+# Go read http://www.courier-mta.org/install.html b4 running or building courier
+
+pkgname=courier-mta
+pkgver=0.67.0
+pkgrel=1
+pkgdesc="IMAP(s)/POP3(s) and SMTP Server with ML-manager, webmail and webconfig"
+arch=(i686 x86_64 'mips64el')
+license=('GPL2')
+backup=('etc/courier/imapd.cnf' 'etc/courier/pop3d.cnf' \
+ 'etc/courier/imapd' 'etc/courier/imapd-ssl' \
+ 'etc/courier/pop3d' 'etc/courier/pop3d-ssl' \
+ 'etc/courier/courierd' 'etc/courier/sqwebmaild' \
+ 'etc/courier/esmtpd' 'etc/courier/esmtpd-ssl' \
+ 'etc/courier/esmtpd.cnf' 'etc/courier/esmtpd-msa' \
+ 'etc/courier/webadmin/password' 'etc/courier/esmtpauthclient' \
+ 'etc/conf.d/courier-mta')
+url="http://courier-mta.org"
+depends=('courier-authlib>=0.63.0' 'gamin' 'gcc-libs' 'gdbm' 'pcre' 'mime-types' 'ca-certificates')
+optdepends=('libldap')
+makedepends=('apache>=2.2.9-3' 'pam>=1.0.1-2' 'expect' 'gnupg' 'libldap' 'gamin')
+provides=('smtp-server' 'smtp-forwarder' 'imap-server' 'pop3-server' 'courier-imap' 'courier-maildrop')
+conflicts=('courier-imap' 'smtp-forwarder' 'smtp-server' 'imap-server' 'courier-maildrop' 'ucspi-tcp')
+options=('!libtool')
+install=courier-mta.install
+source=(http://downloads.sourceforge.net/project/courier/courier/${pkgver}/courier-${pkgver}.tar.bz2
+ courier.rc.d
+ courier-mta.rc.d
+ courier-mta.conf.d
+ esmtpd.rc.d
+ esmtpd-ssl.rc.d
+ esmtpd-msa.rc.d
+ imapd.rc.d
+ imapd-ssl.rc.d
+ pop3d.rc.d
+ pop3d-ssl.rc.d
+ webmaild.rc.d)
+md5sums=('c2e26499f9f48577aa7a0735f5e96997'
+ '9055ba622efd37603186ce1f37277224'
+ '5cbeb5c323706058e545f74ad7752ebe'
+ 'f3ff70b40c7a1f7a017e8c4cc4d92f4f'
+ 'caabce8c7b66296b602316aa5af5d4c5'
+ '1c8b1b66ebafa4ff09ffc0106a9dc82c'
+ 'dae6c7d5ff0cce0fba5729fedf2a9051'
+ 'd0cc5eab5d3e0ec33dadd0392421f63e'
+ '5873a96aa149edda281730010fb4db34'
+ 'faa09e06a5dc41ee89ab1f8fa6886b63'
+ '520501daa66c0a94f2e9844ce4919a09'
+ '33a93f400c3e87bcd207295b7d7333ca')
+
+# MIGRATION NOTE:
+# In 2012, support for courier-mta.conf.d and courier-mta.rc.d will be removed.
+# Remove those files and this note and also courier-mta.install
+
+build() {
+ cd ${srcdir}/courier-${pkgver}
+
+ # fix a tiny bug
+ sed -i -e \
+ 's|--with-authchangepwdir=/var/tmp/dev/null|--with-authchangepwdir=$libexecdir/authlib|' \
+ configure && chmod 755 configure
+
+ # courier is more about configuring than compiling :-), lets start the mess
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/courier \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var/spool/courier \
+ --disable-root-check \
+ --enable-unicode \
+ --enable-workarounds-for-imap-client-bugs \
+ --enable-mimetypes=/etc/mime.types \
+ --with-piddir=/var/run/courier \
+ --with-locking-method=lockf \
+ --with-trashquota \
+ --with-db=gdbm \
+ --with-trashquota \
+ --with-random=/dev/urandom --without-ispell \
+ --with-mailuser=courier --with-mailgroup=courier \
+ --with-certdb=/etc/ssl/certs/
+ make
+}
+
+package() {
+ cd ${srcdir}/courier-${pkgver}
+
+ #chown mail.mail ${pkgdir}/var/spool/courier
+ make DESTDIR=${pkgdir} install
+ # docs say we can get rid of those after make
+ find ${pkgdir} -name '*\.a' -exec -rm -f {} \;
+ # install the perftest-script for testings
+ install -Dm755 courier/perftest1 ${pkgdir}/usr/lib/courier/perftest1
+ ###############################################################################
+ # this is what usually "make install-configure" does
+ # *.dist files get rid of "dist"
+ for distfile in ${pkgdir}/etc/courier/*.dist; do
+ mv ${distfile} ${pkgdir}/etc/courier/$(basename ${distfile} .dist)
+ done
+ # install pam files according to the layout used in Archlinux
+ for pamfile in ${pkgdir}/etc/courier/*.authpam; do
+ sed -i 's|/lib/security/pam_pwdb\.so|pam_unix.so|' ${pamfile}
+ #echo "password required pam_unix.so" >> $pamfile
+ install -Dm 644 ${pamfile} \
+ ${pkgdir}/etc/pam.d/$(basename ${pamfile} .authpam | sed "s/d$//")
+ rm -f ${pamfile}
+ done
+
+ ###############################################################################
+ # Arch Linux specific tweaks to make things easier for the user
+ # create passwordfile for webadmin -> standard archwebadmin
+ sed -i 's|/etc/courier/webadmin/password|$(DESTDIR)/etc/courier/webadmin/password|g' Makefile
+ yes "archwebadmin" | make DESTDIR=${pkgdir} install-webadmin-password
+ # arch specific scripts
+ install -Dm 644 ${srcdir}/${pkgname}.conf.d ${pkgdir}/etc/conf.d/courier-mta
+ install -Dm 755 ${srcdir}/${pkgname}.rc.d ${pkgdir}/etc/rc.d/courier-mta
+ install -D -m 755 ${srcdir}/courier.rc.d ${pkgdir}/etc/rc.d/courier
+ install -D -m 755 ${srcdir}/imapd.rc.d ${pkgdir}/etc/rc.d/imapd
+ install -D -m 755 ${srcdir}/imapd-ssl.rc.d ${pkgdir}/etc/rc.d/imapd-ssl
+ install -D -m 755 ${srcdir}/pop3d.rc.d ${pkgdir}/etc/rc.d/pop3d
+ install -D -m 755 ${srcdir}/pop3d-ssl.rc.d ${pkgdir}/etc/rc.d/pop3d-ssl
+ install -D -m 755 ${srcdir}/esmtpd.rc.d ${pkgdir}/etc/rc.d/esmtpd
+ install -D -m 755 ${srcdir}/esmtpd-ssl.rc.d ${pkgdir}/etc/rc.d/esmtpd-ssl
+ install -D -m 755 ${srcdir}/esmtpd-msa.rc.d ${pkgdir}/etc/rc.d/esmtpd-msa
+ install -D -m 755 ${srcdir}/webmaild.rc.d ${pkgdir}/etc/rc.d/webmaild
+ #install -Dm 655 ${srcdir}/courier-webmail-cleancache.cron.hourly \
+ # ${pkgdir}/etc/cron.hourly/courier-webmail-cleancache
+ # bug http://bugs.archlinux.org/task/5154
+ find ${pkgdir}/usr/lib -name '*\.a' -exec rm -f {} \;
+ # fixing some permissions
+ chown -R courier:courier ${pkgdir}/usr/lib/courier/modules
+ rm -r ${pkgdir}/var/run
+ #chown -R courier:courier ${pkgdir}/var/run/courier
+ chown root:root ${pkgdir}/usr/{.,bin,lib,sbin,share}
+ # make a link to /usr/sbin/sendmail
+ install -dm 755 ${pkgdir}/usr/sbin
+ cd ${pkgdir}/usr/sbin
+ ln -s ../bin/sendmail ./sendmail
+}
diff --git a/community/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..e835e3efd
--- /dev/null
+++ b/community/courier-mta/courier-mta.install
@@ -0,0 +1,61 @@
+# arg 1: the new package version
+post_install() {
+ cat << EOM
+ --> if you are using LDAP services to provide lookup in sqwebmail or aliases
+ --> then you have to install:
+ libldap
+EOM
+ # create the *.dat files
+ makealiases
+ makesmtpaccess
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+ echo "Please migrate to the new daemon format:"
+ echo "/etc/rc.d/courier-imap has been split into separate daemons:"
+ echo " imapd, imads-ssl, pop3d, pop3d-ssl"
+ echo "This elimates the need for /etc/conf.d/courier-imap"
+ echo "Update your /etc/rc.conf and manually add the desired daemons. Make sure"
+ echo "you first start authdaemond before any other of these daemons."
+ echo "Example prior to this change:"
+ echo " DAEMONS=( ... courier-mta ...)"
+ echo "Example after this change:"
+ echo " DAEMONS=( ... authdaemond courier esmtpd esmtpd-ssl imapd imapd-ssl"
+ echo " pop3d pop3d-ssl webmaild ... )"
+ echo "This allows better control over the daemons and will generate"
+ echo "correct entries in /run/daemons"
+ echo "An old configuration will keep working but please do migrate in time"
+ echo "as support for this will be removed some time in 2012."
+}
+
+
+pre_remove() {
+ # manual backup, since courier is always processing the whole directory
+ # - so it would process "system" AND "system.pacsave" -> bad
+ [ ! -d /etc/courier/_backup ] && mkdir /etc/courier/_backup
+ cp /etc/courier/aliases/system /etc/courier/_backup/aliases.system
+ cp /etc/courier/smtpaccess/default /etc/courier/_backup/smtpaccess.default
+ cat << EOM
+ --> the /etc/courier/aliases/system and the /etc/courier/smtpaccess/default
+ --> files have been backed up to /etc/courier/_backup since the *.pacsave
+ --> files cannot stay in place. Read about couriers alias handling from the
+ --> documentation!
+EOM
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/community/courier-mta/courier-mta.rc.d b/community/courier-mta/courier-mta.rc.d
new file mode 100644
index 000000000..416946a5a
--- /dev/null
+++ b/community/courier-mta/courier-mta.rc.d
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/courier-mta ] && . /etc/conf.d/courier-mta
+[ -z $AUTO_AUTHDAEMON_LAG ] && AUTO_AUTHDAEMON_LAG=2
+[ -z $AUTO_AUTHDAEMON ] && AUTO_AUTHDAEMON="false"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond start
+ sleep ${AUTO_AUTHDAEMON_LAG}
+ fi
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Starting Courier ${daemon}"
+ /usr/sbin/${daemon} start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $daemon
+ stat_done
+ fi
+ done
+ ;;
+ stop)
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Stopping Courier ${daemon}"
+ /usr/sbin/${daemon} stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $daemon
+ stat_done
+ fi
+ done
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond stop
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/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/courier-mta/courier.rc.d b/community/courier-mta/courier.rc.d
new file mode 100644
index 000000000..7c581a24a
--- /dev/null
+++ b/community/courier-mta/courier.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier daemon"
+ /usr/sbin/courier start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon courier
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier daemon"
+ /usr/sbin/courier stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon courier
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/esmtpd-msa.rc.d b/community/courier-mta/esmtpd-msa.rc.d
new file mode 100644
index 000000000..31458aca8
--- /dev/null
+++ b/community/courier-mta/esmtpd-msa.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier esmtpd-msa"
+ /usr/sbin/esmtpd-msa start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esmtpd-msa
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier esmtpd-msa"
+ /usr/sbin/esmtpd-msa stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esmtpd-msa
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/esmtpd-ssl.rc.d b/community/courier-mta/esmtpd-ssl.rc.d
new file mode 100644
index 000000000..2a13be03f
--- /dev/null
+++ b/community/courier-mta/esmtpd-ssl.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier esmtpd-ssl"
+ /usr/sbin/esmtpd-ssl start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esmtpd-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier esmtpd-ssl"
+ /usr/sbin/esmtpd-ssl stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esmtpd-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/esmtpd.rc.d b/community/courier-mta/esmtpd.rc.d
new file mode 100644
index 000000000..dbaa9d680
--- /dev/null
+++ b/community/courier-mta/esmtpd.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier esmtpd"
+ /usr/sbin/esmtpd start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esmtpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier esmtpd"
+ /usr/sbin/esmtpd stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esmtpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/imapd-ssl.rc.d b/community/courier-mta/imapd-ssl.rc.d
new file mode 100644
index 000000000..3dc74cfdf
--- /dev/null
+++ b/community/courier-mta/imapd-ssl.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd-ssl"
+ /usr/sbin/imapd-ssl start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd-ssl"
+ /usr/sbin/imapd-ssl stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/imapd.rc.d b/community/courier-mta/imapd.rc.d
new file mode 100644
index 000000000..8bce59f6c
--- /dev/null
+++ b/community/courier-mta/imapd.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd"
+ /usr/sbin/imapd start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd"
+ /usr/sbin/imapd stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/pop3d-ssl.rc.d b/community/courier-mta/pop3d-ssl.rc.d
new file mode 100644
index 000000000..6e7ae4e12
--- /dev/null
+++ b/community/courier-mta/pop3d-ssl.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d-ssl"
+ /usr/sbin/pop3d-ssl start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d-ssl"
+ /usr/sbin/pop3d-ssl stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/pop3d.rc.d b/community/courier-mta/pop3d.rc.d
new file mode 100644
index 000000000..25f8379ba
--- /dev/null
+++ b/community/courier-mta/pop3d.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d"
+ /usr/sbin/pop3d start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d"
+ /usr/sbin/pop3d stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/courier-mta/webmaild.rc.d b/community/courier-mta/webmaild.rc.d
new file mode 100644
index 000000000..835cc2bf0
--- /dev/null
+++ b/community/courier-mta/webmaild.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier webmaild"
+ /usr/sbin/webmaild start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon webmaild
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier webmaild"
+ /usr/sbin/webmaild stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon webmaild
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/cppcheck/PKGBUILD b/community/cppcheck/PKGBUILD
new file mode 100644
index 000000000..494b709c0
--- /dev/null
+++ b/community/cppcheck/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 60373 2011-12-12 11:44:22Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=cppcheck
+pkgver=1.52
+pkgrel=1
+pkgdesc="A tool for static C/C++ code analysis"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cppcheck.wiki.sourceforge.net/"
+license=('GPL')
+depends=('pcre')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('56cc54f9d0af41dcfee5560e897fd3e1357712bc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/cpuburn/PKGBUILD b/community/cpuburn/PKGBUILD
new file mode 100644
index 000000000..1f99ca267
--- /dev/null
+++ b/community/cpuburn/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Filip Wojciechowski, filip at loka dot pl
+
+pkgname=cpuburn
+pkgver=1.4a
+pkgrel=2
+pkgdesc="CPU testing utilities in optimized assembler for maximum loading of CPUs"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://launchpad.net/ubuntu/+source/cpuburn/"
+license=('GPL')
+depends=()
+source=(https://launchpad.net/ubuntu/+archive/primary/+files/cpuburn_$pkgver.orig.tar.gz
+ cpuburn.patch)
+md5sums=('a9e1df40c660324eb08e91847cbc41b9'
+ 'f3c77db7592ac02ee83958f07ceb8986')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ 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..6cebcda00
--- /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' 'mips64el')
+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..52d6fe97d
--- /dev/null
+++ b/community/critter/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 57886 2011-11-04 08:24:44Z lcarlier $
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Maintainer: Daniel J Griffiths <griffithsdj@archlinux.us>
+
+pkgname=critter
+_origname=CriticalMass
+pkgver=1.0.2
+pkgrel=5
+pkgdesc="Critical Mass (aka Critter) is an SDL/OpenGL space shoot'em up game"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/criticalmass"
+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 ${srcdir}/$_origname-${pkgver}
+
+ patch -Np1 -i ../critter-gcc43.patch
+ sed -i 's|-lpng12|-lpng|g' configure
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/$_origname-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 critter.png ${pkgdir}/usr/share/pixmaps/critter.png
+ install -Dm644 ../critter.desktop \
+ ${pkgdir}/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/cross-arm-elf-binutils/PKGBUILD b/community/cross-arm-elf-binutils/PKGBUILD
new file mode 100644
index 000000000..743787974
--- /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 'mips64el')
+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..a7140315f
--- /dev/null
+++ b/community/cross-arm-elf-gcc-base/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 46060 2011-05-03 09:42:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-elf-gcc-base
+pkgver=4.6.0
+pkgrel=1
+pkgdesc="The GNU Compiler Collection"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'LGPL')
+url="http://gcc.gnu.org"
+depends=('cross-arm-elf-binutils' 'libmpc' 'libelf')
+options=(!libtool !emptydirs zipman docs !strip)
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-core-${pkgver}.tar.bz2)
+md5sums=('b1957f3209080b2f55bc3756d3a62b7c')
+
+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
+}
+
+package() {
+ cd $srcdir/gcc-$pkgver/build
+
+ export CFLAGS="-O2 -pipe"
+ export CXXFLAGS="-O2 -pipe"
+
+ 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..31b880376
--- /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 'mips64el')
+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..28afeba12
--- /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 'mips64el')
+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..503b4e483
--- /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 'mips64el')
+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..0ec08aafd
--- /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 'mips64el')
+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..669408bb8
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-gcc-base/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 50658 2011-06-29 11:37:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-gcc-base
+pkgver=0.59.1
+pkgrel=3
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64 'mips64el')
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc' 'mpfr' 'cloog')
+makedepends=(cross-arm-wince-cegcc-binutils)
+source=(http://arch.p5n.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..4185152dc
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-gcc/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 45499 2011-04-22 14:57:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-gcc
+pkgver=0.59.1
+pkgrel=3
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64 'mips64el')
+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.p5n.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
+
+ [ -f Makefile ] || ../gcc-4.4.0/configure \
+ --prefix=${_prefix} \
+ --exec-prefix=${_prefix} \
+ --bindir=${_prefix}/bin \
+ --target=$TARGET \
+ --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
+
+ make
+ make DESTDIR=$pkgdir install
+ 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..d40d22404
--- /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 'mips64el')
+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..ab4e1f494
--- /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 'mips64el')
+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..ee7d1e6e4
--- /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 'mips64el')
+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..abd8c329b
--- /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 'mips64el')
+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..c3a11e47d
--- /dev/null
+++ b/community/csfml/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 56326 2011-10-05 16:28:36Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=csfml
+
+_git=true
+
+if [[ "${_git}" = "true" ]]; then
+ pkgver=1.99.git20110917
+fi
+
+pkgrel=1
+pkgdesc='C bindings for sfml'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.sfml-dev.org/'
+license=('zlib')
+depends=('sfml')
+makedepends=('git' 'cmake' 'doxygen')
+
+_gitroot='https://github.com/LaurentGomila/CSFML.git'
+_gitname='CSFML'
+
+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
+ cd $_gitname
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ cp -r "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ mkdir build && cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .. \
+ -DBUILD_DOC=true
+ make
+ make doc
+}
+
+package() {
+ cd "$srcdir/$_gitname-build/build/"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 ../license.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ make clean
+}
+
diff --git a/community/ctpl/PKGBUILD b/community/ctpl/PKGBUILD
new file mode 100644
index 000000000..0c797fec9
--- /dev/null
+++ b/community/ctpl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60598 2011-12-14 19:59:50Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Patrick Melo <patrick@patrickmelo.eti.br>
+pkgname=ctpl
+pkgver=0.3.3
+pkgrel=3
+pkgdesc="Template engine library written in C"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ctpl.tuxfamily.org/"
+license=('GPL')
+depends=('glib2')
+options=(!libtool)
+source=("http://download.tuxfamily.org/ctpl/releases/$pkgname-$pkgver.tar.gz")
+sha256sums=('7da73e7d8f10d222f5685b8eb80541d7e4d342aa74673039692fa5c4e8b120a7')
+
+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/cuetools/PKGBUILD b/community/cuetools/PKGBUILD
new file mode 100644
index 000000000..e7c28db65
--- /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' 'mips64el')
+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..606685173
--- /dev/null
+++ b/community/cuneiform/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 55513 2011-09-13 21:33:06Z ebelanger $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Maxim Vuets <maxim.vuets@gmail.com>
+
+pkgname=cuneiform
+pkgver=1.1.0
+_dpkgver=1.1
+pkgrel=2
+pkgdesc="Linux port of an OCR system developed in Russia. Supports more than 20 languages."
+arch=('i686' 'x86_64' 'mips64el')
+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=('09fd160cdfc512f26442a7e91246598d')
+
+_SRC_ROOT="${srcdir}/${pkgname}-linux-${pkgver}"
+
+build() {
+ cd "${_SRC_ROOT}"
+ sed -i 's#lib64#lib#' install_files.cmake
+ mkdir builddir
+ cd builddir
+
+ cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd "${_SRC_ROOT}"/builddir
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 "${_SRC_ROOT}/cuneiform_src/Kern/license.txt" \
+ "${pkgdir}/usr/share/licenses/cuneiform/license.txt"
+}
diff --git a/community/cupsddk/PKGBUILD b/community/cupsddk/PKGBUILD
new file mode 100644
index 000000000..bdb357087
--- /dev/null
+++ b/community/cupsddk/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 59197 2011-11-21 14:56:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'cups')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!emptydirs')
+source=(http://ftp.easysw.com/pub/cupsddk/$pkgver/$pkgname-$pkgver-source.tar.bz2)
+md5sums=('3ec52813bf12bf9b34d34f8a81bab508')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ sed -i '1,1i#include <cups/ppd.h>' ppdc/ppdmerge.cxx
+ sed -i 's|mkdir images|mkdir -p images|' cups/Makefile*
+ make
+ make bindir=$pkgdir/usr/bin \
+ datadir=$pkgdir/usr/share \
+ docdir=$pkgdir/usr/share/cupsddk \
+ mandir=$pkgdir/usr/share/man \
+ prefix=$pkgdir/usr \
+ CUPS_DATADIR=$pkgdir/`cups-config --datadir` \
+ CUPS_SERVERBIN=$pkgdir/`cups-config --serverbin` \
+ install
+
+ 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..722cd9659
--- /dev/null
+++ b/community/curlftpfs/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 53536 2011-08-05 12:01:25Z 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=3
+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' 'mips64el')
+source=(http://downloads.sourceforge.net/sourceforge/curlftpfs/$pkgname-$pkgver.tar.gz
+ ioerror.patch)
+md5sums=('b452123f755114cd4461d56c648d9f12'
+ '7a8db686293463ba3148c7032871c883')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < "$srcdir/ioerror.patch"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/curlftpfs/ioerror.patch b/community/curlftpfs/ioerror.patch
new file mode 100644
index 000000000..6ca1afb4f
--- /dev/null
+++ b/community/curlftpfs/ioerror.patch
@@ -0,0 +1,11 @@
+--- curlftpfs-0.9.2.orig/ftpfs.c 2008-04-30 03:05:47.000000000 +0400
++++ curlftpfs-0.9.2.orig/ftpfs.c 2011-01-20 20:33:38.000000000 +0300
+@@ -503,7 +503,7 @@ static void *ftpfs_write_thread(void *da
+
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1);
+- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1);
++ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, (curl_off_t)-1);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 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..010919ae2
--- /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' 'mips64el')
+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..b1d1a20fa
--- /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' 'mips64el')
+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/cwiid/PKGBUILD b/community/cwiid/PKGBUILD
new file mode 100644
index 000000000..044545eb6
--- /dev/null
+++ b/community/cwiid/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 53971 2011-08-10 19:27:06Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Wieland Hoffmann <the_mineo@web.de>
+# Contributor: Birger Moellering <bmoellering@googlemail.com>
+
+pkgname=cwiid
+pkgver=0.6.00
+pkgrel=9
+pkgdesc="Linux Nintendo Wiimote interface"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://abstrakraft.org/cwiid"
+depends=('bluez' 'gtk2' 'python2')
+makedepends=('flex' 'bison')
+license=('GPL')
+install=cwiid.install
+source=("http://abstrakraft.org/cwiid/downloads/$pkgname-$pkgver.tgz"
+ 'bluez4.patch')
+md5sums=('8d574afdeedc5e5309c87a72d744316a'
+ '19b288723d1f2b97a3e5288ab9de3313')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # bluez v4 compatibility
+ patch -Np1 -i "$srcdir/bluez4.patch"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-ldconfig \
+ --with-python=python2
+
+ LDFLAGS+="$(pkg-config --libs bluez) -lrt -pthread" make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ chmod 644 "$pkgdir/usr/lib/libcwiid.a"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/cwiid/bluez4.patch b/community/cwiid/bluez4.patch
new file mode 100644
index 000000000..dbbc790c5
--- /dev/null
+++ b/community/cwiid/bluez4.patch
@@ -0,0 +1,11 @@
+--- cwiid-0.6.00.orig/libcwiid/bluetooth.c.old 2008-09-30 16:52:55.000000000 -0500
++++ cwiid-0.6.00.orig/libcwiid/bluetooth.c 2008-09-30 16:53:19.000000000 -0500
+@@ -122,7 +122,7 @@
+ }
+
+ /* timeout (10000) in milliseconds */
+- if (hci_remote_name(sock, &dev_list[i].bdaddr, BT_NAME_LEN,
++ if (hci_read_remote_name(sock, &dev_list[i].bdaddr, BT_NAME_LEN,
+ (*bdinfo)[bdinfo_count].name, 10000)) {
+ cwiid_err(NULL, "Bluetooth name read error");
+ err = 1;
diff --git a/community/cwiid/cwiid.install b/community/cwiid/cwiid.install
new file mode 100644
index 000000000..05e698be7
--- /dev/null
+++ b/community/cwiid/cwiid.install
@@ -0,0 +1,10 @@
+post_install() {
+ echo "==> In order to use wminput ensure you load the uinput kernel"
+ echo "==> module and have assigned correct access to /dev/uinput"
+}
+
+post_upgrade() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/cython/PKGBUILD b/community/cython/PKGBUILD
new file mode 100644
index 000000000..21120e17e
--- /dev/null
+++ b/community/cython/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 59192 2011-11-21 14:39:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Igor Scabini <furester @ gmail.com>
+
+pkgname=('cython' 'cython2')
+pkgbase=cython
+pkgver=0.15.1
+pkgrel=2
+pkgdesc="C-Extensions for Python "
+arch=(i686 x86_64 'mips64el')
+url="http://www.cython.org"
+license=('APACHE')
+makedepends=('python-distribute' 'python2-distribute')
+source=("http://cython.org/release/Cython-$pkgver.tar.gz")
+md5sums=('171021b3845c9ca8bd6d8185b3cde664')
+
+build() {
+ true
+}
+
+package_cython() {
+ depends=('python')
+
+ cd $srcdir/Cython-$pkgver
+ python setup.py install --root=$pkgdir
+}
+
+package_cython2() {
+ depends=('python2')
+
+ cd $srcdir/Cython-$pkgver
+ python2 setup.py install --root=$pkgdir
+
+ mv $pkgdir/usr/bin/cygdb $pkgdir/usr/bin/cygdb2
+ mv $pkgdir/usr/bin/cython $pkgdir/usr/bin/cython2
+}
diff --git a/community/dante/PKGBUILD b/community/dante/PKGBUILD
new file mode 100644
index 000000000..f073ceb5f
--- /dev/null
+++ b/community/dante/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 55000 2011-08-30 09:22:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Guillem Rieu <guillemr@gmx.net>
+
+pkgname=dante
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="SOCKS v4 and v5 compatible proxy server and client"
+url="http://www.inet.no/dante"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+depends=('pam' 'krb5')
+backup=('etc/socks.conf'
+ 'etc/sockd.conf')
+options=('!libtool')
+source=(ftp://ftp.inet.no/pub/socks/${pkgname}-${pkgver}.tar.gz
+ sockd.rc)
+md5sums=('250c6456cd3fefa17f07fa80c9ccf6bd'
+ '5110dfd78a2b38fff27a886ee88b58a6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ [ -f Makefile ] || ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-libwrap
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..b139ca88b
--- /dev/null
+++ b/community/dar/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 55197 2011-09-06 02:04:39Z shusmann $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=dar
+pkgver=2.4.2
+pkgrel=1
+pkgdesc='A full featured command-line backup tool, short for Disk ARchive'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://dar.linux.free.fr/'
+license=('GPL')
+depends=('bzip2' 'lzo2' 'libgcrypt')
+optdepends=('perl: for running some samples')
+makedepends=('doxygen')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('b23c0509513b895f4ab9ce9191b2f65b')
+options=('!libtool')
+
+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/darcs/PKGBUILD b/community/darcs/PKGBUILD
new file mode 100644
index 000000000..506374c5a
--- /dev/null
+++ b/community/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.1
+pkgdesc="Decentralized replacement for CVS with roots in quantum mechanics"
+arch=(i686 x86_64 'mips64el')
+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/community/darkhttpd/PKGBUILD b/community/darkhttpd/PKGBUILD
new file mode 100644
index 000000000..b2c3b85bb
--- /dev/null
+++ b/community/darkhttpd/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 54744 2011-08-24 10:41:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=darkhttpd
+pkgver=1.8
+pkgrel=1
+pkgdesc="A small, static webserver"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dmr.ath.cx/net/darkhttpd/"
+license=('BSD')
+depends=('glibc')
+source=($url/$pkgname-$pkgver.tar.bz2)
+md5sums=('cff3861af17b109d796993a990ec4c5b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+ install -D $srcdir/$pkgname-$pkgver/darkhttpd $pkgdir/usr/sbin/darkhttpd
+ 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..bc5710cc4
--- /dev/null
+++ b/community/darkstat/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 50638 2011-06-29 10:55:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=darkstat
+pkgver=3.0.714
+pkgrel=1
+pkgdesc="Network statistics gatherer (packet sniffer)."
+url="http://dmr.ath.cx/net/darkstat/"
+license=("GPL")
+arch=(i686 x86_64 'mips64el')
+depends=('libpcap' 'zlib')
+source=(http://dmr.ath.cx/net/darkstat/$pkgname-$pkgver.tar.bz2)
+md5sums=('eef385fadc8dbb611d3d4c4d8fa94817')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $startdir/src/$pkgname-$pkgver
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/darktable/PKGBUILD b/community/darktable/PKGBUILD
new file mode 100644
index 000000000..6bf329e70
--- /dev/null
+++ b/community/darktable/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 58992 2011-11-20 19:44:35Z spupykin $
+# 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.9.3
+_pkgver=0.9
+pkgrel=3
+pkgdesc="Utility to organize and develop raw images"
+arch=('i686' 'x86_64' 'mips64el')
+url=http://darktable.sf.net/
+license=('GPL3')
+depends=('exiv2>=0.18' 'intltool>=0.40' 'lcms2' 'lensfun>=0.2.3' 'libglade' 'dbus-glib'
+ 'curl' 'libgnome-keyring' 'libgphoto2' 'libusb-compat' 'openexr' 'sqlite3')
+makedepends=('intltool>=0.40' 'cmake')
+# 'gnome-doc-utils' 'libxslt' 'fop')
+optdepends=( 'librsvg')
+install=darktable.install
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/darktable/darktable/${_pkgver}/darktable-$pkgver.tar.gz)
+md5sums=('49253a3a2990a4bf8e0b0a19295f19bd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+# mv doc/usermanual/CMakeLists.tx doc/usermanual/CMakeLists.txt
+ mkdir -p build
+ cd build
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DDONT_INSTALL_GCONF_SCHEMAS=True \
+ -DBINARY_PACKAGE_BUILD=1 \
+ -DUSE_GCONF_BACKEND=Off \
+ -DBUILD_USERMANUAL=False \
+ ..
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/build
+ 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..9fd6af293
--- /dev/null
+++ b/community/darktable/darktable.install
@@ -0,0 +1,23 @@
+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}
+ true
+}
+
+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..1f8a1e0d1
--- /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' 'mips64el')
+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..182925d56
--- /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' 'mips64el')
+# 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..e1a72c763
--- /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' 'mips64el')
+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..c9272ed0e
--- /dev/null
+++ b/community/deadbeef/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 58389 2011-11-12 17:16:28Z ibiru $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Alexey Yakovenko <waker@users.sourceforge.net>
+
+pkgname=deadbeef
+pkgver=0.5.1
+pkgrel=3
+pkgdesc='An audio player for GNU/Linux based on GTK2.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://deadbeef.sourceforge.net'
+license=('GPL2')
+depends=('gtk2' 'alsa-lib' 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('libvorbis' 'libmad' 'flac' 'curl' 'imlib2' 'wavpack' 'libsndfile' 'libcdio' 'libcddb'
+ 'ffmpeg' 'libx11' 'faad2' 'zlib' 'intltool' 'pkgconfig' 'libpulse' 'libzip'
+ 'libsamplerate')
+optdepends=('libsamplerate: for Resampler plugin'
+ 'libvorbis: for Ogg Vorbis playback'
+ 'libmad: for MP1/MP2/MP3 playback'
+ 'flac: for FLAC playback'
+ 'curl: for Last.fm scrobbler, SHOUTcast, Icecast, Podcast support'
+ 'imlib2: for artwork plugin'
+ 'wavpack: for WavPack playback'
+ 'libsndfile: for Wave playback'
+ 'libcdio: audio cd plugin'
+ 'libcddb: audio cd plugin'
+ 'ffmpeg: for WMA, AA, OMA, AC, etc.'
+ 'faad2: for AAC/MP4 support'
+ 'dbus: for OSD notifications support'
+ 'pulseaudio: for PulseAudio output plugin'
+ 'libx11: for global hotkeys plugin'
+ 'zlib: for Audio Overload plugin'
+ 'libzip: for vfs_zip plugin')
+options=('!libtool')
+install='deadbeef.install'
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tar.bz2" "ffmpeg.patch")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i $srcdir/ffmpeg.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+}
+md5sums=('be8359d1bd9cf7679cf2ca748996e726'
+ '6cc7623734af310095534c361c9f64e8')
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/deadbeef/ffmpeg.patch b/community/deadbeef/ffmpeg.patch
new file mode 100644
index 000000000..925b84408
--- /dev/null
+++ b/community/deadbeef/ffmpeg.patch
@@ -0,0 +1,45 @@
+diff -aur deadbeef-0.5.1/plugins/ffmpeg/ffmpeg.c deadbeef-0.5.1.new/plugins/ffmpeg/ffmpeg.c
+--- deadbeef-0.5.1/plugins/ffmpeg/ffmpeg.c 2011-05-22 13:58:53.000000000 +0000
++++ deadbeef-0.5.1.new/plugins/ffmpeg/ffmpeg.c 2011-11-01 10:38:11.447669741 +0000
+@@ -140,7 +140,12 @@
+ for (i = 0; i < info->fctx->nb_streams; i++)
+ {
+ info->ctx = info->fctx->streams[i]->codec;
+- if (info->ctx->codec_type == CODEC_TYPE_AUDIO)
++ if (info->ctx->codec_type ==
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
+ {
+ info->codec = avcodec_find_decoder (info->ctx->codec_id);
+ if (info->codec != NULL) {
+@@ -490,7 +495,12 @@
+ for (i = 0; i < fctx->nb_streams; i++)
+ {
+ ctx = fctx->streams[i]->codec;
+- if (ctx->codec_type == CODEC_TYPE_AUDIO)
++ if (ctx->codec_type ==
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
+ {
+ codec = avcodec_find_decoder(ctx->codec_id);
+ if (codec != NULL && !strcasecmp (codec->name, "alac")) { // only open alac streams
+@@ -745,7 +755,12 @@
+ for (i = 0; i < fctx->nb_streams; i++)
+ {
+ ctx = fctx->streams[i]->codec;
+- if (ctx->codec_type == CODEC_TYPE_AUDIO)
++ if (ctx->codec_type ==
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
+ {
+ codec = avcodec_find_decoder(ctx->codec_id);
+ if (codec != NULL)
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..b6dea8016
--- /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' 'mips64el')
+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..d12c5680b
--- /dev/null
+++ b/community/denemo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 60150 2011-12-06 08:50:04Z 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.9.2
+pkgrel=1
+pkgdesc="A music score editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.denemo.org"
+license=('GPL')
+depends=('aubio' 'portaudio' 'lilypond' 'gtk2' 'libxml2' 'guile' 'fftw' 'gtksourceview2'
+ 'librsvg' 'fluidsynth' 'libsmf')
+options=('!libtool')
+backup=('etc/denemo/denemo.conf')
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6dbe944f45cf8818b199e831ac7a5e4f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/devil/PKGBUILD b/community/devil/PKGBUILD
new file mode 100644
index 000000000..b1fa118b2
--- /dev/null
+++ b/community/devil/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 60209 2011-12-07 16:29:05Z svenstaro $
+# Maintainer: Laurent Carlier <lordheavym@gmail.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: TheHoff <forums>
+
+pkgname=devil
+pkgver=1.7.8
+pkgrel=9
+pkgdesc="Library for reading several different image formats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://openil.sourceforge.net/"
+depends=('libpng' 'libmng' 'jasper' 'lcms' 'openexr')
+install=devil.install
+options=('!libtool' '!docs' '!emptydirs')
+license=('GPL')
+source=(http://downloads.sourceforge.net/openil/DevIL-$pkgver.tar.gz libpng14.patch)
+md5sums=('7918f215524589435e5ec2e8736d5e1d'
+ '0f839ccefd43b0ee8b4b3f99806147fc')
+
+build() {
+ cd ${srcdir}/devil-$pkgver
+
+ patch -Np1 -i ${srcdir}/libpng14.patch
+
+ ./configure --prefix=/usr --enable-ILU
+ make
+}
+
+package() {
+ cd ${srcdir}/devil-$pkgver
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/devil/devil.install b/community/devil/devil.install
new file mode 100644
index 000000000..8336ac3d1
--- /dev/null
+++ b/community/devil/devil.install
@@ -0,0 +1,11 @@
+infodir=usr/share/info
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/DevIL_manual.info.gz $infodir/dir 2> /dev/null
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/DevIL_manual.info.gz $infodir/dir 2> /dev/null
+}
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..bbf143dd5
--- /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' 'mips64el')
+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..c6597a9ac
--- /dev/null
+++ b/community/dia/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 57536 2011-10-30 12:24:25Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+
+pkgname=dia
+pkgver=0.97.1
+pkgrel=5
+pkgdesc="A GTK+ based diagram creation program"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'docs')
+source=("ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.97/${pkgname}-${pkgver}.tar.bz2"
+ "dia-overflow-fix.patch")
+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 \
+ --with-cairo \
+ --with-python \
+ --disable-gnome \
+ --with-hardbooks
+ sed -i 's#SUBDIRS = lib objects plug-ins shapes app bindings samples po sheets data doc tests installer#SUBDIRS = lib objects plug-ins shapes app bindings samples po sheets data tests installer#' Makefile
+ make
+ cd doc
+ make html
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ cd doc
+ make DESTDIR="${pkgdir}" install-html
+ ln -sf dia/html "${pkgdir}"/usr/share/dia/help
+}
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..a49438e1f
--- /dev/null
+++ b/community/dia/dia.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /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/dictd/PKGBUILD b/community/dictd/PKGBUILD
new file mode 100644
index 000000000..db4218b2b
--- /dev/null
+++ b/community/dictd/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 57578 2011-10-31 03:14:04Z andrea $
+# 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=3
+pkgdesc="Online dictionary client and server"
+url="http://sourceforge.net/projects/dict/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('sh' '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
+ etc/dict/colorit.conf)
+options=('!emptydirs')
+source=("http://downloads.sourceforge.net/dict/$pkgname-$pkgver.tar.gz"
+ dictd
+ dict.conf
+ dictd.conf
+ dictd.confd
+ site.info
+ dictd.xinetd
+ colorit.conf)
+md5sums=('71aaf3a697ea2e9409643f11ea85b53a'
+ '6542df4fc585773fc03f1a088730126b'
+ 'fb72f7d8c55f84b1b37bbc8d33a8e55a'
+ '64cd6ffdb40fb3367224f91ac44926ac'
+ '838887fee38ae4cebd652d399b1f2266'
+ 'b8cabf913876e544d919c7f20ff8db9e'
+ 'b7dbc9529df13ff895dae2b4abd080d6'
+ '978c9c079a0fc8d7d42a4cd4000190e7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --enable-dictorg --prefix=/usr --sysconfdir=/etc/dict
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ 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
+ install -D -m 0644 $srcdir/colorit.conf $pkgdir/etc/dict/colorit.conf
+}
diff --git a/community/dictd/colorit.conf b/community/dictd/colorit.conf
new file mode 100644
index 000000000..8355dae15
--- /dev/null
+++ b/community/dictd/colorit.conf
@@ -0,0 +1,32 @@
+dnl /etc/dictd/colorit.conf vim:ft=m4
+dnl
+dnl Sample configuration file for colorit(1) program
+dnl
+divert(-1)
+dnl
+dnl Define some useful color variables
+dnl
+define(`black', `0')
+define(`red', `1')
+define(`green', `2')
+define(`brown', `3')
+define(`blue', `4')
+define(`magenta', `5')
+define(`cyan', `6')
+define(`white', `7')
+dnl
+dnl Mark macro arguments: regexp foreground-color [background-color]
+dnl
+define(`mark', ``mark "$1"'' `ifelse(`$#', `3', ``"\033[3$2;4$3m"'', ``"\033[3$2m"'')' `"\033[m"')
+dnl
+divert
+mark(`^From.*$',red,cyan)
+mark(`^ [^ ]+',green)
+mark(`^ *Note:',red)
+mark(`{[^{]+}',green)
+mark(`^ *\[[^\[]+\]', cyan)
+mark(`^[ ]*(adj|n|v|adv)? *[0-9]+[\.:]',cyan)
+mark(`^ *\([a-z]+\)',cyan)
+mark(`(Syn|Ant|syn|ant):', blue, white)
+mark(` (t|i|a|adj|adv|n|v)\. ',cyan)
+mark(` (t|i|a|adj|adv|n|v)\.$',cyan)
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..1eac2db70
--- /dev/null
+++ b/community/dietlibc/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 59221 2011-11-21 15:22:09Z 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' 'mips64el')
+url="http://www.fefe.de/dietlibc/"
+license=("GPL")
+#source=(http://www.kernel.org/pub/linux/libs/dietlibc/$pkgname-$pkgver.tar.bz2)
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/$pkgname-$pkgver.tar.bz2)
+md5sums=('0098761c17924c15e21d25acdda4a8b5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make -j1 all dyn
+ mkdir -p $pkgdir/etc
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/dillo/PKGBUILD b/community/dillo/PKGBUILD
new file mode 100644
index 000000000..20b975395
--- /dev/null
+++ b/community/dillo/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 60152 2011-12-06 08:54:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=dillo
+pkgver=3.0.2
+pkgrel=1
+pkgdesc="A small, fast graphical web browser built on FLTK"
+arch=(i686 x86_64 'mips64el')
+url="http://www.dillo.org"
+license=('GPL')
+depends=('fltk' 'libjpeg' 'perl' 'openssl' 'libpng' 'gcc-libs' 'libxcursor'
+ 'libxi' 'libxinerama')
+backup=(etc/dillo/{dillorc,dpidrc})
+source=(http://www.dillo.org/download/$pkgname-$pkgver.tar.bz2)
+md5sums=('81b82112cefcc7d54fe2972a21f42930')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./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/directfb/PKGBUILD b/community/directfb/PKGBUILD
new file mode 100644
index 000000000..cc80362f8
--- /dev/null
+++ b/community/directfb/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 53472 2011-08-03 20:58:54Z ebelanger $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=directfb
+pkgver=1.4.14
+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' 'mips64el')
+url="http://www.directfb.org"
+license=('LGPL')
+depends=('gcc-libs' 'libjpeg' 'sdl' 'sysfsutils' 'libpng' 'freetype2')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://www.directfb.org/downloads/Core/DirectFB-${pkgver%.*}/DirectFB-${pkgver}.tar.gz)
+md5sums=('de0745d25a6ac9e337d4d5572df85471')
+
+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..a78f15c1a
--- /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' 'mips64el')
+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..3e33ace62
--- /dev/null
+++ b/community/distcc/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 57046 2011-10-19 10:30:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=distcc
+pkgver=3.1
+pkgrel=6
+pkgdesc="A distributed C, C++, Obj C compiler"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/distcc/"
+license=('GPL')
+depends=('gcc' 'popt' 'avahi')
+makedepends=('gtk2' 'pkgconfig' 'python2')
+optdepends=('gtk2: for distccmon-gnome'
+ 'python2')
+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}"
+
+ [ -f Makefile ] || PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --with-gtk \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+# --without-avahi \
+
+ make WERROR_CFLAGS= INCLUDESERVER_PYTHON=/usr/bin/python2
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+# make TEST_PYTHON=/usr/bin/python2 check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/" INCLUDESERVER_PYTHON=/usr/bin/python2 install
+ 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..acccf6688
--- /dev/null
+++ b/community/djview4/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 54964 2011-08-29 08:34:07Z bisson $
+# 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.8
+pkgrel=1
+pkgdesc='Portable DjVu viewer and browser plugin'
+url='http://djvu.sourceforge.net/djview4.html'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('qt' 'djvulibre')
+source=("http://downloads.sourceforge.net/djvu/djview-${pkgver}.tar.gz")
+sha1sums=('266d207afb63a1ee63eed054190bf88888fda572')
+
+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
+
+ cd desktopfiles
+ install -Dm644 hi32-djview4.png "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/djvulibre-djview4.png
+ install -Dm644 hi64-djview4.png "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/djvulibre-djview4.png
+ install -Dm644 hi64-djview4.png "${pkgdir}"/usr/share/pixmaps/djvulibre-djview4.png
+ install -Dm644 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..f2bd04ceb
--- /dev/null
+++ b/community/djview4/install
@@ -0,0 +1,13 @@
+post_install() {
+ if type xdg-icon-resource &>/dev/null; then
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/dmenu/PKGBUILD b/community/dmenu/PKGBUILD
new file mode 100644
index 000000000..f05d6d694
--- /dev/null
+++ b/community/dmenu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55762 2011-09-19 13:35:20Z 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.4.1
+pkgrel=1
+pkgdesc="A generic menu for X"
+url="http://tools.suckless.org/dmenu/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('MIT')
+depends=('sh' 'libxinerama')
+source=("http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz")
+md5sums=('d18aaa9ac3265f92ec34a0df0cb6ebd4')
+
+build(){
+ cd $srcdir/$pkgname-$pkgver
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr DESTDIR=$pkgdir install
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+md5sums=('85204de9ac040e0ba544978ce6d6a105')
diff --git a/community/dnstracer/PKGBUILD b/community/dnstracer/PKGBUILD
new file mode 100644
index 000000000..cb5a80ae5
--- /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' 'mips64el')
+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..c44257c3d
--- /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' 'mips64el')
+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..11248a9b5
--- /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 'mips64el')
+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..29807f42f
--- /dev/null
+++ b/community/docky/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 49764 2011-06-21 00:08:54Z 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.3
+pkgrel=1
+pkgdesc="The finest dock no money can buy!"
+url="https://launchpad.net/docky"
+arch=(i686 x86_64 'mips64el')
+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 gconf-sharp)
+makedepends=(intltool libgnome-sharp)
+options=('!libtool' '!emptydirs')
+install=docky.install
+source=("http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz")
+md5sums=('7a40c25dff6b71c346e7791533f05b5f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ ./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/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..4116a23d3
--- /dev/null
+++ b/community/dopewars/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 54061 2011-08-13 02:36:39Z ebelanger $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Maintainer: schuay <jakob.gruber@gmail.com
+
+pkgname=dopewars
+pkgver=1.5.12
+pkgrel=6
+pkgdesc="A drug dealing game set in New York"
+url="http://dopewars.sourceforge.net/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gtk2' 'alsa-lib' 'audiofile' 'sdl_mixer' 'ncurses')
+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
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # 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/dosbox/PKGBUILD b/community/dosbox/PKGBUILD
new file mode 100644
index 000000000..1f88ecec8
--- /dev/null
+++ b/community/dosbox/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 49481 2011-06-17 21:30:52Z jelle $
+# Maintainer :
+# Contribute : Jelle van der Waa <jelle@vdwaa.nl>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=dosbox
+pkgver=0.74
+pkgrel=2
+pkgdesc="An emulator with builtin DOS for running DOS Games"
+arch=('i686' 'x86_64')
+url="http://dosbox.sourceforge.net/"
+license=('GPL')
+depends=('sdl_net' 'zlib' 'sdl_sound' 'libgl' 'libpng' 'alsa-lib' 'gcc-libs')
+makedepends=('mesa')
+source=("http://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz"
+ 'dosbox.png' 'dosbox.desktop' 'gcc46.patch')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i $srcdir/gcc46.patch
+ sed -i 's/png_check_sig/png_sig_cmp/' configure
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/dosbox
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+
+ # install docs, make does not install them
+ install -d $pkgdir/usr/share/doc/$pkgname
+ install -Dm644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/$pkgname/README
+ install -Dm644 $srcdir/$pkgname-$pkgver/docs/README.video $pkgdir/usr/share/doc/$pkgname/README.video
+
+ install -Dm644 ${srcdir}/${pkgname}.png \
+ ${pkgdir}/usr/share/pixmaps/${pkgname}.png
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
+md5sums=('b9b240fa87104421962d14eee71351e8'
+ '2aac25fc06979e375953fcc36824dc5e'
+ '85169ca599028bee8e29e0b3b7b34dd8'
+ '3fba2e3c7c43290319b2928f40ed30e5')
diff --git a/community/dosbox/dosbox.desktop b/community/dosbox/dosbox.desktop
new file mode 100644
index 000000000..dbaf05ced
--- /dev/null
+++ b/community/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/community/dosbox/dosbox.png b/community/dosbox/dosbox.png
new file mode 100644
index 000000000..b8a917986
--- /dev/null
+++ b/community/dosbox/dosbox.png
Binary files differ
diff --git a/community/dosbox/gcc46.patch b/community/dosbox/gcc46.patch
new file mode 100644
index 000000000..eae9ae63e
--- /dev/null
+++ b/community/dosbox/gcc46.patch
@@ -0,0 +1,12 @@
+diff -aur dosbox-0.74/include/dos_inc.h dosbox-0.74.new//include/dos_inc.h
+--- dosbox-0.74/include/dos_inc.h 2010-05-10 17:43:54.000000000 +0000
++++ dosbox-0.74.new//include/dos_inc.h 2011-06-17 20:42:43.982548979 +0000
+@@ -28,6 +28,8 @@
+ #include "mem.h"
+ #endif
+
++#include <stddef.h> //for offsetof
++
+ #ifdef _MSC_VER
+ #pragma pack (1)
+ #endif
diff --git a/community/driftnet/PKGBUILD b/community/driftnet/PKGBUILD
new file mode 100644
index 000000000..ab64be823
--- /dev/null
+++ b/community/driftnet/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 55457 2011-09-13 00:28:52Z ebelanger $
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=driftnet
+pkgver=0.1.6
+pkgrel=5
+pkgdesc="Listens to network traffic and picks out images from TCP streams it observes."
+arch=('i686' 'x86_64' 'mips64el')
+url=('http://www.ex-parrot.com/~chris/driftnet/')
+license=('GPL')
+depends=('libjpeg' 'libpcap' 'gtk' 'giflib')
+makedepends=('imake')
+source=(http://www.ex-parrot.com/~chris/driftnet/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8e11d77770452f97bb3c23f510489815')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make LDFLAGS=""
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -D -m755 driftnet "${pkgdir}/usr/bin/driftnet"
+}
diff --git a/community/drivel/PKGBUILD b/community/drivel/PKGBUILD
new file mode 100644
index 000000000..6931a5aae
--- /dev/null
+++ b/community/drivel/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 46527 2011-05-08 20:38:52Z 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.3
+pkgrel=1
+pkgdesc="GTK client for working with online journals (blogs)."
+url="http://www.dropline.net/drivel/index.php"
+arch=('i686' 'x86_64' 'mips64el')
+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=('295a583d6ed652ab591070245283fb5b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/drivel/drivel.install b/community/drivel/drivel.install
new file mode 100644
index 000000000..47f683f79
--- /dev/null
+++ b/community/drivel/drivel.install
@@ -0,0 +1,13 @@
+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..c96239a66
--- /dev/null
+++ b/community/dsniff/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 49679 2011-06-19 07:23:27Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ViNS <gladiator@fastwebnet.it>
+
+pkgname=dsniff
+pkgver=2.4b1
+pkgrel=20
+pkgdesc="Collection of tools for network auditing and penetration testing"
+url="http://www.monkey.org/~dugsong/dsniff/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('BSD')
+depends=('libpcap' 'openssl' 'libxmu' 'glib2' 'libnet' 'libnids')
+source=("http://www.monkey.org/~dugsong/${pkgname}/beta/$pkgname-$pkgver.tar.gz"
+ "http://ftp.de.debian.org/debian/pool/main/d/${pkgname}/${pkgname}_2.4b1+debian-18.diff.gz")
+md5sums=('2f761fa3475682a7512b0b43568ee7d6'
+ 'fbc9f62f9ab2f98f24f53ad497c1ce5d')
+
+build() {
+ cd $srcdir/$pkgname-2.4
+ patch -N < "${srcdir}"/dsniff_2.4b1+debian-18.diff
+ for i in *.dpatch; do
+ patch -N < "$i"
+ done
+
+ LDFLAGS="-lresolv -lglib-2.0 -lgthread-2.0 $LDFLAGS" ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-2.4
+ make prefix="$pkgdir"/usr install
+ install -D -m0644 LICENSE "$pkgdir"/usr/share/licenses/${pkgname}/LICENSE
+
+ install -d "$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..99ccfa5ba
--- /dev/null
+++ b/community/dspam/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 57749 2011-11-02 08:46:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=dspam
+pkgver=3.10.1
+pkgrel=1
+pkgdesc="A scalable, open-source statistical anti-spam filter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dspam.nuclearelephant.com/"
+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')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/project/dspam/dspam/dspam-$pkgver/dspam-$pkgver.tar.gz
+ dspam.logrotated
+ dspam)
+md5sums=('b8b57f7f4ce31de86fa13a656d3bf936'
+ '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
+}
+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..2ea069b5c
--- /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' 'mips64el')
+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..304178bb1
--- /dev/null
+++ b/community/duff/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 44930 2011-04-13 03:50:28Z shusmann $
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=duff
+pkgver=0.5
+pkgrel=1
+pkgdesc="A command-line utility for quickly finding duplicates in a given set of files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://duff.sourceforge.net/"
+license=('custom')
+depends=('glibc' 'sh')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e42bedb278ab41081df3ebb9ce1cbe1d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..ccbbbb04b
--- /dev/null
+++ b/community/dumb/PKGBUILD
@@ -0,0 +1,50 @@
+# Contributor: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: Bjørn Lindeijer <bjorn lindeijer nl>
+
+pkgname=dumb
+pkgver=0.9.3
+pkgrel=5
+pkgdesc="An IT, XM, S3M and MOD player library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:dumb' 'GPL')
+url="http://dumb.sourceforge.net/"
+depends=('glibc' 'allegro4')
+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..08a9f5a31
--- /dev/null
+++ b/community/duplicity/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 60285 2011-12-08 22:52:59Z lfleischer $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=duplicity
+pkgver=0.6.17
+pkgrel=3
+pkgdesc='A utility for encrypted, bandwidth-efficient backups using the rsync algorithm'
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ 'botobackend.patch')
+md5sums=('36423ab4e3b9aa90c5c44d9fa93fba0f'
+ '49bbdc327230fe5985d18eaae37eec0c')
+
+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
+
+ # add hotfix issued by upstream (FS#27390)
+ patch -p0 -i ../botobackend.patch
+
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ # fix broken documentation permissions until upstream does (FS#27301)
+ chmod 644 "$pkgdir/usr/share/man/man1/$pkgname.1"
+ chmod 644 "$pkgdir/usr/share/man/man1/rdiffdir.1"
+ chmod 644 "$pkgdir/usr/share/doc/$pkgname-$pkgver"/*
+}
diff --git a/community/duplicity/botobackend.patch b/community/duplicity/botobackend.patch
new file mode 100644
index 000000000..302e1e2b1
--- /dev/null
+++ b/community/duplicity/botobackend.patch
@@ -0,0 +1,13 @@
+=== modified file duplicity/backends/botobackend.py
+--- duplicity/backends/botobackend.py 2011-11-25 17:47:57 +0000
++++ duplicity/backends/botobackend.py 2011-12-01 16:15:25 +0000
+@@ -26,6 +26,6 @@
+ if sys.version_info[:2] < (2,6):
+ print "Sorry, S3 multiprocessing requires version 2.6 or later of python"
+ sys.exit(1)
+- import _boto_multi.py
++ import _boto_multi
+ else:
+- import _boto_single.py
++ import _boto_single
+
diff --git a/community/dvdisaster/PKGBUILD b/community/dvdisaster/PKGBUILD
new file mode 100644
index 000000000..6a07af6e0
--- /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' 'mips64el')
+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..51a15b0a2
--- /dev/null
+++ b/community/dvdstyler/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58391 2011-11-12 17:16:44Z ibiru $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=dvdstyler
+pkgver=2.0
+pkgrel=2
+pkgdesc="Cross-platform DVD authoring application"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.dvdstyler.de/"
+license=('GPL')
+depends=('cdrkit' 'dvdauthor' 'dvd+rw-tools' '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)
+sha1sums=('21bb4e25c851e70cdd3ce37f3e319c71e78f74a6')
+
+build() {
+ cd "${srcdir}/DVDStyler-${pkgver}"
+ sed -i 's/rmdir "$$t"//' docs/Makefile.in
+ sed -i 's/vsink_buffer.h/buffersink.h/' src/mediatrc_ffmpeg.cpp
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/DVDStyler-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/dvtm/PKGBUILD b/community/dvtm/PKGBUILD
new file mode 100644
index 000000000..fc06ca202
--- /dev/null
+++ b/community/dvtm/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 55178 2011-09-04 22:30:57Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Giorgio Lando <patroclo7@gmail.com>
+# Contributor: bender02 at gmx dot com
+
+pkgname=dvtm
+pkgver=0.7
+pkgrel=1
+pkgdesc='Dynamic virtual terminal manager.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.brain-dump.org/projects/dvtm/'
+license=('MIT')
+depends=('ncurses')
+source=("http://www.brain-dump.org/projects/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'config.h')
+md5sums=('d8ef63bad5b48324ad040630c51a1c26'
+ '50ae76c4b33864f0cf051417443cc422')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cp "${srcdir}/config.h" .
+ sed -i 's/CFLAGS =/CFLAGS +=/' config.mk
+
+ make clean
+ 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/dvtm/config.h b/community/dvtm/config.h
new file mode 100644
index 000000000..2b00776f2
--- /dev/null
+++ b/community/dvtm/config.h
@@ -0,0 +1,155 @@
+/* curses attributes for the currently focused window */
+/* valid curses attributes are listed below they can be ORed
+ *
+ * A_NORMAL Normal display (no highlight)
+ * A_STANDOUT Best highlighting mode of the terminal.
+ * A_UNDERLINE Underlining
+ * A_REVERSE Reverse video
+ * A_BLINK Blinking
+ * A_DIM Half bright
+ * A_BOLD Extra bright or bold
+ * A_PROTECT Protected mode
+ * A_INVIS Invisible or blank mode
+ *
+ */
+#define BLUE (COLORS==256 ? 68 : COLOR_BLUE)
+
+#define SELECTED_ATTR A_NORMAL
+#define SELECTED_FG BLUE
+#define SELECTED_BG -1
+/* curses attributes for normal (not selected) windows */
+#define NORMAL_ATTR A_NORMAL
+#define NORMAL_FG -1
+#define NORMAL_BG -1
+/* status bar (command line option -s) position */
+#define BAR_POS BAR_TOP /* BAR_BOTTOM, BAR_OFF */
+/* curses attributes for the status bar */
+#define BAR_ATTR A_NORMAL
+#define BAR_FG BLUE
+#define BAR_BG -1
+/* determines whether the statusbar text should be right or left aligned */
+#define BAR_ALIGN ALIGN_RIGHT
+/* separator between window title and window number */
+#define SEPARATOR " | "
+/* printf format string for the window title, first %s
+ * is replaced by the title, second %s is replaced by
+ * the SEPARATOR, %d stands for the window number */
+#define TITLE "[%s%s#%d]"
+/* master width factor [0.1 .. 0.9] */
+#define MFACT 0.5
+/* scroll back buffer size in lines */
+#define SCROLL_HISTORY 500
+
+#include "tile.c"
+#include "grid.c"
+#include "bstack.c"
+#include "fullscreen.c"
+
+/* by default the first layout entry is used */
+Layout layouts[] = {
+ { "[]=", tile },
+ { "+++", grid },
+ { "TTT", bstack },
+ { "[ ]", fullscreen },
+};
+
+#define MOD CTRL('g')
+
+/* you can at most specifiy MAX_ARGS (2) number of arguments */
+Key keys[] = {
+ { MOD, 'c', { create, { NULL } } },
+ { MOD, 'x', { killclient, { NULL } } },
+ { MOD, 'j', { focusnext, { NULL } } },
+ { MOD, 'u', { focusnextnm, { NULL } } },
+ { MOD, 'i', { focusprevnm, { NULL } } },
+ { MOD, 'k', { focusprev, { NULL } } },
+ { MOD, 't', { setlayout, { "[]=" } } },
+ { MOD, 'g', { setlayout, { "+++" } } },
+ { MOD, 'b', { setlayout, { "TTT" } } },
+ { MOD, 'm', { setlayout, { "[ ]" } } },
+ { MOD, ' ', { setlayout, { NULL } } },
+ { MOD, 'h', { setmfact, { "-0.05" } } },
+ { MOD, 'l', { setmfact, { "+0.05" } } },
+ { MOD, '.', { toggleminimize, { NULL } } },
+ { MOD, 's', { togglebar, { NULL } } },
+ { MOD, 'M', { togglemouse, { NULL } } },
+ { MOD, '\n', { zoom , { NULL } } },
+ { MOD, '1', { focusn, { "1" } } },
+ { MOD, '2', { focusn, { "2" } } },
+ { MOD, '3', { focusn, { "3" } } },
+ { MOD, '4', { focusn, { "4" } } },
+ { MOD, '5', { focusn, { "5" } } },
+ { MOD, '6', { focusn, { "6" } } },
+ { MOD, '7', { focusn, { "7" } } },
+ { MOD, '8', { focusn, { "8" } } },
+ { MOD, '9', { focusn, { "9" } } },
+ { MOD, 'q', { quit, { NULL } } },
+ { MOD, 'G', { escapekey, { NULL } } },
+ { MOD, 'a', { togglerunall, { NULL } } },
+ { MOD, 'r', { redraw, { NULL } } },
+ { MOD, 'X', { lock, { NULL } } },
+ { MOD, 'B', { togglebell, { NULL } } },
+ { MOD, KEY_PPAGE, { scrollback, { "-1" } } },
+ { MOD, KEY_NPAGE, { scrollback, { "1" } } },
+ { MOD, '?', { create, { "man dvtm", "dvtm help" } } },
+};
+
+static const ColorRule colorrules[] = {
+ /* title attrs fgcolor bgcolor */
+#if 0
+ { "ssh", A_NORMAL, COLOR_BLACK, 224 },
+#endif
+};
+
+/* possible values for the mouse buttons are listed below:
+ *
+ * BUTTON1_PRESSED mouse button 1 down
+ * BUTTON1_RELEASED mouse button 1 up
+ * BUTTON1_CLICKED mouse button 1 clicked
+ * BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
+ * BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
+ * BUTTON2_PRESSED mouse button 2 down
+ * BUTTON2_RELEASED mouse button 2 up
+ * BUTTON2_CLICKED mouse button 2 clicked
+ * BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
+ * BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
+ * BUTTON3_PRESSED mouse button 3 down
+ * BUTTON3_RELEASED mouse button 3 up
+ * BUTTON3_CLICKED mouse button 3 clicked
+ * BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
+ * BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
+ * BUTTON4_PRESSED mouse button 4 down
+ * BUTTON4_RELEASED mouse button 4 up
+ * BUTTON4_CLICKED mouse button 4 clicked
+ * BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
+ * BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
+ * BUTTON_SHIFT shift was down during button state change
+ * BUTTON_CTRL control was down during button state change
+ * BUTTON_ALT alt was down during button state change
+ * ALL_MOUSE_EVENTS report all button state changes
+ * REPORT_MOUSE_POSITION report mouse movement
+ */
+
+#ifdef NCURSES_MOUSE_VERSION
+# define CONFIG_MOUSE /* compile in mouse support if we build against ncurses */
+#endif
+
+#define ENABLE_MOUSE true /* whether to enable mouse events by default */
+
+#ifdef CONFIG_MOUSE
+Button buttons[] = {
+ { BUTTON1_CLICKED, { mouse_focus, { NULL } } },
+ { BUTTON1_DOUBLE_CLICKED, { mouse_fullscreen, { "[ ]" } } },
+ { BUTTON2_CLICKED, { mouse_zoom, { NULL } } },
+ { BUTTON3_CLICKED, { mouse_minimize, { NULL } } },
+};
+#endif /* CONFIG_MOUSE */
+
+Cmd commands[] = {
+ { "create", { create, { NULL } } },
+};
+
+/* gets executed when dvtm is started */
+Action actions[] = {
+ { create, { NULL } },
+};
diff --git a/community/dwdiff/PKGBUILD b/community/dwdiff/PKGBUILD
new file mode 100644
index 000000000..5042e9358
--- /dev/null
+++ b/community/dwdiff/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 57280 2011-10-25 09:58:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=dwdiff
+pkgver=2.0
+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' 'mips64el')
+url="http://os.ghalkes.nl/dwdiff.html"
+depends=('diffutils' 'icu')
+license=('GPL')
+source=(http://os.ghalkes.nl/dist/$pkgname-$pkgver.tgz)
+md5sums=('98dd16b58a1f136a2cd49f7dd88c5313')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir"/usr install
+}
diff --git a/community/dwm/PKGBUILD b/community/dwm/PKGBUILD
new file mode 100644
index 000000000..721aa7e91
--- /dev/null
+++ b/community/dwm/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 54496 2011-08-19 09:22:43Z 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.9
+pkgrel=2
+pkgdesc="A dynamic window manager for X"
+url="http://dwm.suckless.org"
+arch=('i686' 'x86_64' 'mips64el')
+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=('2799f885c05817ca112d521bb247f797'
+ '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 = -g/#CFLAGS += -g/g' config.mk
+ sed -i 's/^#CFLAGS = -std/CFLAGS += -std/g' config.mk
+ sed -i 's/^LDFLAGS = -g/#LDFLAGS += -g/g' config.mk
+ sed -i 's/^#LDFLAGS = -s/LDFLAGS += -s/g' config.mk
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr DESTDIR=$pkgdir install
+ 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/usr/share/xsessions/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..44b50ed82
--- /dev/null
+++ b/community/dwm/dwm.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "-- Edit config.h in dwm's PKGBUILD directory (generally /var/abs/community/dwm/)"
+ echo "-- and rebuild package if you want to change settings."
+}
diff --git a/community/dxpc/PKGBUILD b/community/dxpc/PKGBUILD
new file mode 100644
index 000000000..d689b83e2
--- /dev/null
+++ b/community/dxpc/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 58798 2011-11-18 14:38:36Z 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' 'mips64el')
+url="http://www.vigor.nu/dxpc/"
+license=('GPL')
+depends=('lzo2' 'gcc-libs')
+makedepends=('xproto')
+source=(http://www.vigor.nu/dxpc/dxpc-$pkgver.tgz)
+md5sums=('e69f58c4acc34c6746a0e5ab17bf8d0f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --mandir='${prefix}/share/man'
+ make
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/dynamite/PKGBUILD b/community/dynamite/PKGBUILD
new file mode 100644
index 000000000..82cf42c5e
--- /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' 'mips64el')
+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..841626991
--- /dev/null
+++ b/community/dzen2/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 57590 2011-10-31 07:59:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Mark Taylor <skymt0@gmail.com>
+
+pkgname=dzen2
+pkgver=0.8.5
+pkgrel=7
+arch=(i686 x86_64 'mips64el')
+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
+
+ CFLAGS=" -Wall -Os ${INCS} -DVERSION=\"${VERSION}\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT `pkg-config --cflags xft`"
+ LIBS=" -L/usr/lib -lc -L${X11LIB} -lX11 -lXinerama -lXpm `pkg-config --libs xft`"
+
+ echo "CFLAGS=$CFLAGS" >>config.mk
+ echo "LIBS=$LIBS" >>config.mk
+ echo "LDFLAGS=$LIBS" >>config.mk
+
+ make X11INC=/usr/include X11LIB=/usr/lib
+ (cd $srcdir/dzen2-$pkgver/gadgets && make X11INC=/usr/include X11LIB=/usr/lib)
+}
+
+package() {
+ cd $srcdir/dzen2-$pkgver
+ make PREFIX=/usr MANPREFIX=/usr/man DESTDIR=$pkgdir install
+ (cd $srcdir/dzen2-$pkgver/gadgets && make PREFIX=/usr MANPREFIX=/usr/man DESTDIR=$pkgdir install)
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/dzen2/COPYING
+}
diff --git a/community/e-modules-extra-svn/PKGBUILD b/community/e-modules-extra-svn/PKGBUILD
new file mode 100755
index 000000000..6431e90b3
--- /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=64772
+pkgrel=1
+pkgdesc="Extra gadgets for e17"
+arch=('i686' 'x86_64' 'mips64el')
+groups=('e17-extra-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('e-svn' 'libxkbfile' 'emprint-svn' 'libmpd' '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
+
+for i in alarm calendar comp-scale cpu diskio deskshow \
+ empris engage eooorg e-tiling everything-aspell everything-mpris \
+ everything-pidgin everything-places everything-shotgun \
+ everything-tracker everything-wallpaper everything-websearch \
+ execwatch flame forecasts iiirk itask language mail mem \
+ moon mpdule net news penguins photo places quickaccess \
+ rain screenshot slideshow snow taskbar tclock tiling uptime \
+ weather winlist-ng winselector wlan xkbswitch; do
+
+ cd $i
+ ./autogen.sh --prefix=/usr
+ make
+ cd ..
+done
+}
+
+package() {
+ cd $srcdir/$_svnmod-build
+
+for i in alarm calendar comp-scale cpu diskio deskshow \
+ empris engage eooorg e-tiling everything-aspell everything-mpris \
+ everything-pidgin everything-places everything-shotgun \
+ everything-tracker everything-wallpaper everything-websearch \
+ execwatch flame forecasts iiirk itask language mail mem \
+ moon mpdule net news penguins photo places quickaccess \
+ rain screenshot slideshow snow taskbar tclock tiling uptime \
+ weather winlist-ng winselector wlan xkbswitch; 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..4e8053ec8
--- /dev/null
+++ b/community/e-svn/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=e-svn
+pkgver=64801
+pkgrel=1
+pkgdesc="Enlightenment window manager DR17 (aka e17)"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+sha1sums=('e08cc63cb8a188a06705b42d03e032b9fcfa7ee5')
+
+_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/e4rat/PKGBUILD b/community/e4rat/PKGBUILD
new file mode 100644
index 000000000..85186118a
--- /dev/null
+++ b/community/e4rat/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 57697 2011-11-01 11:45:09Z mtorromeo $
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Contributor: graysky <graysky AT archlinux DOT us>
+
+pkgname=e4rat
+pkgver=0.2.1
+pkgrel=5
+pkgdesc="Toolset to accelerate the boot process and application startups for systems with ext4 root partitions."
+arch=('i686' 'x86_64')
+url="http://e4rat.sourceforge.net/"
+license=('GPL')
+depends=('e2fsprogs' 'util-linux')
+makedepends=('audit' 'boost' 'cmake')
+options=(!strip)
+backup=(etc/e4rat.conf)
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgver/e4rat_${pkgver}_src.tar.gz)
+
+build() {
+ unset LDFLAGS
+ cd "$srcdir/$pkgname-$pkgver"
+ cmake -DCMAKE_BUILD_TYPE=Release .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -dm755 "$pkgdir/var/lib/$pkgname"
+}
+
+md5sums=('cbb1f3cdd2b8c96b4402028da07b11f2')
+sha256sums=('c509f165eff317f80f5d13d7b370514c457df4542ff3b31bee4c26f97ce89769')
diff --git a/community/e_dbus-svn/PKGBUILD b/community/e_dbus-svn/PKGBUILD
new file mode 100755
index 000000000..f893b61ff
--- /dev/null
+++ b/community/e_dbus-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=e_dbus-svn
+pkgver=64761
+pkgrel=1
+pkgdesc="dbus abstraction layer for e17"
+arch=('i686' 'x86_64' 'mips64el')
+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/ebtables/PKGBUILD b/community/ebtables/PKGBUILD
new file mode 100644
index 000000000..f4cbee592
--- /dev/null
+++ b/community/ebtables/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 60137 2011-12-05 21:42:40Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Michal Soltys <soltys@ziu.info>
+
+pkgname=ebtables
+pkgver='2.0.10_3'
+pkgrel=1
+pkgdesc='Ethernet bridge filtering utilities'
+arch=('i686' 'x86_64')
+backup=('etc/conf.d/ebtables')
+url='http://ebtables.sourceforge.net/'
+license=('GPL2')
+options=('!buildflags')
+source=(
+ "http://downloads.sourceforge.net/${pkgname}/${pkgname}-v${pkgver/_/-}.tar.gz"
+ 'ebtables.rc'
+ 'ebtables.conf'
+ )
+md5sums=('6df055d6476d3ce6bd7eed302a39c40c'
+ '368825c83a2b1180d2223e61b9f3bd07'
+ '86fc3622e6fc0a7a7920c90ff576cc38')
+
+build() {
+ cd ${pkgname}-v${pkgver/_/-}
+ make CFLAGS='-Wunused -Wall -Werror -Wno-error=unused-but-set-variable'
+}
+
+package() {
+ cd "${pkgname}-v${pkgver/_/-}"
+ make install \
+ DESTDIR="${pkgdir}" \
+ LIBDIR=/usr/lib \
+ MANDIR=/usr/share/man \
+ BINDIR=/usr/sbin \
+ INITDIR=/etc/rc.d \
+ SYSCONFIGDIR=/etc/ebtables
+
+ # rm package ebtables rc.d scripts
+ rm "${pkgdir}/etc/rc.d/ebtables"
+ rm "${pkgdir}/etc/ebtables/ebtables-config"
+
+ # install custom ebtables rc.d scripts
+ install -D -m 0755 "${srcdir}/ebtables.rc" "${pkgdir}/etc/rc.d/ebtables"
+ install -D -m 0644 "${srcdir}/ebtables.conf" "${pkgdir}/etc/conf.d/ebtables"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ebtables/ebtables.conf b/community/ebtables/ebtables.conf
new file mode 100644
index 000000000..0005444e7
--- /dev/null
+++ b/community/ebtables/ebtables.conf
@@ -0,0 +1,37 @@
+# Save (and possibly restore) in text format.
+# Value: yes|no, default: yes
+# Save the firewall rules in text format to /etc/conf.d/ebtables
+# If EBTABLES_BINARY_FORMAT="no" then restoring the firewall rules
+# is done using this text format.
+EBTABLES_TEXT_FORMAT="yes"
+
+# Save (and restore) in binary format.
+# Value: yes|no, default: yes
+# Save (and restore) the firewall rules in binary format to (and from)
+# /etc/ebtables/ebtables.<chain>. Enabling this option will make
+# firewall initialisation a lot faster.
+EBTABLES_BINARY_FORMAT="yes"
+
+# Unload modules on restart and stop
+# Value: yes|no, default: yes
+# This option has to be 'yes' to get to a sane state for a firewall
+# restart or stop. Only set to 'no' if there are problems unloading netfilter
+# modules.
+EBTABLES_MODULES_UNLOAD="yes"
+
+# Save current firewall rules on stop.
+# Value: yes|no, default: no
+# Saves all firewall rules if firewall gets stopped
+# (e.g. on system shutdown).
+EBTABLES_SAVE_ON_STOP="no"
+
+# Save current firewall rules on restart.
+# Value: yes|no, default: no
+# Saves all firewall rules if firewall gets restarted.
+EBTABLES_SAVE_ON_RESTART="no"
+
+# Save (and restore) rule counters.
+# Value: yes|no, default: no
+# Save rule counters when saving a kernel table to a file. If the
+# rule counters were saved, they will be restored when restoring the table.
+EBTABLES_SAVE_COUNTER="no"
diff --git a/community/ebtables/ebtables.rc b/community/ebtables/ebtables.rc
new file mode 100644
index 000000000..3a889b914
--- /dev/null
+++ b/community/ebtables/ebtables.rc
@@ -0,0 +1,128 @@
+#!/bin/bash
+
+# Credits to:
+# Sebastien Luttringer <seblu+arch@seblu.net>
+# Bart De Schuymer <bdschuym@pandora.be>
+# Rok Papez <rok.papez@arnes.si>
+# Dag Wieers <dag@wieers.com>
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+#default configuration:
+EBTABLES_TEXT_FORMAT="yes"
+EBTABLES_BINARY_FORMAT="yes"
+EBTABLES_MODULES_UNLOAD="yes"
+EBTABLES_SAVE_ON_STOP="no"
+EBTABLES_SAVE_ON_RESTART="no"
+EBTABLES_SAVE_COUNTER="no"
+
+[[ -r "/etc/conf.d/ebtables" ]] && . "/etc/conf.d/ebtables"
+
+RETVAL=0
+
+start() {
+ stat_busy "Starting ebtables"
+ ! ck_daemon ebtables && stat_done && RETVAL=0 && return
+ if [[ "$EBTABLES_BINARY_FORMAT" = yes ]]; then
+ for table in $(ls /etc/ebtables/ebtables.* 2>/dev/null | sed -e 's/.*ebtables\.//' -e '/save/d' ); do
+ /usr/sbin/ebtables -t ${table} --atomic-file /etc/ebtables/ebtables.${table} --atomic-commit || RETVAL=1
+ done
+ elif [[ "$EBTABLES_TEXT_FORMAT" = "yes" ]]; then
+ [[ ! -r /etc/ebtables/ebtables ]] && :>/etc/ebtables/ebtables
+ /usr/sbin/ebtables-restore </etc/ebtables/ebtables || RETVAL=1
+ else
+ RETVAL=1
+ fi
+
+ if (( RETVAL == 0 )); then
+ stat_done
+ add_daemon ebtables
+ else
+ stat_fail
+ fi
+}
+
+stop() {
+ stat_busy "Stopping ebtables"
+ ck_daemon ebtables && stat_done && RETVAL=0 && return
+ for table in $(grep '^ebtable_' /proc/modules | sed -e 's/ebtable_\([^ ]*\).*/\1/'); do
+ /usr/sbin/ebtables -t $table --init-table || RETVAL=1
+ done
+
+ if [[ "$EBTABLES_MODULES_UNLOAD" = yes ]]; then
+ for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -f1 -d' ') ebtables; do
+ /sbin/rmmod $mod 2> /dev/null
+ done
+ fi
+
+ if (( RETVAL == 0 )); then
+ rm_daemon ebtables
+ stat_done
+ else
+ stat_fail
+ fi
+}
+
+restart() {
+ stop
+ sleep 1
+ start
+}
+
+save() {
+ stat_busy "Saving ebtables"
+ if [[ "$EBTABLES_TEXT_FORMAT" = yes ]]; then
+ if [[ -r /etc/ebtables/ebtables ]]; then
+ mv -f /etc/ebtables/ebtables /etc/ebtables/ebtables.save
+ fi
+ /usr/sbin/ebtables-save >/etc/ebtables/ebtables || RETVAL=1
+ fi
+ if [[ "$EBTABLES_BINARY_FORMAT" = yes ]]; then
+ rm -f /etc/ebtables/ebtables.*.save
+ for oldtable in $(ls /etc/ebtables/ebtables.* 2>/dev/null | grep -vF 'ebtables.save'); do
+ mv -f $oldtable $oldtable.save
+ done
+ for table in $(grep '^ebtable_' /proc/modules | sed -e 's/ebtable_\([^ ]*\).*/\1/'); do
+ :> /etc/ebtables/ebtables.$table
+ /usr/sbin/ebtables -t $table --atomic-file /etc/ebtables/ebtables.$table --atomic-save || RETVAL=1
+ if [[ "$EBTABLES_SAVE_COUNTER" = no ]]; then
+ /usr/sbin/ebtables -t $table --atomic-file /etc/ebtables/ebtables.$table -Z || RETVAL=1
+ fi
+ done
+ fi
+
+ (( RETVAL == 0 )) && stat_done || stat_fail
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ [[ "$EBTABLES_SAVE_ON_STOP" = yes ]] && save
+ stop
+ ;;
+ restart|reload)
+ [[ "$EBTABLES_SAVE_ON_RESTART" = yes ]] && save
+ restart
+ ;;
+ condrestart)
+ ! ck_daemon ebtables && restart
+ RETVAL=$?
+ ;;
+ save)
+ save
+ ;;
+ status)
+ /usr/sbin/ebtables-save
+ RETVAL=$?
+ ;;
+ *)
+ echo "Usage $0 {start|stop|restart|condrestart|save|status}"
+ RETVAL=1
+esac
+
+exit $RETVAL
+
+# vim:set ts=2 sw=2 ft=sh noet:
diff --git a/community/echat/PKGBUILD b/community/echat/PKGBUILD
new file mode 100644
index 000000000..4eeb15a50
--- /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' 'mips64el')
+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..12e599935
--- /dev/null
+++ b/community/ecore-svn/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=ecore-svn
+pkgver=64802
+pkgrel=1
+pkgdesc="Ecore is an abstraction layer for e17"
+arch=('i686' 'x86_64' 'mips64el')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('libxp' 'curl' 'libxss' 'evas-svn' 'libxtst' 'libxcomposite'
+ 'libxrandr' 'libxinerama' 'libxcursor' 'eina-svn')
+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..a3b51cc3b
--- /dev/null
+++ b/community/edje-svn/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=edje-svn
+pkgver=64793
+pkgrel=1
+pkgdesc="A graphical design and layout library based on Evas"
+arch=('i686' 'x86_64' 'mips64el')
+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..27346f8b4
--- /dev/null
+++ b/community/eet-svn/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=eet-svn
+pkgver=64494
+pkgrel=1
+pkgdesc="A data storage and compression library"
+arch=('i686' 'x86_64' 'mips64el')
+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..11886aae4
--- /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=63230
+pkgrel=1
+pkgdesc="A data storage and compression library"
+arch=('i686' 'x86_64' 'mips64el')
+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/efax-gtk/PKGBUILD b/community/efax-gtk/PKGBUILD
new file mode 100644
index 000000000..6376c66e4
--- /dev/null
+++ b/community/efax-gtk/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59587 2011-11-28 18:05:39Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=efax-gtk
+pkgver=3.2.8
+pkgrel=2
+pkgdesc="A GUI front end for the 'efax' fax program"
+arch=('i686' 'x86_64')
+url="http://efax-gtk.sourceforge.net/"
+license=('GPL')
+depends=('dbus-glib' 'gtk3' 'ghostscript')
+makedepends=('pkg-config')
+optdepends=('heirloom-mailx: to use the mail_fax script')
+backup=('etc/efax-gtkrc')
+install=efax-gtk.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.src.tgz")
+md5sums=('275ad1706e5c38e2b153dddd8a16724f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-spooldir=/usr/bin
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -m 755 mail_fax print_fax "${pkgdir}/usr/bin"
+}
diff --git a/community/efax-gtk/efax-gtk.install b/community/efax-gtk/efax-gtk.install
new file mode 100644
index 000000000..69e30acd6
--- /dev/null
+++ b/community/efax-gtk/efax-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/community/efreet-svn/PKGBUILD b/community/efreet-svn/PKGBUILD
new file mode 100755
index 000000000..6d6dd57ea
--- /dev/null
+++ b/community/efreet-svn/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=efreet-svn
+pkgver=64137
+pkgrel=1
+pkgdesc="freedesktop.org specifications for e17"
+arch=('i686' 'x86_64' 'mips64el')
+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..b7fe83637
--- /dev/null
+++ b/community/egoboo/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 57902 2011-11-04 09:04:39Z 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=3
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+pkgdesc="An open-source action RPG/dungeon crawling adventure with OpenGL 3D graphics"
+url="http://egoboo.sourceforge.net/"
+makedepends=('sdl_image' 'sdl_mixer' 'sdl_ttf' 'physfs' 'enet' '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() {
+ depends=('sdl_image' 'sdl_mixer' 'sdl_ttf' 'physfs' 'enet' 'mesa' 'egoboo-data>=2.8.1')
+
+ cd "$srcdir/egoboo-$pkgver"
+
+ install -Dm755 src/game/egoboo-2.x $pkgdir/usr/bin/egoboo
+ install -d $pkgdir/usr/share/doc
+ cp -rf doc/ $pkgdir/usr/share/doc/$pkgname/
+
+ # 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..d8baea971
--- /dev/null
+++ b/community/eiciel/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 58840 2011-11-18 19:58:05Z ebelanger $
+# Contributor: Roman Kyrylych <roman@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=eiciel
+pkgver=0.9.8.1
+pkgrel=1
+pkgdesc="GNOME file ACL editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://rofi.roger-ferrer.org/eiciel/"
+license=('GPL')
+depends=('acl' 'gtkmm3' 'nautilus' 'desktop-file-utils' 'gnome-vfs')
+options=('!libtool')
+install=eiciel.install
+# the source for 0.9.8.1 is no longer found upstream
+#source=(http://rofi.roger-ferrer.org/eiciel/download/${pkgname}-${pkgver}.tar.bz2)
+source=(https://launchpad.net/ubuntu/+archive/primary/+files/eiciel_0.9.8.1.orig.tar.bz2)
+md5sums=('2c9c459f0604ce03ec49bb425cc42681')
+
+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/community/eiciel/eiciel.install b/community/eiciel/eiciel.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/community/eiciel/eiciel.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/community/eina-svn/PKGBUILD b/community/eina-svn/PKGBUILD
new file mode 100755
index 000000000..65b508ece
--- /dev/null
+++ b/community/eina-svn/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=eina-svn
+pkgver=64778
+pkgrel=1
+pkgdesc="E17 file chunk reading/writing library"
+arch=('i686' 'x86_64' 'mips64el')
+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..9ea4b77bf
--- /dev/null
+++ b/community/ejabberd/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 56262 2011-10-04 09:38:05Z 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.9
+pkgrel=1
+pkgdesc="An erlang jabber server"
+arch=(i686 x86_64 'mips64el')
+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=('29ca14ea62f90736322e4e6720331352'
+ '8b15d22edef4e9fdd310aa617435aaf2'
+ '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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}/src
+ 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..1d59bebef
--- /dev/null
+++ b/community/ejabberd/ejabberd
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+cd /
+
+get_pid() {
+ pidof epmd >/dev/null || { echo '' ; return 0; }
+ # 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..579be7ed3
--- /dev/null
+++ b/community/ejabberd/ejabberd.install
@@ -0,0 +1,24 @@
+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/PKGBUILD b/community/ekg/PKGBUILD
new file mode 100644
index 000000000..4bca941b7
--- /dev/null
+++ b/community/ekg/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 56895 2011-10-16 06:24:00Z bpiotrowski $
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+
+pkgname=ekg
+pkgver=1.8rc2
+pkgrel=1
+pkgdesc="A text-mode Gadu-Gadu client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ekg.chmurka.net/"
+license=('GPL')
+depends=('libjpeg' 'aspell' 'python2' 'giflib' 'libgadu')
+source=(http://ekg.chmurka.net/$pkgname-$pkgver.tar.gz)
+md5sums=('f697c711da91ddf57c882114539e92fe')
+
+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..811ebe14f
--- /dev/null
+++ b/community/ekg2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 54443 2011-08-18 15:06:14Z bluewind $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=ekg2
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="ncurses based Jabber, Gadu-Gadu, Tlen and IRC client"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+md5sums=('68fc05b432c34622df6561eaabef5a40')
diff --git a/community/electricsheep/PKGBUILD b/community/electricsheep/PKGBUILD
new file mode 100644
index 000000000..41402f4b6
--- /dev/null
+++ b/community/electricsheep/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58393 2011-11-12 17:16:52Z ibiru $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=electricsheep
+pkgver=2.7b12
+pkgrel=4
+pkgdesc="A screensaver that realize the collective dream of sleeping computers from all over the internet"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://community.electricsheep.org/"
+license=('GPL')
+depends=('curl' 'expat' 'flam3' 'ffmpeg' 'mplayer' 'libglade')
+makedepends=('xscreensaver')
+optdepends=('xscreensaver: to use electricsheep with xscreensaver')
+source=(ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ electricsheep-ffmpeg.patch)
+sha1sums=('fd1c307912905ba456189efbb546ef0fe336fa32'
+ 'd6816e27c2a2f6c74ae61c99ad2d7fb28b1d1825')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/electricsheep-ffmpeg.patch"
+ ./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/electricsheep/electricsheep-ffmpeg.patch b/community/electricsheep/electricsheep-ffmpeg.patch
new file mode 100644
index 000000000..b04cf41b0
--- /dev/null
+++ b/community/electricsheep/electricsheep-ffmpeg.patch
@@ -0,0 +1,36 @@
+diff -Naur electricsheep-2.7b12.orig/electricsheep.c electricsheep-2.7b12/electricsheep.c
+--- electricsheep-2.7b12.orig/electricsheep.c 2011-10-31 22:36:30.000000000 -0400
++++ electricsheep-2.7b12/electricsheep.c 2011-10-31 22:40:04.000000000 -0400
+@@ -662,7 +662,7 @@
+ input_stream_index = -1;
+ for (j = 0; j < ictx->nb_streams; j++) {
+ AVCodecContext *enc = ictx->streams[j]->codec;
+- if (CODEC_TYPE_VIDEO == enc->codec_type) {
++ if (AVMEDIA_TYPE_VIDEO == enc->codec_type) {
+ input_stream_index = j;
+ break;
+ }
+@@ -730,7 +730,7 @@
+ av_init_packet(&opkt);
+ if (av_parser_change(ictx->streams[input_stream_index]->parser, output_ctx->streams[0]->codec,
+ &opkt.data, &opkt.size, ipkt.data, ipkt.size,
+- ipkt.flags & PKT_FLAG_KEY))
++ ipkt.flags & AV_PKT_FLAG_KEY))
+ opkt.destruct= av_destruct_packet;
+
+ if (-1 == av_interleaved_write_frame(output_ctx, &opkt)) {
+diff -Naur electricsheep-2.7b12.orig/electricsheep.c electricsheep-2.7b12/electricsheep.c
+--- electricsheep-2.7b12.orig/electricsheep.c 2011-11-01 00:21:51.000000000 -0400
++++ electricsheep-2.7b12/electricsheep.c 2011-11-01 00:25:10.000000000 -0400
+@@ -686,9 +686,9 @@
+ }
+ }
+
+- output_ctx = av_alloc_format_context();
++ output_ctx = avformat_alloc_context();
+
+- ofmt = guess_format(NULL, fname, NULL);
++ ofmt = av_guess_format(NULL, fname, NULL);
+ if (!ofmt) {
+ fprintf(logout, "could not determine format from %s.\n", fname);
+ exit(1);
diff --git a/community/elementary-svn/PKGBUILD b/community/elementary-svn/PKGBUILD
new file mode 100644
index 000000000..e65d7a2f7
--- /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=64794
+pkgrel=1
+pkgdesc="Enlightenment's basic widget set"
+arch=('i686' 'x86_64' 'mips64el')
+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..afb04adac
--- /dev/null
+++ b/community/elinks/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 54357 2011-08-17 12:23:10Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# 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
+_commit="30c485af4c4ba128d82171a6066594f3cfaeae5d"
+pkgrel=9
+pkgdesc="An advanced and well-established feature-rich text mode web browser."
+arch=("i686" "x86_64" 'mips64el')
+url="http://elinks.or.cz"
+license=('GPL')
+depends=('bzip2' 'expat>=2.0' 'gpm>=1.20.4' 'openssl' 'lua>=5.1.1' 'libidn' 'js'
+ 'gc' 'tre')
+makedepends=('git')
+source=()
+md5sums=()
+
+__gitroot="http://elinks.cz/elinks.git"
+__gitname="elinks"
+
+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"
+ git checkout "$_commit"
+
+ [ -x configure ] || sh autogen.sh
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --disable-smb --without-x --enable-cgi \
+ --enable-leds --enable-256-colors --enable-html-highlight \
+ --with-zlib
+ make
+}
+
+package() {
+ cd "$srcdir/$__gitname-build"
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/share/locale/locale.alias"
+
+ install -D -m644 "contrib/debian/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+}
diff --git a/community/emacs-nox/PKGBUILD b/community/emacs-nox/PKGBUILD
new file mode 100644
index 000000000..f9798663b
--- /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' 'mips64el')
+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..ecade52fa
--- /dev/null
+++ b/community/embryo-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=embryo-svn
+pkgver=64802
+pkgrel=1
+pkgdesc="implementation of a C like scripting language for e17"
+arch=('i686' 'x86_64' 'mips64el')
+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..b811963bd
--- /dev/null
+++ b/community/emerald/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 52293 2011-07-23 10:43:05Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=emerald
+pkgver=0.8.8
+pkgrel=1
+pkgdesc="Emerald window decorator"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.compiz.org"
+license=('GPL')
+depends=('compiz-core' '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)
+sha1sums=('a5deb2ae135d1c4dac7b57b2a0415f320ae7c0aa')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/emerald/deprecated_symbols.patch b/community/emerald/deprecated_symbols.patch
new file mode 100644
index 000000000..b32ce154a
--- /dev/null
+++ b/community/emerald/deprecated_symbols.patch
@@ -0,0 +1,114 @@
+From 30e3d45437b4285818ec016905151390c9604441 Mon Sep 17 00:00:00 2001
+From: ShadowKyogre <shadowkyogre@aim.com>
+Date: Fri, 05 Nov 2010 01:53:24 +0000
+Subject: Fix deprecated symbols and incorrect decoration property setting
+
+---
+diff --git a/src/main.c b/src/main.c
+index 5f0ec35..150da99 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -27,8 +27,8 @@
+ #include <emerald.h>
+ #include <engine.h>
+
+-#define BASE_PROP_SIZE 12
+-#define QUAD_PROP_SIZE 9
++//#define BASE_PROP_SIZE 12
++//#define QUAD_PROP_SIZE 9
+
+ #ifndef DECOR_INTERFACE_VERSION
+ #define DECOR_INTERFACE_VERSION 0
+@@ -2457,7 +2457,7 @@ static gboolean get_window_prop(Window xwindow, Atom atom, Window * val)
+ gdk_error_trap_push();
+
+ type = None;
+- result = XGetWindowProperty(gdk_display,
++ result = XGetWindowProperty(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+ xwindow,
+ atom,
+ 0, G_MAXLONG,
+@@ -4246,10 +4246,10 @@ static void force_quit_dialog_realize(GtkWidget * dialog, void *data)
+ WnckWindow *win = data;
+
+ gdk_error_trap_push();
+- XSetTransientForHint(gdk_display,
++ XSetTransientForHint(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+ GDK_WINDOW_XID(dialog->window),
+ wnck_window_get_xid(win));
+- XSync(gdk_display, FALSE);
++ XSync(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
+ gdk_error_trap_pop();
+ }
+
+@@ -4262,11 +4262,11 @@ static char *get_client_machine(Window xwindow)
+ int format, result;
+ char *retval;
+
+- atom = XInternAtom(gdk_display, "WM_CLIENT_MACHINE", FALSE);
++ atom = XInternAtom(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "WM_CLIENT_MACHINE", FALSE);
+
+ gdk_error_trap_push();
+
+- result = XGetWindowProperty(gdk_display,
++ result = XGetWindowProperty(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+ xwindow, atom,
+ 0, G_MAXLONG,
+ FALSE, XA_STRING, &type, &format, &nitems,
+@@ -4318,8 +4318,8 @@ static void kill_window(WnckWindow * win)
+ }
+
+ gdk_error_trap_push();
+- XKillClient(gdk_display, wnck_window_get_xid(win));
+- XSync(gdk_display, FALSE);
++ XKillClient(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), wnck_window_get_xid(win));
++ XSync(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
+ gdk_error_trap_pop();
+ }
+
+@@ -4739,7 +4739,7 @@ static XFixed *create_gaussian_kernel(double radius,
+
+ static int update_shadow(frame_settings * fs)
+ {
+- Display *xdisplay = gdk_display;
++ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ XRenderPictFormat *format;
+ GdkPixmap *pixmap;
+ Picture src, dst, tmp;
+--
+cgit v0.8.3.1-30-gff3a
+
+--- a/src/main.c.old 2010-12-07 19:56:08.633333370 +0100
++++ a/src/main.c 2010-12-07 19:56:39.273333379 +0100
+@@ -3757,7 +3757,7 @@
+
+ static void hide_tooltip(void)
+ {
+- if (GTK_WIDGET_VISIBLE(tip_window))
++ if (gtk_widget_get_visible (tip_window))
+ g_get_current_time(&tooltip_last_popdown);
+
+ gtk_widget_hide(tip_window);
+
+--- emerald-0.8.4/libengine/themer.c 2009-10-13 20:56:23.000000000 -0400
++++ emerald-0.8.4.new/libengine/themer.c 2010-03-10
+01:20:03.046827674 -0500
+@@ -461,7 +461,7 @@
+ }
+ gdouble get_float(SettingItem * item)
+ {
+- if(!strcmp(GTK_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
++ if(!strcmp(G_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
+ return gtk_spin_button_get_value((GtkSpinButton *)item->widget);
+ }
+ else {
+@@ -647,7 +647,7 @@
+ }
+ void set_float(SettingItem * item, gdouble f)
+ {
+- if(!strcmp(GTK_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
++ if(!strcmp(G_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
+ gtk_spin_button_set_value((GtkSpinButton *)item->widget, f);
+ }
+ else {
+
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..f86109ac9
--- /dev/null
+++ b/community/emesene/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Claudio Riva <firetux83@gmail.com>
+
+pkgname=emesene
+pkgver=2.11.11
+pkgrel=1
+pkgdesc="A pygtk MSN Messenger client"
+url="http://www.emesene.org/"
+license=('custom:PSF' 'GPL' 'LGPL2.1')
+arch=('i686' 'x86_64' 'mips64el') # libmimic is hardcoded, so no 'any' package
+depends=('python2' 'pygtk' 'python-dnspython' 'pylint' 'python-notify' 'openssl' \
+'papyon' 'python-imaging' 'dbus-python' 'xdg-utils' 'hicolor-icon-theme' \
+'gstreamer0.10-python' 'gstreamer0.10-good')
+makedepends=('python2-distribute')
+optdepends=('gnome-python-extras: spell-check plugin'
+ 'gtkspell: spell-check plugin'
+ 'farsight2: webcam support'
+ 'pywebkitgtk: for alternative conversation window'
+ 'xmpppy: for gtalk and facebook chat support'
+ 'pyqt: alternative qt4 interface (emesene -e main:qt4_main')
+source=("${pkgname}-${pkgver}.tar.gz::https://github.com/emesene/emesene/tarball/v2.11.11"
+ 'emesene.run')
+install=emesene.install
+options=('!libtool')
+sha1sums=('bf1c63d47617b746640950bd6aedf0fbe86e8743'
+ '2bd13ada86aa0af6307a41047f0d7caf2995660d')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgname}-c1bfdeb
+
+ # do not import dummy session
+ # sed -i -e "/import dummy/d" emesene/emesene.py
+
+ # install files
+ export PYTHONPATH="${pkgdir}/usr/lib/python2.7/site-packages/"
+ install -d ${pkgdir}/usr/lib/python2.7/site-packages/
+ python2 setup.py install --prefix=${pkgdir}/usr
+}
+
+package() {
+ cd ${pkgdir}
+
+ # use /usr/share/emesene instead of /usr/lib/python2.5/site-packages
+ mv -f ${pkgdir}/usr/lib/python2.7/site-packages/emesene-${pkgver}-py2.7.egg/share \
+ ${pkgdir}/usr
+ mv -f ${pkgdir}/usr/lib/python2.7/site-packages/emesene-${pkgver}-py2.7.egg/emesene \
+ ${pkgdir}/usr/share
+ rm -rf ${pkgdir}/usr/lib
+
+ # python -> python2
+ find -name *.py -exec sed -i "s|/usr/bin/env python|/usr/bin/env python2|" {} \;
+
+ # create executable
+ 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..9ff2df7f8
--- /dev/null
+++ b/community/emesene/emesene.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/emesene/emesene.run b/community/emesene/emesene.run
new file mode 100644
index 000000000..8fb6efc62
--- /dev/null
+++ b/community/emesene/emesene.run
@@ -0,0 +1,2 @@
+#!/bin/bash
+python2 /usr/share/emesene/emesene "$@"
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..cc25d3fcd
--- /dev/null
+++ b/community/emprint-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=emprint-svn
+pkgver=61738
+pkgrel=1
+pkgdesc="screenshot module for e17"
+arch=('i686' 'x86_64' 'mips64el')
+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..402c2e4ea
--- /dev/null
+++ b/community/encfs/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59928 2011-12-02 20:58:12Z ibiru $
+# 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=6
+pkgdesc='Encrypted filesystem in user-space'
+arch=('i686' 'x86_64' 'mips64el')
+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..b2c08e8b2
--- /dev/null
+++ b/community/enet/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 55996 2011-09-28 12:57:06Z jelle $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Bj?indeijer <bjorn@lindeijer.nl>
+pkgname=enet
+pkgver=1.3.3
+pkgrel=1
+pkgdesc='A relatively thin, simple and robust network communication layer on top of UDP.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://enet.bespin.org/'
+license=('custom')
+depends=('glibc')
+source=("http://enet.bespin.org/download/${pkgname}-${pkgver}.tar.gz")
+
+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
+}
+md5sums=('4b0b69377fd4511e82e5f0921a942e59')
diff --git a/community/enigma/PKGBUILD b/community/enigma/PKGBUILD
new file mode 100644
index 000000000..d7923a073
--- /dev/null
+++ b/community/enigma/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 51773 2011-07-14 18:20:30Z schuay $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+pkgname=enigma
+pkgver=1.04
+pkgrel=3
+pkgdesc=" Enigma is a puzzle game involving falling blocks"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.chiark.greenend.org.uk/~sgtatham/enigma/"
+license=('custom')
+depends=('ncurses')
+source=("http://www.chiark.greenend.org.uk/~sgtatham/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('a54ee9ae40dae781560a3c2b1ce8f45d')
+
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --localstatedir=/var
+ sed -i "s/root\.games/root.root/" Makefile
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/bin
+ make prefix=$pkgdir/usr localstatedir=$pkgdir/var install
+ install -Dm644 LICENCE ${pkgdir}/usr/share/licenses/${pkgname}/license
+}
diff --git a/community/enter/PKGBUILD b/community/enter/PKGBUILD
new file mode 100644
index 000000000..e74da4ff0
--- /dev/null
+++ b/community/enter/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 59871 2011-12-01 13:33:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=enter
+pkgver=0.0.9
+pkgrel=3
+pkgdesc="Enter is a lightweight graphical login manager for X."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://enter.sf.net"
+license=('GPL')
+depends=('libxft' 'imlib2' 'xorg-server')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('47a77ae57e667f887f856c0a126d667a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|\[xft-config\]|\[pkg-config\]|' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc CFLAGS="$CFLAGS -lcrypt"
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/epic4/PKGBUILD b/community/epic4/PKGBUILD
new file mode 100644
index 000000000..472f701fc
--- /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' 'mips64el')
+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..a3e513814
--- /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' 'mips64el')
+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..a29008e29
--- /dev/null
+++ b/community/esmtp/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: 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=4
+pkgdesc="An easy SMTP forwarder."
+arch=('i686' 'x86_64' 'mips64el')
+url='http://esmtp.sourceforge.net'
+license=('GPL')
+depends=('libesmtp' 'openssl')
+optdepends=('liblockfile: for esmtp-wrapper script'
+ 'procmail: for local mail delivery')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm0644 README "${pkgdir}/usr/share/doc/esmtp/README"
+ install -Dm0644 sample.esmtprc "${pkgdir}/usr/share/doc/esmtp/sample.esmtprc"
+ install -Dm0755 esmtp-wrapper "${pkgdir}/usr/share/esmtp/esmtp-wrapper"
+ install -Dm0755 ylwrap "${pkgdir}/usr/share/esmtp/ylwrap"
+}
diff --git a/community/espeak/PKGBUILD b/community/espeak/PKGBUILD
new file mode 100644
index 000000000..9e51a6a47
--- /dev/null
+++ b/community/espeak/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56889 2011-10-16 05:47:23Z bpiotrowski $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: niQo
+# Contributor: Christoph Siegenthaler <csi@gmx.ch>
+
+pkgname=espeak
+pkgver=1.45.05
+pkgrel=1
+pkgdesc="Text to Speech engine for good quality English, with support for other languages"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://espeak.sourceforge.net/"
+license=('GPL')
+depends=('gcc-libs' 'portaudio')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}-source.zip)
+md5sums=('00692552d54f1849a1a0ad21ae3fc820')
+
+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..2345d7f6c
--- /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' 'mips64el')
+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..332dfcd9b
--- /dev/null
+++ b/community/eterm/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Adam 'battlemidget' Stokes <adam.stokes@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=eterm
+pkgver=0.9.6
+pkgrel=1
+pkgdesc="A vt102 terminal emulator intended as a replacement for xterm."
+arch=('i686' 'x86_64' 'mips64el')
+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=('90e424584c22d4050496874d14f78bb1')
+
+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..2e3713e94
--- /dev/null
+++ b/community/etherape/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 48609 2011-06-03 09:54:50Z ttopper $
+# 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.12
+pkgrel=1
+pkgdesc="A graphical network monitor for various OSI layers and protocols"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+sha1sums=('8e9cc85e73e44eccb236f488111e02f418ab095d')
+
+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..25aaf34b9
--- /dev/null
+++ b/community/etl/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Franco Iacomella <yaco@gnu.org>
+
+pkgname=etl
+pkgver=0.04.14
+pkgrel=1
+pkgdesc="VoriaETL: C++ STL complementory multiplatform template library"
+arch=(i686 x86_64 'mips64el')
+url="http://synfig.org"
+license=('GPL2')
+depends=()
+conflicts=('synfig-etl')
+replaces=('synfig-etl')
+source=(http://arch.p5n.pp.ru/~sergej/dl/synfig-0.63.00.tar.gz)
+md5sums=('ea3633e9522ae89489519af351ba2443')
+
+build() {
+ cd $srcdir/synfig-fb5ba9c/ETL
+ [ -f configure ] || { libtoolize --ltdl --copy --force && autoreconf --install --force; }
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/synfig-fb5ba9c/ETL
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/evas-svn/PKGBUILD b/community/evas-svn/PKGBUILD
new file mode 100755
index 000000000..95e1ae93f
--- /dev/null
+++ b/community/evas-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=evas-svn
+pkgver=64779
+pkgrel=1
+pkgdesc="A hardware-accelerated canvas API for X-Windows"
+arch=('i686' 'x86_64' 'mips64el')
+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/exim/ChangeLog b/community/exim/ChangeLog
new file mode 100644
index 000000000..80a101472
--- /dev/null
+++ b/community/exim/ChangeLog
@@ -0,0 +1,29 @@
+2011-10-10 Angel Velasquez <angvp@archlinux.org>
+ * Updated to 4.77
+
+2011-07-15 Angel Velasquez <angvp@archlinux.org>
+ * Rebuilt without tcp_wrappers
+ * Fixing logrotate issue FS#25094
+ * ChangeLog file changed name from exim.changelog to ChangeLog
+
+2011-06-16 Angel Velasquez <angvp@archlinux.org>
+ * Rebuilt against db 5.2.28
+
+2010-05-09 Angel Velasquez <angvp@archlinux.org>
+ * Updated to 4.76
+ * Removed previous patch since is no longer needed
+ * Removed newaliases script FS#22744
+ * Removed sudo dependency
+
+2010-05-07 Angel Velasquez <angvp@archlinux.org>
+ * Adding patch for security issue see: http://goo.gl/QBict
+
+2010-05-06 Angel Velasquez <angvp@archlinux.org>
+ * Setting sticky id to deliver mail. Closes FS#24109
+
+2010-04-30 Angel Velasquez <angvp@archlinux.org>
+ * exim 4.75
+ * Config updated with the aliases path. Closes FS#22743
+ * Removed sed hackings and added a exim.Makefile . Closes FS#22744
+ * Replaced creation of the user at build time. Closes FS#22745
+
diff --git a/community/exim/PKGBUILD b/community/exim/PKGBUILD
new file mode 100644
index 000000000..b68675132
--- /dev/null
+++ b/community/exim/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 56931 2011-10-17 02:10:43Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=exim
+pkgver=4.77
+pkgrel=1.1
+pkgdesc="A Message Transfer Agent"
+arch=(i686 x86_64 'mips64el')
+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
+changelog=ChangeLog
+depends=('db' 'pcre' 'pam' 'openssl' 'libldap')
+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
+ exim
+ exim.logrotate
+ exim.conf.d
+ exim.Makefile)
+md5sums=('5d746275f2cc85845567f9d5eb84a57a'
+ '4874006f0585253ddab027d441009757'
+ '9aed772e87223213e8da9ca5e7376869'
+ 'e18a535218718c5eb394ed5c9296fe06'
+ 'b75fe4c6e960a59a25b5f51e8f61ba3a'
+ '5c2891dc3535c346982fa358fbba6d31')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #sed -i 's|tail -1|tail -n -1|g' scripts/Configure-config.h
+ # Make some configuration changes
+ cp "$srcdir/$pkgname.Makefile" 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}
+ chmod 770 ${pkgdir}/var/spool/exim ${pkgdir}/var/spool/exim/db ${pkgdir}/var/log/exim
+ cd build-Linux-*
+ for i in exicyclog exim_checkaccess exim_dumpdb exim_lock\
+ exim_tidydb exipick exiqsumm exigrep exim_dbmbuild exim\
+ exim_fixdb eximstats exinext exiqgrep exiwhat; do
+ install -m 0755 "$i" "$pkgdir/usr/sbin"
+ done
+
+ cd "$srcdir/exim-$pkgver/src"
+ sed -e "s|/etc/aliases|/etc/mail/aliases|g" \
+ -e "s|SYSTEM_ALIASES_FILE|/etc/mail/aliases|g" configure.default \
+ >"$pkgdir/etc/mail/exim.conf"
+
+ cp "$srcdir/aliases" "$pkgdir/etc/mail"
+ cd "$pkgdir/usr/sbin"
+ for i in mailq rmail rsmtp runq sendmail; do
+ ln -s exim "$i"
+ done
+ # fhs compliancy
+ ln -s ../sbin/exim ../lib/sendmail
+
+ mkdir -p "$pkgdir/etc/rc.d"
+ cp "$srcdir/exim" "$pkgdir/etc/rc.d"
+}
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.Makefile b/community/exim/exim.Makefile
new file mode 100644
index 000000000..0a6397318
--- /dev/null
+++ b/community/exim/exim.Makefile
@@ -0,0 +1,1227 @@
+# $Cambridge: exim/src/src/EDITME,v 1.27 2010/06/12 15:21:25 jetmore Exp $
+
+##################################################
+# The Exim mail transport agent #
+##################################################
+
+# This is the template for Exim's main build-time configuration file. It
+# contains settings that are independent of any operating system. These are
+# things that are mostly sysadmin choices. The items below are divided into
+# those you must specify, those you probably want to specify, those you might
+# often want to specify, and those that you almost never need to mention.
+
+# Edit this file and save the result to a file called Local/Makefile within the
+# Exim distribution directory before running the "make" command.
+
+# Things that depend on the operating system have default settings in
+# OS/Makefile-Default, but these are overridden for some OS by files called
+# called OS/Makefile-<osname>. You can further override these by creating files
+# called Local/Makefile-<osname>, where "<osname>" stands for the name of your
+# operating system - look at the names in the OS directory to see which names
+# are recognized.
+
+# However, if you are building Exim for a single OS only, you don't need to
+# worry about setting up Local/Makefile-<osname>. Any build-time configuration
+# settings you require can in fact be placed in the one file called
+# Local/Makefile. It is only if you are building for several OS from the same
+# source files that you need to worry about splitting off your own OS-dependent
+# settings into separate files. (There's more explanation about how this all
+# works in the toplevel README file, under "Modifying the building process", as
+# well as in the Exim specification.)
+
+# One OS-specific thing that may need to be changed is the command for running
+# the C compiler; the overall default is gcc, but some OS Makefiles specify cc.
+# You can override anything that is set by putting CC=whatever in your
+# Local/Makefile.
+
+# NOTE: You should never need to edit any of the distributed Makefiles; all
+# overriding can be done in your Local/Makefile(s). This will make it easier
+# for you when the next release comes along.
+
+# The location of the X11 libraries is something else that is quite variable
+# even between different versions of the same operating system (and indeed
+# there are different versions of X11 as well, of course). The four settings
+# concerned here are X11, XINCLUDE, XLFLAGS (linking flags) and X11_LD_LIB
+# (dynamic run-time library). You need not worry about X11 unless you want to
+# compile the Exim monitor utility. Exim itself does not use X11.
+
+# Another area of variability between systems is the type and location of the
+# DBM library package. Exim has support for ndbm, gdbm, tdb, and Berkeley DB.
+# By default the code assumes ndbm; this often works with gdbm or DB, provided
+# they are correctly installed, via their compatibility interfaces. However,
+# Exim can also be configured to use the native calls for Berkeley DB (obsolete
+# versions 1.85, 2.x, 3.x, or the current 4.x version) and also for gdbm.
+
+# For some operating systems, a default DBM library (other than ndbm) is
+# selected by a setting in the OS-specific Makefile. Most modern OS now have
+# a DBM library installed as standard, and in many cases this will be selected
+# for you by the OS-specific configuration. If Exim compiles without any
+# problems, you probably do not have to worry about the DBM library. If you
+# do want or need to change it, you should first read the discussion in the
+# file doc/dbm.discuss.txt, which also contains instructions for testing Exim's
+# interface to the DBM library.
+
+# In Local/Makefiles blank lines and lines starting with # are ignored. It is
+# also permitted to use the # character to add a comment to a setting, for
+# example
+#
+# EXIM_GID=42 # the "mail" group
+#
+# However, with some versions of "make" this works only if there is no white
+# space between the end of the setting and the #, so perhaps it is best
+# avoided. A consequence of this facility is that it is not possible to have
+# the # character present in any setting, but I can't think of any cases where
+# this would be wanted.
+###############################################################################
+
+
+
+###############################################################################
+# THESE ARE THINGS YOU MUST SPECIFY #
+###############################################################################
+
+# Exim will not build unless you specify BIN_DIRECTORY, CONFIGURE_FILE, and
+# EXIM_USER. You also need EXIM_GROUP if EXIM_USER specifies a uid by number.
+
+# If you don't specify SPOOL_DIRECTORY, Exim won't fail to build. However, it
+# really is a very good idea to specify it here rather than at run time. This
+# is particularly true if you let the logs go to their default location in the
+# spool directory, because it means that the location of the logs is known
+# before Exim has read the run time configuration file.
+
+#------------------------------------------------------------------------------
+# BIN_DIRECTORY defines where the exim binary will be installed by "make
+# install". The path is also used internally by Exim when it needs to re-invoke
+# itself, either to send an error message, or to recover root privilege. Exim's
+# utility binaries and scripts are also installed in this directory. There is
+# no "standard" place for the binary directory. Some people like to keep all
+# the Exim files under one directory such as /usr/exim; others just let the
+# Exim binaries go into an existing directory such as /usr/sbin or
+# /usr/local/sbin. The installation script will try to create this directory,
+# and any superior directories, if they do not exist.
+
+BIN_DIRECTORY=/usr/sbin
+
+
+#------------------------------------------------------------------------------
+# CONFIGURE_FILE defines where Exim's run time configuration file is to be
+# found. It is the complete pathname for the file, not just a directory. The
+# location of all other run time files and directories can be changed in the
+# run time configuration file. There is a lot of variety in the choice of
+# location in different OS, and in the preferences of different sysadmins. Some
+# common locations are in /etc or /etc/mail or /usr/local/etc or
+# /usr/local/etc/mail. Another possibility is to keep all the Exim files under
+# a single directory such as /usr/exim. Whatever you choose, the installation
+# script will try to make the directory and any superior directories if they
+# don't exist. It will also install a default runtime configuration if this
+# file does not exist.
+
+CONFIGURE_FILE=/etc/mail/exim.conf
+
+# It is possible to specify a colon-separated list of files for CONFIGURE_FILE.
+# In this case, Exim will use the first of them that exists when it is run.
+# However, if a list is specified, the installation script no longer tries to
+# make superior directories or to install a default runtime configuration.
+
+
+#------------------------------------------------------------------------------
+# The Exim binary must normally be setuid root, so that it starts executing as
+# root, but (depending on the options with which it is called) it does not
+# always need to retain the root privilege. These settings define the user and
+# group that is used for Exim processes when they no longer need to be root. In
+# particular, this applies when receiving messages and when doing remote
+# deliveries. (Local deliveries run as various non-root users, typically as the
+# owner of a local mailbox.) Specifying these values as root is not supported.
+
+EXIM_USER=ref:exim
+
+# If you specify EXIM_USER as a name, this is looked up at build time, and the
+# uid number is built into the binary. However, you can specify that this
+# lookup is deferred until runtime. In this case, it is the name that is built
+# into the binary. You can do this by a setting of the form:
+
+# EXIM_USER=ref:exim
+
+# In other words, put "ref:" in front of the user name. If you set EXIM_USER
+# like this, any value specified for EXIM_GROUP is also passed "by reference".
+# Although this costs a bit of resource at runtime, it is convenient to use
+# this feature when building binaries that are to be run on multiple systems
+# where the name may refer to different uids. It also allows you to build Exim
+# on a system where there is no Exim user defined.
+
+# If the setting of EXIM_USER is numeric (e.g. EXIM_USER=42), there must
+# also be a setting of EXIM_GROUP. If, on the other hand, you use a name
+# for EXIM_USER (e.g. EXIM_USER=exim), you don't need to set EXIM_GROUP unless
+# you want to use a group other than the default group for the given user.
+
+# EXIM_GROUP=
+
+# Many sites define a user called "exim", with an appropriate default group,
+# and use
+#
+# EXIM_USER=exim
+#
+# while leaving EXIM_GROUP unspecified (commented out).
+
+
+#------------------------------------------------------------------------------
+# SPOOL_DIRECTORY defines the directory where all the data for messages in
+# transit is kept. It is strongly recommended that you define it here, though
+# it is possible to leave this till the run time configuration.
+
+# Exim creates the spool directory if it does not exist. The owner and group
+# will be those defined by EXIM_USER and EXIM_GROUP, and this also applies to
+# all the files and directories that are created in the spool directory.
+
+# Almost all installations choose this:
+
+SPOOL_DIRECTORY=/var/spool/exim
+
+
+
+###############################################################################
+# THESE ARE THINGS YOU PROBABLY WANT TO SPECIFY #
+###############################################################################
+
+# If you need extra header file search paths on all compiles, put the -I
+# options in INCLUDE. If you want the extra searches only for certain
+# parts of the build, see more specific xxx_INCLUDE variables below.
+
+# INCLUDE=-I/example/include
+
+# You need to specify some routers and transports if you want the Exim that you
+# are building to be capable of delivering mail. You almost certainly need at
+# least one type of lookup. You should consider whether you want to build
+# the Exim monitor or not.
+
+
+#------------------------------------------------------------------------------
+# These settings determine which individual router drivers are included in the
+# Exim binary. There are no defaults in the code; those routers that are wanted
+# must be defined here by setting the appropriate variables to the value "yes".
+# Including a router in the binary does not cause it to be used automatically.
+# It has also to be configured in the run time configuration file. By
+# commenting out those you know you don't want to use, you can make the binary
+# a bit smaller. If you are unsure, leave all of these included for now.
+
+ROUTER_ACCEPT=yes
+ROUTER_DNSLOOKUP=yes
+ROUTER_IPLITERAL=yes
+ROUTER_MANUALROUTE=yes
+ROUTER_QUERYPROGRAM=yes
+ROUTER_REDIRECT=yes
+
+# This one is very special-purpose, so is not included by default.
+
+# ROUTER_IPLOOKUP=yes
+
+
+#------------------------------------------------------------------------------
+# These settings determine which individual transport drivers are included in
+# the Exim binary. There are no defaults; those transports that are wanted must
+# be defined here by setting the appropriate variables to the value "yes".
+# Including a transport in the binary does not cause it to be used
+# automatically. It has also to be configured in the run time configuration
+# file. By commenting out those you know you don't want to use, you can make
+# the binary a bit smaller. If you are unsure, leave all of these included for
+# now.
+
+TRANSPORT_APPENDFILE=yes
+TRANSPORT_AUTOREPLY=yes
+TRANSPORT_PIPE=yes
+TRANSPORT_SMTP=yes
+
+# This one is special-purpose, and commonly not required, so it is not
+# included by default.
+
+TRANSPORT_LMTP=yes
+
+
+#------------------------------------------------------------------------------
+# The appendfile transport can write messages to local mailboxes in a number
+# of formats. The code for three specialist formats, maildir, mailstore, and
+# MBX, is included only when requested. If you do not know what this is about,
+# leave these settings commented out.
+
+SUPPORT_MAILDIR=yes
+# SUPPORT_MAILSTORE=yes
+# SUPPORT_MBX=yes
+
+
+#------------------------------------------------------------------------------
+# See below for dynamic lookup modules.
+# LOOKUP_MODULE_DIR=/usr/lib/exim/lookups/
+# If not using package management but using this anyway, then think about how
+# you perform upgrades and revert them. You should consider the benefit of
+# embedding the Exim version number into LOOKUP_MODULE_DIR, so that you can
+# maintain two concurrent sets of modules.
+
+# To build a module dynamically, you'll need to define CFLAGS_DYNAMIC for
+# your platform. Eg:
+# CFLAGS_DYNAMIC=-shared -rdynamic
+# CFLAGS_DYNAMIC=-shared -rdynamic -fPIC
+
+#------------------------------------------------------------------------------
+# These settings determine which file and database lookup methods are included
+# in the binary. See the manual chapter entitled "File and database lookups"
+# for discussion. DBM and lsearch (linear search) are included by default. If
+# you are unsure about the others, leave them commented out for now.
+# LOOKUP_DNSDB does *not* refer to general mail routing using the DNS. It is
+# for the specialist case of using the DNS as a general database facility (not
+# common).
+# If set to "2" instead of "yes" then the corresponding lookup will be
+# built as a module and must be installed into LOOKUP_MODULE_DIR. You need to
+# add -export-dynamic -rdynamic to EXTRALIBS. You may also need to add -ldl to
+# EXTRALIBS so that dlopen() is available to Exim. You need to define
+# LOOKUP_MODULE_DIR above so the exim binary actually loads dynamic lookup
+# modules.
+# Also, instead of adding all the libraries/includes to LOOKUP_INCLUDE and
+# LOOKUP_LIBS, add them to the respective LOOKUP_*_INCLUDE and LOOKUP_*_LIBS
+# (where * is the name as given here in this list). That ensures that only
+# the dynamic library and not the exim binary will be linked against the
+# library.
+# NOTE: LDAP cannot be built as a module!
+
+LOOKUP_DBM=yes
+LOOKUP_LSEARCH=yes
+LOOKUP_DNSDB=yes
+
+# LOOKUP_CDB=yes
+LOOKUP_DSEARCH=yes
+# LOOKUP_IBASE=yes
+LOOKUP_LDAP=yes
+# LOOKUP_MYSQL=yes
+# LOOKUP_NIS=yes
+# LOOKUP_NISPLUS=yes
+# LOOKUP_ORACLE=yes
+# LOOKUP_PASSWD=yes
+# LOOKUP_PGSQL=yes
+# LOOKUP_SQLITE=yes
+# LOOKUP_WHOSON=yes
+
+# These two settings are obsolete; all three lookups are compiled when
+# LOOKUP_LSEARCH is enabled. However, we retain these for backward
+# compatibility. Setting one forces LOOKUP_LSEARCH if it is not set.
+
+# LOOKUP_WILDLSEARCH=yes
+# LOOKUP_NWILDLSEARCH=yes
+
+
+#------------------------------------------------------------------------------
+# If you have set LOOKUP_LDAP=yes, you should set LDAP_LIB_TYPE to indicate
+# which LDAP library you have. Unfortunately, though most of their functions
+# are the same, there are minor differences. Currently Exim knows about four
+# LDAP libraries: the one from the University of Michigan (also known as
+# OpenLDAP 1), OpenLDAP 2, the Netscape SDK library, and the library that comes
+# with Solaris 7 onwards. Uncomment whichever of these you are using.
+
+# LDAP_LIB_TYPE=OPENLDAP1
+LDAP_LIB_TYPE=OPENLDAP2
+# LDAP_LIB_TYPE=NETSCAPE
+# LDAP_LIB_TYPE=SOLARIS
+
+# If you don't set any of these, Exim assumes the original University of
+# Michigan (OpenLDAP 1) library.
+
+
+#------------------------------------------------------------------------------
+# The PCRE library is required for exim. There is no longer an embedded
+# version of the PCRE library included with the source code, instead you
+# must use a system library or build your own copy of PCRE.
+# In either case you must specify the library link info here. If the
+# PCRE header files are not in the standard search path you must also
+# modify the INCLUDE path (above)
+# The default setting of PCRE_LIBS should work on the vast majority of
+# systems
+
+PCRE_LIBS=-lpcre
+
+
+#------------------------------------------------------------------------------
+# Additional libraries and include directories may be required for some
+# lookup styles (e.g. LDAP, MYSQL or PGSQL). LOOKUP_LIBS is included only on
+# the command for linking Exim itself, not on any auxiliary programs. You
+# don't need to set LOOKUP_INCLUDE if the relevant directories are already
+# specified in INCLUDE. The settings below are just examples; -lpq is for
+# PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite.
+
+# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
+# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3
+
+
+#------------------------------------------------------------------------------
+# Compiling the Exim monitor: If you want to compile the Exim monitor, a
+# program that requires an X11 display, then EXIM_MONITOR should be set to the
+# value "eximon.bin". Comment out this setting to disable compilation of the
+# monitor. The locations of various X11 directories for libraries and include
+# files are defaulted in the OS/Makefile-Default file, but can be overridden in
+# local OS-specific make files.
+
+
+
+
+#------------------------------------------------------------------------------
+# Compiling Exim with content scanning support: If you want to compile Exim
+# with support for message body content scanning, set WITH_CONTENT_SCAN to
+# the value "yes". This will give you malware and spam scanning in the DATA ACL,
+# and the MIME ACL. Please read the documentation to learn more about these
+# features.
+
+WITH_CONTENT_SCAN=yes
+
+# If you want to use the deprecated "demime" condition in the DATA ACL,
+# uncomment the line below. Doing so will also explicitly turn on the
+# WITH_CONTENT_SCAN option. If possible, use the MIME ACL instead of
+# the "demime" condition.
+
+WITH_OLD_DEMIME=yes
+
+# If you're using ClamAV and are backporting fixes to an old version, instead
+# of staying current (which is the more usual approach) then you may need to
+# use an older API which uses a STREAM command, now deprecated, instead of
+# zINSTREAM. If you need to set this, please let the Exim developers know, as
+# if nobody reports a need for it, we'll remove this option and clean up the
+# code. zINSTREAM was introduced with ClamAV 0.95.
+#
+# WITH_OLD_CLAMAV_STREAM=yes
+
+#------------------------------------------------------------------------------
+# By default Exim includes code to support DKIM (DomainKeys Identified
+# Mail, RFC4871) signing and verification. Verification of signatures is
+# turned on by default. See the spec for information on conditionally
+# disabling it. To disable the inclusion of the entire feature, set
+# DISABLE_DKIM to "yes"
+
+# DISABLE_DKIM=yes
+
+
+#------------------------------------------------------------------------------
+# Compiling Exim with experimental features. These are documented in
+# experimental-spec.txt. "Experimental" means that the way these features are
+# implemented may still change. Backward compatibility is not guaranteed.
+
+# Uncomment the following lines to add SPF support. You need to have libspf2
+# installed on your system (www.libspf2.org). Depending on where it is installed
+# you may have to edit the CFLAGS and LDFLAGS lines.
+
+# EXPERIMENTAL_SPF=yes
+# CFLAGS += -I/usr/local/include
+# LDFLAGS += -lspf2
+
+# Uncomment the following lines to add SRS (Sender rewriting scheme) support.
+# You need to have libsrs_alt installed on your system (srs.mirtol.com).
+# Depending on where it is installed you may have to edit the CFLAGS and
+# LDFLAGS lines.
+
+# EXPERIMENTAL_SRS=yes
+# CFLAGS += -I/usr/local/include
+# LDFLAGS += -lsrs_alt
+
+# Uncomment the following lines to add Brightmail AntiSpam support. You need
+# to have the Brightmail client SDK installed. Please check the experimental
+# documentation for implementation details. You need to edit the CFLAGS and
+# LDFLAGS lines.
+
+# EXPERIMENTAL_BRIGHTMAIL=yes
+# CFLAGS += -I/opt/brightmail/bsdk-6.0/include
+# LDFLAGS += -lxml2_single -lbmiclient_single -L/opt/brightmail/bsdk-6.0/lib
+
+
+
+###############################################################################
+# THESE ARE THINGS YOU MIGHT WANT TO SPECIFY #
+###############################################################################
+
+# The items in this section are those that are commonly changed according to
+# the sysadmin's preferences, but whose defaults are often acceptable. The
+# first five are concerned with security issues, where differing levels of
+# paranoia are appropriate in different environments. Sysadmins also vary in
+# their views on appropriate levels of defence in these areas. If you do not
+# understand these issues, go with the defaults, which are used by many sites.
+
+
+#------------------------------------------------------------------------------
+# Although Exim is normally a setuid program, owned by root, it refuses to run
+# local deliveries as root by default. There is a runtime option called
+# "never_users" which lists the users that must never be used for local
+# deliveries. There is also the setting below, which provides a list that
+# cannot be overridden at runtime. This guards against problems caused by
+# unauthorized changes to the runtime configuration. You are advised not to
+# remove "root" from this option, but you can add other users if you want. The
+# list is colon-separated. It must NOT contain any spaces.
+
+# FIXED_NEVER_USERS=root:bin:daemon
+FIXED_NEVER_USERS=root
+
+
+#------------------------------------------------------------------------------
+# By default, Exim insists that its configuration file be owned by root. You
+# can specify one additional permitted owner here.
+
+# CONFIGURE_OWNER=
+
+# If the configuration file is group-writeable, Exim insists by default that it
+# is owned by root. You can specify one additional permitted group owner here.
+
+# CONFIGURE_GROUP=
+
+# If you specify CONFIGURE_OWNER or CONFIGURE_GROUP as a name, this is looked
+# up at build time, and the uid or gid number is built into the binary.
+# However, you can specify that the lookup is deferred until runtime. In this
+# case, it is the name that is built into the binary. You can do this by a
+# setting of the form:
+
+# CONFIGURE_OWNER=ref:mail
+# CONFIGURE_GROUP=ref:sysadmin
+
+# In other words, put "ref:" in front of the user or group name. Although this
+# costs a bit of resource at runtime, it is convenient to use this feature when
+# building binaries that are to be run on multiple systems where the names may
+# refer to different uids or gids. It also allows you to build Exim on a system
+# where the relevant user or group is not defined.
+
+
+#------------------------------------------------------------------------------
+# The -C option allows Exim to be run with an alternate runtime configuration
+# file. When this is used by root, root privilege is retained by the binary
+# (for any other caller including the Exim user, it is dropped). You can
+# restrict the location of alternate configurations by defining a prefix below.
+# Any file used with -C must then start with this prefix (except that /dev/null
+# is also permitted if the caller is root, because that is used in the install
+# script). If the prefix specifies a directory that is owned by root, a
+# compromise of the Exim account does not permit arbitrary alternate
+# configurations to be used. The prefix can be more restrictive than just a
+# directory (the second example).
+
+# ALT_CONFIG_PREFIX=/some/directory/
+# ALT_CONFIG_PREFIX=/some/directory/exim.conf-
+
+
+#------------------------------------------------------------------------------
+# When a user other than root uses the -C option to override the configuration
+# file (including the Exim user when re-executing Exim to regain root
+# privileges for local message delivery), this will normally cause Exim to
+# drop root privileges. The TRUSTED_CONFIG_LIST option, specifies a file which
+# contains a list of trusted configuration filenames, one per line. If the -C
+# option is used by the Exim user or by the user specified in the
+# CONFIGURE_OWNER setting, to specify a configuration file which is listed in
+# the TRUSTED_CONFIG_LIST file, then root privileges are not dropped by Exim.
+
+# TRUSTED_CONFIG_LIST=/usr/exim/trusted_configs
+
+
+#------------------------------------------------------------------------------
+# Uncommenting this option disables the use of the -D command line option,
+# which changes the values of macros in the runtime configuration file.
+# This is another protection against somebody breaking into the Exim account.
+
+# DISABLE_D_OPTION=yes
+
+
+#------------------------------------------------------------------------------
+# By contrast, you might be maintaining a system which relies upon the ability
+# to override values with -D and assumes that these will be passed through to
+# the delivery processes. As of Exim 4.73, this is no longer the case by
+# default. Going forward, we strongly recommend that you use a shim Exim
+# configuration file owned by root stored under TRUSTED_CONFIG_LIST.
+# That shim can set macros before .include'ing your main configuration file.
+#
+# As a strictly transient measure to ease migration to 4.73, the
+# WHITELIST_D_MACROS value definies a colon-separated list of macro-names
+# which are permitted to be overridden from the command-line which will be
+# honoured by the Exim user. So these are macros that can persist to delivery
+# time.
+# Examples might be -DTLS or -DSPOOL=/some/dir. The values on the
+# command-line are filtered to only permit: [A-Za-z0-9_/.-]*
+#
+# This option is highly likely to be removed in a future release. It exists
+# only to make 4.73 as easy as possible to migrate to. If you use it, we
+# encourage you to schedule time to rework your configuration to not depend
+# upon it. Most people should not need to use this.
+#
+# By default, no macros are whitelisted for -D usage.
+
+# WHITELIST_D_MACROS=TLS:SPOOL
+
+#------------------------------------------------------------------------------
+# Exim has support for the AUTH (authentication) extension of the SMTP
+# protocol, as defined by RFC 2554. If you don't know what SMTP authentication
+# is, you probably won't want to include this code, so you should leave these
+# settings commented out. If you do want to make use of SMTP authentication,
+# you must uncomment at least one of the following, so that appropriate code is
+# included in the Exim binary. You will then need to set up the run time
+# configuration to make use of the mechanism(s) selected.
+
+AUTH_CRAM_MD5=yes
+# AUTH_CYRUS_SASL=yes
+AUTH_DOVECOT=yes
+AUTH_PLAINTEXT=yes
+AUTH_SPA=yes
+
+
+#------------------------------------------------------------------------------
+# If you specified AUTH_CYRUS_SASL above, you should ensure that you have the
+# Cyrus SASL library installed before trying to build Exim, and you probably
+# want to uncomment the following line:
+
+# AUTH_LIBS=-lsasl2
+
+
+#------------------------------------------------------------------------------
+# When Exim is decoding MIME "words" in header lines, most commonly for use
+# in the $header_xxx expansion, it converts any foreign character sets to the
+# one that is set in the headers_charset option. The default setting is
+# defined by this setting:
+
+HEADERS_CHARSET="ISO-8859-1"
+
+# If you are going to make use of $header_xxx expansions in your configuration
+# file, or if your users are going to use them in filter files, and the normal
+# character set on your host is something other than ISO-8859-1, you might
+# like to specify a different default here. This value can be overridden in
+# the runtime configuration, and it can also be overridden in individual filter
+# files.
+#
+# IMPORTANT NOTE: The iconv() function is needed for character code
+# conversions. Please see the next item...
+
+
+#------------------------------------------------------------------------------
+# Character code conversions are possible only if the iconv() function is
+# installed on your operating system. There are two places in Exim where this
+# is relevant: (a) The $header_xxx expansion (see the previous item), and (b)
+# the Sieve filter support. For those OS where iconv() is known to be installed
+# as standard, the file in OS/Makefile-xxxx contains
+#
+# HAVE_ICONV=yes
+#
+# If you are not using one of those systems, but have installed iconv(), you
+# need to uncomment that line above. In some cases, you may find that iconv()
+# and its header file are not in the default places. You might need to use
+# something like this:
+#
+# HAVE_ICONV=yes
+# CFLAGS=-O -I/usr/local/include
+# EXTRALIBS_EXIM=-L/usr/local/lib -liconv
+#
+# but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM
+# as well.
+
+
+#------------------------------------------------------------------------------
+# The passwords for user accounts are normally encrypted with the crypt()
+# function. Comparisons with encrypted passwords can be done using Exim's
+# "crypteq" expansion operator. (This is commonly used as part of the
+# configuration of an authenticator for use with SMTP AUTH.) At least one
+# operating system has an extended function called crypt16(), which uses up to
+# 16 characters of a password (the normal crypt() uses only the first 8). Exim
+# supports the use of crypt16() as well as crypt() but note the warning below.
+
+# You can always indicate a crypt16-encrypted password by preceding it with
+# "{crypt16}". If you want the default handling (without any preceding
+# indicator) to use crypt16(), uncomment the following line:
+
+# DEFAULT_CRYPT=crypt16
+
+# If you do that, you can still access the basic crypt() function by preceding
+# an encrypted password with "{crypt}". For more details, see the description
+# of the "crypteq" condition in the manual chapter on string expansions.
+
+# Some operating systems do not include a crypt16() function, so Exim has one
+# of its own, which it uses unless HAVE_CRYPT16 is defined. Normally, that will
+# be set in an OS-specific Makefile for the OS that have such a function, so
+# you should not need to bother with it.
+
+# *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
+# It turns out that the above is not entirely accurate. As well as crypt16()
+# there is a function called bigcrypt() that some operating systems have. This
+# may or may not use the same algorithm, and both of them may be different to
+# Exim's built-in crypt16() that is used unless HAVE_CRYPT16 is defined.
+#
+# However, since there is now a move away from the traditional crypt()
+# functions towards using SHA1 and other algorithms, tidying up this area of
+# Exim is seen as very low priority. In practice, if you need to, you can
+# define DEFAULT_CRYPT to the name of any function that has the same interface
+# as the traditional crypt() function.
+# *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
+
+
+#------------------------------------------------------------------------------
+# Exim can be built to support the SMTP STARTTLS command, which implements
+# Transport Layer Security using SSL (Secure Sockets Layer). To do this, you
+# must install the OpenSSL library package or the GnuTLS library. Exim contains
+# no cryptographic code of its own. Uncomment the following lines if you want
+# to build Exim with TLS support. If you don't know what this is all about,
+# leave these settings commented out.
+
+# This setting is required for any TLS support (either OpenSSL or GnuTLS)
+SUPPORT_TLS=yes
+
+# Uncomment this setting if you are using OpenSSL
+TLS_LIBS=-lssl -lcrypto
+
+# Uncomment these settings if you are using GnuTLS
+# USE_GNUTLS=yes
+# TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
+
+# If you are running Exim as a server, note that just building it with TLS
+# support is not all you need to do. You also need to set up a suitable
+# certificate, and tell Exim about it by means of the tls_certificate
+# and tls_privatekey run time options. You also need to set tls_advertise_hosts
+# to specify the hosts to which Exim advertises TLS support. On the other hand,
+# if you are running Exim only as a client, building it with TLS support
+# is all you need to do.
+
+# Additional libraries and include files are required for both OpenSSL and
+# GnuTLS. The TLS_LIBS settings above assume that the libraries are installed
+# with all your other libraries. If they are in a special directory, you may
+# need something like
+
+# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto
+# or
+# TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt
+
+# TLS_LIBS is included only on the command for linking Exim itself, not on any
+# auxiliary programs. If the include files are not in a standard place, you can
+# set TLS_INCLUDE to specify where they are, for example:
+
+# TLS_INCLUDE=-I/usr/local/openssl/include/
+# or
+# TLS_INCLUDE=-I/opt/gnu/include
+
+# You don't need to set TLS_INCLUDE if the relevant directories are already
+# specified in INCLUDE.
+
+
+#------------------------------------------------------------------------------
+# The default distribution of Exim contains only the plain text form of the
+# documentation. Other forms are available separately. If you want to install
+# the documentation in "info" format, first fetch the Texinfo documentation
+# sources from the ftp directory and unpack them, which should create files
+# with the extension "texinfo" in the doc directory. You may find that the
+# version number of the texinfo files is different to your Exim version number,
+# because the main documentation isn't updated as often as the code. For
+# example, if you have Exim version 4.43, the source tarball upacks into a
+# directory called exim-4.43, but the texinfo tarball unpacks into exim-4.40.
+# In this case, move the contents of exim-4.40/doc into exim-4.43/doc after you
+# have unpacked them. Then set INFO_DIRECTORY to the location of your info
+# directory. This varies from system to system, but is often /usr/share/info.
+# Once you have done this, "make install" will build the info files and
+# install them in the directory you have defined.
+
+# INFO_DIRECTORY=/usr/share/info
+
+
+#------------------------------------------------------------------------------
+# Exim log directory and files: Exim creates several log files inside a
+# single log directory. You can define the directory and the form of the
+# log file name here. If you do not set anything, Exim creates a directory
+# called "log" inside its spool directory (see SPOOL_DIRECTORY above) and uses
+# the filenames "mainlog", "paniclog", and "rejectlog". If you want to change
+# this, you can set LOG_FILE_PATH to a path name containing one occurrence of
+# %s. This will be replaced by one of the strings "main", "panic", or "reject"
+# to form the final file names. Some installations may want something like this:
+
+LOG_FILE_PATH=/var/log/exim/%slog
+
+# which results in files with names /var/log/exim_mainlog, etc. The directory
+# in which the log files are placed must exist; Exim does not try to create
+# it for itself. It is also your responsibility to ensure that Exim is capable
+# of writing files using this path name. The Exim user (see EXIM_USER above)
+# must be able to create and update files in the directory you have specified.
+
+# You can also configure Exim to use syslog, instead of or as well as log
+# files, by settings such as these
+
+# LOG_FILE_PATH=syslog
+# LOG_FILE_PATH=syslog:/var/log/exim_%slog
+
+# The first of these uses only syslog; the second uses syslog and also writes
+# to log files. Do not include white space in such a setting as it messes up
+# the building process.
+
+
+#------------------------------------------------------------------------------
+# When logging to syslog, the following option caters for syslog replacements
+# that are able to accept log entries longer than the 1024 characters allowed
+# by RFC 3164. It is up to you to make sure your syslog daemon can handle this.
+# Non-printable characters are usually unacceptable regardless, so log entries
+# are still split on newline characters.
+
+# SYSLOG_LONG_LINES=yes
+
+# If you are not interested in the process identifier (pid) of the Exim that is
+# making the call to syslog, then comment out the following line.
+
+SYSLOG_LOG_PID=yes
+
+
+#------------------------------------------------------------------------------
+# Cycling log files: this variable specifies the maximum number of old
+# log files that are kept by the exicyclog log-cycling script. You don't have
+# to use exicyclog. If your operating system has other ways of cycling log
+# files, you can use them instead. The exicyclog script isn't run by default;
+# you have to set up a cron job for it if you want it.
+
+EXICYCLOG_MAX=10
+
+
+#------------------------------------------------------------------------------
+# The compress command is used by the exicyclog script to compress old log
+# files. Both the name of the command and the suffix that it adds to files
+# need to be defined here. See also the EXICYCLOG_MAX configuration.
+
+COMPRESS_COMMAND=/bin/gzip
+COMPRESS_SUFFIX=gz
+
+
+#------------------------------------------------------------------------------
+# If the exigrep utility is fed compressed log files, it tries to uncompress
+# them using this command.
+
+ZCAT_COMMAND=/bin/zcat
+
+
+#------------------------------------------------------------------------------
+# Compiling in support for embedded Perl: If you want to be able to
+# use Perl code in Exim's string manipulation language and you have Perl
+# (version 5.004 or later) installed, set EXIM_PERL to perl.o. Using embedded
+# Perl costs quite a lot of resources. Only do this if you really need it.
+
+# EXIM_PERL=perl.o
+
+
+#------------------------------------------------------------------------------
+# Support for dynamically-loaded string expansion functions via ${dlfunc. If
+# you are using gcc the dynamically-loaded object must be compiled with the
+# -shared option, and you will need to add -export-dynamic to EXTRALIBS so
+# that the local_scan API is made available by the linker. You may also need
+# to add -ldl to EXTRALIBS so that dlopen() is available to Exim.
+
+# EXPAND_DLFUNC=yes
+
+
+#------------------------------------------------------------------------------
+# Exim has support for PAM (Pluggable Authentication Modules), a facility
+# which is available in the latest releases of Solaris and in some GNU/Linux
+# distributions (see http://ftp.kernel.org/pub/linux/libs/pam/). The Exim
+# support, which is intended for use in conjunction with the SMTP AUTH
+# facilities, is included only when requested by the following setting:
+
+SUPPORT_PAM=yes
+
+# You probably need to add -lpam to EXTRALIBS, and in some releases of
+# GNU/Linux -ldl is also needed.
+
+
+#------------------------------------------------------------------------------
+# Support for authentication via Radius is also available. The Exim support,
+# which is intended for use in conjunction with the SMTP AUTH facilities,
+# is included only when requested by setting the following parameter to the
+# location of your Radius configuration file:
+
+# RADIUS_CONFIG_FILE=/etc/radiusclient/radiusclient.conf
+# RADIUS_CONFIG_FILE=/etc/radius.conf
+
+# If you have set RADIUS_CONFIG_FILE, you should also set one of these to
+# indicate which RADIUS library is used:
+
+# RADIUS_LIB_TYPE=RADIUSCLIENT
+# RADIUS_LIB_TYPE=RADIUSCLIENTNEW
+# RADIUS_LIB_TYPE=RADLIB
+
+# RADIUSCLIENT is the radiusclient library; you probably need to add
+# -lradiusclient to EXTRALIBS.
+#
+# The API for the radiusclient library was changed at release 0.4.0.
+# Unfortunately, the header file does not define a version number that clients
+# can use to support both the old and new APIs. If you are using version 0.4.0
+# or later of the radiusclient library, you should use RADIUSCLIENTNEW.
+#
+# RADLIB is the Radius library that comes with FreeBSD (the header file is
+# called radlib.h); you probably need to add -lradius to EXTRALIBS.
+#
+# If you do not set RADIUS_LIB_TYPE, Exim assumes the radiusclient library,
+# using the original API.
+
+
+#------------------------------------------------------------------------------
+# Support for authentication via the Cyrus SASL pwcheck daemon is available.
+# Note, however, that pwcheck is now deprecated in favour of saslauthd (see
+# next item). The Exim support for pwcheck, which is intented for use in
+# conjunction with the SMTP AUTH facilities, is included only when requested by
+# setting the following parameter to the location of the pwcheck daemon's
+# socket.
+#
+# There is no need to install all of SASL on your system. You just need to run
+# ./configure --with-pwcheck, cd to the pwcheck directory within the sources,
+# make and make install. You must create the socket directory (default
+# /var/pwcheck) and chown it to exim's user and group. Once you have installed
+# pwcheck, you should arrange for it to be started by root at boot time.
+
+# CYRUS_PWCHECK_SOCKET=/var/pwcheck/pwcheck
+
+
+#------------------------------------------------------------------------------
+# Support for authentication via the Cyrus SASL saslauthd daemon is available.
+# The Exim support, which is intented for use in conjunction with the SMTP AUTH
+# facilities, is included only when requested by setting the following
+# parameter to the location of the saslauthd daemon's socket.
+#
+# There is no need to install all of SASL on your system. You just need to run
+# ./configure --with-saslauthd (and any other options you need, for example, to
+# select or deselect authentication mechanisms), cd to the saslauthd directory
+# within the sources, make and make install. You must create the socket
+# directory (default /var/state/saslauthd) and chown it to exim's user and
+# group. Once you have installed saslauthd, you should arrange for it to be
+# started by root at boot time.
+
+# CYRUS_SASLAUTHD_SOCKET=/var/state/saslauthd/mux
+
+
+#------------------------------------------------------------------------------
+# TCP wrappers: If you want to use tcpwrappers from within Exim, uncomment
+# this setting. See the manual section entitled "Use of tcpwrappers" in the
+# chapter on building and installing Exim.
+#
+# USE_TCP_WRAPPERS=yes
+#
+# You may well also have to specify a local "include" file and an additional
+# library for TCP wrappers, so you probably need something like this:
+#
+# USE_TCP_WRAPPERS=yes
+# CFLAGS=-O -I/usr/local/include
+# EXTRALIBS_EXIM=-L/usr/local/lib -lwrap
+#
+# but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM
+# as well.
+#
+# To use a name other than exim in the tcpwrappers config file,
+# e.g. if you're running multiple daemons with different access lists,
+# or multiple MTAs with the same access list, define
+# TCP_WRAPPERS_DAEMON_NAME accordingly
+#
+# TCP_WRAPPERS_DAEMON_NAME="exim"
+
+
+#------------------------------------------------------------------------------
+# The default action of the exim_install script (which is run by "make
+# install") is to install the Exim binary with a unique name such as
+# exim-4.43-1, and then set up a symbolic link called "exim" to reference it,
+# moving the symbolic link from any previous version. If you define NO_SYMLINK
+# (the value doesn't matter), the symbolic link is not created or moved. You
+# will then have to "turn Exim on" by setting up the link manually.
+
+# NO_SYMLINK=yes
+
+
+#------------------------------------------------------------------------------
+# Another default action of the install script is to install a default runtime
+# configuration file if one does not exist. This configuration has a router for
+# expanding system aliases. The default assumes that these aliases are kept
+# in the traditional file called /etc/aliases. If such a file does not exist,
+# the installation script creates one that contains just comments (no actual
+# aliases). The following setting can be changed to specify a different
+# location for the system alias file.
+
+SYSTEM_ALIASES_FILE=/etc/mail/aliases
+
+
+#------------------------------------------------------------------------------
+# There are some testing options (-be, -bt, -bv) that read data from the
+# standard input when no arguments are supplied. By default, the input lines
+# are read using the standard fgets() function. This does not support line
+# editing during interactive input (though the terminal's "erase" character
+# works as normal). If your operating system has the readline() function, and
+# in addition supports dynamic loading of library functions, you can cause
+# Exim to use readline() for the -be testing option (only) by uncommenting the
+# following setting. Dynamic loading is used so that the library is loaded only
+# when the -be testing option is given; by the time the loading occurs,
+# Exim has given up its root privilege and is running as the calling user. This
+# is the reason why readline() is NOT supported for -bt and -bv, because Exim
+# runs as root or as exim, respectively, for those options. When USE_READLINE
+# is "yes", as well as supporting line editing, a history of input lines in the
+# current run is maintained.
+
+# USE_READLINE=yes
+
+# You may need to add -ldl to EXTRALIBS when you set USE_READLINE=yes.
+# Note that this option adds to the size of the Exim binary, because the
+# dynamic loading library is not otherwise included.
+
+
+
+###############################################################################
+# THINGS YOU ALMOST NEVER NEED TO MENTION #
+###############################################################################
+
+# The settings in this section are available for use in special circumstances.
+# In the vast majority of installations you need not change anything below.
+
+
+#------------------------------------------------------------------------------
+# The following commands live in different places in some OS. Either the
+# ultimate default settings, or the OS-specific files should already point to
+# the right place, but they can be overridden here if necessary. These settings
+# are used when building various scripts to ensure that the correct paths are
+# used when the scripts are run. They are not used in the Makefile itself. Perl
+# is not necessary for running Exim unless you set EXIM_PERL (see above) to get
+# it embedded, but there are some utilities that are Perl scripts. If you
+# haven't got Perl, Exim will still build and run; you just won't be able to
+# use those utilities.
+
+# CHOWN_COMMAND=/usr/bin/chown
+# CHGRP_COMMAND=/usr/bin/chgrp
+# CHMOD_COMMAND=/usr/bin/chmod
+# MV_COMMAND=/bin/mv
+# RM_COMMAND=/bin/rm
+# TOUCH_COMMAND=/usr/bin/touch
+# PERL_COMMAND=/usr/bin/perl
+
+
+#------------------------------------------------------------------------------
+# The following macro can be used to change the command for building a library
+# of functions. By default the "ar" command is used, with options "cq".
+# Only in rare circumstances should you need to change this.
+
+# AR=ar cq
+
+
+#------------------------------------------------------------------------------
+# In some operating systems, the value of the TMPDIR environment variable
+# controls where temporary files are created. Exim does not make use of
+# temporary files, except when delivering to MBX mailboxes. However, if Exim
+# calls any external libraries (e.g. DBM libraries), they may use temporary
+# files, and thus be influenced by the value of TMPDIR. For this reason, when
+# Exim starts, it checks the environment for TMPDIR, and if it finds it is set,
+# it replaces the value with what is defined here. Commenting this setting
+# suppresses the check altogether.
+
+TMPDIR="/tmp"
+
+
+#------------------------------------------------------------------------------
+# The following macros can be used to change the default modes that are used
+# by the appendfile transport. In most installations the defaults are just
+# fine, and in any case, you can change particular instances of the transport
+# at run time if you want.
+
+# APPENDFILE_MODE=0600
+# APPENDFILE_DIRECTORY_MODE=0700
+# APPENDFILE_LOCKFILE_MODE=0600
+
+
+#------------------------------------------------------------------------------
+# In some installations there may be multiple machines sharing file systems,
+# where a different configuration file is required for Exim on the different
+# machines. If CONFIGURE_FILE_USE_NODE is defined, then Exim will first look
+# for a configuration file whose name is that defined by CONFIGURE_FILE,
+# with the node name obtained by uname() tacked on the end, separated by a
+# period (for example, /usr/exim/configure.host.in.some.domain). If this file
+# does not exist, then the bare configuration file name is tried.
+
+# CONFIGURE_FILE_USE_NODE=yes
+
+
+#------------------------------------------------------------------------------
+# In some esoteric configurations two different versions of Exim are run,
+# with different setuid values, and different configuration files are required
+# to handle the different cases. If CONFIGURE_FILE_USE_EUID is defined, then
+# Exim will first look for a configuration file whose name is that defined
+# by CONFIGURE_FILE, with the effective uid tacked on the end, separated by
+# a period (for eximple, /usr/exim/configure.0). If this file does not exist,
+# then the bare configuration file name is tried. In the case when both
+# CONFIGURE_FILE_USE_EUID and CONFIGURE_FILE_USE_NODE are set, four files
+# are tried: <name>.<euid>.<node>, <name>.<node>, <name>.<euid>, and <name>.
+
+# CONFIGURE_FILE_USE_EUID=yes
+
+
+#------------------------------------------------------------------------------
+# The size of the delivery buffers: These specify the sizes (in bytes) of
+# the buffers that are used when copying a message from the spool to a
+# destination. There is rarely any need to change these values.
+
+# DELIVER_IN_BUFFER_SIZE=8192
+# DELIVER_OUT_BUFFER_SIZE=8192
+
+
+#------------------------------------------------------------------------------
+# The mode of the database directory: Exim creates a directory called "db"
+# in its spool directory, to hold its databases of hints. This variable
+# determines the mode of the created directory. The default value in the
+# source is 0750.
+
+# EXIMDB_DIRECTORY_MODE=0750
+
+
+#------------------------------------------------------------------------------
+# Database file mode: The mode of files created in the "db" directory defaults
+# to 0640 in the source, and can be changed here.
+
+# EXIMDB_MODE=0640
+
+
+#------------------------------------------------------------------------------
+# Database lock file mode: The mode of zero-length files created in the "db"
+# directory to use for locking purposes defaults to 0640 in the source, and
+# can be changed here.
+
+# EXIMDB_LOCKFILE_MODE=0640
+
+
+#------------------------------------------------------------------------------
+# This parameter sets the maximum length of the header portion of a message
+# that Exim is prepared to process. The default setting is one megabyte. The
+# limit exists in order to catch rogue mailers that might connect to your SMTP
+# port, start off a header line, and then just pump junk at it for ever. The
+# message_size_limit option would also catch this, but it may not be set.
+# The value set here is the default; it can be changed at runtime.
+
+# HEADER_MAXSIZE="(1024*1024)"
+
+
+#------------------------------------------------------------------------------
+# The mode of the input directory: The input directory is where messages are
+# kept while awaiting delivery. Exim creates it if necessary, using a mode
+# which can be defined here (default 0750).
+
+# INPUT_DIRECTORY_MODE=0750
+
+
+#------------------------------------------------------------------------------
+# The mode of Exim's log directory, when it is created by Exim inside the spool
+# directory, defaults to 0750 but can be changed here.
+
+# LOG_DIRECTORY_MODE=0750
+
+
+#------------------------------------------------------------------------------
+# The log files themselves are created as required, with a mode that defaults
+# to 0640, but which can be changed here.
+
+# LOG_MODE=0640
+
+
+#------------------------------------------------------------------------------
+# The TESTDB lookup is for performing tests on the handling of lookup results,
+# and is not useful for general running. It should be included only when
+# debugging the code of Exim.
+
+# LOOKUP_TESTDB=yes
+
+
+#------------------------------------------------------------------------------
+# /bin/sh is used by default as the shell in which to run commands that are
+# defined in the makefiles. This can be changed if necessary, by uncommenting
+# this line and specifying another shell, but note that a Bourne-compatible
+# shell is expected.
+
+# MAKE_SHELL=/bin/sh
+
+
+#------------------------------------------------------------------------------
+# The maximum number of named lists of each type (address, domain, host, and
+# local part) can be increased by changing this value. It should be set to
+# a multiple of 16.
+
+MAX_NAMED_LIST=16
+
+
+#------------------------------------------------------------------------------
+# Network interfaces: Unless you set the local_interfaces option in the runtime
+# configuration file to restrict Exim to certain interfaces only, it will run
+# code to find all the interfaces there are on your host. Unfortunately,
+# the call to the OS that does this requires a buffer large enough to hold
+# data for all the interfaces - it was designed in the days when a host rarely
+# had more than three or four interfaces. Nowadays hosts can have very many
+# virtual interfaces running on the same hardware. If you have more than 250
+# virtual interfaces, you will need to uncomment this setting and increase the
+# value.
+
+# MAXINTERFACES=250
+
+
+#------------------------------------------------------------------------------
+# Per-message logs: While a message is in the process of being delivered,
+# comments on its progress are written to a message log, for the benefit of
+# human administrators. These logs are held in a directory called "msglog"
+# in the spool directory. Its mode defaults to 0750, but can be changed here.
+# The message log directory is also used for storing files that are used by
+# transports for returning data to a message's sender (see the "return_output"
+# option for transports).
+
+# MSGLOG_DIRECTORY_MODE=0750
+
+
+#------------------------------------------------------------------------------
+# There are three options which are used when compiling the Perl interface and
+# when linking with Perl. The default values for these are placed automatically
+# at the head of the Makefile by the script which builds it. However, if you
+# want to override them, you can do so here.
+
+# PERL_CC=
+# PERL_CCOPTS=
+# PERL_LIBS=
+
+
+#------------------------------------------------------------------------------
+# Identifying the daemon: When an Exim daemon starts up, it writes its pid
+# (process id) to a file so that it can easily be identified. The path of the
+# file can be specified here. Some installations may want something like this:
+
+PID_FILE_PATH=/var/run/exim.pid
+
+# If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
+# using the name "exim-daemon.pid".
+
+# If you start up a daemon without the -bd option (for example, with just
+# the -q15m option), a pid file is not written. Also, if you override the
+# configuration file with the -oX option, no pid file is written. In other
+# words, the pid file is written only for a "standard" daemon.
+
+
+#------------------------------------------------------------------------------
+# If Exim creates the spool directory, it is given this mode, defaulting in the
+# source to 0750.
+
+# SPOOL_DIRECTORY_MODE=0750
+
+
+#------------------------------------------------------------------------------
+# The mode of files on the input spool which hold the contents of messages can
+# be changed here. The default is 0640 so that information from the spool is
+# available to anyone who is a member of the Exim group.
+
+# SPOOL_MODE=0640
+
+
+#------------------------------------------------------------------------------
+# Moving frozen messages: If the following is uncommented, Exim is compiled
+# with support for automatically moving frozen messages out of the main spool
+# directory, a facility that is found useful by some large installations. A
+# run time option is required to cause the moving actually to occur. Such
+# messages become "invisible" to the normal management tools.
+
+# SUPPORT_MOVE_FROZEN_MESSAGES=yes
+
+
+#------------------------------------------------------------------------------
+# Disabling the use of fsync(): DO NOT UNCOMMENT THE FOLLOWING LINE unless you
+# really, really, really know what you are doing. And even then, think again.
+# You should never uncomment this when compiling a binary for distribution.
+# Use it only when compiling Exim for your own use.
+#
+# Uncommenting this line enables the use of a runtime option called
+# disable_fsync, which can be used to stop Exim using fsync() to ensure that
+# files are written to disc before proceeding. When this is disabled, crashes
+# and hardware problems such as power outages can cause data to be lost. This
+# feature should only be used in very exceptional circumstances. YOU HAVE BEEN
+# WARNED.
+
+# ENABLE_DISABLE_FSYNC=yes
+
+HAVE_IPV6=YES
+LOOKUP_LIBS=-lldap
+EXTRALIBS_EXIM=-lpam
+# End of EDITME for Exim 4.
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..8ed329559
--- /dev/null
+++ b/community/exim/exim.install
@@ -0,0 +1,25 @@
+# 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
+ chown root.exim /var/spool/exim /var/log/exim
+ chown exim.exim /var/spool/exim/db
+ chmod u+s /usr/sbin/exim
+}
+
+# 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..070ba4747
--- /dev/null
+++ b/community/exim/exim.logrotate
@@ -0,0 +1,6 @@
+/var/log/exim/*log {
+ su exim exim
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/community/expac/PKGBUILD b/community/expac/PKGBUILD
new file mode 100644
index 000000000..325f89f12
--- /dev/null
+++ b/community/expac/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 51880 2011-07-17 19:50:14Z dreisner $
+# Maintainer: Dave Reisner <d@falconindy.com>
+
+pkgname=expac
+pkgver=0.05
+pkgrel=1
+pkgdesc="pacman database extraction utility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://github.com/falconindy/expac"
+license=('GPL')
+depends=('pacman')
+makedepends=('perl')
+source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('366d741b21d1029c63a5e977d3fc08db')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+# vim: ft=sh syn=sh
diff --git a/community/ext3grep/PKGBUILD b/community/ext3grep/PKGBUILD
new file mode 100644
index 000000000..b44e3a01e
--- /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' 'mips64el')
+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/ext4magic/PKGBUILD b/community/ext4magic/PKGBUILD
new file mode 100644
index 000000000..424fe129f
--- /dev/null
+++ b/community/ext4magic/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 59609 2007-01-01 00:07:53Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgname=ext4magic
+pkgver=0.2.3
+pkgrel=2
+pkgdesc='Linux admin tool, can help to recover deleted or overwritten files on ext3 and ext4 filesystems'
+arch=('i686' 'x86_64')
+url='http://developer.berlios.de/projects/ext4magic/'
+license=('GPL2')
+depends=('util-linux' 'e2fsprogs')
+source=("http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('b23ecf9dccc8b597fbbe2d149d0c08ac')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/extrema/PKGBUILD b/community/extrema/PKGBUILD
new file mode 100644
index 000000000..35f884b60
--- /dev/null
+++ b/community/extrema/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58786 2011-11-18 14:18:33Z andrea $
+# Maintainer:
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Marcelo Avalos Tejeda <marcelo.avalos@gmail.com>
+
+pkgname=extrema
+pkgver=4.4.5
+pkgrel=2
+pkgdesc='A powerful visualization and data analysis tool'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://exsitewebware.com/extrema/index.html'
+license=('GPL')
+depends=('wxgtk')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'extrema.desktop'
+ 'gcc46.patch')
+md5sums=('8a1e82b34874db2bfa64d9a2956677b1'
+ '0f4d310d230e28436dff20e77aed71bb'
+ 'be85114cee4c677d33f1522d958e76db')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ patch -p1 -i "${srcdir}"/gcc46.patch
+
+ ./configure --prefix=/usr
+ make
+
+ tar xf extrema_icons.tar.bz2
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ 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/extrema/gcc46.patch b/community/extrema/gcc46.patch
new file mode 100644
index 000000000..45a804292
--- /dev/null
+++ b/community/extrema/gcc46.patch
@@ -0,0 +1,15 @@
+Fix building with gcc-4.6
+
+https://bugs.gentoo.org/show_bug.cgi?id=363467
+
+Patch written by Kacper Kowalik <xarthisius@gentoo.org>
+--- a/src/Graphics/GRA_thiessenTriangulation.h
++++ b/src/Graphics/GRA_thiessenTriangulation.h
+@@ -19,6 +19,7 @@
+ #define GRA_THIESSENTRIANGULATION
+
+ #include <vector>
++#include <cstddef>
+
+ class GRA_thiessenTriangulation
+ {
diff --git a/community/extremetuxracer/PKGBUILD b/community/extremetuxracer/PKGBUILD
new file mode 100644
index 000000000..5a7561b7f
--- /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' 'mips64el')
+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..9d28c5acb
--- /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' 'mips64el')
+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..ee0328324
--- /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' 'mips64el')
+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..33b203aeb
--- /dev/null
+++ b/community/fatrat/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 59930 2011-12-02 20:58:17Z ibiru $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=fatrat
+pkgver=1.2.0_beta1
+pkgrel=2
+pkgdesc="QT4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://fatrat.dolezel.info/"
+license=('GPL')
+depends=('gloox' 'qt' 'libtorrent-rasterbar' 'pion-net')
+optdepends=('geoip: GeoIP support')
+makedepends=('boost' 'cmake' 'java-environment')
+source=(http://www.dolezel.info/download/data/fatrat/fatrat-$pkgver.tar.gz)
+md5sums=('7ce4d5e6318361f36ba5ac86a5755da9')
+
+build() {
+ cd $pkgname-$pkgver
+
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ cmake \
+ -DWITH_EVERYTHING=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ .
+
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/fb-client/PKGBUILD b/community/fb-client/PKGBUILD
new file mode 100644
index 000000000..26dfe6bc5
--- /dev/null
+++ b/community/fb-client/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Florian "Bluewind" Pritz <flo@xssn.at>
+pkgname=fb-client
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="Client for paste.xinu.at"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://paste.xinu.at"
+license=('GPL3')
+depends=('curl')
+optdepends=('xclip: for automatically copying the URL into the clipboard')
+source=(http://paste.xinu.at/data/client/fb-$pkgver.tar.gz{,.sig})
+md5sums=('dcb979b6d31ea56fde107251b92aaaca'
+ '08b1ac48b3da676621655d80c4c6a66d')
+
+build() {
+ cd "$srcdir/fb-$pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/fb-$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..9fece9574
--- /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' 'mips64el')
+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..3741aa404
--- /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' 'mips64el')
+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..21b937397
--- /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 'mips64el')
+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..08a89da45
--- /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' 'mips64el')
+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..65d1d9894
--- /dev/null
+++ b/community/fbreader/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58784 2011-11-18 14:18:00Z 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' 'mips64el')
+url="http://www.fbreader.org/"
+license=('GPL')
+depends=('fribidi' 'bzip2' 'curl' 'gtk2' 'liblinebreak' 'sqlite3')
+source=(http://www.fbreader.org/files/sources/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..48d6ce110
--- /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' 'mips64el')
+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..9c86079ca
--- /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' 'mips64el')
+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/PKGBUILD b/community/fceux/PKGBUILD
new file mode 100644
index 000000000..fe25715f7
--- /dev/null
+++ b/community/fceux/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 49458 2011-06-16 19:25:29Z angvp $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jo Christian Bergsks <jcberg@gmail.com>
+
+pkgname=fceux
+pkgver=2.1.5
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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)
+
+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:
+md5sums=('e8b20e62bbbb061b1a59d51b47c827bd'
+ '30baf915c936926fa50f59d8276f6575'
+ '3fe753731ac46b5fee528b1f73abd3e3')
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..a4d9e558e
--- /dev/null
+++ b/community/fcgiwrap/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 57830 2011-11-03 10:18:16Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Bull Schaefer <aaron@elasticdog.com>
+# Contributor: Ron Huang <ronhuang+aur at gmail dot com>
+
+pkgname=fcgiwrap
+pkgver=1.0.3
+_gitrev='2e301c8'
+pkgrel=2
+pkgdesc='A simple server for running CGI applications over FastCGI.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://nginx.localdomain.pl/wiki/FcgiWrap'
+license=('MIT')
+depends=('fcgi' 'spawn-fcgi')
+backup=('etc/conf.d/fcgiwrap')
+source=("https://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 -Dm0644 ../fcgiwrap.conf.d "${pkgdir}/etc/conf.d/${pkgname}"
+ install -Dm0755 ../fcgiwrap.rc.d "${pkgdir}/etc/rc.d/${pkgname}"
+ install -Dm0644 ../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..745b6f4fa
--- /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' 'mips64el')
+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..788d6800c
--- /dev/null
+++ b/community/fcron/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# 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 'mips64el')
+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/PKGBUILD b/community/fdm/PKGBUILD
new file mode 100644
index 000000000..bf8c6bad6
--- /dev/null
+++ b/community/fdm/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 55396 2011-09-11 20:59:09Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Grigorios Bouzakis <grbzks@gmail.com>
+
+pkgname=fdm
+pkgver=1.6
+pkgrel=3
+pkgdesc='Program to fetch and deliver mail'
+url='http://fdm.sourceforge.net/'
+license=('BSD')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!makeflags')
+depends=('openssl' 'tdb' 'zlib')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'GNUmakefile.patch')
+sha1sums=('fb8042f2355062848ff142c9604069b6657e6a82'
+ '0bddf0b0403ccee62190355f43fae84932c37436')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../GNUmakefile.patch
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}"/usr/share/{doc,licenses}/"${pkgname}"
+ sed '3,17p;d' fdm.c > "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ mv 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..00e0bf8f0
--- /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' 'mips64el')
+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/PKGBUILD b/community/ffmpeg2theora/PKGBUILD
new file mode 100644
index 000000000..049eb0cda
--- /dev/null
+++ b/community/ffmpeg2theora/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 58395 2011-11-12 17:16:59Z ibiru $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=ffmpeg2theora
+pkgver=0.28
+pkgrel=2
+pkgdesc="A simple converter to create Ogg Theora files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.v2v.cc/~j/ffmpeg2theora/"
+license=('GPL3')
+depends=('ffmpeg')
+makedepends=('pkgconfig' 'scons')
+changelog=$pkgname.changelog
+source=(http://www.v2v.cc/~j/${pkgname}/downloads/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('6893c1444d730a1514275ba76ba487ca207205b916d6cb1285704225ee86fe1e')
+
+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/ffmpeg2theora/ffmpeg2theora.changelog b/community/ffmpeg2theora/ffmpeg2theora.changelog
new file mode 100644
index 000000000..adbe34807
--- /dev/null
+++ b/community/ffmpeg2theora/ffmpeg2theora.changelog
@@ -0,0 +1,28 @@
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * ffmpeg2theora 0.28-1
+ * Upstream update
+
+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/fftw2/PKGBUILD b/community/fftw2/PKGBUILD
new file mode 100644
index 000000000..2980711e9
--- /dev/null
+++ b/community/fftw2/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 55583 2011-09-14 11:20:19Z andrea $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fftw2
+pkgver=2.1.5
+pkgrel=5
+pkgdesc="A C subroutine library for computing the discrete Fourier transform (DFT)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fftw.org/"
+license=('GPL2')
+depends=('glibc')
+makedepends=('gcc-fortran')
+options=('!libtool')
+source=("http://www.fftw.org/fftw-${pkgver}.tar.gz")
+md5sums=('8d16a84f3ca02a785ef9eb36249ba433')
+
+build() {
+ cd "${srcdir}"
+
+ cp -r fftw-${pkgver} fftw-${pkgver}-double
+
+ # build single precision
+ cd fftw-${pkgver}
+ ./configure F77=gfortran --prefix=/usr \
+ --enable-float \
+ --enable-type-prefix \
+ --enable-shared \
+ --enable-threads \
+ --infodir=/usr/share/info
+ make
+ cd ../
+
+ # build double precision
+ cd fftw-${pkgver}-double
+ ./configure F77=gfortran --prefix=/usr \
+ --enable-type-prefix \
+ --enable-shared \
+ --enable-threads \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ # install single precision
+ cd "${srcdir}"/fftw-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ # install double precision
+ cd "${srcdir}"/fftw-${pkgver}-double
+ make DESTDIR="${pkgdir}" install
+}
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..ae47360e9
--- /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' 'mips64el')
+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..d126dae5f
--- /dev/null
+++ b/community/filezilla/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 58248 2011-11-09 10:50:52Z bluewind $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=filezilla
+pkgver=3.5.2
+pkgrel=1
+pkgdesc="Fast and reliable FTP, FTPS and SFTP client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://filezilla-project.org/"
+license=('GPL')
+depends=('dbus-core' 'xdg-utils' 'wxgtk' 'libidn' 'hicolor-icon-theme' 'sqlite3')
+install=filezilla.install
+source=("http://downloads.sourceforge.net/project/filezilla/FileZilla_Client/${pkgver}/FileZilla_${pkgver}_src.tar.bz2"
+gnutls-3.patch)
+md5sums=('ec4847be44932dc872a7e83b94ae2c9f'
+ '0646cf7d6f90766961724102cf2cebd6')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ patch -p1 -i "$srcdir/gnutls-3.patch"
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --disable-manualupdatecheck \
+ --disable-autoupdatecheck \
+ --disable-static \
+ --with-tinyxml=builtin
+
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
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/filezilla/gnutls-3.patch b/community/filezilla/gnutls-3.patch
new file mode 100644
index 000000000..88e4ac9e7
--- /dev/null
+++ b/community/filezilla/gnutls-3.patch
@@ -0,0 +1,27 @@
+Fix FS#25669
+
+Upstream bug: http://trac.filezilla-project.org/ticket/7742
+
+diff --git a/src/engine/tlssocket.cpp b/src/engine/tlssocket.cpp
+index e9a5105..7ddb1ae 100644
+--- a/src/engine/tlssocket.cpp
++++ b/src/engine/tlssocket.cpp
+@@ -97,7 +97,7 @@ bool CTlsSocket::Init()
+ return false;
+ }
+
+- res = gnutls_priority_set_direct(m_session, "SECURE256:+CTYPE-X509:-CTYPE-OPENPGP", 0);
++ res = gnutls_priority_set_direct(m_session, "NORMAL:+CTYPE-X509:-CTYPE-OPENPGP", 0);
+ if (res)
+ {
+ LogError(res);
+@@ -113,7 +113,9 @@ bool CTlsSocket::Init()
+ gnutls_transport_set_push_function(m_session, PushFunction);
+ gnutls_transport_set_pull_function(m_session, PullFunction);
+ gnutls_transport_set_ptr(m_session, (gnutls_transport_ptr_t)this);
++#if GNUTLS_VERSION_MAJOR < 3
+ gnutls_transport_set_lowat(m_session, 0);
++#endif
+
+ m_shutdown_requested = false;
+
diff --git a/community/fillets-ng/PKGBUILD b/community/fillets-ng/PKGBUILD
new file mode 100644
index 000000000..31b822703
--- /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' 'mips64el')
+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..4918aecde
--- /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' 'mips64el')
+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..204b07db1
--- /dev/null
+++ b/community/fish/PKGBUILD
@@ -0,0 +1,32 @@
+# $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' 'mips64el')
+url="http://fishshell.com/"
+license=("GPL" "LGPL" "BSD" "MIT")
+depends=('ncurses' 'bc')
+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..71e3fb36c
--- /dev/null
+++ b/community/fityk/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Cuneyt Unlu <unlucu AT gmail.com>
+
+pkgname=fityk
+pkgver=1.1.1
+pkgrel=3
+pkgdesc='A program for nonlinear fitting of analytical functions to data.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.unipress.waw.pl/fityk/'
+license=('GPL')
+depends=('xylib' 'shared-mime-info' 'lua' 'gnuplot') # wxgtk supplied by statically linked wxWidgets
+makedepends=('boost' 'git' 'python-sphinx' 'swig' 'subversion')
+options=('!libtool')
+install='fityk.install'
+
+build() {
+ # daily snapshot because fityk requires a version that hasn't been released yet...
+ svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets
+
+ cd wxWidgets
+ ./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..1f79c330c
--- /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' 'mips64el')
+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..54d44e823
--- /dev/null
+++ b/community/flam3/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59890 2011-12-02 04:26:05Z ebelanger $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=flam3
+pkgver=3.0.1
+pkgrel=1
+pkgdesc="Tools to create/display fractal flames: algorithmically generated images and animations"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://flam3.com/"
+license=('GPL3')
+depends=('libjpeg' 'libpng' 'libxml2')
+options=('!libtool')
+source=(http://flam3.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('8814515f2e49e034e47cf97e9d2c0e932844abb9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ ./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..628c47250
--- /dev/null
+++ b/community/flashrom/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 59589 2011-11-28 18:14:47Z 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.4
+pkgrel=2
+pkgdesc="Utility for reading, writing, erasing and verifying flash ROM chips"
+url="http://www.coreboot.org/Flashrom/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libftdi')
+makedepends=('zlib' 'pciutils')
+source=("http://download.flashrom.org/releases/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('d739a91aece12cc1e622038bb199541c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX="${pkgdir}/usr" install
+}
diff --git a/community/fldiff/PKGBUILD b/community/fldiff/PKGBUILD
new file mode 100644
index 000000000..a61574824
--- /dev/null
+++ b/community/fldiff/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 51104 2011-07-05 09:00:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: iztok pizorn <pizorn@gmail.com>
+
+pkgname=fldiff
+pkgver=1.1
+pkgrel=6
+pkgdesc="graphical diff program"
+arch=(i686 x86_64 'mips64el')
+url="http://www.easysw.com/~mike/fldiff/"
+license=('GPL')
+install=fldiff.install
+depends=('diffutils' 'fltk' 'xdg-utils')
+source=(http://www.easysw.com/~mike/fldiff/$pkgname-$pkgver-source.tar.gz
+ build-fix.patch)
+md5sums=('12897c92106fb5d665210a2e82f5cf25'
+ 'ea7258e07544b81561c6d76a41c184e7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make BUILDROOT=$pkgdir install install-desktop
+ mv `find $pkgdir/ -name Development -type d` $startdir/pkg/usr/share/applications
+}
diff --git a/community/fldiff/build-fix.patch b/community/fldiff/build-fix.patch
new file mode 100644
index 000000000..bb3e0245e
--- /dev/null
+++ b/community/fldiff/build-fix.patch
@@ -0,0 +1,31 @@
+Only in fldiff-1.1.my: config.log
+Only in fldiff-1.1.my: config.status
+Only in fldiff-1.1.my: DiffChooser.o
+Only in fldiff-1.1.my: DiffOpenWindow.o
+Only in fldiff-1.1.my: DiffView.o
+diff -wbBur fldiff-1.1/DiffWindow.cxx fldiff-1.1.my/DiffWindow.cxx
+--- fldiff-1.1/DiffWindow.cxx 2006-11-13 21:54:02.000000000 +0300
++++ fldiff-1.1.my/DiffWindow.cxx 2011-07-05 12:58:38.000000000 +0400
+@@ -1126,11 +1126,11 @@
+ DiffWindow::save_prefs()
+ {
+ // Save the window prefs for the next run...
+- prefs_.set("color", color());
+- prefs_.set("selection_color", selection_color());
++ prefs_.set("color", (int)color());
++ prefs_.set("selection_color", (int)selection_color());
+ prefs_.set("showlinenum", showlinenum());
+ prefs_.set("tabwidth", tabwidth());
+- prefs_.set("textcolor", textcolor());
++ prefs_.set("textcolor", (int)textcolor());
+ prefs_.set("textsize", textsize());
+ prefs_.set("ignoreblanks", ignoreblanks());
+ }
+Only in fldiff-1.1.my: DiffWindow.o
+Only in fldiff-1.1.my: FavoritesMenu.o
+Only in fldiff-1.1.my: FavoritesWindow.o
+Only in fldiff-1.1.my: fldiff
+Only in fldiff-1.1.my: fldiff.list
+Only in fldiff-1.1.my: fldiff.o
+Only in fldiff-1.1.my: Makefile
+Only in fldiff-1.1.my: PtProcess.o
diff --git a/community/fldiff/fldiff.install b/community/fldiff/fldiff.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/fldiff/fldiff.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/flickcurl/PKGBUILD b/community/flickcurl/PKGBUILD
new file mode 100644
index 000000000..1a287da02
--- /dev/null
+++ b/community/flickcurl/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59867 2011-12-01 13:14:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=flickcurl
+pkgver=1.21
+pkgrel=3
+pkgdesc="C library for the Flickr API"
+arch=(i686 x86_64 'mips64el')
+url="http://librdf.org/flickcurl/"
+license=('GPL')
+depends=('raptor' 'curl')
+source=(http://download.dajobe.org/flickcurl/flickcurl-$pkgver.tar.gz)
+md5sums=('d4d364231505dc22a6af42be7bc85edf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|#include <curl/types.h>||' src/flickcurl_internal.h
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/flightgear-atlas/PKGBUILD b/community/flightgear-atlas/PKGBUILD
new file mode 100644
index 000000000..ee36ea5ae
--- /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 'mips64el')
+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..54909e46e
--- /dev/null
+++ b/community/flightgear/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 54030 2011-08-11 23:28:19Z 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.4.0
+pkgrel=1
+pkgdesc="An open-source, multi-platform flight simulator"
+arch=(i686 x86_64 mips64el)
+depends=('simgear' 'libxmu' 'libxi' 'zlib' 'openscenegraph' 'subversion') # 'flightgear-data')
+makedepends=('boost')
+license=("GPL")
+url="http://www.flightgear.org"
+options=('!makeflags')
+source=("$pkgname-$pkgver.tar.gz::https://gitorious.org/fg/flightgear/archive-tarball/release/$pkgver")
+md5sums=('eb8d1ed8b1de5f1ac7926c9d0c2f37f8')
+
+build() {
+ cd $srcdir/fg-flightgear
+# [ $NOEXTRACT -eq 1 ] || find -name \*.c\* -exec sed -i '1,2i#include <stdio.h>' {} \;
+# [ $NOEXTRACT -eq 1 ] || find -name \*.c\* -exec sed -i '1,2i#include <GL/glu.h>' {} \;
+ [ -x configure ] || ./autogen.sh
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
+}
+
+package() {
+ depends=('simgear' 'libxmu' 'libxi' 'zlib' 'openscenegraph' 'subversion' 'flightgear-data')
+ cd $srcdir/fg-flightgear
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/flobopuyo/PKGBUILD b/community/flobopuyo/PKGBUILD
new file mode 100644
index 000000000..bafe5e88d
--- /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' 'mips64el')
+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..913d3ebf9
--- /dev/null
+++ b/community/flowcanvas/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 48184 2011-05-29 16:00:31Z 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=2
+pkgdesc="Gtkmm/Gnomecanvasmm widget for boxes-and-lines style environments"
+arch=('i686' 'x86_64' 'mips64el')
+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..dbd9898d3
--- /dev/null
+++ b/community/flowcanvas/flowcanvas.install
@@ -0,0 +1,13 @@
+post_install() {
+ \ldconfig
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/floyd/PKGBUILD b/community/floyd/PKGBUILD
new file mode 100644
index 000000000..42c4cd155
--- /dev/null
+++ b/community/floyd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58684 2011-11-17 15:37:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=floyd
+pkgver=2.0.1
+pkgrel=4
+pkgdesc="displays system load with pulse of keyboard LED"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.asahi-net.or.jp/~pi9s-nnb/floyd/"
+license=("GPL")
+depends=()
+source=(http://www.asahi-net.or.jp/~pi9s-nnb/floyd/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('c1b80bc76ac4e25e821a193428fa42a4'
+ '0cde2017ead790f9d556ef34c6a4008f')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ make pthread
+}
+
+package() {
+ cd $startdir/src/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/share/man/man1 $pkgdir/usr/bin
+ make install MANDIR=$pkgdir/usr/share/man/man1 BINDIR=$pkgdir/usr/bin
+}
diff --git a/community/floyd/build-fix.patch b/community/floyd/build-fix.patch
new file mode 100644
index 000000000..d78737b54
--- /dev/null
+++ b/community/floyd/build-fix.patch
@@ -0,0 +1,30 @@
+diff -wbBur floyd-2.0.1/floyd.c floyd-2.0.1.my/floyd.c
+--- floyd-2.0.1/floyd.c 2005-12-01 12:49:43.000000000 +0300
++++ floyd-2.0.1.my/floyd.c 2011-11-17 19:31:13.000000000 +0400
+@@ -167,11 +167,6 @@
+ }
+ if (gfprm.verbose || doargforked) /* doargforked: set by -D */
+ fprintf(stderr, "%s: signal %d received [%d]\n", progname, sig, getpid());
+-#ifdef linux
+- pthread_kill_other_threads_np();
+-#else
+- Maybe you loose. Check out if you have pthread_kill_other_threads_np().
+-#endif
+ close(fdes); /* but here ? */
+ exit(0);
+ }
+diff -wbBur floyd-2.0.1/voodoo.c floyd-2.0.1.my/voodoo.c
+--- floyd-2.0.1/voodoo.c 1999-07-29 18:01:10.000000000 +0400
++++ floyd-2.0.1.my/voodoo.c 2011-11-17 19:31:18.000000000 +0400
+@@ -101,11 +101,6 @@
+ perror("KDSETLED");
+ }
+ fprintf(stderr, "%s: signal %d received [%d]\n", progname, sig, getpid());
+-#ifdef linux
+- pthread_kill_other_threads_np();
+-#else
+- Maybe you loose. Check out if you have pthread_kill_other_threads_np().
+-#endif
+ exit(0);
+ }
+
diff --git a/community/fltk2/PKGBUILD b/community/fltk2/PKGBUILD
new file mode 100644
index 000000000..833e51f00
--- /dev/null
+++ b/community/fltk2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58766 2011-11-18 13:49:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=fltk2
+pkgver=2.0
+_pkgver=2.0.x-alpha-r9166
+pkgrel=7
+pkgdesc="Graphical user interface toolkit for X"
+arch=(i686 x86_64 'mips64el')
+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=('d5e7cd859d2aeb9bb6e13ee298e8b2aa'
+ '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..37bd3d4c3
--- /dev/null
+++ b/community/flumotion/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 58163 2011-11-07 13:53:24Z 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.10.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('d7a34333346828f19f83b24886efde14')
+
+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
+
+ ./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/flvstreamer/PKGBUILD b/community/flvstreamer/PKGBUILD
new file mode 100644
index 000000000..eba656fd5
--- /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' 'mips64el')
+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..b0f6d74fd
--- /dev/null
+++ b/community/fonteditfs/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 58688 2011-11-17 15:43:36Z spupykin $
+# 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' 'mips64el')
+url="http://fonteditfs.sourceforge.net/"
+license=('GPL')
+depends=('ncurses')
+source=("http://downloads.sourceforge.net/sourceforge/fonteditfs/fnteditfs-$pkgver.tgz")
+md5sums=('1e7c827da078d41a76459439dda0d5a9')
+
+build() {
+ cd $srcdir/fnteditfs-$pkgver
+ make
+ install -D -m0755 fnteditfs $pkgdir/usr/bin/fnteditfs
+ install -D -m0644 fnteditfs.1 $pkgdir/usr/share/man/man1/fnteditfs.1
+}
diff --git a/community/fotoxx/PKGBUILD b/community/fotoxx/PKGBUILD
new file mode 100644
index 000000000..c992d7f55
--- /dev/null
+++ b/community/fotoxx/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 60004 2011-12-03 05:50:16Z ebelanger $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=fotoxx
+pkgver=11.12.1
+pkgrel=1
+pkgdesc="A program for improving image files made with a digital camera"
+url="http://kornelix.squarespace.com/fotoxx"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+depends=('gimp-ufraw' 'perl-exiftool' 'xdg-utils')
+optdepends=('mashup: for composing pages to print from within fotoxx' 'brasero: for burning')
+install=fotoxx.install
+source=("http://kornelix.squarespace.com/storage/downloads/$pkgname-$pkgver.tar.gz")
+sha1sums=('e9f6d58a56020e0548163c4b42687d8a23591c18')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -e 's+xdg-deskto+#xdg-deskto+' -e 's/kornelix-//' -i Makefile
+ make PREFIX=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
diff --git a/community/fotoxx/fotoxx.install b/community/fotoxx/fotoxx.install
new file mode 100644
index 000000000..90156a79c
--- /dev/null
+++ b/community/fotoxx/fotoxx.install
@@ -0,0 +1,9 @@
+post_install() {
+ update-desktop-database -q
+}
+post_update() {
+ update-desktop-database -q
+}
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/community/fox/PKGBUILD b/community/fox/PKGBUILD
new file mode 100644
index 000000000..1b8a62b11
--- /dev/null
+++ b/community/fox/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58793 2011-11-18 14:31:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=fox
+pkgver=1.6.44
+pkgrel=1
+pkgdesc="Free Objects for X: GUI Toolkit for C++"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fox-toolkit.org/"
+license=('LGPL' 'custom')
+depends=('bzip2' 'libxcursor' 'libxft' 'libxrandr' 'mesa' 'libxi' 'libpng' 'libtiff')
+optdepends=('perl')
+options=('!libtool')
+source=(http://ftp.fox-toolkit.org/pub/fox-$pkgver.tar.gz)
+md5sums=('6ccc8cbcfa6e4c8b6e4deeeb39c36434')
+
+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/Makefile-mk382.diff b/community/fpc/Makefile-mk382.diff
new file mode 100644
index 000000000..00909766d
--- /dev/null
+++ b/community/fpc/Makefile-mk382.diff
@@ -0,0 +1,174 @@
+--- Makefile.fpc.orig 2011-04-02 01:15:34.000000000 +0400
++++ Makefile.fpc 2011-08-05 22:29:44.000000000 +0400
+@@ -4,7 +4,7 @@
+
+ [package]
+ name=compiler
+-version=2.4.4
++version=2.5.1
+
+ [target]
+ programs=pp
+@@ -32,7 +32,7 @@
+ unexport FPC_VERSION FPC_COMPILERINFO
+
+ # Which platforms are ready for inclusion in the cycle
+-CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb # mipsel mips
++CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr
+
+ # All supported targets used for clean
+ ALLTARGETS=$(CYCLETARGETS)
+@@ -148,6 +148,12 @@
+ ifeq ($(CPC_TARGET),arm)
+ CPUSUF=arm
+ endif
++ifeq ($(CPC_TARGET),mips)
++CPUSUF=mips
++endif
++ifeq ($(CPC_TARGET),mipsel)
++CPUSUF=mipsel
++endif
+
+ # Do not define the default -d$(CPU_TARGET) because that
+ # will conflict with our -d$(CPC_TARGET)
+@@ -224,12 +230,39 @@
+ override LOCALOPT+=
+ endif
+
++# mipsel specific
++ifeq ($(PPC_TARGET),mipsel)
++override LOCALOPT+=-Fumips
++endif
++
++
++OPTWPOCOLLECT=-OWdevirtcalls,optvmts -FW$(BASEDIR)/pp1.wpo
++OPTWPOPERFORM=-Owdevirtcalls,optvmts -Fw$(BASEDIR)/pp1.wpo
++# symbol liveness WPO requires nm, smart linking and no stripping (the latter
++# is forced by the Makefile when necessary)
++ifneq ($(findstring $(OS_TARGET),darwin linux freebsd solaris),)
++ifdef LINKSMART
++ifdef CREATESMART
++OPTWPOCOLLECT+=-OWsymbolliveness -Xs-
++OPTWPOPERFORM+=-Owsymbolliveness
++endif
++endif
++endif
++
++
+ [rules]
+ #####################################################################
+ # Setup Targets
+ #####################################################################
+
+ ifeq ($(OS_TARGET),win32)
++USE_CMP_FOR_DIFF=1
++endif
++ifeq ($(OS_TARGET),win64)
++USE_CMP_FOR_DIFF=1
++endif
++
++ifdef USE_CMP_FOR_DIFF
+ ifdef CMP
+ override DIFF:=$(CMP) -i218
+ endif
+@@ -267,6 +300,8 @@
+ TEMPNAME1=ppc1$(EXEEXT)
+ TEMPNAME2=ppc2$(EXEEXT)
+ TEMPNAME3=ppc3$(EXEEXT)
++TEMPWPONAME1=ppcwpo1$(EXEEXT)
++TEMPWPONAME2=ppcwpo2$(EXEEXT)
+ MAKEDEP=ppdep$(EXEEXT)
+ MSG2INC=./msg2inc$(EXEEXT)
+ ifdef CROSSINSTALL
+@@ -327,15 +362,15 @@
+ -$(DEL) $(addsuffix /*$(PPUEXT),$(COMPILERSOURCEDIR))
+
+ tempclean:
+- -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
++ -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC) pp1.wpo pp2.wpo
+
+ execlean :
+- -$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) $(EXENAME)
++ -$(DEL) ppc386$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) ppcppc64$(EXEEXT) ppcarm$(EXEEXT) ppcmips$(EXEEXT) ppcmipsel$(EXEEXT) $(EXENAME) $(TEMPWPONAME1) $(TEMPWPONAME2)
+
+ $(addsuffix _clean,$(ALLTARGETS)):
+ -$(DELTREE) $(addprefix $(subst _clean,,$@),/units)
+ -$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
+- -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
++ -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) ppcppc64$(EXEEXT) ppcarm$(EXEEXT) ppcmips$(EXEEXT) ppcmipsel$(EXEEXT) $(EXENAME))
+
+ cycleclean: cleanall $(addsuffix _clean,$(CPC_TARGET))
+ -$(DEL) $(EXENAME)
+@@ -444,6 +479,28 @@
+ # Normal cycle
+ #
+
++ifndef NOWPOCYCLE
++ifdef RELEASE
++DOWPOCYCLE=1
++# Two WPO cycles in case of RELEASE=1
++wpocycle:
++# don't use cycle_clean, it will delete the compiler utilities again
++ $(RM) $(EXENAME)
++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OPT=$(LOCALOPT) $(OPTWPOCOLLECT)' compiler
++ $(RM) $(EXENAME)
++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OPT=$(RTLOPT) $(OPTWPOPERFORM)' rtlclean rtl
++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OPT=$(LOCALOPT) $(OPTWPOPERFORM) $(subst pp1.wpo,pp2.wpo,$(OPTWPOCOLLECT))' $(addsuffix _clean,$(ALLTARGETS)) compiler
++ $(MOVE) $(EXENAME) $(TEMPWPONAME1)
++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPWPONAME1)' 'OPT=$(RTLOPT) $(subst pp1.wpo,pp2.wpo,$(OPTWPOPERFORM))' rtlclean rtl
++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPWPONAME1)' 'OPT=$(LOCALOPT) $(subst pp1.wpo,pp2.wpo,$(OPTWPOPERFORM))' $(addsuffix _clean,$(ALLTARGETS)) compiler
++ $(COPY) $(EXENAME) $(TEMPWPONAME2)
++endif
++endif
++
++ifndef DOWPOCYCLE
++wpocycle:
++endif
++
+ # Used to avoid unnecessary steps
+ ifdef DIFF
+ ifdef OLDFPC
+@@ -490,6 +547,7 @@
+ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next
+ $(DIFF) $(TEMPNAME3) $(EXENAME)
+ $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)'
++ $(MAKE) wpocycle
+ $(MAKE) echotime
+
+ else
+@@ -508,8 +566,11 @@
+ # ppc<ARCH> (target native)
+ ifndef CROSSINSTALL
+ $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
++# building a native compiler for embedded targets is not possible
++ifneq ($(OS_TARGET),embedded)
+ $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler
+ endif
++endif
+
+ endif
+
+@@ -523,10 +584,10 @@
+ # ppc3/ppcXXX = native (skipped for cross installation)
+ #
+
++cycle: override FPC=
+ cycle:
+ # ppc (source native)
+ # Clear detected compiler binary, because it can be existing crosscompiler binary, but we need native compiler here
+-override FPC=
+ $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
+ $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
+ # ppcross<ARCH> (source native)
+@@ -535,8 +596,11 @@
+ # ppc<ARCH> (target native)
+ ifndef CROSSINSTALL
+ $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' rtlclean rtl
++# building a native compiler for embedded targets is not possible
++ifneq ($(OS_TARGET),embedded)
+ $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' cycleclean compiler
+ endif
++endif
+
+ endif
+
diff --git a/community/fpc/PKGBUILD b/community/fpc/PKGBUILD
new file mode 100644
index 000000000..fa5ffb86e
--- /dev/null
+++ b/community/fpc/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 53775 2011-08-08 08:05:51Z 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.4
+pkgrel=3
+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' 'mips64el')
+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
+ Makefile-mk382.diff)
+md5sums=('d069dfd3412bd0d26dcd1b81ac998305'
+ 'a2242d261b055d08fa4d70e88ca1d1a7')
+
+build() {
+ cd ${srcdir}/fpcbuild-$pkgver
+ pushd fpcsrc/compiler
+ patch -uN Makefile.fpc $srcdir/Makefile-mk382.diff
+ fpcmake -Tall
+ popd
+ make NOGDB=1 build
+# make NOGDB=1 build OS_TARGET=win32 CPU_TARGET=i386
+}
+
+package() {
+ cd ${srcdir}/fpcbuild-$pkgver
+
+ export HOME=$srcdir
+
+ make -j1 NOGDB=1 PREFIX=${pkgdir}/usr install
+
+# make NOGDB=1 PREFIX=${pkgdir}/usr crossinstall OS_TARGET=win32 CPU_TARGET=i386
+# ln -s /usr/lib/fpc/$pkgver/ppcross386 $pkgdir/usr/bin/ppcross386
+
+ # 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..a3dcccc95
--- /dev/null
+++ b/community/freecol/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 56049 2011-09-29 16:29:17Z 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.10.3
+pkgrel=1
+pkgdesc="A turn-based strategy game based on Colonization"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freecol.org/"
+license=('GPL')
+depends=('java-runtime')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.zip
+ fc.desktop fc.sh)
+md5sums=('9aafa286247470831cd322e688ed5103'
+ '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..cb0fb2e7b
--- /dev/null
+++ b/community/freedroid/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 54653 2011-08-22 14:49:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=freedroid
+pkgver=1.0.2
+pkgrel=5
+pkgdesc="a clone of the classic game 'Paradroid' on Commodore 64"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freedroid.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'sdl_image' 'sdl_mixer')
+source=(http://downloads.sourceforge.net/sourceforge/freedroid/$pkgname-$pkgver.tar.gz
+ freedroid.desktop
+ paraicon.png)
+md5sums=('585a65f61c2cd308ab45d5c514f695dc'
+ 'e4a34f00f1cd983331999022569f2b57'
+ '68a11e92695978a9aac58cc21a4899db')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share
+ make
+ make DESTDIR=$pkgdir install
+ install -Dm0644 $srcdir/paraicon.png $pkgdir/usr/share/icons/paraicon.png
+ install -Dm0644 $srcdir/freedroid.desktop $pkgdir/usr/share/applications/freedroid.desktop
+}
diff --git a/community/freedroid/freedroid.desktop b/community/freedroid/freedroid.desktop
new file mode 100644
index 000000000..4abe39f7a
--- /dev/null
+++ b/community/freedroid/freedroid.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=FreeDroid
+Comment=An SDL Paranoid(c) clone game
+Exec=freedroid
+Icon=paraicon
+Terminal=false
+Type=Application
+Categories=Game;Arcade;
diff --git a/community/freedroid/paraicon.png b/community/freedroid/paraicon.png
new file mode 100644
index 000000000..09e7c9128
--- /dev/null
+++ b/community/freedroid/paraicon.png
Binary files differ
diff --git a/community/freedroidrpg/PKGBUILD b/community/freedroidrpg/PKGBUILD
new file mode 100644
index 000000000..85eb1d089
--- /dev/null
+++ b/community/freedroidrpg/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 60343 2011-12-11 19:59:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: nut543 <kfs1@online.no>
+
+#pkgbase=freedroidrpg
+#pkgname=('freedroidrpg' 'freedroidrpg-data')
+pkgname='freedroidrpg'
+pkgver=0.15rc2
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+# depends=('sdl_mixer' 'sdl_image' 'libogg' 'libvorbis' 'libgl' 'freedroidrpg-data')
+depends=('sdl_mixer' 'sdl_image' 'sdl_gfx' 'libogg' 'libvorbis' 'libgl' 'mesa')
+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.15/freedroidrpg-$pkgver.tar.gz
+ freedroidrpg.jpg
+ freedroidrpg.desktop)
+md5sums=('0e098aae0b16b6f87ffe5f7932580491'
+ '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..028b94e54
--- /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' 'mips64el')
+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..e80272b38
--- /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.1
+pkgrel=1
+pkgdesc="Library project for developers who would like to support popular graphics image formats."
+arch=('i686' 'x86_64' 'mips64el')
+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=('450d2ff278690b0d1d7d7d58fad083cc'
+ '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..a2f839ed6
--- /dev/null
+++ b/community/freemat/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 58815 2011-11-18 15:51:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=freemat
+pkgver=4.0
+pkgrel=5
+pkgdesc="A free environment for rapid engineering, scientific prototyping and data processing"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freemat.sourceforge.net"
+license=('GPL')
+depends=('qt' 'ffcall' 'fftw' 'mesa' 'portaudio')
+makedepends=('arpack' 'lapack' 'umfpack' 'blas' 'libmatio' 'cmake')
+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..849a965c3
--- /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' 'mips64el')
+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..9ad40f06e
--- /dev/null
+++ b/community/freeradius/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59708 2011-11-29 13:34:54Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jason R Begley (jayray@digitalgoat.com>
+
+pkgname=freeradius
+pkgver=2.1.12
+pkgrel=2
+pkgdesc="The premier open source RADIUS server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freeradius.org/"
+license=("GPL")
+depends=('openssl' 'krb5' 'pth' 'libldap>=2.4.18' 'net-snmp' 'pam'
+ 'postgresql-libs>=9.0.3' 'libtool' 'libmysqlclient' 'gdbm' 'shadow')
+optdepends=('libpcap' 'unixodbc' 'python2')
+options=('!libtool' 'emptydirs' '!makeflags')
+install=$pkgname.install
+source=(ftp://ftp.freeradius.org/pub/radius/freeradius-server-$pkgver.tar.bz2
+ radiusd
+ krb5-build-fix.patch)
+md5sums=('862d3a2c11011e61890ba84fa636ed8c'
+ 'f1a6530b1b69d2fa793aa45b2de379bb'
+ 'c6a61de7576933f59154a53bfc12a2d2')
+
+build() {
+ cd $srcdir/freeradius-server-$pkgver
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ sed -i 's/ -DKRB5_DEPRECATED//' src/modules/rlm_krb5/Makefile.in
+ patch -p1 <$srcdir/krb5-build-fix.patch
+ ./configure --with-system-libtool --with-system-libltdl \
+ --prefix=/usr --enable-heimdal-krb5 \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib/freeradius
+ make
+}
+
+package() {
+ cd $srcdir/freeradius-server-$pkgver
+ make install R=$pkgdir
+ install -D -m755 ../radiusd $pkgdir/etc/rc.d/radiusd
+ chmod o+r $pkgdir/etc/raddb/*
+ mv $pkgdir/etc/raddb $pkgdir/etc/raddb.default
+ rm -rf $pkgdir/var/run
+}
diff --git a/community/freeradius/freeradius.install b/community/freeradius/freeradius.install
new file mode 100644
index 000000000..c3b9f9415
--- /dev/null
+++ b/community/freeradius/freeradius.install
@@ -0,0 +1,22 @@
+post_install() {
+ groupadd -r radiusd
+ useradd -r -m -d /var/lib/radiusd -g radiusd -s /bin/false radiusd
+
+ touch /var/log/radius/radius.log
+ chown -R radiusd.radiusd /var/log/radius/radius.log
+
+ [ -d /etc/raddb ] || cp -a /etc/raddb.default /etc/raddb
+
+ /bin/true
+}
+
+pre_remove() {
+ /etc/rc.d/radiusd stop
+ /bin/true
+}
+
+post_remove() {
+ userdel radiusd
+ groupdel radiusd
+ /bin/true
+}
diff --git a/community/freeradius/krb5-build-fix.patch b/community/freeradius/krb5-build-fix.patch
new file mode 100644
index 000000000..11dae7090
--- /dev/null
+++ b/community/freeradius/krb5-build-fix.patch
@@ -0,0 +1,21 @@
+diff -wbBur freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c
+--- freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c 2010-09-28 11:03:56.000000000 +0000
++++ freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c 2011-04-29 09:26:10.000000000 +0000
+@@ -375,7 +375,7 @@
+ * Heimdal krb5 verification
+ */
+ radlog(L_AUTH, "rlm_krb5: Parsed name is: %s@%s\n",
+- *userP->name.name_string.val,
++ "-" /* *userP->name.name_string.val*/,
+ userP->realm);
+
+ krb5_cc_default(context, &id);
+@@ -390,7 +390,7 @@
+
+ radlog(L_AUTH, "rlm_krb5: failed verify_user: %s (%s@%s )",
+ error_message(ret),
+- *userP->name.name_string.val,
++ "-" /* *userP->name.name_string.val */,
+ userP->realm);
+
+ return RLM_MODULE_REJECT;
diff --git a/community/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..9a22f7aa4
--- /dev/null
+++ b/community/freerdp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 54447 2011-08-18 15:06:31Z bluewind $
+# 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=3
+pkgdesc="Free RDP client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freerdp.sourceforge.net"
+license=('GPL')
+depends=('openssl' 'libxcursor' 'libcups' 'alsa-lib')
+makedepends=('krb5')
+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
+}
+
+package() {
+ cd `find ${srcdir}/ -type d -name freerdp-\*`
+ 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..c3fa25722
--- /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' 'mips64el')
+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..00530e5e4
--- /dev/null
+++ b/community/freevo/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 51736 2011-07-13 19:46:02Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=freevo
+pkgver=1.9.0
+pkgrel=6
+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' 'mips64el')
+depends=('lame' 'flac' 'faad2' 'cdparanoia' 'vorbis-tools' \
+ 'fbset' 'smpeg' 'pil' 'python-pysqlite-legacy' \
+ 'pyxml' 'lsdvd' 'twisted' 'python2-numpy' 'python-pygame'\
+ 'kaa-metadata' 'kaa-imlib2' 'python-beautifulsoup' '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)
+sha1sums=('0533a2d4ff8a7b09b3b233fdf303ff56bda22d16'
+ '5f6e76dc58496f072aca29257c24be5ffa9c6c7d'
+ '57e1099527603500c594fbffa2cb7233b636eed1')
+
+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..ba57c7f1e
--- /dev/null
+++ b/community/freewrl/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58829 2011-11-18 16:55:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=freewrl
+pkgver=1.22.10
+pkgrel=7
+pkgdesc="VRML viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freewrl.sourceforge.net/"
+license=('GPL')
+depends=('java-runtime' 'libxaw' 'glew' 'freeglut' 'curl' 'freetype2' 'imlib2' 'sox'
+ 'unzip' 'imagemagick' 'libxml2' 'ttf-bitstream-vera' 'lesstif' 'js')
+makedepends=('java-environment')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
+ build-fix.patch)
+md5sums=('07fd8f193d14799ffb95a59a4887fc88'
+ '52e4b6aacebcaf18cbec8975e0eb7fd8')
+
+build() {
+ . /etc/profile.d/jre.sh
+ . /etc/profile.d/jdk.sh
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ export JAVASCRIPT_ENGINE_CFLAGS="-I/usr/include/js -DXP_UNIX -DJS_THREADSAFE $(pkg-config --cflags nspr)"
+ export JAVASCRIPT_ENGINE_LIBS="$(pkg-config --libs nspr) -lmozjs185"
+ ./configure \
+ --prefix=/usr --with-fontsdir=/usr/share/fonts/TTF --enable-libeai \
+ --enable-libcurl --with-expat=/usr --with-target=x11 --disable-plugin \
+ --disable-mozilla-js --disable-xulrunner-js --disable-firefox-js \
+ --disable-seamonkey-js
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/freewrl/build-fix.patch b/community/freewrl/build-fix.patch
new file mode 100644
index 000000000..c0de71d07
--- /dev/null
+++ b/community/freewrl/build-fix.patch
@@ -0,0 +1,1201 @@
+diff -wbBur freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c
+--- freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c 2010-08-19 06:20:36.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c 2011-07-04 01:19:07.000000000 +0400
+@@ -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.10/src/lib/world_script/fieldGet.c freewrl-1.22.10.my/src/lib/world_script/fieldGet.c
+--- freewrl-1.22.10/src/lib/world_script/fieldGet.c 2010-10-13 23:45:26.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/fieldGet.c 2011-07-04 20:21:21.000000000 +0400
+@@ -412,7 +412,7 @@
+ /* create a new SFFloat object */
+
+ fp = (float *)fp_in;
+- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp));
++ newjsval = JS_NewJSVal(cx,(double)*fp);
+ fp_in = offsetPointer_deref(float *,fp_in,elementlen);
+
+ /* put this object into the MF class */
+@@ -449,7 +449,7 @@
+ /* create a new SFTime object */
+
+ fp = (float *)fp_in;
+- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp));
++ newjsval = JS_NewJSVal(cx,(double)*fp);
+ fp_in = offsetPointer_deref(float *,fp_in,elementlen);
+
+ /* put this object into the MF class */
+diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldSet.c freewrl-1.22.10.my/src/lib/world_script/fieldSet.c
+--- freewrl-1.22.10/src/lib/world_script/fieldSet.c 2010-09-22 00:00:25.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/fieldSet.c 2011-07-04 20:03:53.000000000 +0400
+@@ -748,7 +748,7 @@
+
+ #ifdef SETFIELDVERBOSE
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+ printf ("start of setField_javascriptEventOut, to %ld:%d = %p, fieldtype %d string %s\n",(long)tn, tptr, memptr, fieldType, strp);
+ #endif
+
+@@ -813,7 +813,7 @@
+ case FIELDTYPE_SFImage: {
+ /* the string should be saved as an SFImage */
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+
+ Parser_scanStringValueToMem(tn, tptr, FIELDTYPE_SFImage, strp, FALSE);
+ break;
+@@ -824,7 +824,7 @@
+ uintptr_t *newptr;
+
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+
+ /* copy the string over, delete the old one, if need be */
+ /* printf ("fieldSet SFString, tn %d tptr %d offset from struct %d\n",
+@@ -844,7 +844,7 @@
+ struct X3D_Node *mynode;
+
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+
+ /* we will have at least one node here, in an ascii string */
+ while ((*strp > '\0') && (*strp <= ' ')) strp ++;
+@@ -1227,7 +1227,7 @@
+ JSString *_tmpStr;
+
+ _tmpStr = JS_ValueToString(cx, mainElement);
+- strp = JS_GetStringBytes(_tmpStr);
++ strp = JS_EncodeString(scriptContext, _tmpStr);
+ printf ("sub element %d is \"%s\" \n",i,strp);
+
+ if (JSVAL_IS_OBJECT(mainElement)) printf ("sub element %d is an OBJECT\n",i);
+@@ -1329,7 +1329,7 @@
+ JSString *strval;
+
+ strval = JS_ValueToString(cx, mainElement);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(cx, strval);
+
+ #ifdef SETFIELDVERBOSE
+ printf ("getJSMultiNumType, got string %s\n",strp);
+@@ -1441,7 +1441,7 @@
+ return;
+ }
+ strval = JS_ValueToString(cx, _v);
+- valStr = JS_GetStringBytes(strval);
++ valStr = JS_EncodeString(cx, strval);
+
+ /* printf ("new string %d is %s\n",i,valStr); */
+
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsUtils.c freewrl-1.22.10.my/src/lib/world_script/jsUtils.c
+--- freewrl-1.22.10/src/lib/world_script/jsUtils.c 2010-06-03 23:38:37.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsUtils.c 2011-07-04 20:21:44.000000000 +0400
+@@ -134,7 +134,7 @@
+ nf = OBJECT_TO_JSVAL(me);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf)));
++ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf)));
+ #endif
+
+ if (!setSFNodeField (cx, par, pf, &nf)) {
+@@ -197,7 +197,7 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, *newval);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ oldS = (struct Uni_String *) *((uintptr_t *)Data);
+
+@@ -305,12 +305,12 @@
+
+ case FIELDTYPE_SFFloat: {
+ memcpy ((void *) &fl, Data, datalen);
+- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)fl));
++ *newval = JS_NewJSVal(cx,(double)fl);
+ break;
+ }
+ case FIELDTYPE_SFTime: {
+ memcpy ((void *) &dl, Data, datalen);
+- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,dl));
++ *newval = JS_NewJSVal(cx,dl);
+ break;
+ }
+ case FIELDTYPE_SFBool:
+@@ -824,7 +824,7 @@
+ struct X3D_Node *node;
+
+ _idStr = JS_ValueToString(context, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(context, _idStr);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("\ngetSFNodeField called on name %s object %u\n",_id_c, obj);
+@@ -912,7 +912,7 @@
+
+ /* get the id field... */
+
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("\nsetSFNodeField called on name %s object %u, jsval %u\n",_id_c, obj, *vp);
+@@ -1131,10 +1131,10 @@
+ char *_id_c = "(no value in string)";
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ /* printf ("hmmm...js_SetPropertyCheck called on string \"%s\" object %u, jsval %u\n",_id_c, obj, *vp); */
+ } else if (JSVAL_IS_DOUBLE(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyCheck called on double %s object %u, jsval %u\n",_id_c, obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1192,7 +1192,7 @@
+ /* get the id field... */
+
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_GetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1211,7 +1211,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1229,7 +1229,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug1 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1247,7 +1247,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("...js_SetPropertyDebug2 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1265,7 +1265,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug3 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1283,7 +1283,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug4 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1301,7 +1301,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug5 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1319,7 +1319,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug6 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1337,7 +1337,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug7 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1355,7 +1355,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug8 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1373,7 +1373,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug9 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c 2010-08-02 23:55:57.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c 2011-07-04 20:06:25.000000000 +0400
+@@ -336,7 +336,7 @@
+ return JS_FALSE;
+ }
+ _str = JS_ValueToString(context, argv[0]);
+- _costr = JS_GetStringBytes(_str);
++ _costr = JS_EncodeString(context, _str);
+
+ /* sanitize string, for the EAI_RW call (see EAI_RW code) */
+ tptr = _costr;
+@@ -385,10 +385,10 @@
+ return JS_FALSE;
+ }
+ _str[0] = JS_ValueToString(context, argv[0]);
+- _costr[0] = JS_GetStringBytes(_str[0]);
++ _costr[0] = JS_EncodeString(context, _str[0]);
+
+ _str[1] = JS_ValueToString(context, argv[1]);
+- _costr[1] = JS_GetStringBytes(_str[1]);
++ _costr[1] = JS_EncodeString(context, _str[1]);
+
+ /* we use the EAI code for this - so reformat this for the EAI format */
+ {
+@@ -575,7 +575,7 @@
+ /* third parameter should be a string */
+ if (JSVAL_IS_STRING(argv[2])) {
+ _str[1] = JSVAL_TO_STRING(argv[2]);
+- fieldStr = JS_GetStringBytes(_str[1]);
++ fieldStr = JS_EncodeString(context, _str[1]);
+ #ifdef JSVERBOSE
+ printf ("field string is :%s:\n",fieldStr);
+ #endif
+@@ -590,7 +590,7 @@
+
+ /* get the URL listing as a string */
+ _str[0] = JS_ValueToString(context, argv[0]);
+- _costr0 = JS_GetStringBytes(_str[0]);
++ _costr0 = JS_EncodeString(context, _str[0]);
+
+
+ #ifdef JSVERBOSE
+@@ -690,7 +690,7 @@
+ for (count=0; count < argc; count++) {
+ if (JSVAL_IS_STRING(argv[count])) {
+ _str = JSVAL_TO_STRING(argv[count]);
+- _id_c = JS_GetStringBytes(_str);
++ _id_c = JS_EncodeString(context, _str);
+ #if defined(AQUA) || defined(_MSC_VER)
+ BrowserPrintConsoleMessage(_id_c); /* statusbar hud */
+ consMsgCount = 0; /* reset the "Maximum" count */
+@@ -850,7 +850,7 @@
+
+ /* parameter should be a string */
+ if (JSVAL_IS_STRING(argv[0])) {
+- target = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]));
++ target = JS_EncodeString(context, JSVAL_TO_STRING(argv[0]));
+ #ifdef JSVERBOSE
+ printf ("field string is %s\n",target);
+ #endif
+@@ -930,7 +930,7 @@
+
+ /* parameters should be a string */
+ if (JSVAL_IS_STRING(argv[0])) {
+- targetDevice = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]));
++ targetDevice = JS_EncodeString(cx, JSVAL_TO_STRING(argv[0]));
+ #ifdef JSVERBOSE
+ printf ("field string is %s\n",targetDevice);
+ #endif
+@@ -939,7 +939,7 @@
+ return -1;
+ }
+ if (JSVAL_IS_STRING(argv[1])) {
+- targetController = JS_GetStringBytes( JSVAL_TO_STRING(argv[1]));
++ targetController = JS_EncodeString(cx, JSVAL_TO_STRING(argv[1]));
+ #ifdef JSVERBOSE
+ printf ("field string is %s\n",targetController);
+ #endif
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c 2010-09-22 23:40:48.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c 2011-07-04 20:08:03.000000000 +0400
+@@ -935,7 +935,7 @@
+ printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd);
+ return JS_FALSE;
+ }
+- val = DOUBLE_TO_JSVAL(dp);
++ val = DOUBLE_TO_JSVAL(*dp);
+
+ }
+ }
+@@ -1108,7 +1108,7 @@
+
+ printf ("HAVE STRING HERE!\n");
+ _str = JS_ValueToString(cx, id);
+- asciiStr = JS_GetStringBytes(_str);
++ asciiStr = JS_EncodeString(context, _str);
+ printf ("we have as a parameter :%s:\n",asciiStr);
+ #endif
+
+@@ -1185,7 +1185,7 @@
+ if (_tmpStr==NULL) {
+ _tmp_valStr = "NULL";
+ } else {
+- _tmp_valStr = JS_GetStringBytes(_tmpStr);
++ _tmp_valStr = JS_EncodeString(cx, _tmpStr);
+ }
+ }
+
+@@ -1281,7 +1281,7 @@
+ #endif
+
+ str = JS_ValueToString(cx, id);
+- p = JS_GetStringBytes(str);
++ p = JS_EncodeString(cx, str);
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf("\tid string %s\n ",p);
+ #endif
+@@ -1368,12 +1368,12 @@
+ char * _c;
+ printf ("doMFSetProperty, for object %u, vp %u\n", obj,*vp);
+ _str = JS_ValueToString(cx, id);
+- _c = JS_GetStringBytes(_str);
++ _c = JS_EncodeString(cx, _str);
+ printf ("id is %s\n",_c);
+
+ _sstr = JS_ValueToString(cx, *vp);
+ printf ("looking up value for %d %x object %p\n",*vp,*vp,obj);
+- _cc = JS_GetStringBytes(_sstr);
++ _cc = JS_EncodeString(cx, _sstr);
+ printf("\tdoMFSetProperty:%d: obj = %p, id = %s, vp = %s\n",type,
+ obj, _c, _cc);
+ if (JSVAL_IS_OBJECT(*vp)) { printf ("doMFSet, vp is an OBJECT\n"); }
+@@ -1397,7 +1397,7 @@
+
+ if (!JS_ValueToInt32(cx, *vp, &i)) {
+ _sstr = JS_ValueToString(cx, *vp);
+- _cc = JS_GetStringBytes(_sstr);
++ _cc = JS_EncodeString(cx, _sstr);
+ printf ("can not convert %s to an integer in doMFAddProperty for type %d\n",_cc,type);
+ return JS_FALSE;
+ }
+@@ -1408,7 +1408,7 @@
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("doMFSetProperty - ensure that this is a DOUBLE ");
+ _sstr = JS_ValueToString(cx, *vp);
+- _cc = JS_GetStringBytes(_sstr);
++ _cc = JS_EncodeString(cx, _sstr);
+ printf ("value is %s \n",_cc);
+ #endif
+
+@@ -1420,7 +1420,7 @@
+ printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+
+ }
+ }
+@@ -1511,7 +1511,7 @@
+ nf = OBJECT_TO_JSVAL(me);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf)));
++ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf)));
+ #endif
+
+ if (!setSFNodeField (cx, par, pf, &nf)) {
+@@ -1535,7 +1535,7 @@
+ unsigned int i, j = 0;
+
+ _str = JS_ValueToString(cx, *vp);
+- _buff = JS_GetStringBytes(_str);
++ _buff = JS_EncodeString(cx, _str);
+ _buff_len = strlen(_buff) + 1;
+
+ #ifdef JSVRMLCLASSESVERBOSE
+@@ -1719,14 +1719,14 @@
+ size_t len = 0;
+
+ _idStr = JS_ValueToString(context, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(context, _idStr);
+
+ /* "register" this ECMA value for routing changed flag stuff */
+ setInECMATable(context, _id_c);
+
+ if (JSVAL_IS_STRING(*vp)) {
+ _vpStr = JS_ValueToString(context, *vp);
+- _vp_c = JS_GetStringBytes(_vpStr);
++ _vp_c = JS_EncodeString(context, _vpStr);
+
+ len = strlen(_vp_c);
+
+@@ -1752,7 +1752,7 @@
+ } else {
+ #ifdef JSVRMLCLASSESVERBOSE
+ _vpStr = JS_ValueToString(context, *vp);
+- _vp_c = JS_GetStringBytes(_vpStr);
++ _vp_c = JS_EncodeString(cx, _vpStr);
+ printf("setECMANative: obj = %p, id = \"%s\", vp = %s\n",
+ obj, _id_c, _vp_c);
+ #endif
+@@ -1770,9 +1770,9 @@
+ JSString *_idStr, *_vpStr;
+ char *_id_c, *_vp_c;
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _vpStr = JS_ValueToString(cx, *vp);
+- _vp_c = JS_GetStringBytes(_vpStr);
++ _vp_c = JS_EncodeString(cx, _vpStr);
+ printf("getAssignProperty: obj = %p, id = \"%s\", vp = %s\n",
+ obj, _id_c, _vp_c);
+ printf ("what is vp? \n");
+@@ -1803,7 +1803,7 @@
+
+ if (JSVAL_IS_STRING(id)) {
+ _str = JSVAL_TO_STRING(id);
+- _id_c = JS_GetStringBytes(_str);
++ _id_c = JS_EncodeString(cx, _str);
+ if (!JS_ConvertValue(cx, *vp, JSTYPE_OBJECT, &newVal)) {
+ printf( "JS_ConvertValue failed in setAssignProperty.\n");
+ return JS_FALSE;
+@@ -1834,9 +1834,9 @@
+ if (JSVAL_IS_DOUBLE(id)) printf ("id is an DOUBLE\n");
+ if (JSVAL_IS_INT(id)) printf ("id is an INT\n");
+
+- printf ("id is %s\n",JS_GetStringBytes(JS_ValueToString(cx,id)));
+- printf ("initVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,initVal)));
+- printf ("newVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,newVal)));
++ printf ("id is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,id)));
++ printf ("initVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,initVal)));
++ printf ("newVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,newVal)));
+
+ #endif
+
+@@ -1859,7 +1859,7 @@
+ } else {
+ #ifdef JSVRMLCLASSESVERBOSE
+ _str = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_str);
++ _id_c = JS_EncodeString(cx, _str);
+ printf("setAssignProperty: obj = %p, id = \"%s\"\n",
+ obj, _id_c);
+ #endif
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h
+--- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h 2010-10-13 23:45:26.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h 2011-07-04 20:24:53.000000000 +0400
+@@ -30,6 +30,21 @@
+ #ifndef __FREEWRL_JS_VRML_CLASSES_H__
+ #define __FREEWRL_JS_VRML_CLASSES_H__
+
++static inline jsval JS_NewJSVal(JSContext *cx, jsdouble d)
++{
++ jsval ret;
++ JS_NewNumberValue(cx, d, &ret);
++ return ret;
++}
++
++static inline jsdouble * JS_NewDouble(JSContext *cx, jsdouble d)
++{
++ static jsdouble ret;
++ jsval rv;
++ JS_NewNumberValue(cx, d, &rv);
++ ret = JSVAL_TO_DOUBLE(rv);
++ return &ret;
++}
+
+ #ifndef UNUSED
+ #define UNUSED(v) ((void) v)
+@@ -80,14 +95,14 @@
+
+
+ #define SET_JS_TICKTIME_FALSE(possibleRetVal) { jsval zimbo; \
+- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \
++ zimbo = JS_NewJSVal(cx, TickTime); \
+ if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
+ printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
+ return possibleRetVal; \
+ }}
+
+ #define SET_JS_TICKTIME() { jsval zimbo; \
+- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \
++ zimbo = JS_NewJSVal(cx, TickTime); \
+ if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
+ printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
+ return FALSE; \
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c 2010-09-22 23:40:48.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c 2011-07-04 20:08:44.000000000 +0400
+@@ -596,7 +596,7 @@
+ return;
+ }
+
+- val = DOUBLE_TO_JSVAL(dp);
++ val = DOUBLE_TO_JSVAL(*dp);
+
+ if (!JS_SetElement(cx, obj, (jsint) i, &val)) {
+ printf( "JS_DefineElement failed for arg %u in VrmlMatrixSetTransform.\n", i);
+@@ -1212,7 +1212,7 @@
+ /*
+ if (JSVAL_IS_STRING(id)==TRUE) {
+ printf(" is a common string :%s:\n",
+- JS_GetStringBytes(JS_ValueToString(cx, id)));
++ JS_EncodeString(cx, JS_ValueToString(cx, id)));
+ }
+ if (JSVAL_IS_OBJECT(id)==TRUE) {
+ printf (" parameter is an object\n");
+@@ -1231,7 +1231,7 @@
+ _index = JSVAL_TO_INT(id);
+
+ if (_index >= _length) {
+- *vp = DOUBLE_TO_JSVAL(&zerojsdouble);
++ *vp = DOUBLE_TO_JSVAL(zerojsdouble);
+ if (!JS_DefineElement(cx, obj, (jsint) _index, *vp, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_CHECK, JSPROP_ENUMERATE)) {
+ printf( "JS_DefineElement failed in VrmlMatrixGetProperty.\n");
+ return JS_FALSE;
+@@ -1331,7 +1331,7 @@
+ printf("MFStringAddProperty: vp = %p\n", obj);
+ if (JSVAL_IS_STRING(*vp)==TRUE) {
+ printf(" is a common string :%s:\n",
+- JS_GetStringBytes(JS_ValueToString(cx, *vp)));
++ JS_EncodeString(cx, JS_ValueToString(cx, *vp)));
+ }
+ if (JSVAL_IS_OBJECT(*vp)==TRUE) {
+ printf (" parameter is an object\n");
+@@ -1345,7 +1345,7 @@
+ printf("MFStringAddProperty: id = %p\n", obj);
+ if (JSVAL_IS_STRING(id)==TRUE) {
+ printf(" is a common string :%s:\n",
+- JS_GetStringBytes(JS_ValueToString(cx, id)));
++ JS_EncodeString(cx, JS_ValueToString(cx, id)));
+ }
+ if (JSVAL_IS_OBJECT(id)==TRUE) {
+ printf (" parameter is an object\n");
+@@ -1494,7 +1494,7 @@
+ if (JSVAL_IS_STRING(argv[i])==TRUE) {
+ printf (" Common String, is");
+ _str = JS_ValueToString(cx, argv[i]);
+- printf (JS_GetStringBytes(_str));
++ printf (JS_EncodeString(cx, _str));
+ printf ("..");
+
+ }
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c 2010-09-25 00:22:05.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c 2011-07-04 20:09:01.000000000 +0400
+@@ -161,7 +161,7 @@
+ printf( "JS_NewDouble failed for %f in SFColorGetHSV.\n", xp[i]);
+ return JS_FALSE;
+ }
+- _v = DOUBLE_TO_JSVAL(dp);
++ _v = DOUBLE_TO_JSVAL(*dp);
+ JS_SetElement(cx, result, (jsint)i, &_v);
+ }
+
+@@ -336,7 +336,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -346,7 +346,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -356,7 +356,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -387,13 +387,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+
+ }
+@@ -422,18 +422,18 @@
+ *rval = OBJECT_TO_JSVAL(_arrayObj);
+
+ /* construct new double before conversion? */
+- _v = DOUBLE_TO_JSVAL(&hue);
++ _v = DOUBLE_TO_JSVAL(hue);
+ if (!JS_SetElement(cx, _arrayObj, 0, &_v)) {
+ printf( "JS_SetElement failed for hue in SFColorRGBAGetHSV.\n");
+ return JS_FALSE;
+ }
+- _v = DOUBLE_TO_JSVAL(&saturation);
++ _v = DOUBLE_TO_JSVAL(saturation);
+ if (!JS_SetElement(cx, _arrayObj, 1, &_v)) {
+ printf( "JS_SetElement failed for saturation in SFColorRGBAGetHSV.\n");
+ return JS_FALSE;
+ }
+
+- _v = DOUBLE_TO_JSVAL(&value);
++ _v = DOUBLE_TO_JSVAL(value);
+ if (!JS_SetElement(cx, _arrayObj, 2, &_v)) {
+ printf( "JS_SetElement failed for value in SFColorRGBAGetHSV.\n");
+ return JS_FALSE;
+@@ -601,7 +601,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -611,7 +611,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -621,7 +621,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -631,7 +631,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -662,16 +662,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+
+ }
+@@ -983,7 +983,7 @@
+ } else if (argc == 1) {
+ /* is this a string, or a number indicating a node? */
+ myStr = JS_ValueToString(cx, argv[0]);
+- cString = JS_GetStringBytes(myStr);
++ cString = JS_EncodeString(cx, myStr);
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("SFNodeConstr, argc =1l string %s\n",cString);
+ #endif
+@@ -1067,13 +1067,13 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, argv[0]);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ /* printf ("first string :%s:\n",_id_c); */
+
+ cString = STRDUP(_id_c);
+
+ _idStr = JS_ValueToString(cx, argv[1]);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ /* printf ("second string :%s:\n",_id_c); */
+
+ if (sscanf (_id_c,"%p",&newHandle) != 1) {
+@@ -1190,7 +1190,7 @@
+ jsval rval;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("start of SFNodeGetProperty... id is %s\n",_id_c);
+@@ -1264,10 +1264,10 @@
+
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ _valStr = JS_ValueToString(cx, *vp);
+- _val_c = JS_GetStringBytes(_valStr);
++ _val_c = JS_EncodeString(cx, _valStr);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf("SFNodeSetProperty: obj = %p, id = %s, vp = %s\n",
+@@ -1904,7 +1904,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -1914,7 +1914,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -1924,7 +1924,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -1934,7 +1934,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -1969,16 +1969,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -2051,7 +2051,7 @@
+ * it get created in javascript? */
+ if (param_isString) {
+ _str = JS_ValueToString(cx, *argv);
+- charString = JS_GetStringBytes(_str);
++ charString = JS_EncodeString(cx, _str);
+
+ if (sscanf(charString, "%lf %lf",
+ &(pars[0]), &(pars[1])) != 2) {
+@@ -2143,7 +2143,7 @@
+ printf( "JS_NewDouble failed for %f in SFVec2f.\n",d);
+ return JS_FALSE;
+ }
+- *rval = DOUBLE_TO_JSVAL(dp);
++ *rval = DOUBLE_TO_JSVAL(*dp);
+ }
+
+ #ifdef JSVRMLCLASSESVERBOSE
+@@ -2332,7 +2332,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -2342,7 +2342,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -2373,13 +2373,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -2458,7 +2458,7 @@
+ * it get created in javascript? */
+ if (param_isString) {
+ _str = JS_ValueToString(cx, *argv);
+- charString = JS_GetStringBytes(_str);
++ charString = JS_EncodeString(cx, _str);
+
+ if (sscanf(charString, "%lf %lf %lf",
+ &(pars[0]), &(pars[1]), &(pars[2])) != 3) {
+@@ -2580,7 +2580,7 @@
+ printf( "JS_NewDouble failed for %f in SFVec3f.\n",d);
+ return JS_FALSE;
+ }
+- *rval = DOUBLE_TO_JSVAL(dp);
++ *rval = DOUBLE_TO_JSVAL(*dp);
+ }
+ #ifdef JSVRMLCLASSESVERBOSE
+ if (retSFVec3f){
+@@ -2792,9 +2792,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -2813,7 +2813,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -2823,7 +2823,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -2833,7 +2833,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -2869,13 +2869,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -2949,7 +2949,7 @@
+ * it get created in javascript? */
+ if (param_isString) {
+ _str = JS_ValueToString(cx, *argv);
+- charString = JS_GetStringBytes(_str);
++ charString = JS_EncodeString(cx, _str);
+
+ if (sscanf(charString, "%lf %lf %lf",
+ &(pars[0]), &(pars[1]), &(pars[2])) != 3) {
+@@ -3071,7 +3071,7 @@
+ printf( "JS_NewDouble failed for %f in SFVec3d.\n",d);
+ return JS_FALSE;
+ }
+- *rval = DOUBLE_TO_JSVAL(dp);
++ *rval = DOUBLE_TO_JSVAL(*dp);
+ }
+ #ifdef JSVRMLCLASSESVERBOSE
+ if (retSFVec3d){
+@@ -3282,9 +3282,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -3303,7 +3303,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -3313,7 +3313,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -3323,7 +3323,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -3359,13 +3359,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -3513,9 +3513,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -3534,7 +3534,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -3544,7 +3544,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -3554,7 +3554,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -3564,7 +3564,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -3600,16 +3600,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -3758,9 +3758,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -3779,7 +3779,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -3789,7 +3789,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -3799,7 +3799,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -3809,7 +3809,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -3845,16 +3845,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+diff -wbBur freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c
+--- freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c 2010-09-22 20:54:59.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c 2011-07-04 01:19:07.000000000 +0400
+@@ -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..0abb74191
--- /dev/null
+++ b/community/frei0r-plugins/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 51938 2011-07-18 09:49:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=frei0r-plugins
+pkgver=1.3
+pkgrel=2
+pkgdesc="frei0r is a minimalistic plugin API for video sources and filters."
+arch=(i686 x86_64 'mips64el')
+url="http://www.piksel.org/frei0r"
+license=('GPL')
+depends=('gcc-libs' 'gavl>=1.0.0' 'opencv')
+makedepends=('graphviz')
+options=('!emptydirs')
+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
+}
+
+package() {
+ cd "$srcdir/frei0r-$pkgver"
+ 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/
+}
diff --git a/community/fswebcam/PKGBUILD b/community/fswebcam/PKGBUILD
new file mode 100644
index 000000000..3f8fa34ba
--- /dev/null
+++ b/community/fswebcam/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 54317 2011-08-16 18:16:02Z 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=20110717
+pkgrel=1
+pkgdesc="Tiny and flexible webcam app."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.firestorm.cx/fswebcam"
+license=('GPL')
+depends=('gd')
+backup=("etc/$pkgname.conf")
+source=("$url/files/$pkgname-$pkgver.tar.gz")
+md5sums=('6e09f1f31cf7cd0ac1d4d688a0acbe41')
+
+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..359d7f3d1
--- /dev/null
+++ b/community/fuseiso/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57911 2011-11-04 11:59:27Z lcarlier $
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=fuseiso
+pkgver=20070708
+pkgrel=4
+pkgdesc="FUSE module to mount ISO filesystem images"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/fuseiso/"
+license=('GPL')
+depends=('fuse' 'glib2' 'zlib')
+makedepends=('pkgconfig')
+source=("http://ubiz.ru/dm/${pkgname}-${pkgver}.tar.bz2"
+ 'fuseiso-20070708-largeiso.patch')
+md5sums=('4bb50412b6d01f337565e28afddca3a5'
+ '5c4dce932aba735727221f4e1695f277')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Fix for isos larger than 4Go https://bugzilla.redhat.com/show_bug.cgi?id=440436
+ patch -p1 -i "${srcdir}/fuseiso-20070708-largeiso.patch"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/fuseiso/fuseiso-20070708-largeiso.patch b/community/fuseiso/fuseiso-20070708-largeiso.patch
new file mode 100644
index 000000000..e323768d2
--- /dev/null
+++ b/community/fuseiso/fuseiso-20070708-largeiso.patch
@@ -0,0 +1,48 @@
+http://bugzilla.redhat.com/show_bug.cgi?id=440436
+
+diff -ur fuseiso-20070708.orig/src/isofs.c fuseiso-20070708/src/isofs.c
+--- fuseiso-20070708.orig/src/isofs.c 2007-07-08 15:22:59.000000000 +0300
++++ fuseiso-20070708/src/isofs.c 2009-10-25 12:02:16.000000000 +0200
+@@ -178,7 +178,7 @@
+ context.data_size = isonum_723(context.pd.logical_block_size);
+
+ if(!context.block_size) {
+- fprintf(stderr, "init: wrong block data size %d, using default 2048\n", context.data_size);
++ fprintf(stderr, "init: wrong block data size %Lu, using default 2048\n", context.data_size);
+ context.data_size = 2048;
+ };
+
+@@ -324,7 +324,7 @@
+
+ if(context.block_size != 2048) {
+ // report unusual data block size
+- printf("Data block size: %d\n", context.block_size);
++ printf("Data block size: %Lu\n", context.block_size);
+ };
+
+ char buf[129];
+@@ -479,7 +479,7 @@
+ };
+ size_t len = read(context.fd, buf, context.data_size);
+ if(len != context.data_size) {
+- fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %d required; errno %d, message %s\n",
++ fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %Lu required; errno %d, message %s\n",
+ len, (int) off, context.data_size, errno, strerror(errno));
+ fprintf(stderr, "isofs_read_raw_block: huh? reading zeros beyond file end? someone want to save a penny?\n");
+ memset(buf + len, 0, context.data_size - len);
+diff -ur fuseiso-20070708.orig/src/isofs.h fuseiso-20070708/src/isofs.h
+--- fuseiso-20070708.orig/src/isofs.h 2006-10-17 04:50:39.000000000 +0300
++++ fuseiso-20070708/src/isofs.h 2009-10-25 12:02:16.000000000 +0200
+@@ -38,9 +38,9 @@
+ struct iso_directory_record *root;
+ int file_offset; // offset to begin of useful data (for .nrg files)
+ int id_offset; // offset to CD001 inside file
+- size_t block_size; // raw block size
+- size_t block_offset; // offset from block start to data
+- size_t data_size; // data size inside block
++ off_t block_size; // raw block size
++ off_t block_offset; // offset from block start to data
++ off_t data_size; // data size inside block
+ int susp; // parse susp entries
+ int susp_skip; // skip bytes from susp SP entry
+ int joliet_level; // joliet extension level (1, 2 or 3)
diff --git a/community/fxdesktop/PKGBUILD b/community/fxdesktop/PKGBUILD
new file mode 100644
index 000000000..e233b6a50
--- /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' 'mips64el')
+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..294f7e494
--- /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' 'mips64el')
+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..ee558d366
--- /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' 'mips64el')
+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..0b8826e10
--- /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' 'mips64el')
+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..259462d17
--- /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' 'mips64el')
+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/galculator/PKGBUILD b/community/galculator/PKGBUILD
new file mode 100644
index 000000000..58a85a7e7
--- /dev/null
+++ b/community/galculator/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=galculator
+pkgver=1.3.4
+pkgrel=1
+pkgdesc="GTK+ based scientific calculator"
+arch=('i686' 'x86_64')
+url="http://galculator.sourceforge.net/"
+license=('GPL')
+depends=('libglade')
+makedepends=('intltool')
+install="$pkgname.install"
+source=("http://downloads.sourceforge.net/galculator/galculator-$pkgver.tar.bz2")
+md5sums=('d30e6fbf5947bb1c873bc9d5a21046f1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/galculator/galculator.install b/community/galculator/galculator.install
new file mode 100644
index 000000000..a852f0449
--- /dev/null
+++ b/community/galculator/galculator.install
@@ -0,0 +1,10 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+post_remove() {
+ post_install
+}
diff --git a/community/gambas2/PKGBUILD b/community/gambas2/PKGBUILD
new file mode 100644
index 000000000..5f2172495
--- /dev/null
+++ b/community/gambas2/PKGBUILD
@@ -0,0 +1,950 @@
+# $Id: PKGBUILD 58354 2011-11-12 10:52:35Z ibiru $
+# 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.23.1
+pkgrel=5
+pkgdesc="A free development environment based on a Basic interpreter."
+arch=('i686' 'x86_64' 'mips64el')
+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-glib' '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
+ 'fix-gbi-gba-path.patch' 'db.firebird.gcc-4.6.0-fix.patch'
+ 'poppler-0.18.patch'
+ 'gambas2-script.install' 'gambas2-runtime.install')
+md5sums=('ff8d2c1f310222c150b114e7ce247dfd'
+ '9dda03a1bbfb7e7ba8b6a4ae91b6752b'
+ 'ac9703b390502ed3242c8d34485c9236'
+ 'a551b4b216bbdb3489f3c264bf73ee66'
+ '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"
+ # merged upstream
+ patch -Np3 -i "${srcdir}/db.firebird.gcc-4.6.0-fix.patch"
+ patch -Np2 -i "${srcdir}/poppler-0.18.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
+}
+
+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
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas2.desktop \
+ ${pkgdir}/usr/share/applications/gambas2.desktop
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas2.png \
+ ${pkgdir}/usr/share/pixmaps/gambas2.png
+}
+
+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-glib')
+ 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/db.firebird.gcc-4.6.0-fix.patch b/community/gambas2/db.firebird.gcc-4.6.0-fix.patch
new file mode 100644
index 000000000..0b6e68df3
--- /dev/null
+++ b/community/gambas2/db.firebird.gcc-4.6.0-fix.patch
@@ -0,0 +1,35 @@
+--- gambas/branches/2.0/gb.db.firebird/src/main.cpp 2011/05/27 15:01:54 3864
++++ gambas/branches/2.0/gb.db.firebird/src/main.cpp 2011/05/27 15:26:41 3865
+@@ -1216,7 +1216,8 @@
+ GB.StoreVariant(&fantom, &buffer[i]);
+ }
+ else{
+- GB.StoreVariant(&res->GetData(pos,i), &buffer[i]);
++ GB_VARIANT val = res->GetData(pos,i);
++ GB.StoreVariant(&val , &buffer[i]);
+ }
+ }
+ }
+@@ -1874,6 +1875,8 @@
+ static char query[SQLMAXLEN];
+ int type;
+ std::string str1,str2;
++ GB_VARIANT varval;
++ char* charval;
+ snprintf(query,SQLMAXLEN-1,"select b.RDB$field_name,a.RDB$field_type,b.rdb$null_flag,b.rdb$default_source,a.RDB$field_length from RDB$fields a,RDB$relation_fields b where a.RDB$field_name=b.RDB$field_source and b.RDB$relation_name=upper('%s') and b.rdb$field_name=upper('%s')",table,field);
+ if (do_query(db, query, &res, "Unable to get the field from the table")){
+ delete res;
+@@ -1900,9 +1903,11 @@
+ str1=res->GetData(0,3).value.value._string;
+ if(str1!="")
+ str2=str1.assign(str1,8,str1.length()-8);
+- GB.FreeString(&res->GetData(0,3).value.value._string);
++ charval = res->GetData(0,3).value.value._string;
++ GB.FreeString(&charval);
+ res->SetData(0,3,str2);
+- GB.StoreVariant(&res->GetData(0,3), &info->def);
++ varval = res->GetData(0,3);
++ GB.StoreVariant(&varval, &info->def);
+ }
+ delete res;
+ return FALSE;
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.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/poppler-0.18.patch b/community/gambas2/poppler-0.18.patch
new file mode 100644
index 000000000..fbcc430bf
--- /dev/null
+++ b/community/gambas2/poppler-0.18.patch
@@ -0,0 +1,40 @@
+--- gambas/trunk/gb.pdf/configure.ac 2010/07/14 01:50:18 3038
++++ gambas/trunk/gb.pdf/configure.ac 2011/08/09 10:43:30 3997
+@@ -22,6 +22,8 @@
+ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_8, $((1-$?)), Poppler version >= 0.8)
+ pkg-config --atleast-version=0.11.3 poppler
+ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_11_3, $((1-$?)), Poppler version >= 0.11.3)
++ pkg-config --atleast-version=0.17.0 poppler
++ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_17, $((1-$?)), Poppler version >= 0.17)
+ fi
+
+ AC_OUTPUT( \
+
+--- gambas/trunk/gb.pdf/src/CPdfDocument.cpp 2011/06/03 00:51:09 3870
++++ gambas/trunk/gb.pdf/src/CPdfDocument.cpp 2011/08/09 10:43:30 3997
+@@ -44,6 +44,7 @@
+ #include <Outline.h>
+ #include <Link.h>
+ #include <Gfx.h>
++#include <glib/poppler-features.h>
+
+ /*****************************************************************************
+
+@@ -956,12 +957,17 @@
+ Bookmarks of a PDF page
+
+ ******************************************************************************/
++
+ void aux_fill_links(void *_object)
+ {
++ #if POPPLER_VERSION_0_17
++ THIS->links = new Links (THIS->page->getAnnots (THIS->doc->getCatalog()));
++ #else
+ Object obj;
+
+ THIS->links = new Links (THIS->page->getAnnots (&obj),THIS->doc->getCatalog()->getBaseURI ());
+ obj.free();
++ #endif
+ }
+
+ BEGIN_PROPERTY (PDFPAGELINKS_count)
diff --git a/community/gambas3/PKGBUILD b/community/gambas3/PKGBUILD
new file mode 100644
index 000000000..32d39f84b
--- /dev/null
+++ b/community/gambas3/PKGBUILD
@@ -0,0 +1,1097 @@
+# $Id: PKGBUILD 58437 2011-11-12 17:24:37Z ibiru $
+# 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-glu' '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.6
+pkgrel=4
+pkgdesc="A free development environment based on a Basic interpreter."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gambas.sourceforge.net/"
+license=('GPL')
+groups=('gambas3')
+makedepends=('intltool' 'mysql' 'postgresql' 'libffi' 'bzip2' 'glib2' 'v4l-utils'
+ 'zlib' 'mesa' 'libgl' 'glew' 'xdg-utils' 'gtk2' 'imlib2' 'gdk-pixbuf2'
+ 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite3' 'librsvg'
+ 'curl' 'poppler-glib' 'sdl_mixer' 'sdl_ttf' 'libxtst' 'pcre'
+ 'libxcursor' 'libsm' 'dbus-core' 'libxml2' 'libxslt' 'libgnome-keyring')
+options=('!emptydirs' '!makeflags')
+source=("http://downloads.sourceforge.net/gambas/${pkgbase}-${pkgver}.tar.bz2"
+ 'gambas3-script.install' 'gambas3-runtime.install')
+md5sums=('746aaae5494c4b267bdae802c5c006d5'
+ 'b284be39d147ec799f1116a6abc068b4'
+ 'b5cc403990f31b8ea1c5cf37366d3d29')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ ./reconf-all
+ ./configure --prefix=/usr -C
+
+ make bindir=${pkgdir}/usr/bin
+}
+
+package_gambas3-runtime() {
+ depends=('libffi' 'xdg-utils')
+ pkgdesc="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-gambas3.png \
+ ${pkgdir}/usr/share/gambas3/icons/application-x-gambas3.png
+
+ cd gbc
+ make DESTDIR="${pkgdir}" uninstall
+}
+
+package_gambas3-devel() {
+ depends=('gambas3-runtime')
+ pkgdesc="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="Integrated Development Environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+#!! with the ide !!
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas3.desktop \
+ ${pkgdir}/usr/share/applications/gambas3.desktop
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/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="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="Applications 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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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}/gb.gtk
+ 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
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ 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="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}/gb.gtk
+ 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
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ 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="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}/gb.gtk
+ 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
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ 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="Default stock icons 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
+ ##
+
+ 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.gtk
+ 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="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="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="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="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="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="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="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="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="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="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}/gb.opengl/src/glu
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl-glu() {
+ depends=('gambas3-gb-opengl')
+ pkgdesc="GL Utility component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glu
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl-glsl() {
+ depends=('gambas3-gb-opengl')
+ pkgdesc="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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..6c8201a6a
--- /dev/null
+++ b/community/gambas3/gambas3-runtime.install
@@ -0,0 +1,10 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambas.png application-x-gambas3
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambas3.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas3
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambas3.xml
+}
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/gammu/PKGBUILD b/community/gammu/PKGBUILD
new file mode 100644
index 000000000..4ce5a1dfe
--- /dev/null
+++ b/community/gammu/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 52053 2011-07-19 20:30:49Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=gammu
+pkgver=1.30.0
+pkgrel=1
+pkgdesc="GNU All Mobile Management Utilities"
+arch=('i686' 'x86_64' 'mips64el')
+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=('5bb061f1299e7ae8d38ecac1b8b11465')
+
+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..a66ae1b50
--- /dev/null
+++ b/community/gammu/gammu.changelog
@@ -0,0 +1,72 @@
+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
+ only important changes will be logged
+
+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-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-02-15 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Release bump: 2
+
+ * PKGBUILD: substituted bluez-libs dependency with bluez
+
+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-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-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..0ef61bd32
--- /dev/null
+++ b/community/garmindev/51-garmin.rules
@@ -0,0 +1 @@
+ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", GROUP="uucp", MODE="660"
diff --git a/community/garmindev/PKGBUILD b/community/garmindev/PKGBUILD
new file mode 100644
index 000000000..5934b338e
--- /dev/null
+++ b/community/garmindev/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58914 2011-11-20 11:01:56Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Matthias Maennich <arch@maennich.net>
+
+pkgname=garmindev
+pkgver=0.3.4
+pkgrel=5
+pkgdesc="Garmin Device Drivers for QlandkarteGT"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ '0196ae234c0daf97afb9f4af6fdc04c2af77bb742233731870ba8cfc6ae5a7d7')
+
+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..ef19de70d
--- /dev/null
+++ b/community/garmindev/garmindev.changelog
@@ -0,0 +1,8 @@
+2011-11-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * garmindev 0.3.4-5
+ * udev rule updated for Linux 3.1.1
+
+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..f578cbe3e
--- /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' 'mips64el')
+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..045c1f17f
--- /dev/null
+++ b/community/gcc-avr/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 57845 2011-11-03 12:26:59Z jelle $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: danst0 <danst0@west.de>
+
+pkgname=gcc-avr
+pkgver=4.6.2
+pkgrel=1
+pkgdesc="The GNU avr Compiler Collection"
+arch=('i686' 'x86_64' 'mips64el')
+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=('0c0e7e35d2215e19de9c97efba507553'
+ '0d75ca7ca35b1e7f252223f9d23a6ad1')
+
+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
+}
+
+md5sums=('780f614ab18c7a9066dec6387d7490b2'
+ '87ecd60431e41096419dd8a10f76e46b')
diff --git a/community/gcolor2/PKGBUILD b/community/gcolor2/PKGBUILD
new file mode 100644
index 000000000..29c03c09a
--- /dev/null
+++ b/community/gcolor2/PKGBUILD
@@ -0,0 +1,40 @@
+# Contributor: pressh <pressh funnysymbol gmail dot com>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: shaun lastra <badicalia@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gcolor2
+pkgver=0.4
+pkgrel=6
+pkgdesc="A simple GTK+2 color selector"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+ [ "$CARCH" == "mips64el" ] && (patch -p1 < ../gcolor2-0.4-amd64.patch)
+
+ # fix fs#25904
+ sed -i 's/\[:space:\]/[&]/g' configure
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # 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..3c93e3764
--- /dev/null
+++ b/community/gcompris/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57322 2011-10-25 20:25:24Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Daniel Isenmann <daniel.isenmann [at] gmx.de>
+
+pkgname=gcompris
+pkgver=11.09
+pkgrel=1
+pkgdesc="Educational software suite comprising of numerous activities for children aged 2 to 10"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gcompris.net/"
+license=('GPL3')
+depends=('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')
+makedepends=('texinfo' 'texi2html' 'intltool' 'gettext' 'gnuchess')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+sha1sums=('aaa3b9abc2626593f7db6ddbab7e66849419e025')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ depends+=('gcompris-data')
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install-exec
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gdal/PKGBUILD b/community/gdal/PKGBUILD
new file mode 100644
index 000000000..ca383e756
--- /dev/null
+++ b/community/gdal/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 51471 2011-07-09 22:30:40Z rvanharen $
+# 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=6
+pkgdesc="A translator library for raster geospatial data formats"
+arch=('i686' 'x86_64' 'mips64el')
+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: perl binding support'
+ '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"
+
+ # bug 23654
+ export LDFLAGS="$LDFLAGS -Wl,--as-needed"
+
+ 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..c9a34153a
--- /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' 'mips64el')
+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..c96091612
--- /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' 'mips64el')
+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..297355163
--- /dev/null
+++ b/community/geany-plugins/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 57822 2011-11-03 10:07:17Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: djgera
+# Contributor: Patrick Melo <patrick@patrickmelo.eti.br>
+pkgname=geany-plugins
+pkgver=0.21
+pkgrel=2
+pkgdesc="Combined plugins release for Geany"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://plugins.geany.org/"
+license=('GPL')
+depends=('geany' 'lua' 'gtkspell' 'libwebkit' 'hicolor-icon-theme' 'ctpl' 'gpgme')
+makedepends=('intltool')
+optdepends=('hspell: hebrew spell checker')
+conflicts=('geany-plugins-svn')
+install=geany-plugins.install
+source=("http://plugins.geany.org/geany-plugins/$pkgname-$pkgver.tar.bz2")
+md5sums=('22e106d7a026e720dd91feb79e44456f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ rmdir \
+ "$pkgdir/usr/share/geany-plugins/devhelp" \
+ "$pkgdir/usr/share/doc/geany-plugins/devhelp" \
+ "$pkgdir/usr/share/geany-plugins/debugger" \
+ "$pkgdir/usr/share/doc/geany-plugins/debugger"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/geany-plugins/geany-plugins.install b/community/geany-plugins/geany-plugins.install
new file mode 100644
index 000000000..c5a602e43
--- /dev/null
+++ b/community/geany-plugins/geany-plugins.install
@@ -0,0 +1,15 @@
+pkgname=geany-plugins
+
+post_upgrade() {
+ gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/geany/PKGBUILD b/community/geany/PKGBUILD
new file mode 100644
index 000000000..509b0be3a
--- /dev/null
+++ b/community/geany/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 57809 2011-11-03 09:42:30Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: 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.21
+pkgrel=2
+pkgdesc="Fast and lightweight IDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.geany.org/"
+license=('GPL')
+depends=('gtk2' 'hicolor-icon-theme' 'desktop-file-utils' 'python2')
+makedepends=('perlxml' 'intltool')
+optdepends=("vte: for terminal support")
+install=geany.install
+source=("http://download.geany.org/$pkgname-$pkgver.tar.gz")
+options=('!libtool')
+md5sums=('d2734776badc3f5f9a778814ed56fb8a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ msg2 "Configuring..."
+ ./configure --prefix=/usr
+ msg2 "Compiling..."
+ make
+ msg2 "Python2 fix..."
+ sed -i '0,/on/s//on2/' data/templates/files/main.py
+ msg2 "Fixing FS#10318..."
+ sed -i 's|MimeType=text/plain;|MimeType=|' geany.desktop
+ msg2 "Enabling colors for PKGBUILD files..."
+ sed -i 's|Sh=|Sh=PKGBUILD;|' data/filetype_extensions.conf
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/geany/geany.install b/community/geany/geany.install
new file mode 100644
index 000000000..4cd573a65
--- /dev/null
+++ b/community/geany/geany.install
@@ -0,0 +1,16 @@
+pkgname=geany
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gebabbel/PKGBUILD b/community/gebabbel/PKGBUILD
new file mode 100644
index 000000000..4fdf952ca
--- /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' 'mips64el')
+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..7e632f8bb
--- /dev/null
+++ b/community/gecko-mediaplayer/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 59322 2011-11-23 15:17:06Z lfleischer $
+# 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.4
+pkgrel=2
+pkgdesc='Browser plugin that uses gnome-mplayer to play media in a web browser.'
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ 'firefox-8.patch')
+md5sums=('7bb7665f8a1e6832907d052863e8f7aa'
+ 'e58a8fc33c1cf7a2453e1f6612acf028')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../firefox-8.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc --without-gconf --enable-new-libxul
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gecko-mediaplayer/firefox-8.patch b/community/gecko-mediaplayer/firefox-8.patch
new file mode 100644
index 000000000..d4db7afd3
--- /dev/null
+++ b/community/gecko-mediaplayer/firefox-8.patch
@@ -0,0 +1,48 @@
+diff -Naur gecko-mediaplayer-1.0.5b1-old/src/np_entry.cpp gecko-mediaplayer-1.0.5b1-new/src/np_entry.cpp
+--- gecko-mediaplayer-1.0.5b1-old/src/np_entry.cpp 2011-09-20 20:48:04.000000000 +0300
++++ gecko-mediaplayer-1.0.5b1-new/src/np_entry.cpp 2011-11-22 15:57:46.751354874 +0200
+@@ -80,9 +80,9 @@
+
+ #endif /* XP_WIN */
+
+-char *NPP_GetMIMEDescription();
++const char *NPP_GetMIMEDescription();
+
+-char *NP_GetMIMEDescription()
++const char *NP_GetMIMEDescription()
+ {
+ return NPP_GetMIMEDescription();
+ }
+diff -Naur gecko-mediaplayer-1.0.5b1-old/src/npp_gate.cpp gecko-mediaplayer-1.0.5b1-new/src/npp_gate.cpp
+--- gecko-mediaplayer-1.0.5b1-old/src/npp_gate.cpp 2011-09-20 20:48:04.000000000 +0300
++++ gecko-mediaplayer-1.0.5b1-new/src/npp_gate.cpp 2011-11-22 15:58:02.473353591 +0200
+@@ -44,7 +44,7 @@
+ #include "plugin_types.h"
+ #include "plugin_setup.h"
+
+-char *NPP_GetMIMEDescription(void)
++const char *NPP_GetMIMEDescription(void)
+ {
+ return GetMIMEDescription();
+ }
+diff -Naur gecko-mediaplayer-1.0.5b1-old/src/npupp.h gecko-mediaplayer-1.0.5b1-new/src/npupp.h
+--- gecko-mediaplayer-1.0.5b1-old/src/npupp.h 2011-09-20 20:48:04.000000000 +0300
++++ gecko-mediaplayer-1.0.5b1-new/src/npupp.h 2011-11-22 15:56:32.262360950 +0200
+@@ -684,7 +684,7 @@
+
+ NPError OSCALL NP_Shutdown();
+
+- char *NP_GetMIMEDescription();
++ const char *NP_GetMIMEDescription();
+
+ #ifdef __cplusplus
+ }
+@@ -700,7 +700,7 @@
+
+ /* plugin meta member functions */
+
+- NP_EXPORT(char *) NP_GetMIMEDescription(void);
++ NP_EXPORT(const char *) NP_GetMIMEDescription(void);
+ NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs *, NPPluginFuncs *);
+ NP_EXPORT(NPError) NP_Shutdown(void);
+ NP_EXPORT(NPError) NP_GetValue(void *future, NPPVariable aVariable, void *aValue);
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..052da1b58
--- /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' 'mips64el')
+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..507bd09b0
--- /dev/null
+++ b/community/gedit-plugins/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57063 2011-10-20 05:50:26Z 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=3.2.1
+pkgrel=1
+pkgdesc="Set of plugins for gedit"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://live.gnome.org/GeditPlugins"
+depends=('gedit' 'dbus-python')
+optdepends=('gucharmap: for charmap plugin')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+install=gedit-plugins.install
+source=(ftp://ftp.gnome.org/pub/gnome/sources/gedit-plugins/3.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('45dee01a196a7d5e87027187e76d57643b146ea1c313cad2686ebd369890f841')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --with-plugins=all \
+ --disable-schemas-compile
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gedit-plugins/gedit-plugins.install b/community/gedit-plugins/gedit-plugins.install
new file mode 100644
index 000000000..d5bcc00ae
--- /dev/null
+++ b/community/gedit-plugins/gedit-plugins.install
@@ -0,0 +1,23 @@
+pkgname=gedit-plugins
+
+post_install() {
+ usr/bin/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
+}
+
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gen2shp/PKGBUILD b/community/gen2shp/PKGBUILD
new file mode 100644
index 000000000..9b6efc712
--- /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' 'mips64el')
+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..876062876
--- /dev/null
+++ b/community/geos/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 50911 2011-07-02 23:00:14Z stephane $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=geos
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="A C++ port of the Java Topology Suite"
+arch=('i686' 'x86_64' 'mips64el')
+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=('3301f3d1d747b95749384b8a356b022a')
+
+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..b1e36f236
--- /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' 'mips64el')
+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..78d49c218
--- /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' 'mips64el')
+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..320a3aa7d
--- /dev/null
+++ b/community/ghemical/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Xyne <ac xunilhcra enyx, backwards>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=ghemical
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Computational chemistry package."
+license=("GPL")
+arch=(i686 x86_64 'mips64el')
+url="http://bioinformatics.org/ghemical/ghemical/"
+depends=('libghemical>=3.0' 'liboglappth>=1.0' 'mesa' 'libglade' 'libxmu' 'ttf-dejavu' 'gtkglext' 'openbabel')
+makedepends=('pkgconfig' 'intltool>=0.40.0' 'gettext')
+source=(http://bioinformatics.org/ghemical/download/release20111012/${pkgname}-${pkgver}.tar.gz ghemical.desktop)
+md5sums=('becf98626f0eba73f7f042bc92aa60ac'
+ '7e8789d42d1318a427a30f3bf64cb5a6')
+
+build() {
+ cd -- "$srcdir/$pkgname-$pkgver/"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ install -D -m644 "$srcdir"/ghemical.desktop "$pkgdir"/usr/share/applications/ghemical.desktop
+ cd -- "$srcdir/$pkgname-$pkgver/"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ghemical/ghemical.desktop b/community/ghemical/ghemical.desktop
new file mode 100644
index 000000000..eff450186
--- /dev/null
+++ b/community/ghemical/ghemical.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Type=Application
+Version=3.0.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/3.0.0/pixmaps/ghemical.png
+Exec=/usr/bin/ghemical
+Terminal=false
+Categories=Science;Chemistry;Education;
+StartupNotify=true
diff --git a/community/gigedit/PKGBUILD b/community/gigedit/PKGBUILD
new file mode 100644
index 000000000..dbe6c5f79
--- /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 'mips64el')
+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..c74572d99
--- /dev/null
+++ b/community/giggle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 57210 2011-10-24 13:47:08Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: neodreams <yanbrodeur@gmail.com>
+
+pkgname=giggle
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="Git repository viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/giggle"
+license=('GPL')
+depends=('git' 'gtksourceview3' 'vte3')
+makedepends=('intltool' 'itstool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/giggle/0.6/${pkgname}-${pkgver}.tar.xz)
+options=(!libtool)
+install=giggle.install
+sha256sums=('6c0b5c2b417217509bf88096447afa4af70fd33e8a6db5caa0aa86b44c01a5b8')
+
+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..8d7e22b30
--- /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' 'mips64el')
+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/gimp-plugin-fblur/PKGBUILD b/community/gimp-plugin-fblur/PKGBUILD
new file mode 100644
index 000000000..7ce30dac6
--- /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' 'mips64el')
+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..f63da3e06
--- /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' 'mips64el')
+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..aa74b4ce6
--- /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' 'mips64el')
+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..1d8355c3b
--- /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' 'mips64el')
+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..ed22f4c46
--- /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' 'mips64el')
+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..a35c6bf2b
--- /dev/null
+++ b/community/ginac/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=ginac
+pkgver=1.6.2
+pkgrel=1
+pkgdesc='A library designed to allow the creation of integrated systems that embed symbolic manipulations.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.ginac.de'
+license=('GPL')
+depends=('cln')
+makedepends=('transfig' 'doxygen' 'texlive-bin')
+options=('!libtool')
+source=("ftp://ftpthep.physik.uni-mainz.de/pub/GiNaC/ginac-${pkgver}.tar.bz2")
+md5sums=('4cfdd286ab0c32981ec1c9c779e87eb9')
+
+build() {
+ cd ginac-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+check() {
+ cd ginac-${pkgver}
+
+ make check
+}
+
+package() {
+ cd ginac-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gitg/PKGBUILD b/community/gitg/PKGBUILD
new file mode 100644
index 000000000..53f0c8ac6
--- /dev/null
+++ b/community/gitg/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57270 2011-10-25 06:09:22Z ebelanger $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Blaž Tomžič <blaz.tomazic@gmail.com>
+# 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.2.5
+pkgrel=1
+pkgdesc='A GIT repository viewer based on GTK+'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://trac.novowork.com/gitg/'
+license=('GPL')
+depends=('dconf' 'gtksourceview3' 'git' 'desktop-file-utils' 'gsettings-desktop-schemas' \
+ 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install="${pkgname}.install"
+source=("ftp://ftp.gnome.org/pub/GNOME/sources/gitg/0.2/${pkgname}-${pkgver}.tar.xz")
+sha256sums=('d3dfff65834d8371d43b2e91926af1421f8ec2128580dfeceb6925b6b1ce6d8c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gitg/gitg.install b/community/gitg/gitg.install
new file mode 100644
index 000000000..7b356a632
--- /dev/null
+++ b/community/gitg/gitg.install
@@ -0,0 +1,19 @@
+# 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
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+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/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..1b7db8aaf
--- /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' 'mips64el')
+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..5bd83db8d
--- /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' 'mips64el')
+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/glfw/PKGBUILD b/community/glfw/PKGBUILD
new file mode 100644
index 000000000..889f2cb87
--- /dev/null
+++ b/community/glfw/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: philefou <tuxication AT gmail DOT com>
+# Contributor: lindquist <tomas@famolsen.dk>
+# Contributor: Christoph Siegenthaler <csi@gmx.ch>
+# Contributor: Mihai Militaru <mihai.militaru@ephemeros.org>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=glfw
+pkgver=2.7.2
+pkgrel=2
+pkgdesc="A free, open source, portable framework for OpenGL application development"
+arch=('i686' 'x86_64')
+url="http://www.glfw.org/"
+license=('custom:ZLIB')
+depends=('libgl' 'libxrandr')
+makedepends=('mesa')
+source=("http://switch.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('bb4f33b43e40f8cd3015a653dca02ed1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make x11
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make PREFIX="$pkgdir/usr" x11-dist-install
+
+ # license
+ install -Dm644 COPYING.txt \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+
+ # docs
+ install -d "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm644 docs/*.pdf "$pkgdir/usr/share/doc/$pkgname"
+
+ # fix pc file prefix path
+ sed -i "s|$pkgdir||g" "$pkgdir/usr/lib/pkgconfig/lib$pkgname.pc"
+}
diff --git a/community/glitz/PKGBUILD b/community/glitz/PKGBUILD
new file mode 100644
index 000000000..c35025815
--- /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' 'mips64el')
+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..267699f89
--- /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' 'mips64el')
+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..7e64bd13d
--- /dev/null
+++ b/community/glob2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 59934 2011-12-02 20:58:35Z ibiru $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=glob2
+pkgver=0.9.4.4
+pkgrel=10
+pkgdesc="RTS game which minimizes micro-management by automatically assigning tasks to units"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.globulation2.org/"
+license=('GPL3')
+depends=('boost-libs' 'sdl_net' 'sdl_image' 'sdl_ttf' 'libvorbis' 'speex' 'mesa'
+ 'fribidi' 'desktop-file-utils')
+makedepends=('scons' 'boost')
+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..b30e99470
--- /dev/null
+++ b/community/glom/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 59936 2011-12-02 20:58:42Z ibiru $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=glom
+pkgver=1.20.1
+pkgrel=1
+pkgdesc="An easy-to-use database designer and user interface"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.glom.org/"
+license=('GPL')
+depends=('gettext' 'boost-libs' 'libgdamm' 'libxml++' 'python2-gobject' 'libepc' 'goocanvasmm' 'gtksourceviewmm' 'evince' 'postgresql')
+makedepends=('intltool' 'gnome-doc-utils' 'python-sphinx' 'boost')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/glom/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('c76edc09d767eb2de8673fa8bb1cebbf8863fb3c8eb365e4a42fc430730f68d5')
+
+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..c20c168d2
--- /dev/null
+++ b/community/gloox/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 54449 2011-08-18 15:06:35Z bluewind $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=gloox
+pkgver=1.0
+pkgrel=2
+pkgdesc="C++ libraries for development of Jabber client/component/server"
+arch=(i686 x86_64 'mips64el')
+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
+ 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..d1fe5160f
--- /dev/null
+++ b/community/glpng/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 55485 2011-09-13 02:26:22Z ebelanger $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=glpng
+pkgver=1.45
+pkgrel=4
+pkgdesc="Toolkit for loading PNG images as OpenGL textures"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fifi.org/doc/libglpng-dev/glpng.html"
+license=('custom')
+depends=('libpng' 'libgl')
+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"
+ cp "$srcdir/Makefile" .
+ make libglpng.so.1.45
+}
+
+package() {
+ cd "$srcdir/libglpng-1.45.orig"
+ make 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/gluon/PKGBUILD b/community/gluon/PKGBUILD
new file mode 100644
index 000000000..0ffa19b42
--- /dev/null
+++ b/community/gluon/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Ivan Sichmann Freitas <ivansichfreitas@gmail.com>
+
+pkgname=gluon
+pkgver=0.71.0
+_pkgver=0.71
+pkgrel=2
+pkgdesc="A free and open source platform for creating and distributing games"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gluon.gamingfreedom.org/"
+license=('LGPL')
+depends=('qt' 'kdebase-runtime' 'libsndfile' 'openal' 'alure' 'attica')
+makedepends=('cmake' 'automoc4' 'mesa' 'kdevplatform')
+install=gluon.install
+source=("http://download.kde.org/download.php?url=unstable/$pkgname/$_pkgver/src/$pkgname-$pkgver.tar.gz")
+md5sums=('e4f284c0ae00e5b8a58cc3e6201857fe')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ [[ -d build ]] && rm -rf build
+ mkdir build && cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cd build
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/gluon/gluon.install b/community/gluon/gluon.install
new file mode 100644
index 000000000..bf97c58a3
--- /dev/null
+++ b/community/gluon/gluon.install
@@ -0,0 +1,15 @@
+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/community/gmerlin-avdecoder/PKGBUILD b/community/gmerlin-avdecoder/PKGBUILD
new file mode 100644
index 000000000..ab098bb45
--- /dev/null
+++ b/community/gmerlin-avdecoder/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55358 2011-09-10 10:55:52Z pschmitz $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=gmerlin-avdecoder
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Media decoding library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gmerlin/PKGBUILD b/community/gmerlin/PKGBUILD
new file mode 100644
index 000000000..f0a9c65c5
--- /dev/null
+++ b/community/gmerlin/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58153 2011-11-07 10:55:45Z spupykin $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=gmerlin
+pkgver=1.0.0
+pkgrel=4
+pkgdesc="Multimedia architecture for Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://openmovieeditor.sourceforge.net/HomePage"
+license=('GPL')
+depends=('gavl' 'libxml2' 'gtk2' 'libxv' 'mesa' 'libvisual' 'libcdio>=0.82' 'musicbrainz' 'mjpegtools')
+makedepends=('alsa-lib' 'jack' 'libquicktime' 'pulseaudio' 'v4l-utils')
+optdepends=('alsa-lib: for ALSA support'
+ 'jack: for JACK support'
+ 'libquicktime: for movie encoding'
+ 'pulseaudio: for PulseAudio support'
+ 'v4l-utils: for video conversion')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
+ libpng.patch)
+md5sums=('60d3c5081c8685ee7bc1afdfac8f6dc6'
+ 'c262023434246705296d97bc7337a212')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ rm -rf cpuinfo.sh
+
+ patch -p1 <$srcdir/libpng.patch
+ ./configure --prefix=/usr --without-doxygen
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir/usr/share/info/dir"
+}
diff --git a/community/gmerlin/libpng.patch b/community/gmerlin/libpng.patch
new file mode 100644
index 000000000..c01105e63
--- /dev/null
+++ b/community/gmerlin/libpng.patch
@@ -0,0 +1,17 @@
+diff -wbBur gmerlin-1.0.0/plugins/png/ir_png.c gmerlin-1.0.0.my/plugins/png/ir_png.c
+--- gmerlin-1.0.0/plugins/png/ir_png.c 2011-01-07 18:37:06.000000000 +0300
++++ gmerlin-1.0.0.my/plugins/png/ir_png.c 2011-11-07 14:46:25.000000000 +0400
+@@ -127,13 +127,8 @@
+ bits = 16;
+ }
+ if(bit_depth < 8)
+-#if BG_MAKE_BUILD(PNG_LIBPNG_VER_MAJOR, PNG_LIBPNG_VER_MINOR, PNG_LIBPNG_VER_RELEASE) < BG_MAKE_BUILD(1,2,9)
+- png_set_gray_1_2_4_to_8(png->png_ptr);
+-#else
+ png_set_expand_gray_1_2_4_to_8(png->png_ptr);
+-#endif
+
+- png_set_gray_1_2_4_to_8(png->png_ptr);
+ if (png_get_valid(png->png_ptr, png->info_ptr, PNG_INFO_tRNS))
+ {
+ png_set_tRNS_to_alpha(png->png_ptr);
diff --git a/community/gmic/PKGBUILD b/community/gmic/PKGBUILD
new file mode 100644
index 000000000..a6ffd4d18
--- /dev/null
+++ b/community/gmic/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 59673 2011-11-29 10:05:44Z 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.5.0.7
+pkgrel=1
+pkgdesc="image procession framework"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:CeCILL')
+url="http://gmic.sourceforge.net"
+makedepends=('gimp' 'fftw' 'lapack' 'opencv' 'graphicsmagick' 'openexr' 'imagemagick')
+options=('docs' '!emptydirs')
+source=("http://downloads.sourceforge.net/sourceforge/gmic/gmic_$pkgver.tar.gz"
+ opencv-buildfix.patch)
+md5sums=('66ef32dab2b424c25ac7ced06fc69bbf'
+ 'f135182ced743c296e08ddd560fa6be9')
+
+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
+ patch -p1 <$srcdir/opencv-buildfix.patch
+ 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/gmic/opencv-buildfix.patch b/community/gmic/opencv-buildfix.patch
new file mode 100644
index 000000000..7fda2ea54
--- /dev/null
+++ b/community/gmic/opencv-buildfix.patch
@@ -0,0 +1,15 @@
+diff -wbBur gmic-1.5.0.3.org/src/CImg.h gmic-1.5.0.3/src/CImg.h
+--- gmic-1.5.0.3.org/src/CImg.h 2011-09-22 18:37:54.000000000 +0400
++++ gmic-1.5.0.3/src/CImg.h 2011-10-05 18:03:25.000000000 +0400
+@@ -234,7 +234,11 @@
+ // Using OpenCV is not mandatory.
+ #ifdef cimg_use_opencv
+ #include <cstddef>
++#undef True
++#undef False
+ #include "cv.h"
++#define True 1
++#define False 0
+ #include "highgui.h"
+ #endif
+
diff --git a/community/gmime22/PKGBUILD b/community/gmime22/PKGBUILD
new file mode 100644
index 000000000..29233ed33
--- /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 'mips64el')
+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..eb04be66c
--- /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' 'mips64el')
+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..cf68b044b
--- /dev/null
+++ b/community/gnash/PKGBUILD
@@ -0,0 +1,83 @@
+# $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=7
+arch=(i686 x86_64 mips64el)
+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
+ gentoo-ffmpeg-0.8.patch xul8.patch)
+md5sums=('5b2be6b04a1bcc5fb404cc377034499e'
+ '98dec9a5c1b1084245a3f46b4022a6e2'
+ '9b77325d0b8b9d4150c4097771482d26')
+
+build() {
+ cd "$srcdir/gnash-$pkgver"
+
+ # Consolidated gentoo patches for ffmpeg compatibility
+ # as of 2011-10-31
+ patch -Np1 -i "$srcdir/gentoo-ffmpeg-0.8.patch"
+
+ # Patch for compatibility with newer xulrunner headers
+ patch -Np1 -i "$srcdir/xul8.patch"
+
+ ./autogen.sh
+ ./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/gentoo-ffmpeg-0.8.patch b/community/gnash/gentoo-ffmpeg-0.8.patch
new file mode 100644
index 000000000..d74bcc8e0
--- /dev/null
+++ b/community/gnash/gentoo-ffmpeg-0.8.patch
@@ -0,0 +1,204 @@
+diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
+--- gnash-0.8.9/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp 2011-02-26 19:11:08.000000000 +0100
++++ gnash-0.8.9-ff/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp 2011-10-31 17:25:56.057379760 +0100
+@@ -29,7 +29,7 @@
+
+ //#define GNASH_DEBUG_AUDIO_DECODING
+
+-#define AVCODEC_DECODE_AUDIO avcodec_decode_audio2
++#define AVCODEC_DECODE_AUDIO avcodec_decode_audio3
+
+ namespace gnash {
+ namespace media {
+@@ -549,8 +549,12 @@
+ #endif
+
+ // older ffmpeg versions didn't accept a const input..
++ AVPacket pkt;
++ av_init_packet(&pkt);
++ pkt.data = (uint8_t*) input;
++ pkt.size = inputSize;
+ int tmp = AVCODEC_DECODE_AUDIO(_audioCodecCtx, outPtr, &outSize,
+- input, inputSize);
++ &pkt);
+
+ #ifdef GNASH_DEBUG_AUDIO_DECODING
+ log_debug(" avcodec_decode_audio[2](ctx, bufptr, %d, input, %d) "
+@@ -658,13 +662,13 @@
+ {
+ if ( _needsParsing )
+ {
+- return av_parser_parse(_parser, _audioCodecCtx,
++ return av_parser_parse2(_parser, _audioCodecCtx,
+ // as of 2008-10-28 SVN, ffmpeg doesn't
+ // accept a pointer to pointer to const..
+ const_cast<boost::uint8_t**>(outFrame),
+ outFrameSize,
+ input, inputSize,
+- 0, 0); // pts & dts
++ 0, 0, AV_NOPTS_VALUE); // pts & dts
+ }
+ else
+ {
+diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp
+--- gnash-0.8.9/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp 2011-02-26 19:11:08.000000000 +0100
++++ gnash-0.8.9-ff/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp 2011-10-31 17:25:51.210668136 +0100
+@@ -46,8 +46,10 @@
+ {
+ if ( (ctx->sample_rate != 44100) || (ctx->channels != 2) ) {
+ if ( ! _context ) {
+- _context = audio_resample_init(
+- 2, ctx->channels, 44100, ctx->sample_rate
++ _context = av_audio_resample_init(
++ 2, ctx->channels, 44100, ctx->sample_rate,
++ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16,
++ 16, 10, 0, 0.8
+ );
+ }
+
+diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/MediaParserFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/MediaParserFfmpeg.cpp
+--- gnash-0.8.9/libmedia/ffmpeg/MediaParserFfmpeg.cpp 2011-03-13 17:47:36.000000000 +0100
++++ gnash-0.8.9-ff/libmedia/ffmpeg/MediaParserFfmpeg.cpp 2011-10-31 17:25:57.720728522 +0100
+@@ -387,7 +387,7 @@
+
+ log_debug("Parsing FFMPEG media file: format:%s; nstreams:%d",
+ _inputFmt->name, _formatCtx->nb_streams);
+-
++ /*
+ if ( _formatCtx->title[0] )
+ log_debug(_(" Title:'%s'"), _formatCtx->title);
+ if ( _formatCtx->author[0] )
+@@ -398,7 +398,7 @@
+ log_debug(_(" Comment:'%s'"), _formatCtx->comment);
+ if ( _formatCtx->album[0] )
+ log_debug(_(" Album:'%s'"), _formatCtx->album);
+-
++ */
+ // Find first audio and video stream
+ for (unsigned int i = 0; i < static_cast<unsigned int>(_formatCtx->nb_streams); i++)
+ {
+@@ -415,7 +415,7 @@
+ }
+
+ switch (enc->codec_type) {
+- case CODEC_TYPE_AUDIO:
++ case AVMEDIA_TYPE_AUDIO:
+ if (_audioStreamIndex < 0) {
+ _audioStreamIndex = i;
+ _audioStream = _formatCtx->streams[i];
+@@ -425,7 +425,7 @@
+ }
+ break;
+
+- case CODEC_TYPE_VIDEO:
++ case AVMEDIA_TYPE_VIDEO:
+ if (_videoStreamIndex < 0) {
+ _videoStreamIndex = i;
+ _videoStream = _formatCtx->streams[i];
+diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
+--- gnash-0.8.9/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp 2011-03-13 17:47:36.000000000 +0100
++++ gnash-0.8.9-ff/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp 2011-10-31 17:25:54.590699488 +0100
+@@ -356,8 +356,12 @@
+
+ int bytes = 0;
+ // no idea why avcodec_decode_video wants a non-const input...
+- avcodec_decode_video(_videoCodecCtx->getContext(), frame, &bytes,
+- input, input_size);
++ AVPacket pkt;
++ av_init_packet(&pkt);
++ pkt.data = (uint8_t*) input;
++ pkt.size = input_size;
++ avcodec_decode_video2(_videoCodecCtx->getContext(), frame, &bytes,
++ &pkt);
+
+ if (!bytes) {
+ log_error("Decoding of a video frame failed");
+diff -u -Nr gnash-0.8.9/macros/ffmpeg.m4 gnash-0.8.9-ff/macros/ffmpeg.m4
+--- gnash-0.8.9/macros/ffmpeg.m4 2011-02-26 19:11:08.000000000 +0100
++++ gnash-0.8.9-ff/macros/ffmpeg.m4 2011-10-31 17:25:49.700654130 +0100
+@@ -22,6 +22,7 @@
+ backupLIBS="$LIBS"
+ backupCFLAGS="$CFLAGS"
+ avcodec_h=""
++ avcodec_version_h=""
+ ffmpeg_top_incl=""
+
+ dnl If the user specify an path to include headers from, we assume it's the full
+@@ -46,6 +47,9 @@
+ else
+ AC_MSG_ERROR([${with_ffmpeg_incl} directory does not contain the avcodec.h header])
+ fi
++ if test -f ${with_ffmpeg_incl}/version.h; then
++ avcodec_version_h=${with_ffmpeg_incl}/version.h
++ fi
+ fi
+ ])
+
+@@ -66,6 +70,9 @@
+ if test -f ${ffmpeg_top_incl}/${i}/avcodec.h; then
+ ac_cv_path_ffmpeg_incl="-I`(cd ${ffmpeg_top_incl}; pwd)`"
+ avcodec_h="${ffmpeg_top_incl}/${i}/avcodec.h"
++ if test -f ${ffmpeg_top_incl}/${i}/version.h; then
++ avcodec_version_h=${ffmpeg_top_incl}/${i}/version.h
++ fi
+ break
+ fi
+ done
+@@ -83,6 +90,9 @@
+ if test -f ${ffmpeg_top_incl}/${i}/avcodec.h; then
+ ac_cv_path_ffmpeg_incl="-I`(cd ${ffmpeg_top_incl}/${i}; pwd)`"
+ avcodec_h=${ffmpeg_top_incl}/${i}/avcodec.h
++ if test -f ${ffmpeg_top_incl}/${i}/version.h; then
++ avcodec_version_h=${ffmpeg_top_incl}/${i}/version.h
++ fi
+ break
+ fi
+ done
+@@ -182,14 +192,24 @@
+ dnl a modified form of grepping may be better, making sure all old kinds of
+ dnl version numbering fail gracefully.
+
++ versionfile=""
++
+ dnl Check avcodec version number, if it was found
+- if test x"${avcodec_h}" != x; then
++ if test x"${avcodec_version_h}" != x; then
++ versionfile=${avcodec_version_h}
++ else
++ if test x"${avcodec_h}" != x; then
++ versionfile=${avcodec_h}
++ fi
++ fi
++
++ if test x"${versionfile}" != x; then
+
+ AC_MSG_CHECKING([ffmpeg version])
+
+- ffmpeg_major_version=`$EGREP "define LIBAVCODEC_VERSION_MAJOR " ${avcodec_h} | sed -e "s%[[^0-9]]%%g"`
+- ffmpeg_minor_version=`$EGREP "define LIBAVCODEC_VERSION_MINOR " ${avcodec_h} | sed -e "s%[[^0-9]]%%g"`
+- ffmpeg_micro_version=`$EGREP "define LIBAVCODEC_VERSION_MICRO " ${avcodec_h} | sed -e "s%[[^0-9]]%%g"`
++ ffmpeg_major_version=`$EGREP "define LIBAVCODEC_VERSION_MAJOR " ${versionfile} | sed -e "s%[[^0-9]]%%g"`
++ ffmpeg_minor_version=`$EGREP "define LIBAVCODEC_VERSION_MINOR " ${versionfile} | sed -e "s%[[^0-9]]%%g"`
++ ffmpeg_micro_version=`$EGREP "define LIBAVCODEC_VERSION_MICRO " ${versionfile} | sed -e "s%[[^0-9]]%%g"`
+
+ if test x"${ffmpeg_major_version}" != x ; then
+
+@@ -198,15 +218,15 @@
+ else
+
+ dnl #define LIBAVCODEC_VERSION_TRIPLET 51,50,1
+- ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION_TRIPLET " ${avcodec_h} | awk '{print $'3'}' | sed -e "s%,%.%g"`
++ ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION_TRIPLET " ${versionfile} | awk '{print $'3'}' | sed -e "s%,%.%g"`
+
+ if test x"${ffmpeg_version}" = x ; then
+
+ dnl NOTE: the [0-9]*d. pattern discards deb-heads rubbish prefix
+- ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION " ${avcodec_h} | awk '{print $'3'}' | sed -e "s%^[[0-9]]d\.%%"`
++ ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION " ${versionfile} | awk '{print $'3'}' | sed -e "s%^[[0-9]]d\.%%"`
+
+ if test x"${ffmpeg_version}" = x ; then
+- ffmpeg_version=`$EGREP "define LIBAVCODEC_BUILD " ${avcodec_h} | awk '{print $'3'}'`
++ ffmpeg_version=`$EGREP "define LIBAVCODEC_BUILD " ${versionfile} | awk '{print $'3'}'`
+ fi
+ fi
+
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/gnash/xul8.patch b/community/gnash/xul8.patch
new file mode 100644
index 000000000..7bd708b2d
--- /dev/null
+++ b/community/gnash/xul8.patch
@@ -0,0 +1,44 @@
+diff -u -r gnash-0.8.9/plugin/npapi/mozilla-sdk/np_entry.cpp gnash-0.8.9-xul/plugin/npapi/mozilla-sdk/np_entry.cpp
+--- gnash-0.8.9/plugin/npapi/mozilla-sdk/np_entry.cpp 2011-03-13 17:47:36.000000000 +0100
++++ gnash-0.8.9-xul/plugin/npapi/mozilla-sdk/np_entry.cpp 2011-11-18 16:25:55.198007371 +0100
+@@ -238,7 +238,7 @@
+ return NS_PluginInitialize();
+ }
+
+-char *
++const char *
+ NP_GetMIMEDescription(void)
+ {
+ return NPP_GetMIMEDescription();
+diff -u -r gnash-0.8.9/plugin/npapi/plugin.cpp gnash-0.8.9-xul/plugin/npapi/plugin.cpp
+--- gnash-0.8.9/plugin/npapi/plugin.cpp 2011-03-18 14:44:30.000000000 +0100
++++ gnash-0.8.9-xul/plugin/npapi/plugin.cpp 2011-11-18 16:35:42.496794816 +0100
+@@ -128,10 +128,10 @@
+ }
+
+ /// \brief Return the MIME Type description for this plugin.
+-char*
++const char*
+ NPP_GetMIMEDescription(void)
+ {
+- return const_cast<char *>(MIME_TYPES_DESCRIPTION);
++ return MIME_TYPES_DESCRIPTION;
+ }
+
+ static bool waitforgdb = false;
+diff -u -r gnash-0.8.9/plugin/npapi/test.cpp gnash-0.8.9-xul/plugin/npapi/test.cpp
+--- gnash-0.8.9/plugin/npapi/test.cpp 2011-03-13 17:47:36.000000000 +0100
++++ gnash-0.8.9-xul/plugin/npapi/test.cpp 2011-11-18 16:37:06.997539299 +0100
+@@ -408,10 +408,10 @@
+ {
+ }
+
+-char*
++const char*
+ NPP_GetMIMEDescription(void)
+ {
+- char *x = 0;
++ const char *x = 0;
+ return x;
+ }
+
diff --git a/community/gnofract4d/PKGBUILD b/community/gnofract4d/PKGBUILD
new file mode 100644
index 000000000..b29cf52b1
--- /dev/null
+++ b/community/gnofract4d/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=gnofract4d
+pkgver=3.14
+pkgrel=1
+pkgdesc='A fractal browser with PyGTK gui'
+arch=('i686' 'x86_64' 'mips64el')
+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/gnofract4d/gnofract4d-${pkgver}.tar.gz")
+md5sums=('5c4956ff9aed37b5ad8b984e3673937d')
+
+build() {
+ cd gnofract4d-${pkgver}
+
+ python2 setup.py build
+}
+
+package() {
+ cd gnofract4d-${pkgver}
+
+ python2 setup.py install --root=${pkgdir} --optimize=1
+
+ install -D -m644 COPYING \
+ ${pkgdir}/usr/share/licenses/gnofract4d/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..ec1bda143
--- /dev/null
+++ b/community/gnome-commander/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 60311 2011-12-10 09:50:50Z 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.15
+pkgrel=1
+pkgdesc="A graphical two-pane filemanager for Gnome"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('d2feecf215db3e0faeb873c559087c2ad9af0a5aac26e2b1b32b28be939da37f')
+
+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
+}
+
+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 $pkgname "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -rf "$pkgdir"/etc/gconf/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/PKGBUILD b/community/gnome-do/PKGBUILD
new file mode 100644
index 000000000..6014591fd
--- /dev/null
+++ b/community/gnome-do/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59852 2011-12-01 10:45:29Z spupykin $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Doehni <dohny@gmx.de>
+
+pkgname=gnome-do
+pkgver=0.8.5
+pkgrel=2
+pkgdesc="A launcher application for gnome (like Launchy or Katapult)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://do.davebsd.com/"
+license=('GPL3')
+depends=('gconf-sharp' 'libgnome-desktop-sharp' 'gnome-keyring-sharp' 'libgnome-sharp'
+ 'mono-addins' 'notify-sharp-svn' 'hicolor-icon-theme')
+makedepends=('intltool' 'ca-certificates' 'rsvg2-sharp' 'wnck-sharp')
+options=('!libtool')
+install=$pkgname.install
+source=("http://edge.launchpad.net/do/trunk/$pkgver/+download/gnome-do-$pkgver.tar.gz")
+md5sums=('71e0e653021f895f151a6f46a97f75ba')
+
+build() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-schemas-install \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gnome-do/gnome-do.install b/community/gnome-do/gnome-do.install
new file mode 100644
index 000000000..407103128
--- /dev/null
+++ b/community/gnome-do/gnome-do.install
@@ -0,0 +1,25 @@
+pkgname=gnome-do
+
+post_install() {
+ usr/sbin/gconfpkg --install $pkgname
+ 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."
+}
+
+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/community/gnome-mplayer/PKGBUILD b/community/gnome-mplayer/PKGBUILD
new file mode 100644
index 000000000..5671d5e30
--- /dev/null
+++ b/community/gnome-mplayer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 51291 2011-07-06 15:32:05Z 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.4
+pkgrel=1
+pkgdesc='A simple MPlayer GUI.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://gnome-mplayer.googlecode.com/'
+license=('GPL')
+depends=('mplayer' 'dbus-glib' 'libnotify' 'gtk2' 'hicolor-icon-theme' 'dconf')
+makedepends=('gnome-power-manager' 'nautilus')
+install="${pkgname}.install"
+source=("http://gnome-mplayer.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('c97dcf12d6a6b5543d701944f95e850e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-install
+ 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..35db81614
--- /dev/null
+++ b/community/gnome-mplayer/gnome-mplayer.install
@@ -0,0 +1,22 @@
+post_install() {
+ 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() {
+ 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/community/gnome-packagekit/PKGBUILD b/community/gnome-packagekit/PKGBUILD
new file mode 100644
index 000000000..e24803a9c
--- /dev/null
+++ b/community/gnome-packagekit/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 58924 2011-11-20 11:38:58Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+
+pkgname=gnome-packagekit
+pkgver=3.2.1
+pkgrel=1
+pkgdesc='Collection of graphical tools for PackageKit to be used in the GNOME desktop'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.packagekit.org/'
+license=('GPL')
+depends=('dconf' 'desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'libnotify'
+ 'packagekit')
+makedepends=('gconf' 'gtk-doc' 'intltool' 'libcanberra' 'upower')
+optdepends=('gnome-settings-daemon-updates: update and message notifications')
+options=('!emptydirs' '!libtool')
+install="$pkgname.install"
+source=("http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
+ 'arch.patch')
+sha256sums=('7a6383a2a91fd29c0b6fd9b8900d498efd2e38b89149470433748d989926c341'
+ '9c809ac3c8bbf870442e7bc4123c70b144930a287b28626be1b8bae95edf71ac')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/arch.patch"
+ sed -i 's@python@python2@' 'python/enum-convertor.py'
+ sed -i 's@python @python2 @' 'python/packagekit/Makefile.in'
+
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-gtk-doc \
+ --disable-schemas-compile \
+ --disable-scrollkeeper
+ make -s
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make -s DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir/usr/lib/gnome-settings-daemon-3.0/gtk-modules"
+}
diff --git a/community/gnome-packagekit/arch.patch b/community/gnome-packagekit/arch.patch
new file mode 100644
index 000000000..bf4cd91c4
--- /dev/null
+++ b/community/gnome-packagekit/arch.patch
@@ -0,0 +1,28 @@
+diff -Nru a/data/gpk-install-local-file.desktop.in b/data/gpk-install-local-file.desktop.in
+--- a/data/gpk-install-local-file.desktop.in 2011-03-23 23:15:41.000000000 +1300
++++ b/data/gpk-install-local-file.desktop.in 2011-04-10 01:04:51.606666671 +1200
+@@ -8,5 +8,5 @@
+ Icon=system-software-install
+ StartupNotify=true
+ NoDisplay=true
+-MimeType=application/x-rpm;application/x-redhat-package-manager;application/x-servicepack;application/x-deb;
++MimeType=application/x-xz-compressed-tar;application/x-servicepack;
+
+diff -Nru a/data/org.gnome.packagekit.gschema.xml b/data/org.gnome.packagekit.gschema.xml
+--- a/data/org.gnome.packagekit.gschema.xml 2011-03-28 21:49:37.000000000 +1300
++++ b/data/org.gnome.packagekit.gschema.xml 2011-04-10 02:37:29.433333340 +1200
+@@ -104,14 +104,4 @@
+ <description>When displaying UI from a session DBus request, force these options to be turned on.</description>
+ </key>
+ </schema>
+- <schema id="org.gnome.settings-daemon" path="/org/gnome/settings-daemon/">
+- <child name="gtk-modules" schema="gnome-settings-daemon.gtk-modules"/>
+- </schema>
+- <schema id="gnome-settings-daemon.gtk-modules" path="/org/gnome/settings-daemon/gtk-modules/">
+- <key name="pk-gtk-module" type="b">
+- <default>true</default>
+- <summary>GTK+ module for font installation</summary>
+- <description>This key determines if applications should be able to prompt for fonts.</description>
+- </key>
+- </schema>
+ </schemalist>
diff --git a/community/gnome-packagekit/gnome-packagekit.install b/community/gnome-packagekit/gnome-packagekit.install
new file mode 100644
index 000000000..620670d57
--- /dev/null
+++ b/community/gnome-packagekit/gnome-packagekit.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.91.90) < 0 )); then
+ usr/sbin/gconfpkg --uninstall gnome-packagekit
+ fi
+}
+
+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..35c27216c
--- /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' 'mips64el')
+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-settings-daemon-updates/PKGBUILD b/community/gnome-settings-daemon-updates/PKGBUILD
new file mode 100644
index 000000000..47cfe0b7b
--- /dev/null
+++ b/community/gnome-settings-daemon-updates/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 56110 2011-10-01 19:01:59Z ibiru $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+
+_pkgname=gnome-settings-daemon
+pkgname=$_pkgname-updates
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Updates plugin for the GNOME Settings daemon"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org"
+license=('GPL')
+depends=('gnome-packagekit' "$_pkgname")
+makedepends=('intltool' 'gtk-doc' 'gnome-desktop')
+options=('!emptydirs' '!libtool')
+install=$_pkgname.install
+source=("http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz"
+ 'arch.patch')
+sha256sums=('a85242ce60b9c9bb3fbad124ee06430a408f39fa31d2d4ea29dc179db724447b'
+ 'e5029915c423f72256c4170f917363c385b6fcd180b87ceba0d7bb11a841d7e9')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/arch.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-settings-daemon \
+ --disable-static \
+ --enable-pulse \
+ --with-pnpids=/usr/share/libgnome-desktop-3.0/pnp.ids
+ #https://bugzilla.gnome.org/show_bug.cgi?id=656231
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make -s
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make -C 'plugins/updates' DESTDIR="${pkgdir}" install
+
+ _schema='org.gnome.settings-daemon.plugins.updates.gschema.xml'
+ install -D -m644 "data/$_schema" "$pkgdir/usr/share/glib-2.0/schemas/$_schema"
+}
diff --git a/community/gnome-settings-daemon-updates/arch.patch b/community/gnome-settings-daemon-updates/arch.patch
new file mode 100644
index 000000000..f405d7593
--- /dev/null
+++ b/community/gnome-settings-daemon-updates/arch.patch
@@ -0,0 +1,321 @@
+diff --git a/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in b/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
+index c09096a..3fa4159 100644
+--- a/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
++++ b/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
+@@ -31,7 +31,7 @@
+ <_description>Automatically download updates in the background without confirmation. Updates will be auto-downloaded when using wired network connnections, and also WiFi if 'connection-use-wifi' is enabled and mobile broadband if 'connection-use-mobile' is enabled.</_description>
+ </key>
+ <key name="auto-update-type" enum="org.gnome.settings-daemon.GsdUpdateType">
+- <default>'security'</default>
++ <default>'none'</default>
+ <_summary>Automatically install these types of updates</_summary>
+ <_description>Automatically install these types of updates.</_description>
+ </key>
+@@ -56,7 +56,7 @@
+ <_description>The last time we notified the user about non-critical updates. Value is in seconds since the epoch, or zero for never.</_description>
+ </key>
+ <key name="frequency-get-upgrades" type="i">
+- <default>604800</default>
++ <default>0</default>
+ <_summary>How often to check for distribution upgrades</_summary>
+ <_description>How often to check for distribution upgrades. Value is in seconds.</_description>
+ </key>
+diff --git a/plugins/updates/Makefile.am b/plugins/updates/Makefile.am
+index 9510c65..191092d 100644
+--- a/plugins/updates/Makefile.am
++++ b/plugins/updates/Makefile.am
+@@ -15,7 +15,9 @@ libupdates_la_SOURCES = \
+ gsd-updates-firmware.h \
+ gsd-updates-firmware.c \
+ gsd-updates-manager.h \
+- gsd-updates-manager.c
++ gsd-updates-manager.c \
++ gsd-updates-watch.h \
++ gsd-updates-watch.c
+
+ libupdates_la_CPPFLAGS = \
+ -I$(top_srcdir)/gnome-settings-daemon \
+diff --git a/plugins/updates/gsd-updates-manager.c b/plugins/updates/gsd-updates-manager.c
+index 90ea246..d79455c 100644
+--- a/plugins/updates/gsd-updates-manager.c
++++ b/plugins/updates/gsd-updates-manager.c
+@@ -32,6 +32,7 @@
+ #include "gsd-updates-manager.h"
+ #include "gsd-updates-firmware.h"
+ #include "gsd-updates-refresh.h"
++#include "gsd-updates-watch.h"
+ #include "gsd-updates-common.h"
+ #include "gnome-settings-profile.h"
+
+@@ -46,6 +47,7 @@ struct GsdUpdatesManagerPrivate
+ GCancellable *cancellable;
+ GsdUpdatesRefresh *refresh;
+ GsdUpdatesFirmware *firmware;
++ GsdUpdatesWatch *watch;
+ GSettings *settings_ftp;
+ GSettings *settings_gsd;
+ GSettings *settings_http;
+@@ -1359,6 +1361,9 @@ gsd_updates_manager_start (GsdUpdatesManager *manager,
+ g_signal_connect (manager->priv->refresh, "get-updates",
+ G_CALLBACK (due_get_updates_cb), manager);
+
++ /* watch transaction progress */
++ manager->priv->watch = gsd_updates_watch_new ();
++
+ /* get http settings */
+ manager->priv->settings_http = g_settings_new ("org.gnome.system.proxy.http");
+ g_signal_connect (manager->priv->settings_http, "changed",
+@@ -1464,6 +1469,10 @@ gsd_updates_manager_stop (GsdUpdatesManager *manager)
+ g_object_unref (manager->priv->firmware);
+ manager->priv->firmware = NULL;
+ }
++ if (manager->priv->watch != NULL) {
++ g_object_unref (manager->priv->watch);
++ manager->priv->watch = NULL;
++ }
+ if (manager->priv->proxy_session != NULL) {
+ g_object_unref (manager->priv->proxy_session);
+ manager->priv->proxy_session = NULL;
+diff --git a/plugins/updates/gsd-updates-watch.c b/plugins/updates/gsd-updates-watch.c
+new file mode 100644
+index 0000000..892acad
+--- /dev/null
++++ b/plugins/updates/gsd-updates-watch.c
+@@ -0,0 +1,179 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007-2011 Richard Hughes <richard@hughsie.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 "config.h"
++
++#include <unistd.h>
++#include <glib/gi18n.h>
++#include <packagekit-glib2/packagekit.h>
++#include <libnotify/notify.h>
++
++#include "gsd-updates-watch.h"
++
++#define GSD_UPDATES_WATCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_UPDATES_WATCH, GsdUpdatesWatchPrivate))
++
++struct GsdUpdatesWatchPrivate
++{
++ PkTransactionList *tlist;
++ PkClient *client;
++};
++
++G_DEFINE_TYPE (GsdUpdatesWatch, gsd_updates_watch, G_TYPE_OBJECT)
++
++static void
++gsd_updates_watch_message_cb (PkMessage *item, GsdUpdatesWatch *watch)
++{
++ NotifyNotification *notification;
++ gchar *details = NULL;
++ const gchar *title, *message;
++ GError *error = NULL;
++
++ g_return_if_fail (PK_IS_MESSAGE (item));
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ g_object_get (item, "details", &details, NULL);
++ title = _("More information");
++ message = details;
++
++ /* use a better title if available */
++ if (g_str_has_prefix (details, "<b>")) {
++ gchar *end = g_strstr_len (details, -1, "</b>\n");
++ if (end != NULL && g_strstr_len (details, end - details, "\n") == NULL) {
++ title = details + 3;
++ *end = '\0';
++ message = end + 5;
++ }
++ }
++
++ /* display a notification */
++ notification = notify_notification_new (title, message, NULL);
++ notify_notification_set_app_name (notification, _("Software Updates"));
++ notify_notification_set_timeout (notification, NOTIFY_EXPIRES_NEVER);
++ notify_notification_set_urgency (notification, NOTIFY_URGENCY_NORMAL);
++
++ if (!notify_notification_show (notification, &error)) {
++ g_warning ("error: %s", error->message);
++ g_error_free (error);
++ }
++
++ g_free (details);
++}
++
++static void
++gsd_updates_watch_adopt_cb (PkClient *client, GAsyncResult *res, GsdUpdatesWatch *watch)
++{
++ PkResults *results;
++ PkProgress *progress = NULL;
++ guint uid;
++ GPtrArray *array;
++ GError *error = NULL;
++
++ g_return_if_fail (PK_IS_CLIENT (client));
++ g_return_if_fail (G_IS_ASYNC_RESULT (res));
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ results = pk_client_generic_finish (client, res, &error);
++ if (results == NULL) {
++ g_warning ("failed to adopt: %s", error->message);
++ g_error_free (error);
++ goto out;
++ }
++
++ g_object_get (results, "progress", &progress, NULL);
++ g_object_get (progress, "uid", &uid, NULL);
++
++ /* only display messages from the same user */
++ if (uid != getuid ()) {
++ g_printerr ("ignoring messages\n");
++ goto out;
++ }
++
++ array = pk_results_get_message_array (results);
++ g_ptr_array_foreach (array, (GFunc) gsd_updates_watch_message_cb, watch);
++ g_ptr_array_unref (array);
++
++out:
++ if (progress != NULL) {
++ g_object_unref (progress);
++ }
++ if (results != NULL) {
++ g_object_unref (results);
++ }
++}
++
++static void
++gsd_updates_watch_tlist_added_cb (PkTransactionList *tlist, const gchar *tid, GsdUpdatesWatch *watch)
++{
++ g_return_if_fail (PK_IS_TRANSACTION_LIST (tlist));
++ g_return_if_fail (tid != NULL);
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ /* listen for messages */
++ pk_client_adopt_async (watch->priv->client, tid, NULL, NULL, NULL,
++ (GAsyncReadyCallback) gsd_updates_watch_adopt_cb, watch);
++}
++
++static void
++gsd_updates_watch_init (GsdUpdatesWatch *watch)
++{
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ watch->priv = GSD_UPDATES_WATCH_GET_PRIVATE (watch);
++ watch->priv->tlist = pk_transaction_list_new ();
++ watch->priv->client = pk_client_new ();
++
++ g_signal_connect (watch->priv->tlist, "added",
++ G_CALLBACK (gsd_updates_watch_tlist_added_cb), watch);
++}
++
++static void
++gsd_updates_watch_finalize (GObject *object)
++{
++ GsdUpdatesWatch *watch;
++
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (object));
++
++ watch = GSD_UPDATES_WATCH (object);
++ g_return_if_fail (watch->priv != NULL);
++
++ if (watch->priv->tlist != NULL) {
++ g_object_unref (watch->priv->tlist);
++ }
++ if (watch->priv->client != NULL) {
++ g_object_unref (watch->priv->client);
++ }
++
++ G_OBJECT_CLASS (gsd_updates_watch_parent_class)->finalize (object);
++}
++
++GsdUpdatesWatch *
++gsd_updates_watch_new (void)
++{
++ return GSD_UPDATES_WATCH (g_object_new (GSD_TYPE_UPDATES_WATCH, NULL));
++}
++
++static void
++gsd_updates_watch_class_init (GsdUpdatesWatchClass *klass)
++{
++ GObjectClass *object_class = G_OBJECT_CLASS (klass);
++ object_class->finalize = gsd_updates_watch_finalize;
++ g_type_class_add_private (klass, sizeof (GsdUpdatesWatchPrivate));
++}
+diff --git a/plugins/updates/gsd-updates-watch.h b/plugins/updates/gsd-updates-watch.h
+new file mode 100644
+index 0000000..d90976e
+--- /dev/null
++++ b/plugins/updates/gsd-updates-watch.h
+@@ -0,0 +1,52 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007-2011 Richard Hughes <richard@hughsie.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.
++ */
++
++#ifndef __GSD_UPDATES_WATCH_H
++#define __GSD_UPDATES_WATCH_H
++
++#include <glib-object.h>
++
++G_BEGIN_DECLS
++
++#define GSD_TYPE_UPDATES_WATCH (gsd_updates_watch_get_type ())
++#define GSD_UPDATES_WATCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_UPDATES_WATCH, GsdUpdatesWatch))
++#define GSD_UPDATES_WATCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_UPDATES_WATCH, GsdUpdatesWatchClass))
++#define GSD_IS_UPDATES_WATCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_UPDATES_WATCH))
++
++typedef struct GsdUpdatesWatchPrivate GsdUpdatesWatchPrivate;
++
++typedef struct
++{
++ GObject parent;
++ GsdUpdatesWatchPrivate *priv;
++} GsdUpdatesWatch;
++
++typedef struct
++{
++ GObjectClass parent_class;
++} GsdUpdatesWatchClass;
++
++GType gsd_updates_watch_get_type (void);
++GsdUpdatesWatch *gsd_updates_watch_new (void);
++
++G_END_DECLS
++
++#endif /* __GSD_UPDATES_WATCH_H */
diff --git a/community/gnome-settings-daemon-updates/gnome-settings-daemon.install b/community/gnome-settings-daemon-updates/gnome-settings-daemon.install
new file mode 100644
index 000000000..24072f316
--- /dev/null
+++ b/community/gnome-settings-daemon-updates/gnome-settings-daemon.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/community/gnomesu/PKGBUILD b/community/gnomesu/PKGBUILD
new file mode 100644
index 000000000..89a456fa4
--- /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' 'mips64el')
+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..f09a5e788
--- /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' 'mips64el')
+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..07f1d6f7b
--- /dev/null
+++ b/community/gnote/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57195 2011-10-23 18:34:02Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: uastasi <uastasi@archlinux.us>
+pkgname=gnote
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="A note taking application."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/Gnote"
+license=('GPL3')
+depends=('gtkmm3' 'libxslt' 'hicolor-icon-theme' 'desktop-file-utils' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils' 'boost')
+options=('!libtool')
+install=gnote.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.8/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('d20ad13814e016679e74aa51e2619000bd4468c13d219c760daa633e398bea43')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnote \
+ --disable-scrollkeeper \
+ --disable-schemas-compile \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gnote/gnote.install b/community/gnote/gnote.install
new file mode 100644
index 000000000..0f8eb1012
--- /dev/null
+++ b/community/gnote/gnote.install
@@ -0,0 +1,21 @@
+pkgname=gnote
+
+post_install() {
+ 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 [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/gnubiff-gtk/PKGBUILD b/community/gnubiff-gtk/PKGBUILD
new file mode 100644
index 000000000..10f6fa42f
--- /dev/null
+++ b/community/gnubiff-gtk/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 53956 2011-08-10 14:39:02Z 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=3
+pkgdesc="Mail notification program that checks for mail and displays headers when new mail has arrived. GTK version."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gnubiff.sourceforge.net/"
+license=("GPL")
+depends=('libglade' 'openssl' 'popt')
+makedepends=('intltool')
+conflicts=(gnubiff)
+source=(http://downloads.sourceforge.net/sourceforge/gnubiff/gnubiff-$pkgver.tar.gz
+ build.patch)
+md5sums=('65423957eb027b94c9e661611c0e4271'
+ '96fde605eb69e300f6014546d4339beb')
+
+build() {
+ cd $srcdir/gnubiff-$pkgver
+ patch -p1 <../build.patch
+ export LDFLAGS=-lX11
+ ./configure --prefix=/usr --disable-gnome --disable-fam --with-password --with-password-string="65423957eb027b94c9e661611c0e4271"
+ make
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/lib
+ rm -rf $pkgdir/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..65b80b55c
--- /dev/null
+++ b/community/gnubiff/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 53951 2011-08-10 14:38:08Z 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.13
+pkgrel=2
+pkgdesc="Mail notification program that checks for mail and displays headers when new mail has arrived"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gnubiff.sourceforge.net/"
+license=("GPL")
+depends=('libglade' 'gtk2' 'popt')
+makedepends=('perlxml' 'intltool')
+conflicts=(gnubiff-gtk)
+source=(http://downloads.sourceforge.net/gnubiff/gnubiff-$pkgver.tar.gz)
+md5sums=('65423957eb027b94c9e661611c0e4271')
+
+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
+
+ ./configure --prefix=/usr --with-password --with-password-string="65423957eb027b94c9e661611c0e4271" \
+ --disable-fam --disable-gnome
+ make
+ make DESTDIR=$startdir/pkg install
+
+ rm -rf ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/gnucap/PKGBUILD b/community/gnucap/PKGBUILD
new file mode 100644
index 000000000..7c92073d1
--- /dev/null
+++ b/community/gnucap/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 55492 2011-09-13 05:23:39Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Contributor: Georgij Kondratjev <smpuj@bk.ru>
+
+pkgname=gnucap
+pkgver=20091207
+_pkgver=2009-12-07
+pkgrel=2
+pkgdesc="GNU Circuit Analysis Package"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gnucap.org/"
+license=('GPL')
+depends=('gcc-libs' 'readline')
+source=(http://gnucap.org/devel/$pkgname-$_pkgver.tar.gz)
+sha1sums=('a64be626b3e971437d677f14bc72eda0df6e7e3a')
+
+build() {
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ make
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gnunet-gtk/PKGBUILD b/community/gnunet-gtk/PKGBUILD
new file mode 100644
index 000000000..ee67ea9c8
--- /dev/null
+++ b/community/gnunet-gtk/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59850 2011-12-01 08:07:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: wahnby <wahnby@yahoo.fr>
+
+pkgname=gnunet-gtk
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="A frontend for GNUnet"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gnunet.org"
+options=('!libtool')
+license=('GPL')
+depends=('gnunet' 'glade' 'adns')
+makedepends=('pkgconfig')
+source=(ftp://ftp.gnu.org/gnu/gnunet/$pkgname-$pkgver.tar.gz
+ drop_gtk2.patch)
+md5sums=('5df53665628889a6a12d2bc323003f8d'
+ 'f709c0195beffd0ca64d498be83a118b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/drop_gtk2.patch
+ autoreconf -fi
+ ./configure --prefix=/usr --with-gnunet=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gnunet-gtk/drop_gtk2.patch b/community/gnunet-gtk/drop_gtk2.patch
new file mode 100644
index 000000000..1ae4fda1f
--- /dev/null
+++ b/community/gnunet-gtk/drop_gtk2.patch
@@ -0,0 +1,11 @@
+diff -Nur gnunet-gtk-0.9.0pre3.orig/configure.ac gnunet-gtk-0.9.0pre3/configure.ac
+--- gnunet-gtk-0.9.0pre3.orig/configure.ac 2011-10-12 06:30:21.001993062 +0000
++++ gnunet-gtk-0.9.0pre3/configure.ac 2011-10-12 06:30:50.695578118 +0000
+@@ -169,7 +169,6 @@
+ AC_MSG_CHECKING(for gtk)
+ without_gtk=true
+ AM_PATH_GTK_3_0(3.0.0,without_gtk=false,)
+-AM_PATH_GTK_2_0(2.6.0,without_gtk=false,)
+ AM_CONDITIONAL(HAVE_GTK, test x$without_gtk != xtrue)
+ if test $without_gtk != true
+ then
diff --git a/community/gnunet/PKGBUILD b/community/gnunet/PKGBUILD
new file mode 100644
index 000000000..436345e04
--- /dev/null
+++ b/community/gnunet/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 59848 2011-12-01 08:06:10Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: wahnby <wahnby@yahoo.fr>
+
+pkgname=gnunet
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="A framework for secure peer-to-peer networking"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gnunet.org"
+license=('GPL')
+depends=('gmp' 'libgcrypt' 'libextractor' 'sqlite3' 'curl' '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
+ defaults.conf)
+md5sums=('e114291bbaf92de085a0ac6f2bfbe54c'
+ '0d62ab7f2a28af3ac082015696ee6ef3'
+ 'f161b46915736e4017e77ad735521453'
+ '0fe23b2ca5b3fc47a0b5645e04406da0')
+
+build() {
+ cd $srcdir/gnunet-$pkgver
+ [ -f Makefile ] || ./configure --prefix=/usr --without-mysql
+ make
+}
+
+package() {
+ cd $srcdir/gnunet-$pkgver
+ 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/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/defaults.conf b/community/gnunet/defaults.conf
new file mode 100644
index 000000000..bb4193433
--- /dev/null
+++ b/community/gnunet/defaults.conf
@@ -0,0 +1,483 @@
+[PATHS]
+SERVICEHOME = ~/.gnunet/
+# SERVICEHOME = /var/lib/gnunet/
+# DEFAULTCONFIG = /etc/gnunet.conf
+# If 'DEFAULTCONFIG' is not defined, the current
+# configuration file is assumed to be the default,
+# which is what we want by default...
+
+[gnunetd]
+HOSTKEY = $SERVICEHOME/.hostkey
+
+[TESTING]
+WEAKRANDOM = NO
+# How long before failing a connection?
+CONNECT_TIMEOUT = 30
+# How many connect attempts should we make?
+CONNECT_ATTEMPTS = 3
+# How many connections can happen simultaneously?
+MAX_OUTSTANDING_CONNECTIONS = 50
+
+# Should we clean up the files on peer group shutdown?
+DELETE_FILES = YES
+
+[client]
+HOME = $SERVICEHOME
+
+[nat]
+# Are we behind NAT?
+BEHIND_NAT = NO
+
+# Is the NAT hole-punched?
+PUNCHED_NAT = NO
+
+# Enable UPNP by default?
+ENABLE_UPNP = NO
+
+# Use addresses from the local network interfaces (inluding loopback, but also others)
+USE_LOCALADDR = YES
+
+# Use address obtained from a DNS lookup of our hostname
+USE_HOSTNAME = NO
+
+# External IP address of the NAT box (if known); IPv4 dotted-decimal ONLY at this time (should allow DynDNS!)
+# normal interface IP address for non-NATed peers;
+# possibly auto-detected (using UPnP) if possible if not specified
+# EXTERNAL_ADDRESS =
+
+# Should we use ICMP-based NAT traversal to try connect to NATed peers
+# or, if we are behind NAT, to allow connections to us?
+ENABLE_ICMP_CLIENT = NO
+ENABLE_ICMP_SERVER = NO
+
+# IP address of the interface connected to the NAT box; IPv4 dotted-decimal ONLY;
+# normal interface IP address for non-NATed peers;
+# likely auto-detected (via interface list) if not specified (!)
+# INTERNAL_ADDRESS =
+
+# Disable IPv6 support
+DISABLEV6 = NO
+
+# How often do we query the DNS resolver
+# for our hostname (to get our own IP), in ms
+HOSTNAME_DNS_FREQUENCY = 1200000
+
+# How often do we iterate over our
+# network interfaces to check for changes
+# in our IP address? in ms
+IFC_SCAN_FREQUENCY = 3000000
+
+# How often do we query the DNS resolver
+# for our hostname (to get our own IP), in ms
+DYNDNS_FREQUENCY = 140000
+
+[gnunet-nat-server]
+HOSTNAME = gnunet.org
+PORT = 5724
+
+[transport-tcp]
+# Use 0 to ONLY advertise as a peer behind NAT (no port binding)
+PORT = 2086
+ADVERTISED_PORT = 2086
+
+# Maximum number of open TCP connections allowed
+MAX_CONNECTIONS = 128
+
+TIMEOUT = 5000
+
+# ACCEPT_FROM =
+# ACCEPT_FROM6 =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# BINDTO =
+
+MAX_CONNECTIONS = 128
+
+
+[transport-udp]
+PORT = 2086
+
+MAX_BPS = 1000000
+
+
+[transport-http]
+PORT = 1080
+MAX_CONNECTIONS = 128
+
+[transport-https]
+PORT = 4433
+CRYPTO_INIT = NORMAL
+KEY_FILE = https.key
+CERT_FILE = https.cert
+MAX_CONNECTIONS = 128
+
+
+[transport-wlan]
+# Name of the interface in monitor mode (typically monX)
+INTERFACE = mon0
+# Real hardware, no testing
+TESTMODE = 0
+
+
+[arm]
+PORT = 2087
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-arm
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+DEFAULTSERVICES = topology hostlist
+UNIXPATH = /tmp/gnunet-service-arm.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# GLOBAL_POSTFIX = -l $SERVICEHOME/{}-logs
+# GLOBAL_PREFIX =
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+[statistics]
+AUTOSTART = YES
+PORT = 2088
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-statistics
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-statistics.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+[resolver]
+AUTOSTART = YES
+PORT = 2089
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-resolver
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-resolver.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = NO
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+[peerinfo]
+AUTOSTART = YES
+PORT = 2090
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-peerinfo
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-peerinfo.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+HOSTS = $SERVICEHOME/data/hosts/
+
+
+[transport]
+AUTOSTART = YES
+PORT = 2091
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-transport
+#PREFIX = valgrind
+NEIGHBOUR_LIMIT = 50
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+PLUGINS = tcp
+UNIXPATH = /tmp/gnunet-service-transport.sock
+BLACKLIST_FILE = $SERVICEHOME/blacklist
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+
+# ATS options
+DUMP_MLP = NO
+DUMP_SOLUTION = NO
+DUMP_OVERWRITE = NO
+DUMP_MIN_PEERS = 0
+DUMP_MIN_ADDRS = 0
+DUMP_OVERWRITE = NO
+ATS_MIN_INTERVAL = 15000
+ATS_EXEC_INTERVAL = 30000
+
+
+[core]
+AUTOSTART = YES
+PORT = 2092
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-core
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+# quotas are in bytes per second now!
+TOTAL_QUOTA_IN = 65536
+TOTAL_QUOTA_OUT = 65536
+UNIXPATH = /tmp/gnunet-service-core.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# DEBUG = YES
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+
+[topology]
+MINIMUM-FRIENDS = 0
+FRIENDS-ONLY = NO
+AUTOCONNECT = YES
+TARGET-CONNECTION-COUNT = 16
+FRIENDS = $SERVICEHOME/friends
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-topology
+
+[hostlist]
+# port for hostlist http server
+HTTPPORT = 8080
+HOME = $SERVICEHOME
+HOSTLISTFILE = $SERVICEHOME/hostlist/learned.data
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-hostlist
+# consider having "-e" as default as well once implemented
+OPTIONS = -b
+SERVERS = http://v9.gnunet.org:58080/
+# proxy for downloading hostlists
+HTTP-PROXY =
+
+
+[datastore]
+AUTOSTART = YES
+UNIXPATH = /tmp/gnunet-service-datastore.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+PORT = 2093
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-datastore
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+QUOTA = 100000000
+BLOOMFILTER = $SERVICEHOME/fs/bloomfilter
+DATABASE = sqlite
+# DISABLE_SOCKET_FORWARDING = NO
+
+[datastore-sqlite]
+FILENAME = $SERVICEHOME/datastore/sqlite.db
+
+[datastore-postgres]
+CONFIG = connect_timeout=10; dbname=gnunet
+
+[datastore-mysql]
+DATABASE = gnunet
+CONFIG = ~/.my.cnf
+# USER = gnunet
+# PASSWORD =
+# HOST = localhost
+# PORT = 3306
+
+[datacache-mysql]
+DATABASE = gnunetcheck
+CONFIG = ~/.my.cnf
+# USER = gnunet
+# PASSWORD =
+# HOST = localhost
+# PORT = 3306
+
+
+[fs]
+AUTOSTART = YES
+INDEXDB = $SERVICEHOME/idxinfo.lst
+TRUST = $SERVICEHOME/data/credit/
+IDENTITY_DIR = $SERVICEHOME/identities/
+STATE_DIR = $SERVICEHOME/persistence/
+UPDATE_DIR = $SERVICEHOME/updates/
+PORT = 2094
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-fs
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+
+DELAY = YES
+CONTENT_CACHING = YES
+CONTENT_PUSHING = YES
+
+UNIXPATH = /tmp/gnunet-service-fs.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# DEBUG = YES
+MAX_PENDING_REQUESTS = 65536
+# Maximum frequency we're allowed to poll the datastore
+# for content for migration (can be used to reduce
+# GNUnet's disk-IO rate)
+MIN_MIGRATION_DELAY = 100
+EXPECTED_NEIGHBOUR_COUNT = 128
+
+[dht]
+AUTOSTART = YES
+PORT = 2095
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-dht
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+BUCKET_SIZE = 4
+UNIXPATH = /tmp/gnunet-service-dht.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# DEBUG = YES
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+# DO_FIND_PEER =
+# STRICT_KADEMLIA =
+# USE_MAX_HOPS =
+# MAX_HOPS =
+# REPUBLISH = YES
+# REPLICATION_FREQUENCY = 60
+# STOP_ON_CLOSEST =
+# STOP_FOUND =
+# CONVERGE_MODIFIER =
+
+
+[dhtcache]
+DATABASE = sqlite
+QUOTA = 1024000
+
+[block]
+PLUGINS = fs dht test dns
+
+[mesh]
+AUTOSTART = YES
+PORT = 2096
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-mesh
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-mesh.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+
+[nse]
+AUTOSTART = YES
+PORT = 2097
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-nse
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/test-nse-service-nse.unix
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+PROOFFILE = $SERVICEHOME/.nse-proof
+HISTOGRAM = $SERVICEHOME/nse-history.log
+
+# How 'slowly' should the proof-of-work be constructed (delay
+# between rounds in ms); sane values between 0 and ~1000.
+WORKDELAY = 5
+
+# Note: changing any of the values below will make this peer
+# completely incompatible with other peers!
+INTERVAL = 3600000
+WORKBITS = 20
+
+
+[vpn]
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-vpn
+IPV6ADDR = 1234::1
+IPV6PREFIX = 32
+IPV4ADDR = 10.11.10.1
+IPV4MASK = 255.255.0.0
+VIRTDNS = 10.11.10.2
+IFNAME = vpn-gnunet
+
+[exit]
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-exit
+IPV6ADDR = 1234:1::1
+IPV6PREFIX = 32
+IPV4ADDR = 10.10.1.1
+IPV4MASK = 255.255.0.0
+IFNAME = exit-gnunet
+ENABLE_UDP = NO
+ENABLE_TCP = NO
+
+[dns]
+AUTOSTART = YES
+PORT = 0
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-dns
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-dns.sock
+PROVIDE_EXIT = NO
+
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..b7402377d
--- /dev/null
+++ b/community/gnustep-back/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 56056 2011-09-29 17:43:50Z 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.20.1
+pkgrel=1
+pkgdesc="The GNUstep GUI Backend"
+arch=('i686' 'x86_64' 'mips64el')
+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=('6c6ab328de7612d0ca3fdfc2fedb1ceb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ . /etc/profile.d/GNUstep.sh
+ ./configure --prefix=/usr --sysconfdir=/etc/GNUstep
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ . /etc/profile.d/GNUstep.sh
+ make DESTDIR=$pkgdir install
+ mkdir -p $pkgdir/etc/ld.so.conf.d
+ cat >$pkgdir/etc/ld.so.conf.d/gnustep.conf <<EOF
+/opt/GNUstep/System/Library/Libraries
+/usr/lib/GNUstep/Libraries
+EOF
+}
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..eca6580d0
--- /dev/null
+++ b/community/gnustep-base/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 56058 2011-09-29 17:45:33Z 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.23.0
+pkgrel=1
+pkgdesc="The GNUstep base package"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnustep.org/"
+license=("GPL" "LGPL")
+depends=(libxslt avahi gmp gcc-libs openssl libffi 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=('c898a1b6cdc98e83639f319876bdbba6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ source /etc/profile.d/GNUstep.sh
+ ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \
+ --with-ffi-include=/usr/lib/libffi-`pacman -Q libffi | cut -f2 -d\ |cut -f1 -d-`/include/
+ # fix file ownership
+ sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble
+ sed -i 's|.*gnutls_transport_set_lowat.*||' Source/GSSocketStream.m
+ make VERBOSE=1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ 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..e0b00efca
--- /dev/null
+++ b/community/gnustep-gui/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58379 2011-11-12 16:02: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.20.0
+pkgrel=2
+pkgdesc="The GNUstep GUI class library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('0d3765aa97db1dd20bdbd0690f4aca6b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ . /etc/profile.d/GNUstep.sh
+ ./configure --prefix=/usr --sysconfdir=/etc/GNUstep
+ sed -i 's|#include "GNUstepBase/preface.h"|//#include "GNUstepBase/preface.h" |' Source/GSGuiPrivate.h
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/go/PKGBUILD b/community/go/PKGBUILD
new file mode 100644
index 000000000..cacbd5519
--- /dev/null
+++ b/community/go/PKGBUILD
@@ -0,0 +1,95 @@
+# $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=r60.3
+pkgrel=2
+epoch=1
+pkgdesc='Google Go compiler and tools (release version)'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://golang.org/"
+license=('custom')
+depends=('perl' 'ed')
+makedepends=('mercurial' 'inetutils')
+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
+}
+
+check() {
+ export GOROOT="$srcdir/$_hgrepo-build"
+ export GOOS=linux
+ export GOBIN="$GOROOT/bin"
+ cd "$GOROOT/src/pkg"
+ gomake -k test || true
+}
+
+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/ftdetect/gofiletype.vim $pkgdir/usr/share/vim/vimfiles/ftdetect/gofiletype.vim
+ 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
+ ln -s /usr/share/go/doc $pkgdir/usr/lib/go/doc
+ cp -r pkg $pkgdir/usr/lib/go
+ cp -r $GOROOT/src/pkg $pkgdir/usr/lib/go/src/
+ cp -r $GOROOT/src/lib9 $pkgdir/usr/lib/go/src/
+ cp -r $GOROOT/lib $pkgdir/usr/lib/go/
+
+ install -Dm644 src/Make.* $pkgdir/usr/lib/go/src
+
+ # remove object files from target src dir
+ find $pkgdir/usr/lib/go/src/ -type f -name '*.[ao]' -delete
+ find $pkgdir/usr/lib/go/src/pkg -type f -executable -delete
+
+ # 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/
+}
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..66a3a79cd
--- /dev/null
+++ b/community/gobby/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 58735 2011-11-18 10:25:12Z andrea $
+# 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' 'mips64el')
+url="http://gobby.0x539.de"
+license=('GPL')
+
+depends=('obby' 'libxml++' 'gtkmm' 'gnome-vfs' 'libbonobo' 'libgtksourceviewmm2' 'gtksourceview2')
+#depends=('obby' 'libxml++2' 'gtkmm' 'gnome-vfs' 'libbonobo' 'libgtksourceviewmm2'
+# 'gtksourceview2' 'libxml++' 'libunique' 'libinfinity' 'gsasl')
+
+makedepends=('gettext' 'intltool')
+source=(http://releases.0x539.de/gobby/gobby-$pkgver.tar.gz)
+md5sums=('835cc48f5177196e4a18610c2cb013bf')
+
+build() {
+ cd $srcdir/gobby-$pkgver
+ ./configure --prefix=/usr --with-gnome
+ make
+ 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..846f0aa10
--- /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" 'mips64el')
+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..d63234c5b
--- /dev/null
+++ b/community/gogglesmm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60238 2011-12-08 10:43:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sander Jansen <sander@knology.net>
+
+pkgname=gogglesmm
+pkgver=0.12.5
+pkgrel=1
+pkgdesc="Music Manager and Player"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+makedepends=('pkgconfig' 'glproto' 'dri2proto')
+replaces=('musicmanager')
+conflicts=('musicmanager')
+source=(http://gogglesmm.googlecode.com/files/gogglesmm-$pkgver.tar.bz2)
+md5sums=('07e92bcf2daf39d6b380590816edd013')
+
+build() {
+ cd $srcdir/gogglesmm-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/gogglesmm-$pkgver
+ 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..7ea5954a4
--- /dev/null
+++ b/community/goldendict/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 58521 2011-11-13 15:39:18Z andrea $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: m0rph <m0rph.mailbox@gmail.com>
+
+pkgname=goldendict
+pkgver=1.0.1
+pkgrel=4
+pkgdesc="Feature-rich dictionary lookup program"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://goldendict.berlios.de/"
+license=('GPL3')
+depends=('hunspell' 'libvorbis' 'libxtst' 'libzip' 'qt' 'phonon')
+provides=('stardict')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.bz2
+ $pkgname-paths.diff)
+sha256sums=('b3fb0405a5edb38f02ef881b48c36e46e2eacf641b0caf8d99403f595a4be9a6'
+ '1dacae7b7a7d7c20a22b4595c07dbd65fdad134a0d4cf283312ea3bdb5f42589')
+
+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..b7812f256
--- /dev/null
+++ b/community/goocanvas/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56677 2011-10-10 09:46:09Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=goocanvas
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="A cairo canvas widget for GTK+"
+arch=(i686 x86_64 'mips64el')
+url="http://live.gnome.org/GooCanvas"
+options=('!libtool' 'docs')
+license=("LGPL")
+depends=('gtk3')
+makedepends=('gobject-introspection')
+source=(http://ftp.gnome.org/pub/GNOME/sources/goocanvas/2.0/goocanvas-$pkgver.tar.xz)
+sha256sums=('0c3a595a6d2a4fe0f1a1a5243637e66aa1bfbaf6492455bfd0b51e0dec9b1553')
+
+build() {
+ cd $srcdir/goocanvas-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd $srcdir/goocanvas-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/goocanvas1/PKGBUILD b/community/goocanvas1/PKGBUILD
new file mode 100644
index 000000000..f0124333e
--- /dev/null
+++ b/community/goocanvas1/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56150 2011-10-02 11:40:26Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=goocanvas1
+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)
+sha256sums=('1c072ef88567cad241fb4addee26e9bd96741b1503ff736d1c152fa6d865711e')
+
+build() {
+ cd $srcdir/goocanvas-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd $srcdir/goocanvas-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/goocanvasmm/PKGBUILD b/community/goocanvasmm/PKGBUILD
new file mode 100755
index 000000000..5fd36fbb9
--- /dev/null
+++ b/community/goocanvasmm/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Laurent Meunier <laurent@deltalima.net>
+
+pkgname=goocanvasmm
+pkgver=1.90.8
+pkgrel=1
+pkgdesc='C++ wrappers for goocanvas'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://ftp.gnome.org/pub/gnome/sources/goocanvasmm/'
+license=('GPL')
+depends=('goocanvas' 'gtkmm3')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/goocanvasmm/1.90/goocanvasmm-${pkgver}.tar.xz)
+sha256sums=('721649be4f8bbbb4589800c0b973522d2104a95172f9eefd7b93e3bf59ae8721')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --disable-static \
+ --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..d4e346228
--- /dev/null
+++ b/community/google-gadgets/PKGBUILD
@@ -0,0 +1,158 @@
+# $Id: PKGBUILD 58523 2011-11-13 15:42:30Z andrea $
+# 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=4
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ "wifi-types.patch")
+md5sums=('279305553bcbf74f3e3615f6abc36a5e'
+ 'f0df71c60a174e9d629db87b8bd9e102')
+
+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
+
+ patch -p1 <$srcdir/wifi-types.patch
+ ./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/google-gadgets/wifi-types.patch b/community/google-gadgets/wifi-types.patch
new file mode 100644
index 000000000..be9383a61
--- /dev/null
+++ b/community/google-gadgets/wifi-types.patch
@@ -0,0 +1,36 @@
+diff -wbBur google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/network.cc google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/network.cc
+--- google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/network.cc 2009-03-15 04:12:42.000000000 +0000
++++ google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/network.cc 2011-04-08 20:57:16.000000000 +0000
+@@ -23,17 +23,9 @@
+ namespace framework {
+ namespace linux_system {
+
+-#ifdef NM_DEVICE_TYPE_WIFI
+ static const int kDeviceTypeWifi = NM_DEVICE_TYPE_WIFI;
+-#else
+-static const int kDeviceTypeWifi = DEVICE_TYPE_802_11_WIRELESS;
+-#endif
+
+-#ifdef NM_DEVICE_TYPE_ETHERNET
+ static const int kDeviceTypeEthernet = NM_DEVICE_TYPE_ETHERNET;
+-#else
+-static const int kDeviceTypeEthernet = DEVICE_TYPE_802_3_ETHERNET;
+-#endif
+
+ static const int kDeviceTypeUnknown = 0;
+
+diff -wbBur google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/wireless.cc google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/wireless.cc
+--- google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/wireless.cc 2009-12-28 10:39:53.000000000 +0000
++++ google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/wireless.cc 2011-04-08 20:57:39.000000000 +0000
+@@ -77,11 +77,7 @@
+
+ using namespace ggadget::dbus;
+
+-#ifdef NM_DEVICE_TYPE_WIFI
+ static const int kDeviceTypeWifi = NM_DEVICE_TYPE_WIFI;
+-#else
+-static const int kDeviceTypeWifi = DEVICE_TYPE_802_11_WIRELESS;
+-#endif
+
+ // Defined in nm 0.7
+ static const int kDeviceStateActivated = 8;
diff --git a/community/gource/PKGBUILD b/community/gource/PKGBUILD
new file mode 100644
index 000000000..b69c85d59
--- /dev/null
+++ b/community/gource/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55965 2011-09-27 03:33:41Z 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.37
+pkgrel=1
+pkgdesc="software version control visualization"
+license=(GPL3)
+arch=(i686 x86_64 'mips64el')
+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=('9c023429a8a495e6473d4c166788278a')
+
+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/gpac/PKGBUILD b/community/gpac/PKGBUILD
new file mode 100644
index 000000000..080c51871
--- /dev/null
+++ b/community/gpac/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58399 2011-11-12 17:17:21Z ibiru $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gpac
+pkgver=0.4.5
+pkgrel=9
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gpac.sourceforge.net"
+depends=('wxgtk' 'libmad' 'faad2' 'ffmpeg' 'freeglut')
+license=('LGPL')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ libpng14-infopp-null.patch openjpeg14.patch)
+sha1sums=('2ec03c1d7dc3f4d10c0f7b47696cc1e753a56fc8'
+ '00ba08808ec46ef6b8301ede26e500b3449253c1'
+ '95747ca98cdf0efc33ec776764401f5a83818ab5')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ chmod +x configure
+ sed -i 's|--warn-common||' configure
+ sed -i 's#lib64#lib#g' configure
+ patch -p1 -i "${srcdir}/libpng14-infopp-null.patch"
+ patch -p1 -i "${srcdir}/openjpeg14.patch"
+
+ export LDFLAGS=${LDFLAGS/,--as-needed/}
+ ./configure --prefix=/usr --mandir=/usr/share/man --X11-path=/usr --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/gpac/openjpeg14.patch b/community/gpac/openjpeg14.patch
new file mode 100644
index 000000000..68a625eeb
--- /dev/null
+++ b/community/gpac/openjpeg14.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/show_bug.cgi?id=361359
+
+Index: gpac/modules/img_in/jp2_dec.c
+===================================================================
+--- gpac.orig/modules/img_in/jp2_dec.c
++++ gpac/modules/img_in/jp2_dec.c
+@@ -340,9 +340,16 @@ static GF_Err JP2_ProcessData(GF_MediaDe
+ return GF_OK;
+ }
+
++char opj_version_buffer[500];
++
+ static const char *JP2_GetCodecName(GF_BaseDecoder *dec)
+ {
++#ifndef OPENJPEG_VERSION
++ snprintf(opj_version_buffer, sizeof(opj_version_buffer), "OpenJPEG %s", opj_version());
++ return opj_version_buffer;
++#else
+ return "OpenJPEG "OPENJPEG_VERSION ;
++#endif
+ }
+
+
diff --git a/community/gpg-crypter/PKGBUILD b/community/gpg-crypter/PKGBUILD
new file mode 100644
index 000000000..2bd83c169
--- /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' 'mips64el')
+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..6739ade04
--- /dev/null
+++ b/community/gphpedit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 58832 2011-11-18 16:59:44Z 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=2
+pkgdesc="a scintilla/gnome based editor specialized on php-files"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('libgnomeui>=2.18.1-2' 'libgtkhtml>=2.11.0' 'desktop-file-utils' 'libwebkit')
+makedepends=('intltool')
+url="http://www.gphpedit.org/"
+options=('!makeflags')
+install=gphpedit.install
+source=(http://www.gphpedit.org/sites/default/files/gphpedit-$pkgver.tar.gz)
+md5sums=('cc3c5f50704fa0ed3ef3d4ac983db525')
+
+build() {
+ cd ${srcdir}/*$pkgname*
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+ make DESTDIR=$pkgdir install
+ # 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/gphpedit.install b/community/gphpedit/gphpedit.install
new file mode 100644
index 000000000..39bc96919
--- /dev/null
+++ b/community/gphpedit/gphpedit.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/gpicview/PKGBUILD b/community/gpicview/PKGBUILD
new file mode 100644
index 000000000..080e5ba07
--- /dev/null
+++ b/community/gpicview/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 52590 2011-07-26 09:08:13Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=gpicview
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="Picture viewer of the LXDE Desktop"
+arch=('i686' 'x86_64' 'mips64el')
+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=('943da9f4a23541accd5acdd4fb69966f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gprolog/PKGBUILD b/community/gprolog/PKGBUILD
new file mode 100644
index 000000000..badc9b5c5
--- /dev/null
+++ b/community/gprolog/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 58769 2011-11-18 13:54:39Z 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.4.0
+pkgrel=1
+pkgdesc="GNU Prolog"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gprolog.org/"
+depends=('glibc')
+license=('GPL')
+source=(ftp://ftp.gnu.org/gnu/gprolog/gprolog-$pkgver.tar.gz)
+md5sums=('cc944e5637a04a9184c8aa46c947fd16')
+
+build() {
+ cd "$srcdir/gprolog-$pkgver/src"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "$srcdir/gprolog-$pkgver/src"
+ 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
+ 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..592191d4a
--- /dev/null
+++ b/community/gpsbabel/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 58522 2011-11-13 15:40:29Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gpsbabel
+pkgver=1.4.2
+pkgrel=3
+pkgdesc="Reads, writes, and manipulates GPS waypoints in a variety of formats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gpsbabel.org"
+license=('GPL')
+depends=('libusb-compat' 'expat')
+makedepends=('fop' 'qt' 'libxml2' 'libxslt' 'gtk2' 'lcms2')
+optdepends=('qt')
+options=('docs')
+source=("gpsbabel-$pkgver.tar.gz::http://archlinux-stuff.googlecode.com/files/gpsbabel-$pkgver.tar.gz"
+ "gpsbabel.desktop::http://pkgs.fedoraproject.org/gitweb/?p=gpsbabel.git;a=blob_plain;f=gpsbabel.desktop;hb=HEAD")
+md5sums=('76ea9f7852be2e98aa18976c4697ca93'
+ '7bdbd243e29a8831842d31c079f04c45')
+
+build() {
+ cd $srcdir/gpsbabel-$pkgver
+ ./configure --prefix=/usr
+ make
+ make doc
+ (cd gui && qmake && make)
+}
+
+package() {
+ cd $srcdir/gpsbabel-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # GUI
+ install -Dm755 gui/objects/gpsbabelfe-bin ${pkgdir}/usr/bin/gpsbabelfe-bin
+ install -Dm644 gui/images/appicon.png $pkgdir/usr/share/pixmaps/gpsbabel.png
+ install -Dm644 $srcdir/gpsbabel.desktop $pkgdir/usr/share/applications/gpsbabel.desktop
+
+ # 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..3cf91b2a1
--- /dev/null
+++ b/community/gpsdrive/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 59940 2011-12-02 20:59:00Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=gpsdrive
+pkgver=2.11
+pkgrel=11
+pkgdesc="A car (bike, ship, plane) navigation system"
+arch=("i686" "x86_64" 'mips64el')
+url="http://www.gpsdrive.de/"
+license=('GPL2')
+depends=('gtk2' 'gpsd' 'libxml2' 'curl' 'python2' 'boost-libs' 'gdal' 'mapnik' 'postgresql-libs' 'openstreetmap-map-icons-svn'
+ 'perl-date-manip' 'perl-timedate' 'perl-dbi' 'perl-file-slurp' 'perl-www-mechanize' 'perl-libwww' 'perl-uri'
+ 'perl-text-query' 'perl-www-curl' 'perl-xml-parser' 'perl-xml-simple' 'perl-xml-twig' 'perl-xml-writer'
+ ) # already in core ('sqlite3')
+makedepends=('cmake>=2.4.4' 'boost' 'cfitsio')
+install="gpsdrive.install"
+source=("http://www.gpsdrive.de/packages/${pkgname}-${pkgver}.tar.gz"
+ "gpsd-2.96.patch")
+md5sums=('6eeeca8e5c647115bea836d1f8fb6e0c'
+ '5769e12c6d8932fb721212434c64f505')
+
+build() {
+ cd "$srcdir"
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ # fix the mapnik default values
+ sed -i 's|"/usr/lib/mapnik/0.7/input/"|"/usr/lib/mapnik/input/"|' "${srcdir}/gpsdrive-${pkgver}/src/gpsdrive_config.c"
+ sed -i 's|"/usr/share/fonts/truetype/ttf-dejavu/"|"/usr/share/fonts/TTF/"|' "${srcdir}/gpsdrive-${pkgver}/src/gpsdrive_config.c"
+
+ export CFLAGS=-I/usr/include/gdk-pixbuf-2.0/
+ export CPPFLAGS=-I/usr/include/gdk-pixbuf-2.0/
+ export CXXFLAGS=-I/usr/include/gdk-pixbuf-2.0/
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ unset LDFLAGS
+
+ # see DefineOptions.cmake for a list of common options and defaults
+ # cmake -L for a more in-depth listing
+ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="/usr" \
+ -DWITH_SCRIPTS=ON \
+ -DWITH_MAPNIK=ON \
+ -DWITH_POSTGIS=ON \
+ -DWITH_GDAL=ON \
+ -DWITH_BASEMAPS=ON \
+ -DWITH_FRIENDSD=ON \
+ -DWITH_KISMET=ON \
+ -DWITH_NAVIGATION=ON \
+ -DWITH_SPEECH=OFF \
+ -DWITH_DBUS=OFF \
+ -DLIBGPS_OLD=OFF \
+ "$srcdir/gpsdrive-$pkgver"
+ (cd "$srcdir/gpsdrive-$pkgver" && patch -p1 <$srcdir/gpsd-2.96.patch)
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gpsdrive/gpsd-2.96.patch b/community/gpsdrive/gpsd-2.96.patch
new file mode 100644
index 000000000..bc6c7475f
--- /dev/null
+++ b/community/gpsdrive/gpsd-2.96.patch
@@ -0,0 +1,44 @@
+diff -wbBur gpsdrive-2.11/src/gps_handler.c gpsdrive-2.11.my/src/gps_handler.c
+--- gpsdrive-2.11/src/gps_handler.c 2010-06-24 19:53:32.000000000 +0000
++++ gpsdrive-2.11.my/src/gps_handler.c 2011-04-18 13:21:33.000000000 +0000
+@@ -264,7 +264,8 @@
+ #define GPS_TIMER 500
+
+ static gint gps_timeout_source = 0;
+-static struct gps_data_t *gpsdata;
++static struct gps_data_t __gd;
++static struct gps_data_t *gpsdata = &__gd;
+
+ /* SYMBOLS USED IN LIBGPS:
+ *
+@@ -410,9 +411,10 @@
+ */
+ gps_query (gpsdata, "oys\n");
+ #else
+- if (gps_waiting(gpsdata))
++ if (gps_waiting(gpsdata, 1000000))
+ {
+- gps_poll (gpsdata);
++ gps_read (gpsdata);
++ gps_hook_cb(gpsdata, NULL);
+ }
+ #endif
+
+@@ -447,7 +449,7 @@
+ }
+
+ /* try to open connection */
+- gpsdata = gps_open (local_config.gpsd_server, local_config.gpsd_port);
++ gpsdata = gps_open (local_config.gpsd_server, local_config.gpsd_port, gpsdata) ? NULL : &__gd;
+ if (!gpsdata)
+ {
+ g_print ("Can't connect to gps daemon on %s:%s, disabling GPS support!\n",
+@@ -466,7 +468,7 @@
+ gps_sats = g_new (gps_satellite_struct, MAXCHANNELS);
+
+ /* set hook function to handle gps data */
+- gps_set_raw_hook (gpsdata, (gpointer) gps_hook_cb);
++// gps_set_raw_hook (gpsdata, (gpointer) gps_hook_cb);
+
+ #ifndef LIBGPS_OLD
+ /* enable watch mode to get data stream from gpsd */
diff --git a/community/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..c6b8536ca
--- /dev/null
+++ b/community/gpsim/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 53898 2011-08-09 13:35:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: mickael9 <mickael9 at gmail dot com>
+
+pkgname=gpsim
+pkgver=0.26.1
+pkgrel=1
+pkgdesc="A full-featured software simulator for Microchip PIC microcontrollers"
+arch=(i686 x86_64 'mips64el')
+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=('c994c23d2d75056dbefcf5d1d63596d7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gpsmanshp/PKGBUILD b/community/gpsmanshp/PKGBUILD
new file mode 100644
index 000000000..66ee0e9d6
--- /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' 'mips64el')
+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..9930f47ab
--- /dev/null
+++ b/community/gputils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59445 2011-11-24 21:56:56Z ebelanger $
+# Contributor: Johannes Martin <honzor@gmx.net>
+# Contributor: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gputils
+pkgver=0.14.0
+pkgrel=1
+pkgdesc="PIC Programming Utilities"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gputils.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('04780834e30fc50f0bd92cc4c91cf11b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gq/PKGBUILD b/community/gq/PKGBUILD
new file mode 100644
index 000000000..c690cd1c7
--- /dev/null
+++ b/community/gq/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 58750 2011-11-18 13:04:07Z 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' 'gnome-doc-utils')
+arch=('i686' 'x86_64' 'mips64el')
+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
+ 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..cbcc79361
--- /dev/null
+++ b/community/grace/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 46737 2011-05-11 10:00:50Z 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=5
+pkgdesc="2D plotting tool"
+arch=(i686 x86_64 'mips64el')
+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')
+
+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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ cd $pkgdir/usr/share/grace && mv bin lib include ../../
+}
diff --git a/community/grafx2/PKGBUILD b/community/grafx2/PKGBUILD
new file mode 100644
index 000000000..43da08b43
--- /dev/null
+++ b/community/grafx2/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 57828 2011-11-03 10:14:39Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Simon Parzer <simon.parzer@gmail.com>
+pkgname=grafx2
+pkgver=2.3
+pkgrel=2
+pkgdesc="Pixelart-oriented painting program"
+arch=('x86_64' 'i686')
+url="http://code.google.com/p/grafx2/"
+license=('GPL2')
+install=grafx2.install
+depends=('sdl_ttf' 'sdl_image' 'lua' 'desktop-file-utils')
+source=("http://grafx2.googlecode.com/files/$pkgname-$pkgver.1781-src.tgz"
+ "grafx2.desktop")
+md5sums=('916a35c4762e85b4210a1041fbbfd830'
+ '9b3ecb5c2d44b987d65257184f46e6c4')
+
+build() {
+ cd "$srcdir/$pkgname/src"
+
+ msg2 "Compiling..."
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}/src"
+
+ msg2 "Packaging files..."
+ make prefix="/usr" DESTDIR="$pkgdir" install
+ msg2 "Packaging shortcut..."
+ install -Dm644 "$srcdir/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+ msg2 "Packaging documentation..."
+ install -Dm644 "$srcdir/$pkgname/doc/README.txt" \
+ "$pkgdir/usr/share/doc/$pkgname/readme.txt"
+ msg2 "Packaging license..."
+ install -Dm644 "$srcdir/$pkgname/doc/gpl-2.0.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ msg2 "Cleaning up..."
+ rmdir "$pkgdir/usr/share/grafx2/scripts/libs"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/grafx2/grafx2.desktop b/community/grafx2/grafx2.desktop
new file mode 100644
index 000000000..d58bc5ed3
--- /dev/null
+++ b/community/grafx2/grafx2.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+GenericName=GrafX2
+Name=GrafX2
+Comment=Pixelart-oriented painting program
+Exec=grafx2 %U
+TryExec=grafx2
+Icon=grafx2
+Terminal=false
+Type=Application
+Categories=Graphics;2DGraphics;RasterGraphics
+MimeType=image/bmp;image/gif;image/png;image/x-tga;image/tiff
diff --git a/community/grafx2/grafx2.install b/community/grafx2/grafx2.install
new file mode 100644
index 000000000..12589796c
--- /dev/null
+++ b/community/grafx2/grafx2.install
@@ -0,0 +1,16 @@
+pkgname=grafx2
+
+post_upgrade() {
+ gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/grass/PKGBUILD b/community/grass/PKGBUILD
new file mode 100644
index 000000000..827eded8c
--- /dev/null
+++ b/community/grass/PKGBUILD
@@ -0,0 +1,112 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=grass
+pkgver=6.4.1
+pkgrel=4
+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' 'mips64el')
+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'
+ 'wxpython: to enable the GUI')
+options=('!libtool' '!makeflags')
+install='grass.install'
+source=("http://grass.itc.it/grass64/source/grass-${pkgver}.tar.gz"
+ "grass.sh"
+ "grass.conf")
+md5sums=('d8ca83d416b5b0cf2aa9d36c81a77b23'
+ '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
+
+ # install g.html2man which is needed for some extensions
+ # FS#25705 - [grass] g.html2man is not installed into package directory
+ # https://bugs.archlinux.org/task/25705
+ # most likely upstream problem which will be fixed in a version later than 6.4.1
+ cp -r ./tools/g.html2man ${pkgdir}/opt/grass-${pkgver}/tools
+}
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..07e347eb1
--- /dev/null
+++ b/community/grass/grass.install
@@ -0,0 +1,6 @@
+## arg 1: the new package version
+post_install() {
+ echo 'Please relogin for required variables to be set from /etc/profile.d/grass.sh'
+}
+
+# vim:set ts=2 sw=2 et:
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..0e4756809
--- /dev/null
+++ b/community/gri/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 59365 2011-11-23 20:42:48Z andrea $
+# Maintainer:
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: big_gie nbigaouette . at . gmail.com
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=gri
+pkgver=2.12.23
+pkgrel=1
+pkgdesc="A script-based language for scientific graphics programming"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://gri.sourceforge.net/"
+depends=('perl')
+makedepends=('ghostscript' 'gzip' 'imagemagick' 'texlive-bin')
+source=(http://downloads.sourceforge.net/gri/$pkgname-$pkgver.tar.gz)
+install=gri.install
+md5sums=('eabd37f80ac51f7aef83a89234fb6522')
+
+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..578968e39
--- /dev/null
+++ b/community/gri/gri.install
@@ -0,0 +1,18 @@
+infodir=usr/share/info
+filelist=(gri.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/gromacs/PKGBUILD b/community/gromacs/PKGBUILD
new file mode 100644
index 000000000..663fba240
--- /dev/null
+++ b/community/gromacs/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 57441 2011-10-27 20:16:45Z lcarlier $
+# Maintainer: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Ricardo <rikardo.horo@gmail.com>
+
+pkgname=gromacs
+pkgver=4.5.5
+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' 'mips64el')
+depends=('fftw' 'lesstif' 'perl' 'libxml2' 'libsm' 'libx11')
+options=('!libtool')
+source=(ftp://ftp.gromacs.org/pub/gromacs/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6a87e7cdfb25d81afa9fea073eb28468')
+sha1sums=('ce4b4f9a0453dd2ffea72f28ea0bc7bb7a72f479')
+
+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..b57328678
--- /dev/null
+++ b/community/grsync/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 52933 2011-07-30 07:01:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=grsync
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="GTK GUI for rsync"
+arch=('i686' 'x86_64' 'mips64el')
+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=('6364df4a3a7c9ebc25799762e77dc351')
+
+build() {
+ cd $startdir/src/grsync-$pkgver
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make
+ 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..21f8e330a
--- /dev/null
+++ b/community/gsasl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 54453 2011-08-18 15:06:47Z bluewind $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Orivej Desh <smpuj@bk.ru>
+# Maintainer: Orivej Desh <smpuj@bk.ru>
+
+pkgname=gsasl
+pkgver=1.6.1
+pkgrel=3
+pkgdesc="Simple Authentication and Security Layer framework and a few common SASL mechanisms"
+arch=("i686" "x86_64" 'mips64el')
+url="http://josefsson.org/gsasl/"
+license=("GPL")
+depends=('gnutls' 'libidn' 'krb5' 'libgcrypt')
+source=("ftp://ftp.gnu.org/gnu/gsasl/$pkgname-$pkgver.tar.gz")
+md5sums=('7ae813eeb1f90ad52e9a781ac9e17f28')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir/usr/share/info/dir" "$pkgdir/usr/lib/libgsasl.la"
+}
diff --git a/community/gshutdown/PKGBUILD b/community/gshutdown/PKGBUILD
new file mode 100644
index 000000000..0279babbb
--- /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' 'mips64el')
+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..d38635150
--- /dev/null
+++ b/community/gsmartcontrol/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Jelle van der Waa <jelle@vdwaa.nl>
+
+pkgname=gsmartcontrol
+pkgver=0.8.6
+pkgrel=2
+pkgdesc="A graphical user interface for the smartctl hard disk drive health inspection tool."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gsmartcontrol.berlios.de/home/index.php/en/Home"
+license=('GPL3')
+depends=('smartmontools' 'pcre' 'gtkmm' 'libglademm' 'glib2' 'xorg-xmessage')
+optdepends=('gnomesu: for gsmartcontrol-root'
+ 'gksu: for gsmartcontrol-root')
+install=${pkgname}.install
+source=(http://download.berlios.de/gsmartcontrol/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d2ac685e2e73b05f7ba74c93623af739')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ 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..bfa27de75
--- /dev/null
+++ b/community/gsoap/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 59577 2011-11-28 11:48:45Z 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.5
+pkgrel=1
+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' 'mips64el')
+license=('GPL' 'custom')
+depends=('openssl' 'zlib' 'gcc-libs')
+makedepends=('autoconf' 'automake')
+source=(http://prdownloads.sourceforge.net/gsoap2/${pkgname}_${pkgver}.zip
+ LICENSE)
+md5sums=('541dcff86d1c6171cb8540cf51a4cfa8'
+ '27aaa3f5166db94d44044c11a7b2c37b')
+
+build() {
+ cd $srcdir/gsoap-2.8
+ [ -f Makefile ] || CXXFLAGS=-fPIC CFLAGS=-fPIC LDFLAGS=-fPIC ./configure --prefix=/usr
+ make -j1
+}
+
+package() {
+ cd $srcdir/gsoap-2.8
+ 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..155914731
--- /dev/null
+++ b/community/gsql/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58755 2011-11-18 13:09:30Z spupykin $
+# Contributor: Michael Kanis <mkanis@gmx.de>
+
+pkgname=gsql
+pkgver=0.2.2
+pkgrel=3
+pkgdesc="Integrated database development tool for GNOME"
+url="http://gsql.org/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gtk2>=2.12' 'gtksourceview2' 'vte' 'libgnomeui' 'gconf'
+ 'desktop-file-utils' 'libnotify')
+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')
+
+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..b798a12c5
--- /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' 'mips64el')
+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/PKGBUILD b/community/gstreamermm/PKGBUILD
new file mode 100644
index 000000000..fe63cb019
--- /dev/null
+++ b/community/gstreamermm/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 59618 2007-01-01 00:29:08Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=gstreamermm
+pkgver=0.10.10
+pkgrel=1
+pkgdesc="C++ interface for GStreamer"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+changelog=$pkgname.changelog
+source=(http://ftp.gnome.org/pub/GNOME/sources/gstreamermm/0.10/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('f8c31a7d3035d0dada60d27bdd01da04265439364f4469a981ee50d65218d638')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gstreamermm/gstreamermm.changelog b/community/gstreamermm/gstreamermm.changelog
new file mode 100644
index 000000000..245350ee3
--- /dev/null
+++ b/community/gstreamermm/gstreamermm.changelog
@@ -0,0 +1,9 @@
+2010-02-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * gstreamermm 0.10.10-1
+
+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/gsynaptics/PKGBUILD b/community/gsynaptics/PKGBUILD
new file mode 100644
index 000000000..78919e90e
--- /dev/null
+++ b/community/gsynaptics/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 55543 2011-09-14 08:26:19Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gsynaptics
+pkgver=0.9.16
+pkgrel=2
+pkgdesc="A settings tool for Synaptics touchpad driver"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gsynaptics.sourceforge.jp/"
+license=('GPL')
+depends=('libgnomeui' 'synaptics')
+makedepends=('intltool' 'gettext' 'gnome-doc-utils')
+install=$pkgname.install
+source=("http://sourceforge.jp/frs/redir.php?m=iij&f=/${pkgname}/38463/${pkgname}-${pkgver}.tar.gz"
+ do-not-set-zero.dpatch
+ dot-fixes.dpatch
+ build-filename.dpatch)
+md5sums=('571828ddca2f1d9d6ea47e072db1959d'
+ 'd6308d93fd4d04c686ba24422ed99905'
+ '4c35d5d0803296233d50146963a0bcbc'
+ 'd227a70304bef3cc0272b37c5e322463')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/dot-fixes.dpatch
+ patch -p1 -i "${srcdir}"/do-not-set-zero.dpatch
+ patch -p1 -i "${srcdir}"/build-filename.dpatch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gsynaptics/build-filename.dpatch b/community/gsynaptics/build-filename.dpatch
new file mode 100644
index 000000000..404e6fab7
--- /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", NULL);
++ 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..5b505b7b3
--- /dev/null
+++ b/community/gsynaptics/gsynaptics.install
@@ -0,0 +1,12 @@
+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
+}
diff --git a/community/gtk-aurora-engine/PKGBUILD b/community/gtk-aurora-engine/PKGBUILD
new file mode 100644
index 000000000..8ec53e4aa
--- /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' 'mips64el')
+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..254c97094
--- /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' 'mips64el')
+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..2d0470f06
--- /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' 'mips64el')
+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..4af3a9970
--- /dev/null
+++ b/community/gtk-gnutella/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 55800 2011-09-21 05:45:26Z 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.97.1
+pkgrel=1
+pkgdesc="A Gnutella server/client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gtk-gnutella.sourceforge.net/"
+license=('GPL')
+depends=('gtk2')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7ded76ca9892b58b0e9314ee563e4bae')
+sha1sums=('14a4b5fd8c35cbed443e9997e55e44aafba05906')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i '/gnutls_transport_set_lowat(ctx->session, 0);/d' src/core/tls_common.c
+ ./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..9891313ae
--- /dev/null
+++ b/community/gtk-kde4/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 57913 2011-11-04 12:08:54Z 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=2
+pkgdesc='Allows you to change style, icons, font of GTK applications in KDE4.'
+arch=('i686' 'x86_64' 'mips64el')
+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..7cc9ab312
--- /dev/null
+++ b/community/gtk-rezlooks-engine/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 55455 2011-09-13 00:08:05Z ebelanger $
+# Contributor: Javier "Phrodo_00" Aravena <phrodo.00@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtk-rezlooks-engine
+pkgver=0.6
+pkgrel=10
+pkgdesc="Clean looking gtk theme engine based on the cairo-enabled CVS clearlooks engine code."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome-look.org/content/show.php?content=39179"
+license=('GPL')
+depends=('gtk2')
+options=('!libtool')
+source=(http://gnome-look.org/CONTENT/content-files/39179-rezlooks-$pkgver.tar.gz)
+md5sums=('87b768eb372dd5065f9e36bf10245ac7')
+
+build() {
+ cd "${srcdir}/rezlooks-${pkgver}"
+
+ ./configure --prefix=/usr --enable-animation
+ make
+}
+
+package() {
+ cd "${srcdir}/rezlooks-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/themes"
+}
diff --git a/community/gtk-theme-switch2/PKGBUILD b/community/gtk-theme-switch2/PKGBUILD
new file mode 100644
index 000000000..9f4eb22d9
--- /dev/null
+++ b/community/gtk-theme-switch2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 46954 2011-05-13 20:41:12Z andrea $
+# 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' 'mips64el')
+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/community/gtk2+extra/PKGBUILD b/community/gtk2+extra/PKGBUILD
new file mode 100644
index 000000000..f1dcb0925
--- /dev/null
+++ b/community/gtk2+extra/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59120 2011-11-21 11:35:37Z 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 'mips64el')
+url="http://gtkextra.sourceforge.net/"
+depends=('gtk2')
+license=('LGPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/gtkextra/$pkgver/gtk%2Bextra-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('10779394f39d39115fa3fd0f3dea4436'
+ '114c10e7dc14dc78fc38189ee82fa225')
+
+build() {
+ cd $srcdir/gtk+extra-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gtk2+extra/build-fix.patch b/community/gtk2+extra/build-fix.patch
new file mode 100644
index 000000000..fe44f6ad8
--- /dev/null
+++ b/community/gtk2+extra/build-fix.patch
@@ -0,0 +1,85 @@
+diff -ur gtk+extra-2.1.2/gtkextra/gtkextra-marshal.list gtk+extra-2.1.2.my/gtkextra/gtkextra-marshal.list
+--- gtk+extra-2.1.2/gtkextra/gtkextra-marshal.list 2002-06-14 22:36:36.000000000 +0400
++++ gtk+extra-2.1.2.my/gtkextra/gtkextra-marshal.list 2011-11-21 15:30:00.000000000 +0400
+@@ -10,6 +10,7 @@
+ BOOL:BOXED
+ BOOL:INT,INT
+ VOID:INT
++VOID:INT,BOXED
+ VOID:INT,STRING
+ VOID:BOXED
+ VOID:VOID
+diff -ur gtk+extra-2.1.2/gtkextra/gtkitementry.c gtk+extra-2.1.2.my/gtkextra/gtkitementry.c
+--- gtk+extra-2.1.2/gtkextra/gtkitementry.c 2010-03-13 08:49:00.000000000 +0300
++++ gtk+extra-2.1.2.my/gtkextra/gtkitementry.c 2011-11-21 15:25:18.000000000 +0400
+@@ -131,7 +131,6 @@
+ static PangoLayout *gtk_entry_ensure_layout (GtkEntry *entry,
+ gboolean include_preedit);
+ static void gtk_entry_queue_draw (GtkEntry *entry);
+-static void gtk_entry_reset_im_context (GtkEntry *entry);
+ static void gtk_entry_recompute (GtkEntry *entry);
+ static void gtk_entry_get_cursor_locations (GtkEntry *entry,
+ CursorType type,
+@@ -1755,16 +1754,6 @@
+ }
+
+ static void
+-gtk_entry_reset_im_context (GtkEntry *entry)
+-{
+- if (entry->need_im_reset)
+- {
+- entry->need_im_reset = 0;
+- gtk_im_context_reset (entry->im_context);
+- }
+-}
+-
+-static void
+ gtk_entry_get_cursor_locations (GtkEntry *entry,
+ CursorType type,
+ gint *strong_x,
+diff -ur gtk+extra-2.1.2/gtkextra/Makefile.am gtk+extra-2.1.2.my/gtkextra/Makefile.am
+--- gtk+extra-2.1.2/gtkextra/Makefile.am 2005-06-16 02:54:34.000000000 +0400
++++ gtk+extra-2.1.2.my/gtkextra/Makefile.am 2011-11-21 15:25:18.000000000 +0400
+@@ -197,13 +197,13 @@
+ $(libgtkextra_x11_2_0_la_OBJECTS) $(libgtkextra_linux_fb_2_0_la_OBJECTS) $(libgtkextra_win32_2_0_la_OBJECTS): ${gtkextra_built_public_sources} ${gtkextra_built_private_headers}
+
+ $(srcdir)/gtkextra-marshal.h: gtkextra-marshal.list
+- ( @GLIB_GENMARSHAL@ --prefix=gtkextra gtkextra-marshal.list --header > gtkextra-marshal.tmp \
+- && mv gtkextra-marshal.tmp gtkextra-marshal.h ) \
+- || ( rm -f gtkextra-marshal.tmp && exit 1 )
++ ( glib-genmarshal --prefix=gtkextra gtkextra-marshal.list --header > gtkextra-marshal.tmp \
++ && mv gtkextra-marshal.tmp gtkextra-marshal.h ) \
++ || ( rm -f gtkextra-marshal.tmp && exit 1 )
+ $(srcdir)/gtkextra-marshal.c: gtkextra-marshal.h
+- ( @GLIB_GENMARSHAL@ --prefix=gtkextra gtkextra-marshal.list --body > gtkextra-marshal.tmp \
+- && mv gtkextra-marshal.tmp gtkextra-marshal.c ) \
+- || ( rm -f gtkextra-marshal.tmp && exit 1 )
++ ( glib-genmarshal --prefix=gtkextra gtkextra-marshal.list --body > gtkextra-marshal.tmp \
++ && mv gtkextra-marshal.tmp gtkextra-marshal.c ) \
++ || ( rm -f gtkextra-marshal.tmp && exit 1 )
+
+
+ $(srcdir)/gtkextratypebuiltins.h: $(gtkextra_public_h_sources)
+diff -ur gtk+extra-2.1.2/gtkextra/Makefile.in gtk+extra-2.1.2.my/gtkextra/Makefile.in
+--- gtk+extra-2.1.2/gtkextra/Makefile.in 2010-03-21 03:05:56.000000000 +0300
++++ gtk+extra-2.1.2.my/gtkextra/Makefile.in 2011-11-21 15:25:18.000000000 +0400
+@@ -1028,13 +1028,13 @@
+ $(libgtkextra_x11_2_0_la_OBJECTS) $(libgtkextra_linux_fb_2_0_la_OBJECTS) $(libgtkextra_win32_2_0_la_OBJECTS): ${gtkextra_built_public_sources} ${gtkextra_built_private_headers}
+
+ $(srcdir)/gtkextra-marshal.h: gtkextra-marshal.list
+- ( @GLIB_GENMARSHAL@ --prefix=gtkextra gtkextra-marshal.list --header > gtkextra-marshal.tmp \
+- && mv gtkextra-marshal.tmp gtkextra-marshal.h ) \
+- || ( rm -f gtkextra-marshal.tmp && exit 1 )
++ ( glib-genmarshal --prefix=gtkextra gtkextra-marshal.list --header > gtkextra-marshal.tmp \
++ && mv gtkextra-marshal.tmp gtkextra-marshal.h ) \
++ || ( rm -f gtkextra-marshal.tmp && exit 1 )
+ $(srcdir)/gtkextra-marshal.c: gtkextra-marshal.h
+- ( @GLIB_GENMARSHAL@ --prefix=gtkextra gtkextra-marshal.list --body > gtkextra-marshal.tmp \
+- && mv gtkextra-marshal.tmp gtkextra-marshal.c ) \
+- || ( rm -f gtkextra-marshal.tmp && exit 1 )
++ ( glib-genmarshal --prefix=gtkextra gtkextra-marshal.list --body > gtkextra-marshal.tmp \
++ && mv gtkextra-marshal.tmp gtkextra-marshal.c ) \
++ || ( rm -f gtkextra-marshal.tmp && exit 1 )
+
+ $(srcdir)/gtkextratypebuiltins.h: $(gtkextra_public_h_sources)
+ ( cd $(srcdir) && glib-mkenums \
diff --git a/community/gtk2_prefs/PKGBUILD b/community/gtk2_prefs/PKGBUILD
new file mode 100644
index 000000000..a968563a9
--- /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' 'mips64el')
+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..84e71b52a
--- /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' 'mips64el')
+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..327d7ad40
--- /dev/null
+++ b/community/gtk2hs-buildtools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 57325 2011-10-25 20:41:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=gtk2hs-buildtools
+pkgver=0.12.1
+pkgrel=1
+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' 'mips64el')
+makedepends=('ghc' 'alex' 'happy')
+depends=('gmp')
+options=('strip')
+provides=('haskell-gtk2hs-buildtools')
+source=(http://hackage.haskell.org/packages/archive/gtk2hs-buildtools/$pkgver/gtk2hs-buildtools-$pkgver.tar.gz)
+md5sums=('225cbf3736b5ac3053f8c797687c7554')
+
+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/gtkballs/PKGBUILD b/community/gtkballs/PKGBUILD
new file mode 100644
index 000000000..0185aeaa1
--- /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' 'mips64el')
+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..c8b52ad00
--- /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 'mips64el')
+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..ec5a6197f
--- /dev/null
+++ b/community/gtkdialog/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 55992 2011-09-28 11:47:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: dojo <joerg.doll[at]gmx.de>
+
+pkgname=gtkdialog
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="Gtkdialog is a small utility for fast and easy GUI building."
+arch=('i686' 'x86_64' 'mips64el')
+#url="http://linux.pte.hu/~pipas/gtkdialog/"
+url="http://code.google.com/p/gtkdialog/"
+license=("GPL")
+makedepends=('pkgconfig')
+depends=('gtk2' 'libglade')
+install=gtkdialog.install
+options=('zipman')
+source=(http://gtkdialog.googlecode.com/files/gtkdialog-$pkgver.tar.gz)
+md5sums=('a1f0c459a610ac3892342efbec27d93d')
+
+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
+ rm -f $pkgdir/usr/share/info/dir
+ mkdir -p $pkgdir/usr/share/doc/$pkgname
+ cp -a examples $pkgdir/usr/share/doc/$pkgname/examples
+}
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..614e1a4c6
--- /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' 'mips64el')
+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/gtksourceviewmm/PKGBUILD b/community/gtksourceviewmm/PKGBUILD
new file mode 100644
index 000000000..ad2c08025
--- /dev/null
+++ b/community/gtksourceviewmm/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 56144 2011-10-02 10:45:47Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtksourceviewmm
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="provides C++ bindings for gtksourceview library"
+arch=(i686 x86_64)
+url="http://gnome.org"
+license=('LGPL2.1')
+depends=('gtkmm3' 'gtksourceview3')
+options=(!libtool)
+source=("http://download.gnome.org/sources/$pkgname/3.2/$pkgname-$pkgver.tar.xz")
+sha256sums=('9dc0c44f00627e434a36ac7c3a34d9c30ebe45eb6dc682dc733a85dcead2ba66')
+
+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/gtkwave/PKGBUILD b/community/gtkwave/PKGBUILD
new file mode 100644
index 000000000..e363851a6
--- /dev/null
+++ b/community/gtkwave/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58564 2011-11-15 03:42:53Z ebelanger $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+
+pkgname=gtkwave
+pkgver=3.3.28
+pkgrel=1
+pkgdesc='A wave viewer which reads LXT, LXT2, VZT, GHW and VCD/EVCD files'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://gtkwave.sourceforge.net'
+license=('GPL' 'MIT')
+depends=('bzip2' 'xz' 'gtk2')
+makedepends=('gperf')
+install='gtkwave.install'
+source=("http://gtkwave.sourceforge.net/gtkwave-${pkgver}.tar.gz")
+md5sums=('396cc15cfc12801c9ad6af507ee4a0f1')
+
+build() {
+ cd "${srcdir}/gtkwave-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --disable-tcl
+
+ make CFLAGS=-D_LARGEFILE64_SOURCE
+}
+
+package() {
+ cd "${srcdir}/gtkwave-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/gtkwave-${pkgver}/.gtkwaverc" \
+ "${pkgdir}/usr/share/gtkwave/sample.gtkwaverc"
+ install -D -m644 "${srcdir}/gtkwave-${pkgver}/LICENSE.TXT" \
+ "${pkgdir}/usr/share/licenses/gtkwave/LICENSE.TXT"
+ install -D -m644 "${srcdir}/gtkwave-${pkgver}/MIT.TXT" \
+ "${pkgdir}/usr/share/licenses/gtkwave/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..7ebff81e4
--- /dev/null
+++ b/community/gtranslator/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 57477 2011-10-28 12:30:44Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Christer Solskogen (solskogen@carebears.mine.nu)
+
+pkgname=gtranslator
+pkgver=2.90.7
+pkgrel=1
+pkgdesc="An enhanced gettext po file editor for the GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://projects.gnome.org/gtranslator/"
+license=('GPL')
+depends=('desktop-file-utils' 'gdl' 'gettext' 'gtksourceview3' 'gtkspell' 'iso-codes' 'libgda4' 'libpeas' '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/2.90/$pkgname-$pkgver.tar.bz2)
+sha256sums=('55845ad665f5e55265dd017d1c96e41a72c4c5691eb218ba9db6985b66afa556')
+
+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..f78e2aab5
--- /dev/null
+++ b/community/gtranslator/gtranslator.changelog
@@ -0,0 +1,27 @@
+2011-10-28 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * gtranslator 2.90.7-1
+
+2011-08-20 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * gtranslator 2.90.5-1
+
+2011-05-12 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * gtranslator 2.90.3-1
+
+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..390bbf2b0
--- /dev/null
+++ b/community/gtranslator/gtranslator.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
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/gtypist/PKGBUILD b/community/gtypist/PKGBUILD
new file mode 100644
index 000000000..d2be5f0e7
--- /dev/null
+++ b/community/gtypist/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59675 2011-11-29 10:07:33Z 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.9.1
+pkgrel=1
+pkgdesc="universal typing tutor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/gtypist/gtypist.html"
+license=("GPL")
+depends=('ncurses' 'perl')
+makedepends=('emacs')
+install=gtypist.install
+source=(ftp://ftp.gnu.org/gnu/gtypist/$pkgname-$pkgver.tar.gz
+ ncurses.patch)
+md5sums=('8b7e5595fcabd254f85c2e171dcaf4fc'
+ 'ba5e990d948ba5019391094dac890aa6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/ncurses.patch
+ ./configure --prefix=/usr
+ make
+ make prefix=$pkgdir/usr install
+ 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/gtypist/ncurses.patch b/community/gtypist/ncurses.patch
new file mode 100644
index 000000000..c06424623
--- /dev/null
+++ b/community/gtypist/ncurses.patch
@@ -0,0 +1,117 @@
+diff -wbBur gtypist-2.9.1/configure gtypist-2.9.1.my/configure
+--- gtypist-2.9.1/configure 2011-11-29 00:14:11.000000000 +0400
++++ gtypist-2.9.1.my/configure 2011-11-29 13:03:51.000000000 +0400
+@@ -4011,13 +4011,13 @@
+ ALL_LINGUAS="cs de es eu fi fr nl pl ru tr zh_CN zh_TW"
+
+ # Checks for libraries.
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for add_wch in -lncursesw" >&5
+-$as_echo_n "checking for add_wch in -lncursesw... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for add_wch in -lncurses" >&5
++$as_echo_n "checking for add_wch in -lncurses... " >&6; }
+ if ${ac_cv_lib_ncursesw_add_wch+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lncursesw $LIBS"
++LIBS="-lncurses $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -4464,7 +4464,7 @@
+ done
+
+
+-ac_fn_c_check_header_mongrel "$LINENO" "ncursesw/ncurses.h" "ac_cv_header_ncursesw_ncurses_h" "$ac_includes_default"
++ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncursesw_ncurses_h" "$ac_includes_default"
+ if test "x$ac_cv_header_ncursesw_ncurses_h" = xyes; then :
+ HAVE_NCURSESW_H=1
+ fi
+@@ -4473,7 +4473,7 @@
+
+ # sanity check for libncursesw:
+ if test -n "$HAVE_NCURSESW_H" -a -n "$HAVE_LIBNCURSESW"; then
+- LIBS="-lncursesw $LIBS"
++ LIBS="-lncurses $LIBS"
+ else
+ echo -e "Error: both library and header files for the ncursesw library\n"\
+ "are required to build this package. See INSTALL file for"\
+diff -wbBur gtypist-2.9.1/configure.ac gtypist-2.9.1.my/configure.ac
+--- gtypist-2.9.1/configure.ac 2011-11-21 03:27:02.000000000 +0400
++++ gtypist-2.9.1.my/configure.ac 2011-11-29 13:02:53.000000000 +0400
+@@ -21,13 +21,13 @@
+ ALL_LINGUAS="cs de es eu fi fr nl pl ru tr zh_CN zh_TW"
+
+ # Checks for libraries.
+-AC_CHECK_LIB(ncursesw, add_wch, HAVE_LIBNCURSESW=1)
++AC_CHECK_LIB(ncurses, add_wch, HAVE_LIBNCURSESW=1)
+
+ # Checks for header files.
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS([unistd.h alloca.h argz.h errno.h fcntl.h langinfo.h libintl.h limits.h locale.h malloc.h stddef.h stdio_ext.h stdlib.h string.h strings.h sys/param.h unistd.h])
+
+-AC_CHECK_HEADER(ncursesw/ncurses.h, HAVE_NCURSESW_H=1)
++AC_CHECK_HEADER(ncurses.h, HAVE_NCURSESW_H=1)
+
+ # sanity check for libncursesw:
+ if test -n "$HAVE_NCURSESW_H" -a -n "$HAVE_LIBNCURSESW"; then
+diff -wbBur gtypist-2.9.1/src/cursmenu.c gtypist-2.9.1.my/src/cursmenu.c
+--- gtypist-2.9.1/src/cursmenu.c 2011-11-01 04:13:02.000000000 +0400
++++ gtypist-2.9.1.my/src/cursmenu.c 2011-11-29 13:04:15.000000000 +0400
+@@ -24,7 +24,7 @@
+ #ifdef HAVE_PDCURSES
+ #include <curses.h>
+ #else
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+ #endif
+
+ #include "error.h"
+diff -wbBur gtypist-2.9.1/src/error.c gtypist-2.9.1.my/src/error.c
+--- gtypist-2.9.1/src/error.c 2011-11-01 04:13:02.000000000 +0400
++++ gtypist-2.9.1.my/src/error.c 2011-11-29 13:04:15.000000000 +0400
+@@ -25,7 +25,7 @@
+ #ifdef HAVE_PDCURSES
+ #include <curses.h>
+ #else
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+ #endif
+
+ #include <stdlib.h>
+diff -wbBur gtypist-2.9.1/src/gtypist.c gtypist-2.9.1.my/src/gtypist.c
+--- gtypist-2.9.1/src/gtypist.c 2011-11-22 17:31:25.000000000 +0400
++++ gtypist-2.9.1.my/src/gtypist.c 2011-11-29 13:04:15.000000000 +0400
+@@ -31,7 +31,7 @@
+ #ifdef HAVE_PDCURSES
+ #include <curses.h>
+ #else
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+ #endif
+
+ #include <time.h>
+diff -wbBur gtypist-2.9.1/src/script.c gtypist-2.9.1.my/src/script.c
+--- gtypist-2.9.1/src/script.c 2011-11-28 19:39:48.000000000 +0400
++++ gtypist-2.9.1.my/src/script.c 2011-11-29 13:04:15.000000000 +0400
+@@ -24,7 +24,7 @@
+ #ifdef HAVE_PDCURSES
+ #include <curses.h>
+ #else
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+ #endif
+
+ #include "error.h"
+diff -wbBur gtypist-2.9.1/src/utf8.c gtypist-2.9.1.my/src/utf8.c
+--- gtypist-2.9.1/src/utf8.c 2011-11-28 19:39:19.000000000 +0400
++++ gtypist-2.9.1.my/src/utf8.c 2011-11-29 13:04:15.000000000 +0400
+@@ -23,7 +23,7 @@
+ #ifdef HAVE_PDCURSES
+ #include <curses.h>
+ #else
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+ #endif
+
+ #include <stdlib.h>
diff --git a/community/guake/PKGBUILD b/community/guake/PKGBUILD
new file mode 100644
index 000000000..91e7a7333
--- /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' 'mips64el')
+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..fe5467a56
--- /dev/null
+++ b/community/guichan/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 57204 2011-10-23 23:29:35Z andrea $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Bjørn Lindeijer <bjorn@lindeijer.nl>
+
+pkgname=guichan
+pkgver=0.8.2
+pkgrel=2
+pkgdesc="A portable C++ GUI library designed for games using Allegro, SDL and/or OpenGL."
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+
+ # Install the license, as required for BSD
+ install -m644 -D COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/guifications/PKGBUILD b/community/guifications/PKGBUILD
new file mode 100644
index 000000000..94a0683b9
--- /dev/null
+++ b/community/guifications/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 58837 2011-11-18 17:38:20Z jelle $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Link Dupont <link@.subpop.net>
+
+pkgname=guifications
+pkgver=2.16
+pkgrel=3
+pkgdesc="A set of GUI popup notifications for pidgin"
+arch=(i686 x86_64 'mips64el')
+url="http://plugins.guifications.org/trac/wiki/Guifications"
+license=("GPL")
+depends=('pidgin')
+makedepends=('perlxml')
+options=('!libtool')
+source=("https://www.guifications.org/attachments/download/145/pidgin-guifications-2.16.tar.gz")
+md5sums=('43fd9022160f15b4b262c4662ba62fc9')
+
+build() {
+ cd "${srcdir}/pidgin-${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-deprecated
+ make
+}
+package()
+{
+ cd "${srcdir}/pidgin-${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gummi/PKGBUILD b/community/gummi/PKGBUILD
new file mode 100644
index 000000000..e62b110a6
--- /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.6.1
+pkgrel=1
+pkgdesc='Simple LaTex editor for GTK users'
+arch=('i686' 'x86_64' 'mips64el')
+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/217/gummi-0.6.1.tar.gz")
+md5sums=('f9a257a4cec208642028ccde6b6514e0')
+
+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..db3dee6f6
--- /dev/null
+++ b/community/gwenhywfar/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 57282 2011-10-25 09:59:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=gwenhywfar
+pkgver=4.3.0
+pkgrel=1
+pkgdesc="OS abstraction functions for various projects"
+arch=(i686 x86_64 'mips64el')
+url="http://www.aquamaniac.de"
+options=('!libtool')
+license=("LGPL")
+depends=('openssl' 'gnutls' 'libgcrypt')
+makedepends=('gtk2' 'qt')
+optdepends=('gtk2' 'qt')
+source=("gwenhywfar-$pkgver.tar.gz::http://www2.aquamaniac.de/sites/download/download.php?package=01&release=64&file=01&dummy=gwenhywfar-$pkgver.tar.gz")
+md5sums=('6c3647c5a9065d0126b0e2b77752527b')
+
+build() {
+ pacman -Q gwenhywfar && return 1
+ cd $srcdir/gwenhywfar-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-ssl
+ sed -i 's|gnutls_transport_set_lowat||g' src/sio/syncio_tls.c
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gxmessage/PKGBUILD b/community/gxmessage/PKGBUILD
new file mode 100644
index 000000000..4c964485f
--- /dev/null
+++ b/community/gxmessage/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58826 2011-11-18 16:48:21Z 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' 'mips64el')
+url="http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage"
+license=('GPL')
+depends=('gtk2' 'desktop-file-utils')
+makedepends=('pkgconfig' 'intltool')
+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
+ make
+ make DESTDIR="$pkgdir" install
+ 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/hacburn/PKGBUILD b/community/hacburn/PKGBUILD
new file mode 100644
index 000000000..42d7a1eb0
--- /dev/null
+++ b/community/hacburn/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 55602 2011-09-14 23:25:07Z dreisner $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+pkgname=hacburn
+pkgver=0.3.5
+pkgrel=4
+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' 'mips64el')
+url="http://hacburn.sourceforge.net/"
+license=('GPL')
+depends=('gtk2-perl' 'glib-perl' 'cdrkit' '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/haddock/PKGBUILD b/community/haddock/PKGBUILD
new file mode 100644
index 000000000..428053719
--- /dev/null
+++ b/community/haddock/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 59136 2011-11-21 12:20:52Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+pkgname=haddock
+pkgver=2.9.2
+pkgrel=4
+pkgdesc="Tool for generating documentation for Haskell libraries"
+url="http://hackage.haskell.org/package/$pkgname"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('alex' 'happy')
+depends=('ghc' 'haskell-mtl' 'haskell-xhtml>=3000.2' 'haskell-ghc-paths')
+options=(strip)
+install=haddock.install
+source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz")
+md5sums=('04928e132827a1da20ace52babb43e47')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ #sed -i 's:ghc >= 7.2 && < 7.4:ghc:' haddock.cabal
+ 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 -Dm744 register.sh "$pkgdir/usr/share/haskell/$pkgname/register.sh"
+ install -m744 unregister.sh "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
+ install -dm755 "$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 -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ rm -f "$pkgdir/usr/share/doc/$pkgname/LICENSE"
+ mv "$pkgdir/usr/bin/haddock" "$pkgdir/usr/bin/haddock-cabal"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/haddock/haddock.install b/community/haddock/haddock.install
new file mode 100644
index 000000000..24e27a074
--- /dev/null
+++ b/community/haddock/haddock.install
@@ -0,0 +1,25 @@
+pkgname=haddock
+HS_DIR=usr/share/haskell/haddock
+
+post_upgrade() {
+ ${HS_DIR}/register.sh &> /dev/null
+ post_remove
+}
+
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index) &> /dev/null
+}
+
+pre_remove() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+}
+
+post_install() {
+ post_upgrade
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/handbrake/PKGBUILD b/community/handbrake/PKGBUILD
new file mode 100644
index 000000000..66b08dec0
--- /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' 'mips64el')
+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/hashcash/PKGBUILD b/community/hashcash/PKGBUILD
new file mode 100644
index 000000000..24ba4a3bf
--- /dev/null
+++ b/community/hashcash/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 58693 2011-11-17 15:59:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=hashcash
+pkgver=1.22
+pkgrel=2
+pkgdesc="a denial-of-service counter measure tool for email/spam."
+arch=('i686' 'x86_64' 'mips64el')
+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
+ else
+ make x86-openssl
+ 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-binary/PKGBUILD b/community/haskell-binary/PKGBUILD
new file mode 100644
index 000000000..fd76ca872
--- /dev/null
+++ b/community/haskell-binary/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+pkgname=haskell-binary
+pkgver=0.5.0.2
+pkgrel=8
+pkgdesc="Binary serialisation for Haskell values using lazy ByteStrings"
+url="http://hackage.haskell.org/package/binary"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh)
+options=('strip')
+source=("http://hackage.haskell.org/packages/archive/binary/$pkgver/binary-$pkgver.tar.gz")
+install=haskell-binary.install
+md5sums=('6bf8f3d1441602c9ab09a75e3bd6e926')
+
+build() {
+ cd "$srcdir/binary-$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/binary-$pkgver"
+
+ install -Dm 744 register.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/register.sh"
+ install -m 744 unregister.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
+ install -dm 755 "$pkgdir/usr/share/doc/ghc/html/libraries"
+ ln -s "/usr/share/doc/$pkgname/html" \
+ "$pkgdir/usr/share/doc/ghc/html/libraries/binary"
+ runhaskell Setup copy --destdir="$pkgdir"
+ install -Dm 644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ rm -f "$pkgdir/usr/share/doc/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/haskell-binary/haskell-binary.install b/community/haskell-binary/haskell-binary.install
new file mode 100644
index 000000000..0084ebef8
--- /dev/null
+++ b/community/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/community/haskell-bytestring-show/PKGBUILD b/community/haskell-bytestring-show/PKGBUILD
new file mode 100644
index 000000000..2ee9c0cb4
--- /dev/null
+++ b/community/haskell-bytestring-show/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=haskell-bytestring-show
+pkgver=0.3.5
+pkgrel=1
+pkgdesc="Efficient conversion of values into readable byte strings."
+url="http://code.haskell.org/~dolio/"
+license=("BSD3")
+arch=('i686' 'x86_64')
+makedepends=()
+depends=("ghc=7.0.3"
+ "haskell-array=0.3.0.2"
+ "haskell-binary=0.5.0.2"
+ "haskell-bytestring=0.9.1.10"
+ "haskell-containers=0.4.0.0")
+options=('strip')
+install="${pkgname}.install"
+source=("http://hackage.haskell.org/packages/archive/bytestring-show/${pkgver}/bytestring-show-${pkgver}.tar.gz")
+md5sums=('934edba94aeceef6e9fc1b174d4f94ea')
+
+build() {
+ cd ${srcdir}/bytestring-show-${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}/bytestring-show-${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/bytestring-show
+ 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-bytestring-show/haskell-bytestring-show.install b/community/haskell-bytestring-show/haskell-bytestring-show.install
new file mode 100644
index 000000000..335fc37cd
--- /dev/null
+++ b/community/haskell-bytestring-show/haskell-bytestring-show.install
@@ -0,0 +1,24 @@
+pkgname=haskell-bytestring-show
+HS_DIR=usr/share/haskell/${pkgname}
+
+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-cairo/PKGBUILD b/community/haskell-cairo/PKGBUILD
new file mode 100644
index 000000000..4d58b76ea
--- /dev/null
+++ b/community/haskell-cairo/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58942 2011-11-20 18:00:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=haskell-cairo
+pkgver=0.12.2
+pkgrel=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' 'cairo' 'haskell-mtl')
+makedepends=("gtk2hs-buildtools")
+options=('strip')
+conflicts=('gtk2hs-cairo')
+provides=('gtk2hs-cairo')
+replaces=('gtk2hs-cairo')
+install=gtk2hs-cairo.install
+source=(http://hackage.haskell.org/packages/archive/cairo/$pkgver/cairo-$pkgver.tar.gz)
+md5sums=('b3583136fe84d25cd9d4f7bda3c3db0c')
+
+build() {
+ cd ${srcdir}/cairo-$pkgver
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/haskell-cairo \
+ --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() {
+ _ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc=${_ghcver}" 'cairo' 'haskell-mtl=2.0.1.0')
+
+ cd ${srcdir}/cairo-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-cairo/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-cairo/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/haskell-cairo/html ${pkgdir}/usr/share/doc/ghc/html/libraries/cairo
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/haskell-cairo/gtk2hs-cairo.install b/community/haskell-cairo/gtk2hs-cairo.install
new file mode 100644
index 000000000..4ec5096b6
--- /dev/null
+++ b/community/haskell-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/haskell-dataenc/PKGBUILD b/community/haskell-dataenc/PKGBUILD
new file mode 100644
index 000000000..7ea26e610
--- /dev/null
+++ b/community/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.2
+pkgdesc="Data encoding library"
+url="http://hackage.haskell.org/package/dataenc"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-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/community/haskell-dataenc/haskell-dataenc.install b/community/haskell-dataenc/haskell-dataenc.install
new file mode 100644
index 000000000..9c1bbff01
--- /dev/null
+++ b/community/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/community/haskell-dbus/PKGBUILD b/community/haskell-dbus/PKGBUILD
new file mode 100644
index 000000000..0d02869ec
--- /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=1
+pkgdesc="DBus bindings"
+url="http://hackage.haskell.org/package/DBus"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3' '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-ghc-paths/PKGBUILD b/community/haskell-ghc-paths/PKGBUILD
new file mode 100644
index 000000000..d66585d8c
--- /dev/null
+++ b/community/haskell-ghc-paths/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 58269 2011-11-09 16:24:41Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+pkgname=haskell-ghc-paths
+pkgver=0.1.0.8
+pkgrel=5
+pkgdesc="Knowledge of GHC's installation directories"
+url="http://hackage.haskell.org/package/ghc-paths"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=()
+depends=(ghc=7.0.3-2)
+options=('strip')
+source=("http://hackage.haskell.org/packages/archive/ghc-paths/$pkgver/ghc-paths-$pkgver.tar.gz")
+install=haskell-ghc-paths.install
+md5sums=('d2b23dc563888e380588501d2ce1d82b')
+
+build() {
+ cd "$srcdir/ghc-paths-$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/ghc-paths-$pkgver"
+
+ install -Dm 744 register.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/register.sh"
+ install -m 744 unregister.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
+ install -dm 755 "$pkgdir/usr/share/doc/ghc/html/libraries"
+ ln -s "/usr/share/doc/$pkgname/html" \
+ "$pkgdir/usr/share/doc/ghc/html/libraries/ghc-paths"
+ runhaskell Setup copy --destdir="$pkgdir"
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ rm -f "$pkgdir/usr/share/doc/$pkgname/LICENSE"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/haskell-ghc-paths/haskell-ghc-paths.install b/community/haskell-ghc-paths/haskell-ghc-paths.install
new file mode 100644
index 000000000..4fd2c6c56
--- /dev/null
+++ b/community/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/community/haskell-glib/PKGBUILD b/community/haskell-glib/PKGBUILD
new file mode 100644
index 000000000..7adc33eaf
--- /dev/null
+++ b/community/haskell-glib/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58944 2011-11-20 18:01:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=haskell-glib
+pkgver=0.12.2
+pkgrel=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' 'glib2')
+makedepends=("gtk2hs-buildtools")
+options=('strip')
+install=gtk2hs-glib.install
+provides=('gtk2hs-glib')
+replaces=('gtk2hs-glib')
+conflicts=('gtk2hs-glib')
+source=(http://hackage.haskell.org/packages/archive/glib/$pkgver/glib-$pkgver.tar.gz)
+md5sums=('5d8a04be9a975fb70c6508f95aeb3265')
+
+build() {
+ cd ${srcdir}/glib-$pkgver
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/haskell-glib \
+ --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() {
+ _ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc=${_ghcver}" "glib2")
+
+ cd ${srcdir}/glib-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-glib/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-glib/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/haskell-glib/html ${pkgdir}/usr/share/doc/ghc/html/libraries/glib
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/haskell-glib/gtk2hs-glib.install b/community/haskell-glib/gtk2hs-glib.install
new file mode 100644
index 000000000..24025f5d8
--- /dev/null
+++ b/community/haskell-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/haskell-gtk/PKGBUILD b/community/haskell-gtk/PKGBUILD
new file mode 100644
index 000000000..0a5bb037d
--- /dev/null
+++ b/community/haskell-gtk/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58946 2011-11-20 18:02:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=haskell-gtk
+pkgver=0.12.2
+pkgrel=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' 'gtk2' "haskell-pango=$pkgver" 'haskell-mtl=2.0.1.0')
+makedepends=("gtk2hs-buildtools")
+provides=('gtk2hs-gtk')
+replaces=('gtk2hs-gtk')
+conflicts=('gtk2hs-gtk')
+options=('strip')
+install=gtk2hs-gtk.install
+source=(http://hackage.haskell.org/packages/archive/gtk/$pkgver/gtk-$pkgver.tar.gz)
+md5sums=('a80d6f2ab90c673059270f2dd83c4686')
+
+build() {
+ cd ${srcdir}/gtk-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/haskell-gtk \
+ --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() {
+ _ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc=${_ghcver}" 'gtk2' "haskell-pango=$pkgver" 'haskell-mtl=2.0.1.0')
+
+ cd ${srcdir}/gtk-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-gtk/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-gtk/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/haskell-gtk/html ${pkgdir}/usr/share/doc/ghc/html/libraries/gtk2hs-gtk
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/haskell-gtk/gtk2hs-gtk.install b/community/haskell-gtk/gtk2hs-gtk.install
new file mode 100644
index 000000000..7ed674b78
--- /dev/null
+++ b/community/haskell-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/haskell-haskeline/PKGBUILD b/community/haskell-haskeline/PKGBUILD
new file mode 100644
index 000000000..f5759bb83
--- /dev/null
+++ b/community/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.2
+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' 'mips64el')
+depends=('ghc=7.0.3-2' sh 'haskell-utf8-string=0.3.6-7.2' 'haskell-mtl=2.0.1.0-3.1' '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/community/haskell-haskeline/haskell-haskeline.install b/community/haskell-haskeline/haskell-haskeline.install
new file mode 100644
index 000000000..27cb4a093
--- /dev/null
+++ b/community/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/community/haskell-hslogger/PKGBUILD b/community/haskell-hslogger/PKGBUILD
new file mode 100644
index 000000000..ad7e5aaa5
--- /dev/null
+++ b/community/haskell-hslogger/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 57050 2011-10-19 10:31:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+
+_hkgname=hslogger
+pkgname=haskell-hslogger
+pkgver=1.1.5
+pkgrel=1
+pkgdesc="Versatile logging framework"
+url="http://hackage.haskell.org/package/hslogger"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc' 'haskell-mtl=2.0.1.0' 'haskell-network=2.3.0.2')
+options=('strip')
+install=${pkgname}.install
+source=(http://hackage.haskell.org/packages/archive/hslogger/${pkgver}/hslogger-${pkgver}.tar.gz)
+md5sums=('cd3dfd6f88176bd53b333ea29130a857')
+
+build() {
+ cd ${srcdir}/hslogger-${pkgver}
+ runhaskell Setup configure -p --prefix=/usr --docdir=/usr/share/doc/${pkgname} -O \
+ --enable-split-objs --enable-shared --libsubdir=\$compiler/site-local/\$pkgid \
+ --enable-library-profiling
+ 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() {
+ _ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc=${_ghcver}" 'haskell-mtl=2.0.1.0' 'haskell-network=2.3.0.2')
+
+ cd ${srcdir}/hslogger-${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/hslogger
+ 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-mmap/PKGBUILD b/community/haskell-mmap/PKGBUILD
new file mode 100644
index 000000000..3848c500b
--- /dev/null
+++ b/community/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.2
+pkgdesc="Memory mapped files for POSIX and Windows"
+url="http://hackage.haskell.org/package/mmap"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-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/community/haskell-mmap/haskell-mmap.install b/community/haskell-mmap/haskell-mmap.install
new file mode 100644
index 000000000..68fe74f4e
--- /dev/null
+++ b/community/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/community/haskell-pango/PKGBUILD b/community/haskell-pango/PKGBUILD
new file mode 100644
index 000000000..def9c2c71
--- /dev/null
+++ b/community/haskell-pango/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58948 2011-11-20 18:06:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=haskell-pango
+pkgver=0.12.2
+pkgrel=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' 'pango' 'haskell-glib' 'haskell-cairo')
+makedepends=("gtk2hs-buildtools")
+provides=('gtk2hs-pango')
+replaces=('gtk2hs-pango')
+conflicts=('gtk2hs-pango')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/pango/${pkgver}/pango-${pkgver}.tar.gz)
+install=gtk2hs-pango.install
+md5sums=('301efd2d2348698ce8d586ee14c36e2b')
+
+build() {
+ cd ${srcdir}/pango-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/haskell-pango \
+ --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() {
+ _ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc=${_ghcver}" 'pango' 'haskell-glib' 'haskell-cairo')
+
+ cd ${srcdir}/pango-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-pango/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-pango/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/haskell-pango/html ${pkgdir}/usr/share/doc/ghc/html/libraries/pango
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/haskell-pango/gtk2hs-pango.install b/community/haskell-pango/gtk2hs-pango.install
new file mode 100644
index 000000000..f2be2100f
--- /dev/null
+++ b/community/haskell-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/haskell-tar/PKGBUILD b/community/haskell-tar/PKGBUILD
new file mode 100644
index 000000000..3dd8401a0
--- /dev/null
+++ b/community/haskell-tar/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 58293 2011-11-10 12:03:04Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+pkgname=haskell-tar
+pkgver=0.3.1.0
+pkgrel=5
+pkgdesc="Reading, writing and manipulating \".tar\" archive files."
+url="http://hackage.haskell.org/package/tar"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-2' sh)
+options=('strip')
+source=("http://hackage.haskell.org/packages/archive/tar/$pkgver/tar-$pkgver.tar.gz")
+install=haskell-tar.install
+md5sums=('10b54856495f9ef0a42aa270085c7d5e')
+
+build() {
+ cd "$srcdir/tar-$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/tar-$pkgver"
+
+ install -Dm 744 register.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/register.sh"
+ install -m 744 unregister.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
+ install -dm 755 "$pkgdir/usr/share/doc/ghc/html/libraries"
+ ln -s "/usr/share/doc/$pkgname/html" \
+ "$pkgdir/usr/share/doc/ghc/html/libraries/tar"
+ runhaskell Setup copy --destdir="$pkgdir"
+ install -Dm 644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ rm -f "$pkgdir/usr/share/doc/$pkgname/LICENSE"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/haskell-tar/haskell-tar.install b/community/haskell-tar/haskell-tar.install
new file mode 100644
index 000000000..7e0383621
--- /dev/null
+++ b/community/haskell-tar/haskell-tar.install
@@ -0,0 +1,24 @@
+HS_DIR=usr/share/haskell/haskell-tar
+
+post_install() {
+ ${HS_DIR}/register.sh
+ post_remove
+}
+
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ pre_upgrade
+}
+
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/haskell-terminfo/PKGBUILD b/community/haskell-terminfo/PKGBUILD
new file mode 100644
index 000000000..3ae8d8635
--- /dev/null
+++ b/community/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.2
+pkgdesc="Haskell bindings to the terminfo library."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-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/community/haskell-terminfo/haskell-terminfo.install b/community/haskell-terminfo/haskell-terminfo.install
new file mode 100644
index 000000000..40d39f42b
--- /dev/null
+++ b/community/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/community/haskell-utf8-string/PKGBUILD b/community/haskell-utf8-string/PKGBUILD
new file mode 100644
index 000000000..e92e71f0a
--- /dev/null
+++ b/community/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.2
+pkgdesc="Support for reading and writing UTF8 Strings"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-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/community/haskell-utf8-string/haskell-utf8-string.install b/community/haskell-utf8-string/haskell-utf8-string.install
new file mode 100644
index 000000000..0f64366b2
--- /dev/null
+++ b/community/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/community/haskell-x11-xft/PKGBUILD b/community/haskell-x11-xft/PKGBUILD
new file mode 100644
index 000000000..4a35ea0b3
--- /dev/null
+++ b/community/haskell-x11-xft/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 60408 2011-12-13 13:21:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+_hkgname=X11-xft
+pkgname=haskell-x11-xft
+pkgver=0.3.1
+pkgrel=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' 'mips64el')
+depends=('ghc=7.0.3-2' 'haskell-x11=1.5.0.1' 'haskell-utf8-string=0.3.6-7.2' 'libxft')
+options=('strip')
+install=haskell-x11-xft.install
+source=(http://hackage.haskell.org/packages/archive/X11-xft/$pkgver/X11-xft-$pkgver.tar.gz)
+md5sums=('ad885150a59f63de328e73abe5ffc79e')
+
+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..60a60b930
--- /dev/null
+++ b/community/haskell-x11/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 60398 2011-12-13 10:28:38Z spupykin $
+# 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.1
+pkgrel=1
+pkgdesc="A Haskell binding to the X11 graphics library."
+arch=(i686 x86_64 'mips64el')
+url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11"
+license=('custom:BSD3')
+options=('strip')
+depends=("ghc=7.0.3-2" "haskell-syb=0.3-2.1" 'libx11' 'libxinerama')
+conflicts=(haskell-x11-extras)
+install=hsmod.install
+source=(http://hackage.haskell.org/packages/archive/X11/$pkgver/X11-$pkgver.tar.gz)
+md5sums=('7d69b204f773a0335828ced0e1e069f2')
+
+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..564c9888f
--- /dev/null
+++ b/community/hatari/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55846 2011-09-23 18:34:08Z lcarlier $
+# Maintainer: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=hatari
+pkgver=1.5.0
+pkgrel=1
+pkgdesc='An Atari ST and STE emulator'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://hatari.sourceforge.net/'
+license=('GPL')
+depends=('sdl' 'libpng')
+makedepends=('cmake')
+source=("http://download.berlios.de/hatari/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('16277cff73ec3a342b87b7b7ea3932f4')
+
+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..a3f53d04f
--- /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' 'mips64el')
+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..18ff0d9c4
--- /dev/null
+++ b/community/hedgewars/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 58974 2011-11-20 18:15:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=hedgewars
+pkgver=0.9.17
+pkgrel=1
+pkgdesc="Free Worms-like turn based strategy game"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'haskell-bytestring-show' 'haskell-deepseq')
+source=(http://download.gna.org/hedgewars/hedgewars-src-$pkgver.tar.bz2
+ hedgewars.desktop
+ hedgewars.png)
+md5sums=('77c0bc4bc664604adbba67fab606d8f1'
+ '48c66a3204d4fa0a69e9aa46f7c31e0c'
+ 'eeb14d50df39063549ac5eca9dbc65d1')
+
+build() {
+ cd $srcdir/$pkgname-src-$pkgver
+# sed -i 's|.*misc/liblua.*||' CMakeLists.txt
+ 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
+}
+
+package() {
+ cd $srcdir/$pkgname-src-$pkgver
+ 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..5361fcfd9
--- /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 'mips64el')
+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..31a4276db
--- /dev/null
+++ b/community/hex-a-hop/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 58758 2011-11-18 13:12:19Z 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' 'mips64el')
+url='http://hexahop.sourceforge.net/'
+license=('GPL')
+depends=('sdl_mixer' 'sdl_ttf' 'gcc-libs')
+makedepends=()
+options=(force)
+source=("http://downloads.sourceforge.net/project/hexahop/$pkgver/hex-a-hop-$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..2f29fb30d
--- /dev/null
+++ b/community/highlight/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 56750 2011-10-11 20:34:16Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: Jan Fader <jan.fader@web.de>
+pkgbase=highlight
+pkgname=(highlight highlight-gui)
+pkgver=3.6
+pkgrel=1
+url="http://www.andre-simon.de/doku/highlight/highlight.html"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=(qt lua boost)
+source=(http://www.andre-simon.de/zip/$pkgname-$pkgver.tar.bz2)
+md5sums=('b23093dba7c44a7628ee5c97e68c9941')
+
+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..1eca6b521
--- /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' 'mips64el')
+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..8a9458dd2
--- /dev/null
+++ b/community/hostapd/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 48888 2011-06-07 11:05:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+_madwifiver=0.9.4.4133
+pkgname=hostapd
+pkgver=0.7.3
+pkgrel=5
+pkgdesc="daemon for wireless software access points"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'etc/hostapd/hlr_auc_gw.milenage_db'
+ 'etc/hostapd/hostapd.accept'
+ 'etc/hostapd/hostapd.deny'
+ 'etc/hostapd/hostapd.eap_user'
+ 'etc/hostapd/hostapd.radius_clients'
+ 'etc/hostapd/hostapd.sim_db'
+ 'etc/hostapd/hostapd.vlan'
+ 'etc/hostapd/hostapd.wpa_psk'
+ 'etc/hostapd/wired.conf')
+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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/hostapd
+ 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/
+ sed -i 's#/etc/hostapd#/etc/hostapd/hostapd#' $pkgdir/etc/hostapd/hostapd.conf
+}
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..801187e71
--- /dev/null
+++ b/community/hostapd/hostapd.install
@@ -0,0 +1,20 @@
+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..7c9e8e04e
--- /dev/null
+++ b/community/hping/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57877 2011-11-04 07:45:07Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+
+pkgname=hping
+pkgver=3.0.0
+pkgrel=2
+pkgdesc='A command-line oriented TCP/IP packet assembler/analyzer.'
+arch=('i686' 'x86_64' 'mips64el')
+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..eb1f3ac85
--- /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=2
+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' 'mips64el')
+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..81c10eb95
--- /dev/null
+++ b/community/hsolink/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 50013 2011-06-23 12:34:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+
+pkgname=hsolink
+pkgver=1.0.118
+pkgrel=7
+pkgdesc="HSO command line connection utility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pharscape.org/hsolinkcontrol.html"
+license=('GPL2')
+depends=('ozerocdoff' 'net-tools')
+install=hsolink.install
+source=("http://www.pharscape.org/downloads1.html/$pkgname-$pkgver.tar.gz")
+md5sums=('8b5b179c487b7ad95112fe74dea7e302')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+ 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..b47198e0e
--- /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' 'mips64el')
+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..9c99e82d2
--- /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' 'mips64el')
+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..d057cdeb0
--- /dev/null
+++ b/community/htmldoc/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 52181 2011-07-21 12:03:40Z 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=6
+pkgdesc="Produce PDF or Postscript from HTML documents including TOCs and Indices"
+arch=(i686 x86_64 'mips64el')
+url="http://www.htmldoc.org"
+license=('GPL')
+depends=('libjpeg' 'libpng' 'openssl' 'fltk' 'gcc-libs' 'libxft' 'libxpm')
+source=(ftp://ftp.easysw.com/pub/${pkgname}/${pkgver}/${pkgname}-$pkgver-source.tar.bz2)
+md5sums=('35589e7b8fe9c54e11be87cd5aec4dcc')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=${pkgdir}/usr/share/man
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+
+ make install \
+ prefix=${pkgdir}/usr \
+ bindir=$pkgdir/usr/bin \
+ datadir=$pkgdir/usr/share \
+ datarootdir=$pkgdir/usr/share \
+ docdir=$pkgdir/usr/share/doc/htmldoc \
+ exec_prefix=$pkgdir/usr \
+ mandir=$pkgdir/usr/share/man \
+ prefix=$pkgdir/usr \
+ sysconfdir=$pkgdir/etc
+
+ # freedesktop stuff
+ install -Dm 644 desktop/htmldoc-128.png \
+ $pkgdir/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 \
+ $pkgdir/usr/share/applications/htmldoc.desktop
+}
diff --git a/community/httperf/PKGBUILD b/community/httperf/PKGBUILD
new file mode 100644
index 000000000..c9b072988
--- /dev/null
+++ b/community/httperf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59593 2011-11-28 19:31:35Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Essien Ita Essien <me@essienitaessien.com>
+# Contributor: Peter Baldwin <bald_pete@hotmail.com>
+
+pkgname=httperf
+pkgver=0.9.0
+pkgrel=5
+pkgdesc='A tool for measuring web server performance.'
+arch=('i686' 'x86_64')
+license=('GPL2')
+url='http://code.google.com/p/httperf'
+depends=('openssl')
+source=("http://httperf.googlecode.com/files/$pkgname-$pkgver.tar.gz")
+md5sums=('2968c36b9ecf3d98fc1f2c1c9c0d9341')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/httptunnel/PKGBUILD b/community/httptunnel/PKGBUILD
new file mode 100644
index 000000000..1d923e6de
--- /dev/null
+++ b/community/httptunnel/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55529 2011-09-14 07:38:23Z andrea $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=httptunnel
+pkgver=3.3
+pkgrel=3
+pkgdesc="Creates a bidirectional virtual data connection tunnelled in HTTP requests"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nocrew.org/software/httptunnel"
+license=('GPL2')
+depends=('glibc')
+source=("http://www.nocrew.org/software/${pkgname}/$pkgname-$pkgver.tar.gz")
+md5sums=('493cc0f5f21e9955db27ee9cd9a976d5')
+
+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/hubbub/PKGBUILD b/community/hubbub/PKGBUILD
new file mode 100644
index 000000000..2ec9ba308
--- /dev/null
+++ b/community/hubbub/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59698 2011-11-29 12:42:33Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+pkgname=hubbub
+pkgver=0.1.1
+pkgrel=2
+pkgdesc="HTML5 compliant parsing library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('98f49be58e228010c88381bc39f39e19')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i 's:-Werror::' Makefile
+ make PREFIX=/usr COMPONENT_TYPE="lib-shared"
+ make PREFIX=/usr COMPONENT_TYPE="lib-static"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make install PREFIX=/usr DESTDIR="$pkgdir" COMPONENT_TYPE="lib-shared"
+ make install PREFIX=/usr DESTDIR="$pkgdir" COMPONENT_TYPE="lib-static"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/hwinfo/PKGBUILD b/community/hwinfo/PKGBUILD
new file mode 100644
index 000000000..cc0fdb7d7
--- /dev/null
+++ b/community/hwinfo/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 56757 2011-10-11 21:02:19Z arodseth $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Gergely Imreh <imrehgATgmailDOTcom>
+# Contributor: champus
+# Contributor: madeye
+# Contributor: Ranguvar
+# Contributor: ninja_pt
+pkgname=hwinfo
+pkgver=19.0
+pkgrel=2
+pkgdesc='Hardware detection tool from openSUSE'
+arch=('i686' 'x86_64' 'mips64el')
+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}-1.1.src.rpm"
+ 'custom_ioctl.patch')
+md5sums=('751238feaa13449324593ee5e145cd56'
+ '1500ecfa26f6aaf4d7967eea74e86e5d')
+
+build() {
+ cd "${srcdir}"
+
+ msg2 "Extracting source rpm..."
+ rpmextract.sh "${pkgname}-${pkgver}-1.1.src.rpm"
+ tar jxf ${pkgname}-${pkgver}.tar.bz2
+ cd "${pkgname}-${pkgver}"
+ msg2 "Patching..."
+ patch -p0 < ../custom_ioctl.patch
+ msg2 "Compiling..."
+ make -j1 CFLAGS+="-fPIC -I${srcdir}/${pkgname}-${pkgver}/src/hd" LIBDIR=/usr/lib
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ msg2 "Packaging files..."
+ make LIBDIR=/usr/lib DESTDIR=${pkgdir} install
+ msg2 "Cleaning up..."
+ rmdir "${pkgdir}/sbin"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/hwinfo/custom_ioctl.patch b/community/hwinfo/custom_ioctl.patch
new file mode 100644
index 000000000..b9dd67161
--- /dev/null
+++ b/community/hwinfo/custom_ioctl.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..abb7ae4ed
--- /dev/null
+++ b/community/i3-wm/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 60124 2011-12-05 19:50:21Z ibiru $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=i3-wm
+_pkgsourcename=i3
+pkgver=4.1
+pkgrel=2
+pkgdesc="An improved dynamic tiling window manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://i3wm.org/"
+license=('BSD')
+replaces=("i3" "i3bar")
+groups=("i3")
+depends=('libxcursor' 'xcb-util-wm' 'xcb-util-keysyms' 'libev' 'yajl' 'startup-notification' 'pcre')
+makedepends=('bison' 'flex')
+optdepends=('rxvt-unicode: The terminal emulator used in the default config.'
+ 'dmenu: As menu.'
+ 'i3lock: For locking your screen.'
+ 'i3status: To display systeminformation with a bar.'
+ 'perl: To migrate your configuration to v4 format.')
+options=('docs' '!strip')
+source=(http://i3wm.org/downloads/${_pkgsourcename}-${pkgver}.tar.bz2)
+md5sums=('1a05d605624506c2b4b9f1272fd84a5a')
+
+build() {
+ cd "$srcdir/$_pkgsourcename-$pkgver"
+
+ # To avoid problems with bison use only a single process
+ MAKEFLAGS="-j1"
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgsourcename-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 man/i3.1 \
+ ${pkgdir}/usr/share/man/man1/i3.1
+ install -Dm644 i3bar/doc/i3bar.1 \
+ ${pkgdir}/usr/share/man/man1/i3bar.1
+ install -Dm644 man/i3-config-wizard.1 \
+ ${pkgdir}/usr/share/man/man1/i3-config-wizard.1
+ install -Dm644 man/i3-input.1 \
+ ${pkgdir}/usr/share/man/man1/i3-input.1
+ install -Dm644 man/i3-msg.1 \
+ ${pkgdir}/usr/share/man/man1/i3-msg.1
+ install -Dm644 man/i3-migrate-config-to-v4.1 \
+ ${pkgdir}/usr/share/man/man1/i3-migrate-config-to-v4.1
+ install -Dm644 man/i3-nagbar.1 \
+ ${pkgdir}/usr/share/man/man1/i3-nagbar.1
+ install -Dm644 LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ 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..593c314cc
--- /dev/null
+++ b/community/i3lock/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=i3lock
+pkgver=2.2
+pkgrel=2
+pkgdesc="An improved screenlocker based upon XCB and PAM"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://i3wm.org/i3lock/"
+license=('MIT')
+groups=("i3")
+depends=('xcb-util' 'xcb-util-image' 'xcb-util-keysyms' 'pam')
+options=('docs')
+source=("http://i3wm.org/i3lock/$pkgname-$pkgver.tar.bz2")
+md5sums=('6179a1611e333c8baf54093b57d50687')
+
+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..a174d3eb9
--- /dev/null
+++ b/community/i3status/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 52225 2011-07-22 05:51:08Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=i3status
+pkgver=2.3
+pkgrel=1
+pkgdesc="Generates status bar to use with dzen2 or xmobar"
+arch=('i686' 'x86_64' 'mips64el')
+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=('6a74863c525908be4465c0353ed5b999')
+
+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..d28694d8c
--- /dev/null
+++ b/community/iasl/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 59496 2011-11-26 21:04:57Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alessio 'mOlOk' Bolognino <themolok@gmail.com>
+
+pkgname=iasl
+pkgver=20111123
+pkgrel=1
+pkgdesc="Intel ACPI Source Language compiler"
+arch=('i686' 'x86_64' 'mips64el')
+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=('433470ddbdf8eab5e9c22e8f0e8836ff'
+ '8615526144f69ea4e870d9bc37df9b29')
+
+build() {
+ cd "${srcdir}/acpica-unix-${pkgver}"
+
+ # fix building with gcc-4.6
+ sed -i -e 's/-Werror//g' compiler/Makefile tools/acpisrc/Makefile
+
+ 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..475ba9630
--- /dev/null
+++ b/community/iat/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 59656 2011-11-29 08:40:05Z arodseth $
+# Maintainer: Alexander Rødseth
+# Contributor: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+pkgname=iat
+pkgver=0.1.7
+pkgrel=4
+pkgdesc="Detects and converts DVD/CD images from BIN/MDF/PDI/CDI/NRG/B5I to ISO-9660"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://iat.berlios.de/"
+license=('GPL')
+depends=('glibc')
+source=("http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('5e1ffd82000ea4c80ffb2d63ae55120c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --includedir="/usr/include/$pkgname"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ibam/PKGBUILD b/community/ibam/PKGBUILD
new file mode 100644
index 000000000..c3ca9a78a
--- /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' 'mips64el')
+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..442493585
--- /dev/null
+++ b/community/ibus-anthy/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 47888 2011-05-25 23:35:15Z ebelanger $
+# 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.6
+pkgrel=1
+pkgdesc="Japanese input method Anthy IMEngine for IBus Framework"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://ibus.googlecode.com"
+depends=('ibus' 'anthy' 'python2')
+makedepends=('swig' 'intltool')
+options=('!libtool')
+source=(http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('894c7311f4d5c96b1fdb8b3795446ead')
+
+build() {
+ cd "${srcdir}/${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 "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ibus-chewing/PKGBUILD b/community/ibus-chewing/PKGBUILD
new file mode 100644
index 000000000..1f688da6c
--- /dev/null
+++ b/community/ibus-chewing/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57032 2011-10-18 21:32:56Z ebelanger $
+# 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.10
+pkgrel=1
+pkgdesc='Chinese Chewing Engine for IBus Framework'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url='http://ibus.googlecode.com'
+depends=('ibus' 'libchewing' 'libxtst')
+makedepends=('swig' 'cmake' 'gob2')
+install=ibus-chewing.install
+source=(http://ibus.googlecode.com/files/${pkgname}-${pkgver}-Source.tar.gz
+ https://fedorahosted.org/releases/c/m/cmake-fedora/cmake-fedora-modules-only-latest.tar.gz)
+md5sums=('2a447828ca9290dd6bdf2336b2889bb0'
+ 'eb24ff0ec5b7646dd1b077f3b379712b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+ tar -xzf ../cmake-fedora-modules-only-latest.tar.gz
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/usr/share \
+ -DLIBEXEC_DIR=/usr/lib/ibus \
+ .
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+ make DESTDIR="${pkgdir}" install
+}
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..870d06e60
--- /dev/null
+++ b/community/ibus-hangul/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 57039 2011-10-18 23:59:43Z ebelanger $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Radim Hvizdák <hvizdakr at gmail dot com>
+
+pkgname=ibus-hangul
+pkgver=1.3.2
+pkgrel=1
+pkgdesc='Korean input engine for IBus'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://ibus.googlecode.com'
+license=('GPL')
+depends=('ibus' 'libhangul')
+makedepends=('intltool')
+source=(http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz ibus-1.4.0.patch)
+md5sums=('b8132e8b11afadd803b2602c63294da5'
+ 'edf93824ab2eead1307088d3edc24dbc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/ibus-1.4.0.patch"
+ PYTHON=python2 ./configure --prefix=/usr --libexecdir=/usr/lib/ibus
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make NO_INDEX=true DESTDIR="${pkgdir}" install
+}
diff --git a/community/ibus-hangul/ibus-1.4.0.patch b/community/ibus-hangul/ibus-1.4.0.patch
new file mode 100644
index 000000000..0c043d374
--- /dev/null
+++ b/community/ibus-hangul/ibus-1.4.0.patch
@@ -0,0 +1,58 @@
+diff -Naur ibus-hangul-1.3.1-orig/configure.ac ibus-hangul-1.3.1/configure.ac
+--- ibus-hangul-1.3.1-orig/configure.ac 2011-10-02 03:36:02.000000000 -0400
++++ ibus-hangul-1.3.1/configure.ac 2011-10-02 03:37:01.000000000 -0400
+@@ -52,7 +52,7 @@
+
+ # check ibus
+ PKG_CHECK_MODULES(IBUS, [
+- ibus-1.0 >= 1.2.99
++ ibus-1.0 >= 1.3.99
+ ])
+
+ # check libhangul
+diff -Naur ibus-hangul-1.3.1-orig/src/engine.c ibus-hangul-1.3.1/src/engine.c
+--- ibus-hangul-1.3.1-orig/src/engine.c 2011-10-02 03:36:02.000000000 -0400
++++ ibus-hangul-1.3.1/src/engine.c 2011-10-02 03:37:51.000000000 -0400
+@@ -175,8 +194,7 @@
+ void
+ ibus_hangul_init (IBusBus *bus)
+ {
+- gboolean res;
+- GValue value = { 0, };
++ GVariant* value;
+
+ hanja_table = hanja_table_load (NULL);
+
+@@ -187,22 +205,22 @@
+ g_object_ref_sink (config);
+
+ hangul_keyboard = g_string_new_len ("2", 8);
+- res = ibus_config_get_value (config, "engine/Hangul",
+- "HangulKeyboard", &value);
+- if (res) {
+- const gchar* str = g_value_get_string (&value);
++ value = ibus_config_get_value (config, "engine/Hangul",
++ "HangulKeyboard");
++ if (value != NULL) {
++ const gchar* str = g_variant_get_string (value, NULL);
+ g_string_assign (hangul_keyboard, str);
+- g_value_unset(&value);
++ g_variant_unref(value);
+ }
+
+ hanja_key_list_init(&hanja_keys);
+
+- res = ibus_config_get_value (config, "engine/Hangul",
+- "HanjaKeys", &value);
+- if (res) {
+- const gchar* str = g_value_get_string (&value);
++ value = ibus_config_get_value (config, "engine/Hangul",
++ "HanjaKeys");
++ if (value != NULL) {
++ const gchar* str = g_variant_get_string (value, NULL);
+ hanja_key_list_set_from_string(&hanja_keys, str);
+- g_value_unset(&value);
++ g_variant_unref(value);
+ } else {
+ hanja_key_list_append(&hanja_keys, IBUS_Hangul_Hanja, 0);
+ hanja_key_list_append(&hanja_keys, IBUS_F9, 0);
diff --git a/community/ibus-m17n/PKGBUILD b/community/ibus-m17n/PKGBUILD
new file mode 100644
index 000000000..38a1f02f0
--- /dev/null
+++ b/community/ibus-m17n/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56123 2011-10-02 03:31:13Z ebelanger $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Lonfucius <Lonfucius@gmail.com>
+# Contributor: Jesse Jaara <jesse.jaara@gmail.com>
+
+pkgname=ibus-m17n
+pkgver=1.3.3
+pkgrel=1
+pkgdesc='M17N engine for IBus'
+arch=('i686' 'x86_64' 'mips64el')
+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=('8fa050df5b2d25095d0e2df51946b0de')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ibus-pinyin/PKGBUILD b/community/ibus-pinyin/PKGBUILD
new file mode 100644
index 000000000..26dc3b31a
--- /dev/null
+++ b/community/ibus-pinyin/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 56127 2011-10-02 07:12:20Z ebelanger $
+# 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.99.20110706
+pkgrel=1
+pkgdesc='The PinYin Engine for IBus Input Framework.'
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url='http://ibus.googlecode.com'
+depends=('ibus')
+makedepends=('intltool')
+install=ibus-pinyin.install
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz"
+ "http://ibus.googlecode.com/files/pinyin-database-1.2.99.tar.bz2")
+md5sums=('0d9d5d78106c2d36c28a00b74aa9a6c3'
+ 'd0951b8daa7f56a2cbd3b6b4e42532e0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ln -sf "${srcdir}/pinyin-database-1.2.99.tar.bz2" \
+ "${srcdir}/${pkgname}-${pkgver}/data/db/open-phrase"
+
+ 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 "${srcdir}/${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..3771d9bec
--- /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..9b0a52782
--- /dev/null
+++ b/community/ibus-qt/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 48593 2011-06-03 07:34:58Z andrea $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: garion < garion @ mailoo.org >
+# Contributor: leemars
+
+pkgname=ibus-qt
+pkgver=1.3.1
+pkgrel=3
+pkgdesc='IBus qt library and IBus qt input method plugin'
+arch=('i686' 'x86_64' 'mips64el')
+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 "${srcdir}"
+ mkdir build
+ cd build
+
+ cmake ../${pkgname}-${pkgver}-Source \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ibus-sunpinyin/PKGBUILD b/community/ibus-sunpinyin/PKGBUILD
new file mode 100644
index 000000000..f187ec36f
--- /dev/null
+++ b/community/ibus-sunpinyin/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 56121 2011-10-02 03:13:11Z ebelanger $
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-sunpinyin
+pkgver=2.0.3
+pkgrel=2
+pkgdesc='The SunPinYin Engine for IBus Input Framework. SunPinYin is a Statistical Language Model based pinyin IME by Sun.'
+arch=('i686' 'x86_64' 'mips64el')
+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 "${srcdir}/ibus-sunpinyin-${pkgver}"
+
+ sed -i 's/python/&2/' setup/ibus-setup-sunpinyin.in
+
+ scons \
+ --prefix=/usr
+}
+
+package() {
+ cd "${srcdir}/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..e37dfa597
--- /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' 'mips64el')
+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..c7a05272b
--- /dev/null
+++ b/community/ibus-table/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 56830 2011-10-14 06:44:36Z ebelanger $
+# Contributor: coderoar <coderoar@gmail.com>
+# Contributor: leemars <leemars@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-table
+pkgver=1.3.9.20110827
+pkgrel=1
+pkgdesc='The IM Engine framework for table-based input methods, such as ZhengMa, WuBi, ErBi, CangJie and so on.'
+arch=('i686' 'x86_64' 'mips64el')
+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=('251e2c8ace8ed265d780b30755afc163')
+
+build() {
+ cd "${srcdir}/${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_' {} \;
+
+ PYTHON=/usr/bin/python2 ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ibus-unikey/PKGBUILD b/community/ibus-unikey/PKGBUILD
new file mode 100644
index 000000000..3f2a781f5
--- /dev/null
+++ b/community/ibus-unikey/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 55971 2011-09-27 06:50:51Z ebelanger $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Trương Xuân Tính <xuantinh at gmail dot com>
+
+pkgname=ibus-unikey
+pkgver=0.6.0
+pkgrel=1
+pkgdesc='IBus module for Vietnamese Keyboard'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url='http://code.google.com/p/ibus-unikey/'
+depends=('ibus')
+makedepends=('intltool')
+source=("http://ibus-unikey.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('cef0e737ea3fba5bf79642bfd85d44b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ibus/PKGBUILD b/community/ibus/PKGBUILD
new file mode 100644
index 000000000..30708fafe
--- /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>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=ibus
+pkgver=1.4.0
+pkgrel=1
+pkgdesc='Next Generation Input Bus for Linux.'
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url='http://ibus.googlecode.com'
+depends=('dbus-python>=0.84.0' 'gconf' 'dconf' 'python2' 'pygtk' 'pyxdg' 'iso-codes' 'librsvg' 'python-notify' 'hicolor-icon-theme' 'gtk3')
+optdepends=('notification-daemon')
+makedepends=('intltool')
+options=('!libtool')
+install=ibus.install
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b4f063794e89c71eb1f8cb543210da30')
+
+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-gtk3
+
+ # 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..439f00b29
--- /dev/null
+++ b/community/ibus/ibus.install
@@ -0,0 +1,31 @@
+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
+
+ # update for gkt3
+ gtk-query-immodules-3.0 --update-cache
+}
+
+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
+
+ # update for gkt3
+ gtk-query-immodules-3.0 --update-cache
+}
diff --git a/community/icecast/PKGBUILD b/community/icecast/PKGBUILD
new file mode 100644
index 000000000..6c81ed1a6
--- /dev/null
+++ b/community/icecast/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 46955 2011-05-13 20:41:15Z 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' 'mips64el')
+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/community/icecast/icecast.logrotate b/community/icecast/icecast.logrotate
new file mode 100644
index 000000000..0fb014c06
--- /dev/null
+++ b/community/icecast/icecast.logrotate
@@ -0,0 +1,8 @@
+/var/log/icecast/*log {
+ missingok
+ notifempty
+ sharedscripts
+ postrotate
+ endscript
+}
+
diff --git a/community/icecast/icecastd b/community/icecast/icecastd
new file mode 100644
index 000000000..e6c91b08c
--- /dev/null
+++ b/community/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/community/icecast/start-by-nobody.patch b/community/icecast/start-by-nobody.patch
new file mode 100644
index 000000000..d218e5afe
--- /dev/null
+++ b/community/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/community/icewm-utils/PKGBUILD b/community/icewm-utils/PKGBUILD
new file mode 100644
index 000000000..6b0e5ffca
--- /dev/null
+++ b/community/icewm-utils/PKGBUILD
@@ -0,0 +1,115 @@
+# $Id: PKGBUILD 58602 2011-11-16 15:27:25Z spupykin $
+# 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=6
+pkgdesc="Suite of tools for IceWM"
+arch=(i686 x86_64 'mips64el')
+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..726e732f9
--- /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' 'mips64el')
+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/icoutils/PKGBUILD b/community/icoutils/PKGBUILD
new file mode 100644
index 000000000..14832b63e
--- /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' 'mips64el')
+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..c31ea657a
--- /dev/null
+++ b/community/id3lib-rcc/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 55559 2011-09-14 10:08:38Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=id3lib-rcc
+pkgver=3.8.3
+pkgrel=7
+pkgdesc="id3lib with librcc patch"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://id3lib.sourceforge.net/"
+license=('GPL')
+depends=('libxml2' 'librcc' 'gcc-libs')
+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 "${srcdir}"/id3lib-$pkgver
+
+ patch -Np1 -i "${srcdir}"/id3lib/id3lib-ds-rcc.patch
+ patch -Np1 -i "${srcdir}"/id3lib-gcc4.patch
+ cd src
+ patch -Np0 -i "${srcdir}"/arch.patch
+ cd ..
+
+ 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
+
+ ./configure --prefix=/usr
+ make LDFLAGS=-lrcc
+}
+
+package() {
+ cd "${srcdir}"/id3lib-$pkgver
+ make DESTDIR="${pkgdir}" 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..fb170ca8f
--- /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" 'mips64el')
+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..2cdfc5fab
--- /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' 'mips64el')
+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..5d49eabee
--- /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=4
+pkgdesc='A fuse filesystem to access the contents of an iPhone or iPod Touch'
+url='http://libimobiledevice.org/'
+arch=('i686' 'x86_64' 'mips64el')
+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..eab6eb7bf
--- /dev/null
+++ b/community/iksemel/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 55571 2011-09-14 10:35:20Z andrea $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Guillermo Vaya driadan@willinux.net
+
+pkgname=iksemel
+pkgver=1.4
+pkgrel=2
+pkgdesc="XML parser library for Jabber applications in ANSI C"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/iksemel/"
+license=('LGPL')
+depends=('glibc')
+install=iksemel.install
+source=("http://iksemel.googlecode.com/files/${pkgname}-$pkgver.tar.gz")
+md5sums=('532e77181694f87ad5eb59435d11c1ca')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+ mv "${pkgdir}"/usr/share/info/$pkgname "${pkgdir}"/usr/share/info/$pkgname.info
+ rm -rf "${pkgdir}"/usr/share/info/dir
+}
diff --git a/community/iksemel/iksemel.install b/community/iksemel/iksemel.install
new file mode 100644
index 000000000..1cd1dbf31
--- /dev/null
+++ b/community/iksemel/iksemel.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(iksemel.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/imdbpy/PKGBUILD b/community/imdbpy/PKGBUILD
new file mode 100644
index 000000000..974a8d986
--- /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' 'mips64el')
+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..1479b6c64
--- /dev/null
+++ b/community/incron/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 55563 2011-09-14 10:20:14Z andrea $
+# 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=2
+pkgdesc="Like the regular cron but is driven by filesystem events instead of time periods"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://incron.aiken.cz/"
+license=('GPL')
+depends=('gcc-libs' 'bash')
+install=incron.install
+source=("http://inotify.aiken.cz/download/incron/$pkgname-$pkgver.tar.gz"
+ 'incron.init')
+options=('emptydirs')
+md5sums=('a285b9e14af7bf9f9524fe051a06255f'
+ '648e1ca1a4b1e624401d9d71aa3756b3')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+
+ install -D -m 755 "${srcdir}"/incron.init "${pkgdir}"/etc/rc.d/incrond
+ install -d "${pkgdir}"/usr/share/man "${pkgdir}"/usr/{s,}bin
+
+ 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
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make PREFIX="${pkgdir}"/usr \
+ MANPATH="${pkgdir}"/usr/share/man \
+ USERDATADIR="${pkgdir}"/var/spool/incron \
+ CFGDIR="${pkgdir}"/etc \
+ SYSDATADIR="${pkgdir}"/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..de4de3742
--- /dev/null
+++ b/community/incron/incron.install
@@ -0,0 +1,14 @@
+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..f7ddc40de
--- /dev/null
+++ b/community/iniparser/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 58761 2011-11-18 13:28:12Z 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' 'mips64el')
+url="http://ndevilla.free.fr/iniparser/"
+license=('MIT')
+depends=()
+source=(http://ndevilla.free.fr/iniparser/$pkgname-$pkgver.tar.gz)
+md5sums=('133d955064d107a4fcb7739214356ce8')
+
+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..bf7e5856b
--- /dev/null
+++ b/community/inn/PKGBUILD
@@ -0,0 +1,131 @@
+# $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=6
+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' 'mips64el')
+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 \
+ --with-news-user=9 \
+ --with-news-group=13
+ # See https://wiki.archlinux.org/index.php/DeveloperWiki:UID_/_GID_Database
+
+ cat >>confdefs.h <<EOF
+#undef RUNASUSER
+#define RUNASUSER "news"
+#undef RUNASGROUP
+#define RUNASGROUP "news"
+EOF
+ 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
+}
+
+package() {
+ cd $srcdir/inn-$pkgver
+ export LD_LIBRARY_PATH=.:$pkgdir/usr/lib:$LD_LIBRARY_PATH
+
+ 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..e4070870f
--- /dev/null
+++ b/community/inn/inn.install
@@ -0,0 +1,22 @@
+post_install() {
+ grep -e "^news:" /etc/group 2>&- >&- || groupadd -g 13 -r news 2>&- >&-
+ grep -e "^news:" /etc/passwd 2>&- >&- || useradd -u 9 -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..93215c7e6
--- /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' 'mips64el')
+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/0001-Add-w8001-flag.patch b/community/inputattach/0001-Add-w8001-flag.patch
new file mode 100644
index 000000000..ba6f9394b
--- /dev/null
+++ b/community/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/inputattach/0002-Allow-for-custom-baud-rates.patch b/community/inputattach/0002-Allow-for-custom-baud-rates.patch
new file mode 100644
index 000000000..78f5d19c8
--- /dev/null
+++ b/community/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/inputattach/PKGBUILD b/community/inputattach/PKGBUILD
new file mode 100644
index 000000000..bf87a64d4
--- /dev/null
+++ b/community/inputattach/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59224 2011-11-21 15:24:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
+
+pkgname=inputattach
+pkgver=1.24
+pkgrel=4
+pkgdesc="Attach serial mice, keyboards and other input devices to the kernel input system"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+source=('http://arch.p5n.pp.ru/~sergej/dl/2011/inputattach.c'
+ 'http://arch.p5n.pp.ru/~sergej/dl/2011/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'
+ 'aa2e404fc113abdd2ab14e2a6352c331'
+ '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/inputattach/inputattach.conf.d b/community/inputattach/inputattach.conf.d
new file mode 100644
index 000000000..ae8d1842a
--- /dev/null
+++ b/community/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/inputattach/inputattach.install b/community/inputattach/inputattach.install
new file mode 100644
index 000000000..d705bceaf
--- /dev/null
+++ b/community/inputattach/inputattach.install
@@ -0,0 +1,16 @@
+## arg 1: the new package version
+
+post_upgrade() {
+ (( $(vercmp 1.24-3 $2) > 0 )) && cat <<EOF
+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.
+EOF
+}
+
+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/inputattach/inputattach.rc.d b/community/inputattach/inputattach.rc.d
new file mode 100644
index 000000000..eb626e199
--- /dev/null
+++ b/community/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/intel-tbb/PKGBUILD b/community/intel-tbb/PKGBUILD
new file mode 100644
index 000000000..8c7b6060e
--- /dev/null
+++ b/community/intel-tbb/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Denis Martinez <deuns.martinez AT gmail.com>
+
+pkgname=intel-tbb
+pkgver=4.0_20111003
+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' 'mips64el')
+url='http://www.threadingbuildingblocks.org/'
+license=('GPL')
+source=("http://threadingbuildingblocks.org/uploads/77/177/4.0%20update%201/tbb40_20111003oss_src.tgz")
+md5sums=('7b5d94eb35a563b29ef402e0fd8f15c9')
+
+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..ccb506e98
--- /dev/null
+++ b/community/intellij-idea-libs/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 60185 2011-12-06 20:06:27Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=intellij-idea-libs
+pkgver=11
+_pkgver=111.69
+pkgrel=1
+pkgdesc="Architecture dependend libraries needed by the Intellij Idea IDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.jetbrains.org/"
+license=('apache')
+depends=('glibc')
+source=(http://download.jetbrains.com/idea/ideaIC-$pkgver.tar.gz)
+md5sums=('d838994ecc6556b52a83d37138530dbb')
+
+build() {
+ cd "$srcdir"
+
+ install -d -m755 "$pkgdir/usr/share/intellijidea-ce/bin"
+ install -d -m755 "$pkgdir/usr/lib"
+
+ [ $CARCH == "x86_64" ] && SUFFIX=64
+ install -m755 "idea-IC-$_pkgver"/bin/fsnotifier${SUFFIX} "$pkgdir"/usr/share/intellijidea-ce/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..944a86e5f
--- /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 'mips64el')
+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..68555e52d
--- /dev/null
+++ b/community/ipsec-tools/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 58775 2011-11-18 14:08:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Allan Henriksen <allan.henriksen@gmail.com>
+
+pkgname=ipsec-tools
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="KAME IPSec tools ported to Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ipsec-tools.sourceforge.net/"
+depends=('readline' 'openssl' 'krb5')
+makedepends=('linux-headers')
+license=('GPL')
+options=('!makeflags' '!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/ipsec-tools/$pkgname-$pkgver.tar.bz2
+ racoon.rc
+ ipsec.rc)
+md5sums=('b79aae3055a51f8de5c0f1b8ca6cf619'
+ '416b8e362d86987b8c55f7153cdafbeb'
+ '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 --enable-gssapi
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ 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..1a67dcac5
--- /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/ipset/PKGBUILD b/community/ipset/PKGBUILD
new file mode 100644
index 000000000..09eb63959
--- /dev/null
+++ b/community/ipset/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59646 2011-11-29 01:17:13Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgname=ipset
+pkgver=6.10
+pkgrel=1
+pkgdesc='Administration tool for IP sets'
+arch=('i686' 'x86_64')
+url='http://ipset.netfilter.org'
+license=('GPL2')
+depends=('libmnl')
+makedepends=('linux-headers')
+source=("http://ipset.netfilter.org/$pkgname-$pkgver.tar.bz2")
+md5sums=('2dc677ab126269d09db5cd908c045591')
+
+build() {
+ cd $pkgname-$pkgver
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/iptstate/PKGBUILD b/community/iptstate/PKGBUILD
new file mode 100644
index 000000000..f0fbb6abe
--- /dev/null
+++ b/community/iptstate/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Andrea Zucchelli <zukka77@gmail.com>
+
+pkgname=iptstate
+pkgver=2.2.3
+pkgrel=1
+pkgdesc='top-like interface to netfilter connection-tracking table'
+arch=('i686' 'x86_64')
+url='http://www.phildev.net/iptstate/'
+license=('custom')
+depends=('ncurses' 'libnetfilter_conntrack')
+source=("http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2")
+md5sums=('5238a0c4c4f764a919aba678051698ec')
+
+build() {
+ cd $pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ install -D -m755 $pkgname "$pkgdir/usr/sbin/$pkgname"
+ install -D -m644 $pkgname.8 "$pkgdir/usr/share/man/man8/$pkgname.8"
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ipvsadm/PKGBUILD b/community/ipvsadm/PKGBUILD
new file mode 100644
index 000000000..b197164c0
--- /dev/null
+++ b/community/ipvsadm/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=ipvsadm
+pkgver=1.26
+pkgrel=1
+pkgdesc='The IP Virtual Server administration utility'
+arch=('i686' 'x86_64')
+url='http://www.linuxvirtualserver.org/software/ipvs.html'
+license=('GPL2')
+depends=('libnl' 'popt')
+backup=('etc/conf.d/ipvsadm')
+#options=('!makeflags')
+source=("http://www.linuxvirtualserver.org/software/kernel-2.6/$pkgname-$pkgver.tar.gz"
+ 'ipvsadm.rc'
+ 'ipvsadm.conf'
+ 'ipvsadm.rules')
+md5sums=('eac3ba3f62cd4dea2da353aeddd353a8'
+ '0e106fce0675e014bea0f9355b947bd6'
+ 'cd358130967a9cc0d31fc61282df43e7'
+ 'cd6649c647e495d4d6f981542ce5a93b')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ make INCLUDE="-I/usr/src/linux-`uname -r`/include -I.. -I." || return 1
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make BUILD_ROOT=${pkgdir} MANDIR=usr/share/man INIT="$pkgdir/etc/rc.d" install
+ cd "$srcdir"
+ # add initscripts
+ install -D -m 755 $pkgname.rc "${pkgdir}/etc/rc.d/$pkgname"
+ install -D -m 644 $pkgname.conf "${pkgdir}/etc/conf.d/$pkgname"
+ # add ipvsadm rules
+ install -D -m 644 $pkgname.rules "${pkgdir}/etc/$pkgname.rules"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ipvsadm/ipvsadm.conf b/community/ipvsadm/ipvsadm.conf
new file mode 100644
index 000000000..aac7ba729
--- /dev/null
+++ b/community/ipvsadm/ipvsadm.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh et:
+
+IPVSADM_CONF='/etc/ipvsadm.rules'
diff --git a/community/ipvsadm/ipvsadm.rc b/community/ipvsadm/ipvsadm.rc
new file mode 100644
index 000000000..91ed32e3b
--- /dev/null
+++ b/community/ipvsadm/ipvsadm.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ipvsadm
+
+case "$1" in
+ start)
+ stat_busy 'Loading IPVS table'
+ if [[ -f $IPVSADM_CONF ]] && /sbin/ipvsadm-restore < "$IPVSADM_CONF"; then
+ add_daemon ipvsadm
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ status 'Clearing IPVS table' /sbin/ipvsadm -C
+ rm_daemon ipvsadm
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ save)
+ stat_busy 'Saving IPVS table'
+ if /sbin/ipvsadm-save -n > "$IPVSADM_CONF" 2>/dev/null; then
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart|save}"
+esac
+exit 0
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ipvsadm/ipvsadm.rules b/community/ipvsadm/ipvsadm.rules
new file mode 100644
index 000000000..6740463a1
--- /dev/null
+++ b/community/ipvsadm/ipvsadm.rules
@@ -0,0 +1 @@
+# emtpy rules file for ipvsadm
diff --git a/community/ircii-pana/PKGBUILD b/community/ircii-pana/PKGBUILD
new file mode 100644
index 000000000..8ff4655cf
--- /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' 'mips64el')
+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..2fc014c87
--- /dev/null
+++ b/community/ircservices/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 50648 2011-06-29 10:57:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ircservices
+pkgver=5.1.24
+pkgrel=1
+pkgdesc="Services for IRC (NickServ, ChanServ, MemoServ)"
+arch=(i686 x86_64 'mips64el')
+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
+source=(http://achurch.org/services/tarballs/ircservices-$pkgver.tar.gz
+ path-patch.patch
+ ircservices)
+md5sums=('d4f531537aeed230026cf5560f221ecb'
+ '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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ 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..740ce5a28
--- /dev/null
+++ b/community/irrlicht/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 56796 2011-10-12 23:30:10Z 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=3
+pkgdesc="An open source high performance realtime 3D graphics engine."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://irrlicht.sourceforge.net/"
+license=('ZLIB')
+depends=('libgl' 'libjpeg' 'bzip2' 'libpng')
+makedepends=('mesa')
+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_LIB_PNG/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 -Ilibpng::' \
+ -e '/^ZLIBOBJ/d' \
+ -e '/^JPEGLIBOBJ/d' \
+ -e '/^BZIP2OBJ/d' \
+ -e '/^LIBPNGOBJ/d' \
+ -e '/.o=.d/d' \
+ -e '/^staticlib sharedlib: LDFLAGS/s:+=.*:+= -lGL -lXxf86vm -lpng -ljpeg -lbz2 -lz:' \
+ -e "/^INSTALL_DIR/s:=.*:=$pkgdir/usr/lib:" \
+ -e 's/0-SVN/1/' \
+ -e 's/.$(VERSION_MINOR) -o/ -o/' \
+ Makefile
+
+ sed -i "s/png_set_gray_1_2_4_to_8/png_set_expand_gray_1_2_4_to_8/" \
+ CImageLoaderPNG.cpp
+
+ 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..346040aa9
--- /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' 'mips64el')
+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..da0ec5a11
--- /dev/null
+++ b/community/jabberd14/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 54463 2011-08-18 15:07:21Z bluewind $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=jabberd14
+pkgver=1.6.1.1
+pkgrel=10
+pkgdesc="old (1.4) jabber server branch"
+arch=(i686 x86_64 'mips64el')
+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'
+ 'ad795626f26c01700a23515e0e75d654'
+ '5869169394d70977858320648075c7a6')
+
+build() {
+ cd $srcdir/jabberd14-$pkgver
+ export LDFLAGS="$LDFLAGS -lgcrypt"
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --enable-ssl --enable-legacy --sysconfdir=/etc/jabberd --localstatedir=/var
+ echo "#undef HAVE_GNUTLS_EXTRA" >>config.h
+ [ $NOEXTRACT -eq 1 ] || patch -Rp1 <$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..4f39b523e
--- /dev/null
+++ b/community/jabberd14/build-fix.patch
@@ -0,0 +1,84 @@
+diff -wbBur /mnt/temp/builds/staging-i686/sergej/build/src/jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc
+--- /mnt/temp/builds/staging-i686/sergej/build/src/jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc 2011-08-09 00:37:29.000000000 +0400
++++ jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc 2007-04-07 23:43:18.000000000 +0400
+@@ -910,8 +910,8 @@
+ }
+
+ /* separate this step from the next one, and check for a predicate in this step */
+- start_predicate = strchr((char*)path, '[');
+- next_step = strchr((char*)path, '/');
++ start_predicate = strchr(path, '[');
++ next_step = strchr(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,8 +1833,7 @@
+ if (lang != NULL && strchr(lang, '-') != NULL) {
+ snprintf(general_lang, sizeof(general_lang), "%s", lang);
+ if (strchr(lang, '-') != NULL) {
+- char *tmp = strchr((char*)lang, '-');
+- tmp[0] = 0;
++ strchr(lang, '-')[0] = 0;
+ } else {
+ general_lang[0] = 0;
+ }
+diff -wbBur /mnt/temp/builds/staging-i686/sergej/build/src/jabberd14-1.6.1.1/jabberd/log.cc jabberd14-1.6.1.1/jabberd/log.cc
+--- /mnt/temp/builds/staging-i686/sergej/build/src/jabberd14-1.6.1.1/jabberd/log.cc 2011-08-09 00:37:29.000000000 +0400
++++ jabberd14-1.6.1.1/jabberd/log.cc 2007-07-20 17:56:59.000000000 +0400
+@@ -86,7 +86,7 @@
+ char *pos, c = '\0';
+ if(zone != NULL && debug__zones != NULL)
+ {
+- pos = strchr((char*)zone,'.');
++ pos = strchr(zone,'.');
+ if(pos != NULL)
+ {
+ c = *pos;
+diff -wbBur /mnt/temp/builds/staging-i686/sergej/build/src/jabberd14-1.6.1.1/jabberd/mio_tls.cc jabberd14-1.6.1.1/jabberd/mio_tls.cc
+--- /mnt/temp/builds/staging-i686/sergej/build/src/jabberd14-1.6.1.1/jabberd/mio_tls.cc 2011-08-09 00:53:55.000000000 +0400
++++ jabberd14-1.6.1.1/jabberd/mio_tls.cc 2007-07-17 03:20:44.000000000 +0400
+@@ -43,7 +43,6 @@
+ #include <vector>
+ #include <list>
+ #include <iostream>
+-#include <gnutls/openpgp.h>
+
+ // Tell gcrypt that we are using libpth - had to move this to a plain C file
+ extern "C" void mio_tls_gcrypt_init(void);
+@@ -613,8 +612,7 @@
+ }
+
+ // 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, GNUTLS_OPENPGP_FMT_BASE64);
++ ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile);
+ if (ret < 0) {
+ log_error(NULL, "Error loading OpenPGP key pub=%s/priv=%s: %s", pubfile, privfile, gnutls_strerror(ret));
+ continue;
+@@ -633,8 +631,7 @@
+ }
+
+ // load the OpenPGP keyring
+-// ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file);
+- ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file, GNUTLS_OPENPGP_FMT_BASE64);
++ ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file);
+ if (ret < 0) {
+ log_error(NULL, "Error loading OpenPGP keyring %s: %s", file, gnutls_strerror(ret));
+ continue;
+@@ -643,8 +640,6 @@
+ continue;
+ }
+
+-
+-/*
+ // load GnuPG trustdb
+ if (j_strcmp(xmlnode_get_localname(cur), "trustdb") == 0) {
+ char const *const file = xmlnode_get_data(cur);
+@@ -661,7 +656,6 @@
+ continue;
+ }
+ }
+-*/
+
+ // setup protocols to use
+ if (j_strcmp(xmlnode_get_localname(cur), "protocols") == 0) {
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/40-hpet-permissions.rules b/community/jack2/40-hpet-permissions.rules
new file mode 100644
index 000000000..7af3780f9
--- /dev/null
+++ b/community/jack2/40-hpet-permissions.rules
@@ -0,0 +1,2 @@
+KERNEL=="rtc0", GROUP="audio"
+KERNEL=="hpet", GROUP="audio"
diff --git a/community/jack2/99-audio.conf b/community/jack2/99-audio.conf
new file mode 100644
index 000000000..eb76ef920
--- /dev/null
+++ b/community/jack2/99-audio.conf
@@ -0,0 +1,2 @@
+@audio - rtprio 99
+@audio - memlock unlimited
diff --git a/community/jack2/PKGBUILD b/community/jack2/PKGBUILD
new file mode 100644
index 000000000..f457100d7
--- /dev/null
+++ b/community/jack2/PKGBUILD
@@ -0,0 +1,139 @@
+# $Id: PKGBUILD 60072 2011-12-04 18:08:53Z 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')
+#pkgname= # single build (overrides split)
+_tarname=jack
+pkgver=1.9.7
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+url="http://jackaudio.org/"
+backup=(etc/security/limits.d/99-audio.conf)
+license=('GPL')
+makedepends=('python2' 'doxygen' 'libffado'
+ 'libsamplerate' 'dbus-core' 'celt')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('python2' 'doxygen'
+ 'libsamplerate' 'dbus-core' 'celt')
+source=("http://www.grame.fr/~letz/$_tarname-$pkgver.tar.bz2"
+ '99-audio.conf'
+ '40-hpet-permissions.rules')
+md5sums=('9759670feecbd43eeccf1c0f743ec199'
+ 'ae65b7c9ebe0fff6c918ba9d97ae342d'
+ '471aad533ff56c5d3cbbf65ce32cadef')
+
+_pyfix() {
+ sed -i 's:bin/env python:bin/env python2:' \
+ "$pkgdir/usr/bin/jack_control"
+}
+
+_wafconf() {
+ if [ "$CARCH" = "mips64el" ]; then
+ firewire=""
+ else
+ firewire=--firewire
+ fi
+ python2 waf configure --prefix=/usr \
+ --alsa \
+ $firewire \
+ --doxygen $@
+}
+
+_isbuild() {
+ printf "%s\n" ${pkgname[@]} | grep -qx $1
+}
+
+build() {
+ cd "$srcdir"
+
+ # fix doxygen building
+ sed -i 's:build/default/html:html:' $_tarname-$pkgver/wscript
+
+ # we may do 2 different builds
+ cp -r $_tarname-$pkgver $_tarname-dbus-$pkgver
+
+ # mixed dbus/classic build
+ if _isbuild jack2; then
+ cd $_tarname-$pkgver
+ msg2 "Running Mixed D-Bus/Classic build"
+ _wafconf --classic --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+
+ # dbus-ONLY build
+ if _isbuild jack2-dbus; then
+ cd $_tarname-dbus-$pkgver
+ msg2 "Running D-Bus-only build"
+ _wafconf --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+}
+
+package_jack2() {
+ ! _isbuild jack2 && return
+
+ pkgdesc="The next-generation JACK with SMP support"
+ depends=('libsamplerate')
+ optdepends=('libffado: FireWire support'
+ 'celt: NetJACK2 driver'
+ 'dbus-core: jackdbus'
+ 'python2: jack_control')
+[ "$CARCH" = "mips64el" ] && \
+ optdepends=('celt: NetJACK2 driver'
+ 'dbus-core: jackdbus'
+ 'python2: jack_control')
+ conflicts=('jack')
+ provides=('jack' 'jack-audio-connection-kit'
+ 'jackmp' 'jackdmp' 'jackdbus')
+
+ cd "$srcdir/$_tarname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ # fix for major python transition
+ _pyfix
+
+ # configure realtime access/scheduling
+ # see https://bugs.archlinux.org/task/26343
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+}
+
+package_jack2-dbus() {
+ ! _isbuild jack2-dbus && return
+
+ pkgdesc="The next-generation JACK with SMP support (for D-BUS interaction only)"
+ depends=('libsamplerate' 'dbus-core')
+ optdepends=('libffado: FireWire support'
+ 'celt: NetJACK2 driver'
+ 'python2: jack_control')
+[ "$CARCH" = "mips64el" ] && \
+ optdepends=('celt: NetJACK2 driver'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2')
+ provides=('jack' 'jack2' 'jack-audio-connection-kit'
+ 'jackmp' 'jackdmp' 'jackdbus')
+
+ cd "$srcdir/$_tarname-dbus-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ _pyfix
+
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/jansson/PKGBUILD b/community/jansson/PKGBUILD
new file mode 100644
index 000000000..583354aa6
--- /dev/null
+++ b/community/jansson/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 56380 2011-10-07 02:59:03Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: Dave Reisner <d@falconindy.com>
+
+pkgname=jansson
+pkgver=2.2.1
+pkgrel=1
+pkgdesc='C library for encoding, decoding and manipulating JSON data'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.digip.org/jansson/'
+license=('MIT')
+options=('!libtool')
+source=("$url/releases/$pkgname-$pkgver.tar.bz2")
+md5sums=('074373f2d101c52d70659be86647e7a1')
+
+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/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/javasqlite/PKGBUILD b/community/javasqlite/PKGBUILD
new file mode 100644
index 000000000..64157d8c6
--- /dev/null
+++ b/community/javasqlite/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 58850 2011-11-19 00:04:26Z guillaume $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=javasqlite
+pkgver=20110827
+pkgrel=1
+pkgdesc="Java support for SQLite database engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ch-werner.de/javasqlite/"
+license=('BSD')
+depends=('java-runtime<7')
+makedepends=('java-environment<7' 'sqlite3')
+options=('!libtool')
+source=(http://www.ch-werner.de/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('6fb577b1632425ddcf45f439886623b9')
+sha1sums=('b64eb3955cfba2388dd0cda7a9d5a5ff46db22e9')
+
+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..c4a17374b
--- /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' 'mips64el')
+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..f6ed1709d
--- /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' 'mips64el')
+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..fc3388cfa
--- /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' 'mips64el')
+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..806f00e61
--- /dev/null
+++ b/community/john/PKGBUILD
@@ -0,0 +1,86 @@
+# 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.8
+pkgrel=7
+_jumbover=8
+pkgdesc="John The Ripper - A fast password cracker (jumbo-$_jumbover included)"
+arch=('i686' 'x86_64' 'mips64el')
+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/g/john-$pkgver-jumbo-$_jumbover.diff.gz
+ ftp://ftp.kfki.hu/pub/packages/security/ssh/ossh/libdes-4.04b.tar.gz
+ params.h.patch)
+md5sums=('e6d7f261829610d6949c706ebac0517c'
+ '96cb581fd8447f3f96614fd365896b07'
+ 'c8d5c69f86c2eedb485583b0305284a1'
+ 'f69ed632eba8fb9e45847a4b4a323787')
+
+build() {
+ # jumbo patch
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -p1 < ${srcdir}/$pkgname-$pkgver-jumbo-$_jumbover.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
+
+ # enable OMP
+ sed -i 's|#OMPFLAGS = -fopenmp|OMPFLAGS = -fopenmp|' Makefile
+
+ # 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 -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 -m644 ${srcdir}/${pkgname}-${pkgver}/run/{dumb16,dumb32,dynamic}.conf \
+ ${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
+ ln -s john pdf2john
+ ln -s john rar2john
+ ln -s john ssh2john
+ ln -s john zip2john
+}
+
+# vim:set ts=2 sw=2 et:
+
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/jshon/PKGBUILD b/community/jshon/PKGBUILD
new file mode 100644
index 000000000..38674cb01
--- /dev/null
+++ b/community/jshon/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 57971 2011-11-05 09:47:31Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+pkgname=jshon
+pkgver=20111105
+pkgrel=1
+pkgdesc="A json parser for the shell."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kmkeen.com/jshon/"
+license=('MIT')
+depends=('jansson')
+makedepends=()
+optdepends=()
+source=(http://kmkeen.com/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('5d4c6d40ef4497473445931e777e280b')
+
+build() {
+ cd "$srcdir/$pkgname"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ install -Dm755 $pkgname "$pkgdir/usr/bin/$pkgname"
+ install -Dm644 $pkgname.1 "$pkgdir/usr/share/man/man1/$pkgname.1"
+}
diff --git a/community/judy/PKGBUILD b/community/judy/PKGBUILD
new file mode 100644
index 000000000..7ea6df59f
--- /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' 'mips64el')
+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..9584871f7
--- /dev/null
+++ b/community/jwm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56063 2011-09-30 07:00:29Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=jwm
+pkgver=2.1.0
+pkgrel=1
+pkgdesc="A lightweight window manager for the X11 Window System"
+arch=('i686' 'x86_64' 'mips64el')
+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=('e8fab21b2410eb82032b7c3472af642c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-fribidi
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make BINDIR="$pkgdir/usr/bin" MANDIR="$pkgdir/usr/share/man" \
+ SYSCONF="$pkgdir/etc" install
+}
diff --git a/community/kaa-base/PKGBUILD b/community/kaa-base/PKGBUILD
new file mode 100644
index 000000000..7074a24cb
--- /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' 'mips64el')
+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..cfdfd6e8b
--- /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' 'mips64el')
+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..18e1f6b50
--- /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' 'mips64el')
+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..ce6efc4cb
--- /dev/null
+++ b/community/kadu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 58524 2011-11-13 15:44:01Z andrea $
+# Maintainer: Mateusz Herych
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=kadu
+pkgver=0.10.1
+pkgrel=1
+pkgdesc="A Qt-based Jabber/XMPP and Gadu-Gadu client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kadu.net/"
+license=('GPL')
+depends=('libgadu' 'libxss' 'aspell' 'phonon' 'qca-ossl' 'libidn' 'libmpdclient')
+makedepends=('cmake' 'libao' 'libsndfile' 'libxtst' 'curl')
+source=(http://www.kadu.net/download/stable/$pkgname-$pkgver.tar.bz2)
+md5sums=('6211a9a9e02d645268cbf055892601a0')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ 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..fcb40d066
--- /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' 'mips64el')
+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..a57c02837
--- /dev/null
+++ b/community/kaudiocreator/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 57921 2011-11-04 14:03:31Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+
+pkgname=kaudiocreator
+pkgver=1.3
+pkgrel=2
+pkgdesc="A program for ripping and encoding Audio-CDs, encoding files from disk"
+arch=('i686' 'x86_64' 'mips64el')
+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=('6adce848d3cdc9d80a52d35144890c86')
+
+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..d0cd583ab
--- /dev/null
+++ b/community/kcheckers/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 55424 2011-09-12 07:36:46Z ebelanger $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=kcheckers
+pkgver=0.8.1
+pkgrel=7
+pkgdesc="Qt4-based checkers boardgame"
+arch=('i686' 'x86_64' 'mips64el')
+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}"
+ sed -i 's|/usr/local|/usr|' common.h
+ qmake kcheckers.pro
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}/usr" install
+ install -Dm644 "${srcdir}/kcheckers.desktop" "${pkgdir}/usr/share/applications/kcheckers.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..90c609c91
--- /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' 'mips64el')
+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..be06d5eb3
--- /dev/null
+++ b/community/kdbg/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 57376 2011-10-26 15:29:28Z 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.1
+pkgrel=1
+pkgdesc="A gdb GUI for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kdbg.org"
+license=('GPL')
+depends=('kdebase-runtime' 'gdb')
+makedepends=('automoc4' 'cmake')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/kdbg/Source%20Code/$pkgver/kdbg-$pkgver.tar.gz")
+md5sums=('a19095dce4cb5df0dbaa9368d400fc30')
+
+build() {
+ cd $srcdir
+ mkdir -p build
+ cd build
+ cmake ../${pkgname}-${pkgver} -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/kde4-kio-rapip/PKGBUILD b/community/kde4-kio-rapip/PKGBUILD
new file mode 100644
index 000000000..f4464db90
--- /dev/null
+++ b/community/kde4-kio-rapip/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 46077 2011-05-03 10:19:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ReNoM <renom@list.ru>
+
+pkgname=kde4-kio-rapip
+pkgver=0.2
+pkgrel=1
+pkgdesc="KIOSlave to browse through the PDA file system via the SynCE infrastructure"
+arch=(i686 x86_64 'mips64el')
+url="http://synce.sourceforge.net/"
+license="MIT"
+depends=('kdelibs' 'synce-libsynce' 'synce-librapi')
+makedepends=('gcc' 'cmake' 'automoc4')
+install=kde4-kio-rapip.install
+source=(http://downloads.sourceforge.net/synce/$pkgname-$pkgver.tar.gz)
+md5sums=('94473e10e1b4dd6040c646a8c7421d0c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR=$pkgdir install
+ install -Dm0644 LICENSE $pkgdir/usr/share/licenses/kde4-kio-rapip/LICENSE
+}
diff --git a/community/kde4-kio-rapip/kde4-kio-rapip.install b/community/kde4-kio-rapip/kde4-kio-rapip.install
new file mode 100644
index 000000000..b3ddbc43f
--- /dev/null
+++ b/community/kde4-kio-rapip/kde4-kio-rapip.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 1>/dev/null 2>/dev/null || true
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-mime-database usr/share/mime 1>/dev/null 2>/dev/null || true
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-mime-database usr/share/mime 1>/dev/null 2>/dev/null || true
+}
diff --git a/community/kdenlive/PKGBUILD b/community/kdenlive/PKGBUILD
new file mode 100644
index 000000000..3294a519f
--- /dev/null
+++ b/community/kdenlive/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 60345 2011-12-11 20:16:27Z 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.8.2.1
+pkgrel=1
+pkgdesc="A non-linear video editor for Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kdenlive.org/"
+license=('GPL')
+depends=('kdebase-runtime' 'mlt' 'dvgrab' 'qjson' 'qimageblitz'
+ 'libqzeitgeist')
+makedepends=('automoc4' 'cmake' 'gettext' 'mesa')
+install=kdenlive.install
+options=('docs')
+source=("http://downloads.sourceforge.net/kdenlive/kdenlive-${pkgver}.tar.gz"
+ glu.patch)
+md5sums=('96b39531eba98c77546e7eba45a744ce'
+ 'fd6c5fe46419ee505c562363d41f6e9f')
+
+build() {
+ export LDFLAGS="$LDFLAGS -lX11"
+ cd "${srcdir}"
+ mkdir -p build
+ cd build
+ (cd ../kdenlive-${pkgver} && patch -p1 <$srcdir/glu.patch)
+ cmake ../kdenlive-${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/glu.patch b/community/kdenlive/glu.patch
new file mode 100644
index 000000000..a4c2f21fb
--- /dev/null
+++ b/community/kdenlive/glu.patch
@@ -0,0 +1,11 @@
+diff -wbBur kdenlive-0.8.2/src/videoglwidget.cpp kdenlive-0.8.2.my/src/videoglwidget.cpp
+--- kdenlive-0.8.2/src/videoglwidget.cpp 2011-10-31 22:46:21.000000000 +0400
++++ kdenlive-0.8.2.my/src/videoglwidget.cpp 2011-11-02 14:54:10.000000000 +0400
+@@ -2,6 +2,7 @@
+ #include <QtGui>
+ #include <QtOpenGL>
+ #include "videoglwidget.h"
++#include <GL/glu.h>
+
+ #ifndef GL_TEXTURE_RECTANGLE_EXT
+ #define GL_TEXTURE_RECTANGLE_EXT GL_TEXTURE_RECTANGLE_NV
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..f0d900b55
--- /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' 'mips64el')
+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/keepalived/PKGBUILD b/community/keepalived/PKGBUILD
new file mode 100644
index 000000000..79361ec90
--- /dev/null
+++ b/community/keepalived/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net
+# Contributor: Andrea Zucchelli <zukka77@gmail.com>
+
+pkgname=keepalived
+pkgver=1.2.2
+pkgrel=1
+pkgdesc='implements an independent VRRPv2 stack and a userspace daemon for LVS cluster nodes healthchecks and LVS directors failover'
+arch=('i686' 'x86_64')
+url='http://www.keepalived.org/'
+license=('GPL2')
+backup=('etc/keepalived/keepalived.conf' 'etc/conf.d/keepalived')
+depends=('openssl' 'popt' 'libnl')
+source=("http://www.keepalived.org/software/$pkgname-$pkgver.tar.gz"
+ 'keepalived.rc'
+ 'keepalived.conf'
+ 'ip_vs_moved.patch')
+md5sums=('f68327ca142616a8463d2d105db122cd'
+ 'baeb62a682c2b59d732cea84bf52cc87'
+ '9c8142da8730ad27a345587dea83ced7'
+ '87ee19c85adaedd3eb11bea8a5865d47')
+
+build() {
+ cd $pkgname-$pkgver
+ patch -p1 -i ../ip_vs_moved.patch
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ # add initscripts
+ install -D -m 755 $pkgname.rc "${pkgdir}/etc/rc.d/$pkgname"
+ install -D -m 644 $pkgname.conf "${pkgdir}/etc/conf.d/$pkgname"
+
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ # clean pacakge init scripts
+ rm -r "$pkgdir/etc/rc.d/init.d" "$pkgdir/etc/sysconfig"
+ # move examples to /usr/share
+ install -d -m 755 "$pkgdir/usr/share/$pkgname"
+ mv "$pkgdir/etc/keepalived/samples" "$pkgdir/usr/share/$pkgname/samples"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/keepalived/ip_vs_moved.patch b/community/keepalived/ip_vs_moved.patch
new file mode 100644
index 000000000..e27873810
--- /dev/null
+++ b/community/keepalived/ip_vs_moved.patch
@@ -0,0 +1,23 @@
+--- keepalived-1.2.2/configure 2011-01-06 01:51:33.000000000 +0100
++++ keepalived-1.2.2.orig/configure 2011-11-24 19:36:32.051486626 +0100
+@@ -3973,7 +3973,7 @@
+
+ IPVS_SUPPORT="_WITHOUT_LVS_"
+ if test "$enable_lvs" != "no"; then
+- ac_fn_c_check_header_mongrel "$LINENO" "net/ip_vs.h" "ac_cv_header_net_ip_vs_h" "$ac_includes_default"
++ ac_fn_c_check_header_mongrel "$LINENO" "linux/ip_vs.h" "ac_cv_header_net_ip_vs_h" "$ac_includes_default"
+ if test "x$ac_cv_header_net_ip_vs_h" = x""yes; then :
+ IPVS_SUPPORT="_WITH_LVS_"
+ else
+diff -ru keepalived-1.2.2/configure.in keepalived-1.2.2.orig/configure.in
+--- keepalived-1.2.2/configure.in 2011-01-06 01:51:30.000000000 +0100
++++ keepalived-1.2.2.orig/configure.in 2011-11-24 19:36:11.797860077 +0100
+@@ -124,7 +124,7 @@
+ dnl ----[ Checks for LVS and VRRP support ]----
+ IPVS_SUPPORT="_WITHOUT_LVS_"
+ if test "$enable_lvs" != "no"; then
+- AC_CHECK_HEADER([net/ip_vs.h],
++ AC_CHECK_HEADER([linux/ip_vs.h],
+ [IPVS_SUPPORT="_WITH_LVS_"],
+ [
+ IPVS_SUPPORT="_WITHOUT_LVS_"
diff --git a/community/keepalived/keepalived.conf b/community/keepalived/keepalived.conf
new file mode 100644
index 000000000..225f02bf9
--- /dev/null
+++ b/community/keepalived/keepalived.conf
@@ -0,0 +1,16 @@
+# vim:set ts=2 sw=2 ft=sh et:
+# Options for keepalived. See `keepalived --help' output and keepalived(8) and
+# keepalived.conf(5) man pages for a list of all options. Here are the most
+# common ones :
+#
+# --vrrp -P Only run with VRRP subsystem.
+# --check -C Only run with Health-checker subsystem.
+# --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop.
+# --dont-release-ipvs -I Dont remove IPVS topology on daemon stop.
+# --dump-conf -d Dump the configuration data.
+# --log-detail -D Detailed log messages.
+# --log-facility -S 0-7 Set local syslog facility (default=LOG_DAEMON)
+#
+
+DAEMON_OPTS='-D'
+
diff --git a/community/keepalived/keepalived.rc b/community/keepalived/keepalived.rc
new file mode 100644
index 000000000..88bb90724
--- /dev/null
+++ b/community/keepalived/keepalived.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+NAME=keepalived
+DAEMON=/usr/sbin/keepalived
+PID=$(pidof -o %PPID $DAEMON)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping $NAME daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ reload)
+ stat_busy "Reloading $NAME daemon"
+ [[ $PID ]] && kill -HUP $PID &> /dev/null && stat_done && exit 0
+ stat_fail
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart|reload}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh noet:
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..f47d77121
--- /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' 'mips64el')
+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/kgraphviewer/PKGBUILD b/community/kgraphviewer/PKGBUILD
new file mode 100644
index 000000000..fe18a5398
--- /dev/null
+++ b/community/kgraphviewer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57923 2011-11-04 14:25:20Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kgraphviewer
+pkgver=2.1.1
+pkgrel=3
+pkgdesc="A Graphviz dot graph file viewer for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+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..8960ffefa
--- /dev/null
+++ b/community/kid3/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 58975 2011-11-20 18:17:53Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+
+pkgname=kid3
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kid3.sourceforge.net/"
+license=('GPL')
+depends=('id3lib' 'qt' 'tunepimp')
+makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl' 'kdelibs')
+options=('!makeflags')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('32c3bdf5a3f170076e46c5f3b9523f688e8ea6265d22d2264c1bcd318da9f32e')
+
+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..824a2406a
--- /dev/null
+++ b/community/kid3/kid3.changelog
@@ -0,0 +1,26 @@
+2011-11-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.0.1-1
+
+2011-09-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.0-1
+
+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..8ec315e7c
--- /dev/null
+++ b/community/kid3/kid3.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/kiwi/PKGBUILD b/community/kiwi/PKGBUILD
new file mode 100644
index 000000000..ad0fbeac0
--- /dev/null
+++ b/community/kiwi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 53351 2011-08-03 06:50:46Z 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.29
+pkgrel=1
+pkgdesc="A set of classes and wrappers for PyGTK"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+sha256sums=('0ffa912cd180b3092b3ff636c582ab2c40f0f8eb541ada07b1432631a2d49e90')
+
+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..3996eca85
--- /dev/null
+++ b/community/klavaro/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 52812 2011-07-28 17:27:25Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=klavaro
+pkgver=1.9.3
+pkgrel=1
+pkgdesc="Free touch typing tutor program"
+arch=('i686' 'x86_64' 'mips64el')
+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=('34c4609951177cf53dd9af98daeca36a')
+
+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..d3d763040
--- /dev/null
+++ b/community/kleansweep/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59212 2011-11-21 15:18:48Z spupykin $
+# 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 'mips64el')
+depends=('kdelibs3' 'python')
+makedepends=('scons')
+options=('libtool')
+#source=(http://linux-projects.net/d/kleansweep-$pkgver.tar.gz
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/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..136296f83
--- /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' 'mips64el')
+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..caf5ab674
--- /dev/null
+++ b/community/kmymoney/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 58094 2011-11-06 14:12:09Z lcarlier $
+# 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.6.1
+pkgrel=1
+pkgdesc="Personal finance manager for KDE which operates similarly to MS-Money or Quicken"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kmymoney2.sourceforge.net/"
+license=('GPL')
+depends=('kdebase-workspace' 'shared-mime-info' 'aqbanking' 'libofx' 'libalkimia' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'docbook-xml' 'docbook-xsl' 'boost')
+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=('5fcab9c4f1b5868aabb816a87c61cb025e69a191f6cb218cce3f29f0c1c1b77a')
+
+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/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..8928150e6
--- /dev/null
+++ b/community/knemo/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 57927 2011-11-04 15:11:18Z 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.2
+pkgrel=2
+pkgdesc="The KDE Network Monitor"
+arch=('i686' 'x86_64' 'mips64el')
+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=('4f90d81e2d0980ed3ae4e4fefc4bf20b')
+
+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..aba4638d0
--- /dev/null
+++ b/community/kovpn/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58772 2011-11-18 14:01:32Z 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=5
+pkgdesc="An OpenVPN client management interface for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+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
+DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
+ '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://projects.fslab.de/projects/kovpn/chrome/site/kovpn-${_pkgver}.tar.bz2"
+ "kovpn-disable-dcop.patch::https://bugs.archlinux.org/task/15464?getfile=4173")
+md5sums=('19b61cf9f84088baffbd5bb0a287422c'
+ '21171b74f76289daea1cc61eedaa4dba')
+
+build() {
+ cd $srcdir/$pkgname-$_pkgver
+
+ unset LDFLAGS
+ . /etc/profile.d/qt3.sh
+ export PATH=$QTDIR/bin:$PATH
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+
+ patch -Np1 -i ../kovpn-disable-dcop.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
+ make prefix=$pkgdir/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/kphotoalbum/PKGBUILD b/community/kphotoalbum/PKGBUILD
new file mode 100644
index 000000000..eebd4df6b
--- /dev/null
+++ b/community/kphotoalbum/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 57929 2011-11-04 16:33:01Z lcarlier $
+# 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=11
+pkgdesc="KDE Photo Album, picture collection manager"
+url="http://www.kphotoalbum.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('kdebase-runtime' 'libkipi' 'libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4' 'kdeedu-marble' 'kdemultimedia-mplayerthumbs')
+optdepends=('kdeedu-marble: integration with Marble'
+ 'kipi-plugins: add extra functionality'
+ 'kdemultimedia-mplayerthumbs: video thumbnails')
+install=${pkgname}.install
+source=("ftp://ftp.archlinux.org/other/community/${pkgname}/${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
+
+ 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..ebe6882e7
--- /dev/null
+++ b/community/kpovmodeler/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57931 2011-11-04 17:14:03Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kpovmodeler
+pkgver=1.1.3
+_kdever=4.1.1
+pkgrel=4
+pkgdesc="A graphical editor for povray scenes"
+arch=('i686' 'x86_64' 'mips64el')
+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..f8301f1a8
--- /dev/null
+++ b/community/krecipes/PKGBUILD
@@ -0,0 +1,38 @@
+# $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=2
+pkgdesc="A tool designed to make organizing your personal recipes collection fast and easy"
+arch=('i686' 'x86_64' 'mips64el')
+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..41882e485
--- /dev/null
+++ b/community/krename/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56339 2011-10-05 19:08:08Z andrea $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=krename
+pkgver=4.0.7
+pkgrel=2
+pkgdesc="A very powerfull batch file renamer for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+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.bz2)
+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..9671a0b62
--- /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' 'mips64el')
+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..4ecd121e4
--- /dev/null
+++ b/community/ksshaskpass/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+pkgname=ksshaskpass
+pkgver=0.5.3
+pkgrel=3
+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' 'mips64el')
+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..04662f644
--- /dev/null
+++ b/community/ktechlab/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58604 2011-11-16 15:28:16Z spupykin $
+# Maintainer: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+
+pkgname=ktechlab
+pkgver=0.3.7
+pkgrel=3
+pkgdesc="IDE for electronic circuits and microcontrollers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/ktechlab"
+license=("GPL")
+depends=('kdelibs3' 'gputils' 'gpsim')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ "$pkgname-gcc45.patch::http://patch-tracker.debian.org/patch/series/dl/ktechlab/0.3.7-10/40-gcc-4.5.patch")
+md5sums=('8e778ef8ce6d0dd4539f5532c933f6bf'
+ '126a04255a8288a7ee42fe47a81c0079')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ cd "${srcdir}/${pkgname}-$pkgver"
+ patch -p1 <$srcdir/$pkgname-gcc45.patch
+ ./configure --prefix=/opt/kde \
+ --disable-debug \
+ --without-arts
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ktikz/PKGBUILD b/community/ktikz/PKGBUILD
new file mode 100644
index 000000000..129dcaa23
--- /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' 'mips64el')
+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..95a8ceaa0
--- /dev/null
+++ b/community/ktoblzcheck/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 51218 2011-07-05 21:19:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Philipp Sandhaus <philipp.sandhaus@gmx.de>
+
+pkgname=ktoblzcheck
+pkgver=1.33
+pkgrel=1
+pkgdesc="A library to check account numbers and bank codes of German banks"
+arch=(i686 x86_64 'mips64el')
+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=('e9f62a9a64ee51ab43751eadcade0433'
+ 'a81a697bb3aaeffb7fac0ad7d9166e3f')
+
+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..5bfc53275
--- /dev/null
+++ b/community/ktoblzcheck/ktoblzcheck-python3.patch
@@ -0,0 +1,57 @@
+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..0eeb4ea94
--- /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' 'mips64el')
+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/kvirc/PKGBUILD b/community/kvirc/PKGBUILD
new file mode 100644
index 000000000..2c1779253
--- /dev/null
+++ b/community/kvirc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58785 2011-11-18 14:18:17Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=kvirc
+pkgver=4.0.4
+pkgrel=3
+pkgdesc="Qt-based IRC client"
+url="http://www.kvirc.net"
+depends=('python2' 'qt' 'libxss')
+arch=(i686 x86_64 'mips64el')
+makedepends=('cmake')
+license=('GPL')
+options=("!libtool")
+install=kvirc.install
+source=(ftp://ftp.kvirc.de/pub/kvirc/$pkgver/source/$pkgname-$pkgver.tar.bz2)
+md5sums=('26fd24979ae4a29bac9309b3b0c98788')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DWANT_KDE4=OFF \
+ -DWANT_PERL=ON \
+ -DWANT_PHONON=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ 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..ff3de078c
--- /dev/null
+++ b/community/kvpnc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58789 2011-11-18 14:22:42Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Danial Olsen <do@meyl.fo>
+
+pkgname=kvpnc
+pkgver=0.9.6a
+pkgrel=1
+pkgdesc="A KDE Desktop Environment frontend for various vpn clients"
+arch=(i686 x86_64 'mips64el')
+url="http://home.gna.org/kvpnc/"
+license=("GPL")
+depends=('kdelibs' 'hicolor-icon-theme')
+makedepends=('cmake' 'automoc4')
+install=kvpnc.install
+source=(http://download.gna.org/$pkgname/$pkgname-${pkgver}-kde4.tar.bz2)
+md5sums=('bf8b7224284f5d3f8ad5235c599fe9e7')
+
+build() {
+ export LDFLAGS=-lX11
+
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver}-kde4 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
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..b53c4a581
--- /dev/null
+++ b/community/kydpdict/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 58593 2011-11-16 14:44:57Z andrea $
+# 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' 'mips64el')
+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..3d9c83e8f
--- /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' 'mips64el')
+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/lash/PKGBUILD b/community/lash/PKGBUILD
new file mode 100644
index 000000000..16390c3ec
--- /dev/null
+++ b/community/lash/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=lash
+pkgver=0.6.0~rc2
+_relver=0.6.0.594
+pkgrel=6
+pkgdesc="A session management system for JACK and ALSA"
+arch=('i686' 'x86_64')
+options=('!libtool')
+#url="http://lash-audio.org"
+url="http://lash.nongnu.org/"
+license=('GPL')
+depends=('dbus-core' 'gtk2' 'jack' 'libxml2' 'python2')
+install=$pkgname.install
+source=("http://download.savannah.gnu.org/releases/lash/${pkgname}-${pkgver}.tar.bz2" "makefile.patch")
+md5sums=('af1dc4f4ceb284b1b0845de4f4c2fe47'
+ '24ceb7e3d008c25e1490102983165612')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_relver}"
+ patch -p0 < "${srcdir}/makefile.patch"
+
+ # Python2 fixes
+ export PYTHON="python2"
+ sed -i "s#env python#&2#" clients/lash_control
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_relver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/lash/lash.install b/community/lash/lash.install
new file mode 100644
index 000000000..a169a2211
--- /dev/null
+++ b/community/lash/lash.install
@@ -0,0 +1,6 @@
+post_install() {
+ printf "\n"
+ printf "==> You might need to add following line to your /etc/services(without quotes):\n"
+ printf "==> \"lash 14541/tcp # LASH client/server protocol\"\n"
+ printf "\n"
+}
diff --git a/community/lash/makefile.patch b/community/lash/makefile.patch
new file mode 100644
index 000000000..3d35a1d2d
--- /dev/null
+++ b/community/lash/makefile.patch
@@ -0,0 +1,14 @@
+--- docs/Makefile.in.orig 2008-11-09 22:45:28.000000000 +0100
++++ docs/Makefile.in 2011-07-23 17:12:26.000000000 +0200
+@@ -527,9 +527,9 @@
+ @HAVE_TEXI2HTML_TRUE@ mkdir -lash-manual-html-split; \
+ @HAVE_TEXI2HTML_TRUE@ fi
+ @HAVE_TEXI2HTML_TRUE@ cd lash-manual-html-one-page && \
+-@HAVE_TEXI2HTML_TRUE@ texi2html --number ../$(top_srcdir)/docs/lash-manual.texi
++@HAVE_TEXI2HTML_TRUE@ texi2html --number-footnotes --number-sections ../$(top_srcdir)/docs/lash-manual.texi
+ @HAVE_TEXI2HTML_TRUE@ cd lash-manual-html-split && \
+-@HAVE_TEXI2HTML_TRUE@ texi2html --number --split=chapter ../$(top_srcdir)/docs/lash-manual.texi
++@HAVE_TEXI2HTML_TRUE@ texi2html --number-footnotes --number-sections --split=chapter ../$(top_srcdir)/docs/lash-manual.texi
+ @HAVE_TEXI2HTML_TRUE@ touch html-manual-stamp
+ # 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/lastfm-client/PKGBUILD b/community/lastfm-client/PKGBUILD
new file mode 100644
index 000000000..d5fde5d7d
--- /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' 'mips64el')
+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/launchy/PKGBUILD b/community/launchy/PKGBUILD
new file mode 100644
index 000000000..05848ddd5
--- /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' 'mips64el')
+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..f01801220
--- /dev/null
+++ b/community/lazarus/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 58159 2011-11-07 11:17:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jens Adam (byte/jra) <j_adam@web.de>
+
+pkgname=lazarus
+pkgver=0.9.30.2
+pkgrel=1
+pkgdesc='Delphi-like IDE for FreePascal'
+url='http://www.lazarus.freepascal.org/'
+license=('GPL2' 'MPL' 'custom:LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+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=('0dcf54613c2f9d38a32d183431e2dfc9')
+
+build() {
+ cd $srcdir/${pkgname}
+ make FPC=/usr/bin/fpc clean bigide
+}
+
+package() {
+ cd $srcdir/${pkgname}
+
+ # 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/ldns/PKGBUILD b/community/ldns/PKGBUILD
new file mode 100644
index 000000000..49febb4d2
--- /dev/null
+++ b/community/ldns/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 56190 2011-10-03 10:19:02Z bisson $
+
+# 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.11
+pkgrel=1
+pkgdesc='Fast DNS library with DNSSEC support, including tools such as Drill'
+arch=('i686' 'x86_64' 'mips64el')
+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=('2c4537eee39a1af63e8dde4f35498ce78c968c1f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ _conf='--prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static=no --disable-rpath'
+ _tmp="$(mktemp -d)"
+
+ ./configure ${_conf}
+ make
+ make DESTDIR="${_tmp}" install
+
+ cd drill
+ ./configure ${_conf} --with-ldns="${_tmp}"
+ make
+
+ cd ../examples
+ ./configure ${_conf} --with-ldns="${_tmp}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ cd drill
+ make DESTDIR="${pkgdir}" install
+
+ cd ../examples
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/leafnode/PKGBUILD b/community/leafnode/PKGBUILD
new file mode 100644
index 000000000..7afa1252e
--- /dev/null
+++ b/community/leafnode/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59410 2011-11-24 15:33:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=leafnode
+pkgver=1.11.8
+pkgrel=4
+pkgdesc="implements a store & forward NNTP proxy (client and server) with IPv4 and IPv6"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://leafnode.sourceforge.net/"
+depends=('pcre' 'xinetd')
+license=('GPL')
+install=leafnode.install
+options=(!emptydirs)
+backup=('etc/xinetd.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 \
+ --with-user=9 \
+ --with-group=13
+ sed -i 's|#define NEWS_USER .*|#define NEWS_USER "news"|' config.h
+ sed -i 's|#define NEWS_GROUP .*|#define NEWS_GROUP "news"|' config.h
+ make
+ make DESTDIR=$pkgdir install
+ chown -R root.root $pkgdir
+ 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..5f8a74c04
--- /dev/null
+++ b/community/leafnode/leafnode.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo "-- Adding user 'news' and group 'news', chowning /var/spool/news"
+ grep -e "^news:" /etc/group 2>&- >&- || groupadd -g 13 -r news 2>&- >&-
+ grep -e "^news:" /etc/passwd 2>&- >&- || useradd -u 9 -r -m -g news news 2>&- >&-
+ 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 "-- Don't forget to remove /var/spool/news directory"
+}
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/leptonica/PKGBUILD b/community/leptonica/PKGBUILD
new file mode 100644
index 000000000..d5e3fec82
--- /dev/null
+++ b/community/leptonica/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 57411 2011-10-27 08:39:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Christoph Drexler <chrdr at gmx dot at>
+
+pkgname=leptonica
+pkgver=1.68
+pkgrel=2
+pkgdesc="Software that is broadly useful for image processing and image analysis applications"
+arch=('i686' 'x86_64')
+url="http://www.leptonica.com/"
+license=('custom')
+depends=('glibc')
+makedepends=('giflib' 'gnuplot' 'libjpeg' 'libpng' 'libtiff' 'zlib')
+# 'webp'
+optdepends=('giflib: for supporting gif files'
+ 'gnuplot: gnuplot support'
+ 'libjpeg: for supporting jpeg files'
+ 'libpng: for supporting png files'
+ 'libtiff: for supporting tiff files'
+ 'zlib: for supporting compressed files')
+# 'webp: for supporting webp files'
+source=(http://www.leptonica.com/source/leptonica-${pkgver}.tar.gz)
+md5sums=('5cd7092f9ff2ca7e3f3e73bfcd556403')
+
+build() {
+ cd ${srcdir}/leptonica-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/leptonica-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D leptonica-license.txt ${pkgdir}/usr/share/licenses/leptonica/leptonica-license.txt
+}
diff --git a/community/libacpi/PKGBUILD b/community/libacpi/PKGBUILD
new file mode 100644
index 000000000..be13c8864
--- /dev/null
+++ b/community/libacpi/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 57009 2011-10-18 09:29:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libacpi
+pkgver=0.2
+pkgrel=3
+pkgdesc="general purpose lib to gather ACPI data"
+arch=(i686 x86_64 'mips64el')
+url="http://www.ngolde.de/libacpi.html"
+license=('GPL')
+depends=()
+options=(!emptydirs)
+source=(http://www.ngolde.de/download/${pkgname}-${pkgver}.tar.gz
+ http://ftp.de.debian.org/debian/pool/main/liba/libacpi/libacpi_${pkgver}-4.diff.gz)
+md5sums=('05b53dd7bead66dda35fec502b91066c'
+ '30ecd3c281dfe7e11670618fdd8e3c5b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 <$srcdir/libacpi_${pkgver}-4.diff
+ make PREFIX=/usr
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+}
diff --git a/community/libaio/PKGBUILD b/community/libaio/PKGBUILD
new file mode 100644
index 000000000..3584927df
--- /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' 'mips64el')
+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/libalkimia/PKGBUILD b/community/libalkimia/PKGBUILD
new file mode 100644
index 000000000..2f14f4bf6
--- /dev/null
+++ b/community/libalkimia/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 58105 2011-11-06 17:14:04Z lcarlier $
+# Contributor: gumper <gumper1034@gmail.com>
+
+pkgname=libalkimia
+pkgver=4.3.1
+pkgrel=2
+pkgdesc="A library with common classes and functionality used by finance applications for the KDE SC."
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4' 'doxygen')
+url=('http://kde-apps.org/content/show.php/libalkimia?content=137323')
+license=('LGPL')
+arch=('i686' 'x86_64')
+source=("http://kde-apps.org/CONTENT/content-files/137323-libalkimia-$pkgver.tar.bz2")
+md5sums=('73d7f1365118019030b2045d95c92456')
+
+build() {
+ cd "${srcdir}"
+
+ mkdir build
+ cd build
+
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=DebugFull \
+ -Wno-dev
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+
+ make DESTDIR="${pkgdir}" 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..fbe7c3bbd
--- /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' 'mips64el')
+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..5736cfed5
--- /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' 'mips64el')
+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..901d370fc
--- /dev/null
+++ b/community/libcompizconfig/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 52290 2011-07-23 10:42:39Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=libcompizconfig
+pkgver=0.8.8
+pkgrel=1
+pkgdesc="Compiz configuration system library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.compiz.org"
+license=('GPL')
+depends=('compiz-core' 'libxml2' 'libxcomposite' 'libxinerama' 'startup-notification'
+ 'libxml++')
+makedepends=('intltool' 'pkgconfig')
+conflicts=('libcompizconfig-git')
+source=(http://releases.compiz-fusion.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+options=('!emptydirs' '!libtool')
+sha1sums=('8ea1f15fd9e1e2eb37a9814646659a31a8018fd8')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ CPPFLAGS="$CPPFLAGS -I/usr/include/compiz -I/usr/include/startup-notification-1.0 \
+ -I/usr/include/libxml2" ./configure --prefix=/usr --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libconfig/PKGBUILD b/community/libconfig/PKGBUILD
new file mode 100644
index 000000000..aff83cb5a
--- /dev/null
+++ b/community/libconfig/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 55398 2011-09-11 21:17:02Z 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.8
+pkgrel=1
+pkgdesc="C/C++ Configuration File Library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('36788da452e9fcfc8efb7661ef5d31ef')
+
+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..ba01933d5
--- /dev/null
+++ b/community/libcss/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libcss
+pkgver=0.1.0
+pkgrel=2
+pkgdesc="A CSS parser and selection engine."
+arch=('i686' 'x86_64' 'mips64el')
+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=('47b9bba60fffe16ecebeba578c89fd40')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}-src
+
+ export CFLAGS="-Wno-error=unused-but-set-variable"
+
+ make PREFIX=/usr COMPONENT_TYPE="lib-shared"
+ make PREFIX=/usr COMPONENT_TYPE="lib-static"
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}-src
+
+ make install PREFIX=/usr DESTDIR="${pkgdir}" COMPONENT_TYPE="lib-shared"
+ make install PREFIX=/usr DESTDIR="${pkgdir}" COMPONENT_TYPE="lib-static"
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/libcuefile/PKGBUILD b/community/libcuefile/PKGBUILD
new file mode 100644
index 000000000..7d20e122b
--- /dev/null
+++ b/community/libcuefile/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57124 2011-10-22 02:51:18Z ebelanger $
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=libcuefile
+pkgver=475
+pkgrel=1
+pkgdesc="A library to work with CUE files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.musepack.net/index.php?pg=src"
+license=('GPL2')
+depends=('glibc')
+makedepends=('cmake')
+source=(http://files.musepack.net/source/${pkgname}_r${pkgver}.tar.gz)
+md5sums=('1a6ac52e1080fd54f0f59372345f1e4e')
+
+build() {
+ mkdir "${srcdir}/${pkgname}_r${pkgver}/build"
+ cd "${srcdir}/${pkgname}_r${pkgver}/build"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}_r${pkgver}/build"
+ 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..cc8c4b2be
--- /dev/null
+++ b/community/libdaq/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56490 2011-10-07 10:32:45Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=libdaq
+pkgver=0.6.2
+pkgrel=1
+pkgdesc='Data Acquisition library for packet I/O.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.snort.org/'
+license=('GPL')
+depends=('libpcap')
+makedepends=('ca-certificates')
+options=('!libtool')
+source=('http://www.snort.org/downloads/1170')
+md5sums=('6ea8aaa6f067f8b8ef6de45b95d55875')
+
+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..b3d03e021
--- /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' 'mips64el')
+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..33d422607
--- /dev/null
+++ b/community/libdbi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 59571 2011-11-28 08:58:19Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Carl Flippin <carlf@photocarl.org>
+
+pkgname=libdbi
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="A database independant abstraction layer for C"
+url="http://libdbi.sourceforge.net"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+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 CFLAGS="-fno-fast-math"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libdbi/libdbi.install b/community/libdbi/libdbi.install
new file mode 100644
index 000000000..1dcdad1a1
--- /dev/null
+++ b/community/libdbi/libdbi.install
@@ -0,0 +1,13 @@
+post_install() {
+ ldconfig
+}
+
+post_upgrade() {
+ ldconfig
+}
+
+post_remove() {
+ ldconfig
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libdesktop-agnostic/PKGBUILD b/community/libdesktop-agnostic/PKGBUILD
new file mode 100644
index 000000000..9244c165a
--- /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' 'mips64el')
+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..f3fd73aa4
--- /dev/null
+++ b/community/libdlna/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 58580 2011-11-15 20:11:36Z spupykin $
+# Maintainer: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+# Contributor: kastor <kastor@fobos.org.ar>
+
+pkgname=libdlna
+pkgver=0.2.3
+pkgrel=10
+pkgdesc="An open-source implementation of DLNA (Digital Living Network Alliance) standards "
+url="http://libdlna.geexbox.org"
+license=("LGPL")
+arch=('i686' 'x86_64' 'mips64el')
+options=('!libtool' '!makeflags') # not parallel safe, error find -ldlna
+makedepends=('ctags')
+depends=('glibc' 'ffmpeg')
+source=("http://libdlna.geexbox.org/releases/${pkgname}-${pkgver}.tar.bz2" "libdlna-0.2.3-libavcodec-libavformat-include-paths.patch" "ffmpeg-0.8.patch")
+md5sums=('2c974f95b711e5fd07f78fc4ebfcca66'
+ '937f1aebf930571127856056bd1d3959'
+ 'a5c9f58233fc7fc79b5fe550b297273b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i $srcdir/libdlna-0.2.3-libavcodec-libavformat-include-paths.patch
+ patch -Np1 -i $srcdir/ffmpeg-0.8.patch
+ ./configure --prefix=/usr --includedir=/usr/include/libavformat
+ make -j1 # not parallel safe, error find -ldlna
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make INSTALL=/bin/install DESTDIR=${pkgdir} install
+}
diff --git a/community/libdlna/ffmpeg-0.8.patch b/community/libdlna/ffmpeg-0.8.patch
new file mode 100644
index 000000000..63b33a451
--- /dev/null
+++ b/community/libdlna/ffmpeg-0.8.patch
@@ -0,0 +1,19 @@
+diff -aur libdlna-0.2.3/src/profiles.c libdlna-0.2.3.new/src/profiles.c
+--- libdlna-0.2.3/src/profiles.c 2007-11-26 21:47:43.000000000 +0100
++++ libdlna-0.2.3.new/src/profiles.c 2011-10-31 16:06:34.000000000 +0100
+@@ -205,13 +205,13 @@
+ for (i = 0; i < ctx->nb_streams; i++)
+ {
+ if (audio_stream == -1 &&
+- ctx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
++ ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+ {
+ audio_stream = i;
+ continue;
+ }
+ else if (video_stream == -1 &&
+- ctx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO)
++ ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
+ {
+ video_stream = i;
+ continue;
diff --git a/community/libdlna/libdlna-0.2.3-libavcodec-libavformat-include-paths.patch b/community/libdlna/libdlna-0.2.3-libavcodec-libavformat-include-paths.patch
new file mode 100644
index 000000000..8620ab2eb
--- /dev/null
+++ b/community/libdlna/libdlna-0.2.3-libavcodec-libavformat-include-paths.patch
@@ -0,0 +1,89 @@
+https://bugs.gentoo.org/show_bug.cgi?id=297872
+http://hg.geexbox.org/libdlna/raw-rev/4113a728a2ca
+
+From 81130b9ade274bfc53900999ccc6f963ae9ce9d7 Mon Sep 17 00:00:00 2001
+From: Jeremy Olexa <darkside@gentoo.org>
+Date: Tue, 22 Dec 2009 00:22:42 -0600
+Subject: [PATCH] Update reference to ffmpeg header files
+
+---
+ configure | 4 ++--
+ src/av_mpeg4_part10.c | 2 +-
+ src/av_mpeg4_part2.c | 2 +-
+ src/containers.c | 2 +-
+ src/profiles.h | 4 ++--
+ 5 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure b/configure
+index 8acbd9d..85c1091 100755
+--- a/configure
++++ b/configure
+@@ -610,9 +610,9 @@ if [ -n "$ffmpegdir" ]; then
+ fi
+
+ echolog "Checking for libavformat ..."
+-check_lib ffmpeg/avformat.h av_register_all -lavformat || die "Error, can't find libavformat !"
++check_lib libavformat/avformat.h av_register_all -lavformat || die "Error, can't find libavformat !"
+ echolog "Checking for libavcodec ..."
+-check_lib ffmpeg/avcodec.h avcodec_register_all -lavcodec || die "Error, can't find libavcodec !"
++check_lib libavcodec/avcodec.h avcodec_register_all -lavcodec || die "Error, can't find libavcodec !"
+
+ #################################################
+ # version
+diff --git a/src/av_mpeg4_part10.c b/src/av_mpeg4_part10.c
+index bd17022..f9c8ee5 100644
+--- a/src/av_mpeg4_part10.c
++++ b/src/av_mpeg4_part10.c
+@@ -26,7 +26,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
+-#include <ffmpeg/avcodec.h>
++#include <libavcodec/avcodec.h>
+
+ #include "dlna_internals.h"
+ #include "profiles.h"
+diff --git a/src/av_mpeg4_part2.c b/src/av_mpeg4_part2.c
+index 0148384..823e1b6 100644
+--- a/src/av_mpeg4_part2.c
++++ b/src/av_mpeg4_part2.c
+@@ -26,7 +26,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
+-#include <ffmpeg/avcodec.h>
++#include <libavcodec/avcodec.h>
+
+ #include "dlna_internals.h"
+ #include "profiles.h"
+diff --git a/src/containers.c b/src/containers.c
+index 71b51f7..ca0819b 100644
+--- a/src/containers.c
++++ b/src/containers.c
+@@ -4,7 +4,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
+-#include <ffmpeg/avformat.h>
++#include <libavformat/avformat.h>
+
+ #include "containers.h"
+ #include "profiles.h"
+diff --git a/src/profiles.h b/src/profiles.h
+index 7b86d33..a7fc0fd 100644
+--- a/src/profiles.h
++++ b/src/profiles.h
+@@ -22,8 +22,8 @@
+ #ifndef _PROFILES_H_
+ #define _PROFILES_H_
+
+-#include <ffmpeg/avcodec.h>
+-#include <ffmpeg/avformat.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
+
+ #include "dlna_internals.h"
+ #include "containers.h"
+--
+1.6.4.4
+
diff --git a/community/libdnet/PKGBUILD b/community/libdnet/PKGBUILD
new file mode 100644
index 000000000..433626ab2
--- /dev/null
+++ b/community/libdnet/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 58611 2011-11-16 15:32:03Z spupykin $
+# 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 'mips64el')
+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
+ [ $CARCH == "mips64el" ] && export CFLAGS+=-fPIC
+
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --target=${CHOST} --host=${CHOST} --build=${CHOST}
+ 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..cb6999ace
--- /dev/null
+++ b/community/libesmtp/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 57896 2011-11-04 08:47:23Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libesmtp
+pkgver=1.0.6
+pkgrel=2
+pkgdesc='A library to manage posting mail to a preconfigured MTA.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.stafford.uklinux.net/libesmtp/'
+license=('LGPL')
+depends=('openssl')
+source=("http://www.stafford.uklinux.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('bf3915e627fd8f35524a8fdfeed979c8')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libev/PKGBUILD b/community/libev/PKGBUILD
new file mode 100644
index 000000000..e9dec093d
--- /dev/null
+++ b/community/libev/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 46270 2011-05-04 12:13:34Z rvanharen $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Thomas Haider <t.haider@vcnc.org>
+
+pkgname=libev
+pkgver=4.04
+pkgrel=1
+pkgdesc="A full-featured and high-performance event loop"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://software.schmorp.de/pkg/libev.html"
+license=('BSD')
+depends=('glibc')
+options=('!libtool')
+source=(http://dist.schmorp.de/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('7768c2bcce30dbf76672e51642a655479dd45772')
+
+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..c2b2b6d0c
--- /dev/null
+++ b/community/libexosip2/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 47119 2011-05-17 07:23:32Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=libexosip2
+pkgver=3.5.0
+pkgrel=1
+pkgdesc="A library that hides the complexity of using SIP for multimedia session establishement"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://savannah.nongnu.org/projects/exosip/"
+license=('GPL')
+depends=('libosip2>=3.5.0' 'openssl')
+options=(!libtool)
+source=(http://download.savannah.nongnu.org/releases/exosip/libeXosip2-${pkgver/_/-}.tar.gz)
+md5sums=('51e85725571870614e448f63c33c8996')
+
+build() {
+ cd "$srcdir/libeXosip2-${pkgver/_/-}"
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd "$srcdir/libeXosip2-${pkgver/_/-}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/libextractor/PKGBUILD b/community/libextractor/PKGBUILD
new file mode 100644
index 000000000..339bf28da
--- /dev/null
+++ b/community/libextractor/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58358 2011-11-12 10:52:51Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s@gmail.com>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libextractor
+pkgver=0.6.2
+pkgrel=5
+pkgdesc="A library used to extract meta-data from files of arbitrary type"
+arch=("i686" "x86_64" 'mips64el')
+license=('GPL')
+url="http://gnunet.org/libextractor/"
+depends=('libvorbis' 'libtool' 'gtk2' 'libgsf' 'libmpeg2' 'texinfo')
+makedepends=('flac' 'poppler' 'exiv2' 'qt')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..368baa4fd
--- /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' 'mips64el')
+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/libfaketime/PKGBUILD b/community/libfaketime/PKGBUILD
new file mode 100644
index 000000000..a982b3970
--- /dev/null
+++ b/community/libfaketime/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 47438 2011-05-23 06:26:34Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Dan Serban
+# Contributor: Ross Melin <rdmelin@gmail.com>
+
+pkgname=libfaketime
+pkgver=0.8.1
+pkgrel=1
+pkgdesc='Report fake dates and times to programs without having to change the system-wide time.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.code-wizards.com/projects/libfaketime/'
+license=('GPL2')
+source=("http://www.code-wizards.com/projects/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('113d75d73e39f0f5022dc7385628d57c')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ make PREFIX=/usr 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..3bb9cbc28
--- /dev/null
+++ b/community/libfbclient/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Carlier Laurent <lordheavym@gmail.com>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgname=libfbclient
+pkgver=2.5.1.26351
+pkgrel=1
+pkgdesc="Client library for Firebird."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.firebirdsql.org/"
+license=('custom')
+depends=('gcc-libs' 'icu')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/firebird/Firebird-$pkgver-0.tar.bz2
+ LICENSE)
+md5sums=('1772fba4f09c8fc84d989282405f90fd'
+ '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/libfm/PKGBUILD b/community/libfm/PKGBUILD
new file mode 100644
index 000000000..a6520ffcf
--- /dev/null
+++ b/community/libfm/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Unknown47 <unknown47r@gmail.com>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=libfm
+pkgver=0.1.17
+pkgrel=1.1
+pkgdesc="the core of next generation file manager PCManFM"
+url="http://pcmanfm.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+groups=('lxde')
+options=('!libtool')
+install=libfm.install
+depends=('gtk2' 'menu-cache' 'shared-mime-info' 'udisks' 'desktop-file-utils')
+source=(http://downloads.sourceforge.net/pcmanfm/$pkgname-$pkgver.tar.gz)
+md5sums=('a97e03d973e6ac727f28d0934d6c9ad5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+# sed -i -e "s|docs/Makefile docs/reference/Makefile docs/reference/libfm/Makefile ||" configure
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-udisks \
+ --with-gnu-ld
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libfm/libfm.install b/community/libfm/libfm.install
new file mode 100644
index 000000000..076da308e
--- /dev/null
+++ b/community/libfm/libfm.install
@@ -0,0 +1,15 @@
+post_install() {
+ usr/bin/update-mime-database usr/share/mime > /dev/null
+ usr/bin/update-desktop-database -q
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+
diff --git a/community/libgalago-gtk/PKGBUILD b/community/libgalago-gtk/PKGBUILD
new file mode 100644
index 000000000..97b6966a4
--- /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 'mips64el')
+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..6e0fd95f9
--- /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 'mips64el')
+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..f46ce3f00
--- /dev/null
+++ b/community/libgda3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 49363 2011-06-15 09:20:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libgda3
+pkgver=3.1.5
+pkgrel=9
+pkgdesc="data abstraction layer; with mysql, pgsql, ldap, xml, sqlite providers"
+arch=('i686' 'x86_64' 'mips64el')
+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/libgda4/PKGBUILD b/community/libgda4/PKGBUILD
new file mode 100644
index 000000000..080555e83
--- /dev/null
+++ b/community/libgda4/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 57409 2011-10-27 03:51:27Z ebelanger $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libgda4
+pkgver=4.2.10
+pkgrel=1
+pkgdesc="Data abstraction layer with mysql, pgsql, xml, sqlite providers"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtksourceview2' 'libunique' 'libxslt' 'libsoup'
+ 'libmysqlclient' 'postgresql-libs' 'python2' 'libgnome-keyring'
+ 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('intltool' 'gobject-introspection' )
+options=('!libtool')
+url="http://www.gnome-db.org"
+install=libgda.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/libgda/${pkgver%.*}/libgda-${pkgver}.tar.xz)
+sha256sums=('cfaf228c62fbdb461c3bfedad919d5dfeb6a2e624c223910e275a53b97d3a431')
+
+build() {
+ cd "${srcdir}/libgda-${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 \
+ --disable-gtk-doc
+ make
+}
+
+package() {
+ cd "${srcdir}/libgda-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "$pkgdir/usr/share/icons"
+ rm -rf "$pkgdir/usr/share/gtk-doc"
+ rm -rf "$pkgdir"/usr/bin/{gda-list-config,gda-list-server-op,gda-sql}
+ rm -rf "$pkgdir"/usr/share/man/man1/gda-sql.1
+}
diff --git a/community/libgda4/libgda.install b/community/libgda4/libgda.install
new file mode 100644
index 000000000..eb5d48353
--- /dev/null
+++ b/community/libgda4/libgda.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/libgda-4.0/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/libgdamm/PKGBUILD b/community/libgdamm/PKGBUILD
new file mode 100644
index 000000000..d9e1dd036
--- /dev/null
+++ b/community/libgdamm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 59045 2011-11-20 22:55:36Z heftig $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Jan de Groot <jan@jgc.homeip.net>
+
+pkgbase=libgdamm
+pkgname=(libgdamm libgdamm-docs)
+pkgver=4.99.6
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('libgda' 'libsigc++' 'glibmm' 'glibmm-docs')
+url="http://www.gtkmm.org/"
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgbase/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('d1b7e5101c192695e1fad96f6371d4c2362adb3e8f452f2cb2c89e4380d4f492')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_libgdamm() {
+ pkgdesc="C++ bindings for libgda"
+ depends=('libgda' 'glibmm' '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..5fe0a4863
--- /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' 'mips64el')
+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..0180e25f0
--- /dev/null
+++ b/community/libgexiv2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56343 2011-10-05 19:08:19Z andrea $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=libgexiv2
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="GObject-based wrapper around the Exiv2 library."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://trac.yorba.org/wiki/gexiv2"
+license=('GPL2')
+depends=('exiv2' 'glib2')
+options=('!libtool')
+source=(http://yorba.org/download/gexiv2/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('828894bb4bcb4625820b8c0c468417e9cd8c5c2f')
+
+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..c94b7e300
--- /dev/null
+++ b/community/libghemical/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Xyne <ac xunilhcra enyx, backwards>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=libghemical
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Library containing computational chemistry facility of ghemical"
+license=("GPL")
+arch=(i686 x86_64 'mips64el')
+url="http://bioinformatics.org/ghemical/libghemical/"
+depends=('gcc-libs')
+makedepends=('openbabel' 'intltool>=0.40.0')
+options=(!libtool)
+source=(http://bioinformatics.org/ghemical/download/release20111012/${pkgname}-${pkgver}.tar.gz)
+md5sums=('1d5c9c19bb119470d2bb41a7e681eafd')
+
+build() {
+ cd -- "$srcdir/$pkgname-$pkgver/"
+ ./configure --prefix=/usr --enable-openbabel
+ make
+}
+
+package() {
+ cd -- "$srcdir/$pkgname-$pkgver/"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/libgig/PKGBUILD b/community/libgig/PKGBUILD
new file mode 100644
index 000000000..c7facb6c5
--- /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 'mips64el')
+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..234809a11
--- /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' 'mips64el')
+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..3d3335105
--- /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' 'mips64el')
+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/libharu/PKGBUILD b/community/libharu/PKGBUILD
new file mode 100644
index 000000000..fb1a48645
--- /dev/null
+++ b/community/libharu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 51967 2011-07-18 20:03:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : SpepS <dreamspepser at yahoo dot it>
+# Contributor: Auguste <auguste@gmail.com>
+# Contributor: Jose Negron <josenj.arch@mailnull.com>
+
+pkgname=libharu
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="C/C++ library for generating PDF documents"
+url="http://libharu.org/wiki/Main_Page"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:ZLIB')
+depends=('libpng' 'gcc-libs')
+options=(!libtool)
+source=("http://libharu.org/files/$pkgname-$pkgver.tar.gz")
+md5sums=('63da8e087744f1d6cf16f9501b1cb766')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+ # license
+ install -d "$pkgdir/usr/share/licenses/$pkgname"
+ sed -n '102,120p' README > "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/libident/PKGBUILD b/community/libident/PKGBUILD
new file mode 100644
index 000000000..c76f66a97
--- /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' 'mips64el')
+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..14bf68291
--- /dev/null
+++ b/community/libinfinity/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 54465 2011-08-18 15:07:27Z bluewind $
+# 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.5.1
+pkgrel=2
+pkgdesc="An implementation of the Infininote protocol written in GObject-based C"
+arch=('i686' 'x86_64' 'mips64el')
+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=('85e6d75e101fe25503653d2202054eff')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --localstatedir=/var
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ rm -rf $pkgdir/var
+}
diff --git a/community/libiptcdata/PKGBUILD b/community/libiptcdata/PKGBUILD
new file mode 100644
index 000000000..358bc3197
--- /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' 'mips64el')
+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..06400e82c
--- /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" 'mips64el')
+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/liblockfile/PKGBUILD b/community/liblockfile/PKGBUILD
new file mode 100644
index 000000000..6493172c0
--- /dev/null
+++ b/community/liblockfile/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 50818 2011-07-01 16:29:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Wagner <Andreas dot Wagner at em dot uni-frankfurt dot de>
+
+pkgname=liblockfile
+pkgver=1.08_4
+_basever=1.08
+pkgrel=1.1
+pkgdesc="a library with NFS-safe locking functions"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://packages.debian.org/unstable/libs/liblockfile1"
+depends=('glibc')
+makedepends=()
+source=(http://ftp.debian.org/debian/pool/main/libl/$pkgname/${pkgname}_${_basever}.orig.tar.gz
+ http://ftp.debian.org/debian/pool/main/libl/$pkgname/${pkgname}_${pkgver/_/-}.debian.tar.bz2)
+md5sums=('c24e2dfb4a2aab0263fe5ac1564d305e'
+ '50c0c049d2838704f5720f5fd9eaddac')
+
+build() {
+ cd $srcdir/$pkgname-${_basever}
+ for p in `cat ../debian/patches/series` ; do
+ patch -p1 < ../debian/patches/$p
+ done
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-${_basever}
+ mkdir -p $pkgdir/usr/{lib,bin,include,share/man/man1,share/man/man3}
+ make install prefix=$pkgdir/usr mandir=$startdir/pkg/usr/share/man
+}
diff --git a/community/libmaa/PKGBUILD b/community/libmaa/PKGBUILD
new file mode 100644
index 000000000..ea5a4e14e
--- /dev/null
+++ b/community/libmaa/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 1528 2009-08-25 09:47:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libmaa
+pkgver=1.3.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' 'mips64el')
+depends=('glibc')
+makedepends=('flex')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/dict/${pkgname}-${pkgver}.tar.gz")
+md5sums=('04fcb72e8767c0795059bf397f5a0355')
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libmatchbox/PKGBUILD b/community/libmatchbox/PKGBUILD
new file mode 100644
index 000000000..0aafb6d11
--- /dev/null
+++ b/community/libmatchbox/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 58821 2011-11-18 16:44:16Z 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' 'mips64el')
+license=('LGPL')
+depends=('pango' 'libpng' 'libjpeg>=7' 'xsettings-client' 'libxext')
+options=('!libtool')
+url="http://matchbox-project.org/"
+source=(http://matchbox-project.org/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..2ab1f7b20
--- /dev/null
+++ b/community/libmatio/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59370 2011-11-23 21:07:37Z andrea $
+# 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' 'mips64el')
+license=('LGPL')
+url="http://sourceforge.net/projects/matio"
+depends=('gcc-libs')
+makedepends=('gcc-fortran')
+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..860042a5a
--- /dev/null
+++ b/community/libmediainfo/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58331 2011-11-11 18:59:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: hydro <hydro@freenet.de>
+
+pkgname=libmediainfo
+pkgver=0.7.51
+pkgrel=1
+pkgdesc="shared library for mediainfo"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ libmediainfo-0.7.50-libmms.patch)
+md5sums=('eb377eebb40d64bf980c857f36cc5b51'
+ '2f4b21cc250f663d52b497dedb963e3b')
+
+build() {
+ cd $srcdir/MediaInfoLib/Project/GNU/Library
+ sh ./autogen
+ ./configure --prefix=/usr --enable-shared --disable-static --with-libcurl --with-libmms
+ make clean
+ (cd ../../.. && patch -p1 <$srcdir/libmediainfo-0.7.50-libmms.patch)
+ make
+}
+
+package() {
+ cd $srcdir/MediaInfoLib/Project/GNU/Library
+ 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/libmediainfo/libmediainfo-0.7.50-libmms.patch b/community/libmediainfo/libmediainfo-0.7.50-libmms.patch
new file mode 100644
index 000000000..540e4c12d
--- /dev/null
+++ b/community/libmediainfo/libmediainfo-0.7.50-libmms.patch
@@ -0,0 +1,50 @@
+diff -wbBur MediaInfoLib/Source/MediaInfo/Reader/Reader_libmms.cpp MediaInfoLib.my/Source/MediaInfo/Reader/Reader_libmms.cpp
+--- MediaInfoLib/Source/MediaInfo/Reader/Reader_libmms.cpp 2011-08-25 15:14:50.000000000 +0400
++++ MediaInfoLib.my/Source/MediaInfo/Reader/Reader_libmms.cpp 2011-10-05 17:29:12.000000000 +0400
+@@ -48,10 +48,8 @@
+ #else
+ #ifdef MEDIAINFO_LIBMMS_FROMSOURCE
+ #include "mmsx.h"
+- #include "mmsh.h"
+ #else //MEDIAINFO_LIBMMS_FROMSOURCE
+ #include "libmms/mmsx.h"
+- #include "libmms/mmsh.h"
+ #endif //MEDIAINFO_LIBMMS_FROMSOURCE
+ #endif
+ #include <iostream>
+@@ -71,34 +69,9 @@
+ //---------------------------------------------------------------------------
+ size_t Reader_libmms::Format_Test(MediaInfo_Internal* MI, const String &File_Name)
+ {
+- mmsx_t* Handle;
+-
+- //Opening the file
+- #if MEDIAINFO_LIBMMS_DESCRIBE_SUPPORT
+- if (MI->Config.File_Mmsh_Describe_Only_Get())
+- {
+- // Use MMSH & Send a DESCRIBE request
+- mmsh_t* MmshHandle;
+-
+- MmshHandle=mmsh_describe_request(0, 0, Ztring(File_Name).To_Local().c_str());
+- if (MmshHandle==NULL)
+- return 0;
+-
+- Handle=mmsx_set_mmsh_handle(MmshHandle);
+- if (Handle==NULL)
+- {
+- mmsh_close(MmshHandle);
+- return 0;
+- }
+- }
+- else
+- #endif //MEDIAINFO_LIBMMS_DESCRIBE_SUPPORT
+- {
+- // Use MMS or MMSH (Send a DESCRIBE & PLAY request)
+- Handle=mmsx_connect(0, 0, Ztring(File_Name).To_Local().c_str(), (int)-1);
++ mmsx_t* Handle=mmsx_connect(0, 0, Ztring(File_Name).To_Local().c_str(), (int)-1);
+ if (Handle==NULL)
+ return 0;
+- }
+
+ //Init
+ size_t Buffer_Size_Max;
diff --git a/community/libmemcached/PKGBUILD b/community/libmemcached/PKGBUILD
new file mode 100644
index 000000000..f623ce692
--- /dev/null
+++ b/community/libmemcached/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 57420 2011-10-27 12:32:11Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+
+pkgname=libmemcached
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="C and C++ client library to the memcached server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libmemcached.org/"
+license=('GPL')
+depends=('glibc')
+makedepends=('perl')
+options=('!libtool')
+source=(http://launchpad.net/$pkgname/1.0/$pkgver/+download/$pkgname-$pkgver.tar.gz)
+sha1sums=('d992845fe71210e2e93147ba8f29df1fca14e716')
+
+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..37f165f92
--- /dev/null
+++ b/community/libmicrohttpd/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 59260 2011-11-22 06:42:34Z 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.17
+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' 'mips64el')
+url="http://www.gnu.org/software/libmicrohttpd/"
+license=('LGPL')
+options=('!libtool')
+depends=('gnutls' 'libgcrypt')
+install=libmicrohttpd.install
+source=(ftp://ftp.gnu.org/gnu/libmicrohttpd/$pkgname-$pkgver.tar.gz)
+md5sums=('d6802049c806e903ef1fa9c5b847e555')
+
+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/libmicrohttpd/libmicrohttpd.install b/community/libmicrohttpd/libmicrohttpd.install
new file mode 100644
index 000000000..dc0d2b996
--- /dev/null
+++ b/community/libmicrohttpd/libmicrohttpd.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(microhttpd.info microhttpd-tutorial.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/libmilter/PKGBUILD b/community/libmilter/PKGBUILD
new file mode 100644
index 000000000..3d842fb77
--- /dev/null
+++ b/community/libmilter/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 60205 2011-12-07 15:22:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: mutantmonkey <mutantmonkey@gmail.com>
+
+pkgname=libmilter
+pkgver=8.14.5
+pkgrel=1
+pkgdesc="libmilter"
+arch=(i686 x86_64)
+url="http://www.postfix.org/MILTER_README.html"
+license=('custom:Sendmail open source license')
+source="ftp://ftp.sendmail.org/pub/sendmail/sendmail.${pkgver}.tar.gz"
+md5sums=('02ccfc331cc81ed00ec8bb5ecfc69018')
+
+build(){
+ cd "${srcdir}/sendmail-${pkgver}"
+
+ # From http://www.j-chkmail.org/wiki/doku.php/doc/installation/start#libmilter
+ cat >> devtools/Site/site.config.m4 <<EOF
+dnl
+dnl Enable libmilter with a pool of workers
+APPENDDEF(\`conf_libmilter_ENVDEF',\`-D_FFR_WORKERS_POOL=1 -DMIN_WORKERS=4')
+dnl
+dnl Use poll instead of select
+APPENDDEF(\`conf_libmilter_ENVDEF',\`-DSM_CONF_POLL=1')
+dnl Enable IPv6
+APPENDDEF(\`conf_libmilter_ENVDEF',\`-DNETINET6=1')
+dnl
+dnl Include our CFLAGS
+APPENDDEF(\`conf_libmilter_ENVDEF',\`${CFLAGS}')
+dnl
+dnl Add -fPIC
+APPENDDEF(\`conf_libmilter_ENVDEF',\`-fPIC')
+dnl
+EOF
+
+ cd libmilter
+ ./Build
+}
+
+package(){
+ cd "${srcdir}/sendmail-${pkgver}/libmilter"
+ mkdir -p "${pkgdir}/usr/lib"
+ ./Build DESTDIR="${pkgdir}" install
+ install -Dm0644 ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ chown -R root:root $pkgdir
+}
diff --git a/community/libmirage/PKGBUILD b/community/libmirage/PKGBUILD
new file mode 100644
index 000000000..7f21a13b1
--- /dev/null
+++ b/community/libmirage/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56986 2011-10-17 16:29:39Z bpiotrowski $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=libmirage
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="CD-ROM image (B6T/CCD/CDI/CUE/ISO/MDS/NRG/TOC) access library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('cd6cc75e1b76a0ef72821b30168c94d9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libmnl/PKGBUILD b/community/libmnl/PKGBUILD
new file mode 100644
index 000000000..ab2f8549f
--- /dev/null
+++ b/community/libmnl/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59542 2011-11-28 00:38:43Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net
+# Contributor: Christian Hesse <mail@earthworm.de>
+
+pkgname=libmnl
+pkgver=1.0.1
+pkgrel=2
+pkgdesc='Minimalistic user-space library oriented to Netlink developers.'
+arch=('i686' 'x86_64')
+url='http://www.netfilter.org/projects/libmnl/'
+license=('LGPL2.1')
+source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('e936236bb57a2375afa4e70e75dc3ba9')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/libnetfilter_conntrack/PKGBUILD b/community/libnetfilter_conntrack/PKGBUILD
new file mode 100644
index 000000000..a62461fe3
--- /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' 'mips64el')
+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..e8622ab11
--- /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' 'mips64el')
+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..0b924ad9e
--- /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' 'mips64el')
+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..1d984263b
--- /dev/null
+++ b/community/libnfnetlink/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 55539 2011-09-14 08:04:26Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Contributor: Filip Wojciechowski, filip at loka dot pl
+
+pkgname=libnfnetlink
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="low-level library for netfilter related kernel/userspace communication"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.netfilter.org/projects/libnfnetlink/index.html"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('016fdec8389242615024c529acc1adb8')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libnids/PKGBUILD b/community/libnids/PKGBUILD
new file mode 100644
index 000000000..93fc7d85e
--- /dev/null
+++ b/community/libnids/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59373 2011-11-23 21:13:03Z 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' 'mips64el')
+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 --enable-shared
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make install_prefix=$pkgdir install
+ ln -s libnids.so.1.24 $pkgdir/usr/lib/libnids.so.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..969358eda
--- /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' 'mips64el')
+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..9b304a407
--- /dev/null
+++ b/community/libnsbmp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59663 2011-11-29 08:59:46Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+pkgname=libnsbmp
+pkgver=0.0.3
+pkgrel=3
+pkgdesc="Decoding library for BMP and ICO image file formats"
+arch=('i686' 'x86_64' 'mips64el')
+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=('52eef940713a4c8a7afbb6888583057c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver-src"
+
+ make PREFIX=/usr COMPONENT_TYPE="lib-shared"
+ make PREFIX=/usr COMPONENT_TYPE="lib-static"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver-src"
+
+ make install PREFIX=/usr DESTDIR="$pkgdir" COMPONENT_TYPE="lib-shared"
+ make install PREFIX=/usr DESTDIR="$pkgdir" COMPONENT_TYPE="lib-static"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libnsgif/PKGBUILD b/community/libnsgif/PKGBUILD
new file mode 100644
index 000000000..fa6fcdc72
--- /dev/null
+++ b/community/libnsgif/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59664 2011-11-29 09:06:33Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+pkgname=libnsgif
+pkgver=0.0.3
+pkgrel=3
+pkgdesc="Decoding library for the GIF image file format"
+arch=('i686' 'x86_64' 'mips64el')
+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=('d4fa9679939e9b1b243799d6a0623cec')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver-src"
+
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+ make PREFIX=/usr COMPONENT_TYPE="lib-shared"
+ make PREFIX=/usr COMPONENT_TYPE="lib-static"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver-src"
+
+ make install PREFIX=/usr DESTDIR="$pkgdir" COMPONENT_TYPE="lib-shared"
+ make install PREFIX=/usr DESTDIR="$pkgdir" COMPONENT_TYPE="lib-static"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/liboglappth/PKGBUILD b/community/liboglappth/PKGBUILD
new file mode 100644
index 000000000..fd9809fb2
--- /dev/null
+++ b/community/liboglappth/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Xyne <ac xunilhcra enyx, backwards>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=liboglappth
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Library containing computational chemistry facility of ghemical"
+license=("GPL")
+arch=('i686' 'x86_64' 'mips64el')
+url="http://bioinformatics.org/ghemical/libghemical/"
+depends=('gcc-libs')
+makedepends=('mesa')
+options=(!libtool)
+source=(http://bioinformatics.org/ghemical/download/release20111012/${pkgname}-${pkgver}.tar.gz)
+md5sums=('48261e5f4cf99e113fb22e524f0b1eeb')
+
+build() {
+ cd -- "$srcdir/$pkgname-$pkgver/"
+ ./configure --prefix=/usr --enable-openbabel
+ make
+}
+
+package() {
+ cd -- "$srcdir/$pkgname-$pkgver/"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/libopenraw/PKGBUILD b/community/libopenraw/PKGBUILD
new file mode 100644
index 000000000..528ef4569
--- /dev/null
+++ b/community/libopenraw/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59667 2011-11-29 09:17:08Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: <boromil@gmail.com>
+pkgname=libopenraw
+pkgver=0.0.9
+pkgrel=1
+pkgdesc="Library for decoding RAW files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libopenraw.freedesktop.org/"
+license=('LGPL')
+makedepends=('boost' 'libjpeg' 'libxml2')
+options=('!libtool')
+source=("http://libopenraw.freedesktop.org/download/$pkgname-$pkgver.tar.bz2")
+md5sums=('3611d8aea870d25314665ef53093288e')
+
+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/libopensync/PKGBUILD b/community/libopensync/PKGBUILD
new file mode 100644
index 000000000..8e2ff03b8
--- /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' 'mips64el')
+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..f7907c5d0
--- /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' 'mips64el')
+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..5ab3ef63f
--- /dev/null
+++ b/community/libosip2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 47083 2011-05-16 14:18:27Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Michal Hybner <dta081@gmail.com>
+
+pkgname=libosip2
+pkgver=3.5.0
+pkgrel=1
+pkgdesc="oSIP is an implementation of SIP"
+arch=('i686' 'x86_64' 'mips64el')
+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=('7691546f6b3349d10007fc1aaff0f4e0')
+
+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
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libpaper/PKGBUILD b/community/libpaper/PKGBUILD
new file mode 100644
index 000000000..dea6b1ee0
--- /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' 'mips64el')
+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..05317e3f0
--- /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' 'mips64el')
+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..470ddbe75
--- /dev/null
+++ b/community/libparserutils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 56213 2011-10-03 13:57:53Z arodseth $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+pkgname=libparserutils
+pkgver=0.1.1
+pkgrel=1
+pkgdesc="Library for building efficient parsers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.netsurf-browser.org/projects/libparserutils"
+license=('MIT')
+source=("http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz")
+depends=('glibc')
+md5sums=('4f228516863de33f33f7f4258315867e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed 's:-Wall::' -i Makefile
+ make PREFIX=/usr COMPONENT_TYPE="lib-shared"
+ make PREFIX=/usr COMPONENT_TYPE="lib-static"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make install PREFIX=/usr DESTDIR="${pkgdir}" COMPONENT_TYPE="lib-shared"
+ make install PREFIX=/usr DESTDIR="${pkgdir}" COMPONENT_TYPE="lib-static"
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
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..b3c4e6734
--- /dev/null
+++ b/community/libpqxx/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59094 2009-11-20 06:50:18Z giovanni $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=libpqxx
+pkgver=4.0
+pkgrel=1
+pkgdesc="C++ client API for PostgreSQL"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ build-fix.patch)
+md5sums=('bd7541f858400a96cbe2a48cb342ad0e'
+ 'e59f5f63e1800406bf494e19cea479a4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+# patch -p1 <$srcdir/build-fix.patch
+ ./configure --prefix=/usr --enable-shared
+ make
+ make prefix="${pkgdir}/usr" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/libpqxx/build-fix.patch b/community/libpqxx/build-fix.patch
new file mode 100644
index 000000000..12795e517
--- /dev/null
+++ b/community/libpqxx/build-fix.patch
@@ -0,0 +1,11 @@
+diff -wbBur libpqxx-3.1/include/pqxx/compiler-internal.hxx libpqxx-3.1.my/include/pqxx/compiler-internal.hxx
+--- libpqxx-3.1/include/pqxx/compiler-internal.hxx 2010-02-16 02:21:36.000000000 +0300
++++ libpqxx-3.1.my/include/pqxx/compiler-internal.hxx 2011-11-21 15:56:00.000000000 +0400
+@@ -18,6 +18,7 @@
+ #ifndef PQXX_H_COMPILER_INTERNAL
+ #define PQXX_H_COMPILER_INTERNAL
+
++#include <cstddef>
+
+ // Workarounds & definitions needed to compile libpqxx into a library
+ #include "pqxx/config-internal-compiler.h"
diff --git a/community/libquvi/PKGBUILD b/community/libquvi/PKGBUILD
new file mode 100644
index 000000000..1f0d35065
--- /dev/null
+++ b/community/libquvi/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 57076 2011-10-20 17:03:18Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=libquvi
+pkgver=0.4.0
+pkgrel=2
+pkgdesc='Library for parsing video download links.'
+arch=('i686' 'x86_64')
+url='http://quvi.sourceforge.net/'
+license=('LGPL')
+depends=('libquvi-scripts' 'curl' 'lua')
+conflicts=('quvi<0.4.0')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/quvi/${pkgname}-${pkgver}.tar.gz")
+md5sums=('85c47035105b6b523a28793d4f6da9f1')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libraw/PKGBUILD b/community/libraw/PKGBUILD
new file mode 100644
index 000000000..38ba55565
--- /dev/null
+++ b/community/libraw/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60435 2011-12-13 20:54:21Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=libraw
+pkgver=0.14.4
+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' 'mips64el')
+url="http://www.libraw.org/"
+license=('CDDL' 'LGPL' 'custom')
+depends=('lcms')
+options=('!makeflags')
+changelog=$pkgname.changelog
+source=(http://www.libraw.org/data/LibRaw-${pkgver}.tar.gz)
+sha256sums=('795a8615381868942b27636ea83d741d7c8d17afa9f00b5b7fe26212c42ee59c')
+
+build() {
+ cd ${srcdir}/LibRaw-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/LibRaw-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libraw/libraw.changelog b/community/libraw/libraw.changelog
new file mode 100644
index 000000000..88d6be5d2
--- /dev/null
+++ b/community/libraw/libraw.changelog
@@ -0,0 +1,2 @@
+2011-12-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * libraw 0.14.4-1
diff --git a/community/librcc/PKGBUILD b/community/librcc/PKGBUILD
new file mode 100644
index 000000000..3bcfc4abd
--- /dev/null
+++ b/community/librcc/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 58641 2011-11-16 23:02:02Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=librcc
+pkgver=0.2.6
+pkgrel=4
+pkgdesc="Charset Conversion Library"
+arch=(i686 x86_64 'mips64el')
+url="http://rusxmms.sourceforge.net/"
+license=('GPL')
+depends=(aspell enca libxml2 db librcd)
+makedepends=(patch gtk gtk2)
+install=librcc.install
+options=('!libtool')
+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
+}
+
+package() {
+ cd ${startdir}/src/$pkgname-${pkgver}
+ 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
+
+ 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..53b1d7ce7
--- /dev/null
+++ b/community/librcc/librcc.install
@@ -0,0 +1,6 @@
+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)"
+}
diff --git a/community/librcd/PKGBUILD b/community/librcd/PKGBUILD
new file mode 100644
index 000000000..03f8adcbf
--- /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 'mips64el')
+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..ef36053ad
--- /dev/null
+++ b/community/librep/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59710 2011-11-29 13:35:00Z stephane $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=librep
+pkgver=0.92.1b
+pkgrel=2
+pkgdesc="A Lisp system for UNIX"
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sawfish.wikia.com/wiki/Librep"
+depends=('gmp' 'gdbm' 'libffi')
+install=${pkgname}.install
+options=('!emptydirs' '!libtool')
+source=(http://download.tuxfamily.org/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('f75e1197646bbf1594fc4765802aab0bffe1bb02')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --disable-static \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/$pkgname \
+ --with-readline
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # create some directories or make install fails
+# install -d $pkgdir/usr/{share/aclocal,lib/pkgconfig}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/librep/librep.install b/community/librep/librep.install
new file mode 100644
index 000000000..7e1b990bf
--- /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/PKGBUILD b/community/libreplaygain/PKGBUILD
new file mode 100644
index 000000000..c4b978d51
--- /dev/null
+++ b/community/libreplaygain/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 57695 2011-11-01 10:46:06Z andrea $
+# Maintainer:
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=libreplaygain
+pkgver=475
+pkgrel=1
+pkgdesc="A library to adjust audio gain"
+arch=('i686' 'x86_64' 'mips64el')
+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=('e27b3b1249b7fbae92d656d9e3d26633')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}_r${pkgver}/ \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/usr/include/replaygain/"
+ install -Dm644 "${srcdir}"/${pkgname}_r${pkgver}/include/replaygain/* \
+ "${pkgdir}/usr/include/replaygain/"
+}
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..943fe9801
--- /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' 'mips64el')
+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..af1efdc99
--- /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 'mips64el')
+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..e24061ba2
--- /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 'mips64el')
+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/libsmf/PKGBUILD b/community/libsmf/PKGBUILD
new file mode 100644
index 000000000..62f77a96a
--- /dev/null
+++ b/community/libsmf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 60154 2011-12-06 08:54:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=libsmf
+pkgver=1.3
+pkgrel=3
+pkgdesc='A BSD-licensed C library for handling SMF ("*.mid") files.'
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/libsmf/"
+license=('BSD')
+depends=('glib2' 'readline')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/libsmf/libsmf/$pkgver/$pkgname-$pkgver.tar.gz")
+md5sums=('eb698f1bc0bad9d5bce4c10386347486')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --enable-static=no
+ 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..16bb04e6c
--- /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' 'mips64el')
+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..9422a9a01
--- /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' 'mips64el')
+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..218f5a557
--- /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' 'mips64el')
+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/libtlen/PKGBUILD b/community/libtlen/PKGBUILD
new file mode 100644
index 000000000..a853c7193
--- /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' 'mips64el')
+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/libtommath/PKGBUILD b/community/libtommath/PKGBUILD
new file mode 100644
index 000000000..33c60ba42
--- /dev/null
+++ b/community/libtommath/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59626 2011-11-28 21:56:45Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: suasageandeggs <s_stoakley@hotmail.co.uk>
+# Contributor: Michael Fellinger <manveru@www.weez-int.com>
+
+pkgname=libtommath
+pkgver=0.42.0
+pkgrel=2
+pkgdesc="Highly optimized and portable routines for integer based number theoretic applications"
+url="http://www.libtom.org/"
+license=('custom')
+arch=('i686' 'x86_64')
+source=("http://libtom.org/files/ltm-${pkgver}.tar.bz2"
+ 'libtommath-0.42.0-makefile.patch')
+md5sums=('7380da904b020301be7045cb3a89039b'
+ 'd50c26fdc5aa87e6acfd4adc20557ff4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i ${srcdir}/libtommath-0.42.0-makefile.patch
+
+ make -f makefile.shared IGNORE_SPEED=1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir INSTALL_GROUP=root install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ chmod 644 ${pkgdir}/usr/lib/libtommath.a
+}
diff --git a/community/libtommath/libtommath-0.42.0-makefile.patch b/community/libtommath/libtommath-0.42.0-makefile.patch
new file mode 100644
index 000000000..d98456e5b
--- /dev/null
+++ b/community/libtommath/libtommath-0.42.0-makefile.patch
@@ -0,0 +1,44 @@
+--- a/makefile.shared
++++ b/makefile.shared
+@@ -3,7 +3,7 @@
+ #Tom St Denis
+ VERSION=0:41
+
+-CC = libtool --mode=compile --tag=CC gcc
++LTCOMPILE = libtool --mode=compile --tag=CC $(CC)
+
+ CFLAGS += -I./ -Wall -W -Wshadow -Wsign-compare
+
+@@ -82,21 +82,24 @@
+
+ objs: $(OBJECTS)
+
++.c.o:
++ $(LTCOMPILE) $(CFLAGS) $(LDFLAGS) -o $@ -c $<
++
+ $(LIBNAME): $(OBJECTS)
+- libtool --mode=link gcc *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION)
++ libtool --mode=link --tag=CC $(CC) $(LDFLAGS) *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION)
+
+ install: $(LIBNAME)
+- install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
++ install -d $(DESTDIR)$(LIBPATH)
+ libtool --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME)
+- install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
+- install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)
++ install -d $(DESTDIR)$(INCPATH)
++ install -m 644 $(HEADERS) $(DESTDIR)$(INCPATH)
+
+ test: $(LIBNAME) demo/demo.o
+- gcc $(CFLAGS) -c demo/demo.c -o demo/demo.o
+- libtool --mode=link gcc -o test demo/demo.o $(LIBNAME_S)
++ $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
++ libtool --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME_S)
+
+ mtest: test
+- cd mtest ; gcc $(CFLAGS) mtest.c -o mtest
++ cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
+
+ timing: $(LIBNAME)
+- gcc $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest
++ libtool --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest
diff --git a/community/libtorrent/PKGBUILD b/community/libtorrent/PKGBUILD
new file mode 100644
index 000000000..de466dea5
--- /dev/null
+++ b/community/libtorrent/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: sh__
+
+pkgname=libtorrent
+pkgver=0.12.9
+pkgrel=1
+pkgdesc='BitTorrent library written in C++'
+url='http://libtorrent.rakshasa.no/'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libsigc++2.0' 'openssl')
+options=('!libtool')
+source=("http://libtorrent.rakshasa.no/downloads/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('176a836c6e685e4dad71ac08c0e09caaa5b7757c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ ./configure \
+ --prefix=/usr \
+ --disable-debug \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libuser/PKGBUILD b/community/libuser/PKGBUILD
new file mode 100644
index 000000000..dcf5d2bbf
--- /dev/null
+++ b/community/libuser/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 58190 2011-11-08 15:26:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+
+pkgname=libuser
+pkgver=0.57.1
+pkgrel=2
+pkgdesc='A standardized interface for manipulating and administering user and group accounts.'
+arch=('i686' 'x86_64')
+license=('LGPL')
+url='https://fedorahosted.org/libuser/'
+depends=('python2' 'glib2' 'popt')
+options=('!libtool')
+source=("https://fedorahosted.org/releases/l/i/libuser/libuser-${pkgver}.tar.xz")
+md5sums=('be82c6941264d0b4bd04f95fb342ec7d')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ export PYTHON=python2
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-gtk-doc-html \
+ --disable-rpath
+ sed -i 's/SUBDIRS = po docs/SUBDIRS = po/' Makefile
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libview/PKGBUILD b/community/libview/PKGBUILD
new file mode 100644
index 000000000..1137d4e78
--- /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' 'mips64el')
+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..78651e7b4
--- /dev/null
+++ b/community/libvirt/PKGBUILD
@@ -0,0 +1,88 @@
+# $Id: PKGBUILD 60347 2011-12-11 20:18:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jonathan Wiersma <archaur at jonw dot org>
+
+pkgname=libvirt
+pkgver=0.9.8
+pkgrel=2
+pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'netcf')
+makedepends=('pkgconfig' 'lvm2')
+optdepends=('bridge-utils: for briged networking (default)'
+ 'dnsmasq: for NAT/DHCP for guests'
+ 'kvm'
+ 'openbsd-netcat: for remote management over ssh'
+ 'qemu'
+ 'radvd'
+ 'dmidecode')
+options=('emptydirs' '!libtool')
+backup=('etc/conf.d/libvirtd'
+ 'etc/conf.d/libvirtd-guests'
+ 'etc/libvirt/libvirtd.conf'
+ 'etc/libvirt/libvirt.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
+ libvirtd-guests.rc.d
+ libvirtd-guests.conf.d
+ openbsd-netcat-default.patch
+ unixperms.patch
+ yajl-2.x.patch)
+md5sums=('5bb74092e469d773c3d63128a8c57501'
+ 'c43244c40a0437038c82089618e7beaa'
+ '3ed0e24f5b5e25bf553f5427d64915e6'
+ '737ec24aa56871fbabfa892789457db4'
+ 'bc2971dacdbac967fc3474e50affc345'
+ 'b0be50eb9dfe4d133decf23b60880f7d'
+ 'db95aecdf2ccf3693fef5821cdcb7eba'
+ '5745bb8d0b254abb7a3528c66e03b0f9')
+
+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
+
+ # fixes for yajl 2.0 API changes
+# [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir/yajl-2.x.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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ 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
+
+ install -D -m755 "$srcdir"/libvirtd-guests.rc.d "$pkgdir"/etc/rc.d/libvirtd-guests
+ install -D -m644 "$srcdir"/libvirtd-guests.conf.d "$pkgdir"/etc/conf.d/libvirtd-guests
+
+ 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-guests.conf.d b/community/libvirt/libvirtd-guests.conf.d
new file mode 100644
index 000000000..02a933715
--- /dev/null
+++ b/community/libvirt/libvirtd-guests.conf.d
@@ -0,0 +1,11 @@
+LIBVIRTD_STOP_ACTION=suspend
+
+#LIBVIRTD_URI="-c qemu+ssh://user@host/system"
+LIBVIRTD_URI=""
+
+#LIBVIRTD_BYPASS_CACHE="--bypass-cache"
+LIBVIRTD_BYPASS_CACHE=""
+
+LIBVIRTD_START_DELAY=0
+
+LIBVIRTD_SHUTDOWN_TIMEOUT=3
diff --git a/community/libvirt/libvirtd-guests.rc.d b/community/libvirt/libvirtd-guests.rc.d
new file mode 100755
index 000000000..b4331964a
--- /dev/null
+++ b/community/libvirt/libvirtd-guests.rc.d
@@ -0,0 +1,107 @@
+#!/bin/bash
+
+. /etc/conf.d/libvirtd-guests
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+LIBVIRTD_LISTFILE="/var/state/libvirtd/vm-list"
+
+# get guest state by name
+libvirt_get_guest_state()
+{
+ virsh $LIBVIRTD_URI dominfo "$1" | grep -E '^State:' | awk '{print $2}'
+}
+
+# list IDs of running guests
+libvirt_list()
+{
+ virsh $LIBVIRTD_URI list | awk 'NR > 2 {print $2}'
+}
+
+# suspend guest by name
+libvirt_suspend()
+{
+ virsh $LIBVIRTD_URI $LIBVIRTD_BYPASS_CACHE managedsave "$1" >/dev/null
+ timeout=$LIBVIRTD_SHUTDOWN_TIMEOUT
+ while [ "$timeout" -gt 0 ]; do
+ sleep 1
+ timeout=$((timeout - 1))
+ state=`libvirt_get_guest_state "$1"`
+ [ "x$state" == "xshut" ] && return 0
+ done
+ return 1
+}
+
+# shutdown guest by name
+libvirt_shutdown()
+{
+ virsh $LIBVIRTD_URI shutdown "$1" >/dev/null
+ timeout=$LIBVIRTD_SHUTDOWN_TIMEOUT
+ while [ "$timeout" -gt 0 ]; do
+ sleep 1
+ timeout=$((timeout - 1))
+ state=`libvirt_get_guest_state "$1"`
+ [ "x$state" != "xshut" ] && return 0
+ done
+ return 1
+}
+
+# start guest by name
+libvirt_start()
+{
+ virsh $LIBVIRTD_URI $LIBVIRTD_BYPASS_CACHE start "$1" >/dev/null
+}
+
+# stop all guests
+libvirt_stop_all()
+{
+ mkdir -p `dirname $LIBVIRTD_LISTFILE`
+ echo -n >$LIBVIRTD_LISTFILE
+ for i in `libvirt_list`; do
+ if [ "x$LIBVIRTD_STOP_ACTION" == "xsuspend" ]; then
+ stat_busy "Suspending libvirtd/$i guest"
+ libvirt_suspend "$i"
+ else
+ stat_busy "Shutting libvirtd/$i guest down"
+ libvirt_shutdown "$i"
+ fi
+ [ $? -eq 0 ] && stat_done || stat_fail
+ echo $i >>$LIBVIRTD_LISTFILE
+ done
+}
+
+# start all guests
+libvirt_start_all()
+{
+ if [ -f $LIBVIRTD_LISTFILE ]; then
+ for i in `cat $LIBVIRTD_LISTFILE`; do
+ stat_busy "Starting/resuming libvirtd/$i guest"
+ libvirt_start "$i"
+ [ $? -eq 0 ] && { sleep $LIBVIRTD_START_DELAY; stat_done; } || stat_fail
+ done
+ fi
+ rm -f $LIBVIRTD_LISTFILE
+}
+
+# main
+LC_ALL=C
+LANG=C
+case "$1" in
+ start)
+ libvirt_start_all
+ add_daemon libvirtd-guests
+ ;;
+ stop)
+ libvirt_stop_all
+ rm_daemon libvirtd-guests
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/libvirt/libvirtd.conf.d b/community/libvirt/libvirtd.conf.d
new file mode 100644
index 000000000..d4d25b47a
--- /dev/null
+++ b/community/libvirt/libvirtd.conf.d
@@ -0,0 +1,3 @@
+LIBVIRTD_CONFIG="/etc/libvirt/libvirtd.conf"
+LIBVIRTD_ARGS="-p /var/run/libvirtd.pid"
+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..193bffa9c
--- /dev/null
+++ b/community/libvirt/libvirtd.rc.d
@@ -0,0 +1,66 @@
+#!/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"
+ export RADVD=/usr/sbin/radvd
+ 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 libvirtd
+ 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..a01b4f14e
--- /dev/null
+++ b/community/libvirt/openbsd-netcat-default.patch
@@ -0,0 +1,36 @@
+diff -wbBur libvirt-0.9.7/src/qemu/qemu_migration.c libvirt-0.9.7.my/src/qemu/qemu_migration.c
+--- libvirt-0.9.7/src/qemu/qemu_migration.c 2011-10-31 07:46:04.000000000 +0400
++++ libvirt-0.9.7.my/src/qemu/qemu_migration.c 2011-11-08 15:46:10.000000000 +0400
+@@ -1589,7 +1589,7 @@
+ spec->dest.unix_socket.file);
+ } else {
+ const char *args[] = {
+- "nc", "-U", spec->dest.unix_socket.file, NULL
++ "nc.openbsd", "-U", spec->dest.unix_socket.file, NULL
+ };
+ ret = qemuMonitorMigrateToCommand(priv->mon, migrate_flags, args);
+ }
+diff -wbBur libvirt-0.9.7/src/remote/remote_driver.c libvirt-0.9.7.my/src/remote/remote_driver.c
+--- libvirt-0.9.7/src/remote/remote_driver.c 2011-11-08 07:53:30.000000000 +0400
++++ libvirt-0.9.7.my/src/remote/remote_driver.c 2011-11-08 15:46:10.000000000 +0400
+@@ -614,7 +614,7 @@
+ username,
+ !tty,
+ !verify,
+- netcat ? netcat : "nc",
++ netcat ? netcat : "nc.openbsd",
+ keyfile,
+ sockname)))
+ goto failed;
+diff -wbBur libvirt-0.9.7/src/rpc/virnetsocket.c libvirt-0.9.7.my/src/rpc/virnetsocket.c
+--- libvirt-0.9.7/src/rpc/virnetsocket.c 2011-11-08 07:53:30.000000000 +0400
++++ libvirt-0.9.7.my/src/rpc/virnetsocket.c 2011-11-08 15:46:31.000000000 +0400
+@@ -642,7 +642,7 @@
+ virCommandAddArgList(cmd, "-o", "StrictHostKeyChecking=no", NULL);
+
+ if (!netcat)
+- netcat = "nc";
++ netcat = "nc.openbsd";
+
+ virCommandAddArgList(cmd, nodename, "sh", "-c", NULL);
+
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/libvirt/yajl-2.x.patch b/community/libvirt/yajl-2.x.patch
new file mode 100644
index 000000000..80d3edce0
--- /dev/null
+++ b/community/libvirt/yajl-2.x.patch
@@ -0,0 +1,66 @@
+--- a/src/util/json.c 2011-03-24 03:10:26.000000000 -0400
++++ b/src/util/json.c 2011-04-25 20:01:29.354939116 -0400
+@@ -709,7 +709,7 @@
+
+ static int virJSONParserHandleNumber(void * ctx,
+ const char * s,
+- unsigned int l)
++ size_t l)
+ {
+ virJSONParserPtr parser = ctx;
+ char *str = strndup(s, l);
+@@ -735,7 +735,7 @@
+
+ static int virJSONParserHandleString(void * ctx,
+ const unsigned char * stringVal,
+- unsigned int stringLen)
++ size_t stringLen)
+ {
+ virJSONParserPtr parser = ctx;
+ virJSONValuePtr value = virJSONValueNewStringLen((const char *)stringVal,
+@@ -756,7 +756,7 @@
+
+ static int virJSONParserHandleMapKey(void * ctx,
+ const unsigned char * stringVal,
+- unsigned int stringLen)
++ size_t stringLen)
+ {
+ virJSONParserPtr parser = ctx;
+ virJSONParserStatePtr state;
+@@ -894,14 +894,14 @@
+ /* XXX add an incremental streaming parser - yajl trivially supports it */
+ virJSONValuePtr virJSONValueFromString(const char *jsonstring)
+ {
+- yajl_parser_config cfg = { 1, 1 };
+ yajl_handle hand;
+ virJSONParser parser = { NULL, NULL, 0 };
+ virJSONValuePtr ret = NULL;
+
+ VIR_DEBUG("string=%s", jsonstring);
+
+- hand = yajl_alloc(&parserCallbacks, &cfg, NULL, &parser);
++ hand = yajl_alloc(&parserCallbacks, NULL, &parser);
++ yajl_config(hand, yajl_allow_comments, 1);
+
+ if (yajl_parse(hand,
+ (const unsigned char *)jsonstring,
+@@ -1002,15 +1002,16 @@
+
+ char *virJSONValueToString(virJSONValuePtr object)
+ {
+- yajl_gen_config conf = { 0, " " }; /* Turns off pretty printing since QEMU can't cope */
+ yajl_gen g;
+ const unsigned char *str;
+ char *ret = NULL;
+- unsigned int len;
++ size_t len;
+
+ VIR_DEBUG("object=%p", object);
+
+- g = yajl_gen_alloc(&conf, NULL);
++ g = yajl_gen_alloc(NULL);
++ yajl_gen_config(g, yajl_gen_beautify, 0);
++ yajl_gen_config(g, yajl_gen_indent_string, " ");
+
+ if (virJSONValueToStringOne(object, g) < 0) {
+ virReportOOMError();
diff --git a/community/libvisual-projectm/PKGBUILD b/community/libvisual-projectm/PKGBUILD
new file mode 100644
index 000000000..da278241b
--- /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' 'mips64el')
+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..a1ce96856
--- /dev/null
+++ b/community/libwapcaplet/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=libwapcaplet
+pkgver=0.1.0
+pkgrel=2
+pkgdesc="A string internment library with rapid string comparison."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.netsurf-browser.org/projects/libwapcaplet/"
+license=('MIT')
+source=(http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz)
+md5sums=('c21975b81bcdafa60ad6b97b95925efe')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}-src
+
+ make PREFIX=/usr COMPONENT_TYPE="lib-shared"
+ make PREFIX=/usr COMPONENT_TYPE="lib-static"
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}-src
+
+ make install PREFIX=/usr DESTDIR="${pkgdir}" COMPONENT_TYPE="lib-shared"
+ make install PREFIX=/usr DESTDIR="${pkgdir}" COMPONENT_TYPE="lib-static"
+ 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..a0d1852ac
--- /dev/null
+++ b/community/libwww/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 57429 2011-10-27 16:42:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Buharev Vasilij <buharev.v.p@gmail.com>
+
+pkgname=libwww
+pkgver=5.4.0
+pkgrel=5
+pkgdesc="A general-purpose client side WEB API"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.w3.org/Library/"
+license=('W3C')
+depends=()
+makedepends=('gcc pkgconfig perl zlib openssl')
+options=('!libtool')
+source=(http://www.w3.org/Library/Distribution/w3c-$pkgname-$pkgver.tgz)
+md5sums=('c3734ca6caa405707e134cc8c6d7e422')
+
+build() {
+ cd "$srcdir/w3c-$pkgname-$pkgver"
+ [ -f Makefile ] || ./configure --prefix=/usr \
+ --with-md5 --with-zlib --with-expat --with-regex --with-ssl
+ sed -i 's#Examples##' Library/Makefile
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/libx86/PKGBUILD b/community/libx86/PKGBUILD
new file mode 100644
index 000000000..99cd709f4
--- /dev/null
+++ b/community/libx86/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 55525 2011-09-14 07:30:42Z andrea $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+
+pkgname=libx86
+pkgver=1.1
+pkgrel=3
+pkgdesc="Provides an lrmi interface that works on x86, am64 and alpha"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.codon.org.uk/~mjg59/libx86/"
+license=('custom')
+depends=('glibc')
+source=("http://www.codon.org.uk/~mjg59/${pkgname}/downloads/${pkgname}-${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
+
+ # compensate for x86_64
+ if [ "$CARCH" = "x86_64" ]; then
+ make BACKEND=x86emu
+ else
+ make
+ fi
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+
+ make DESTDIR="${pkgdir}" install
+ chmod 644 "${pkgdir}"/usr/lib/libx86.a
+
+ install -D -m 644 COPYRIGHT "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/libx86/libx86-ifmask.patch b/community/libx86/libx86-ifmask.patch
new file mode 100644
index 000000000..c99eeb819
--- /dev/null
+++ b/community/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/community/libx86emu/PKGBUILD b/community/libx86emu/PKGBUILD
new file mode 100644
index 000000000..fde41f504
--- /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' 'mips64el')
+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..755f4ad35
--- /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' 'mips64el')
+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..1986d893e
--- /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' 'mips64el')
+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..cce92abf4
--- /dev/null
+++ b/community/libyaml/PKGBUILD
@@ -0,0 +1,26 @@
+# $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.4
+pkgrel=1
+pkgdesc="YAML 1.1 library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pyyaml.org/wiki/LibYAML"
+license=('MIT')
+source=(http://pyyaml.org/download/libyaml/yaml-$pkgver.tar.gz)
+md5sums=('36c852831d02cf90508c29852361d01b')
+
+build() {
+ cd "$srcdir/yaml-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/yaml-$pkgver"
+ make DESTDIR="$pkgdir" install
+ 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..8a1ee0723
--- /dev/null
+++ b/community/libzen/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58333 2011-11-11 19:01:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: hydro <hydro@freenet.de>
+
+pkgname=libzen
+pkgver=0.4.23
+pkgrel=1
+pkgdesc="shared library for libmediainfo and mediainfo"
+arch=('i686' 'x86_64' 'mips64el')
+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=('00e622cf33eeb134a785463fbf49d227')
+
+build() {
+ cd $srcdir/ZenLib/Project/GNU/Library
+ [ -x configure ] || sh ./autogen
+ [ -f Makefile ] || ./configure --prefix=/usr --enable-shared
+ make clean
+ make
+}
+
+package() {
+ cd $srcdir/ZenLib/Project/GNU/Library
+ 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..415edc81a
--- /dev/null
+++ b/community/libzrtpcpp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 47218 2011-05-19 07:44:23Z andrea $
+# 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=5
+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' 'mips64el')
+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..2ffa1c59a
--- /dev/null
+++ b/community/lightspark/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=lightspark
+pkgver=0.5.3
+pkgrel=2
+pkgdesc='An alternative Flash Player for Linux.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://lightspark.sourceforge.net'
+license=('LGPL3')
+conflicts=('lightspark-git')
+depends=('mesa' 'ftgl' 'sdl' 'gtk2' 'curl' 'zlib' 'ffmpeg' 'glew' 'pcre' 'libpulse' 'libffi' 'boost-libs' 'glibmm' 'gtkglext' 'desktop-file-utils' 'libxml++' 'libxml2')
+makedepends=('cmake' 'nasm' 'xulrunner' 'llvm' 'glproto' 'boost' 'fontconfig')
+optdepends=('gnash-gtk: fallback support')
+install="lightspark.install"
+source=("http://launchpad.net/lightspark/trunk/lightspark-${pkgver}/+download/lightspark-${pkgver}.tar.gz"
+ 'llvm29.diff')
+md5sums=('2d4519c61aabc34cbba97120f5c01d18'
+ '5f717d1d9ead478184ca68f6ac068099')
+
+build() {
+ cd lightspark-${pkgver}
+ patch -Np0 -i ${srcdir}/llvm29.diff
+ cd ${srcdir}
+
+ 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 \
+ ../lightspark-${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/lightspark/llvm29.diff b/community/lightspark/llvm29.diff
new file mode 100644
index 000000000..f859852af
--- /dev/null
+++ b/community/lightspark/llvm29.diff
@@ -0,0 +1,12 @@
+--- CMakeLists.txt.old 2011-11-01 22:07:52.475608726 +0000
++++ CMakeLists.txt 2011-11-01 22:08:52.046241925 +0000
+@@ -152,7 +152,8 @@
+ MESSAGE(FATAL_ERROR "LLVM >=2.8 is required!")
+ ENDIF(${LLVM_STRING_VERSION} VERSION_LESS 2.8)
+ IF(${LLVM_STRING_VERSION} VERSION_EQUAL 2.9)
+- MESSAGE(FATAL_ERROR "LLVM !=2.9 is required!")
++ #MESSAGE(FATAL_ERROR "LLVM !=2.9 is required!")
++ ADD_DEFINITIONS(-DLLVM_29)
+ ENDIF(${LLVM_STRING_VERSION} VERSION_EQUAL 2.9)
+ IF(${LLVM_STRING_VERSION} VERSION_EQUAL 2.8)
+ ADD_DEFINITIONS(-DLLVM_28)
diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD
new file mode 100644
index 000000000..d5541d676
--- /dev/null
+++ b/community/lilypond/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 60441 2011-12-14 09:14:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+
+pkgname=lilypond
+pkgver=2.14.2
+pkgrel=2
+pkgdesc="An automated music engraving system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://lilypond.org"
+license=('GPL')
+depends=('guile' 'python2' 'texlive-core' 'ghostscript' 'pango' 'fontconfig')
+makedepends=('flex' 'bison' 'gettext' 'mftrace' 'texinfo' 'fontforge' 't1utils'
+ 'gsfonts' 'texi2html')
+options=('emptydirs')
+install=lilypond.install
+source=(http://download.linuxaudio.org/lilypond/sources/v2.14/$pkgname-$pkgver.tar.gz
+ http://arch.p5n.pp.ru/~sergej/dl/lilypond-fonts.tar.bz2
+ texlive-workaround.patch)
+md5sums=('4053a19e03181021893981280feb9aaa'
+ '2a0e18e5de17d740ada3861bf4d787ea'
+ 'ff32863f3eed67ac744e50bc4fc67a87')
+
+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
+
+ rm -rf python/out/
+ patch -p1 <$srcdir/texlive-workaround.patch
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+# cp -a $srcdir/lilypond-fonts/usr/share/lilypond/current/fonts/* $pkgdir/usr/share/lilypond/$pkgver/fonts/
+}
diff --git a/community/lilypond/lilypond.install b/community/lilypond/lilypond.install
new file mode 100644
index 000000000..934e7b435
--- /dev/null
+++ b/community/lilypond/lilypond.install
@@ -0,0 +1,48 @@
+infodir=usr/share/info
+filelist=(music-glossary.info
+ lilypond-web.info
+ lilypond-contributor.info
+ lilypond-contributor.info-1
+ lilypond-contributor.info-2
+ lilypond-internals.info-1
+ lilypond-internals.info-2
+ lilypond-internals.info-3
+ lilypond-internals.info-4
+ lilypond-internals.info-5
+ lilypond-notation.info-1
+ lilypond-notation.info-2
+ lilypond-notation.info-3
+ lilypond-notation.info-4
+ lilypond-notation.info-5
+ lilypond-notation.info-6
+ lilypond-usage.info
+ lilypond-learning.info
+ lilypond-web.info-1
+ lilypond-web.info-2
+ lilypond-internals.info
+ lilypond-essay.info
+ lilypond-notation.info
+ lilypond-learning.info-1
+ lilypond-learning.info-2
+ lilypond-extending.info
+ lilypond-changes.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/lilypond/texlive-workaround.patch b/community/lilypond/texlive-workaround.patch
new file mode 100644
index 000000000..1eb262863
--- /dev/null
+++ b/community/lilypond/texlive-workaround.patch
@@ -0,0 +1,88 @@
+diff --git a/mf/feta-autometric.mf b/mf/feta-autometric.mf
+index d5cbb7f..b25c4bc 100644
+--- a/mf/feta-autometric.mf
++++ b/mf/feta-autometric.mf
+@@ -149,7 +149,6 @@ def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) =
+ & to_bp (w) & " "
+ & to_bp (h);
+ special "% MF2PT1: font_size " & decimal designsize;
+- special "% MF2PT1: font_slant " & decimal font_slant_;
+
+ for fvar = "font_identifier",
+ "font_coding_scheme",
+@@ -175,9 +174,6 @@ def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) =
+ fi;
+ endfor;
+
+- special "% MF2PT1: font_fixed_pitch "
+- & (if font_fixed_pitch_: "1" else: "0" fi);
+-
+ % this must come after the `font_size' special
+ special "% MF2PT1: charwd " & decimal charwd;
+ fi;
+diff --git a/mf/mf2pt1.mp b/mf/mf2pt1.mp
+index a8b45aa..c935628 100644
+--- a/mf/mf2pt1.mp
++++ b/mf/mf2pt1.mp
+@@ -61,7 +61,6 @@ def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ def to_bp (expr num) = decimal (ceiling (num*bp_per_pixel)) enddef;
+ special "% MF2PT1: glyph_dimensions 0 " & to_bp (-d) & " " & to_bp(w) & " " & to_bp(h);
+ special "% MF2PT1: font_size " & decimal designsize;
+- special "% MF2PT1: font_slant " & decimal font_slant_;
+ special "% MF2PT1: charwd " & decimal charwd; % Must come after the |font_size| |special|
+ for fvar = "font_identifier", "font_coding_scheme", "font_version",
+ "font_comment", "font_family", "font_weight", "font_unique_id",
+@@ -76,8 +75,6 @@ def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ scantokens ("decimal " & fvar & "_");
+ fi;
+ endfor;
+- special "% MF2PT1: font_fixed_pitch " &
+- (if font_fixed_pitch_: "1" else: "0" fi);
+ enddef;
+
+
+@@ -91,19 +88,6 @@ enddef;
+
+
+ %% \begin{explaincode}
+-%% Store the value of \mfcomment
+-% |font_slant_|, so we can recall it at each |beginchar|.
+-%% \end{explaincode}
+-
+-font_slant_ := 0;
+-
+-def font_slant expr x =
+- font_slant_ := x;
+- fontdimen 1: x
+-enddef;
+-
+-
+-%% \begin{explaincode}
+ %% Redefine \mfcomment
+ % |bpppix_|, the number of ``big'' points per pixel. \mfcomment
+ % This in turn redefines |mm|, |in|, |pt|, and other derived units.
+@@ -141,11 +125,6 @@ forsuffixes fvar = font_underline_position, font_underline_thickness:
+ scantokens ("def " & str fvar & " expr x = " & str fvar & "_ := x enddef;");
+ endfor;
+
+-boolean font_fixed_pitch_;
+-font_fixed_pitch_ := false;
+-def font_fixed_pitch expr x = font_fixed_pitch_ := x enddef;
+-
+-
+ %% \begin{explaincode}
+ %% We'd like to be able to use calligraphic pens. Normally, MetaPost's
+ %% output routine does all the work for us of converting these to filled
+diff --git a/scripts/build/mf2pt1.pl b/scripts/build/mf2pt1.pl
+index 95df0f8..20f410b 100644
+--- a/scripts/build/mf2pt1.pl
++++ b/scripts/build/mf2pt1.pl
+@@ -427,7 +427,7 @@ ENDHEADER
+ sub get_bboxes ($)
+ {
+ execute_command 1, ("mpost", "-mem=mf2pt1", "-progname=mpost",
+- "\\mode:=localfont; mag:=$mag; bpppix $bpppix; input $mffile");
++ "\\mode:=localfont; mag:=$mag; bpppix:=$bpppix; input $mffile");
+ opendir (CURDIR, ".") || die "${progname}: $! ($filedir)\n";
+ @charfiles = sort
+ { ($a=~ /\.(\d+)$/)[0] <=> ($b=~ /\.(\d+)$/)[0] }
diff --git a/community/lilyterm/PKGBUILD b/community/lilyterm/PKGBUILD
new file mode 100644
index 000000000..4685226ff
--- /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' 'mips64el')
+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..78463052c
--- /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' 'mips64el')
+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..080dc9ed7
--- /dev/null
+++ b/community/linphone/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 49813 2011-06-21 09:18:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=linphone
+pkgver=3.4.3
+pkgrel=4
+pkgdesc="A Voice-over-IP phone"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ 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/linux-tools/PKGBUILD b/community/linux-tools/PKGBUILD
new file mode 100644
index 000000000..34165dbe9
--- /dev/null
+++ b/community/linux-tools/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 59838 2011-12-01 00:13:46Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgbase=linux-tools
+pkgname=('perf' 'cpupower')
+pkgver=3.1.4
+pkgrel=1
+license=('GPL2')
+arch=('i686' 'x86_64')
+url='http://www.kernel.org'
+options=('!strip')
+makedepends=('asciidoc' 'xmlto')
+# split packages need all package dependencies set manually in makedepends
+makedepends+=('python2' 'libnewt' 'elfutils' 'pciutils')
+source=("http://ftp.kernel.org/pub/linux/kernel/v3.0/linux-$pkgver.tar.xz"
+ 'cpupower.rc'
+ 'cpupower.conf')
+md5sums=('e48e246675a3e790062d4fecf36cd6e3'
+ 'd8b119eff7dc1a2d655eb71a47fa6215'
+ '218fd36a7957d3170ed8bd1a0be1f62f')
+
+build() {
+ msg2 'Build perf'
+ cd linux-$pkgver/tools/perf
+ make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" PERF_VERSION=$pkgver \
+ all man
+
+ msg2 'Build cpupower'
+ # we cannot use --as-needed
+ LDFLAGS=${LDFLAGS:+"$LDFLAGS,--no-as-needed"}
+ cd "$srcdir/linux-$pkgver/tools/power/cpupower"
+ make
+}
+
+package_perf() {
+ pkgdesc='Linux kernel perf tool'
+ depends=('python2' 'libnewt' 'elfutils')
+
+ cd linux-${pkgver}/tools/perf
+ make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" PERF_VERSION=$pkgver \
+ install install-man
+}
+
+package_cpupower() {
+ pkgdesc='Linux kernel power tool'
+ backup=('etc/conf.d/cpupower')
+ depends=('pciutils')
+ conflicts=('cpufrequtils')
+ provides=("cpufrequtils=$pkgver")
+
+ cd linux-$pkgver/tools/power/cpupower
+ make \
+ DESTDIR="$pkgdir" \
+ INSTALL='/bin/install -c' \
+ mandir='/usr/share/man' \
+ docdir='/usr/share/doc/cpupower' \
+ install install-man
+
+ # install rc.d script
+ install -D -m 755 "$srcdir/cpupower.rc" "$pkgdir/etc/rc.d/cpupower"
+ install -D -m 644 "$srcdir/cpupower.conf" "$pkgdir/etc/conf.d/cpupower"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/linux-tools/cpupower.conf b/community/linux-tools/cpupower.conf
new file mode 100644
index 000000000..0f56836b1
--- /dev/null
+++ b/community/linux-tools/cpupower.conf
@@ -0,0 +1,14 @@
+# 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=
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/linux-tools/cpupower.rc b/community/linux-tools/cpupower.rc
new file mode 100644
index 000000000..812637b61
--- /dev/null
+++ b/community/linux-tools/cpupower.rc
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[[ -f /etc/conf.d/cpupower ]] && . /etc/conf.d/cpupower
+
+case "$1" in
+ start|restart)
+ stat_busy "Setting cpupower rules"
+
+ declare params=''
+ if [[ "$governor" ]]; then
+ params="-g $governor "
+ params+="${min_freq:+-d $min_freq} "
+ params+="${max_freq:+-u $max_freq} "
+ params+="${freq:+-f $freq} "
+ cpupower frequency-set $params >/dev/null || { stat_fail; exit 1; }
+ stat_done
+ else
+ stat_append ': Invalid configuration'
+ stat_fail
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|restart}"
+esac
+
+true
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/linuxdcpp/PKGBUILD b/community/linuxdcpp/PKGBUILD
new file mode 100644
index 000000000..eaef8d232
--- /dev/null
+++ b/community/linuxdcpp/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Jelle van der waa <jelle@vdwaa.nl>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tom K <tom@archlinux.org>
+
+pkgname=linuxdcpp
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="A Gtk+ Direct Connect client based on DC++."
+url="https://launchpad.net/linuxdcpp/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('openssl' 'glib2' 'libglade' 'bzip2' 'libnotify' 'hicolor-icon-theme')
+makedepends=('scons' 'boost')
+conflicts=('linuxdcpp-bzr')
+install=$pkgname.install
+source=("$url${pkgver%%.?}/$pkgver/+download/$pkgname-$pkgver.tar.bz2")
+md5sums=('037de708bdb1e5dd7ac6c359b0e2c1a0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ scons PREFIX=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ scons install FAKE_ROOT="$pkgdir/"
+}
diff --git a/community/linuxdcpp/linuxdcpp.install b/community/linuxdcpp/linuxdcpp.install
new file mode 100644
index 000000000..bce670aff
--- /dev/null
+++ b/community/linuxdcpp/linuxdcpp.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/community/linuxsampler/PKGBUILD b/community/linuxsampler/PKGBUILD
new file mode 100644
index 000000000..f2f7f9846
--- /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 'mips64el')
+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..fe902bd15
--- /dev/null
+++ b/community/linuxtv-dvb-apps/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 58911 2011-11-20 05:15:40Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Camille Moncelier <pix@devlife.org>
+
+pkgname=linuxtv-dvb-apps
+pkgver=1452
+pkgrel=1
+_hgrev=d4e8bf5658ce
+pkgdesc='Viewer programs for DVB cards'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.linuxtv.org/'
+license=('GPL')
+source=("http://linuxtv.org/hg/dvb-apps/archive/$_hgrev.tar.bz2")
+sha256sums=('c3bb865ea5c8dd97050d7b3a68ee158dadff50a2fb948d955b3a559be3cf31c5')
+
+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/lmms/PKGBUILD b/community/lmms/PKGBUILD
new file mode 100644
index 000000000..fc9280f91
--- /dev/null
+++ b/community/lmms/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 55251 2011-09-07 11:43:20Z schiv $
+# Maintainer: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Storyteller <spiralsorrow@hotmail.com>
+
+pkgname=lmms
+pkgver=0.4.12
+pkgrel=1
+pkgdesc="The Linux MultiMedia Studio"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'pulseaudio: PulseAudio output')
+makedepends=('cmake' 'ladspa' 'libxft' 'freetype2' 'fftw' 'stk')
+[[ $CARCH = i686 ]] && makedepends+=('wine')
+provides=('lmms-extras')
+conflicts=('lmms-extras')
+options=('!libtool' '!makeflags')
+install=lmms.install
+source=(http://downloads.sourceforge.net/sourceforge/lmms/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('0642aba9b6b71d2ed41b44cfde4004f6')
+
+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..7949b4cdd
--- /dev/null
+++ b/community/lockdev/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 57817 2011-11-03 10:01:23Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Wagner <a.wagner@stud.uni-frankfurt.de>
+
+pkgname=lockdev
+pkgver=1.0.3_1.2
+_pkgver=1.0.3
+pkgrel=3
+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' 'mips64el')
+source=("http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_${_pkgver}.orig.tar.gz"
+ "http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_${pkgver/_/-}.diff.gz")
+md5sums=('64b9c1b87b125fc348e892e24625524a'
+ 'afe2995ad3fc6551e107364d66a8e938')
+
+build() {
+ cd "${pkgname}-${_pkgver}"
+
+ patch -p1 -i "../${pkgname}_${pkgver/_/-}.diff"
+ sed -i "s|CFLAGS = -g|CFLAGS = -g -fPIC|" Makefile
+
+ make shared
+ make static
+}
+
+package() {
+ cd "${pkgname}-${_pkgver}"
+ make basedir="${pkgdir}/usr" install
+}
diff --git a/community/lockfile-progs/PKGBUILD b/community/lockfile-progs/PKGBUILD
new file mode 100644
index 000000000..70dee143a
--- /dev/null
+++ b/community/lockfile-progs/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 50822 2011-07-01 16:45:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'mips64el')
+license=('GPL')
+url="http://packages.debian.org/unstable/misc/lockfile-progs"
+depends=('glibc')
+makedepends=('gcc' 'make' 'liblockfile')
+source=(http://ftp.debian.org/debian/pool/main/l/lockfile-progs/${pkgname}_${pkgver}.tar.gz)
+md5sums=('abfcda83a1868073673f4d78066b8f8a')
+
+build() {
+ cd $srcdir/sid
+ make CFLAGS="-g -Wall -O2"
+}
+
+package() {
+ cd $srcdir/sid
+ mkdir -p $pkgdir/usr/bin
+ install -s bin/* $pkgdir/usr/bin
+ mkdir -p $pkgdir/usr/share/man/man1
+ install man/*.1 $pkgdir/usr/share/man/man1
+}
diff --git a/community/log4cpp/PKGBUILD b/community/log4cpp/PKGBUILD
new file mode 100644
index 000000000..21bfddf37
--- /dev/null
+++ b/community/log4cpp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58314 2011-11-11 08:13:40Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor : Geraud Le Falher <daureg@gmail.com>
+
+pkgname=log4cpp
+pkgver=1.0
+pkgrel=6
+pkgdesc="A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations."
+arch=('i686' 'x86_64')
+url="http://log4cpp.hora-obscura.de/"
+license=('LGPL')
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz gcc43.patch)
+md5sums=('1face50ead0790d1297dfb04bacf273c'
+ '09a6fd8ab6527a417c97c4db5215e558')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir"/gcc43.patch
+ ./configure --prefix=/usr --disable-doxygen --disable-dot --without-idsa
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim: set ft=sh ts=2 sw=2 et:
diff --git a/community/log4cpp/gcc43.patch b/community/log4cpp/gcc43.patch
new file mode 100644
index 000000000..a60f986e9
--- /dev/null
+++ b/community/log4cpp/gcc43.patch
@@ -0,0 +1,26 @@
+Index: log4cpp-1.0/src/BasicLayout.cpp
+===================================================================
+--- log4cpp-1.0.orig/src/BasicLayout.cpp 2008-03-14 16:06:57.000000000 -0400
++++ log4cpp-1.0/src/BasicLayout.cpp 2008-03-14 16:07:11.000000000 -0400
+@@ -15,6 +15,8 @@
+ #include <sstream>
+ #endif
+
++#include <memory>
++
+ namespace log4cpp {
+
+ BasicLayout::BasicLayout() {
+Index: log4cpp-1.0/src/PatternLayout.cpp
+===================================================================
+--- log4cpp-1.0.orig/src/PatternLayout.cpp 2008-03-14 16:07:33.000000000 -0400
++++ log4cpp-1.0/src/PatternLayout.cpp 2008-03-14 16:07:49.000000000 -0400
+@@ -370,7 +370,7 @@
+ literal = "";
+ }
+ if ((minWidth != 0) || (maxWidth != 0)) {
+- component = new FormatModifierComponent(component, std::abs(minWidth), maxWidth, minWidth < 0);
++ component = new FormatModifierComponent(component, std::abs((float)minWidth), maxWidth, minWidth < 0);
+ minWidth = maxWidth = 0;
+ }
+ _components.push_back(component);
diff --git a/community/lomoco/PKGBUILD b/community/lomoco/PKGBUILD
new file mode 100644
index 000000000..094547913
--- /dev/null
+++ b/community/lomoco/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Jeff Mickey <j@codemac.net>
+# Contributor: Shadowhand <woody.gilk@gmail.com>
+
+pkgname=lomoco
+pkgver=1.0
+pkgrel=6
+url="http://www.lomoco.org/"
+pkgdesc="Logitech USB mouse configuration program"
+license=('GPL')
+depends=('libusb-compat')
+replaces=('lmctl')
+arch=('i686' 'x86_64')
+options=(!libtool)
+backup=(etc/udev/lomoco_mouse.conf)
+source=(http://www.lomoco.org/${pkgname}-${pkgver}.tar.gz
+ lomoco_mouse.conf
+ lomoco.sh)
+md5sums=('f5197d0a3ee81229c3eecc1e03f7b08d'
+ '182b10a7e4a1828a93c1d55ef7f81b97'
+ 'bc92f661641265b33b27895ef24028fd')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./autogen.sh --prefix=/usr --mandir=/usr/share/man
+ make
+ make udev-rules
+ make DESTDIR=${pkgdir} install
+
+ # Fix and install udev rules and helpers
+ sed -i 's|/etc/sysconfig/logitech_mouse|/etc/udev/lomoco_mouse.conf|g' udev/udev.lomoco
+ sed -i 's|RUN="lomoco"|RUN+="lomoco.sh"|g' udev/lomoco.rules
+ sed -i 's|SYSFS|ATTR|' udev/lomoco.rules
+ install -D -m 644 udev/lomoco.rules ${pkgdir}/etc/udev/rules.d/80-lomoco.rules
+ install -D -m 755 ../lomoco.sh ${pkgdir}/lib/udev/lomoco.sh
+ install -D -m 644 ../lomoco_mouse.conf ${pkgdir}/etc/udev/
+}
diff --git a/community/lomoco/lomoco.sh b/community/lomoco/lomoco.sh
new file mode 100644
index 000000000..76e2392da
--- /dev/null
+++ b/community/lomoco/lomoco.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+if [ -n "$BUSNUM" -a -n "$DEVNUM" ]; then
+ . /etc/udev/lomoco_mouse.conf
+
+ options=
+
+ if [ -n "$LOGITECH_MOUSE_RESOLUTION" ]; then
+ options="--$LOGITECH_MOUSE_RESOLUTION"
+ fi
+
+ case "$LOGITECH_MOUSE_SMS" in
+ yes) options="$options --sms" ;;
+ no) options="$options --no-sms" ;;
+ esac
+
+ if [ -n "$options" ]; then
+ /usr/bin/lomoco -b $BUSNUM -d $DEVNUM $options
+ fi
+
+fi 2>&1 | /usr/bin/logger -t lomoco
diff --git a/community/lomoco/lomoco_mouse.conf b/community/lomoco/lomoco_mouse.conf
new file mode 100644
index 000000000..b8c534ec2
--- /dev/null
+++ b/community/lomoco/lomoco_mouse.conf
@@ -0,0 +1,5 @@
+# Possible Resolutions Are: 400 800 1200 1600 2000
+#LOGITECH_MOUSE_RESOLUTION="800"
+
+# SmartScroll/Cruise Control (SMS command set): yes or no
+#LOGITECH_MOUSE_SMS="no"
diff --git a/community/lorcon-old-svn/PKGBUILD b/community/lorcon-old-svn/PKGBUILD
new file mode 100644
index 000000000..0a9fb9e0b
--- /dev/null
+++ b/community/lorcon-old-svn/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 60383 2011-12-12 18:03:48Z andrea $
+# Maintainer:
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: fnord0 [fnord0 <AT> riseup <DOT> net]
+
+pkgname=lorcon-old-svn
+pkgver=224
+pkgrel=1
+pkgdesc="Loss Of Radio CONnectivity: A generic library for injecting 802.11 frames"
+url='http://802.11ninja.net'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libnl')
+options=('!libtool')
+source=("ftp://ftp.archlinux.org/other/community/lorcon-old/lorcon-old-${pkgver}.tar.bz2")
+md5sums=('7a939cc8ec0d70d1b312b9fe9f0dfaf8')
+
+build() {
+ cd "${srcdir}/lorcon-old-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/lorcon-old-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/lout/PKGBUILD b/community/lout/PKGBUILD
new file mode 100644
index 000000000..71aa6f957
--- /dev/null
+++ b/community/lout/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 56257 2011-10-04 00:41:28Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: catwell <catwell@archlinux.us>
+
+pkgname=lout
+pkgver=3.39
+pkgrel=1
+pkgdesc="A lightweight document formatting system."
+arch=('i686' 'x86_64')
+url="http://lout.wiki.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+install=lout.install
+source=(http://mirrors.ctan.org/support/$pkgname/$pkgname-$pkgver.tar.gz makefile.arch lout.install)
+md5sums=('151e1fba676c7052936ccc1bcd9663a9'
+ '088a29ca16477a9a30da9fafc9391de8'
+ 'bc6c8df650fe75dd3c51d0c047c56f30')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cp ../makefile.arch .
+ make -f makefile.arch PKGDIR="$pkgdir" install
+}
+
diff --git a/community/lout/lout.install b/community/lout/lout.install
new file mode 100755
index 000000000..f05b4b601
--- /dev/null
+++ b/community/lout/lout.install
@@ -0,0 +1,9 @@
+post_install()
+{
+ /usr/bin/lout -x -s /usr/lib/lout/include/init
+}
+
+post_upgrade()
+{
+ post_install $1
+}
diff --git a/community/lout/makefile.arch b/community/lout/makefile.arch
new file mode 100644
index 000000000..e0cb63322
--- /dev/null
+++ b/community/lout/makefile.arch
@@ -0,0 +1,45 @@
+# Makefile for lout 3.38 on Arch Linux.
+# catwell <catwell@archlinux.us>
+
+PKGDIR = /
+COPTS = -ansi -pedantic -O3
+
+CFLAGS = -DOS_UNIX=1 -DOS_DOS=0 -DOS_MAC=0 -DDB_FIX=0 -DUSE_STAT=1 \
+ -DSAFE_DFT=0 -DCOLLATE=1 -DLIB_DIR=\"/usr/lib/lout\" -DFONT_DIR=\"font\" \
+ -DMAPS_DIR=\"maps\" -DINCL_DIR=\"include\" -DDATA_DIR=\"data\" -DHYPH_DIR=\"hyph\" \
+ -DLOCALE_DIR=\"locale\" -DCHAR_IN=1 -DCHAR_OUT=0 -DLOCALE_ON=0 \
+ -DASSERT_ON=1 $(COPTS) -DDEBUG_ON=0 -DPDF_COMPRESSION=1 -I/usr/lib/
+
+OBJS = z01.o z02.o z03.o z04.o z05.o z06.o z07.o z08.o \
+ z09.o z10.o z11.o z12.o z13.o z14.o z15.o z16.o \
+ z17.o z18.o z19.o z20.o z21.o z22.o z23.o z24.o \
+ z25.o z26.o z27.o z28.o z29.o z30.o z31.o z32.o \
+ z33.o z34.o z35.o z36.o z37.o z38.o z39.o z40.o \
+ z41.o z42.o z43.o z44.o z45.o z46.o z47.o z48.o \
+ z49.o z50.o z51.o z52.o
+
+arch: $(OBJS)
+ gcc -o lout $(OBJS) /usr/lib/libz.a -lm
+ gcc -o prg2lout prg2lout.c
+
+$(OBJS): externs.h
+
+externs.h:
+
+install: arch
+ # lout
+ install -Dm0755 lout $(PKGDIR)/usr/bin/lout
+ set include data hyph font maps; \
+ for i; do \
+ install -d $(PKGDIR)/usr/lib/lout/$$i; \
+ install -m0644 -t $(PKGDIR)/usr/lib/lout/$$i/ $$i/*; \
+ done
+ # prg2lout
+ install -Dm0755 prg2lout $(PKGDIR)/usr/bin/prg2lout
+ # man
+ sed -i -e "s@<BINDIR>@/usr/bin@" -e "s@<LIBDIR>@/usr/lib/lout@" \
+ -e "s@<LOUTDOCDIR>@/usr/doc/lout@" -e "s@<MANDIR>@/usr/share/man/man1@" \
+ man/lout.1
+ install -Dm0644 man/lout.1 $(PKGDIR)/usr/share/man/man1/lout.1
+ install -Dm0644 man/prg2lout.1 $(PKGDIR)/usr/share/man/man1/prg2lout.1
+
diff --git a/community/lrzsz/PKGBUILD b/community/lrzsz/PKGBUILD
new file mode 100644
index 000000000..66a420ebc
--- /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' 'mips64el')
+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/lshw/PKGBUILD b/community/lshw/PKGBUILD
new file mode 100644
index 000000000..fbc59ec44
--- /dev/null
+++ b/community/lshw/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 58989 2011-11-20 19:39:08Z 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' 'mips64el')
+depends=('gcc-libs')
+optdepends=('gtk2')
+makedepends=('gcc' 'gtk2' 'sqlite3')
+source=(http://ezix.org/software/files/lshw-$pkgver.tar.gz)
+md5sums=('970bd9eb05fa3ae139a24a417465c54c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make
+ make gui
+ make DESTDIR=$pkgdir/ install
+ 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/lsscsi/PKGBUILD b/community/lsscsi/PKGBUILD
new file mode 100644
index 000000000..7f592af0b
--- /dev/null
+++ b/community/lsscsi/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59629 2011-11-28 22:05:11Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor : XAVeRY - los dot danielos at gmail dot com
+
+pkgname=lsscsi
+pkgver=0.25
+pkgrel=1
+pkgdesc='A tool that lists devices connected via SCSI and its transports'
+arch=('i686' 'x86_64')
+url="http://sg.danny.cz/scsi/lsscsi.html"
+license=('GPL')
+depends=('sysfsutils')
+source=("http://sg.danny.cz/scsi/${pkgname}-${pkgver}.tgz")
+md5sums=('c4e36b106624aff78527c54cf08ecbfe')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ltris/PKGBUILD b/community/ltris/PKGBUILD
new file mode 100644
index 000000000..8d262586a
--- /dev/null
+++ b/community/ltris/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 54927 2011-08-28 13:23:10Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
+
+pkgname=ltris
+pkgver=1.0.17
+pkgrel=1
+pkgdesc="A tetris clone where you have a bowl with blocks falling down"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://lgames.sourceforge.net/index.php?project=LTris"
+license=('GPL')
+depends=('sdl_mixer')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/lgames/$pkgname-$pkgver.tar.gz)
+sha256sums=('b4d2888bc50bb2ad9dd59f97c15fbfaee96c54d86c834f1231cd6e8af66bf52c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --localstatedir=/var/games
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -d ${pkgdir}/usr/share/pixmaps
+ install -m644 icons/ltris{16,32,48}.xpm ${pkgdir}/usr/share/pixmaps
+
+ ./configure --prefix=/usr --localstatedir=/var/games
+ make
+}
diff --git a/community/ltris/ltris.changelog b/community/ltris/ltris.changelog
new file mode 100644
index 000000000..0454493b1
--- /dev/null
+++ b/community/ltris/ltris.changelog
@@ -0,0 +1,25 @@
+2011-08-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * ltris 1.0.17-1
+ * Upstream update
+
+2011-03-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * ltris 1.0.16-1
+ * Upstream update
+
+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/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-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..971baccb9
--- /dev/null
+++ b/community/lua-zlib/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 54197 2011-08-14 19:29:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=lua-zlib
+pkgver=0.2
+pkgrel=1
+_gitver=8d07669
+_luaver=5.1
+url="http://github.com/brimworks/lua-zlib"
+pkgdesc='Simple streaming interface to zlib for Lua.'
+arch=('i686' 'x86_64' 'mips64el')
+license=('MIT')
+depends=('lua' 'zlib')
+makedepends=('cmake')
+conflicts=('lua-lzlib')
+source=("lua-zlib-$pkgver.zip::https://github.com/brimworks/lua-zlib/zipball/v$pkgver")
+md5sums=('d7ca7d12b6e50e3ec4c2057f65ca87d1')
+
+build() {
+ cd $srcdir/brimworks-lua-zlib-${_gitver}
+ 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-${_gitver}
+ make DESTDIR="$pkgdir" install
+ 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..4d4a35193
--- /dev/null
+++ b/community/luaexpat/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Lucas Hermann Negri <kkndrox@gmail.com>
+
+pkgname=luaexpat
+pkgver=1.2.0
+pkgrel=1
+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' 'mips64el')
+url='http://code.matthewwild.co.uk/lua-expat'
+license=('MIT')
+makedepends=('gcc' 'lua>=5.1' 'expat>=2')
+depends=('lua' 'expat')
+source=("http://matthewwild.co.uk/projects/luaexpat/luaexpat-$pkgver.tar.gz"
+ 'newconfig')
+md5sums=('03efe50c7f30a34580701e6527d7bfee'
+ 'b89a09379d3e46e6496255e44cecc316')
+
+build() {
+ cd $startdir/src/
+ mv newconfig $pkgname-$pkgver/config
+ cd $pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $startdir/src/$pkgname-$pkgver
+ make DESTDIR=$startdir/pkg install
+ 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..ebfdd18b6
--- /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' 'mips64el')
+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/luakit/PKGBUILD b/community/luakit/PKGBUILD
new file mode 100644
index 000000000..f5630efd1
--- /dev/null
+++ b/community/luakit/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: J. W. Birdsong <jwbirdsong AT gmail DOT com>
+
+pkgname=luakit
+pkgver=2011.07.22
+pkgrel=2
+pkgdesc='luakit is a highly configurable, micro-browser framework based on the WebKit web content engine and the GTK+ toolkit."Stable" release'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.luakit.org/projects/luakit'
+license=('GPL3')
+depends=('libwebkit' 'luafilesystem' 'libunique')
+makedepends=('git' 'help2man')
+options=(!makeflags)
+conflicts=('luakit-git' 'luakit-develop-git')
+install='luakit.install'
+source=("${pkgver}.tar.gz::https://github.com/mason-larobina/luakit/tarball/${pkgver}-r1")
+md5sums=('4937deb6bc81416e2deb037f4a5763e4')
+
+build() {
+ cd mason-larobina-luakit-*
+
+ make PREFIX=/usr DESTDIR=${pkgdir} all
+}
+
+package() {
+ cd mason-larobina-luakit-*
+
+ make PREFIX=/usr DESTDIR=${pkgdir} install
+}
diff --git a/community/luakit/luakit.install b/community/luakit/luakit.install
new file mode 100644
index 000000000..c80d7609f
--- /dev/null
+++ b/community/luakit/luakit.install
@@ -0,0 +1,10 @@
+post_install() {
+ echo 'Configs are located in /etc/xdg/luakit/*.lua'
+ echo 'Copy to ~/.config/luakit/ (this folder is created on 1st start of Luakit) for local config.'
+ echo 'Or edit in place for global changes.'
+ echo 'You NEED to replace local configs after each update'
+}
+
+post_upgrade() {
+ post_install ${1}
+}
diff --git a/community/luarocks/PKGBUILD b/community/luarocks/PKGBUILD
new file mode 100644
index 000000000..a050d0b6a
--- /dev/null
+++ b/community/luarocks/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 56921 2011-10-16 23:25:18Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+
+pkgname=luarocks
+pkgver=2.0.6
+pkgrel=1
+pkgdesc='Deployment and management system for Lua modules'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://luarocks.org/"
+depends=('lua' 'unzip' 'zip' 'curl')
+optdepends=('cvs: for fetching sources from CVS repositories'
+ 'git: for fetching sources from git repositories'
+ 'mercurial: for fetching sources from mercurial repositories'
+ 'luasec: HTTPS support'
+ 'cmake: for building rocks that use the cmake build system')
+license=('custom')
+source=(http://luarocks.org/releases/$pkgname-$pkgver.tar.gz
+ packbinary.patch)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ## The --pack-binary option to the "build" command is broken in the release,
+ # but it was fixed in upstream's git repo. The following patch goes
+ # away with the next release:
+ patch -p1 < "$srcdir/packbinary.patch"
+
+ # 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=('ad3eed4d579552aa91ea49c2bdbc2bb1'
+ 'f364b5a092a54559408df7431bc14746')
diff --git a/community/luarocks/packbinary.patch b/community/luarocks/packbinary.patch
new file mode 100644
index 000000000..59a46f6e1
--- /dev/null
+++ b/community/luarocks/packbinary.patch
@@ -0,0 +1,12 @@
+diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua
+index af098f3..3c7f440 100644
+--- a/src/luarocks/build.lua
++++ b/src/luarocks/build.lua
+@@ -3,6 +3,7 @@
+ -- Builds a rock, compiling its C parts if any.
+ module("luarocks.build", package.seeall)
+
++local pack = require("luarocks.pack")
+ local path = require("luarocks.path")
+ local util = require("luarocks.util")
+ local rep = require("luarocks.rep")
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..fcb9d5451
--- /dev/null
+++ b/community/luasec/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 59126 2011-11-21 11:54:45Z spupykin $
+# 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' 'mips64el')
+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'
+ '25e48c1115225d9884cdb7f5ca4949a9')
+
+build() {
+ install -d "$pkgdir/usr/share/lua/5.1"
+ install -d "$pkgdir/usr/lib/lua/5.1"
+ install -d "$pkgdir/usr/share/licenses/$pkgname"
+
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 Makefile "$srcdir/luasec.patch"
+ make linux
+ make DESTDIR=$pkgdir install
+
+ install -m644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/luasec/luasec.patch b/community/luasec/luasec.patch
new file mode 100644
index 000000000..7b0c9d6cc
--- /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
+
+ # 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..488f518d7
--- /dev/null
+++ b/community/luasocket/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 49637 2011-06-18 20:20:18Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Anders Bergh <anders1@gmail.com>
+
+pkgname=luasocket
+pkgver=2.0.2
+pkgrel=5
+pkgdesc="Luasocket is the most comprehensive networking support library for the Lua language."
+arch=('i686' 'x86_64' 'mips64el')
+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
+ luasocket-arch.patch
+ luasocket-unixsocket.patch)
+md5sums=('41445b138deb7bcfe97bff957503da8e'
+ '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 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
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..ba64c3d79
--- /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' 'mips64el')
+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..b60640e55
--- /dev/null
+++ b/community/luminancehdr/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 58474 2011-11-12 22:05:38Z lcarlier $
+# 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.1.0
+pkgrel=5
+pkgdesc='Open source graphical user interface application that aims to provide a workflow for HDR imaging'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://qtpfsgui.sourceforge.net/'
+license=('GPL')
+depends=('exiv2' 'fftw' 'gsl' 'libraw' 'openexr' 'qt')
+optdepends=('hugin: align image stack functionality')
+install=$pkgname.install
+changelog=$pkgname.changelog
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/qtpfsgui/luminance-hdr-${pkgver}.tar.gz
+ luminance-hdr-2.1.0-libraw.patch)
+sha256sums=('0b0f124ada6da62c379d6e4bd6fd150643115cb46f05c527c29113f475a5eeac'
+ 'd3be7458713693382b64a6a1fa766c14bc16be2ff9c5a06567c0e5335581151c')
+
+build() {
+ cd "${srcdir}/luminance-hdr-${pkgver}"
+
+ # stolen from gentoo
+ patch -Np1 -i ../luminance-hdr-2.1.0-libraw.patch
+
+ if [ ${CARCH} = i686 ]; then
+ sed -i 's/ -msse2//' project.pro
+ fi
+
+ lrelease project.pro
+ qmake PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/luminance-hdr-${pkgver}"
+
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/community/luminancehdr/luminance-hdr-2.1.0-libraw.patch b/community/luminancehdr/luminance-hdr-2.1.0-libraw.patch
new file mode 100644
index 000000000..8472a7422
--- /dev/null
+++ b/community/luminancehdr/luminance-hdr-2.1.0-libraw.patch
@@ -0,0 +1,10 @@
+--- luminance-hdr-2.1.0/src/Fileformat/pfsinraw.cpp.orig
++++ luminance-hdr-2.1.0/src/Fileformat/pfsinraw.cpp
+@@ -94,7 +94,6 @@
+ RawProcessor.set_progress_handler(cb, callback_data);
+ int ret;
+
+- OUT.filtering_mode = LIBRAW_FILTERING_AUTOMATIC;
+ OUT.output_bps = 16;
+
+ //OUT.gamm[0] = 1/2.4; //sRGB
diff --git a/community/luminancehdr/luminancehdr.changelog b/community/luminancehdr/luminancehdr.changelog
new file mode 100644
index 000000000..378053ef5
--- /dev/null
+++ b/community/luminancehdr/luminancehdr.changelog
@@ -0,0 +1,33 @@
+2011-08-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * luminancehdr 2.1.0-1
+
+2011-05-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * luminancehdr 2.0.2-1
+
+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..279762804
--- /dev/null
+++ b/community/luminancehdr/luminancehdr.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/luxrays/PKGBUILD b/community/luxrays/PKGBUILD
new file mode 100644
index 000000000..59844fd42
--- /dev/null
+++ b/community/luxrays/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 59944 2011-12-02 20:59:16Z ibiru $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=luxrays
+pkgver=0.8
+_pkgver=ed424ec77571
+pkgrel=7
+epoch=0
+pkgdesc="Accelerate the ray intersection process by using GPUs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.luxrender.net/"
+license=('GPL')
+depends=('freeimage' 'freeglut' 'glew' 'libcl')
+makedepends=('cmake' 'boost' 'opencl-headers')
+source=(https://bitbucket.org/luxrender/luxrays/get/$_pkgver.tar.bz2 \
+ luxrays_opencl1.2_use_deprecated.diff)
+md5sums=('2ac9c588675c5971c57f473ef10ac67d'
+ '27b3eb7c6332aa7f040cc4ca94dc3df6')
+
+build() {
+ cd "$srcdir/luxrender-$pkgname-$_pkgver"
+
+ # fix the build with opencl-headers 1.2
+ # they doesn't support OpenCL 1.1, so we have to use this ugly hack of using deprecated API
+ patch -Np1 < "$srcdir/luxrays_opencl1.2_use_deprecated.diff"
+ # fix the break caused by the change of the name of the namespace 'detail' to 'ipcdetail'
+ sed -i 's|::detail|::ipcdetail|' include/luxrays/utils/core/atomic.h
+
+ export CXXFLAGS="$CXXFLAGS -lpthread"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DLUXRAYS_DISABLE_OPENCL=OFF \
+ .
+ make
+}
+
+package() {
+ cd "$srcdir/luxrender-$pkgname-$_pkgver"
+
+ install -d -m755 "$pkgdir"/usr/{bin,include,lib}
+ install -m755 bin/* "$pkgdir"/usr/bin
+ install -m644 lib/* "$pkgdir"/usr/lib
+ cp -a include/luxrays "$pkgdir"/usr/include
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/luxrays/luxrays_opencl1.2_use_deprecated.diff b/community/luxrays/luxrays_opencl1.2_use_deprecated.diff
new file mode 100644
index 000000000..0876628d7
--- /dev/null
+++ b/community/luxrays/luxrays_opencl1.2_use_deprecated.diff
@@ -0,0 +1,12 @@
+diff -rup luxrender-luxrays-ed424ec77571.orig/include/luxrays/luxrays.h luxrender-luxrays-ed424ec77571/include/luxrays/luxrays.h
+--- luxrender-luxrays-ed424ec77571.orig/include/luxrays/luxrays.h 2011-04-24 17:43:08.000000000 +0200
++++ luxrender-luxrays-ed424ec77571/include/luxrays/luxrays.h 2011-11-26 11:38:00.336459874 +0100
+@@ -30,6 +30,8 @@
+
+ #define __CL_ENABLE_EXCEPTIONS
+
++#define CL_USE_DEPRECATED_OPENCL_1_1_APIS
++
+ #if defined(__APPLE__)
+ #include <OpenCL/cl.hpp>
+ #else
diff --git a/community/luxrender/PKGBUILD b/community/luxrender/PKGBUILD
new file mode 100644
index 000000000..cb4b88df1
--- /dev/null
+++ b/community/luxrender/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 59946 2011-12-02 20:59:23Z ibiru $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Initial contributor: flixie <69one@gmx.net>
+# Contributor: Imanol Celaya <ornitorrincos@archlinux-es.org>
+pkgname=luxrender
+pkgver=0.8
+_pkgver=45d3e13eb94c
+_luxblend=9cb3fcee0be8
+_blender=2.60
+pkgrel=10
+pkgdesc="Rendering system for physically correct, unbiased image synthesis"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.luxrender.net/"
+license=('GPL')
+depends=('boost-libs' 'freeimage' 'openexr' 'libcl')
+optdepends=('blender: Blender exporter' 'qt: Qt GUI' \
+ 'nvidia-utils: OpenCL support for nVidia GPUs' \
+ 'amdstream: OpenCL support for AMD GPUs' \
+ 'intel-opencl-sdk: OpenCL support for Intel CPUs')
+makedepends=('cmake' 'boost' 'qt' 'luxrays' 'python' 'opencl-headers')
+source=(ftp://ftp.archlinux.org/other/community/luxrender/lux-"$pkgver".tar.bz2 \
+ https://bitbucket.org/luxrender/luxblend25/get/v08-2.60.tar.bz2)
+md5sums=('0f2d856385db72131f51e44a7ee527fa'
+ '004596f577bbe681358c40507b2583e8')
+
+build() {
+ cd "$srcdir"/luxrender-lux-$_pkgver
+
+ sed -i 's/FIND_PACKAGE(Boost 1.43 COMPONENTS python REQUIRED)/FIND_PACKAGE(Boost 1.43 COMPONENTS python3 REQUIRED)/' CMakeLists.txt
+
+ export CXXFLAGS="$CXXFLAGS -lpthread"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLUXRAYS_DISABLE_OPENCL=OFF \
+ -DPYTHON_CUSTOM=ON \
+ -DPYTHON_LIBRARIES=/usr/lib/libpython3.2mu.so \
+ -DPYTHON_INCLUDE_PATH=/usr/include/python3.2mu/ \
+ .
+ make
+}
+
+package() {
+ cd "$srcdir"/luxrender-lux-$_pkgver
+ make DESTDIR="$pkgdir" install
+
+ # fix library path on x86_64
+ [ "$CARCH" = "x86_64" ] && mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib
+
+ # install the blender exporter
+ install -d -m755 "$pkgdir"/usr/share/blender/$_blender/scripts/addons
+ cp -a "$srcdir"/luxrender-luxblend25-v08-2.60/src/luxrender \
+ "$pkgdir"/usr/share/blender/$_blender/scripts/addons
+ cp -a "$srcdir"/luxrender-lux-$_pkgver/pylux.so "$pkgdir"/usr/share/blender/$_blender/scripts/addons/luxrender/
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/lwm/PKGBUILD b/community/lwm/PKGBUILD
new file mode 100644
index 000000000..f14f5c36a
--- /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' 'mips64el')
+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..6c70d064b
--- /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 'mips64el')
+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..a01cf7932
--- /dev/null
+++ b/community/lxappearance/PKGBUILD
@@ -0,0 +1,34 @@
+#$Id: PKGBUILD 60017 2011-12-03 08:38:35Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=lxappearance
+pkgver=0.5.1
+pkgrel=3
+pkgdesc="GTK+ theme switcher of the LXDE Desktop (manages icons and fonts)"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'intltool')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz
+ gtk-3.0.patch)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np0 -i ../gtk-3.0.patch
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums=('34d157a7fe97ef0b93db8fab3f251e07'
+ '58fd450329972be03181c98e7287f3ae')
diff --git a/community/lxappearance/gtk-3.0.patch b/community/lxappearance/gtk-3.0.patch
new file mode 100644
index 000000000..a65615cd7
--- /dev/null
+++ b/community/lxappearance/gtk-3.0.patch
@@ -0,0 +1,111 @@
+--- src/lxappearance.c 2011-07-29 16:50:19.000000000 +0200
++++ src/lxappearance1.c 2011-07-30 18:51:40.323368701 +0200
+@@ -153,21 +153,33 @@
+
+ char* file_path = g_build_filename(g_get_home_dir(), ".gtkrc-2.0", NULL);
+ GString* content = g_string_sized_new(512);
++ GString* content3 = g_string_sized_new(512);
+ g_string_append(content,
+ "# DO NOT EDIT! This file will be overwritten by LXAppearance.\n"
+ "# Any customization should be done in ~/.gtkrc-2.0.mine instead.\n\n");
++ g_string_append(content3, "[Settings]\n"
++ "# DO NOT EDIT! This file will be overwritten by LXAppearance.\n");
++
+ if(app.widget_theme)
+ g_string_append_printf(content,
+ "gtk-theme-name=\"%s\"\n", app.widget_theme);
++ g_string_append_printf(content3,
++ "gtk-theme-name = %s\n", app.widget_theme);
+ if(app.icon_theme)
+ g_string_append_printf(content,
+- "gtk-icon-theme-name=\"%s\"\n", app.icon_theme);
++ "gtk-icon-theme-name=\"%s\"\n", app.icon_theme);
++ g_string_append_printf(content3,
++ "gtk-icon-theme-name = %s\n", app.icon_theme);
+ if(app.default_font)
+ g_string_append_printf(content,
+ "gtk-font-name=\"%s\"\n", app.default_font);
++ g_string_append_printf(content3,
++ "gtk-font-name = %s\n", app.default_font);
+ if(app.cursor_theme)
+ g_string_append_printf(content,
+ "gtk-cursor-theme-name=\"%s\"\n", app.cursor_theme);
++ g_string_append_printf(content3,
++ "gtk-cursor-theme-name = %s\n", app.cursor_theme);
+ save_cursor_theme_name();
+
+ g_string_append_printf(content,
+@@ -196,20 +208,46 @@
+ app.enable_hinting ? 1 : 0
+ );
+
++ g_string_append_printf(content3,
++ "gtk-cursor-theme-size = %d\n"
++ "gtk-toolbar-style = %s\n"
++ "gtk-toolbar-icon-size = %s\n"
++ "gtk-button-images = %d\n"
++ "gtk-menu-images = %d\n"
++ "gtk-enable-event-sounds = %d\n"
++ "gtk-enable-input-feedback-sounds = %d\n"
++ "gtk-xft-antialias = %d\n"
++ "gtk-xft-hinting = %d\n",
++ app.cursor_theme_size,
++ tb_styles[app.toolbar_style],
++ tb_icon_sizes[app.toolbar_icon_size],
++ app.button_images ? 1 : 0,
++ app.menu_images ? 1 : 0,
++ app.enable_event_sound ? 1 : 0,
++ app.enable_input_feedback ? 1 : 0,
++ app.enable_antialising ? 1 : 0,
++ app.enable_hinting ? 1 : 0
++ );
++
+ if(app.hinting_style)
+ g_string_append_printf(content,
+ "gtk-xft-hintstyle=\"%s\"\n", app.hinting_style);
++ g_string_append_printf(content3,
++ "gtk-xft-hintstyle = %s\n", app.hinting_style);
+
+ if(app.font_rgba)
+ g_string_append_printf(content,
+ "gtk-xft-rgba=\"%s\"\n", app.font_rgba);
++ g_string_append_printf(content3,
++ "gtk-xft-rgba = %s\n", app.font_rgba);
+
+ if(app.color_scheme)
+ {
+ char* escaped = g_strescape(app.color_scheme, NULL);
+ g_string_append_printf(content,
+- "gtk-color-scheme=\"%s\"\n",
+- escaped);
++ "gtk-color-scheme=\"%s\"\n", escaped);
++ g_string_append_printf(content3,
++ "gtk-color-scheme = %s\n", escaped);
+ g_free(escaped);
+ }
+
+@@ -218,20 +256,20 @@
+ g_get_home_dir());
+
+ g_file_set_contents(file_path, content->str, content->len, NULL);
++ g_string_free(content, TRUE);
+
+ /* Save also for GTK3 */
+- g_string_prepend(content, "[Settings] \n");
+- char* file_path_gtk3 = g_build_filename(g_get_home_dir(), "gtk-3.0", NULL);
+- char* file_path_settings = g_build_filename(g_get_home_dir(), "gtk-3.0", "settings.ini", NULL);
++ char* file_path_gtk3 = g_build_filename(g_get_user_config_dir(), "gtk-3.0", NULL);
++ char* file_path_settings = g_build_filename(g_get_user_config_dir(), "gtk-3.0", "settings.ini", NULL);
+
+ if (!g_file_test(file_path_gtk3, G_FILE_TEST_IS_DIR))
+ {
+ g_mkdir_with_parents(file_path_gtk3, 0755);
+ }
+
+- g_file_set_contents(file_path_settings, content->str, content->len, NULL);
++ g_file_set_contents(file_path_settings, content3->str, content3->len, NULL);
+
+- g_string_free(content, TRUE);
++ g_string_free(content3, TRUE);
+ g_free(file_path);
+ }
diff --git a/community/lxde-common/PKGBUILD b/community/lxde-common/PKGBUILD
new file mode 100644
index 000000000..2bf03bb55
--- /dev/null
+++ b/community/lxde-common/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 53456 2011-08-03 20:00:26Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=lxde-common
+pkgver=0.5.5
+pkgrel=1
+pkgdesc="Common files of the LXDE Desktop"
+arch=('i686' 'x86_64' 'mips64el')
+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/lxde/${pkgname}-${pkgver}.tar.gz")
+md5sums=('e51a6b2a815a89fda1f497b509465a97')
+
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ autoreconf
+ ./configure --sysconfdir=/etc --prefix=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm644 lxde-logout.desktop \
+ ${pkgdir}/usr/share/applications/lxde-logout.desktop
+}
diff --git a/community/lxde-common/lxde-common.install b/community/lxde-common/lxde-common.install
new file mode 100644
index 000000000..d2226670d
--- /dev/null
+++ b/community/lxde-common/lxde-common.install
@@ -0,0 +1,13 @@
+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}
+}
diff --git a/community/lxdm/PKGBUILD b/community/lxdm/PKGBUILD
new file mode 100644
index 000000000..373ca457b
--- /dev/null
+++ b/community/lxdm/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 60015 2011-12-03 08:31:47Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: AndyRTR <andyrtr@archlinux.org>
+# Contributor: kiefer <jorgelmadrid@gmail.com>
+
+pkgname=lxdm
+pkgver=0.4.1
+pkgrel=7
+pkgdesc="Lightweight Display Manager (part of LXDE)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/lxdm/"
+license=('GPL')
+groups=('lxde')
+depends=('gtk2' 'xorg-server' 'consolekit')
+makedepends=('intltool')
+install=${pkgname}.install
+backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession'
+ 'etc/lxdm/PreLogin' 'etc/lxdm/LoginReady' 'etc/lxdm/PostLogin'
+ 'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown')
+source=("http://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.gz"
+ lxdm.patch lxdm-conf.patch lxdm-pam.patch Xsession.patch lxdm-daemon)
+md5sums=('8da1cfc2be6dc9217c85a7cf51e1e821'
+ 'baed9055e8825a5511712bc095197519'
+ 'c50dd01b715b0a236407d48066191601'
+ 'b20fe3c8487a039050986d60e45233a9'
+ 'd2e4a4a22ee2aa1a986be154c647b6c6'
+ '705f394052fdd0dec22e95321d170de0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib/lxdm
+ make
+
+ patch -Np0 < ../lxdm.patch
+ patch -Np0 < ../lxdm-conf.patch
+ patch -Np0 < ../Xsession.patch
+}
+
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 ${srcdir}/lxdm-pam.patch ${pkgdir}/etc/pam.d/lxdm
+ install -Dm755 ${srcdir}/lxdm-daemon ${pkgdir}/etc/rc.d/lxdm
+ install -d ${pkgdir}/var/{lib,run}/lxdm
+
+ # fix the greeter location
+ sed -i -e "s/local\/libexec/lib\/lxdm/" ${pkgdir}/etc/lxdm/lxdm.conf
+}
diff --git a/community/lxdm/Xsession.patch b/community/lxdm/Xsession.patch
new file mode 100644
index 000000000..035ff0383
--- /dev/null
+++ b/community/lxdm/Xsession.patch
@@ -0,0 +1,11 @@
+--- data/Xsession.orig 2011-07-29 15:42:33.000000000 +0200
++++ data/Xsession 2011-12-03 09:09:14.592876087 +0100
+@@ -9,6 +9,8 @@
+ LXSESSION=/usr/bin/startlxde
+ fi
+
++[ -f /etc/profile ] && . /etc/profile
++[ -f ~/.profile ] && . ~/.profile
+ [ -f /etc/xprofile ] && . /etc/xprofile
+ [ -f ~/.xprofile ] && . ~/.xprofile
+
diff --git a/community/lxdm/lxdm-conf.patch b/community/lxdm/lxdm-conf.patch
new file mode 100644
index 000000000..1744e557e
--- /dev/null
+++ b/community/lxdm/lxdm-conf.patch
@@ -0,0 +1,11 @@
+--- data/lxdm.conf.orig 2011-11-01 17:57:59.208757577 +0100
++++ data/lxdm.conf 2011-11-01 18:03:55.608741945 +0100
+@@ -27,7 +27,7 @@
+ gtk_theme=Clearlooks
+
+ ## background of the greeter
+-bg=/usr/share/backgrounds/default.png
++# bg=/usr/share/backgrounds/default.png
+
+ ## if show bottom pane
+ bottom_pane=1
diff --git a/community/lxdm/lxdm-daemon b/community/lxdm/lxdm-daemon
new file mode 100644
index 000000000..68eb6225d
--- /dev/null
+++ b/community/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/community/lxdm/lxdm-pam.patch b/community/lxdm/lxdm-pam.patch
new file mode 100644
index 000000000..3f5df04a7
--- /dev/null
+++ b/community/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/community/lxdm/lxdm.install b/community/lxdm/lxdm.install
new file mode 100644
index 000000000..24edd91a4
--- /dev/null
+++ b/community/lxdm/lxdm.install
@@ -0,0 +1,18 @@
+pkgname=lxdm
+
+post_install() {
+ getent group lxdm > /dev/null 2>&1 || groupadd -g 121 lxdm
+ getent passwd lxdm > /dev/null 2>&1 || useradd -c 'LXDE Display Manager' -u 121 -g lxdm -d /var/lib/lxdm -s /sbin/nologin lxdm
+ passwd -l lxdm > /dev/null
+ chown -R lxdm:lxdm /var/lib/lxdm > /dev/null
+ chmod +r /etc/lxdm/lxdm.conf
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ getent passwd lxdm > /dev/null 2>&1 && userdel lxdm
+ getent group lxdm > /dev/null 2>&1 && groupdel lxdm
+}
diff --git a/community/lxdm/lxdm.patch b/community/lxdm/lxdm.patch
new file mode 100644
index 000000000..a703a386d
--- /dev/null
+++ b/community/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/community/lxlauncher/PKGBUILD b/community/lxlauncher/PKGBUILD
new file mode 100644
index 000000000..c8bac639a
--- /dev/null
+++ b/community/lxlauncher/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 52832 2011-07-28 23:39:16Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxlauncher
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="Launcher for Asus EeePC (part of LXDE)"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('16df627447838b170a72cc3a9ee21497')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ autoreconf
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
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/lxmenu-data/PKGBUILD b/community/lxmenu-data/PKGBUILD
new file mode 100644
index 000000000..cdb8fc741
--- /dev/null
+++ b/community/lxmenu-data/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 52895 2011-07-29 18:44:33Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=lxmenu-data
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="freedesktop.org desktop menus for LXDE"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+source=("http://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.gz")
+makedepends=('intltool')
+md5sums=('2184ab3746d572477f1bea7e98e230a8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/lxnm/PKGBUILD b/community/lxnm/PKGBUILD
new file mode 100644
index 000000000..a14cc780e
--- /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' 'mips64el')
+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/lxpanel/PKGBUILD b/community/lxpanel/PKGBUILD
new file mode 100644
index 000000000..2d4d83d47
--- /dev/null
+++ b/community/lxpanel/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 53158 2011-07-31 08:25:21Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=lxpanel
+pkgver=0.5.8
+pkgrel=1
+pkgdesc="Panel of the LXDE Desktop"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'alsa-lib' 'menu-cache' 'lxmenu-data')
+source=(http://downloads.sourceforge.net/lxde/${pkgname}-${pkgver}.tar.gz)
+optdepends=(pcmanfm)
+md5sums=('129fae75d1cd3983fd94542c573a70a1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/lxrandr/PKGBUILD b/community/lxrandr/PKGBUILD
new file mode 100644
index 000000000..c427394b5
--- /dev/null
+++ b/community/lxrandr/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 52615 2011-07-26 12:18:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=lxrandr
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="Monitor configuration tool (part of LXDE)"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'xorg-server-utils')
+makedepends=('pkgconfig' 'intltool')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8a7391581541bba58839ac11dbf5b575')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ [ -f Makefile ] || ./configure --sysconfdir=/etc --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/lxsession/PKGBUILD b/community/lxsession/PKGBUILD
new file mode 100644
index 000000000..808b33161
--- /dev/null
+++ b/community/lxsession/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 53453 2011-08-03 19:42:00Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=lxsession
+pkgver=0.4.6.1
+pkgrel=1
+pkgdesc="Session manager of the LXDE Desktop (light version)"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'dbus')
+makedepends=('pkgconfig' 'intltool')
+replaces=('lxde-settings-daemon' 'lxsession-lite')
+conflicts=('lxsession-lite' 'lxde-settings-daemon')
+source=(http://downloads.sourceforge.net/lxde/lxsession-${pkgver}.tar.gz)
+md5sums=('e456b64c5ab3652a4dec661ec706dc6e')
+
+build() {
+ cd "$srcdir/lxsession-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/lxsession-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/lxtask/PKGBUILD b/community/lxtask/PKGBUILD
new file mode 100644
index 000000000..8fa1911f3
--- /dev/null
+++ b/community/lxtask/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56901 2011-10-16 07:43:53Z bpiotrowski $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxtask
+pkgver=0.1.4
+pkgrel=3
+pkgdesc="Task manager of the LXDE Desktop"
+arch=('i686' 'x86_64' 'mips64el')
+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=('c4ab47d03d41a88696d64d3f1e78cf7f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ autoreconf
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/lxterminal/PKGBUILD b/community/lxterminal/PKGBUILD
new file mode 100644
index 000000000..8c76a79ca
--- /dev/null
+++ b/community/lxterminal/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 52827 2011-07-28 23:21:06Z angvp $
+# # Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxterminal
+pkgver=0.1.11
+pkgrel=1
+pkgdesc="VTE-based terminal emulator (part of LXDE)"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('fd9140b45c0f28d021253c4aeb8c4aea')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/macchanger/PKGBUILD b/community/macchanger/PKGBUILD
new file mode 100644
index 000000000..456e3fcea
--- /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' 'mips64el')
+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..2a6cc72c7
--- /dev/null
+++ b/community/madman/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 56740 2011-10-11 17:41:27Z 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=3
+pkgdesc="I-tunes like music player"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://madman.sourceforge.net/"
+license=('GPL')
+depends=('qt3' 'xmms' 'gtk' 'taglib')
+makedepends=('python2' 'scons')
+source=(ftp://ftp.archlinux.org/other/community/madman/madman_$pkgver.orig.tar.gz
+ ftp://ftp.archlinux.org/other/community/madman/madman_$pkgver-2.diff.gz
+ ftp://ftp.archlinux.org/other/community/madman/madman.desktop
+ ftp://ftp.archlinux.org/other/community/madman/madman_logo.png
+ ftp://ftp.archlinux.org/other/community/madman/madman_logo_mini.png
+ ftp://ftp.archlinux.org/other/community/madman/madman_logo_large.png
+ fake-g++.sh)
+md5sums=('36e7a4619ebe83ed939c7ae09c16d535'
+ '26de942ae2465fb805748d3bea9a8a17'
+ '591354b69235d5a4b5a09591d04db266'
+ 'd4546f77857a6ccdabb2036eb6a0da07'
+ '2d54bb8eceed283edc88a3e4553d2483'
+ '3c2da1b1800fb372e225ae38fa1398e8'
+ '685a6fb13c861b82950dd6a77fd02120')
+
+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
+ sed -i 's|python|python2|' designer/make_imagedata httpd/make_webdata doc/update_format_tag
+ cp $srcdir/fake-g++.sh ./g++
+ export PATH=.:$PATH
+
+ scons
+ scons install_to=$pkgdir/usr prefix=/usr install
+
+ install -Dm644 $srcdir/madman_logo.png $pkgdir/usr/share/icons/madman_logo.png
+ install -Dm644 $srcdir/madman_logo_mini.png $pkgdir/usr/share/icons/mini/madman_logo_mini.png
+ install -Dm644 $srcdir/madman_logo_large.png $pkgdir/usr/share/icons/large/madman_logo_large.png
+ install -Dm644 $srcdir/madman.desktop $pkgdir/usr/share/applications/madman.desktop
+}
diff --git a/community/madman/fake-g++.sh b/community/madman/fake-g++.sh
new file mode 100755
index 000000000..af424f5ca
--- /dev/null
+++ b/community/madman/fake-g++.sh
@@ -0,0 +1,5 @@
+#!/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 /usr/bin/g++ $Q
diff --git a/community/mailutils/PKGBUILD b/community/mailutils/PKGBUILD
new file mode 100644
index 000000000..30889c09c
--- /dev/null
+++ b/community/mailutils/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 59712 2011-11-29 13:35:07Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=mailutils
+pkgver=2.2
+pkgrel=4
+pkgdesc="MUA command line tool (mailx)"
+arch=(i686 x86_64 'mips64el')
+url="http://www.gnu.org/software/mailutils/"
+license=('GPL')
+depends=('libldap' 'pam' 'gnutls' 'guile')
+makedepends=('python2' 'emacs')
+optdepends=('python2')
+conflicts=('libsieve')
+install=mailutils.install
+options=(zipman !emptydirs)
+source=(http://ftp.gnu.org/gnu/mailutils/mailutils-$pkgver.tar.bz2)
+md5sums=('834d2f616b922856127ecfe6c2de7d1a')
+
+build() {
+ cd "$srcdir/mailutils-$pkgver"
+
+ py2=`pacman -Q python2 | cut -d\ -f2 | cut -d. -f1-2`
+ py3=`pacman -Q python | cut -d\ -f2 | cut -d. -f1-2`
+
+ export PYTHON=/usr/bin/python2
+ export PYTHON_CONFIG=/usr/bin/python2-config
+ export CFLAGS="$CFLAGS `pkg-config --cflags python-$py2`"
+ export LDFLAGS="$LDFLAGS `pkg-config --libs python-$py2`"
+
+ [ -f Makefile ] || ./configure --prefix=/usr --with-gdbm --with-gnutls \
+ --libexecdir=/usr/lib/$pkgname --without-fribidi \
+ --without-tcp-wrappers
+# [ -z "$py3" ] || find -type f -name Makefile -exec sed -i "s|python$py3|python$py2|" {} \;
+ make -j1
+}
+
+package() {
+ cd "$srcdir/mailutils-$pkgver"
+ make -j1 DESTDIR=$pkgdir install
+ rm -f $pkgdir/usr/share/info/dir
+ mv $pkgdir/usr/bin/mail $pkgdir/usr/bin/gnu-mail
+ mv $pkgdir/usr/share/man/man1/mail.1 $pkgdir/usr/share/man/man1/gnu-mail.1
+ chown -R root:root $pkgdir
+}
diff --git a/community/mailutils/mailutils.install b/community/mailutils/mailutils.install
new file mode 100644
index 000000000..03b451b3e
--- /dev/null
+++ b/community/mailutils/mailutils.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(mailutils.info mailutils.info-1 mailutils.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/mairix/PKGBUILD b/community/mairix/PKGBUILD
new file mode 100644
index 000000000..e294caf17
--- /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' 'mips64el')
+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/makedev/PKGBUILD b/community/makedev/PKGBUILD
new file mode 100644
index 000000000..bb21237d9
--- /dev/null
+++ b/community/makedev/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Jonathan Liu <net147@gmail.com>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=makedev
+pkgver=3.23_1
+pkgrel=1
+pkgdesc='The ubiquitous script to create static device nodes'
+arch=('i686' 'x86_64')
+license=('GPL2')
+url='http://people.redhat.com/nalin/MAKEDEV/'
+source=("http://people.redhat.com/nalin/MAKEDEV/MAKEDEV-${pkgver//_/-}.tar.gz")
+md5sums=('554faf6cbc9a84e4bd58ccfa32d74e2f')
+
+build() {
+ cd ${pkgname^^*}-${pkgver/_*}
+ make
+}
+
+package() {
+ cd ${pkgname^^*}-${pkgver/_*}
+ make DESTDIR="${pkgdir}" devdir=/usr/sbin makedevdir=/usr/sbin install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/mandvd/PKGBUILD b/community/mandvd/PKGBUILD
new file mode 100644
index 000000000..123c0294e
--- /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' 'mips64el')
+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..fc7444c49
--- /dev/null
+++ b/community/mapnik/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 59948 2011-12-02 20:59:31Z ibiru $
+# 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=12
+pkgdesc="Free Toolkit for developing mapping applications. Above all Mapnik is about rendering beautiful maps."
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ 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..d60c4078e
--- /dev/null
+++ b/community/mashup/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=mashup
+pkgver=3.3
+pkgrel=1
+pkgdesc="Adjusting images on a sheet of paper for printing"
+url="http://kornelix.squarespace.com/$pkgname"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+depends=('gtk2')
+replaces=('printoxx')
+source=("http://kornelix.squarespace.com/storage/downloads/$pkgname-$pkgver.tar.gz")
+md5sums=('0d8286747d5cd1a65907c7d70c7a99e5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's+xdg-deskto+#xdg-deskto+' Makefile
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm644 desktop $pkgdir/usr/share/applications/$pkgname.desktop
+ make DESTDIR=$pkgdir install
+ rm $pkgdir/usr/share/applications/kornelix-$pkgname.desktop
+ rm $pkgdir/usr/share/doc/$pkgname/$pkgname.man
+}
diff --git a/community/matchbox-desktop/PKGBUILD b/community/matchbox-desktop/PKGBUILD
new file mode 100644
index 000000000..807603bb1
--- /dev/null
+++ b/community/matchbox-desktop/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 58996 2011-11-20 19:49:57Z 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' 'mips64el')
+license=('GPL')
+depends=('libmatchbox' 'startup-notification' 'libpng' 'gtk2')
+url="http://matchbox-project.org/"
+options=('!libtool')
+source=(http://matchbox-project.org/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('b0a4a47130272e2adab4e9feb43a6c9c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --prefix=/usr --enable-startup-notification
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/matchbox-keyboard/PKGBUILD b/community/matchbox-keyboard/PKGBUILD
new file mode 100644
index 000000000..771dc1ff5
--- /dev/null
+++ b/community/matchbox-keyboard/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 58999 2011-11-20 19:51:14Z 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' 'mips64el')
+depends=('cairo' 'libfakekey' 'libxft')
+url="http://matchbox-project.org/"
+license=('GPL')
+source=(http://matchbox-project.org/sources/$pkgname/0.1/$pkgname-$pkgver.tar.gz)
+md5sums=('9d1f61e0785f2ac4fc7588fa39b87e6f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/matchbox-panel/PKGBUILD b/community/matchbox-panel/PKGBUILD
new file mode 100644
index 000000000..14f46d1a9
--- /dev/null
+++ b/community/matchbox-panel/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 59002 2011-11-20 19:52:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'mips64el')
+license=('GPL')
+depends=('libmatchbox' 'startup-notification' 'libpng')
+url="http://matchbox-project.org/"
+source=(http://matchbox-project.org/sources/$pkgname/0.9/$pkgname-$pkgver.tar.bz2)
+md5sums=('56d1807636f3919e22e51896ab7ccd2e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --prefix=/usr --enable-startup-notification
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/matchbox-window-manager/PKGBUILD b/community/matchbox-window-manager/PKGBUILD
new file mode 100644
index 000000000..66a07c86e
--- /dev/null
+++ b/community/matchbox-window-manager/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 59005 2011-11-20 19:53:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'mips64el')
+license=('GPL')
+depends=('libmatchbox' 'startup-notification' 'libpng' 'libsm')
+url="http://matchbox-project.org/"
+source=(http://matchbox-project.org/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('3e158dcf57823b55c926d95b245500fb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --prefix=/usr \
+ --enable-startup-notification --enable-session \
+ --enable-alt-input-wins --enable-expat
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD
new file mode 100755
index 000000000..745d5799f
--- /dev/null
+++ b/community/mathomatic/PKGBUILD
@@ -0,0 +1,46 @@
+# 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.7.1
+pkgrel=1
+pkgdesc="General purpose Computer Algebra System written in C"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://mathomatic.orgserve.de/math/"
+depends=('readline')
+makedepends=('time')
+optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial'
+ 'bash: for running a test script'
+ 'm4: for complex operations using the matho script'
+ 'gnuplot: for plotting')
+source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2)
+md5sums=('f8144e9c17edf688cbb296d20efaf808')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ # python2 fix
+ for file in primes/{primorial,matho-sum,matho-mult} examples/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 m4install
+ sed -i 's+/build/pkg++' "$pkgdir"/usr/bin/matho
+
+ cd "$srcdir"/$pkgname-$pkgver/primes
+ make prefix="$pkgdir"/usr install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/mc/PKGBUILD b/community/mc/PKGBUILD
new file mode 100644
index 000000000..b6285bd39
--- /dev/null
+++ b/community/mc/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 57569 2011-10-30 21:21:44Z bisson $
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+pkgname=mc
+pkgver=4.8.0
+pkgrel=2
+pkgdesc="Midnight Commander is a text based filemanager/shell that emulates Norton Commander"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ibiblio.org/mc/"
+license=('GPL')
+depends=('e2fsprogs' 'glib2' 'pcre' 'gpm' 'slang')
+makedepends=('libxt' 'libx11')
+optdepends=('p7zip: support for 7zip archives'
+ 'mtools: a+ extfs'
+ 'cdparanoia: audio extfs'
+ 'gawk: hp48+ extfs'
+ 'cdrkit: iso9660 extfs'
+ 'perl: needed by several extfs scripts'
+ 'python-boto: s3+ extfs'
+ 'python2-pytz: s3+ extfs'
+ 'p7zip: u7z extfs'
+ 'unace: uace extfs'
+ 'unarj: uarj extfs'
+ 'cabextract: ucab extfs'
+ 'unrar: urar extfs'
+ 'zip: uzip extfs')
+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=('592478c3edfa2ad64c8cd165b9bec446')
+sha1sums=('2584a681350e07d1e6703b9f7fd77cec45a6e061')
+
+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"
+
+ sed 's#/usr/bin/env python#/usr/bin/python2#' \
+ -i "${pkgdir}/usr/lib/mc/extfs.d/s3+"
+}
diff --git a/community/mcabber/PKGBUILD b/community/mcabber/PKGBUILD
new file mode 100644
index 000000000..6f3eeabaa
--- /dev/null
+++ b/community/mcabber/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 58853 2011-11-19 00:17:45Z andrea $
+# 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' 'mips64el')
+url="http://www.lilotux.net/~mikael/mcabber/"
+license=('GPL')
+depends=('ncurses' 'glib2' 'loudmouth' 'gpgme' 'libotr' 'aspell')
+makedepends=('pkgconfig')
+options=('!libtool')
+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..961480e9c
--- /dev/null
+++ b/community/mcdp/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 56613 2011-10-09 07:12:22Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tino Reichardt <milky-archlinux@mcmilk.de>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=mcdp
+pkgver=0.4b
+pkgrel=1
+pkgdesc="Small console cd player"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.mcmilk.de/projects/mcdp/"
+license=('GPL')
+makedepends=('dietlibc')
+source=(http://www.mcmilk.de/projects/$pkgname/dl/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('0faa031b07299b0fb2353306a669328c877717e1bc7e274e40c3d2612e103cab')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make $pkgname
+}
+
+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/mcelog/PKGBUILD b/community/mcelog/PKGBUILD
new file mode 100644
index 000000000..dae948032
--- /dev/null
+++ b/community/mcelog/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 57954 2011-11-04 21:05:32Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Thomas Mudrunka <harvie@@email..cz>
+# Maintainer: Thomas Mudrunka <harvie@@email..cz>
+
+pkgname=mcelog
+pkgver=1.0pre3
+pkgrel=3
+pkgdesc="Print machine check event log from x86-64 kernel"
+url="http://freshmeat.net/projects/mcelog/"
+license=("GPL")
+arch=('i686' 'x86_64')
+options=('docs')
+#source=("ftp://ftp.kernel.org/pub/linux/utils/cpu/mce/${pkgname}-${pkgver}.tar.gz"
+source=("ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ "${pkgname}.rc")
+md5sums=('b42f2214de6f4feb992556149edc67fa'
+ 'f039a77d7bde3518d3d695b144816e8a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ mkdir -p $pkgdir/usr/share/doc/mcelog
+ make install prefix=$pkgdir/usr etcprefix=$pkgdir DOCDIR=$pkgdir/usr/share/doc/mcelog
+ install -Dm0755 mcelog.cron "${pkgdir}/usr/sbin/mcelog.cron"
+ install -Dm0755 "${srcdir}/mcelog.rc" "${pkgdir}/etc/rc.d/mcelog"
+ install -Dm0644 mcelog.logrotate "${pkgdir}/etc/logrotate.d/mcelog.logrotate"
+ install -Dm0644 README "${pkgdir}/usr/share/doc/mcelog/README"
+}
diff --git a/community/mcelog/mcelog.rc b/community/mcelog/mcelog.rc
new file mode 100644
index 000000000..fb73743c7
--- /dev/null
+++ b/community/mcelog/mcelog.rc
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/mcelog`
+case "$1" in
+ start)
+ stat_busy "Starting mcelog"
+ if [ -z "$PID" ]; then
+ /usr/sbin/mcelog --daemon --pidfile /var/run/mcelog.pid
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon mcelog
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mcelog"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mcelog
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
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..2c8decc4c
--- /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' 'mips64el')
+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..75d1b8c87
--- /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.1
+pkgrel=2
+pkgdesc="A GTK desktop application for watching digital television services that use the DVB standard"
+arch=('i686' 'x86_64' 'mips64el')
+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=('7cda820b795f2fea522ba3de5e312483')
+
+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..425dada88
--- /dev/null
+++ b/community/mediainfo-gui/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 58337 2011-11-11 19:02:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: hydro <hydro@freenet.de>
+
+pkgname=mediainfo-gui
+pkgver=0.7.51
+pkgrel=1
+pkgdesc="GUI for mediainfo"
+arch=('i686' 'x86_64' 'mips64el')
+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=('b06dc34481ce2971c28e517b146888e8')
+
+build() {
+ cd $srcdir/MediaInfo/Project/GNU/GUI
+ sh ./autogen
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/MediaInfo/Project/GNU/GUI
+ 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..e954b259e
--- /dev/null
+++ b/community/mediainfo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 58335 2011-11-11 19:02:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: hydro <hydro@freenet.de>
+
+pkgname=mediainfo
+pkgver=0.7.51
+pkgrel=1
+pkgdesc="supplies technical and tag information about a video or audio file"
+arch=('i686' 'x86_64' 'mips64el')
+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=('b06dc34481ce2971c28e517b146888e8')
+
+build() {
+ cd $srcdir/MediaInfo/Project/GNU/CLI
+ sh ./autogen
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/MediaInfo/Project/GNU/CLI
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/mediaproxy/PKGBUILD b/community/mediaproxy/PKGBUILD
new file mode 100644
index 000000000..c339165b5
--- /dev/null
+++ b/community/mediaproxy/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 56530 2011-10-07 21:31:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Colin Pitrat <colin.pitrat@gmail.com>
+
+pkgname=mediaproxy
+pkgver=2.5.2
+pkgrel=1
+pkgdesc="Open-source media proxy for OpenSER"
+url="http://mediaproxy.ag-projects.com/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('python2' 'libnetfilter_conntrack' 'iptables'
+ '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=('840de8f52e656991be728c15ec30bb5e'
+ '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/medit/PKGBUILD b/community/medit/PKGBUILD
new file mode 100644
index 000000000..728f962c3
--- /dev/null
+++ b/community/medit/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 60108 2011-12-05 11:28:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=medit
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="A GTK text editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mooedit.sourceforge.net"
+options=('!emptydirs')
+license=('GPL')
+depends=('pygtk' 'libxml2' 'pcre' 'libsm' 'python2' 'gtk2' 'gcc-libs')
+optdepends=('ctags' 'vte: terminal emulator')
+makedepends=(pkgconfig perlxml intltool gcc-objc)
+install=medit.install
+source=(http://downloads.sourceforge.net/mooedit/medit-$pkgver.tar.bz2
+ medit-terminal.patch)
+md5sums=('ca790a6153eab7e2a47ac965940c0c7d'
+ 'fc4c193506901379cf2978aba950179b')
+
+build() {
+ cd $srcdir/medit-$pkgver
+ export PYTHON=/usr/bin/python2
+ patch -p0 <$srcdir/medit-terminal.patch
+ [ -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/medit-terminal.patch b/community/medit/medit-terminal.patch
new file mode 100644
index 000000000..434bb4829
--- /dev/null
+++ b/community/medit/medit-terminal.patch
@@ -0,0 +1,13 @@
+--- moo/moopython/plugins/terminal.py.org 2011-12-03 13:12:42.000000000 +0100
++++ moo/moopython/plugins/terminal.py 2011-12-03 13:15:19.000000000 +0100
+@@ -60,8 +60,8 @@
+ moo.prefs_set_string(COLOR_SCHEME_KEY, None)
+
+ def font_item_activated(self, *whatever):
+- dlg = moo.FontSelectionDialog(D_("Pick a Font", "gtk20"))
+- dlg.fontsel.set_property('monospace', True)
++ dlg = gtk.FontSelectionDialog(D_("Pick a Font", "gtk20"))
++ # dlg.fontsel.set_property('monospace', True)
+ old_font = self.get_font()
+ if old_font:
+ dlg.set_font_name(old_font.to_string())
diff --git a/community/medit/medit.install b/community/medit/medit.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/medit/medit.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/megaglest/PKGBUILD b/community/megaglest/PKGBUILD
new file mode 100644
index 000000000..b57dc2405
--- /dev/null
+++ b/community/megaglest/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 60139 2011-12-05 22:27:28Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
+
+pkgname=megaglest
+pkgver=3.6.0.1
+_pkgver=3.6.0
+pkgrel=1
+pkgdesc="Fork of Glest, a 3D real-time strategy game in a fantastic world."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/megaglest/"
+license=('GPL3')
+depends=('curl' 'megaglest-data' 'xerces-c' 'sdl' 'libvorbis' 'openal' 'mesa' 'lua' 'icu' 'ftgl' 'glew')
+makedepends=('ftjam' 'p7zip' 'wxgtk' 'cmake')
+source=("http://downloads.sourceforge.net/project/${pkgname}/current_release/${pkgname}-source-${pkgver}.tar.xz")
+md5sums=('099a35b97e101aa2b8facf144a5d96c8')
+
+build() {
+ cd "${srcdir}"/"${pkgname}"-"${_pkgver}"/
+
+ [[ -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}"-"${_pkgver}"/
+
+ cd build
+ make DESTDIR="$pkgdir" install
+}
+
+# vim: sw=2:ts=2 et:
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/menu-cache/PKGBUILD b/community/menu-cache/PKGBUILD
new file mode 100644
index 000000000..74749321c
--- /dev/null
+++ b/community/menu-cache/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 49034 2011-06-09 21:26:14Z andrea $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# 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' 'mips64el')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('intltool' 'glib2')
+options=('!libtool')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ac4a9ea77db68d3db3f9f53cc75af66a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/menu-cache --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/metakit/PKGBUILD b/community/metakit/PKGBUILD
new file mode 100644
index 000000000..b5f89e93c
--- /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' 'mips64el')
+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..00664f77b
--- /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' 'mips64el')
+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/metapixel/PKGBUILD b/community/metapixel/PKGBUILD
new file mode 100644
index 000000000..d9d01a30b
--- /dev/null
+++ b/community/metapixel/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 53817 2011-08-08 13:44:50Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Daniel Isenmann <daniel.isenmann [at] gmx [dot] de>
+
+pkgname=metapixel
+pkgver=1.0.2
+pkgrel=2
+pkgdesc='A program for generating photomosaics.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.complang.tuwien.ac.at/schani/metapixel/'
+license=('GPL')
+depends=('libungif' 'libjpeg' 'libpng' 'perl')
+source=("http://www.complang.tuwien.ac.at/schani/metapixel/files/${pkgname}-${pkgver}.tar.gz"
+ 'metapixel-1.0.2-libpng-1.5.patch')
+md5sums=('af5d77d38826756af213a08e3ada9941'
+ '1832a79790b07402735bfeb9f71f36e9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/lgif/lungif/g' Makefile
+ sed -ie '58,58d' Makefile
+
+ patch -p1 -i ../metapixel-1.0.2-libpng-1.5.patch
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" install
+}
diff --git a/community/metapixel/metapixel-1.0.2-libpng-1.5.patch b/community/metapixel/metapixel-1.0.2-libpng-1.5.patch
new file mode 100644
index 000000000..ed787452f
--- /dev/null
+++ b/community/metapixel/metapixel-1.0.2-libpng-1.5.patch
@@ -0,0 +1,174 @@
+--- metapixel-1.0.2.orig/rwimg/rwpng.c
++++ metapixel-1.0.2/rwimg/rwpng.c
+@@ -57,19 +57,39 @@
+ data->end_info = png_create_info_struct(data->png_ptr);
+ assert(data->end_info != 0);
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+ if (setjmp(data->png_ptr->jmpbuf))
++#endif
+ assert(0);
+
+- png_init_io(data->png_ptr, data->file);
+-
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ png_init_io(data->png_ptr, data->file);
++ png_read_info(data->png_ptr, data->info_ptr);
++#else
++ png_init_io(data->png_ptr, data->file);
+ png_read_info(data->png_ptr, data->info_ptr);
++#endif
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ *width = png_get_image_width(data->png_ptr, data->info_ptr);
++ *height = png_get_image_height(data->png_ptr, data->info_ptr);
++ {
++ png_byte value = png_get_bit_depth(data->png_ptr, data->info_ptr);
++ assert(value == 8 || value == 16);
++ value = png_get_color_type(data->png_ptr, data->info_ptr);
++ assert(value == PNG_COLOR_TYPE_RGB || value == PNG_COLOR_TYPE_RGB_ALPHA);
++ value = png_get_interlace_type(data->png_ptr, data->info_ptr);
++ assert(value == PNG_INTERLACE_NONE);
++ }
++#else
+ *width = data->info_ptr->width;
+ *height = data->info_ptr->height;
+-
+ assert(data->info_ptr->bit_depth == 8 || data->info_ptr->bit_depth == 16);
+ assert(data->info_ptr->color_type == PNG_COLOR_TYPE_RGB || data->info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA);
+ assert(data->info_ptr->interlace_type == PNG_INTERLACE_NONE);
++#endif
+
+ data->have_read = 0;
+
+@@ -81,32 +101,51 @@
+ {
+ png_data_t *data = (png_data_t*)_data;
+ int i;
+- int bps, spp;
++ int bps, spp, width;
+ unsigned char *row;
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++
++ if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+ if (setjmp(data->png_ptr->jmpbuf))
++#endif
+ assert(0);
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if(png_get_color_type(data->png_ptr, data->info_ptr) == PNG_COLOR_TYPE_RGB)
++#else
+ if (data->info_ptr->color_type == PNG_COLOR_TYPE_RGB)
++#endif
+ spp = 3;
+ else
+ spp = 4;
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if(png_get_bit_depth(data->png_ptr, data->info_ptr) == 16)
++#else
+ if (data->info_ptr->bit_depth == 16)
++#endif
+ bps = 2;
+ else
+ bps = 1;
+
+- row = (unsigned char*)malloc(data->info_ptr->width * spp * bps);
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ width = png_get_image_width(data->png_ptr, data->info_ptr);
++#else
++ width = data->info_ptr->width:
++#endif
++
++ row = (unsigned char*)malloc(width * spp * bps);
+
+ for (i = 0; i < num_lines; ++i)
+ {
+ int j, channel;
+
+ png_read_row(data->png_ptr, (png_bytep)row, 0);
+- for (j = 0; j < data->info_ptr->width; ++j)
++ for (j = 0; j < width; ++j)
+ for (channel = 0; channel < 3; ++channel)
+- lines[i * data->info_ptr->width * 3 + j * 3 + channel] = row[j * spp * bps + channel * bps];
++ lines[i * width * 3 + j * 3 + channel] = row[j * spp * bps + channel * bps];
+ }
+
+ free(row);
+@@ -119,7 +158,11 @@
+ {
+ png_data_t *data = (png_data_t*)_data;
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+ if (setjmp(data->png_ptr->jmpbuf))
++#endif
+ assert(0);
+
+ if (data->have_read)
+@@ -148,7 +191,11 @@
+ data->info_ptr = png_create_info_struct(data->png_ptr);
+ assert(data->info_ptr != 0);
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+ if (setjmp(data->png_ptr->jmpbuf))
++#endif
+ assert(0);
+
+ if (pixel_stride == 4)
+@@ -156,6 +203,16 @@
+
+ png_init_io(data->png_ptr, data->file);
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ png_set_IHDR(data->png_ptr, data->info_ptr,
++ width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE,
++ PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
++
++ /* Maybe does not need following. */
++ png_set_tRNS(data->png_ptr, data->info_ptr, NULL, 0, NULL);
++ png_set_PLTE(data->png_ptr, data->info_ptr, NULL, 0);
++ png_set_invalid(data->png_ptr, data->info_ptr, 0);
++#else
+ data->info_ptr->width = width;
+ data->info_ptr->height = height;
+ data->info_ptr->valid = 0;
+@@ -168,6 +225,7 @@
+ data->info_ptr->compression_type = PNG_COMPRESSION_TYPE_DEFAULT;
+ data->info_ptr->filter_type = PNG_FILTER_TYPE_DEFAULT;
+ data->info_ptr->interlace_type = PNG_INTERLACE_NONE;
++#endif
+
+ png_write_info(data->png_ptr, data->info_ptr);
+
+@@ -182,7 +240,11 @@
+ png_data_t *data = (png_data_t*)_data;
+ int i;
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+ if (setjmp(data->png_ptr->jmpbuf))
++#endif
+ assert(0);
+
+ for (i = 0; i < num_lines; ++i)
+@@ -194,7 +256,11 @@
+ {
+ png_data_t *data = (png_data_t*)_data;
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+ if (setjmp(data->png_ptr->jmpbuf))
++#endif
+ assert(0);
+
+ png_write_end(data->png_ptr, data->info_ptr);
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..520bb36dd
--- /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' 'mips64el')
+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..857563518
--- /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' 'mips64el')
+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..c6c7d32f6
--- /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' 'mips64el')
+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..5f8fff086
--- /dev/null
+++ b/community/mg/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 59123 2011-11-21 11:46:26Z 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' 'mips64el')
+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
+ cleanup.patch)
+md5sums=('f2fa8016a491aa2a9d4c5698c593f31b'
+ '8cc5195ad4fabcf7c6782764f9617748'
+ 'e009afe0d249593f3436b2fea110f72e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset CFLAGS
+ patch -p1 <$srcdir/cleanup.patch
+ ./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/mg/cleanup.patch b/community/mg/cleanup.patch
new file mode 100644
index 000000000..5a8e761cb
--- /dev/null
+++ b/community/mg/cleanup.patch
@@ -0,0 +1,163 @@
+Only in mg-20110120.my: autoexec.o
+Only in mg-20110120.my: basename.o
+Only in mg-20110120.my: basic.o
+Only in mg-20110120.my: buffer.o
+Only in mg-20110120.my: cinfo.o
+diff -wbBur mg-20110120/cmode.c mg-20110120.my/cmode.c
+--- mg-20110120/cmode.c 2011-01-20 07:36:13.000000000 +0300
++++ mg-20110120.my/cmode.c 2011-11-21 15:40:11.000000000 +0400
+@@ -158,7 +158,7 @@
+ cc_indent(int f, int n)
+ {
+ int pi, mi; /* Previous indents */
+- int ci, dci; /* current indent, don't care */
++ int ci; /* current indent, don't care */
+ struct line *lp;
+ int ret;
+
+@@ -181,7 +181,7 @@
+ /* Strip leading space on current line */
+ delleadwhite(FFRAND, 1);
+ /* current indent is computed only to current position */
+- dci = getindent(curwp->w_dotp, &ci);
++ getindent(curwp->w_dotp, &ci);
+
+ if (pi + ci < 0)
+ ret = indent(FFOTHARG, 0);
+@@ -217,7 +217,6 @@
+ {
+ int lo, co; /* leading space, current offset*/
+ int nicol = 0; /* position count */
+- int ccol = 0; /* current column */
+ int c = '\0'; /* current char */
+ int newind = 0; /* new index value */
+ int stringp = FALSE; /* in string? */
+@@ -226,7 +225,6 @@
+ int nparen = 0; /* paren count */
+ int obrace = 0; /* open brace count */
+ int cbrace = 0; /* close brace count */
+- int contp = FALSE; /* Continue? */
+ int firstnwsp = FALSE; /* First nonspace encountered? */
+ int colonp = FALSE; /* Did we see a colon? */
+ int questionp = FALSE; /* Did we see a question mark? */
+@@ -256,13 +254,11 @@
+ nicol = 0;
+
+ newind = 0;
+- ccol = nicol; /* current column */
+ /* Compute modifiers */
+ for (co = lo; co < llength(lp); co++) {
+ c = lgetc(lp, co);
+ /* We have a non-whitespace char */
+ if (!firstnwsp && !isspace(c)) {
+- contp = TRUE;
+ if (c == '#')
+ cppp = TRUE;
+ firstnwsp = TRUE;
+@@ -285,7 +281,6 @@
+ } else if (c == '{') {
+ obrace++;
+ firstnwsp = FALSE;
+- contp = FALSE;
+ } else if (c == '}') {
+ cbrace++;
+ } else if (c == '?') {
+@@ -294,9 +289,6 @@
+ /* ignore (foo ? bar : baz) construct */
+ if (!questionp)
+ colonp = TRUE;
+- } else if (c == ';') {
+- if (nparen > 0)
+- contp = FALSE;
+ } else if (c == '/') {
+ /* first nonwhitespace? -> indent */
+ if (firstnwsp) {
+Only in mg-20110120.my: cmode.o
+diff -wbBur mg-20110120/config.h mg-20110120.my/config.h
+--- mg-20110120/config.h 2011-01-20 07:37:40.000000000 +0300
++++ mg-20110120.my/config.h 2011-11-21 15:39:43.000000000 +0400
+@@ -7,4 +7,8 @@
+ #ifndef MAXLOGNAME
+ #define MAXLOGNAME LOGIN_NAME_MAX
+ #endif
+-#define HAVE_ARC4RANDOM
++#define HAVE_NOSTRTONUM
++#define HAVE_NOSTRLCPY
++#define HAVE_NOSTRLCAT
++#define HAVE_NOFGETLN
++#define GNU_LS
+Only in mg-20110120.my: config.log
+Only in mg-20110120.my: dired.o
+Only in mg-20110120.my: dirname.o
+Only in mg-20110120.my: dir.o
+Only in mg-20110120.my: display.o
+Only in mg-20110120.my: echo.o
+Only in mg-20110120.my: extend.o
+Only in mg-20110120.my: fgetln.o
+diff -wbBur mg-20110120/fileio.c mg-20110120.my/fileio.c
+--- mg-20110120/fileio.c 2008-12-30 19:04:23.000000000 +0300
++++ mg-20110120.my/fileio.c 2011-11-21 15:43:12.000000000 +0400
+@@ -121,10 +121,8 @@
+ * future writes will do the same thing.
+ */
+ if (bp && bp->b_fi.fi_mode) {
+- int ret;
+-
+ fchmod(fd, bp->b_fi.fi_mode & 07777);
+- ret = fchown(fd, bp->b_fi.fi_uid, bp->b_fi.fi_gid);
++ (void)fchown(fd, bp->b_fi.fi_uid, bp->b_fi.fi_gid);
+ }
+ return (FIOSUC);
+ }
+Only in mg-20110120.my: fileio.o
+Only in mg-20110120.my: file.o
+Only in mg-20110120.my: funmap.o
+Only in mg-20110120.my: grep.o
+Only in mg-20110120.my: help.o
+Only in mg-20110120.my: kbd.o
+Only in mg-20110120.my: keymap.o
+Only in mg-20110120.my: line.o
+Only in mg-20110120.my: macro.o
+Only in mg-20110120.my: main.o
+Only in mg-20110120.my: Makefile
+Only in mg-20110120.my: match.o
+Only in mg-20110120.my: mg
+Only in mg-20110120.my: modes.o
+Only in mg-20110120.my: paragraph.o
+Only in mg-20110120.my: random.o
+Only in mg-20110120.my: region.o
+Only in mg-20110120.my: re_search.o
+Only in mg-20110120.my: search.o
+Only in mg-20110120.my: spawn.o
+Only in mg-20110120.my: strlcat.o
+Only in mg-20110120.my: strlcpy.o
+Only in mg-20110120.my: strtonum.o
+Only in mg-20110120.my: theo.o
+Only in mg-20110120.my: ttyio.o
+Only in mg-20110120.my: ttykbd.o
+Only in mg-20110120.my: tty.o
+diff -wbBur mg-20110120/undo.c mg-20110120.my/undo.c
+--- mg-20110120/undo.c 2011-01-03 01:57:57.000000000 +0300
++++ mg-20110120.my/undo.c 2011-11-21 15:41:05.000000000 +0400
+@@ -464,14 +464,14 @@
+ struct undo_rec *ptr, *nptr;
+ int done, rval;
+ struct line *lp;
+- int offset, save, dot;
++ int offset, save;
+ static int nulled = FALSE;
+ int lineno;
+
+ if (n < 0)
+ return (FALSE);
+
+- dot = find_dot(curwp->w_dotp, curwp->w_doto);
++ find_dot(curwp->w_dotp, curwp->w_doto);
+
+ ptr = curbp->b_undoptr;
+
+Only in mg-20110120.my: undo.o
+Only in mg-20110120.my: version.o
+Only in mg-20110120.my: window.o
+Only in mg-20110120.my: word.o
+Only in mg-20110120.my: yank.o
diff --git a/community/mget/PKGBUILD b/community/mget/PKGBUILD
new file mode 100644
index 000000000..458d0f83d
--- /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' 'mips64el')
+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..33e07126e
--- /dev/null
+++ b/community/mhwaveedit/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Loui Chang <louipc.ist@gmail.com>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=mhwaveedit
+pkgver=1.4.21
+pkgrel=1
+pkgdesc="A graphical program for editing, playing and recording sound files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gna.org/projects/mhwaveedit"
+license=('GPL')
+depends=('libsamplerate' 'libpulse' 'gtk2' 'jack')
+source=(http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./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
+}
+md5sums=('02d4dddcb19731ff1fca961ed7d507dc')
diff --git a/community/microblog-purple/PKGBUILD b/community/microblog-purple/PKGBUILD
new file mode 100644
index 000000000..9e84fcf5a
--- /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' 'mips64el')
+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/mimetex/PKGBUILD b/community/mimetex/PKGBUILD
new file mode 100644
index 000000000..4cdb481e8
--- /dev/null
+++ b/community/mimetex/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 59132 2011-11-21 12:05:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=mimetex
+pkgver=1.70
+pkgrel=2
+pkgdesc="tex to gif converter"
+arch=(i686 x86_64 'mips64el')
+url="http://www.forkosh.com/mimetex.html"
+license=('GPL')
+depends=()
+source=(ftp://ftp.archlinux.org/other/community/mimetex/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..eb9885df6
--- /dev/null
+++ b/community/minbif/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 54473 2011-08-18 15:08:10Z bluewind $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: AkiraYB <brunoyb!yahoo,com,br>
+
+pkgname=minbif
+pkgver=1.0.4
+pkgrel=4
+pkgdesc='An IRC gateway to IM networks that uses libpurple.'
+arch=('i686' 'x86_64' 'mips64el')
+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=OFF 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..0e3ea6636
--- /dev/null
+++ b/community/mingw32-binutils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59022 2011-11-20 20:22:21Z 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.53
+pkgrel=1
+_uprel=1
+arch=(i686 x86_64 'mips64el')
+url="https://sourceforge.net/projects/mingw/files/MinGW/Base/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/Base/binutils/binutils-$pkgver/binutils-$pkgver-${_uprel}-mingw32-src.tar.lzma)
+md5sums=('e7f6602056f594acc9a4a559909d4649')
+
+build() {
+ tar --lzma -xf binutils-$pkgver-${_uprel}-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..e3e5433c6
--- /dev/null
+++ b/community/mingw32-gcc-base/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 59028 2011-11-20 20:24:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ondrej Jirman <megous@megous.com>
+
+pkgname=mingw32-gcc-base
+pkgver=4.6.1
+_w32apiver=3.17
+_runtimever=3.20
+_uprel=2
+_upw32rel=1
+pkgrel=2
+arch=(i686 x86_64 'mips64el')
+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)
+license=(GPL LGPL)
+url="http://mingw.sf.net"
+source=(gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma::http://downloads.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-$pkgver-${_uprel}/gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma
+ http://downloads.sourceforge.net/project/mingw/MinGW/Base/w32api/w32api-${_w32apiver}/w32api-${_w32apiver}-${_upw32rel}-mingw32-src.tar.lzma
+ http://downloads.sourceforge.net/project/mingw/MinGW/Base/mingw-rt/mingwrt-${_runtimever}/mingwrt-${_runtimever}-mingw32-src.tar.gz
+ gcc-1-mingw-float.patch)
+md5sums=('f8b09b7e51223e1ae1c1e466af3ac82e'
+ '89e5800096aa334009f98e7c1743d825'
+ '26c0886cc60729b94956cc6d81cd076c'
+ '2407123c35c0aa92ee5ffc27decca9a7')
+
+build()
+{
+ if [ $NOEXTRACT -ne 1 ]; then
+ # prepare headers
+ mkdir -p $srcdir/mingw/include/
+ cp -r $srcdir/w32api-${_w32apiver}-${_upw32rel}-mingw32/include/* \
+ $srcdir/mingwrt-${_runtimever}-mingw32/include/* \
+ $srcdir/mingw/include/
+
+ unset CFLAGS CXXFLAGS
+
+# tar xJf gcc-$pkgver-${_uprel}-mingw32-src.tar.xz
+ cd $srcdir
+ tar xjf gcc-$pkgver-${_uprel}-mingw32-src/gcc-$pkgver.tar.bz2
+
+ patch -d $srcdir/gcc-$pkgver -Np1 < $srcdir/gcc-1-mingw-float.patch
+
+ 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
+ else
+ cd $srcdir/build
+ fi
+
+ make
+ make install DESTDIR=$pkgdir
+
+ 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-base/gcc-1-mingw-float.patch b/community/mingw32-gcc-base/gcc-1-mingw-float.patch
new file mode 100644
index 000000000..365949ad7
--- /dev/null
+++ b/community/mingw32-gcc-base/gcc-1-mingw-float.patch
@@ -0,0 +1,18 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+This patch has been taken from:
+http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00387.html
+http://sourceforge.net/tracker/?func=detail&atid=302435&aid=3011968&group_id=2435
+
+diff -urN a/gcc/ginclude/float.h b/gcc/ginclude/float.h
+--- a/gcc/ginclude/float.h 2009-04-09 17:00:19.000000000 +0200
++++ b/gcc/ginclude/float.h 2010-06-05 12:03:41.887724045 +0200
+@@ -275,3 +275,7 @@
+ #endif /* __STDC_WANT_DEC_FP__ */
+
+ #endif /* _FLOAT_H___ */
++
++#ifdef __MINGW32__
++#include_next<float.h>
++#endif
diff --git a/community/mingw32-gcc/PKGBUILD b/community/mingw32-gcc/PKGBUILD
new file mode 100644
index 000000000..191026dfa
--- /dev/null
+++ b/community/mingw32-gcc/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 59025 2011-11-20 20:23:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ondrej Jirman <megous@megous.com>
+
+pkgname=mingw32-gcc
+pkgver=4.6.1
+pkgrel=2
+_uprel=2
+arch=(i686 x86_64 mips64el)
+pkgdesc="A C and C++ cross-compilers for building Windows executables on Linux"
+depends=('mingw32-pthreads' 'mingw32-runtime' 'mingw32-binutils' 'mingw32-w32api'
+ 'libmpc' 'elfutils' 'gmp')
+replaces=('mingw32-gcc-base')
+provides=('mingw32-gcc-base')
+options=(!strip)
+url="http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/"
+license=(GPL LGPL)
+source=(gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma::http://downloads.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-$pkgver-${_uprel}/gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma
+ gcc-1-mingw-float.patch)
+md5sums=('f8b09b7e51223e1ae1c1e466af3ac82e'
+ '2407123c35c0aa92ee5ffc27decca9a7')
+
+build()
+{
+ [ $NOEXTRACT -eq 1 ] || tar xjf gcc-$pkgver-${_uprel}-mingw32-src/gcc-$pkgver.tar.bz2
+
+ patch -d $srcdir/gcc-$pkgver -Np1 < $srcdir/gcc-1-mingw-float.patch
+
+ 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
+
+ msg "gcc"
+ [ -f Makefile ] || $srcdir/gcc-$pkgver/configure \
+ --target=i486-mingw32 \
+ --host=$CHOST \
+ --build=$CHOST \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --with-bugurl=https://bugs.parabolagnulinux.org/ \
+ --enable-languages=c,c++ \
+ --enable-shared \
+ --enable-sjlj-exceptions \
+ --enable-hash-synchronization \
+ --disable-nls \
+ --disable-libssp \
+ --enable-libgomp
+
+ make
+ make install DESTDIR=$pkgdir
+
+ msg "libgcc"
+ make -j1 -C i486-mingw32/libgcc DESTDIR=${pkgdir} libgcc_eh.a install
+
+ msg "libstdc++"
+ make -j1 -C i486-mingw32/libstdc++-v3 DESTDIR=${pkgdir} install
+
+ msg "fixes"
+ cd $pkgdir/usr/i486-mingw32/lib
+ mkdir -p $pkgdir/usr/i486-mingw32/bin/
+ for i in `ls -1 *.dll`; do
+ ln -s ../lib/$i $pkgdir/usr/i486-mingw32/bin/$i
+ done
+
+ 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/lib/gcc/i486-mingw32/$pkgver/{cc1*,collect2}
+ i486-mingw32-strip -g usr/lib/gcc/i486-mingw32/$pkgver/*.a
+}
diff --git a/community/mingw32-gcc/gcc-1-mingw-float.patch b/community/mingw32-gcc/gcc-1-mingw-float.patch
new file mode 100644
index 000000000..365949ad7
--- /dev/null
+++ b/community/mingw32-gcc/gcc-1-mingw-float.patch
@@ -0,0 +1,18 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+This patch has been taken from:
+http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00387.html
+http://sourceforge.net/tracker/?func=detail&atid=302435&aid=3011968&group_id=2435
+
+diff -urN a/gcc/ginclude/float.h b/gcc/ginclude/float.h
+--- a/gcc/ginclude/float.h 2009-04-09 17:00:19.000000000 +0200
++++ b/gcc/ginclude/float.h 2010-06-05 12:03:41.887724045 +0200
+@@ -275,3 +275,7 @@
+ #endif /* __STDC_WANT_DEC_FP__ */
+
+ #endif /* _FLOAT_H___ */
++
++#ifdef __MINGW32__
++#include_next<float.h>
++#endif
diff --git a/community/mingw32-pthreads/PKGBUILD b/community/mingw32-pthreads/PKGBUILD
new file mode 100644
index 000000000..e0fc965e6
--- /dev/null
+++ b/community/mingw32-pthreads/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 50731 2011-06-30 10:05:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Marcel Schneider marcelATcoopmastersDOTde
+
+pkgname=mingw32-pthreads
+pkgver=2.8.0
+_pkgver=2-8-0
+pkgrel=2
+arch=(i686 x86_64 'mips64el')
+pkgdesc="The POSIX 1003.1-2001 standard for writing multithreaded applications."
+license=(LGPL)
+makedepends=('mingw32-gcc-base' 'mingw32-runtime' 'mingw32-w32api')
+url="http://sourceware.org/pthreads-win32/"
+options=(!strip)
+source=(ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-$_pkgver-release.tar.gz)
+md5sums=('6d30c693233b1464ef8983fedd8ccb22')
+
+build() {
+ cd $srcdir/pthreads-w32-$_pkgver-release
+ make CROSS=i486-mingw32- clean GC
+}
+
+package() {
+ cd $srcdir/pthreads-w32-$_pkgver-release
+ mkdir $pkgdir/usr
+ mkdir $pkgdir/usr/i486-mingw32
+ mkdir $pkgdir/usr/i486-mingw32/include
+ mkdir $pkgdir/usr/i486-mingw32/lib
+ install $srcdir/pthreads-w32-$_pkgver-release/pthread.h $pkgdir/usr/i486-mingw32/include/pthread.h
+ install $srcdir/pthreads-w32-$_pkgver-release/sched.h $pkgdir/usr/i486-mingw32/include/sched.h
+ install $srcdir/pthreads-w32-$_pkgver-release/semaphore.h $pkgdir/usr/i486-mingw32/include/semaphore.h
+ install $srcdir/pthreads-w32-$_pkgver-release/libpthreadGC2.a $pkgdir/usr/i486-mingw32/lib/libpthread.a
+ install $srcdir/pthreads-w32-$_pkgver-release/pthreadGC2.dll $pkgdir/usr/i486-mingw32/lib/
+}
diff --git a/community/minidlna/PKGBUILD b/community/minidlna/PKGBUILD
new file mode 100644
index 000000000..dffb76d45
--- /dev/null
+++ b/community/minidlna/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58407 2011-11-12 17:17:53Z ibiru $
+# 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.22
+pkgrel=4
+pkgdesc="A DLNA/UPnP-AV Media server (aka ReadyDLNA)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/minidlna/"
+license=('GPL')
+depends=('libexif' 'libjpeg' 'libid3tag' 'flac' 'libvorbis' 'ffmpeg' 'sqlite3')
+conflicts=('minidlna-cvs')
+backup=('etc/minidlna.conf'
+ 'etc/conf.d/minidlna')
+changelog=changelog
+source=(http://downloads.sourceforge.net/minidlna/minidlna_${pkgver}_src.tar.gz
+ minidlna.rc)
+md5sums=('3de2f6b54f43bb998dfad3c8fa75cef3'
+ '8b064a6c344a3ad8029e2619dfe07b77')
+
+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
+ mkdir -p $pkgdir/etc/conf.d
+ echo 'MINIDLNA_USER=nobody' >$pkgdir/etc/conf.d/minidlna
+}
diff --git a/community/minidlna/changelog b/community/minidlna/changelog
new file mode 100644
index 000000000..35bf6239c
--- /dev/null
+++ b/community/minidlna/changelog
@@ -0,0 +1,4 @@
+2011-08-29 Sergej Pupykin <sergej@p5n.pp.ru>
+
+ * 1.0.22-3 :
+ add user configuration to /etc/conf.d/minidlna
diff --git a/community/minidlna/minidlna.rc b/community/minidlna/minidlna.rc
new file mode 100755
index 000000000..df44a549f
--- /dev/null
+++ b/community/minidlna/minidlna.rc
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/minidlna.conf
+. /etc/conf.d/minidlna
+
+PID=`pidof -o %PPID /usr/sbin/minidlna`
+
+case "$1" in
+ start)
+ stat_busy "Starting minidlna"
+ [ -z "$PID" ] && su -s /bin/sh -l -c /usr/sbin/minidlna - $MINIDLNA_USER
+ 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..289ae5564
--- /dev/null
+++ b/community/miredo/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 59154 2011-11-21 12:39:37Z 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' 'mips64el')
+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 $srcdir/miredo.rc.d $pkgdir/etc/rc.d/miredo
+ install -D -m755 $srcdir/miredo-server.rc.d $pkgdir/etc/rc.d/miredo-server
+ install -D -m755 $srcdir/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..2748143b3
--- /dev/null
+++ b/community/mixxx/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 58662 2011-11-17 11:26:44Z 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.2
+pkgrel=1
+pkgdesc="Free, open source software for digital DJ'ing."
+arch=('i686' 'x86_64' 'mips64el')
+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=('f84095951f66b12af5cf45d19200ff82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # GCC segfault workaround (fixes FS#26716)
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ scons qtdir=/usr/lib/qt prefix=/usr install_root="${pkgdir}/usr"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # GCC segfault workaround (fixes FS#26716)
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ scons qtdir=/usr/lib/qt prefix=/usr install_root="${pkgdir}/usr" install
+}
diff --git a/community/mksh/PKGBUILD b/community/mksh/PKGBUILD
new file mode 100644
index 000000000..64aba857b
--- /dev/null
+++ b/community/mksh/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 60369 2011-12-12 10:37:01Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Daniel Hommel <dhommel@gmail.com>
+
+pkgname=mksh
+pkgver=R40d
+pkgrel=1
+pkgdesc="The MirBSD Korn Shell - an enhanced version of the public domain ksh"
+url="http://mirbsd.de/mksh"
+license=("custom")
+makedepends=('cpio')
+arch=('i686' 'x86_64')
+install=mksh.install
+source=("https://www.mirbsd.org/MirOS/dist/mir/mksh/$pkgname-$pkgver.cpio.gz"
+ "https://www.mirbsd.org/TaC-mksh.txt")
+md5sums=('c6428401103367730a95b99284bf47dc'
+ '5376e528781247238d103ac24aceaf3d')
+
+build() {
+ cd "$srcdir"
+ # makepkg can't extract cpio files
+ cpio -mid < "$pkgname-$pkgver.cpio"
+
+ cd "$srcdir/$pkgname"
+ sh Build.sh -r -c lto
+ ./test.sh
+ gzip -n9 mksh.1
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ install -D -m 755 mksh "$pkgdir/bin/mksh"
+ install -D -m 644 mksh.1.gz "$pkgdir/usr/share/man/man1/mksh.1.gz"
+ install -D -m 644 dot.mkshrc "$pkgdir/etc/skel/.mkshrc"
+ install -D -m 644 "$srcdir/TaC-mksh.txt" "$pkgdir/usr/share/licenses/mksh/TaC-mksh.txt"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/mksh/mksh.install b/community/mksh/mksh.install
new file mode 100644
index 000000000..3e5f2a924
--- /dev/null
+++ b/community/mksh/mksh.install
@@ -0,0 +1,13 @@
+post_install() {
+ grep -x /bin/mksh /etc/shells >/dev/null || echo /bin/mksh >>/etc/shells
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ sed -i "/^\/bin\/mksh$/d" /etc/shells
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/mktorrent/PKGBUILD b/community/mktorrent/PKGBUILD
new file mode 100644
index 000000000..eb4b379ad
--- /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' 'mips64el')
+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..1e823cff7
--- /dev/null
+++ b/community/mldonkey/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 54810 2011-08-26 12:19:01Z 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.1.0
+pkgrel=1
+pkgdesc="A multi-network P2P client"
+arch=('i686' 'x86_64' 'mips64el')
+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=('072726d158ba1e936c554be341e7ceff'
+ '75e4b6c7fb282f7de15a8d5478f3bd70'
+ '1f86d92db51c62cded0e6f3833057dee'
+ '1de3266caa49f82bee73ba891eea12cf')
diff --git a/community/mldonkey/mldonkey.conf b/community/mldonkey/mldonkey.conf
new file mode 100644
index 000000000..24a25af74
--- /dev/null
+++ b/community/mldonkey/mldonkey.conf
@@ -0,0 +1,5 @@
+# Username under which the daemon will run (mandatory)
+MLDUSER=""
+
+# Parameters to be passed to the daemon (default is empty)
+PARAMS=""
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..6a458d68e
--- /dev/null
+++ b/community/mldonkey/mldonkeyd
@@ -0,0 +1,67 @@
+#!/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
+
+if [ -z "$(getent passwd "$MLDUSER")" ]; then
+ # Perhaps we should create the account for the user?
+ echo "You must create the account $MLDUSER in order to run mldonkey."
+ echo "Please create the account manually, and try again."
+ exit 2
+fi
+
+MLDGROUPID=$(getent passwd "$MLDUSER" |cut -d':' -f4)
+MLDGROUP=$(getent group $MLDGROUPID |cut -d':' -f1)
+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
+
+PIDDIR="/var/run/mldonkey"
+PIDFILE="$PIDDIR/mlnet.pid"
+PID=$(cat $PIDFILE 2>/dev/null)
+
+case "$1" in
+ start)
+ stat_busy "Starting MLDonkey"
+ if [ ! -d $PIDDIR ]; then
+ install -d -m755 -o "$MLDUSER" -g "$MLDGROUP" $PIDDIR
+ fi
+ if [ "$(stat -c %U $PIDDIR)" != "$MLDUSER" ]; then
+ chown -R "$MLDUSER:$MLDGROUP" $PIDDIR
+ fi
+ [ -z $PID ] && su $MLDUSER -s /bin/sh -c "/usr/bin/mlnet -pid $PIDDIR $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..6e1663b31
--- /dev/null
+++ b/community/mlt/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 58409 2011-11-12 17:17:58Z ibiru $
+# 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.6
+pkgrel=1
+pkgdesc="An open source multimedia framework"
+arch=('i686' 'x86_64' 'mips64el')
+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=('105969a63339da2f8ce4ddce1652c9e7')
+
+build() {
+ # mlt
+ cd $srcdir/mlt-$pkgver
+
+# [ $CARCH == "i686" ] && SSE2=--disable-sse2 || SSE2=
+ SSE2=--disable-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/PKGBUILD b/community/mms_client/PKGBUILD
new file mode 100644
index 000000000..0dbf23cc8
--- /dev/null
+++ b/community/mms_client/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 55506 2011-09-13 21:16:22Z ebelanger $
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=mms_client
+pkgver=0.0.3
+pkgrel=5
+pkgdesc="mms protocol download utility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ole.tange.dk/projekter/kontroversielt/www.geocities.com/majormms/"
+license=('GPL')
+depends=('glibc')
+#source=(http://ole.tange.dk/projekter/kontroversielt/www.geocities.com/majormms/mms_client-0.0.3.tar.gz
+source=(http://web.archive.org/web/20071011022352/http://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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" 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..752afaffd
--- /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' 'mips64el')
+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..e937af513
--- /dev/null
+++ b/community/mongodb/PKGBUILD
@@ -0,0 +1,72 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Mathias Stearn <mathias@10gen.com>
+# Contributor: Alec Thomas
+
+pkgname=mongodb
+pkgver=2.0.2
+pkgrel=1
+pkgdesc='A high-performance, open source, schema-free document-oriented database.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.mongodb.org'
+license=('AGPL3')
+depends=('boost-libs')
+makedepends=('scons' 'boost')
+#checkdepends=('python2-pymongo')
+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=('5dcf819249955a3e9cc61a341e45403a'
+ '9c67e00f4626ad761a8f7d4e037a54d7'
+ '4839fe1d638187ca3226e8267b947318')
+
+build() {
+ export SCONSFLAGS="$MAKEFLAGS"
+
+ cd mongodb-src-r${pkgver}
+
+ # fix python name for smoke tests
+ sed \
+ -e 's/python/&2/' \
+ -i SConstruct
+
+ scons \
+ all \
+ --full
+}
+
+<<COMMENT
+check() {
+ export SCONSFLAGS="$MAKEFLAGS"
+
+ cd mongodb-src-r${pkgver}
+
+ scons \
+ smokeAll \
+ --smokedbprefix=${srcdir}
+}
+COMMENT
+
+package() {
+ export SCONSFLAGS="$MAKEFLAGS"
+
+ cd mongodb-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/lib/mongodb
+ install -d -m755 ${pkgdir}/var/log/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..c5272b7f2
--- /dev/null
+++ b/community/mongodb/mongodb.conf
@@ -0,0 +1,8 @@
+# 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/lib/mongodb
+logpath = /var/log/mongodb/mongod.log
+logappend = true
diff --git a/community/mongodb/mongodb.install b/community/mongodb/mongodb.install
new file mode 100755
index 000000000..3922c12ef
--- /dev/null
+++ b/community/mongodb/mongodb.install
@@ -0,0 +1,32 @@
+# vim: syntax=sh
+
+post_install() {
+ useradd -r -g daemon -d /var/lib/mongodb -s /bin/bash mongodb
+ chown -R mongodb:daemon /var/lib/mongodb
+ chown -R mongodb:daemon /var/log/mongodb
+
+ if [ "$(arch)" != "x86_64" ]
+ then
+ echo '==> Warning: the 32 bit version of MongoDB is limited to about 2GB of data.'
+ echo '==> See http://blog.mongodb.org/post/137788967/32-bit-limitations'
+ fi
+}
+
+post_upgrade() {
+ chown -R mongodb:daemon /var/lib/mongodb
+ chown -R mongodb:daemon /var/log/mongodb
+
+ if [ "$(vercmp $2 1.8.2-3)" -lt 0 ]
+ then
+ # have to fix my fudge up in 1.8.2-2 and 1.8.2-3
+ # added july 5th, 2011
+ usermod -s /bin/bash mongodb >& /dev/null
+ echo 'The dbpath has changed from /var/state/mongodb to /var/lib/mongodb'
+ echo 'Make sure you move your data files to the new dbpath before you start/restart mongodb'
+ echo 'The logpath has changed from /var/log/mongod to /var/log/mongodb/mongod.log'
+ fi
+}
+
+pre_remove() {
+ userdel mongodb
+}
diff --git a/community/mongodb/mongodb.rc b/community/mongodb/mongodb.rc
new file mode 100755
index 000000000..30f2bbf79
--- /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 -c "/usr/bin/mongod --config /etc/mongodb.conf --fork" > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon mongodb
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mongodb"
+ [ ! -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --shutdown" &> /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..d421c3f6d
--- /dev/null
+++ b/community/monit/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 58923 2011-11-20 11:30:07Z 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.3.1
+pkgrel=1
+pkgdesc="Utility for managing and monitoring, processes, files, directories and devices on a *NIX system"
+arch=('i686' 'x86_64' 'mips64el')
+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=('91a3f15c11a9b9e60e6e3b963f9f4af2acf5ca50ac6dc047d94ce50e966addc6'
+ '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..1481ef5da
--- /dev/null
+++ b/community/monit/monit.changelog
@@ -0,0 +1,28 @@
+2011-11-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.3.1-1
+
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.3-1
+
+2011-07-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.2.5-1
+
+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..c40b6cc3f
--- /dev/null
+++ b/community/moreutils/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 60349 2011-12-11 20:19:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=moreutils
+pkgver=0.45
+pkgrel=2
+pkgdesc="A growing collection of the unix tools that nobody thought to write thirty years ago"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kitenet.net/~joey/code/moreutils.html"
+license=('GPL')
+makedepends=('docbook2x' 'docbook-xml' 'perl-xml-sax')
+depends=('perl')
+optdepends=('perl-timedate' 'perl-time-duration' 'perl-ipc-run')
+options=('!emptydirs' 'zipman')
+replaces=(moreutils-svn)
+source=(http://ftp.de.debian.org/debian/pool/main/m/moreutils/moreutils_$pkgver.tar.gz)
+md5sums=('b30306cd7312219551b890fbcbf984c4')
+
+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..e12f7ee0c
--- /dev/null
+++ b/community/motion/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 58411 2011-11-12 17:18:08Z ibiru $
+# Maintainer:
+
+pkgname=motion
+pkgver=3.2.12
+pkgrel=2
+pkgdesc="A software motion detector which grabs images from video4linux devices and/or from webcams"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome"
+depends=('ffmpeg' 'libjpeg' 'v4l-utils')
+backup=('etc/motion/motion.conf')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz rc.motion ffmpeg-0.8.patch linux-headers.patch)
+md5sums=('1ba0065ed50509aaffb171594c689f46' '24b6fbfa586857b72f90cda81410c14f')
+sha1sums=('dc59b36e45e7626baa65ce62c961af918fea76bd' '06f74131a9d4abc8aa05f531bd19c51a5732023f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i $srcdir/ffmpeg-0.8.patch
+ patch -Np1 -i $srcdir/linux-headers.patch
+ ./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"
+}
+md5sums=('1ba0065ed50509aaffb171594c689f46'
+ '24b6fbfa586857b72f90cda81410c14f'
+ '2f422c268337dce583b9dac344005e93')
+sha1sums=('dc59b36e45e7626baa65ce62c961af918fea76bd'
+ '06f74131a9d4abc8aa05f531bd19c51a5732023f'
+ '7b41c8c273980c147694d82af7c9cb9e51302dd9')
+md5sums=('1ba0065ed50509aaffb171594c689f46'
+ '24b6fbfa586857b72f90cda81410c14f'
+ '5db295d7c2e4c38f36e861a3c4dfdd8d')
+sha1sums=('dc59b36e45e7626baa65ce62c961af918fea76bd'
+ '06f74131a9d4abc8aa05f531bd19c51a5732023f'
+ '2b12df6d9053d17f6ac1969e3510dd50c6fe6667')
+md5sums=('1ba0065ed50509aaffb171594c689f46'
+ '24b6fbfa586857b72f90cda81410c14f'
+ 'd36687710837d69fbce4608b1345fa34')
+sha1sums=('dc59b36e45e7626baa65ce62c961af918fea76bd'
+ '06f74131a9d4abc8aa05f531bd19c51a5732023f'
+ '6912448db0711f85322505ee6f8052f8f98ae634')
+md5sums=('1ba0065ed50509aaffb171594c689f46'
+ '24b6fbfa586857b72f90cda81410c14f'
+ 'd36687710837d69fbce4608b1345fa34'
+ 'd8c3c4fdded5cfbd729710475559a21d')
+sha1sums=('dc59b36e45e7626baa65ce62c961af918fea76bd'
+ '06f74131a9d4abc8aa05f531bd19c51a5732023f'
+ '6912448db0711f85322505ee6f8052f8f98ae634'
+ '6f33dab895ae398cc5e7017cbf5dc5d728f3ca9e')
diff --git a/community/motion/ffmpeg-0.8.patch b/community/motion/ffmpeg-0.8.patch
new file mode 100644
index 000000000..5dcc6e686
--- /dev/null
+++ b/community/motion/ffmpeg-0.8.patch
@@ -0,0 +1,112 @@
+diff -aur motion-3.2.12/ffmpeg.c motion-3.2.12.new/ffmpeg.c
+--- motion-3.2.12/ffmpeg.c 2010-06-01 08:48:23.000000000 +0200
++++ motion-3.2.12.new/ffmpeg.c 2011-10-31 17:25:03.000000000 +0100
+@@ -14,7 +14,7 @@
+
+ #include "ffmpeg.h"
+ #include "motion.h"
+-
++#include <libavformat/avformat.h>
+ #if LIBAVCODEC_BUILD > 4680
+ /* FFmpeg after build 4680 doesn't have support for mpeg1 videos with
+ * non-standard framerates. Previous builds contained a broken hack
+@@ -228,10 +228,12 @@
+ mpeg1_file_protocol.url_close = file_protocol.url_close;
+
+ /* Register the append file protocol. */
+-#if LIBAVFORMAT_BUILD >= (52<<16 | 31<<8)
+- av_register_protocol(&mpeg1_file_protocol);
++#ifdef have_av_register_protocol2
++ av_register_protocol2(&mpeg1_file_protocol, sizeof(mpeg1_file_protocol));
++#elif defined have_av_register_protocol
++ av_register_protocol(&mpeg1_file_protocol);
+ #else
+- register_protocol(&mpeg1_file_protocol);
++# warning av_register_protocolXXX missing
+ #endif
+ }
+
+@@ -244,7 +246,7 @@
+ const char *ext;
+ AVOutputFormat *of = NULL;
+
+- /* Here, we use guess_format to automatically setup the codec information.
++ /* Here, we use av_guess_format to automatically setup the codec information.
+ * If we are using msmpeg4, manually set that codec here.
+ * We also dynamically add the file extension to the filename here. This was
+ * done to support both mpeg1 and mpeg4 codecs since they have different extensions.
+@@ -258,7 +260,7 @@
+ /* We use "mpeg1video" for raw mpeg1 format. Using "mpeg" would
+ * result in a muxed output file, which isn't appropriate here.
+ */
+- of = guess_format("mpeg1video", NULL, NULL);
++ of = av_guess_format("mpeg1video", NULL, NULL);
+ if (of) {
+ /* But we want the trailer to be correctly written. */
+ of->write_trailer = mpeg1_write_trailer;
+@@ -270,24 +272,24 @@
+ #endif
+ } else if (strcmp(codec, "mpeg4") == 0) {
+ ext = ".avi";
+- of = guess_format("avi", NULL, NULL);
++ of = av_guess_format("avi", NULL, NULL);
+ } else if (strcmp(codec, "msmpeg4") == 0) {
+ ext = ".avi";
+- of = guess_format("avi", NULL, NULL);
++ of = av_guess_format("avi", NULL, NULL);
+ if (of) {
+ /* Manually override the codec id. */
+ of->video_codec = CODEC_ID_MSMPEG4V2;
+ }
+ } else if (strcmp(codec, "swf") == 0) {
+ ext = ".swf";
+- of = guess_format("swf", NULL, NULL);
++ of = av_guess_format("swf", NULL, NULL);
+ } else if (strcmp(codec, "flv") == 0) {
+ ext = ".flv";
+- of = guess_format("flv", NULL, NULL);
++ of = av_guess_format("flv", NULL, NULL);
+ of->video_codec = CODEC_ID_FLV1;
+ } else if (strcmp(codec, "ffv1") == 0) {
+ ext = ".avi";
+- of = guess_format("avi", NULL, NULL);
++ of = av_guess_format("avi", NULL, NULL);
+ if (of) {
+ /* Use the FFMPEG Lossless Video codec (experimental!).
+ Requires strict_std_compliance to be <= -2 */
+@@ -295,7 +297,7 @@
+ }
+ } else if (strcmp(codec, "mov") == 0) {
+ ext = ".mov";
+- of = guess_format("mov", NULL, NULL);
++ of = av_guess_format("mov", NULL, NULL);
+ } else {
+ motion_log(LOG_ERR, 0, "ffmpeg_video_codec option value %s is not supported", codec);
+ return NULL;
+@@ -377,7 +379,7 @@
+
+ ffmpeg->c = c = AVSTREAM_CODEC_PTR(ffmpeg->video_st);
+ c->codec_id = ffmpeg->oc->oformat->video_codec;
+- c->codec_type = CODEC_TYPE_VIDEO;
++ c->codec_type = AVMEDIA_TYPE_VIDEO;
+ is_mpeg1 = c->codec_id == CODEC_ID_MPEG1VIDEO;
+
+ if (strcmp(ffmpeg_video_codec, "ffv1") == 0)
+@@ -646,7 +648,7 @@
+ if (ffmpeg->oc->oformat->flags & AVFMT_RAWPICTURE) {
+ /* raw video case. The API will change slightly in the near future for that */
+ #ifdef FFMPEG_AVWRITEFRAME_NEWAPI
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ pkt.data = (uint8_t *)pic;
+ pkt.size = sizeof(AVPicture);
+ ret = av_write_frame(ffmpeg->oc, &pkt);
+@@ -667,7 +669,7 @@
+ #ifdef FFMPEG_AVWRITEFRAME_NEWAPI
+ pkt.pts = AVSTREAM_CODEC_PTR(ffmpeg->video_st)->coded_frame->pts;
+ if (AVSTREAM_CODEC_PTR(ffmpeg->video_st)->coded_frame->key_frame) {
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ }
+ pkt.data = ffmpeg->video_outbuf;
+ pkt.size = out_size;
diff --git a/community/motion/linux-headers.patch b/community/motion/linux-headers.patch
new file mode 100644
index 000000000..795c8aec5
--- /dev/null
+++ b/community/motion/linux-headers.patch
@@ -0,0 +1,35 @@
+diff -urN motion-3.2.12-OLD/motion.h motion-3.2.12-NEW/motion.h
+--- motion-3.2.12-OLD/motion.h 2010-05-31 23:48:23.000000000 -0700
++++ motion-3.2.12-NEW/motion.h 2011-08-30 02:11:08.000000000 -0700
+@@ -40,7 +40,7 @@
+
+ #define _LINUX_TIME_H 1
+ #if !defined(WITHOUT_V4L) && !defined(BSD)
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #endif
+
+ #include <pthread.h>
+diff -urN motion-3.2.12-OLD/track.c motion-3.2.12-NEW/track.c
+--- motion-3.2.12-OLD/track.c 2010-05-31 23:48:23.000000000 -0700
++++ motion-3.2.12-NEW/track.c 2011-08-30 23:05:09.000000000 -0700
+@@ -11,6 +11,7 @@
+ #include "motion.h"
+
+ #ifndef WITHOUT_V4L
++#include <linux/videodev2.h>
+ #include "pwc-ioctl.h"
+ #endif
+
+diff -urN motion-3.2.12-OLD/video.h motion-3.2.12-NEW/video.h
+--- motion-3.2.12-OLD/video.h 2010-05-31 23:48:23.000000000 -0700
++++ motion-3.2.12-NEW/video.h 2011-08-30 02:11:12.000000000 -0700
+@@ -12,7 +12,7 @@
+
+ #define _LINUX_TIME_H 1
+ #ifndef WITHOUT_V4L
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <sys/mman.h>
+ #include "pwc-ioctl.h"
+ #endif
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..da95353fd
--- /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' 'mips64el')
+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..77f7bb8be
--- /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' 'mips64el')
+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..ec2524860
--- /dev/null
+++ b/community/mp3splt-gtk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 54946 2011-08-28 16:49:45Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=mp3splt-gtk
+pkgver=0.7
+pkgrel=2
+pkgdesc="Split mp3 and ogg files without decoding"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mp3splt.sourceforge.net/"
+license=('GPL')
+depends=('desktop-file-utils' 'gstreamer0.10-ffmpeg' 'gtk2' 'libmp3splt')
+makedepends=('pkgconfig')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/mp3splt/$pkgname-$pkgver.tar.gz \
+ $pkgname.desktop)
+sha256sums=('67046b0ab119907e8614089d42f180bdca034e758e24e2d078308e4d26fe8fd0'
+ 'a50dd43c28a723c824d658b9468ff3719dcc302c57ecb3b122124e63c20800ed')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --disable-gnome --disable-mp3splttest --disable-audacious
+ 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..80666955e
--- /dev/null
+++ b/community/mp3splt-gtk/mp3splt-gtk.changelog
@@ -0,0 +1,18 @@
+2011-08-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * mp3splt-gtk O.7-1
+
+2011-04-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * mp3splt-gtk O.6.1a-1
+ * FS#23275 fixed
+
+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..83b233c20
--- /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' 'mips64el')
+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..182670fbd
--- /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.22
+pkgrel=2
+pkgdesc='An mpd client which submits track info to last.fm'
+url='http://mpd.wikia.com/wiki/Client:Mpdscribble'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libsoup' 'glib2' 'libmpdclient')
+install='mpdscribble.install'
+source=("http://downloads.sourceforge.net/musicpd/mpdscribble-${pkgver}.tar.bz2"
+ 'mpdscribble')
+md5sums=('652ee927b797e9a4cef45494e77047db'
+ 'f54c937c7b3ab8e4d39e4b903c2993fc')
+
+build() {
+ cd mpdscribble-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-http-client=soup
+
+ make
+}
+
+package() {
+ cd mpdscribble-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D ${srcdir}/mpdscribble \
+ ${pkgdir}/etc/rc.d/mpdscribble
+
+ # default config is really an example
+ install -D -m644 ${pkgdir}/etc/mpdscribble.conf \
+ ${pkgdir}/usr/share/mpdscribble/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..e7038d5d8
--- /dev/null
+++ b/community/mpdscribble/mpdscribble.install
@@ -0,0 +1,22 @@
+post_install() {
+ echo 'An example config is provided in /usr/share/mpdscribble/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'
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+pre_upgrade() {
+ # removed /etc/mpdscribble.conf on FEB 19 2011
+ # only display warning for people with mpdscribble older then 0.21
+ if (( "$(vercmp 0.21-1 $2)" > 0 )) && [[ -f /etc/mpdscribble.conf ]]
+ then
+ echo "$1 is new $2 is old"
+ 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..594af5428
--- /dev/null
+++ b/community/mpgtx/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 55451 2011-09-12 23:46:30Z ebelanger $
+# Contributor: Peter Baldwin <bald_pete@hotmail.com>
+
+pkgname=mpgtx
+pkgver=1.3.1
+pkgrel=3
+pkgdesc="A command line MPEG audio/video/system toolkit"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mpgtx.sourceforge.net"
+license=('GPL')
+depends=('gcc-libs')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d628060aa04ad3b40a175bf35f5167cf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make PREFIX="$pkgdir/usr" manprefix="${pkgdir}/usr/share" install
+}
diff --git a/community/mplayer2/PKGBUILD b/community/mplayer2/PKGBUILD
new file mode 100644
index 000000000..4a4da3547
--- /dev/null
+++ b/community/mplayer2/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 58413 2011-11-12 17:18:14Z ibiru $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Bartek Piotrowski <barthalion@gmail.com>
+
+pkgname=mplayer2
+pkgver=2.0.20111101
+pkgrel=1.1
+pkgdesc="A movie player"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.mplayer2.org/"
+if [ "${CARCH}" = "mips64el" ] ; then
+ # OpenGL, VDPAU and XVMC don't have efficient implementations on
+ # the supported mips64el machines.
+ depends=('ffmpeg' 'libdvdcss' 'libdvdread' 'libdvdnav' 'libass' 'fontconfig' 'freetype2'
+ 'ttf-dejavu' 'sdl' 'aalib' 'libcaca' 'faad2' 'libpulse' 'jack' 'ncurses' 'libxxf86vm' 'cdparanoia' 'libmad'
+ 'a52dec' 'libdca' 'libxxf86dga' 'libxss' 'mpg123' 'ladspa' 'speex' 'libxv')
+ makedepends=('live-media' 'p7zip-libre' 'gettext')
+else
+ depends=('libgl' 'libvdpau' 'ffmpeg' 'libdvdcss' 'libdvdread' 'libdvdnav' 'libxvmc' 'libass' 'fontconfig' 'freetype2'
+ 'ttf-dejavu' 'sdl' 'aalib' 'libcaca' 'faad2' 'libpulse' 'jack' 'ncurses' 'libxxf86vm' 'cdparanoia' 'libmad'
+ 'a52dec' 'libdca' 'libxxf86dga' 'libxss' 'mpg123' 'ladspa' 'speex')
+ makedepends=('live-media' 'mesa' 'p7zip-libre' 'yasm' 'gettext')
+fi
+backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
+provides=('mplayer')
+conflicts=('mplayer')
+#source=(http://ftp.mplayer2.org/pub/release/${pkgname}-${pkgver/_/-}.tar.xz
+source=(ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('78c78605733ca792bb12a52a751a508bfc0f213d')
+options=('!emptydirs')
+
+# source PKGBUILD && mksource
+mksource() {
+ _gitroot="git://git.mplayer2.org/mplayer2.git"
+ _gitname="${pkgname}-${pkgver}"
+
+ if [[ -d "$_gitname" ]]; then
+ cd "$_gitname" && git pull origin
+ else
+ git clone "$_gitroot" "$_gitname"
+ fi
+
+ tar -cJvf ${_gitname}.tar.xz ${_gitname}
+ rm -fr ${_gitname}
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ if [ "$CARCH" = "mips64el" ]; then
+ ./configure --prefix=/usr \
+ --disable-arts \
+ --enable-speex \
+ --disable-openal \
+ --disable-libdv \
+ --disable-musepack \
+ --disable-esd \
+ --disable-mga \
+ --disable-vdpau \
+ --disable-gl \
+ --enable-xv \
+ --language=all \
+ --enable-translation \
+ --confdir=/etc/mplayer
+ else
+ ./configure --prefix=/usr \
+ --enable-runtime-cpudetection \
+ --disable-arts \
+ --enable-speex \
+ --disable-openal \
+ --disable-libdv \
+ --disable-musepack \
+ --disable-esd \
+ --disable-mga \
+ --language=all \
+ --enable-translation \
+ --confdir=/etc/mplayer
+ fi
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make 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
+
+ install -dm755 "${pkgdir}"/usr/share/applications/
+ install -m 644 etc/mplayer.desktop "${pkgdir}"/usr/share/applications/
+}
diff --git a/community/mtasc/PKGBUILD b/community/mtasc/PKGBUILD
new file mode 100644
index 000000000..456d7aac7
--- /dev/null
+++ b/community/mtasc/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 51324 2011-07-07 13:42:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Niel Drummond <niel.drummond@grumpytoad.org>
+
+pkgname=mtasc
+pkgver=20091229
+pkgrel=3
+pkgdesc="An open source flash (swf) compiler"
+arch=(i686 x86_64 'mips64el')
+url="http://mtasc.org/"
+license=('GPL2')
+depends=('zlib')
+makedepends=('ocaml' 'cvs')
+source=("http://arch.p5n.pp.ru/~sergej/dl/mtasc-$pkgver-1.tar.gz")
+md5sums=('e3b1f31ae906ebbd92678fdac0fdd411')
+
+build() {
+ cd $srcdir/mtasc-$pkgver
+ (cd ocaml/extc && make)
+ ocaml install.ml
+}
+
+package() {
+ cd $srcdir/mtasc-$pkgver
+ install -D -m755 $srcdir/mtasc-$pkgver/bin/${pkgname} $pkgdir/usr/bin/${pkgname}
+ for f in $( cd ocaml/mtasc/ && find ./{std,std8} -type f -iname '*.as' | grep -iv cvs ); do
+ install -D -m644 ocaml/mtasc/$f $pkgdir/usr/share/mtasc/$f
+ done
+}
diff --git a/community/mtpaint/PKGBUILD b/community/mtpaint/PKGBUILD
new file mode 100644
index 000000000..557ffa30c
--- /dev/null
+++ b/community/mtpaint/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 59671 2011-11-29 09:34:27Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: yosh64 <yosh64.at.gmail.dot.com>
+pkgname=mtpaint
+pkgver=3.31
+pkgrel=7
+pkgdesc="A simple GTK2 painting program designed for creating icons and pixel based artwork"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mtpaint.sourceforge.net/"
+license=('GPL3')
+depends=('gtk2' 'giflib' 'openjpeg' 'bzip2' 'desktop-file-utils' 'glib2' 'freetype2')
+install=mtpaint.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2"
+ "libpng14.patch"
+ "mtpaint.install")
+md5sums=('fbe34eb25f96b6092403115f1f6ab387'
+ 'f84245ae1e26bd734740306b09024bb8'
+ '1bd546a8efeae01e8fd8a5c7f213012e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/libpng14.patch"
+ ./configure --prefix=/usr --mandir=/usr/share/man/man1 man intl gif jpeg tiff
+ 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/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/mtpaint/mtpaint.install b/community/mtpaint/mtpaint.install
new file mode 100644
index 000000000..b44de11aa
--- /dev/null
+++ b/community/mtpaint/mtpaint.install
@@ -0,0 +1,14 @@
+post_install() {
+ post_upgrade
+}
+
+post_upgrade() {
+ echo "Updating desktop database"
+ update-desktop-database -q
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/mtpfs/PKGBUILD b/community/mtpfs/PKGBUILD
new file mode 100644
index 000000000..96766ddf9
--- /dev/null
+++ b/community/mtpfs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 55836 2011-09-23 12:06:39Z lcarlier $
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+# Contributor: yugrotavele <yugrotavele at archlinux dot us>
+# Contributor: Anton Pirogov <anton.pirogov <AT> googlemail.com>
+
+pkgname=mtpfs
+pkgver=1.0
+pkgrel=1
+pkgdesc="A FUSE filesystem that supports reading and writing from any MTP device"
+arch=('i686' 'x86_64')
+url="http://www.adebenham.com/mtpfs/"
+license=('GPL3')
+depends=('libmtp' 'glib2' 'libid3tag' 'fuse' 'libmad')
+makedepends=('pkg-config' 'namcap')
+source=(http://www.adebenham.com/debian/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7d62fdfdb59d87d115e2f804d0dc7f85')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/multiget/PKGBUILD b/community/multiget/PKGBUILD
new file mode 100644
index 000000000..d5d80bb5e
--- /dev/null
+++ b/community/multiget/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59362 2011-11-23 20:36:41Z andrea $
+# Maintainer:
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+
+pkgname=multiget
+pkgver=3
+pkgrel=1
+pkgdesc="Easy to use GUI file downloader - svn version"
+url="http://multiget.sourceforge.net"
+license=('GPL')
+depends=('wxgtk' 'libglade')
+makedepends=('intltool' 'svn')
+arch=('i686' 'x86_64' 'mips64el')
+_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/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..a2c3c4aed
--- /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' 'mips64el')
+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..67343286d
--- /dev/null
+++ b/community/multipath-tools/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 59357 2011-11-23 20:31:03Z andrea $
+# Maintainer:
+# Contributor: 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' 'mips64el')
+url="http://christophe.varoqui.free.fr/"
+license=('GPL')
+depends=('libaio' 'device-mapper')
+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"
+ 'fix-build.patch')
+md5sums=('a6d4b48afc28f1f50f5ee4b1b06d2765'
+ 'd0fb11398cc628c7997111efdc5d52e5'
+ '5a93f993ec05fc99094d5139aabd3925'
+ '1c2dcf43a6b5ae84ec1fae0fee071336'
+ '2576fc535d7fa767837b1c7827013e52')
+
+build() {
+ #Needs to be fixed upstream. Refer to
+ # https://bbs.archlinux.org/viewtopic.php?pid=793814#p793814
+ cd "$srcdir"
+
+ patch -p1 -i "${srcdir}"/fix-build.patch
+
+ 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/fix-build.patch b/community/multipath-tools/fix-build.patch
new file mode 100644
index 000000000..c6196f73b
--- /dev/null
+++ b/community/multipath-tools/fix-build.patch
@@ -0,0 +1,140 @@
+--- multipath-tools-0.4.9.orig/kpartx/Makefile 2010-05-22 05:01:58.000000000 -0700
++++ multipath-tools-0.4.9/kpartx/Makefile 2010-11-28 12:14:25.763531104 -0800
+@@ -6,7 +6,7 @@
+
+ CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+
+-LDFLAGS = -ldevmapper
++LIBS = -ldevmapper
+ OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
+ gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o
+ EXEC = kpartx
+@@ -14,8 +14,7 @@
+ all: $(EXEC)
+
+ $(EXEC): $(OBJS)
+- $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
+
+ install: $(EXEC) $(EXEC).8
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+@@ -23,13 +22,14 @@
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
+ $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
+- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
++ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/66-kpartx.rules
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+
+ uninstall:
+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
+- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
++ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
++ rm -f $(DESTDIR)/etc/udev/rules.d/66-kpartx.rules
+
+ clean:
+- rm -f core *.o $(EXEC) *.gz
++ rm -f core *.o $(EXEC)
+--- multipath-tools-0.4.9.orig/Makefile.inc 2010-05-22 05:01:58.000000000 -0700
++++ multipath-tools-0.4.9/Makefile.inc 2010-11-28 12:14:25.763531104 -0800
+@@ -32,11 +32,10 @@
+ syslibdir = $(prefix)/$(LIB)
+ libdir = $(prefix)/$(LIB)/multipath
+
+-GZIP = /bin/gzip -9 -c
+ INSTALL_PROGRAM = install
+
+-OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes
+-CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
++OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
++CFLAGS += $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
+ SHARED_FLAGS = -shared
+
+ %.o: %.c
+--- multipath-tools-0.4.9.orig/multipath/Makefile 2010-05-22 05:01:58.000000000 -0700
++++ multipath-tools-0.4.9/multipath/Makefile 2010-11-28 12:14:46.718697048 -0800
+@@ -7,32 +7,30 @@
+ OBJS = main.o
+
+ CFLAGS += -I$(multipathdir)
+-LDFLAGS += -lpthread -ldevmapper -ldl -lmultipath -L$(multipathdir)
++LIBS = -lpthread -ldevmapper -ldl -L$(multipathdir) -lmultipath
+
+ EXEC = multipath
+
+ all: $(EXEC)
+
+ $(EXEC): $(OBJS)
+- $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+- $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
+
+ install:
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+ $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
+- $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/
++ $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/65-multipath.rules
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(man5dir)
+
+ uninstall:
+- rm $(DESTDIR)/etc/udev/rules.d/multipath.rules
+- rm $(DESTDIR)$(bindir)/$(EXEC)
+- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
+- rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
++ rm -f $(DESTDIR)/etc/udev/rules.d/65-multipath.rules
++ rm -f $(DESTDIR)$(bindir)/$(EXEC)
++ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
++ rm -f $(DESTDIR)$(man5dir)/$(EXEC).conf.5
+
+ clean:
+- rm -f core *.o $(EXEC) *.gz
++ rm -f core *.o $(EXEC)
+--- multipath-tools-0.4.9.orig/multipathd/Makefile 2010-05-22 05:01:58.000000000 -0700
++++ multipath-tools-0.4.9/multipathd/Makefile 2010-11-28 12:15:46.624171566 -0800
+@@ -6,8 +6,8 @@
+ # basic flags setting
+ #
+ CFLAGS += -I$(multipathdir)
+-LDFLAGS += -lpthread -ldevmapper -lreadline -lncurses -ldl \
+- -lmultipath -L$(multipathdir)
++LIBS = -lpthread -ldevmapper -lreadline -lncurses -ldl \
++ -L$(multipathdir) -lmultipath
+
+ #
+ # debuging stuff
+@@ -28,21 +28,20 @@
+ all : $(EXEC)
+
+ $(EXEC): $(OBJS)
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $(EXEC) $(OBJS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
+
+ install:
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(rcdir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+
+ uninstall:
+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
+ rm -f $(DESTDIR)$(rcdir)/$(EXEC)
+- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
++ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
+
+ clean:
+- rm -f core *.o $(EXEC) *.gz
++ rm -f core *.o $(EXEC)
+
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..640f8c2ef
--- /dev/null
+++ b/community/mumble/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 46129 2011-05-04 05:39:59Z 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=4
+arch=('i686' 'x86_64' 'mips64el')
+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 no-update 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..35ef9ac83
--- /dev/null
+++ b/community/mupdf/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 55364 2011-09-10 10:56:13Z pschmitz $
+# 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.9
+pkgrel=1
+pkgdesc="lightweight PDF viewer and toolkit written in portable C"
+arch=('i686' 'x86_64' 'mips64el')
+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=('76640ee16a797a27fe49cc0eaa87ce3a')
+
+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/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..a85017e06
--- /dev/null
+++ b/community/murmur/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 44592 2011-04-09 11:22:35Z 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=3
+pkgdesc="The voice chat application server for Mumble"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'a4f6fc515f258eb4db437a226e16de5d'
+ '11c1cc875e8021739ec2087252cf0533'
+ 'eddea4cdbd0bde4b960a67e16b5d5478'
+ 'c56726cb267ead68f37f35c28e36e6fa')
+
+build() {
+ cd ${srcdir}/mumble-$pkgver
+
+ qmake main.pro CONFIG+="no-client no-ice"
+ make release
+}
+
+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 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..1f49aa53b
--- /dev/null
+++ b/community/murmur/murmur.install
@@ -0,0 +1,32 @@
+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/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..e26a2a3db
--- /dev/null
+++ b/community/murmur/murmur.rc.d
@@ -0,0 +1,44 @@
+#!/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"
+
+ [ -d /var/run/murmur ] || mkdir -p /var/run/murmur
+ chown murmur:murmur /var/run/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/musepack-tools/PKGBUILD b/community/musepack-tools/PKGBUILD
new file mode 100644
index 000000000..21c8bf360
--- /dev/null
+++ b/community/musepack-tools/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 56848 2011-10-14 21:03:20Z schiv $
+# Maintainer:
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+
+pkgname=musepack-tools
+pkgver=475
+pkgrel=1
+pkgdesc="Musepack decoder/encoder"
+arch=('i686' 'x86_64' 'mips64el')
+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=('754d67be67f713e54baf70fcfdb2817e'
+ '9de31f07a3492c7b1db1248b055fbdc8')
+
+build() {
+ cd "$srcdir/musepack_src_r$pkgver"
+
+ #export LDFLAGS+="-lm"
+
+ patch -Np1 -i "$srcdir/math.patch"
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON
+}
+
+package() {
+ cd "$srcdir/musepack_src_r$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ for bin in chap cut dec enc gain 2sv8; do
+ install -Dm755 mpc$bin/mpc$bin "$pkgdir/usr/bin/mpc$bin"
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/musepack-tools/math.patch b/community/musepack-tools/math.patch
new file mode 100644
index 000000000..61b3d07ec
--- /dev/null
+++ b/community/musepack-tools/math.patch
@@ -0,0 +1,12 @@
+diff -aur musepack_src_r475.old/CMakeLists.txt musepack_src_r475/CMakeLists.txt
+--- musepack_src_r475.old/CMakeLists.txt 2011-10-14 16:31:05.536450109 +0800
++++ musepack_src_r475/CMakeLists.txt 2011-10-14 16:31:34.022962450 +0800
+@@ -16,7 +16,7 @@
+ add_definitions(-DFAST_MATH -DCVD_FASTLOG)
+
+ if(NOT MSVC)
+- set(CMAKE_C_FLAGS "-O3 -Wall -fomit-frame-pointer -pipe")
++ set(CMAKE_C_FLAGS "-O3 -Wall -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..e55a31ca9
--- /dev/null
+++ b/community/musescore/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 58526 2011-11-13 15:57:02Z andrea $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de
+# Contributor: Cristian Maureira <saint [at] archlinux.cl>
+# Contributor: Dr.Egg <rwhite @ archlinux . us>
+
+pkgname=musescore
+pkgver=1.1
+pkgrel=2
+pkgdesc="A music score editor written in Qt"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.musescore.org/en/"
+license=('GPL')
+depends=('qt' 'libsndfile' 'qtscriptgenerator')
+makedepends=('cmake' 'doxygen')
+optdepends=('portaudio' 'jack')
+install=musescore.install
+source=("http://downloads.sourceforge.net/mscore/mscore-${pkgver}.tar.bz2"
+ 'paths.patch')
+md5sums=('68b43af92093a16f7f074c0eb560a867'
+ '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
+ sed -i 's+BUILD_SCRIPTGEN TRUE+BUILD_SCRIPTGEN FALSE+' \
+ "$srcdir"/mscore-$pkgver/mscore/CMakeLists.txt
+ sed -i 's+static_cast<const+static_cast<+' \
+ $srcdir/mscore-$pkgver/mscore/mscore/exportxml.cpp
+ make PREFIX=/usr release
+}
+package() {
+ cd $srcdir/mscore-${pkgver}
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/musescore/musescore.install b/community/musescore/musescore.install
new file mode 100644
index 000000000..d6abb5470
--- /dev/null
+++ b/community/musescore/musescore.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
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..df116ea61
--- /dev/null
+++ b/community/mxml/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59790 2011-11-30 09:27:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Johannes Sjolund <j.sjolund@gmail.com>
+
+pkgname=mxml
+pkgver=2.6
+pkgrel=4
+pkgdesc="A small XML parsing library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.minixml.org/"
+license=('LGPL')
+source=("http://ftp.easysw.com/pub/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz")
+md5sums=('68977789ae64985dddbd1a1a1652642e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+# [ "$CARCH" = x86_64 ] && export CFLAGS="$CFLAGS -fPIC"
+ ./configure --prefix=/usr --enable-shared
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ 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..1e4e2374a
--- /dev/null
+++ b/community/mygui/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 59978 2011-12-02 21:01:43Z ibiru $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Andrew Belitsky <belitsky.a@gmail.com>
+pkgbase=mygui
+pkgname=('mygui' 'mygui-docs')
+pkgver=3.2.0rc1
+pkgrel=10
+pkgdesc="A multilayer and overlappable GUI System for OGRE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mygui.info/"
+license=('LGPL')
+depends=('boost-libs' 'ogre' 'ois')
+makedepends=('boost' 'cmake' 'doxygen' 'graphviz' 'ttf-dejavu')
+install=mygui.install
+source=("http://downloads.sourceforge.net/my-gui/MyGUI_3.2.0_RC1.zip")
+md5sums=('1ac1340148e81ad49a26c8a87acefc6b')
+
+build() {
+ cd $srcdir/MyGUI_3.2.0_RC1
+
+ # 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/MyGUI_3.2.0_RC1
+
+ cd 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/MyGUI_3.2.0_RC1
+
+ cd build
+
+ # 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..d6716bf70
--- /dev/null
+++ b/community/myodbc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56720 2011-10-11 09:17:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=myodbc
+pkgver=5.1.9
+pkgrel=1
+pkgdesc="ODBC driver/connector for MySQL"
+arch=(i686 x86_64 'mips64el')
+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"
+ myconf.h.in)
+md5sums=('80f146bd384a9011d968aa67df27e68e'
+ '6c99c83e309b18d15ef0f07f0b461241')
+
+build() {
+ cd $srcdir/mysql-connector-odbc-${pkgver}
+ cp $srcdir/myconf.h.in driver/myconf.h.in
+ [ -x configure ] || { aclocal; libtoolize; automake --add-missing; autoreconf; }
+ [ -f Makefile ] || CFLAGS="$CFLAGS -DTHREAD" \
+ ./configure --prefix=/usr --sysconfdir=/etc --with-unixODBC=/usr --with-odbc-ini=/etc/odbc.ini \
+ --with-mysql-path=/usr --without-x --disable-gui --disable-test
+ make
+}
+
+package() {
+ cd $srcdir/mysql-connector-odbc-${pkgver}
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/myodbc/myconf.h.in b/community/myodbc/myconf.h.in
new file mode 100644
index 000000000..2a04eebba
--- /dev/null
+++ b/community/myodbc/myconf.h.in
@@ -0,0 +1,165 @@
+/* driver/myconf.h.in. Generated from configure.in by autoheader. */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <iodbcinst.h> header file. */
+#undef HAVE_IODBCINST_H
+
+/* Define to 1 if you have the <isqlext.h> header file. */
+#undef HAVE_ISQLEXT_H
+
+/* Define to 1 if you have the <isqltypes.h> header file. */
+#undef HAVE_ISQLTYPES_H
+
+/* Define to 1 if you have the <isql.h> header file. */
+#undef HAVE_ISQL_H
+
+/* Define to 1 if you have the `z' library (-lz). */
+#undef HAVE_LIBZ
+
+/* Define to 1 if you have the `localtime_r' function. */
+#undef HAVE_LOCALTIME_R
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <odbcinst.h> header file. */
+#undef HAVE_ODBCINST_H
+
+/* Define to 1 if you have the <sqlext.h> header file. */
+#undef HAVE_SQLEXT_H
+
+/* Define if SQLGetPrivateProfileString is defined */
+#undef HAVE_SQLGETPRIVATEPROFILESTRING
+
+/* Define to 1 if you have the `SQLGetPrivateProfileStringW' function. */
+#undef HAVE_SQLGETPRIVATEPROFILESTRINGW
+
+/* Define to 1 if you have the <sqltypes.h> header file. */
+#undef HAVE_SQLTYPES_H
+
+/* Define to 1 if you have the <sql.h> header file. */
+#undef HAVE_SQL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define if SQLCHAR is undefined */
+#undef SQLCHAR
+
+/* Define if SQLHDBC is undefined */
+#undef SQLHDBC
+
+/* Define if SQLHENV is undefined */
+#undef SQLHENV
+
+/* Define if SQLHSTMT is undefined */
+#undef SQLHSTMT
+
+/* Define if SQLHWND is undefined */
+#undef SQLHWND
+
+/* Define if SQLINTEGER is undefined */
+#undef SQLINTEGER
+
+/* Define if SQLPOINTER is undefined */
+#undef SQLPOINTER
+
+/* Define if SQLRETURN is undefined */
+#undef SQLRETURN
+
+/* Define if SQLSMALLINT is undefined */
+#undef SQLSMALLINT
+
+/* Define if SQLUINTEGER is undefined */
+#undef SQLUINTEGER
+
+/* Define if SQLUSMALLINT is undefined */
+#undef SQLUSMALLINT
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define path to system ODBC.INI file */
+#undef SYSTEM_ODBC_INI
+
+/* Define if compiler defines C99 __func__ macro */
+#undef USE_C99_FUNC_MACRO
+
+/* Define if compiler defines __FUNCTION__ */
+#undef USE_GNU_FUNC_MACRO
+
+/* use iODBC */
+#undef USE_IODBC
+
+/* Define if SQLColAttribute() last arg is compatible with SQLLEN* */
+#undef USE_SQLCOLATTRIBUTE_SQLLEN_PTR
+
+/* Define if SQLColAttribute() last arg is compatible with SQLPOINTER */
+#undef USE_SQLCOLATTRIBUTE_SQLPOINTER
+
+/* Define if SQLParamOptions() 2nd and 3rd arg is compatible with SQLUINTEGER
+ */
+#undef USE_SQLPARAMOPTIONS_SQLUINTEGER_PTR
+
+/* Define if SQLParamOptions() 2nd and 3rd arg is compatible with SQLULEN */
+#undef USE_SQLPARAMOPTIONS_SQLULEN_PTR
+
+/* use unixODBC */
+#undef USE_UNIXODBC
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
+
+/* Define if we are using unix build environment */
+#undef _UNIX_
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..3413dceb2
--- /dev/null
+++ b/community/mypaint/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59299 2011-11-22 22:00:51Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jon Nordby <jononor@gmail.com>
+
+pkgname=mypaint
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A fast and easy painting application for digital painters, with brush dynamics"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mypaint.intilinux.com/"
+license=('GPL' 'LGPL')
+depends=('pygtk' 'python2-numpy' 'protobuf-python' 'python2')
+makedepends=('scons>=0.97' 'swig>=1.3.39')
+install=mypaint.install
+source=(http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('dcd43933746a4579e7994f506e097823')
+
+build() {
+ cd $srcdir/$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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ scons prefix="$pkgdir"/usr install
+}
diff --git a/community/mypaint/mypaint.install b/community/mypaint/mypaint.install
new file mode 100644
index 000000000..5f0358791
--- /dev/null
+++ b/community/mypaint/mypaint.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/mysql++/PKGBUILD b/community/mysql++/PKGBUILD
new file mode 100644
index 000000000..b8a370db6
--- /dev/null
+++ b/community/mysql++/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 51970 2011-07-18 20:04:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Markus Härer <markus.haerer@gmx.net>
+
+pkgname=mysql++
+pkgver=3.1.0
+pkgrel=2
+pkgdesc="A C++ wraper for MySQLs C API"
+arch=("i686" "x86_64" 'mips64el')
+url="http://tangentsoft.net/mysql++/"
+license=("LGPL" "custom")
+depends=("libmysqlclient")
+options=('docs')
+source=("http://tangentsoft.net/mysql++/releases/$pkgname-$pkgver.tar.gz"
+ "mysql++-fix-cstring.patch"
+ "mysql++-fix-size_t.patch")
+md5sums=('d92769cc579b87a60e58a77099cc4f0e'
+ '72f85a1bdba9d5285f0baf1d973033f8'
+ '6dcfbf06072b81cf27530ca9a0df8a8e')
+
+build() {
+ unset LDFLAGS
+ cd "$srcdir/$pkgname-$pkgver/"
+ patch -p1 <$srcdir/mysql++-fix-cstring.patch
+ patch -p1 <$srcdir/mysql++-fix-size_t.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/"
+ make DESTDIR="$pkgdir" install
+
+ #install docs
+ mkdir -p $pkgdir/usr/share/doc/mysql++
+ cp -r doc/html $pkgdir/usr/share/doc/mysql++
+ cp -r doc/pdf $pkgdir/usr/share/doc/mysql++
+
+ #install doc licence
+ install -Dm0644 doc/userman/LICENSE.txt $pkgdir/usr/share/licenses/mysql++/LICENSE
+}
diff --git a/community/mysql++/mysql++-fix-cstring.patch b/community/mysql++/mysql++-fix-cstring.patch
new file mode 100644
index 000000000..2a9faeb07
--- /dev/null
+++ b/community/mysql++/mysql++-fix-cstring.patch
@@ -0,0 +1,11 @@
+diff -Naur mysql++-3.1.0.old/ssx/genv2.cpp mysql++-3.1.0/ssx/genv2.cpp
+--- mysql++-3.1.0.old/ssx/genv2.cpp 2010-06-12 11:12:11.574891331 +0200
++++ mysql++-3.1.0/ssx/genv2.cpp 2010-06-12 11:14:00.564881723 +0200
+@@ -35,6 +35,7 @@
+ #include <iostream>
+ #include <fstream>
+ #include <typeinfo>
++#include <cstring>
+
+ using namespace std;
+
diff --git a/community/mysql++/mysql++-fix-size_t.patch b/community/mysql++/mysql++-fix-size_t.patch
new file mode 100644
index 000000000..908141d5d
--- /dev/null
+++ b/community/mysql++/mysql++-fix-size_t.patch
@@ -0,0 +1,21 @@
+diff -Naur mysql++-3.1.0.old//lib/refcounted.h mysql++-3.1.0/lib/refcounted.h
+--- mysql++-3.1.0.old//lib/refcounted.h 2010-06-03 19:59:23.000000000 +0200
++++ mysql++-3.1.0/lib/refcounted.h 2011-04-23 12:35:39.943366970 +0200
+@@ -101,7 +101,7 @@
+ {
+ std::auto_ptr<T> exception_guard(counted_);
+ if (counted_) {
+- refs_ = new size_t(1);
++ refs_ = new std::size_t(1);
+ }
+ exception_guard.release(); // previous new didn't throw
+ }
+@@ -255,7 +255,7 @@
+ /// We can't keep this as a plain integer because this object
+ /// allows itself to be copied. All copies need to share this
+ /// reference count, not just the pointer to the counted object.
+- size_t* refs_;
++ std::size_t* refs_;
+ };
+
+
diff --git a/community/mysql-ruby/PKGBUILD b/community/mysql-ruby/PKGBUILD
new file mode 100644
index 000000000..71bad6667
--- /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' 'mips64el')
+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..ca0b9e19a
--- /dev/null
+++ b/community/mysql-workbench/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 60120 2011-12-05 17:20:12Z ibiru $
+# Maintainer:
+# Contributor : Ionut Biru <ibiru@archlinux.org>
+# Contributor: totoloco <totoloco at gmail _dot_com>
+
+pkgname=mysql-workbench
+epoch=1
+pkgver=5.2.36
+pkgrel=1
+pkgdesc="A cross-platform, visual database design tool developed by MySQL"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://wb.mysql.com/"
+license=('GPL2')
+depends=('libzip' 'libmysqlclient' 'lua' 'gtkmm' 'libgl'
+ 'libsigc++' 'python-paramiko' 'python-pexpect' 'libgnome-keyring')
+makedepends=('boost' 'curl' 'mesa' 'python-sphinx')
+options=('!libtool')
+source=(ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQLGUITools/${pkgname}-gpl-${pkgver}-src.tar.gz
+ ArchLinux.xml arch.patch python27.patch gcc46.patch)
+md5sums=('7408d80ddb647a7d5a8749b0ecad9620'
+ 'c2f986cd5737413d020c55db32713c48'
+ '23430d24400fd65c9fd872bd8e2411e5'
+ 'a3efb373bd85d876530a29bf1780fb6b'
+ '43917ebc79794ba15a64f7ba820fa20b')
+
+build() {
+ cd "${srcdir}/${pkgname}-gpl-${pkgver}-src"
+
+ cp "${srcdir}/ArchLinux.xml" res/mysql.profiles
+ patch -Np1 -i ${srcdir}/arch.patch
+
+ patch -Np1 -i ${srcdir}/python27.patch
+ patch -Np1 -i ${srcdir}/gcc46.patch
+
+ ./autogen.sh --prefix=/usr --with-bundled-ctemplate \
+ --disable-debug --disable-static
+ make
+
+ pushd ext/mysql-utilities
+ python2 setup.py build
+ popd
+
+ pushd ext/connector-python
+ python2 setup.py build
+ popd
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-gpl-${pkgver}-src"
+
+ make DESTDIR="${pkgdir}" install
+
+ pushd ext/mysql-utilities
+ python2 setup.py install --skip-profile --root $pkgdir --prefix=/usr --optimize=1
+ popd
+
+ pushd ext/connector-python
+ python2 setup.py install --root $pkgdir --prefix=/usr --optimize=1
+
+ 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')
+}
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/gcc46.patch b/community/mysql-workbench/gcc46.patch
new file mode 100644
index 000000000..6a0d2cd97
--- /dev/null
+++ b/community/mysql-workbench/gcc46.patch
@@ -0,0 +1,11 @@
+diff -Nur mysql-workbench-gpl-5.2.34-src.orig/ext/ctemplate/ctemplate-src/src/ctemplate/template_dictionary.h.in mysql-workbench-gpl-5.2.34-src/ext/ctemplate/ctemplate-src/src/ctemplate/template_dictionary.h.in
+--- mysql-workbench-gpl-5.2.34-src.orig/ext/ctemplate/ctemplate-src/src/ctemplate/template_dictionary.h.in 2011-05-26 09:33:54.128803186 +0000
++++ mysql-workbench-gpl-5.2.34-src/ext/ctemplate/ctemplate-src/src/ctemplate/template_dictionary.h.in 2011-05-26 09:34:45.312611839 +0000
+@@ -54,6 +54,7 @@
+ #include <map>
+ #include <string>
+ #include <vector>
++#include <cstddef>
+ #include <ctemplate/template_dictionary_interface.h>
+ #include <ctemplate/template_string.h>
+ #include <ctemplate/template_modifiers.h>
diff --git a/community/mysql-workbench/python27.patch b/community/mysql-workbench/python27.patch
new file mode 100644
index 000000000..4f70afe57
--- /dev/null
+++ b/community/mysql-workbench/python27.patch
@@ -0,0 +1,19 @@
+diff -Nur mysql-workbench-gpl-5.2.36-src.old/configure.in mysql-workbench-gpl-5.2.36-src/configure.in
+--- mysql-workbench-gpl-5.2.36-src.old/configure.in 2011-12-05 15:04:56.894410445 +0000
++++ mysql-workbench-gpl-5.2.36-src/configure.in 2011-12-05 15:05:45.818268997 +0000
+@@ -245,13 +245,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 \"-L\" + cfg['LIBDIR'] + \" -l\" + cfg['LDLIBRARY'].lstrip(\"lib\").rstrip(\".so\")")]
+-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..2097c4310
--- /dev/null
+++ b/community/mythplugins/PKGBUILD
@@ -0,0 +1,142 @@
+# $Id: PKGBUILD 48174 2011-05-29 12:47:11Z jconder $
+# 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.1
+pkgrel=4
+epoch=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.mythtv.org"
+license=('GPL')
+makedepends=('cdparanoia' 'cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg' 'flac'
+ 'libcdaudio' 'libexif' 'libvisual' 'libvorbis' 'mplayer' 'mythtv'
+ 'perl-datetime-format-iso8601' 'perl-date-manip' 'perl-image-size'
+ 'perl-libwww' 'perl-soap-lite' 'perl-xml-sax' 'perl-xml-simple'
+ 'perl-xml-xpath' 'python2-oauth' 'python-imaging' 'python-pycurl'
+ 'sdl' 'taglib' 'zlib')
+source=("ftp://ftp.osuosl.org/pub/mythtv/$pkgbase-$pkgver.tar.bz2"
+ 'mtd.rc')
+md5sums=('76aeefeff70b550b2d35c2d9d751df18'
+ '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=('cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg' 'mythtv'
+ 'python-imaging')
+
+ cd "$srcdir/$pkgbase-$pkgver/mytharchive"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythbrowser() {
+ pkgdesc="Mini web browser for MythTV"
+ depends=('mythtv')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythbrowser"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythgallery() {
+ pkgdesc="Image gallery plugin for MythTV"
+ depends=('libexif' 'mythtv')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythgallery"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythgame() {
+ pkgdesc="Game emulator plugin for MythTV"
+ depends=('mythtv')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythgame"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythmusic() {
+ pkgdesc="Music playing plugin for MythTV"
+ depends=('cdparanoia' 'flac' 'libcdaudio' 'libvisual' 'libvorbis' 'mythtv'
+ 'sdl' 'taglib')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythmusic"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythnetvision() {
+ pkgdesc="MythNetvision plugin for MythTV"
+ depends=('mythtv' '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')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythnews"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythvideo() {
+ pkgdesc="Video playback and browsing plugin for MythTV"
+ depends=('mplayer' 'mythtv')
+
+ 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' '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')
+ optdepends=('lighttpd'
+ 'php-apache')
+
+ 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}
+}
+
+package_mythplugins-mythzoneminder() {
+ pkgdesc="View CCTV footage from zoneminder in MythTV"
+ depends=('mythtv')
+
+ 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..d4530b4de
--- /dev/null
+++ b/community/mythtv/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 59400 2011-11-24 09:36:19Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: <kleptophobiac@gmail.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=mythtv
+pkgver=0.24.1
+pkgrel=3
+epoch=1
+pkgdesc="A Homebrew PVR project"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.mythtv.org/"
+license=('GPL')
+depends=('lame' 'libavc1394' 'libiec61883' 'libpulse' 'libvdpau' 'libxinerama'
+ 'libxvmc' 'libxxf86vm' 'lirc-utils' 'mesa' 'mysql-clients'
+ 'mysql-python' 'perl-dbd-mysql' 'perl-libwww' 'perl-net-upnp'
+ 'python-lxml' 'qt' 'wget')
+makedepends=('yasm')
+optdepends=('xmltv: to download tv listings')
+backup=('etc/conf.d/mythbackend')
+install='mythtv.install'
+source=("ftp://ftp.osuosl.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'mythbackend.rc'
+ 'mythbackend.conf'
+ 'mythtv-v4l2-fix.patch'
+ 'build.patch')
+md5sums=('6870c679619ec58456e76839745411d8'
+ 'feadcc9ad064d93d6dceab1efc0bd9ed'
+ 'bb8e4033d82428d827570fae9ba15e6a'
+ 'ba5c91df80f0d3f7563a873e71a3725c'
+ '3188962917e98c4e07818dccd64bc423')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ find 'bindings/python' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ patch -Np2 -i ${srcdir}/mythtv-v4l2-fix.patch
+ patch -Np1 -i ${srcdir}/build.patch
+
+ ARCH="${CARCH/_/-}"
+ ./configure --prefix=/usr --cpu="$ARCH" \
+ --enable-mmx \
+ --enable-audio-oss \
+ --enable-audio-alsa \
+ --disable-audio-jack \
+ --enable-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/build.patch b/community/mythtv/build.patch
new file mode 100644
index 000000000..35dccd618
--- /dev/null
+++ b/community/mythtv/build.patch
@@ -0,0 +1,13 @@
+diff -Nru a/libs/libmythui/mythrender_opengl.cpp b/libs/libmythui/mythrender_opengl.cpp
+--- a/libs/libmythui/mythrender_opengl.cpp 2011-05-16 08:57:52.000000000 +1200
++++ b/libs/libmythui/mythrender_opengl.cpp 2011-10-23 15:05:33.178392264 +1300
+@@ -2,6 +2,8 @@
+ #include "mythrender_opengl.h"
+ #include "mythxdisplay.h"
+
++#include <GL/glu.h>
++
+ #define LOC QString("OpenGL: ")
+ #define LOC_ERR QString("OpenGL Error: ")
+
+Binary files a/libs/libmythui/.mythrender_opengl.cpp.swp and b/libs/libmythui/.mythrender_opengl.cpp.swp differ
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-v4l2-fix.patch b/community/mythtv/mythtv-v4l2-fix.patch
new file mode 100644
index 000000000..e26e16615
--- /dev/null
+++ b/community/mythtv/mythtv-v4l2-fix.patch
@@ -0,0 +1,724 @@
+diff --git a/mythtv/configure b/mythtv/configure
+index 1efe803..7bcdf06 100755
+--- a/mythtv/configure
++++ b/mythtv/configure
+@@ -109,7 +109,8 @@ Advanced options (experts only):
+ --disable-iptv disable support for recording RTSP/UDP/RTP streams
+ --disable-hdhomerun disable support for HDHomeRun boxes
+ --disable-v4l disable Video4Linux support
+- --disable-ivtv disable ivtv support (PVR-x50) req. v4l support
++ --disable-v4l2 disable Video4Linux2 support
++ --disable-ivtv disable ivtv support (PVR-x50) req. v4l2 support
+ --disable-hdpvr disable HD-PVR support
+ --disable-dvb disable DVB support
+ --dvb-path=HDRLOC location of directory containing
+@@ -1315,6 +1316,7 @@ MYTHTV_CONFIG_LIST='
+ qtwebkit
+ quartz_video
+ v4l
++ v4l2
+ valgrind
+ x11
+ xrandr
+@@ -1706,8 +1708,8 @@ audio_oss_deps_any="soundcard_h sys_soundcard_h"
+ dvb_deps="backend"
+ firewire_deps="backend"
+ iptv_deps="backend"
+-ivtv_deps="backend v4l"
+-hdpvr_deps="backend v4l"
++ivtv_deps="backend v4l2"
++hdpvr_deps="backend v4l2"
+ hdhomerun_deps="backend"
+ mpegtsraw_demuxer_deps="merge_libavformat_mpegts_c"
+ mythtranscode_deps="backend frontend"
+@@ -1715,6 +1717,7 @@ opengl_deps_any="agl_h GL_gl_h darwin windows x11"
+ opengl_video_deps="opengl"
+ opengl_vsync_deps="opengl"
+ v4l_deps="backend linux_videodev_h linux_videodev2_h"
++v4l2_deps="backend linux_videodev2_h"
+ vdpau_deps="opengl vdpau_vdpau_h vdpau_vdpau_x11_h"
+ xrandr_deps="x11"
+ xv_deps="x11"
+@@ -1933,6 +1936,7 @@ enable opengl_vsync
+ enable opengl_video
+ enable quartz_video
+ enable v4l
++enable v4l2
+ enable x11
+ enable xrandr
+ enable xv
+@@ -3062,6 +3066,7 @@ EOF
+ fi
+ disable opengl_vsync
+ disable v4l
++ disable v4l2
+ disable x11
+ # Workaround compile errors from missing gmtime_r/localtime_r/uint def
+ CFLAGS=`echo $CFLAGS | sed 's/-D_POSIX_C_SOURCE=200112//'`
+@@ -3106,6 +3111,7 @@ EOF
+ fi
+ disable symver
+ disable v4l
++ disable v4l2
+ enable windows
+ disable x11
+ ###### Standard ffmpeg configure stuff follows:
+@@ -4375,6 +4381,7 @@ enabled stripping || strip="echo skipping strip"
+
+ if enabled backend; then
+ echo "Video4Linux sup. ${v4l-no}"
++ echo "Video4Linux2 sup. ${v4l2-no}"
+ echo "ivtv support ${ivtv-no}"
+ echo "HD-PVR support ${hdpvr-no}"
+ echo "FireWire support ${firewire-no}"
+diff --git a/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp b/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
+index 739634d..39e5956 100644
+--- a/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
++++ b/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
+@@ -42,9 +42,13 @@ extern "C" {
+ #include "libswscale/swscale.h"
+ }
+
++#if defined(USING_V4L) || defined(USING_V4L2)
+ #ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#endif
+
+ #include "go7007_myth.h"
+
+@@ -55,9 +59,9 @@ extern "C" {
+ extern "C" {
+ #include "vbitext/vbi.h"
+ }
+-#else // USING_V4l
++#else // USING_V4L || USING_V4L2
+ #define VT_WIDTH 0
+-#endif // USING_V4l
++#endif // USING_V4l || USING_V4L2
+
+ #define KEYFRAMEDIST 30
+
+@@ -1019,7 +1023,7 @@ bool NuppelVideoRecorder::Open(void)
+
+ void NuppelVideoRecorder::ProbeV4L2(void)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ usingv4l2 = true;
+
+ struct v4l2_capability vcap;
+@@ -1049,7 +1053,7 @@ void NuppelVideoRecorder::ProbeV4L2(void)
+ QString driver = (char *)vcap.driver;
+ if (driver == "go7007")
+ go7007 = true;
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+ }
+
+ void NuppelVideoRecorder::StartRecording(void)
+@@ -2460,7 +2464,7 @@ void NuppelVideoRecorder::doAudioThread(void)
+ audio_device->Close();
+ }
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ struct VBIData
+ {
+ NuppelVideoRecorder *nvr;
+@@ -2634,9 +2638,9 @@ void NuppelVideoRecorder::FormatTeletextSubtitles(struct VBIData *vbidata)
+ act_text_buffer = 0;
+ textbuffer[act]->freeToEncode = 1;
+ }
+-#else // USING_V4L
++#else // USING_V4L || USING_V4L2
+ void NuppelVideoRecorder::FormatTeletextSubtitles(struct VBIData *vbidata) {}
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ void NuppelVideoRecorder::FormatCC(struct cc *cc)
+ {
+@@ -2863,7 +2867,7 @@ void NuppelVideoRecorder::doVbiThread(void)
+ //VERBOSE(VB_RECORD, LOC + "vbi end");
+ }
+
+-#else // USING_V4L
++#else // USING_V4L
+ void NuppelVideoRecorder::doVbiThread(void) { }
+ #endif // USING_V4L
+
+diff --git a/mythtv/libs/libmythtv/analogsignalmonitor.cpp b/mythtv/libs/libmythtv/analogsignalmonitor.cpp
+index 2a4f4c5..fa5823a 100644
+--- a/mythtv/libs/libmythtv/analogsignalmonitor.cpp
++++ b/mythtv/libs/libmythtv/analogsignalmonitor.cpp
+@@ -6,7 +6,9 @@
+ #include <sys/ioctl.h>
+ #include <poll.h>
+
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
+
+ #include "mythverbose.h"
+ #include "analogsignalmonitor.h"
+@@ -151,6 +153,7 @@ void AnalogSignalMonitor::UpdateValues(void)
+ }
+ else
+ {
++#ifdef USING_V4L
+ struct video_tuner tuner;
+ bzero(&tuner, sizeof(tuner));
+
+@@ -163,6 +166,7 @@ void AnalogSignalMonitor::UpdateValues(void)
+ {
+ isLocked = tuner.signal;
+ }
++#endif
+ }
+
+ {
+diff --git a/mythtv/libs/libmythtv/cardutil.cpp b/mythtv/libs/libmythtv/cardutil.cpp
+index 8852682..494f48a 100644
+--- a/mythtv/libs/libmythtv/cardutil.cpp
++++ b/mythtv/libs/libmythtv/cardutil.cpp
+@@ -4,7 +4,7 @@
+
+ #include <algorithm>
+
+-#if defined(USING_V4L) || defined(USING_DVB)
++#if defined(USING_V4L) || defined(USING_V4L2) || defined(USING_DVB)
+ #include <sys/ioctl.h>
+ #endif
+
+@@ -28,6 +28,8 @@
+
+ #ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
+ #endif
+
+@@ -1455,15 +1457,15 @@ uint CardUtil::GetQuickTuning(uint cardid, const QString &input_name)
+ bool CardUtil::hasV4L2(int videofd)
+ {
+ (void) videofd;
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ struct v4l2_capability vcap;
+ bzero(&vcap, sizeof(vcap));
+
+ return ((ioctl(videofd, VIDIOC_QUERYCAP, &vcap) >= 0) &&
+ (vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE));
+-#else // if !USING_V4L
++#else // if !USING_V4L2
+ return false;
+-#endif // !USING_V4L
++#endif // !USING_V4L2
+ }
+
+ bool CardUtil::GetV4LInfo(
+@@ -1475,7 +1477,7 @@ bool CardUtil::GetV4LInfo(
+ if (videofd < 0)
+ return false;
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ // First try V4L2 query
+ struct v4l2_capability capability;
+ bzero(&capability, sizeof(struct v4l2_capability));
+@@ -1487,11 +1489,13 @@ bool CardUtil::GetV4LInfo(
+ }
+ else // Fallback to V4L1 query
+ {
++#ifdef USING_V4L
+ struct video_capability capability;
+ if (ioctl(videofd, VIDIOCGCAP, &capability) >= 0)
+ card = QString::fromAscii((const char*)capability.name);
++#endif //USING_V4L
+ }
+-#endif // !USING_V4L
++#endif // !USING_V4L || USING_V4L2
+
+ if (!driver.isEmpty())
+ driver.remove( QRegExp("\\[[0-9]\\]$") );
+@@ -1506,9 +1510,9 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok)
+ InputNames list;
+ ok = false;
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ bool usingv4l2 = hasV4L2(videofd);
+-
++#ifdef USING_V4L2
+ // V4L v2 query
+ struct v4l2_input vin;
+ bzero(&vin, sizeof(vin));
+@@ -1523,8 +1527,10 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok)
+ ok = true;
+ return list;
+ }
++#endif
+
+ // V4L v1 query
++#ifdef USING_V4L
+ struct video_capability vidcap;
+ bzero(&vidcap, sizeof(vidcap));
+ if (ioctl(videofd, VIDIOCGCAP, &vidcap) != 0)
+@@ -1552,15 +1558,15 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok)
+
+ list[i] = test.name;
+ }
+-
++#endif
+ // Create an input on single input cards that don't advertise input
+ if (!list.size())
+ list[0] = "Television";
+
+ ok = true;
+-#else // if !USING_V4L
++#else // if !USING_V4L || USING_V4L2
+ list[-1] += QObject::tr("ERROR, Compile with V4L support to query inputs");
+-#endif // !USING_V4L
++#endif // !USING_V4L || USING_V4L2
+ return list;
+ }
+
+diff --git a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
+index 832d0a8..e35b186 100644
+--- a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
++++ b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
+@@ -1394,7 +1394,7 @@ const DVBChannel *ChannelScanSM::GetDVBChannel(void) const
+
+ V4LChannel *ChannelScanSM::GetV4LChannel(void)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ return dynamic_cast<V4LChannel*>(channel);
+ #else
+ return NULL;
+diff --git a/mythtv/libs/libmythtv/channelscan/channelscanner.cpp b/mythtv/libs/libmythtv/channelscan/channelscanner.cpp
+index 1595d6a..4d2b2cf 100644
+--- a/mythtv/libs/libmythtv/channelscan/channelscanner.cpp
++++ b/mythtv/libs/libmythtv/channelscan/channelscanner.cpp
+@@ -342,7 +342,7 @@ void ChannelScanner::PreScanCommon(
+ channel = new DVBChannel(device);
+ #endif
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ if (("V4L" == card_type) || ("MPEG" == card_type))
+ channel = new V4LChannel(NULL, device);
+ #endif
+diff --git a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
+index 00fd9d3..70e3469 100644
+--- a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
++++ b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
+@@ -27,14 +27,14 @@ static QString card_types(void)
+ cardTypes += "'DVB'";
+ #endif // USING_DVB
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ if (!cardTypes.isEmpty())
+ cardTypes += ",";
+ cardTypes += "'V4L'";
+ # ifdef USING_IVTV
+ cardTypes += ",'MPEG'";
+ # endif // USING_IVTV
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_IPTV
+ if (!cardTypes.isEmpty())
+diff --git a/mythtv/libs/libmythtv/libmythtv.pro b/mythtv/libs/libmythtv/libmythtv.pro
+index 3d26e0a..ea06ee7 100644
+--- a/mythtv/libs/libmythtv/libmythtv.pro
++++ b/mythtv/libs/libmythtv/libmythtv.pro
+@@ -119,7 +119,7 @@ cygwin:DEFINES += _WIN32
+ using_valgrind:DEFINES += USING_VALGRIND
+
+ # old libvbitext (Caption decoder)
+-using_v4l {
++using_v4l || using_v4l2 {
+ HEADERS += vbitext/cc.h vbitext/dllist.h vbitext/hamm.h vbitext/lang.h
+ HEADERS += vbitext/vbi.h vbitext/vt.h
+ SOURCES += vbitext/cc.cpp vbitext/vbi.c vbitext/hamm.c vbitext/lang.c
+@@ -471,11 +471,17 @@ using_backend {
+ SOURCES += channelchangemonitor.cpp
+
+ # Support for Video4Linux devices
+- using_v4l {
++ using_v4l || using_v4l2 {
+ HEADERS += v4lchannel.h analogsignalmonitor.h
+ SOURCES += v4lchannel.cpp analogsignalmonitor.cpp
+
+- DEFINES += USING_V4L
++ using_v4l {
++ DEFINES += USING_V4L
++ }
++
++ using_v4l2 {
++ DEFINES += USING_V4L2
++ }
+ }
+
+ # Support for cable boxes that provide Firewire out
+diff --git a/mythtv/libs/libmythtv/signalmonitor.cpp b/mythtv/libs/libmythtv/signalmonitor.cpp
+index 221efef..c199b3b 100644
+--- a/mythtv/libs/libmythtv/signalmonitor.cpp
++++ b/mythtv/libs/libmythtv/signalmonitor.cpp
+@@ -23,7 +23,7 @@ extern "C" {
+ # include "dvbchannel.h"
+ #endif
+
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ # include "analogsignalmonitor.h"
+ # include "v4lchannel.h"
+ #endif
+@@ -95,7 +95,7 @@ SignalMonitor *SignalMonitor::Init(QString cardtype, int db_cardnum,
+ }
+ #endif
+
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ if ((cardtype.toUpper() == "HDPVR"))
+ {
+ V4LChannel *chan = dynamic_cast<V4LChannel*>(channel);
+diff --git a/mythtv/libs/libmythtv/tv_rec.cpp b/mythtv/libs/libmythtv/tv_rec.cpp
+index b885eaa..3d9c7ad 100644
+--- a/mythtv/libs/libmythtv/tv_rec.cpp
++++ b/mythtv/libs/libmythtv/tv_rec.cpp
+@@ -57,7 +57,7 @@ using namespace std;
+
+ #include "channelgroup.h"
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ #include "v4lchannel.h"
+ #endif
+
+@@ -206,7 +206,7 @@ bool TVRec::CreateChannel(const QString &startchannel)
+ }
+ else // "V4L" or "MPEG", ie, analog TV
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ channel = new V4LChannel(this, genOpt.videodev);
+ if (!channel->Open())
+ return false;
+@@ -1082,11 +1082,11 @@ bool TVRec::SetupRecorder(RecordingProfile &profile)
+ }
+ else
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ // V4L/MJPEG/GO7007 from here on
+ recorder = new NuppelVideoRecorder(this, channel);
+ recorder->SetOption("skipbtaudio", genOpt.skip_btaudio);
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+ }
+
+ if (recorder)
+@@ -1292,11 +1292,11 @@ FirewireChannel *TVRec::GetFirewireChannel(void)
+
+ V4LChannel *TVRec::GetV4LChannel(void)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ return dynamic_cast<V4LChannel*>(channel);
+ #else
+ return NULL;
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+ }
+
+ /** \fn TVRec::EventThread(void*)
+@@ -4137,7 +4137,7 @@ void TVRec::TuningNewRecorder(MPEGStreamData *streamData)
+ channel->GetCurrentName());
+ }
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ if (GetV4LChannel())
+ {
+ channel->InitPictureAttributes();
+diff --git a/mythtv/libs/libmythtv/v4lchannel.cpp b/mythtv/libs/libmythtv/v4lchannel.cpp
+index bc82b49..7aa47ef 100644
+--- a/mythtv/libs/libmythtv/v4lchannel.cpp
++++ b/mythtv/libs/libmythtv/v4lchannel.cpp
+@@ -16,8 +16,12 @@
+ #include <iostream>
+ using namespace std;
+
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#endif
+
+ // MythTV headers
+ #include "v4lchannel.h"
+@@ -150,8 +154,10 @@ static int format_to_mode(const QString &fmt, int v4l_version)
+ {
+ if (fmt == "NTSC-JP")
+ return 6;
++#ifdef USING_V4L
+ else if (fmt.left(5) == "SECAM")
+ return VIDEO_MODE_SECAM;
++#endif
+ else if (fmt == "PAL-NC")
+ return 3;
+ else if (fmt == "PAL-M")
+@@ -159,6 +165,7 @@ static int format_to_mode(const QString &fmt, int v4l_version)
+ else if (fmt == "PAL-N")
+ return 5;
+ // generics...
++#ifdef USING_V4L
+ else if (fmt.left(3) == "PAL")
+ return VIDEO_MODE_PAL;
+ else if (fmt.left(4) == "NTSC")
+@@ -166,6 +173,7 @@ static int format_to_mode(const QString &fmt, int v4l_version)
+ else if (fmt.left(4) == "ATSC")
+ return VIDEO_MODE_NTSC; // We've dropped V4L ATSC support...
+ return VIDEO_MODE_NTSC;
++#endif
+ }
+
+ VERBOSE(VB_IMPORTANT,
+@@ -237,6 +245,7 @@ static QString mode_to_format(int mode, int v4l_version)
+ }
+ else if (1 == v4l_version)
+ {
++#ifdef USING_V4L
+ if (mode == VIDEO_MODE_NTSC)
+ return "NTSC";
+ else if (mode == VIDEO_MODE_PAL)
+@@ -249,6 +258,7 @@ static QString mode_to_format(int mode, int v4l_version)
+ return "PAL-N";
+ else if (mode == 6)
+ return "NTSC-JP";
++#endif
+ }
+ else
+ {
+@@ -676,6 +686,7 @@ bool V4LChannel::Tune(uint frequency, QString inputname,
+ return true;
+ }
+
++#ifdef USING_V4L
+ // Video4Linux version 1 tuning
+ uint freq = frequency / 62500;
+ ioctlval = ioctl(videofd, VIDIOCSFREQ, &freq);
+@@ -687,6 +698,7 @@ bool V4LChannel::Tune(uint frequency, QString inputname,
+ .arg(device).arg(ioctlval).arg(strerror(errno)));
+ return false;
+ }
++#endif
+
+ SetSIStandard(si_std);
+
+@@ -858,6 +870,7 @@ bool V4LChannel::SetInputAndFormat(int inputNum, QString newFmt)
+
+ if (usingv4l1)
+ {
++#ifdef USING_V4L
+ VERBOSE(VB_CHANNEL, LOC + msg + "(v4l v1)");
+
+ // read in old settings
+@@ -875,8 +888,9 @@ bool V4LChannel::SetInputAndFormat(int inputNum, QString newFmt)
+ {
+ VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
+ "\n\t\t\twhile setting format (v4l v1)" + ENO);
+- }
+- else if (usingv4l2)
++ } else
++#endif
++ if (usingv4l2)
+ {
+ VERBOSE(VB_IMPORTANT, LOC + msg +
+ "\n\t\t\tSetting video mode with v4l version 1 worked");
+@@ -951,6 +965,7 @@ bool V4LChannel::SwitchToInput(int inputnum, bool setstarting)
+ return ok;
+ }
+
++#ifdef USING_V4L
+ static unsigned short *get_v4l1_field(
+ int v4l2_attrib, struct video_picture &vid_pic)
+ {
+@@ -970,6 +985,7 @@ static unsigned short *get_v4l1_field(
+ }
+ return NULL;
+ }
++#endif
+
+ static int get_v4l2_attribute(const QString &db_col_name)
+ {
+@@ -1067,6 +1083,7 @@ bool V4LChannel::InitPictureAttribute(const QString db_col_name)
+ }
+
+ // V4L1
++#ifdef USING_V4L
+ unsigned short *setfield;
+ struct video_picture vid_pic;
+ bzero(&vid_pic, sizeof(vid_pic));
+@@ -1087,7 +1104,7 @@ bool V4LChannel::InitPictureAttribute(const QString db_col_name)
+ VERBOSE(VB_IMPORTANT, loc_err + "failed to set controls." + ENO);
+ return false;
+ }
+-
++#endif
+ return true;
+ }
+
+@@ -1154,6 +1171,7 @@ static int get_v4l2_attribute_value(int videofd, int v4l2_attrib)
+
+ static int get_v4l1_attribute_value(int videofd, int v4l2_attrib)
+ {
++#ifdef USING_V4L
+ struct video_picture vid_pic;
+ bzero(&vid_pic, sizeof(vid_pic));
+
+@@ -1167,6 +1185,7 @@ static int get_v4l1_attribute_value(int videofd, int v4l2_attrib)
+ unsigned short *setfield = get_v4l1_field(v4l2_attrib, vid_pic);
+ if (setfield)
+ return *setfield;
++#endif
+
+ return -1;
+ }
+@@ -1210,6 +1229,7 @@ static int set_v4l2_attribute_value(int videofd, int v4l2_attrib, int newvalue)
+
+ static int set_v4l1_attribute_value(int videofd, int v4l2_attrib, int newvalue)
+ {
++#ifdef USING_V4L
+ unsigned short *setfield;
+ struct video_picture vid_pic;
+ bzero(&vid_pic, sizeof(vid_pic));
+@@ -1236,7 +1256,7 @@ static int set_v4l1_attribute_value(int videofd, int v4l2_attrib, int newvalue)
+ // ???
+ return -1;
+ }
+-
++#endif
+ return 0;
+ }
+
+diff --git a/mythtv/libs/libmythtv/v4lchannel.h b/mythtv/libs/libmythtv/v4lchannel.h
+index b059c64..aa6d934 100644
+--- a/mythtv/libs/libmythtv/v4lchannel.h
++++ b/mythtv/libs/libmythtv/v4lchannel.h
+@@ -4,11 +4,11 @@
+ #define CHANNEL_H
+
+ #include "dtvchannel.h"
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ #include <linux/videodev2.h> // needed for v4l2_std_id type
+ #else
+ typedef uint64_t v4l2_std_id;
+-#endif //USING_V4L
++#endif //USING_V4L2
+
+ using namespace std;
+
+diff --git a/mythtv/libs/libmythtv/vbitext/vbi.c b/mythtv/libs/libmythtv/vbitext/vbi.c
+index 15f8d85..4c50e8d 100644
+--- a/mythtv/libs/libmythtv/vbitext/vbi.c
++++ b/mythtv/libs/libmythtv/vbitext/vbi.c
+@@ -14,8 +14,12 @@
+ // compiling with -std=c99. We could remove this in the .pro file,
+ // but that would disable it for all .c files.
+ #undef __STRICT_ANSI__
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#endif
+
+ // vbitext headers
+ #include "vt.h"
+@@ -29,8 +33,13 @@ static int rawbuf_size; // its current size
+
+
+ /***** bttv api *****/
++#ifdef USING_V4L
+ #define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int)
+-
++#else // !USING_V4L
++#ifdef USING_V4L2
++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOC_PRIVATE+8, int)
++#endif // USING_V4L2
++#endif // !USING_V4L
+
+ static void
+ error(const char *str, ...)
+diff --git a/mythtv/libs/libmythtv/videosource.cpp b/mythtv/libs/libmythtv/videosource.cpp
+index 5d7a508..635faeb 100644
+--- a/mythtv/libs/libmythtv/videosource.cpp
++++ b/mythtv/libs/libmythtv/videosource.cpp
+@@ -45,7 +45,7 @@ using namespace std;
+ #include "dvbtypes.h"
+ #endif
+
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
+ #endif
+
+@@ -2012,7 +2012,7 @@ CaptureCardGroup::CaptureCardGroup(CaptureCard &parent) :
+ setTrigger(cardtype);
+ setSaveAll(false);
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ addTarget("V4L", new V4LConfigurationGroup(parent));
+ # ifdef USING_IVTV
+ addTarget("MPEG", new MPEGConfigurationGroup(parent));
+@@ -2020,7 +2020,7 @@ CaptureCardGroup::CaptureCardGroup(CaptureCard &parent) :
+ # ifdef USING_HDPVR
+ addTarget("HDPVR", new HDPVRConfigurationGroup(parent));
+ # endif // USING_HDPVR
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_DVB
+ addTarget("DVB", new DVBConfigurationGroup(parent));
+@@ -2201,7 +2201,7 @@ CardType::CardType(const CaptureCard &parent) :
+
+ void CardType::fillSelections(SelectSetting* setting)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ setting->addSelection(
+ QObject::tr("Analog V4L capture card"), "V4L");
+ setting->addSelection(
+@@ -2214,7 +2214,7 @@ void CardType::fillSelections(SelectSetting* setting)
+ setting->addSelection(
+ QObject::tr("H.264 encoder card (HD-PVR)"), "HDPVR");
+ # endif // USING_HDPVR
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_DVB
+ setting->addSelection(
+@@ -2226,11 +2226,11 @@ void CardType::fillSelections(SelectSetting* setting)
+ QObject::tr("FireWire cable box"), "FIREWIRE");
+ #endif // USING_FIREWIRE
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ setting->addSelection(
+ QObject::tr("USB MPEG-4 encoder box (Plextor ConvertX, etc)"),
+ "GO7007");
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_HDHOMERUN
+ setting->addSelection(
diff --git a/community/mythtv/mythtv.install b/community/mythtv/mythtv.install
new file mode 100644
index 000000000..c29a53454
--- /dev/null
+++ b/community/mythtv/mythtv.install
@@ -0,0 +1,11 @@
+post_install() {
+ echo "See \"MythTV\" on the Archlinux Wiki for installation information - Extensive!!"
+}
+
+post_upgrade() {
+ return
+}
+
+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..68a832741
--- /dev/null
+++ b/community/naev/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 48678 2011-06-04 13:28:51Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Johan Rehnberg <cleanrock@gmail.com>
+
+pkgname=naev
+pkgver=0.5.0
+pkgrel=1
+pkgdesc='2D action/rpg space game'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/naev/"
+license=('GPL3')
+depends=('openal' 'libvorbis' 'sdl_image' 'sdl_mixer' 'libgl' 'libxml2' 'freetype2' 'libpng' 'naev-data')
+makedepends=('freeglut')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('f7d754a17ace87aac540d0d6d48313d6')
+
+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
+}
diff --git a/community/namazu/PKGBUILD b/community/namazu/PKGBUILD
new file mode 100644
index 000000000..2ac8903a7
--- /dev/null
+++ b/community/namazu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 56480 2011-10-07 10:10:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Benjamin Andresen <bandresen gmail com>
+
+pkgname=namazu
+pkgver=2.0.21
+pkgrel=1
+pkgdesc="Namazu is a full-text search engine intended for easy use."
+url="http://namazu.org/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(perl-file-mmagic)
+options=(!libtool)
+source=(http://namazu.org/stable/$pkgname-$pkgver.tar.gz)
+md5sums=('8865d912a3de9c94f5ce01d0de5ccad9')
+
+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
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/nas/PKGBUILD b/community/nas/PKGBUILD
new file mode 100644
index 000000000..6f5d3ce60
--- /dev/null
+++ b/community/nas/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 53530 2011-08-05 06:06:18Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=nas
+pkgver=1.9.3
+pkgrel=1
+pkgdesc='Network Audio System is a network transparent, client/server audio transport system'
+arch=('i686' 'x86_64' 'mips64el')
+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=('ecd01a3b4e17a9d464efa83a03618025'
+ '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..47dca2027
--- /dev/null
+++ b/community/nautilus-actions/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 60313 2011-12-10 09:56:53Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=nautilus-actions
+pkgver=3.1.5
+pkgrel=1
+pkgdesc="Configures programs to be launched when files are selected in Nautilus"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gnome.org"
+license=('GPL')
+depends=('nautilus' 'libunique3' 'libgtop' 'gconf' 'libsm')
+makedepends=('intltool' 'gnome-doc-utils')
+install=nautilus-actions.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/nautilus-actions/3.1/$pkgname-$pkgver.tar.xz)
+sha256sums=('dc6b7522d04e1ed1505d6cb2e3be7888ffbac3f094ba6204da81a19c92cb230a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/nautilus-actions
+ 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..467c68e3b
--- /dev/null
+++ b/community/nbd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 51422 2011-07-08 22:24:07Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Christian Hesse <mail@eworm.de>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gerhard Brauer <gerbra@archlinux.de>
+
+pkgname=nbd
+pkgver=2.9.23
+pkgrel=1
+pkgdesc="Tools for network block devices, allowing you to use remote block devices over TCP/IP."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://nbd.sourceforge.net"
+license=('GPL')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+ config nbd)
+backup=('etc/nbd-server/config')
+depends=('glib2')
+install=nbd.install
+md5sums=('065b6ded41887a08be6dbb8d77280f24'
+ '075be420c3d7d7fc9408def3cb8c470d'
+ 'e7b13a8b3369e11927d9917664557efa')
+
+build(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}"/config "${pkgdir}"/etc/nbd-server/config
+ install -D -m755 "${srcdir}"/nbd "${pkgdir}"/etc/rc.d/nbd
+
+ install -D -m644 README "${pkgdir}"/usr/share/doc/nbd/README
+}
diff --git a/community/nbd/config b/community/nbd/config
new file mode 100644
index 000000000..f90c36b23
--- /dev/null
+++ b/community/nbd/config
@@ -0,0 +1,24 @@
+# This is a comment
+[generic]
+ # The [generic] section is required, even if nothing is specified
+ # there.
+ # When either of these options are specified, nbd-server drops
+ # privileges to the given user and group after opening ports, but
+ # _before_ opening files.
+ user = nbd
+ group = nbd
+[export1]
+ exportname = /export/nbd/export1-file
+ port = 12345
+ authfile = /export/nbd/export1-authfile
+ timeout = 30
+ filesize = 10000000
+ readonly = false
+ multifile = false
+ copyonwrite = false
+ prerun = dd if=/dev/zero of=%s bs=1k count=500
+ postrun = rm -f %s
+[otherexport]
+ exportname = /export/nbd/experiment
+ port = 12346
+ # The other options are all optional.
diff --git a/community/nbd/nbd b/community/nbd/nbd
new file mode 100644
index 000000000..76d16c779
--- /dev/null
+++ b/community/nbd/nbd
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PIDFILE="/var/run/nbd-server.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
+ 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.install b/community/nbd/nbd.install
new file mode 100644
index 000000000..9e7a01e98
--- /dev/null
+++ b/community/nbd/nbd.install
@@ -0,0 +1,13 @@
+post_install() {
+ getent group "nbd" &>/dev/null || groupadd -r -g 44 nbd 1>/dev/null
+ getent passwd "nbd" &>/dev/null || useradd -r -u 44 -g nbd -d "/var/empty" -s "/bin/false" nbd 1>/dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ getent passwd "nbd" &>/dev/null && userdel nbd 1>/dev/null
+ getent group "nbd" &>/dev/null && groupdel nbd 1>/dev/null
+}
diff --git a/community/nbtscan/PKGBUILD b/community/nbtscan/PKGBUILD
new file mode 100755
index 000000000..22d82c402
--- /dev/null
+++ b/community/nbtscan/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59205 2011-11-21 15:02:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'mips64el')
+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
+ nbtscan.1.gz)
+md5sums=('85bb085077c380b82a6ff73e0de0c154'
+ 'c9b7f61d2be12af5edc120142341c5f7')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}a
+ ./configure --prefix=/usr
+ make
+
+ # Copy the binary
+ mkdir -p $pkgdir/usr/bin
+ cp nbtscan $pkgdir/usr/bin
+
+ cd $srcdir
+ # 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..24876e435
--- /dev/null
+++ b/community/ncdu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59391 2011-11-24 07:32:15Z bisson $
+
+# Contributor: lp76 <l.peduto@gmail.com>
+# Contributor: Daenyth <Daenyth+Arch AT gmail DOT com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=ncdu
+pkgver=1.8
+pkgrel=1
+pkgdesc='Disk usage analyzer with an ncurses interface'
+url='http://dev.yorhel.nl/ncdu/'
+license=('custom:MIT')
+depends=('ncurses')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://dev.yorhel.nl/download/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('3d98e78cf7035e32333d263d301d12e9b4352598')
+
+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/ncmpcpp/PKGBUILD b/community/ncmpcpp/PKGBUILD
new file mode 100644
index 000000000..e900a2bbc
--- /dev/null
+++ b/community/ncmpcpp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56902 2011-10-16 07:46:55Z bpiotrowski $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Army <uli[dot]armbruster[at]gmail[dot]com>
+
+pkgname=ncmpcpp
+pkgver=0.5.8
+pkgrel=1
+pkgdesc="An almost exact clone of ncmpc with some new features."
+arch=('i686' 'x86_64' 'mips64el')
+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=('288952c6b4cf4fa3683f3f83a58da37c')
+
+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/ndisc6/PKGBUILD b/community/ndisc6/PKGBUILD
new file mode 100644
index 000000000..c44d42ffd
--- /dev/null
+++ b/community/ndisc6/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57422 2011-10-27 13:12:24Z cbrannon $
+# Maintainer: Chris Brannon <chris@the-brannons.com>
+# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
+pkgname=ndisc6
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="A collection of IPv6 networking utilities - ndisc6, rdisc6, tcptraceroute6, tracert6, rltraceroute6, tcpspray6"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.remlab.net/ndisc6/"
+license=("GPL")
+depends=('glibc')
+makedepends=('glibc' 'gcc')
+source=(http://www.remlab.net/files/ndisc6/$pkgname-$pkgver.tar.bz2
+ rdnssd.rc.d
+ rdnssd.confd)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --localstatedir=/var --sysconfdir=/etc --prefix=/usr
+ make
+
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -Dm755 "$srcdir/rdnssd.rc.d" "$pkgdir/etc/rc.d/rdnssd"
+ install -Dm644 "$srcdir/rdnssd.confd" "$pkgdir/etc/conf.d/rdnssd"
+
+}
+
+md5sums=('50cb4c19606cf6ff2b7388e71832f579'
+ '3421fd731c4da4f9e07fc6b6ff4e5084'
+ 'f1910902932e2622fc166960819db6c4')
diff --git a/community/ndisc6/rdnssd.confd b/community/ndisc6/rdnssd.confd
new file mode 100644
index 000000000..306c3d7f6
--- /dev/null
+++ b/community/ndisc6/rdnssd.confd
@@ -0,0 +1,8 @@
+
+# This default merge hook adds IPv6 DNS resolvers
+# before the existing IPv4 ones in /etc/resolv.conf.
+MERGEHOOK="/etc/rdnssd/merge-hook"
+
+# User who runs rdnssd.
+RUN_AS="nobody"
+
diff --git a/community/ndisc6/rdnssd.rc.d b/community/ndisc6/rdnssd.rc.d
new file mode 100644
index 000000000..3c0a6a53c
--- /dev/null
+++ b/community/ndisc6/rdnssd.rc.d
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/rdnssd
+
+PIDFILE="/var/run/rdnssd.pid"
+PID=`cat "$PIDFILE" 2>/dev/null`
+case "$1" in
+ start)
+ stat_busy "Starting RDNSS Daemon"
+ if [ ! -z "$PID" -a -e "/proc/$PID" ]; then
+ stat_append "-- Already running"
+ stat_die
+ else
+ /usr/sbin/rdnssd -p "$PIDFILE" \
+ ${MERGEHOOK/*/-H} "$MERGEHOOK" \
+ ${RUN_AS/*/-u} "$RUN_AS"
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon rdnssd
+ stat_done
+ fi
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping RDNSS Daemon"
+ if [ -z "$PID" ]; then
+ stat_append "-- Not running"
+ stat_die
+ else
+ kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon sshd
+ stat_done
+ fi
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/neatx/PKGBUILD b/community/neatx/PKGBUILD
new file mode 100644
index 000000000..a73e406fb
--- /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' 'mips64el')
+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..a8a20da2a
--- /dev/null
+++ b/community/nemesis/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 44947 2011-04-13 08:59:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=nemesis
+pkgver=1.4
+pkgrel=4
+pkgdesc="command-line network packet crafting and injection utility"
+arch=(i686 x86_64 'mips64el')
+url="http://nemesis.sourceforge.net/"
+license=('BSD')
+depends=()
+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 $srcdir/Libnet-1.0.2a
+ # very dirty hack
+ sed -i 's#malloc(p_size)#malloc(p_size*2)#' src/libnet_packet_mem.c
+ [ -f Makefile ] || ./configure --prefix=$srcdir/libnet
+ make
+ make MAN_PREFIX=$srcdir/libnet/usr/man/man3 install
+
+ # build nemesis
+ cd $srcdir/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
+ [ -f Makefile ] || ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-libnet-includes=$srcdir/libnet/include \
+ --with-libnet-libraries=$srcdir/libnet/lib
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m0644 LICENSE $pkgdir/usr/share/licenses/nemesis/LICENSE
+}
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/nemiver/PKGBUILD b/community/nemiver/PKGBUILD
new file mode 100644
index 000000000..6622ff29c
--- /dev/null
+++ b/community/nemiver/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 59670 2011-11-29 09:31:30Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: jordz <jordz@archlinux.us>
+pkgname=nemiver
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="C/C++ debugger for GNOME"
+arch=('x86_64' 'i686')
+license=('GPL')
+url="http://www.gnome.org/projects/nemiver/"
+depends=('gdb' 'gtksourceviewmm' 'libgtop' 'vte3' 'ghex' 'gconf' 'dconf')
+makedepends=('boost' 'intltool' 'gnome-doc-utils')
+install=nemiver.install
+source=("http://ftp.acc.umu.se/pub/GNOME/sources/$pkgname/0.9/$pkgname-$pkgver.tar.xz")
+options=('!libtool' '!emptydirs')
+md5sums=('9c0275e7a2d9f9fb48f279387969281b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-boost --disable-scrollkeeper \
+ --enable-symsvis=yes --enable-gio=yes \
+ --enable-memoryview=yes
+ 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 nemiver "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/nemiver/nemiver.install b/community/nemiver/nemiver.install
new file mode 100644
index 000000000..a14d235b9
--- /dev/null
+++ b/community/nemiver/nemiver.install
@@ -0,0 +1,21 @@
+pkgname=nemiver
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t 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/community/net6/PKGBUILD b/community/net6/PKGBUILD
new file mode 100644
index 000000000..31aa03d18
--- /dev/null
+++ b/community/net6/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59157 2011-11-21 12:41:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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=2
+pkgdesc="A library that provides a TCP protocol abstraction for C++"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gobby.0x539.de/"
+license=('LGPL')
+depends=('gnutls' 'libsigc++2.0')
+options=('!libtool')
+source=(http://releases.0x539.de/$pkgname/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('506776416d8aea2b9ea13a81f9145383'
+ 'a200e6f132839782e3e5cfdf438e79d3')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/net6/build-fix.patch b/community/net6/build-fix.patch
new file mode 100644
index 000000000..cfe79afeb
--- /dev/null
+++ b/community/net6/build-fix.patch
@@ -0,0 +1,33 @@
+diff -wbBur net6-1.3.12/inc/encrypt.hpp net6-1.3.12.my/inc/encrypt.hpp
+--- net6-1.3.12/inc/encrypt.hpp 2009-11-15 16:02:46.000000000 +0300
++++ net6-1.3.12.my/inc/encrypt.hpp 2011-11-21 16:39:32.000000000 +0400
+@@ -34,7 +34,7 @@
+ typedef gnutls_anon_server_credentials gnutls_anon_server_credentials_t;
+ typedef gnutls_transport_ptr gnutls_transport_ptr_t;
+ typedef gnutls_dh_params gnutls_dh_params_t;
+-typedef gnutls_connection_end gnutls_connection_end_t;
++//typedef gnutls_connection_end gnutls_connection_end_t;
+
+ class dh_params: private net6::non_copyable
+ {
+diff -wbBur net6-1.3.12/src/encrypt.cpp net6-1.3.12.my/src/encrypt.cpp
+--- net6-1.3.12/src/encrypt.cpp 2009-11-15 16:02:46.000000000 +0300
++++ net6-1.3.12.my/src/encrypt.cpp 2011-11-21 16:39:49.000000000 +0400
+@@ -25,7 +25,7 @@
+ {
+ const unsigned int DH_BITS = 1024;
+
+- net6::gnutls_session_t create_session(net6::gnutls_connection_end_t end)
++ net6::gnutls_session_t create_session(gnutls_connection_end_t end)
+ {
+ net6::gnutls_session_t session;
+ gnutls_init(&session, end);
+@@ -201,8 +201,6 @@
+ net6_unix_send_func
+ );
+ #endif
+-
+- gnutls_transport_set_lowat(session, 0);
+ }
+
+ net6::tcp_encrypted_socket_base::~tcp_encrypted_socket_base()
diff --git a/community/netbrake/PKGBUILD b/community/netbrake/PKGBUILD
new file mode 100644
index 000000000..0201d3ecc
--- /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 'mips64el')
+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/netcf/PKGBUILD b/community/netcf/PKGBUILD
new file mode 100644
index 000000000..cfc7411aa
--- /dev/null
+++ b/community/netcf/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60351 2011-12-11 20:20:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Aurélien Wailly <aurelien.wailly@gmail.com>
+
+pkgname=netcf
+pkgver=0.1.7
+pkgrel=2
+pkgdesc="A library for configuring network interfaces"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="https://fedorahosted.org/netcf/"
+depends=('augeas>=0.7.4' 'netcfg' 'libxslt' 'libxml2' 'libnl')
+makedepends=('gcc')
+options=(!libtool)
+source=("https://fedorahosted.org/released/netcf/$pkgname-$pkgver.tar.gz"
+ netcf-0.1.7.patch)
+md5sums=('8e313b623c907eb035cf3948b71fecc2'
+ '0e88ee6813219e9e75a943444fe439f5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/netcf-0.1.7.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/netcf/netcf-0.1.7.patch b/community/netcf/netcf-0.1.7.patch
new file mode 100644
index 000000000..d4a4d31b7
--- /dev/null
+++ b/community/netcf/netcf-0.1.7.patch
@@ -0,0 +1,426 @@
+diff -ur netcf-0.1.7.ori//data/xml/initscripts-get.xsl netcf-0.1.7/data/xml/initscripts-get.xsl
+--- netcf-0.1.7.ori//data/xml/initscripts-get.xsl 2009-10-04 08:18:41.000000000 +0200
++++ netcf-0.1.7/data/xml/initscripts-get.xsl 2010-12-08 14:54:28.891813397 +0100
+@@ -47,9 +47,12 @@
+ <xsl:template name="vlan-interface-common">
+ <xsl:variable name="iface" select="concat(vlan/interface/@name, '.', vlan/@tag)"/>
+
+- <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute>
+- <node label="DEVICE" value="{$iface}"/>
+- <node label="VLAN" value="yes"/>
++ <xsl:attribute name="path">/files/etc/network.d/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute>
++ <node label="INTERFACE" value="{$iface}"/>
++ <node label="PHYS_INTERFACE" value="{vlan/interface/@name}"/>
++ <node label="VLAN" value="{vlan/@tag}"/>
++ <node label="CONNECTION" value="ethernet-iproute-vlan"/>
++ <node label="FLAG" value="false"/>
+ </xsl:template>
+
+ <xsl:template name='bare-vlan-interface'>
+@@ -68,6 +71,7 @@
+ <xsl:call-template name="startmode"/>
+ <xsl:call-template name="mtu"/>
+ <node label="TYPE" value="Bridge"/>
++ <node label="CONNECTION" value="bridge"/>
+ <xsl:call-template name="interface-addressing"/>
+ <xsl:if test="bridge/@stp">
+ <node label="STP" value="{bridge/@stp}"/>
+@@ -75,7 +79,11 @@
+ <xsl:if test="bridge/@delay">
+ <node label="DELAY" value="{bridge/@delay}"/>
+ </xsl:if>
++ <node label="DHCP_TIMEOUT" value="0"/>
++ <!--
++ We don't have to define interfaces separately
+ </tree>
++
+ <xsl:for-each select='bridge/interface'>
+ <tree>
+ <xsl:if test="@type = 'ethernet'">
+@@ -87,12 +95,29 @@
+ <xsl:if test="@type = 'bond'">
+ <xsl:call-template name="bare-bond-interface"/>
+ </xsl:if>
++
++ BRIDGE_INTERFACES= is defined with all interfaces
+ <node label="BRIDGE" value="{../../@name}"/>
++
++ <xsl:variable name="bridgeifaces" select="concat($bridgeifaces, '.', @name)"/>
+ </tree>
+ <xsl:if test="@type = 'bond'">
+ <xsl:call-template name="bond-slaves"/>
+ </xsl:if>
+ </xsl:for-each>
++ -->
++ <!-- <xsl:if test="count(ip) > 1"> -->
++ <node label="BRIDGE_INTERFACES">
++ <xsl:attribute name="value">
++ <xsl:text></xsl:text>
++ <xsl:for-each select="bridge/interface">
++ <xsl:value-of select="@name"/><xsl:value-of select="string(' ')"/>
++ </xsl:for-each>
++ <xsl:text></xsl:text>
++ </xsl:attribute>
++ </node>
++ <!-- </xsl:if> -->
++ </tree>
+ </xsl:template>
+
+ <!--
+@@ -138,8 +163,8 @@
+ Named templates, following the Relax NG syntax
+ -->
+ <xsl:template name="name-attr">
+- <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="@name"/></xsl:attribute>
+- <node label="DEVICE" value="{@name}"/>
++ <xsl:attribute name="path">/files/etc/network.d/ifcfg-<xsl:value-of select="@name"/></xsl:attribute>
++ <node label="INTERFACE" value="{@name}"/>
+ </xsl:template>
+
+ <xsl:template name="mtu">
+@@ -153,6 +178,7 @@
+ <xsl:if test="mac">
+ <node label="HWADDR" value="{mac/@address}"/>
+ </xsl:if>
++ <node label="CONNECTION" value="{@type}"/>
+ <xsl:call-template name="startmode"/>
+ <xsl:call-template name="mtu"/>
+ </xsl:template>
+@@ -184,14 +210,14 @@
+ <xsl:template name="protocol-ipv4">
+ <xsl:choose>
+ <xsl:when test="dhcp">
+- <node label="BOOTPROTO" value="dhcp"/>
++ <node label="IP" value="dhcp"/>
+ <xsl:if test="dhcp/@peerdns">
+ <node label="PEERDNS" value="{dhcp/@peerdns}"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="ip">
+- <node label="BOOTPROTO" value="none"/>
+- <node label="IPADDR" value="{ip/@address}"/>
++ <node label="IP" value="static"/>
++ <node label="ADDR" value="{ip/@address}"/>
+ <xsl:if test="ip/@prefix">
+ <node label="NETMASK" value="{ipcalc:netmask(ip/@prefix)}"/>
+ </xsl:if>
+diff -ur netcf-0.1.7.ori//data/xml/initscripts-put.xsl netcf-0.1.7/data/xml/initscripts-put.xsl
+--- netcf-0.1.7.ori//data/xml/initscripts-put.xsl 2009-10-04 08:18:41.000000000 +0200
++++ netcf-0.1.7/data/xml/initscripts-put.xsl 2010-11-26 10:44:46.133757628 +0100
+@@ -47,7 +47,7 @@
+ </xsl:template>
+
+ <xsl:template name="bare-vlan-interface">
+- <xsl:variable name="name" select="node[@label = 'DEVICE']/@value"/>
++ <xsl:variable name="name" select="node[@label = 'INTERFACE']/@value"/>
+ <interface type="vlan">
+ <xsl:call-template name="name-attr"/>
+ <xsl:call-template name="vlan-device"/>
+@@ -55,7 +55,7 @@
+ </xsl:template>
+
+ <xsl:template name="vlan-device">
+- <xsl:variable name="name" select="node[@label = 'DEVICE']/@value"/>
++ <xsl:variable name="name" select="node[@label = 'INTERFACE']/@value"/>
+ <xsl:variable name="device" select="substring-before($name, '.')"/>
+ <xsl:variable name="tag" select="substring-after($name, '.')"/>
+ <vlan tag="{$tag}">
+@@ -70,7 +70,7 @@
+ match="tree[node[@label = 'TYPE' and @value = 'Bridge']]">
+ <interface type="bridge">
+ <!-- the bridge node itself -->
+- <xsl:variable name="iface" select="node[@label= 'DEVICE']/@value"/>
++ <xsl:variable name="iface" select="node[@label= 'INTERFACE']/@value"/>
+ <xsl:call-template name="name-attr"/>
+ <xsl:call-template name="startmode"/>
+ <xsl:call-template name="mtu"/>
+@@ -101,17 +101,17 @@
+ Bond
+ -->
+ <xsl:template name="bond-element">
+- <xsl:variable name="iface" select="node[@label= 'DEVICE']/@value"/>
++ <xsl:variable name="iface" select="node[@label= 'INTERFACE']/@value"/>
+ <bond>
+ <xsl:variable name="opts" select="node[@label = 'BONDING_OPTS']/@value"/>
+ <xsl:call-template name="bonding-opts">
+ <xsl:with-param name="opts" select="$opts"/>
+ </xsl:call-template>
+ <xsl:variable name="primary" select="bond:option($opts, 'primary')"/>
+- <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'DEVICE' and @value = $primary]]">
++ <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'INTERFACE' and @value = $primary]]">
+ <xsl:call-template name='bare-ethernet-interface'/>
+ </xsl:for-each>
+- <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'DEVICE' and @value != $primary]]">
++ <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'INTERFACE' and @value != $primary]]">
+ <xsl:call-template name='bare-ethernet-interface'/>
+ </xsl:for-each>
+ </bond>
+@@ -125,7 +125,7 @@
+ </xsl:template>
+
+ <xsl:template name="bond-interface"
+- match="tree[node[@label = 'DEVICE'][@value = //tree/node[@label = 'MASTER']/@value]][count(node[@label = 'BRIDGE']) = 0]">
++ match="tree[node[@label = 'INTERFACE'][@value = //tree/node[@label = 'MASTER']/@value]][count(node[@label = 'BRIDGE']) = 0]">
+ <interface type="bond">
+ <xsl:call-template name="name-attr"/>
+ <xsl:call-template name="startmode"/>
+@@ -154,7 +154,7 @@
+
+ <xsl:template name="name-attr">
+ <xsl:attribute name="name">
+- <xsl:value-of select="node[@label= 'DEVICE']/@value"/>
++ <xsl:value-of select="node[@label= 'INTERFACE']/@value"/>
+ </xsl:attribute>
+ </xsl:template>
+
+@@ -173,7 +173,7 @@
+ <xsl:variable name="uses_dhcp"
+ select="node[@label = 'BOOTPROTO']/@value = 'dhcp'"/>
+ <xsl:variable name="uses_static"
+- select="count(node[@label = 'IPADDR']) > 0"/>
++ select="count(node[@label = 'ADDR']) > 0"/>
+ <xsl:variable name="uses_ipv4" select="$uses_dhcp or $uses_static"/>
+ <xsl:if test="$uses_ipv4">
+ <protocol family="ipv4">
+@@ -186,7 +186,7 @@
+ </dhcp>
+ </xsl:when>
+ <xsl:when test="$uses_static">
+- <ip address="{node[@label = 'IPADDR']/@value}">
++ <ip address="{node[@label = 'ADDR']/@value}">
+ <xsl:choose>
+ <xsl:when test="node[@label = 'PREFIX']">
+ <xsl:attribute name="prefix"><xsl:value-of select="node[@label = 'PREFIX']/@value"/></xsl:attribute>
+diff -ur netcf-0.1.7.ori//src/drv_initscripts.c netcf-0.1.7/src/drv_initscripts.c
+--- netcf-0.1.7.ori//src/drv_initscripts.c 2010-09-23 14:13:13.000000000 +0200
++++ netcf-0.1.7/src/drv_initscripts.c 2010-12-08 13:57:02.027361706 +0100
+@@ -49,17 +49,20 @@
+ #include <libexslt/exslt.h>
+
+ static const char *const network_scripts_path =
+- "/files/etc/sysconfig/network-scripts";
++ //"/files/etc/sysconfig/network-scripts";
++ "/files/etc/network.d/*";
+
+ static const char *const ifcfg_path =
+- "/files/etc/sysconfig/network-scripts/*";
++ //"/files/etc/sysconfig/network-scripts/*";
++ "/files/etc/network.d/*";
+
+ /* Augeas should only load the files we are interested in */
+ static const struct augeas_pv augeas_xfm_common_pv[] = {
+ /* Ifcfg files */
+ { "/augeas/load/Ifcfg/lens", "Sysconfig.lns" },
+ { "/augeas/load/Ifcfg/incl",
+- "/etc/sysconfig/network-scripts/ifcfg-*" },
++ "/etc/network.d/ifcfg-*" },
++ //"/etc/sysconfig/network-scripts/ifcfg-*" },
+ { "/augeas/load/Ifcfg/excl[1]", "*~" },
+ { "/augeas/load/Ifcfg/excl[2]", "*.bak" },
+ { "/augeas/load/Ifcfg/excl[3]", "*.orig" },
+@@ -107,10 +110,10 @@
+ int nmatches;
+
+ nmatches = aug_fmt_match(ncf, NULL,
+- "%s[ DEVICE = '%s'"
++ "%s[ INTERFACE = '%s'"
+ " or BRIDGE = '%s'"
+ " or MASTER = '%s'"
+- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]/DEVICE",
++ " or MASTER = ../*[BRIDGE = '%s']/INTERFACE ]/INTERFACE",
+ ifcfg_path, name, name, name, name);
+ return nmatches > 0;
+ }
+@@ -173,7 +176,7 @@
+ aug = get_augeas(ncf);
+ ERR_BAIL(ncf);
+
+- ndevs = aug_fmt_match(ncf, &devs, "%s[DEVICE = '%s']",
++ ndevs = aug_fmt_match(ncf, &devs, "%s[INTERFACE = '%s']",
+ ifcfg_path, name);
+ ERR_COND_BAIL(ndevs < 0, ncf, EOTHER);
+
+@@ -296,7 +299,8 @@
+ int result = 0, ndevs;
+ char **devs = NULL;
+
+- ndevs = aug_fmt_match(ncf, &devs, "%s/DEVICE", ifcfg_path);
++ ndevs = aug_fmt_match(ncf, &devs, "%s/INTERFACE", ifcfg_path);
++ printf("%i\n", ndevs);
+ ERR_COND_BAIL(ndevs < 0, ncf, EOTHER);
+
+ result = uniq_ifcfg_paths(ncf, ndevs, devs, intf);
+@@ -453,11 +457,11 @@
+
+ int drv_list_interfaces(struct netcf *ncf, int maxnames, char **names,
+ unsigned int flags) {
+- return list_interface_ids(ncf, maxnames, names, flags, "DEVICE");
++ return list_interface_ids(ncf, maxnames, names, flags, "INTERFACE");
+ }
+
+ int drv_num_of_interfaces(struct netcf *ncf, unsigned int flags) {
+- return list_interface_ids(ncf, 0, NULL, flags, "DEVICE");
++ return list_interface_ids(ncf, 0, NULL, flags, "INTERFACE");
+ }
+
+ struct netcf_if *drv_lookup_by_name(struct netcf *ncf, const char *name) {
+@@ -599,8 +603,8 @@
+
+ ncf = nif->ncf;
+ ndevs = aug_fmt_match(ncf, &devs,
+- "%s[ DEVICE = '%s' or BRIDGE = '%s' or MASTER = '%s'"
+- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]/DEVICE",
++ "%s[ INTERFACE = '%s' or BRIDGE = '%s' or MASTER = '%s'"
++ " or MASTER = ../*[BRIDGE = '%s']/INTERFACE ]/INTERFACE",
+ ifcfg_path, nif->name, nif->name, nif->name, nif->name);
+ ERR_BAIL(ncf);
+
+@@ -745,7 +749,7 @@
+ int nmatches = 0;
+
+ nmatches = aug_fmt_match(ncf, NULL,
+- "%s[ DEVICE = '%s' and TYPE = 'Bridge']",
++ "%s[ INTERFACE = '%s' and TYPE = 'Bridge']",
+ ifcfg_path, name);
+ return nmatches > 0;
+ }
+@@ -758,7 +762,7 @@
+ ERR_BAIL(ncf);
+
+ nslaves = aug_fmt_match(ncf, slaves,
+- "%s[ BRIDGE = '%s' ]/DEVICE", ifcfg_path, name);
++ "%s[ BRIDGE = '%s' ]/INTERFACE", ifcfg_path, name);
+ ERR_BAIL(ncf);
+ for (int i=0; i < nslaves; i++) {
+ char *p = (*slaves)[i];
+@@ -790,8 +794,8 @@
+ /* The last or clause catches slaves of a bond that are enslaved to
+ * a bridge NAME */
+ r = xasprintf(&path,
+- "%s[ DEVICE = '%s' or BRIDGE = '%s' or MASTER = '%s' "
+- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]",
++ "%s[ INTERFACE = '%s' or BRIDGE = '%s' or MASTER = '%s' "
++ " or MASTER = ../*[BRIDGE = '%s']/INTERFACE ]",
+ ifcfg_path, name, name, name, name);
+ ERR_NOMEM(r < 0, ncf);
+
+@@ -967,7 +971,7 @@
+ for (int i = 0; i < nmatches; i++) {
+ if (!has_ifcfg_file(ncf, matches[i]))
+ continue;
+- r = xasprintf(&ifcfg, "%s[DEVICE = '%s']", ifcfg_path, matches[i]);
++ r = xasprintf(&ifcfg, "%s[INTERFACE = '%s']", ifcfg_path, matches[i]);
+ ERR_NOMEM(r < 0, ncf);
+
+ if (! is_slave(ncf, ifcfg))
+@@ -1023,7 +1027,10 @@
+ */
+
+ int drv_if_up(struct netcf_if *nif) {
+- static const char *const ifup = "ifup";
++ //static const char *const ifup = "ifup";
++ static const char *const ifup = "netcfg";
++ static const char *const ifprefix = "ifcfg-";
++ char ifname[strlen(nif->name) + sizeof(ifprefix)];
+ struct netcf *ncf = nif->ncf;
+ char **slaves = NULL;
+ int nslaves = 0;
+@@ -1035,11 +1042,24 @@
+ ERR_BAIL(ncf);
+
+ for (int i=0; i < nslaves; i++) {
+- run1(ncf, ifup, slaves[i]);
++ //run1(ncf, ifup, slaves[i]);
++ const char *const argv[] = {
++ ifup, "-u", slaves[i], NULL
++ };
++
++ run_program(ncf, argv);
+ ERR_BAIL(ncf);
+ }
+ }
+- run1(ncf, ifup, nif->name);
++ //run1(ncf, ifup, nif->name);
++ /* Interfaces name have to be equal to script under /etc/network.d */
++ strcpy(ifname, ifprefix);
++ strcat(ifname, nif->name);
++ const char *const argv[] = {
++ ifup, "-u", ifname, NULL
++ };
++
++ run_program(ncf, argv);
+ ERR_BAIL(ncf);
+ result = 0;
+ error:
+@@ -1048,13 +1068,23 @@
+ }
+
+ int drv_if_down(struct netcf_if *nif) {
+- static const char *const ifdown = "ifdown";
++ //static const char *const ifdown = "ifdown";
++ static const char *const ifdown = "netcfg";
++ static const char *const ifprefix = "ifcfg-";
++ char ifname[strlen(nif->name) + sizeof(ifprefix)];
+ struct netcf *ncf = nif->ncf;
+ char **slaves = NULL;
+ int nslaves = 0;
+ int result = -1;
+
+- run1(ncf, ifdown, nif->name);
++ //run1(ncf, ifdown, nif->name);
++ strcpy(ifname, ifprefix);
++ strcat(ifname, nif->name);
++ const char *const argv[] = {
++ ifdown, "-d", ifname, NULL
++ };
++
++ run_program(ncf, argv);
+ ERR_BAIL(ncf);
+ if (is_bridge(ncf, nif->name)) {
+ /* Bring up bridge slaves after the bridge */
+@@ -1062,7 +1092,12 @@
+ ERR_BAIL(ncf);
+
+ for (int i=0; i < nslaves; i++) {
+- run1(ncf, ifdown, slaves[i]);
++ //run1(ncf, ifdown, slaves[i]);
++ const char *const argvs[] = {
++ ifdown, "-d", slaves[i], NULL
++ };
++
++ run_program(ncf, argvs);
+ ERR_BAIL(ncf);
+ }
+ }
+diff -ur netcf-0.1.7.ori//tests/interface/bridge.xml~ netcf-0.1.7/tests/interface/bridge.xml~
+--- netcf-0.1.7.ori//tests/interface/bridge.xml~ 2009-10-13 19:14:53.000000000 +0200
++++ netcf-0.1.7/tests/interface/bridge.xml~ 2009-10-14 05:09:05.000000000 +0200
+@@ -2,10 +2,12 @@
+ <start mode="onboot"/>
+ <mtu size="1500"/>
+ <protocol family="ipv4">
+- <ip address="192.168.80.5" prefix="24"/>
++ <dhcp/>
+ </protocol>
+ <bridge stp="off" delay="0.01">
+ <interface type="ethernet" name="eth0">
++ <mac address="ab:bb:cc:dd:ee:ff"/>
+ </interface>
++ <interface type="ethernet" name="eth1"/>
+ </bridge>
+ </interface>
+diff -ur netcf-0.1.7.ori//tests/interface/vlan.xml~ netcf-0.1.7/tests/interface/vlan.xml~
+--- netcf-0.1.7.ori//tests/interface/vlan.xml~ 2010-07-30 06:02:39.000000000 +0200
++++ netcf-0.1.7/tests/interface/vlan.xml~ 2010-09-07 18:26:22.000000000 +0200
+@@ -1,9 +1,9 @@
+-<interface type="vlan" name="eth1.42">
++<interface type="vlan" name="eth0.42">
+ <start mode="onboot"/>
+ <protocol family="ipv4">
+ <dhcp peerdns="no"/>
+ </protocol>
+ <vlan tag="42">
+- <interface name="eth1"/>
++ <interface name="eth0"/>
+ </vlan>
+ </interface>
diff --git a/community/nethack/PKGBUILD b/community/nethack/PKGBUILD
new file mode 100644
index 000000000..a8b3a3279
--- /dev/null
+++ b/community/nethack/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 54249 2011-08-15 09:38:46Z schuay $
+# Maintainer : schuay <jakob.gruber@gmail.com>
+# Contributor : kevin <kevin@archlinux.org>
+# Contributor : Christian Schmidt <mucknert@gmx.net>
+# Contributor : Markus Meissner <markus@meissna.de>
+# Contributor : Nick Erdmann <erdmann@date.upb.de>
+
+pkgname=nethack
+pkgver=3.4.3
+pkgrel=6
+pkgdesc='A single player dungeon exploration game'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nethack.org/index.html"
+license=('custom')
+depends=('ncurses' 'gzip')
+install=nethack.install
+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|/var/games/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/.*$|/var/games/$(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|/usr/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}
+ install -dm775 $pkgdir/var/games/
+ make PREFIX=$pkgdir install manpages
+ sed -e "s|HACKDIR=$pkgdir/|HACKDIR=/|" \
+ -e 's|HACK=$HACKDIR|HACK=/usr/lib/nethack|' \
+ -i $pkgdir/usr/bin/nethack
+
+ install -dm755 $pkgdir/usr/lib/nethack
+ mv $pkgdir/var/games/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/nethack/nethack.install b/community/nethack/nethack.install
new file mode 100644
index 000000000..66ec2aeb5
--- /dev/null
+++ b/community/nethack/nethack.install
@@ -0,0 +1,12 @@
+pre_upgrade() {
+ if(test `vercmp '3.4.3-5' "$2"` -ge 0); then
+ mv /usr/share/nethack /tmp/nethack-backup
+ fi
+}
+
+post_upgrade() {
+ if(test `vercmp '3.4.3-5' "$2"` -ge 0); then
+ rm -rf /var/games/nethack
+ mv /tmp/nethack-backup /var/games/nethack
+ fi
+}
diff --git a/community/nethogs/PKGBUILD b/community/nethogs/PKGBUILD
new file mode 100644
index 000000000..b6df770a7
--- /dev/null
+++ b/community/nethogs/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 54960 2011-08-29 07:11:32Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: ViNS <gladiator@fastwebnet.it>
+# Contributor: Daenyth
+pkgname=nethogs
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="A net top tool which displays traffic used per process instead of per IP or interface"
+url="http://nethogs.sourceforge.net"
+license=(GPL)
+depends=(libpcap ncurses gcc-libs)
+arch=(i686 x86_64 'mips64el')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz gcc44.patch)
+md5sums=('d6fb12b46e80a50c9b9f91dd48e2b234'
+ '62eb824fbbadd1c60d0749593c16d293')
+
+build() {
+ cd "$srcdir/$pkgname"
+
+ sed -i 's/sbin/bin/g' Makefile
+
+ # Patch the code to work with gcc 4.4
+ patch -Np1 -i "$srcdir/gcc44.patch"
+
+ make
+ make DESTDIR="$pkgdir/usr" install
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/nethogs/gcc44.patch b/community/nethogs/gcc44.patch
new file mode 100644
index 000000000..7fedbf978
--- /dev/null
+++ b/community/nethogs/gcc44.patch
@@ -0,0 +1,11 @@
+diff -ruN nethogs-old/conninode.cpp nethogs/conninode.cpp
+--- nethogs-old/conninode.cpp 2009-05-17 09:05:32.000000000 -0400
++++ nethogs/conninode.cpp 2009-05-17 09:06:47.000000000 -0400
+@@ -1,6 +1,7 @@
+ #include <netinet/in.h>
+ #include <map>
+ #include <stdlib.h>
++#include <cstdio>
+
+ #include "nethogs.h"
+ #include "conninode.h"
diff --git a/community/netstat-nat/PKGBUILD b/community/netstat-nat/PKGBUILD
new file mode 100644
index 000000000..e9a687f50
--- /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 'mips64el')
+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..e4b0104e9
--- /dev/null
+++ b/community/netsurf/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 59684 2011-11-29 11:46:42Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Georgij Kondratjev <smpuj@bk.ru>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+pkgname=netsurf
+pkgver=2.8
+pkgrel=2
+pkgdesc="Lightweight and fast web browser"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.netsurf-browser.org/"
+license=('GPL')
+depends=('libmng' 'curl' 'libglade' 'librsvg' 'desktop-file-utils' 'libnsbmp' 'libnsgif' 'hubbub' 'libcss' 'hubbub')
+makedepends=('re2c' 'lcms')
+provides=('netsurf')
+conflicts=('netsurf')
+install=netsurf.install
+source=("netsurf.png::http://ubuntu.allmyapps.com/data/n/e/netsurf-netsurf-web-browser/icon_48x48_netsurf.png"
+ "http://www.netsurf-browser.org/downloads/releases/$pkgname-$pkgver-src.tar.gz"
+ "$pkgname.desktop")
+md5sums=('4f28912e5df4b826b819e175265bcc9c'
+ '49c41f281f3e9ca28a24da505fad2e3a'
+ '85e0af265e77607596fd90db9ac707ad')
+
+build() {
+ cd "$srcdir/$pkgname"
+
+ make PREFIX=/usr TARGET=gtk
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+
+ make install PREFIX=/usr DESTDIR="$pkgdir"
+ install -Dm644 "../$pkgname.png" \
+ "$pkgdir/usr/share/pixmaps/$pkgname.png"
+ install -Dm644 "../$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/netsurf/netsurf.desktop b/community/netsurf/netsurf.desktop
new file mode 100644
index 000000000..aca4deefc
--- /dev/null
+++ b/community/netsurf/netsurf.desktop
@@ -0,0 +1,127 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Netsurf
+Name[ar]=صافي تصفح
+Name[ast]=Netsurf
+Name[ca]=Netsurf
+Name[cs]=Netsurf
+Name[da]=Netsurf
+Name[de]=Netsurf
+Name[el]=καθαρού σερφ
+Name[en_GB]=Netsurf
+Name[es]=Netsurf
+Name[et]=Netsurf
+Name[fi]=Netsurf
+Name[fr]=Netsurf
+Name[gl]=Netsurf
+Name[he]=Netsurf
+Name[hr]=Netsurf
+Name[hu]=Netsurf
+Name[id]=Netsurf
+Name[it]=Netsurf
+Name[ja]=Netsurf
+Name[ko]=인터넷 서핑
+Name[lt]=Netsurf
+Name[nl]=Netsurf
+Name[no]=Netsurf
+Name[pl]=Netsurf
+Name[pt]=Netsurf
+Name[pt_BR]=Netsurf
+Name[ro]=Netsurf
+Name[ru]=Netsurf
+Name[sk]=Netsurf
+Name[sr]=нетсурф
+Name[sr@latin]=Netsurf
+Name[sv]=Netsurf
+Name[tr]=Netsurf
+Name[ug]=Netsurf
+Name[uk]=Інтернет серфінгу
+Name[zh_CN]=Netsurf 网冲浪
+Name[zh_TW]=Netsurf 網衝浪
+GenericName=Web Browser
+GenericName[ar]=متصفح الوب
+GenericName[ast]=Restolador
+GenericName[ca]=Navegador web
+GenericName[cs]=Internetový prohlížeč
+GenericName[da]=Webbrowser
+GenericName[de]=Internetbetrachter
+GenericName[el]=Περιηγητής Ιστού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=Verkkoselain
+GenericName[fr]=Navigateur Internet
+GenericName[gl]=Navegador web
+GenericName[he]=דפדפן
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[id]=Peramban Web
+GenericName[it]=Browser web
+GenericName[ja]=ウェブブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Interneto naršyklė
+GenericName[nl]=Webbrowser
+GenericName[no]=Nettleser
+GenericName[pa]=ਵੈੱਬ ਬਰਾਊਜ਼ਰ
+GenericName[pl]=Przeglądarka internetowa
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador web
+GenericName[ro]=Navigator web
+GenericName[ru]=Интернет-обозреватель
+GenericName[sk]=Internetový prehliadač
+GenericName[sr]=Интернет прегледник
+GenericName[sr@latin]=Internet preglednik
+GenericName[sv]=Webbläsare
+GenericName[tr]=Web Tarayıcı
+GenericName[ug]=توركۆرگۈ
+GenericName[uk]=Переглядач Веб
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_TW]=網頁瀏覽器
+Comment=Lightweight web browser
+Comment[ar]=منصفح الوب الخفيف
+Comment[ast]=Restolador llixeru
+Comment[ca]=Navegador web lleuger
+Comment[cs]=Odlehčený prohlížeč
+Comment[da]=Letvægtig webbrowser
+Comment[de]=Schlanker Internetbetrachter
+Comment[el]=Ελαφρύς περιηγητής ιστού
+Comment[en_GB]=Lightweight web browser
+Comment[es]=Navegador web ligero
+Comment[et]=Kergekaaluline veebibrauser
+Comment[fi]=Kevyt verkkoselain
+Comment[fr]=Navigateur Internet léger
+Comment[gl]=Navegador web lixeiro
+Comment[he]=דפדפן קל משקל
+Comment[hr]=Lagani web preglednik
+Comment[hu]=Könnyűsúlyú webböngésző
+Comment[id]=Peramban web ringan
+Comment[it]=Browser web leggero
+Comment[ja]=軽量級ウェブブラウザ
+Comment[ko]=가벼운 웹 브라우저
+Comment[lt]=Paprasta interneto naršyklė
+Comment[nl]=Lichtgewicht webbrowser
+Comment[no]=Lettvektig nettleser
+Comment[pa]=ਲਾਈਟਵੇਟ ਵੈੱਬ ਬਰਾਊਜ਼ਰ
+Comment[pl]=Umożliwia przeglądanie zawartości sieci internetowej
+Comment[pt]=Navegador Web rápido
+Comment[pt_BR]=Navegador web leve
+Comment[ro]=Mic navigator web
+Comment[ru]=Легковесный Интернет-обозреватель
+Comment[sk]=Ľahký internetový prehliadač
+Comment[sr]=Једноставан Интернет прегледник
+Comment[sr@latin]=Jednostavan Internet preglednik
+Comment[sv]=Resurssnål webbläsare
+Comment[tr]=Hafif web tarayıcı
+Comment[ug]=يېنىك توركۆرگۈ
+Comment[uk]=Легкий переглядач Веб
+Comment[zh_CN]=轻量级网页浏览器
+Comment[zh_TW]=輕量級網頁瀏覽器
+Categories=GTK;Network;WebBrowser;
+MimeType=text/html;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/geo;
+Exec=netsurf %U
+Icon=netsurf
+Terminal=false
+StartupNotify=true
+X-Osso-Type=application/x-executable
+X-Osso-Service=netsurf
diff --git a/community/netsurf/netsurf.install b/community/netsurf/netsurf.install
new file mode 100644
index 000000000..966f361ea
--- /dev/null
+++ b/community/netsurf/netsurf.install
@@ -0,0 +1,15 @@
+post_upgrade() {
+ echo "Updating icon cache"
+ gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
+ echo "Updating mime entries"
+ update-desktop-database -q
+}
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/netwatch/PKGBUILD b/community/netwatch/PKGBUILD
new file mode 100644
index 000000000..5beed0a69
--- /dev/null
+++ b/community/netwatch/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 59160 2011-11-21 12:43:25Z 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 'mips64el')
+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"
+
+ unset CFLAGS
+ ./configure --prefix=/usr
+ make
+
+ 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..bccd78bed
--- /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' 'mips64el')
+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/newton-dynamics/PKGBUILD b/community/newton-dynamics/PKGBUILD
new file mode 100644
index 000000000..5456ebce7
--- /dev/null
+++ b/community/newton-dynamics/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Josh Taylor (deficite) <joshtaylor.mail@gmail.com>
+# Contributor: Christophe Robin (bombstrike) <crobin@php.net>
+pkgname=newton-dynamics
+pkgver=2.33
+pkgrel=2
+pkgdesc="A simple physics API"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.newtondynamics.com"
+license=('custom')
+depends=()
+makedepends=('unrar')
+source=("http://newton-dynamics.googlecode.com/files/newton-dynamics-${pkgver}.rar"
+ 'assert-fix.patch')
+md5sums=('b8394c7c3f4e8a1bd41ffa07c5979a9e'
+ 'fa747c99d0516d66f03175fca1f1ba34')
+
+build() {
+ _srcdir="${srcdir}/newton-dynamics-${pkgver}"
+ [ "$CARCH" = "i686" ] && platform="linux32"
+ [ "$CARCH" = "x86_64" ] && platform="linux64"
+ builddir="${_srcdir}/coreLibrary_200/projets/${platform}"
+
+ # clean build directory
+ [ -d "${_srcdir}" ] && rm -Rf "${_srcdir}"
+
+ # decompress package
+ cd "${srcdir}"
+ unrar x "newton-dynamics-${pkgver}.rar"
+
+ # needed for building
+ mkdir -p "${_srcdir}/packages/${platform}"
+
+ # patch issue with an _ASSERT call instead of _ASSERTE
+ cd "${_srcdir}/coreLibrary_200"
+ patch -p0 < "${srcdir}/assert-fix.patch"
+
+ ## build lib
+ cd "${builddir}"
+ sed -i 's/ -o libNewton.so/ -lpthread -lstdc++ -o libNewton.so/' makefile
+ make
+
+ install -D -m644 "${builddir}/libNewton.a" "${pkgdir}/usr/lib/libNewton.a"
+ install -D -m755 "${builddir}/libNewton.so" "${pkgdir}/usr/lib/libNewton.so"
+ install -D -m644 "${_srcdir}/coreLibrary_200/source/newton/Newton.h" "${pkgdir}/usr/include/Newton.h"
+}
diff --git a/community/newton-dynamics/assert-fix.patch b/community/newton-dynamics/assert-fix.patch
new file mode 100644
index 000000000..83dfdd790
--- /dev/null
+++ b/community/newton-dynamics/assert-fix.patch
@@ -0,0 +1,13 @@
+Index: source/core/dgTypes.cpp
+===================================================================
+--- source/core/dgTypes.cpp (revision 506)
++++ source/core/dgTypes.cpp (working copy)
+@@ -515,7 +515,7 @@
+ return 0;
+ }
+ _ASSERTE (compareCount <= dgInt32 (strideInBytes / sizeof (dgFloat64)));
+- _ASSERT (strideInBytes == dgInt32 (sizeof (dgFloat64) * (strideInBytes / sizeof (dgFloat64))));
++ _ASSERTE (strideInBytes == dgInt32 (sizeof (dgFloat64) * (strideInBytes / sizeof (dgFloat64))));
+
+ dgInt32 stride = strideInBytes / dgInt32 (sizeof (dgFloat64));
+ dgInt32 stride2 = stride + 2;
diff --git a/community/nexuiz/PKGBUILD b/community/nexuiz/PKGBUILD
new file mode 100644
index 000000000..3123ad9b0
--- /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' 'mips64el')
+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/PKGBUILD b/community/nginx/PKGBUILD
new file mode 100644
index 000000000..406764ab6
--- /dev/null
+++ b/community/nginx/PKGBUILD
@@ -0,0 +1,112 @@
+# $Id: PKGBUILD 58582 2011-11-15 20:13:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
+
+_doc_root=/usr/share/nginx/http
+_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=1.0.10
+pkgrel=1
+pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('pcre' 'zlib' 'openssl')
+makedepends=('passenger')
+optdepends=('passenger')
+url="http://nginx.org"
+license=('custom')
+backup=("etc/nginx/conf/fastcgi.conf"
+ "etc/nginx/conf/fastcgi_params"
+ "etc/nginx/conf/koi-win"
+ "etc/nginx/conf/koi-utf"
+ "etc/nginx/conf/mime.types"
+ "etc/nginx/conf/nginx.conf"
+ "etc/nginx/conf/scgi_params"
+ "etc/nginx/conf/uwsgi_params"
+ "etc/nginx/conf/win-utf"
+ "etc/logrotate.d/nginx"
+ "etc/conf.d/nginx")
+changelog=changelog
+source=(http://nginx.org/download/nginx-$pkgver.tar.gz
+ nginx)
+md5sums=('930b297b00fa1018fb0a1dd3e6b7e17e'
+ '0e8032d3ba26c3276e8c7c30588d375f')
+
+build() {
+ cd $srcdir/nginx-${pkgver}
+ ./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 \
+ --add-module=/usr/lib/passenger/ext/nginx \
+ --http-scgi-temp-path=${_tmp_path} \
+ --http-uwsgi-temp-path=${_tmp_path}
+ #--with-http_mp4_module \
+ #--with-http_realip_module \
+ #--with-http_addition_module \
+ #--with-http_xslt_module \
+ #--with-http_image_filter_module \
+ #--with-http_geoip_module \
+ #--with-http_sub_module \
+ #--with-http_flv_module \
+ #--with-http_gzip_static_module \
+ #--with-http_random_index_module \
+ #--with-http_secure_link_module \
+ #--with-http_degradation_module \
+ #--with-http_perl_module \
+
+ make
+}
+
+package() {
+ cd $srcdir/nginx-${pkgver}
+ 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/changelog b/community/nginx/changelog
new file mode 100644
index 000000000..9f2ffcfc8
--- /dev/null
+++ b/community/nginx/changelog
@@ -0,0 +1,4 @@
+2011-08-29 Sergej Pupykin <sergej@p5n.pp.ru>
+
+ * 1.0.6-1 :
+ move /srv/http to /usr/share/nginx/http
diff --git a/community/nginx/nginx b/community/nginx/nginx
new file mode 100644
index 000000000..9de10e99a
--- /dev/null
+++ b/community/nginx/nginx
@@ -0,0 +1,73 @@
+#!/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"
+ NGINX_PID=`cat /var/run/nginx.pid 2>/dev/null`
+ kill -QUIT $NGINX_PID &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ for i in `seq 1 10`; do
+ [ -d /proc/$NGINX_PID ] || { stat_done; rm_daemon nginx; exit 0; }
+ sleep 1
+ done
+ stat_fail
+ 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..d2079fd86
--- /dev/null
+++ b/community/ngircd/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56891 2011-10-16 05:54:18Z bpiotrowski $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=ngircd
+pkgver=18
+pkgrel=1
+pkgdesc="Next Generation IRC Daemon"
+arch=('i686' 'x86_64' 'mips64el')
+backup=(etc/ngircd.conf)
+url="http://ngircd.barton.de/"
+license=('GPL')
+depends=('openssl' 'libident')
+source=(http://ngircd.barton.de/pub/ngircd/ngircd-$pkgver.tar.gz ngircd.sh)
+md5sums=('4958c8b2d128cf3e9888af3f782892a1'
+ '6d2e9f1bbb4a3a7349da0dcd3f6d8dc3')
+
+build() {
+ cd $srcdir/$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..f10f7054c
--- /dev/null
+++ b/community/ngrep/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59191 2011-11-21 14:35:44Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=ngrep
+pkgver=1.45
+pkgrel=7
+pkgdesc='A grep-like utility that allows you to search for network packets on an interface.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://ngrep.sourceforge.net/'
+license=('custom')
+depends=('libpcap>=1.0.0')
+# Fix build failure when using "-j" (FS#27091).
+options=(!makeflags)
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('bc8150331601f3b869549c94866b4f1c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --with-pcap-includes=/usr/include/pcap --enable-ipv6
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 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..54acc8f53
--- /dev/null
+++ b/community/ngspice/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 49542 2011-06-18 04:13:44Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+
+pkgname=ngspice
+pkgver=23
+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' 'mips64el')
+depends=('libxaw' 'libedit')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgver/ngspice-$pkgver.tar.gz")
+sha1sums=('65fa23d1168cb3af7651b990344f763c77bf6132')
+
+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/nickle/PKGBUILD b/community/nickle/PKGBUILD
new file mode 100644
index 000000000..cff5a8fcb
--- /dev/null
+++ b/community/nickle/PKGBUILD
@@ -0,0 +1,22 @@
+#$Id: PKGBUILD 46957 2011-05-13 20:41:22Z andrea $
+#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' 'mips64el')
+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/community/nload/PKGBUILD b/community/nload/PKGBUILD
new file mode 100644
index 000000000..1a5ea0e3d
--- /dev/null
+++ b/community/nload/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net
+# Contributor: Andreas Hauser <andy-aur@splashground.de>
+
+pkgname=nload
+pkgver=0.7.3
+pkgrel=2
+pkgdesc='Console application which monitors network traffic and bandwidth usage in real time'
+url='http://www.roland-riegel.de/nload'
+license=('GPL2')
+depends=('ncurses' 'gcc-libs')
+arch=('i686' 'x86_64' 'mips64el')
+source=("$url/$pkgname-$pkgver.tar.gz")
+md5sums=('9b97c37fe1474f1da42f265fead24081')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/nmon/PKGBUILD b/community/nmon/PKGBUILD
new file mode 100644
index 000000000..9cf278e07
--- /dev/null
+++ b/community/nmon/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id$
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+
+pkgname=nmon
+pkgver=14g
+pkgrel=2
+pkgdesc="AIX & Linux Performance Monitoring tool"
+arch=('i686' 'x86_64')
+url="http://nmon.sourceforge.net"
+license=("GPL")
+depends=("ncurses")
+source=("http://downloads.sourceforge.net/${pkgname}/lmon$pkgver.c")
+
+build() {
+ cd ${srcdir}
+ cc -o nmon lmon$pkgver.c -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -g
+ install -D -m 0755 nmon "${pkgdir}/usr/bin/nmon"
+}
+
+md5sums=('e537f51446fb375140368b115dc8278b')
diff --git a/community/nodejs/PKGBUILD b/community/nodejs/PKGBUILD
new file mode 100644
index 000000000..7397be586
--- /dev/null
+++ b/community/nodejs/PKGBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: James Campos <james.r.campos@gmail.com>
+# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
+# Contributor: Dongsheng Cai <dongsheng at moodle dot com>
+# Contributor: Masutu Subric <masutu.arch at googlemail dot com>
+# Contributor: TIanyi Cui <tianyicui@gmail.com>
+
+pkgname=nodejs
+pkgver=0.6.5
+pkgrel=1
+pkgdesc='Evented I/O for V8 javascript'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://nodejs.org/'
+license=('MIT')
+depends=('python2')
+checkdepends=('curl') # curl used for check()
+optdepends=('openssl: TLS support')
+options=('!emptydirs')
+source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz")
+md5sums=('0aaae7ebf357b4a67dcf1916dfc250fa')
+
+build() {
+ cd node-v${pkgver}
+
+ msg 'fixing for python2 name'
+ find -type f -exec sed -e 's_^#!/usr/bin/env python$_&2_' -e 's_^\(#!/usr/bin/python2\).[45]$_\1_' -e 's_^#!/usr/bin/python$_&2_' -i {} \;
+ sed -i "s|cmd_R = 'python |cmd_R = 'python2 |" wscript
+ sed -i "s|python |python2 |" Makefile
+ find test -type f -exec sed -e 's/python/&2/' -i {} \;
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+check() {
+ cd node-v${pkgver}
+
+ # test failures in 0.6.0 are known
+ make test || true
+}
+
+package() {
+ cd node-v${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/nodejs/LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/noip/PKGBUILD b/community/noip/PKGBUILD
new file mode 100644
index 000000000..55050d40c
--- /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' 'mips64el')
+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/notion/ChangleLog b/community/notion/ChangleLog
new file mode 100644
index 000000000..2107408db
--- /dev/null
+++ b/community/notion/ChangleLog
@@ -0,0 +1,5 @@
+2011-09-14 Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+ * 20110914-1 :
+ Add contrib/ to /usr/share/notion/contrib
+ Add mod_*.lua to /etc/notion/
diff --git a/community/notion/PKGBUILD b/community/notion/PKGBUILD
new file mode 100644
index 000000000..5c6b7b0d6
--- /dev/null
+++ b/community/notion/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 57592 2011-10-31 08:12:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Eugen Zagorodniy e dot zagorodniy at gmail dot com
+# Contributor: aunoor
+
+pkgname=notion
+pkgver=20111031
+pkgrel=1
+pkgdesc="Tabbed tiling, window manager. Fork of Ion3"
+url="http://sourceforge.net/projects/notion/"
+arch=('i686' 'x86_64')
+license=('custom:LGPL')
+depends=('glib2' 'gettext' 'lua' 'libxext' 'libsm')
+optdepends=('libxinerama' 'libxrandr')
+makedepends=('git' 'pkgconfig' 'libxinerama' 'libxrandr'
+ 'rubber' 'latex2html' 'texlive-htmlxml' 'texlive-latexextra')
+provides=('libtu' 'libextl')
+changelog=ChangleLog
+_gitroots=("git://notion.git.sourceforge.net/gitroot/notion/notion"
+ "git://notion.git.sourceforge.net/gitroot/notion/libtu"
+ "git://notion.git.sourceforge.net/gitroot/notion/libextl"
+ "git://notion.git.sourceforge.net/gitroot/notion/notion-doc"
+ "git://notion.git.sourceforge.net/gitroot/notion/mod_xinerama"
+ "git://notion.git.sourceforge.net/gitroot/notion/mod_xkbevents"
+ "git://notion.git.sourceforge.net/gitroot/notion/mod_xrandr"
+ "git://notion.git.sourceforge.net/gitroot/notion/contrib")
+#source=(https://downloads.sourceforge.net/project/notion/notion-3-2011102900-src.tar.bz2)
+
+build() {
+ cd ${srcdir}
+
+ # git clone
+ for _gitroot in ${_gitroots[@]}; do
+ msg "Connecting to the git repository..."
+ _gitname=`basename ${_gitroot}`
+ if [ -d ${srcdir}/${_gitname} ]; then
+ pushd ${srcdir}/${_gitname}
+ git pull origin
+ popd
+ else
+ git clone --depth 1 ${_gitroot}
+ fi
+ msg "GIT checkout done or server timeout"
+ done
+
+ # copy to notion-build
+ rm -rf ${srcdir}/notion-build
+ cp -r ${srcdir}/notion ${srcdir}/notion-build
+ for i in libextl libtu mod_xinerama mod_xkbevents mod_xrandr notion-doc; do
+ cp -r ${srcdir}/$i ${srcdir}/notion-build/
+ done
+
+ # build notion
+ cd ${srcdir}/notion-build
+ msg "Starting make..."
+ sed -e 's/^\(PREFIX=\).*$/\1\/usr/' \
+ -e 's/^\(ETCDIR=\).*$/\1\/etc\/notion/' \
+ -e 's/^\(LUA_DIR=\).*$/\1\/usr/' \
+ -e 's/^\(X11_PREFIX=\).*/\1\/usr/' \
+ -i system.mk
+ make INCLUDES=-I${srcdir}/notion-build
+
+ # doc workaround
+ for i in ioncore mod_tiling mod_query de mod_menu mod_dock mod_sp mod_statusbar; do
+ (cd $i && make _exports_doc)
+ done
+
+ # build doc and modules
+ for i in mod_xinerama mod_xkbevents mod_xrandr notion-doc; do
+ (cd $i && make -j1 TOPDIR=.. all)
+ done
+}
+
+package() {
+ cd ${srcdir}/notion-build
+
+ # notion
+ make PREFIX=${pkgdir}/usr ETCDIR=${pkgdir}/etc/notion install
+
+ # modules
+ for i in mod_xinerama mod_xkbevents mod_xrandr notion-doc; do
+ (cd $i && make PREFIX=${pkgdir}/usr ETCDIR=${pkgdir}/etc/notion TOPDIR=.. install)
+ done
+ cp ${srcdir}/mod_xinerama/*.lua $pkgdir/etc/notion/
+ cp ${srcdir}/mod_xkbevents/*.lua $pkgdir/etc/notion/
+
+ # contrib
+ mkdir -p $pkgdir/usr/share/notion/contrib
+ cp -a ${srcdir}/contrib/* $pkgdir/usr/share/notion/contrib
+
+ # license
+ install -Dm0644 LICENSE ${pkgdir}/usr/share/licenses/notion/LICENSE
+}
diff --git a/community/nrg2iso/PKGBUILD b/community/nrg2iso/PKGBUILD
new file mode 100644
index 000000000..a0c40c1b3
--- /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' 'mips64el')
+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..09df8c6d1
--- /dev/null
+++ b/community/nsd/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 60316 2011-12-10 11:25:09Z bisson $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=nsd
+pkgver=3.2.9
+pkgrel=1
+pkgdesc='Authoritative only, high performance and simple DNS server'
+url='http://www.nlnetlabs.nl/nsd/'
+license=('BSD')
+depends=('openssl')
+makedepends=('flex')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://www.nlnetlabs.nl/downloads/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('66e17e5801e94da1a21f0f2a4dd7a4ab4ffe0dd9')
+
+install=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/install b/community/nsd/install
new file mode 100644
index 000000000..d90c83521
--- /dev/null
+++ b/community/nsd/install
@@ -0,0 +1,19 @@
+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
+}
+
+post_upgrade() {
+ [[ `vercmp $2 3.2.9` -lt 0 ]] && cat <<\EOF
+==> The database format was updated; please run `nsdc rebuild`.
+EOF
+}
+
+post_remove() {
+ getent passwd nsd &>/dev/null && userdel nsd >/dev/null
+ getent group nsd &>/dev/null && groupdel nsd >/dev/null
+ true
+}
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..10fcf8ede
--- /dev/null
+++ b/community/ntop/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59714 2011-11-29 13:35:19Z stephane $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=ntop
+pkgver=4.1.0
+pkgrel=2
+pkgdesc='A network traffic probe that shows the network usage.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.ntop.org/'
+license=('GPL')
+depends=('libevent' 'libpcap' 'gd' 'glib' 'libxml2' 'openssl' 'rrdtool' 'pcre' 'geoip' 'lua')
+options=('!libtool' '!makeflags')
+install='ntop.install'
+source=("http://sourceforge.net/projects/${pkgname}/files/${pkgname}/Stable/${pkgname}-${pkgver}.tar.gz"
+ 'ntop'
+ 'ntop.conf.d')
+md5sums=('116df99cf548431393991ea15443c52f'
+ '7b0d7bb57432e768ff387e9f7236f87c'
+ '6a9371de1dcf31d8ef13a4cf349c02b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --disable-snmp
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install-recursive
+
+ install -dm0755 -o nobody -g nobody "${pkgdir}/var/lib/ntop"
+ install -dm0755 -o nobody -g nobody "${pkgdir}/var/lib/ntop/rrd"
+
+ install -Dm0755 "${srcdir}/ntop" "${pkgdir}/etc/rc.d/ntop"
+ install -Dm0644 "${srcdir}/ntop.conf.d" "${pkgdir}/etc/conf.d/ntop"
+
+ for _f in "${pkgdir}/usr/lib/ntop/plugins/"*.so; do
+ _plug="$(basename ${_f})"
+ ln -sf "../../lib${_plug}" "${_f}"
+ done
+}
diff --git a/community/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/numlockx/PKGBUILD b/community/numlockx/PKGBUILD
new file mode 100644
index 000000000..dac173233
--- /dev/null
+++ b/community/numlockx/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59007 2011-11-20 19:54:44Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=numlockx
+pkgver=1.2
+pkgrel=2
+pkgdesc='Turns on the numlock key in X11.'
+arch=('i686' 'x86_64' 'mips64el')
+license=('MIT')
+url='http://home.kde.org/~seli/numlockx/'
+depends=('libxtst')
+source=("http://home.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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+
+ # Install the custom MIT license
+ install -Dm0644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/nut/PKGBUILD b/community/nut/PKGBUILD
new file mode 100644
index 000000000..d08ffc87d
--- /dev/null
+++ b/community/nut/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Slash <demodevil5 [at] yahoo [dot] com>
+
+pkgname=nut
+pkgver=17.4
+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' 'mips64el')
+source=("http://downloads.sourceforge.net/project/nut/nut/${pkgver}/nut-${pkgver}.tar.gz")
+md5sums=('9d8b33fe0edbc54a6ebc8050dec7d56b')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # change install path to /usr instead of /usr/local
+ sed \
+ -e 's#/local##' \
+ -i 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..d3a09a670
--- /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' 'mips64el')
+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..cd8728d08
--- /dev/null
+++ b/community/nvdock/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59826 2011-11-30 20:47:00Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Matthew Sharpe <matt.sharpe@gmail.com>
+
+pkgname=nvdock
+pkgver=1.02
+pkgrel=4
+pkgdesc="A tray icon for easy launching of the NVIDIA control panel"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -D -m755 build/nvdock "${pkgdir}/usr/bin/nvdock"
+ install -D -m644 data/nvdock.png "${pkgdir}/usr/share/pixmaps/nvdock.png"
+ install -D -m644 data/nvdock.desktop "${pkgdir}/usr/share/applications/nvdock.desktop"
+
+ # Install license
+ install -D COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
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..a395c7a34
--- /dev/null
+++ b/community/nzbget/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 54477 2011-08-18 15:08:22Z bluewind $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=nzbget
+pkgver=0.7.0
+pkgrel=3
+pkgdesc="Downloads from Usenet using .nzb files"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ 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..ea0103504
--- /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' 'mips64el')
+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/obconf/PKGBUILD b/community/obconf/PKGBUILD
new file mode 100644
index 000000000..fb57106b7
--- /dev/null
+++ b/community/obconf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 54809 2011-08-26 11:01:00Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=obconf
+pkgver=2.0.3.git20100309
+pkgrel=2
+pkgdesc="A GTK2 based configuration tool for the Openbox windowmanager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://openbox.org/wiki/ObConf:About"
+license=('GPL')
+depends=('openbox' 'gtk2' 'libglade' 'desktop-file-utils' 'libsm')
+install=${pkgname}.install
+source=("ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'config-file.patch')
+md5sums=('d45a1eab18aa25c18280821118368b97'
+ '51f5f110f8bc4a89dfb460c3dd4a3be8')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/config-file.patch
+
+ ./bootstrap
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/obconf/config-file.patch b/community/obconf/config-file.patch
new file mode 100644
index 000000000..ce7973f3d
--- /dev/null
+++ b/community/obconf/config-file.patch
@@ -0,0 +1,28 @@
+From: Dana Jansens <danakj@orodu.net>
+Date: Fri, 5 Aug 2011 16:05:10 +0000 (-0400)
+Subject: Load the rc.xml config file given on --config-file the same as Openbox (use the whole ...
+X-Git-Url: http://git.openbox.org/?p=dana%2Fobconf.git;a=commitdiff_plain;h=cc7a18807663313ef111d86a75844ded0416a889
+
+Load the rc.xml config file given on --config-file the same as Openbox (use the whole path given).
+---
+
+diff --git a/src/main.c b/src/main.c
+index 9035e8d..a576253 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -233,11 +233,10 @@ int main(int argc, char **argv)
+ }
+
+ xmlIndentTreeOutput = 1;
+- if (!obt_xml_load_config_file(parse_i,
+- "openbox",
+- (obc_config_file ?
+- obc_config_file : "rc.xml"),
+- "openbox_config"))
++ if (!((obc_config_file &&
++ obt_xml_load_file(parse_i, obc_config_file, "openbox_config")) ||
++ obt_xml_load_config_file(parse_i, "openbox", "rc.xml",
++ "openbox_config")))
+ {
+ obconf_error(_("Failed to load an rc.xml. You have probably failed to install Openbox properly."), TRUE);
+ exit_with_error = TRUE;
diff --git a/community/obconf/obconf.install b/community/obconf/obconf.install
new file mode 100644
index 000000000..6735f2dbe
--- /dev/null
+++ b/community/obconf/obconf.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/obexfs/PKGBUILD b/community/obexfs/PKGBUILD
new file mode 100644
index 000000000..c2c172748
--- /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' 'mips64el')
+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..a4517503c
--- /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' 'mips64el')
+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..215a4ffb7
--- /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.7
+pkgrel=2
+license=('MIT')
+arch=('i686' 'x86_64' 'mips64el')
+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=('000bff723e8d3d727a7edd5b5901b540')
+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..d9666f6d4
--- /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' 'mips64el')
+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..a5ead3a9b
--- /dev/null
+++ b/community/ogle-gui/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 55509 2011-09-13 21:28:22Z ebelanger $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Kritoke <kritoke@nospam.gamebox.net>
+
+pkgname=ogle-gui
+pkgver=0.9.2
+pkgrel=5
+pkgdesc="A gtk2 gui for ogle"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+source=(ftp://ftp.archlinux.org/other/community/ogle-gui/ogle_gui-${pkgver}.tar.gz)
+md5sums=('e685aa3046f9da13532ede9300f2f794')
+sha1sums=('0d73ec30852b9cd2a9714b5088f6ab6deecf097d')
+
+build() {
+ cd "${srcdir}/ogle_gui-${pkgver}"
+ ./configure --prefix=/usr --enable-gtk2
+ make
+}
+
+package() {
+ cd "${srcdir}/ogle_gui-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ogmrip/PKGBUILD b/community/ogmrip/PKGBUILD
new file mode 100644
index 000000000..59464ecff
--- /dev/null
+++ b/community/ogmrip/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 56646 2011-10-09 12:12:21Z jlichtblau $
+# 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.7
+pkgrel=2
+pkgdesc="Libraries and GTK2 interface for DVD ripping using mencoder"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ogmrip.sourceforge.net/"
+license=('GPL')
+depends=('libdvdread>=4.1.3' 'mplayer' 'mencoder' '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)
+sha256sums=('362060e4c1944f020f9a491d9a8af53cd3bf4f94d4f5beb8d3d855ebf17d9c2a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/usr/share
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ogmrip/ogmrip.changelog b/community/ogmrip/ogmrip.changelog
new file mode 100644
index 000000000..922355602
--- /dev/null
+++ b/community/ogmrip/ogmrip.changelog
@@ -0,0 +1,17 @@
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * ogmrip O.13.7-1
+
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * ogmrip O.13.6-1
+
+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/oidentd/PKGBUILD b/community/oidentd/PKGBUILD
new file mode 100644
index 000000000..8cbc50307
--- /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' 'mips64el')
+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..f410caaa9
--- /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' 'mips64el')
+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..462496844
--- /dev/null
+++ b/community/omniorb/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 45305 2011-04-19 11:39:08Z jelle $
+# 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.5
+pkgrel=1
+pkgdesc="A CORBA object request broker for C++ and Python."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://omniorb.sourceforge.net/"
+license=('GPL2' 'LGPL2')
+depends=('gcc-libs' 'python2' 'openssl')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/omniorb/omniORB-$pkgver.tar.bz2)
+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
+}
+package(){
+ cd $srcdir/omniORB-$pkgver
+ 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}
+}
+md5sums=('579af43a7ab1f2f88a845f1436e5238b')
diff --git a/community/oolite/PKGBUILD b/community/oolite/PKGBUILD
new file mode 100644
index 000000000..9bad89c5d
--- /dev/null
+++ b/community/oolite/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lone_Wolf <lonewolf@xs4all.nl>
+pkgname=oolite
+pkgver=1.75.3
+pkgrel=2
+pkgdesc="A space-sim based on the classic Elite"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://oolite-linux.berlios.de"
+license=('GPL2')
+depends=('gnustep-gui' 'sdl_mixer' 'mesa' 'espeak' 'nspr' 'python2' 'icu')
+makedepends=('gcc-objc' 'gnustep-make' 'curl' 'zip')
+options=(!makeflags)
+source=(oolite http://download2.berlios.de/oolite-linux/oolite-dev-source-${pkgver}.tar.bz2)
+md5sums=('b182976fade9b64a3b3702e2a8c72bf0'
+ 'e6c3d1e41f60f8cf410f766a3ecadcc7')
+
+build() {
+ cd $srcdir
+ cp -r ${srcdir}/oolite-dev-source-${pkgver} ${srcdir}/${pkgname}-build
+
+ cd ${srcdir}/${pkgname}-build
+ sed -i "/ADDITIONAL_OBJCFLAGS/s/=/= -fobjc-exceptions/" GNUmakefile
+ make -f libjs.make debug=no
+ make -f Makefile release
+}
+
+package() {
+ mkdir -p ${pkgdir}/usr/bin
+ mkdir -p ${pkgdir}/usr/share/{oolite,applications,pixmaps,doc/oolite}
+ cd ${srcdir}/${pkgname}-build
+ cp -r oolite.app/* ${pkgdir}/usr/share/oolite/
+#install shellscript and icon
+ install -D -m755 ../oolite ${pkgdir}/usr/bin/oolite
+ install -D -m644 installers/FreeDesktop/oolite-icon.png ${pkgdir}/usr/share/pixmaps/oolite-icon.png
+# copy .desktop file
+ install -D -m644 installers/FreeDesktop/oolite.desktop ${pkgdir}/usr/share/applications/oolite.desktop
+# documentation
+ install -D -m644 Doc/AdviceForNewCommanders.pdf Doc/OoliteReadMe.pdf Doc/OoliteRS.pdf ${pkgdir}/usr/share/doc/oolite/
+ }
+# vim:set ts=2 sw=2 et:
diff --git a/community/oolite/oolite b/community/oolite/oolite
new file mode 100755
index 000000000..6c9de2446
--- /dev/null
+++ b/community/oolite/oolite
@@ -0,0 +1,6 @@
+#!/bin/bash
+source /usr/share/GNUstep/Makefiles/GNUstep.sh
+if [ ! -d ~/.Oolite/AddOns ]; then
+ mkdir -p ~/.Oolite/AddOns
+fi
+/usr/share/oolite/oolite $@
diff --git a/community/open-vm-tools-modules/PKGBUILD b/community/open-vm-tools-modules/PKGBUILD
new file mode 100644
index 000000000..ee2fe3538
--- /dev/null
+++ b/community/open-vm-tools-modules/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 60455 2011-12-14 15:02:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
+
+pkgname=open-vm-tools-modules
+pkgver=2011.11.20
+_pkgsubver=535097
+pkgrel=2
+pkgdesc="kernel modules for the open source implementation of VMware Tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://open-vm-tools.sourceforge.net/"
+license=('GPL')
+makedepends=('libdnet' 'icu' 'uriparser' 'linux-headers')
+depends=("linux")
+install=$pkgname.install
+options=('!strip')
+source=("http://downloads.sourceforge.net/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz"
+ "modprobe.conf")
+md5sums=('428d803f6fe3424af88768fc2f88f9ae'
+ 'ac9b8e3cb798f5056ca92767ec705117')
+
+build() {
+ _kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -`
+ KERNEL_RELEASE=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version`
+
+ cd "$srcdir/open-vm-tools-${pkgver}-${_pkgsubver}"
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr \
+ --without-x --with-kernel-release=$KERNEL_RELEASE
+ (cd modules && make modules)
+}
+
+package() {
+ _kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -`
+ depends=("linux>=3.${_kernver}" "linux<3.`expr ${_kernver} + 1`")
+ KERNEL_VERSION=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version`
+ msg "Kernel = $KERNEL_VERSION"
+
+ cd "$srcdir/open-vm-tools-${pkgver}-${_pkgsubver}"
+ mkdir -p $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/
+ for MOD in `find -type f -name '*.ko'`; do
+ install -Dm644 $MOD $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/
+ done
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='$KERNEL_VERSION'/" $startdir/$pkgname.install
+ gzip $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/*.ko
+
+ install -D -m 644 ${srcdir}/modprobe.conf ${pkgdir}/etc/modprobe.d/${pkgname}.conf
+}
diff --git a/community/open-vm-tools-modules/modprobe.conf b/community/open-vm-tools-modules/modprobe.conf
new file mode 100644
index 000000000..b72fcc61a
--- /dev/null
+++ b/community/open-vm-tools-modules/modprobe.conf
@@ -0,0 +1,2 @@
+#VMware net driver
+install pcnet32 /sbin/modprobe -q --ignore-install vmxnet; /sbin/modprobe -q --ignore-install pcnet32 ; /bin/true;
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..187dfb1bb
--- /dev/null
+++ b/community/open-vm-tools-modules/open-vm-tools-modules.install
@@ -0,0 +1,24 @@
+KERNEL_VERSION='3.1.0-4-ARCH'
+
+post_install() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+
+ echo ">>> Enabling vmxnet driver in /etc/modprobe.d/open-vm-tools-modules.conf"
+ echo ">>> (this will disable pcnet32 driver)"
+ echo ">>>"
+ echo ">>> If vmxnet driver doesn't handle your NIC, you have to manually"
+ echo ">>> disable loading of pcnet32 driver"
+ echo ">>>"
+}
+
+post_upgrade() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_remove() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+
+ echo ">>>"
+ echo ">>> Remember to un-blacklist pcnet32 driver"
+ echo ">>>"
+}
diff --git a/community/open-vm-tools/PKGBUILD b/community/open-vm-tools/PKGBUILD
new file mode 100644
index 000000000..75fb0e9c7
--- /dev/null
+++ b/community/open-vm-tools/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 59402 2011-11-24 12:19:04Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
+
+pkgname=open-vm-tools
+pkgver=2011.11.20
+_pkgsubver=535097
+pkgrel=1
+pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://open-vm-tools.sourceforge.net/"
+license=('LGPL')
+depends=('open-vm-tools-modules' 'libdnet' 'icu' 'procps' 'glib2' 'uriparser' 'libsigc++' 'libxss')
+makedepends=('chrpath' 'doxygen' 'gtkmm' 'fuse' 'libxtst')
+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=('428d803f6fe3424af88768fc2f88f9ae'
+ '06f7448e274db2a911f582e276088fc9'
+ '199508b0d3fe6fa9b726d09170bf51f1'
+ '8c333a979578bdc0c3134c1dd6bb7353'
+ '79b0a14d86191fee70a4639da8bd7785'
+ '136ff53d0d3a303d09266a407fd2d215'
+ 'b55d15e2c4be396aad709aeca91033d3'
+ '73cc1a2665b0dd62427733d62ead8b9a'
+ '75a25d83417e683957321f97a00f8465')
+
+build() {
+ cd "$srcdir/$pkgname-${pkgver}-${_pkgsubver}"
+ [ $NOEXTRACT -eq 1 ] || {
+ sed -i 's#CFLAGS="$CFLAGS -Werror"##' configure configure.ac
+ }
+ [ -f Makefile ] || ./configure --prefix=/usr --without-kernel-modules
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-${pkgver}-${_pkgsubver}"
+
+ 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 -p1 -i $srcdir/scripts-network.patch etc/vmware-tools/scripts/vmware/network
+ patch -p1 -i $srcdir/scripts-network-FS19541.patch etc/vmware-tools/scripts/vmware/network
+
+ 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
+
+ ln -fs /usr/sbin/mount.vmhgfs $pkgdir/sbin/mount.vmhgfs
+
+ 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..555fa1535
--- /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 -f 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 -f $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..5fcb33ba8
--- /dev/null
+++ b/community/open-vm-tools/scripts-network-FS19541.patch
@@ -0,0 +1,38 @@
+--- network.orig 2011-11-09 18:42:28.000000000 +0400
++++ network 2011-11-09 18:46:22.000000000 +0400
+@@ -76,7 +76,7 @@
+ else
+ echo `date` "[rescue_nic] activating $nic ..."
+
+- ifup $nic
++ ifconfig $nic up
+ exitCode=`expr $exitCode \| $?`
+ fi
+ done < $activeList
+@@ -105,7 +105,7 @@
+ # `which' may be a bit noisy, so we'll shush it.
+ dbusSend=`which dbus-send 2>/dev/null`
+ rc=$?
+- if [ $rc = 0 ]; then
++ if [ $rc = 0 ] && [ `pidof dbus-daemon` ]; then
+ # NetworkManager 0.8.0
+ $dbusSend --system --print-reply \
+ --dest=org.freedesktop.NetworkManager \
+@@ -154,7 +154,7 @@
+ # `which' may be a bit noisy, so we'll shush it.
+ dbusSend=`which dbus-send 2>/dev/null`
+ rc=$?
+- if [ $rc = 0 ]; then
++ if [ $rc = 0 ] && [ `pidof dbus-daemon` ]; then
+ # NetworkManager 0.8.0
+ $dbusSend --system --print-reply \
+ --dest=org.freedesktop.NetworkManager \
+@@ -203,7 +203,7 @@
+
+ # 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 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
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..6a730239b
--- /dev/null
+++ b/community/openarena/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 60611 2011-12-14 23:55:11Z 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=4
+pkgdesc="A violent, sexy, multiplayer first person shooter based on the ioquake3 engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://openarena.ws/"
+license=('GPL')
+depends=('sdl' 'libvorbis' 'curl' 'openarena-data')
+makedepends=('openal' 'mesa')
+optdepends=('openal')
+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
+ strcpy-memmove.patch)
+md5sums=('49006bcb02b4e8ea3d06749e8f4e4887'
+ 'b2a0437da751cd50dd2351ed9e0c4e9d'
+ '4ee696eacc4b0350f9dbb5588dcd74a2'
+ 'c69f824dc500d436fc631b78b6a62dc8'
+ '17e2f4fa060ed97ff6fe1eaff647bcfb'
+ '229c87648c10e48b523c25d24aba8372'
+ '00649517a4dd08cd9c6e99d6703f01f1'
+ '723ec16d949f454588d62da499bbefca')
+
+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
+
+ patch -Np0 < $srcdir/strcpy-memmove.patch
+ sed -i 's/#define ALDRIVER_DEFAULT "libopenal.so.0"/#define ALDRIVER_DEFAULT "libopenal.so.1"/g' code/client/snd_openal.c
+
+ 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/openarena/strcpy-memmove.patch b/community/openarena/strcpy-memmove.patch
new file mode 100644
index 000000000..0123af61a
--- /dev/null
+++ b/community/openarena/strcpy-memmove.patch
@@ -0,0 +1,20 @@
+--- code/botlib/l_script.c.orig 2009-11-02 20:29:23.000000000 +0100
++++ code/botlib/l_script.c 2009-11-02 22:21:40.000000000 +0100
+@@ -1118,7 +1118,7 @@
+ {
+ if (*string == '\"')
+ {
+- strcpy(string, string+1);
++ memmove(string, string+1, strlen(string));
+ } //end if
+ if (string[strlen(string)-1] == '\"')
+ {
+@@ -1135,7 +1135,7 @@
+ {
+ if (*string == '\'')
+ {
+- strcpy(string, string+1);
++ memmove(string, string+1, strlen(string));
+ } //end if
+ if (string[strlen(string)-1] == '\'')
+ {
diff --git a/community/openbox/PKGBUILD b/community/openbox/PKGBUILD
new file mode 100644
index 000000000..bc424cf0a
--- /dev/null
+++ b/community/openbox/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 54954 2011-08-29 00:03:04Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+
+pkgname=openbox
+pkgver=3.5.0
+pkgrel=4
+pkgdesc="A window manager for the X11 windowing system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://openbox.org"
+license=('GPL')
+depends=('startup-notification' 'libxml2' 'libxinerama' 'libxrandr'
+ 'libxcursor' 'pango' 'imlib2')
+optdepends=('pyxdg: for the xdg-autostart script')
+groups=('lxde')
+install=${pkgname}.install
+options=('!libtool')
+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=('00441b53cf14c03566c8e82643544ff9'
+ '7ca3b5244bb092d46f5bcf1e2bdf4a18')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # FS#11455
+ patch -p1 -i "${srcdir}"/which-2.20.patch
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ data/autostart/openbox-xdg-autostart
+
+ ./configure --prefix=/usr \
+ --with-x \
+ --enable-startup-notification \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/openbox
+
+ make
+}
+
+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/community/openbox/openbox.install b/community/openbox/openbox.install
new file mode 100644
index 000000000..762a3ef14
--- /dev/null
+++ b/community/openbox/openbox.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "Place menu.xml, rc.xml and autostart in ~/.config/openbox"
+ echo "They can be found in /etc/xdg/openbox"
+}
diff --git a/community/openbox/which-2.20.patch b/community/openbox/which-2.20.patch
new file mode 100644
index 000000000..f947d6a98
--- /dev/null
+++ b/community/openbox/which-2.20.patch
@@ -0,0 +1,11 @@
+--- openbox-3.5.0/data/autostart/autostart.in~ 2011-08-02 15:50:01.963531310 +0000
++++ openbox-3.5.0/data/autostart/autostart.in 2011-08-02 15:51:57.277879458 +0000
+@@ -8,7 +8,7 @@
+ #
+ #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 &
+ #fi
+
diff --git a/community/openbsd-netcat/PKGBUILD b/community/openbsd-netcat/PKGBUILD
new file mode 100644
index 000000000..a1cf3b666
--- /dev/null
+++ b/community/openbsd-netcat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
+
+pkgname="openbsd-netcat"
+pkgver=1.89
+_pkgrel=4
+pkgrel=4.1
+pkgdesc="TCP/IP swiss army knife. OpenBSD variant."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://packages.debian.org/sid/netcat-openbsd"
+license=('BSD')
+depends=('glib2')
+makedepends=('gcc' 'make' 'pkg-config')
+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..3580262d1
--- /dev/null
+++ b/community/openlierox/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 46134 2011-05-04 07:37:58Z andrea $
+# 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=3
+pkgdesc="A real-time excessive Worms-clone"
+arch=('i686' 'x86_64' 'mips64el')
+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..0b5371b85
--- /dev/null
+++ b/community/openmotif/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 59163 2011-11-21 12:54:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Enrico Morelli <morelli@cerm.unifi.it>
+
+
+pkgname=openmotif
+pkgver=2.3.3
+pkgrel=1
+pkgdesc="Open Motif"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.motifzone.org/"
+license=('GPL')
+depends=(libxext libxp libxft libxt libxmu libpng libjpeg)
+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() {
+_automakever=`pacman -Q automake | cut -f 2 -d \ | cut -f 1 -d -`
+
+ cd $srcdir/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
+ touch NEWS AUTHORS
+
+ [ $NOEXTRACT -eq 1 ] || autoreconf -i;
+
+ [ $CARCH == "x86_64" ] && export CFLAGS="$CFLAGS -fPIC"
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --with-x --prefix=/usr
+ make -j1
+
+ make DESTDIR=$pkgdir install
+ # cleanup
+ (cd $pkgdir/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..98716a99b
--- /dev/null
+++ b/community/openmovieeditor/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 57799 2011-11-03 09:07:09Z spupykin $
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+# Maintainer: Robert Emil Berge
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=openmovieeditor
+pkgver=0.0.20090105
+pkgrel=8
+pkgdesc="A simple video editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://openmovieeditor.sourceforge.net/HomePage"
+license=('GPL')
+depends=('libquicktime' 'libsamplerate' 'fltk' 'jack'
+ 'portaudio' 'gmerlin-avdecoder' 'libxtst')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ce4f76c0b3e90aabf9c2d5c8dd31e9b1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset LDFLAGS
+
+ export CFLAGS="$CFLAGS -fpermissive"
+ export CXXFLAGS="$CXXFLAGS -fpermissive"
+ export CPPFLAGS="$CPPFLAGS -fpermissive"
+ sed -i 's|= sizes();|= (short*)sizes();|g' src/Fl_Split.cpp
+
+ # 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
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/openntpd/PKGBUILD b/community/openntpd/PKGBUILD
new file mode 100644
index 000000000..103c77db0
--- /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' 'mips64el')
+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..dedf985b9
--- /dev/null
+++ b/community/openscenegraph/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58415 2011-11-12 17:18:19Z ibiru $
+# 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=3.0.1
+pkgrel=2
+pkgdesc="An Open Source, high performance real-time graphics toolkit"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+#source=("http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-$pkgver.zip")
+md5sums=('c43a25d023e635c3566b2083d8e6d956')
+
+build() {
+ cd OpenSceneGraph-$pkgver
+ [ $NOEXTRACT -eq 1 ] || cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ sed -i 's|#include <curl/types.h>|//#include <curl/types.h>|' src/osgPlugins/curl/ReaderWriterCURL.cpp
+ make
+}
+
+package() {
+ cd OpenSceneGraph-$pkgver
+ 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/opensips/PKGBUILD b/community/opensips/PKGBUILD
new file mode 100644
index 000000000..17e50b215
--- /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' 'mips64el')
+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..848c6e3b5
--- /dev/null
+++ b/community/openssh-askpass/PKGBUILD
@@ -0,0 +1,30 @@
+# 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.2
+pkgrel=2
+pkgdesc='A plasma-like passphrase dialog for ssh'
+arch=('i686' 'x86_64' 'mips64el')
+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")
+
+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"
+}
+
+md5sums=('f4ed7ed95c727d1c3963007d9d24bdb8'
+ '961738244318f3723ba99cdcaac91a21')
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..7478fd4e9
--- /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' 'mips64el')
+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..b9c1ee579
--- /dev/null
+++ b/community/openttd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 60078 2011-12-04 22:02:23Z lcarlier $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=openttd
+pkgver=1.1.4
+pkgrel=1
+pkgdesc='An engine for running Transport Tycoon Deluxe.'
+arch=('i686' 'x86_64' 'mips64el')
+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.xz")
+md5sums=('d1c48ddf616bd0d269c4cd35ef8a8a39')
+
+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..73c31acad
--- /dev/null
+++ b/community/optipng/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59287 2011-11-22 15:27:27Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=optipng
+pkgver=0.6.5
+pkgrel=2
+pkgdesc='Compresses PNG files to a smaller size, without losing any information.'
+arch=('i686' 'x86_64' 'mips64el')
+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 -Dm0644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/orange/PKGBUILD b/community/orange/PKGBUILD
new file mode 100644
index 000000000..0a19f823c
--- /dev/null
+++ b/community/orange/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 53301 2011-08-02 17:49:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=orange
+pkgver=0.4
+pkgrel=3
+pkgdesc="a helper tool for synce"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/osdbattery/PKGBUILD b/community/osdbattery/PKGBUILD
new file mode 100644
index 000000000..a9b0a1ab5
--- /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' 'mips64el')
+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..9d4d49ff5
--- /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 'mips64el')
+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..3447089dd
--- /dev/null
+++ b/community/osiris/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 59237 2011-11-21 15:30:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: jlvsimoes
+
+pkgname=osiris
+pkgver=4.2.3
+pkgrel=3
+pkgdesc="A file integrity management system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://osiris.shmoo.com/"
+license=('custom')
+depends=('openssl' 'readline')
+install=$pkgname.install
+#source=(http://osiris.shmoo.com/data/osiris-$pkgver.tar.gz
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/osiris-$pkgver.tar.gz
+ osirismd.init
+ osirisd.init)
+md5sums=('1951c7dc0fe729af9ffaf58910340d12'
+ '44281b8fc30ab3d452c6f35d3539d7ff'
+ 'b859445803e4df59a4f82d7f411e1297')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/share/licenses/$pkgname/
+ install -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/license.txt
+ mkdir -p $pkgdir/etc/rc.d
+
+ ./configure --prefix=/usr --enable-fancy-cli --with-md-root-dir=/usr/share/$pkgname
+ make all
+
+ # 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=$pkgdir install
+
+ install -D -m755 $srcdir/osirismd.init $pkgdir/etc/rc.d/osirismd
+ install -D -m755 $srcdir/osirisd.init $pkgdir/etc/rc.d/osirisd
+ rm -rf $pkgdir/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..729d57143
--- /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' 'mips64el')
+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..687c33f1a
--- /dev/null
+++ b/community/oss/PKGBUILD
@@ -0,0 +1,91 @@
+# $Id: PKGBUILD 59729 2011-11-29 20:14:19Z bluewind $
+# Maintainer: Florian Pritz <bluewind@xinu.at>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=oss
+pkgver=4.2_2005
+pkgrel=2
+pkgdesc="Open Sound System UNIX audio architecture"
+arch=('i686' 'x86_64' 'mips64el')
+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)')
+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"
+ "rm-init-scripts.patch"
+ "rc-script"
+ "soundon.patch"
+ "remove-hal.patch"
+ )
+md5sums=('964b1ec63b48b22baba6688fe2fc0633'
+ 'b9a380a0ac8896390d71ac13676f27e1'
+ 'cbcbce5c03b127df5eafa8faa091492c'
+ '65f07fe241bfbf912f76d8b6d8f276b5'
+ 'cd7f1dc6166bba8c94d96f3a28e948a5')
+
+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}"
+
+ # Create build directory and configure
+ rm -rf build
+ mkdir build && cd build
+ "${srcdir}/${_dir}/configure" --enable-libsalsa=NO --regparm
+
+ msg "Building OSS."
+ make build
+
+ msg "Patching init scripts."
+ cd "${srcdir}/build/prototype"
+ rm usr/lib/oss/etc/S89oss
+ patch -p0 -i "${srcdir}/rm-init-scripts.patch"
+ patch -p0 -i "${srcdir}/soundon.patch"
+ # remove hal dependency
+ patch -p0 -i "${srcdir}/remove-hal.patch"
+ rm -rf usr/lib/oss/scripts/oss_usb-create-devices usr/lib/oss/scripts/90-oss_usb-create-device.fdi
+
+ sed -i 's#/lib/modules/$KERNEL_VERSION/kernel/#/lib/modules/$KERNEL_VERSION/extramodules/kernel/#g' usr/sbin/soundon
+ sed -i 's#/lib/modules/$UNAME/kernel/#/lib/modules/$UNAME/extramodules/kernel/#g' usr/lib/oss/build/install.sh
+ sed -i 's#mkdir /lib/modules#mkdir -p /lib/modules#' usr/lib/oss/build/install.sh
+}
+
+package() {
+ _dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl
+ cd "${srcdir}/${_dir}"
+
+ msg "Copying files."
+
+ # Install libflashsupport.so
+ install -dm755 "$pkgdir/usr/lib"
+ ln -s oss/lib/libflashsupport.so "$pkgdir/usr/lib/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}/rc-script" "${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/rc-script b/community/oss/rc-script
new file mode 100644
index 000000000..5c930107c
--- /dev/null
+++ b/community/oss/rc-script
@@ -0,0 +1,30 @@
+#!/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/remove-hal.patch b/community/oss/remove-hal.patch
new file mode 100644
index 000000000..27e2ef2de
--- /dev/null
+++ b/community/oss/remove-hal.patch
@@ -0,0 +1,20 @@
+Date: Tue Aug 2 16:37:31 CEST 2011
+Author: Florian Pritz <bluewind@xinu.at>
+This removes all hal dependencies
+
+References:
+http://www.archlinux.org/todo/92/
+
+--- usr/lib/oss/build/install_2011-08-02_162647.sh 2011-08-02 16:26:47.000000000 +0200
++++ usr/lib/oss/build/install.sh 2011-08-02 16:27:13.000000000 +0200
+@@ -336,10 +336,4 @@
+ echo "autosave_mixer yes" > $OSSLIBDIR/etc/userdefs
+ fi
+
+-# Hal 0.5.0+ hotplug
+-mkdir -p /usr/lib/hal/scripts
+-ln -sf $OSSLIBDIR/scripts/oss_usb-create-devices /usr/lib/hal/scripts/
+-mkdir -p /usr/share/hal/fdi/policy/20thirdparty/
+-ln -sf $OSSLIBDIR/scripts/90-oss_usb-create-device.fdi /usr/share/hal/fdi/policy/20thirdparty/
+-
+ exit 0
diff --git a/community/oss/rm-init-scripts.patch b/community/oss/rm-init-scripts.patch
new file mode 100644
index 000000000..981ff605f
--- /dev/null
+++ b/community/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/soundon.patch b/community/oss/soundon.patch
new file mode 100644
index 000000000..4702b8680
--- /dev/null
+++ b/community/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..452fc41ff
--- /dev/null
+++ b/community/ozerocdoff/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60103 2011-12-05 08:41:04Z spupykin $
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+
+pkgname=ozerocdoff
+pkgver=2
+pkgrel=4
+pkgdesc="Userspace driver for Option High Speed Mobile Devices"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pharscape.org/ozerocdoff.html"
+depends=('bash' 'libusb-compat')
+license=('GPL2')
+options=('!emptydirs')
+source=(udev.tar.gz::"http://www.pharscape.org/forum/index.php?action=dlattach;topic=545.0;attach=4"
+ "remove-old-rules.patch")
+md5sums=('88a78f9380d9591f8d20a657b72e3e5c'
+ '2b28c8310b615e7283c2c38f62533c4f')
+
+build() {
+ cd "${srcdir}/udev"
+ make clean
+ patch -p1 <$srcdir/remove-old-rules.patch
+ make
+}
+
+package() {
+ cd "${srcdir}/udev"
+ make DESTDIR="${pkgdir}" install
+ rm -rf $pkgdir/usr/lib/hal
+ rm -rf $pkgdir/usr/share/hal
+}
diff --git a/community/ozerocdoff/remove-old-rules.patch b/community/ozerocdoff/remove-old-rules.patch
new file mode 100644
index 000000000..0a5e7fecc
--- /dev/null
+++ b/community/ozerocdoff/remove-old-rules.patch
@@ -0,0 +1,64 @@
+diff -wbBur udev/hso.udev udev.my/hso.udev
+--- udev/hso.udev 2008-06-19 14:34:07.000000000 +0400
++++ udev.my/hso.udev 2011-12-05 12:36:34.000000000 +0400
+@@ -63,60 +63,6 @@
+ SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTR{hsotype}=="PCSC", SYMLINK+="wpcsc0"
+ GOTO="hso_tty_permission"
+
+-
+-############################### OLD SYNTAX ###############################
+-
+-LABEL="hso_old_syntax"
+-#RUN+="/binb/touch /tmp/udev-syntax-old"
+-
+-# enable Selective suspend in USB core system by a helper script
+-SUBSYSTEM=="usb", SYSFS{idVendor}=="0af0", SYSFS{bDeviceClass}=="ff", RUN+="/usr/sbin/osetsuspend udev %k"
+-
+-# send rezero command via ozerocdoff, which uses usblib for all known ZCOPTION devices, supported by bundled driver
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6711", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6731", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6751", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6771", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6791", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6811", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6911", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6951", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="6971", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7011", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7031", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7051", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7071", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7111", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7211", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7251", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7271", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7311", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="c031", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="d031", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="d033", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7301", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7361", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7401", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7501", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0af0", SYSFS{idProduct}=="7601", SYSFS{bDeviceClass}=="00", RUN+="/usr/sbin/ozerocdoff -wi 0x%s{idProduct}"
+-# Note SYSTEMS and ATTRS is not supported by udev from Xandros/EeePC
+-
+-# add device node links to all possible device
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Control", SYMLINK+="wctrl0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Application", SYMLINK+="wapp0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Application", SYMLINK+="wappa0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Application2",SYMLINK+="wappb0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Diagnostic", SYMLINK+="wdiag0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Diagnostic", SYMLINK+="wdiaga0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Diagnostic2", SYMLINK+="wdiagb0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="Modem", SYMLINK+="wmodem0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="GPS", SYMLINK+="wgps0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="GPS_Control", SYMLINK+="wgpsc0"
+-SUBSYSTEM=="tty", SYSFS{hsotype}=="PCSC", SYMLINK+="wpcsc0"
+-# Note use here SYSFS instead of ATTR to be compatible to Xandros/EeePC
+-# Note use no extra check for SUBSYSTEMS=="usb", ATTRS{DRIVERS}="hso", because it is not supported by Xandros/EeePC
+-
+-
+ ############################### COMMON SYNTAX ###############################
+
+ LABEL="hso_tty_permission"
diff --git a/community/p2c/PKGBUILD b/community/p2c/PKGBUILD
new file mode 100644
index 000000000..ddac30ed1
--- /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' 'mips64el')
+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..21ed7fa99
--- /dev/null
+++ b/community/p3scan/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 59176 2011-11-21 13:12:02Z 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' 'mips64el')
+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
+ unset CFLAGS
+ 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 $pkgdir/etc/rc.d $pkgdir/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..4f7436675
--- /dev/null
+++ b/community/packagekit/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id: PKGBUILD 56266 2011-10-04 10:14:17Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+pkgbase='packagekit'
+pkgname=('packagekit' 'packagekit-qt' 'packagekit-qt2' 'packagekit-python')
+pkgver=0.6.19
+pkgrel=1
+pkgdesc="A system designed to make installation and updates of packages easier."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.packagekit.org"
+license=('GPL')
+makedepends=('dbus-glib' 'gobject-introspection' 'gtk-doc' 'intltool'
+ 'networkmanager' 'pacman' 'pm-utils' 'polkit' 'python2' 'qt'
+ 'shared-mime-info' 'sqlite3' 'udev')
+options=('!libtool')
+source=("http://www.packagekit.org/releases/PackageKit-$pkgver.tar.xz")
+sha256sums=('961c6408de08ebaf15c09e74afd06918d699be8974b5c35c2c9663e5b12b5223')
+
+build() {
+ cd "$srcdir/PackageKit-$pkgver"
+
+ # TODO: remove when this is fixed upstream
+ find -name '*.moc' -print0 | xargs -0 rm
+
+ sed -i 's@SUBDIRS = test@SUBDIRS =@' 'backends/Makefile.in'
+ sed -i 's@python @python2 @' 'lib/python/packagekit/Makefile.in'
+ sed -i 's@bin/python@bin/python2@' 'lib/python/packagekit/'*.py
+
+ export PYTHON=/usr/bin/python2
+ ./configure --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 -s
+}
+
+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' 'udev')
+ 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"*
+ rm -rf "$pkgdir/usr/lib/pkgconfig/packagekit-qt"*
+ 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-qt2() {
+ depends=('packagekit' 'qt')
+ pkgdesc=('Qt bindings for PackageKit')
+
+ cd "$srcdir/PackageKit-$pkgver/lib/packagekit-qt2"
+
+ 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..75dee853a
--- /dev/null
+++ b/community/packagekit/alpm.patch
@@ -0,0 +1,253 @@
+diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
+index 0077329..ba993f0 100644
+--- a/backends/alpm/pk-backend-alpm.c
++++ b/backends/alpm/pk-backend-alpm.c
+@@ -29,6 +29,7 @@
+ #include "pk-backend-databases.h"
+ #include "pk-backend-error.h"
+ #include "pk-backend-groups.h"
++#include "pk-backend-transaction.h"
+
+ PkBackend *backend = NULL;
+ GCancellable *cancellable = NULL;
+diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
+index 6383175..255f1fb 100644
+--- a/backends/alpm/pk-backend-error.c
++++ b/backends/alpm/pk-backend-error.c
+@@ -25,20 +25,6 @@
+
+ #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)
+ {
+@@ -86,7 +72,6 @@ pk_backend_error (PkBackend *self, GError *error)
+
+ case PM_ERR_HANDLE_LOCK:
+ code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
+- pk_backend_output_locked (self);
+ break;
+
+ case PM_ERR_DB_OPEN:
+@@ -187,15 +172,6 @@ pk_backend_error (PkBackend *self, GError *error)
+ 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)
+ {
+diff --git a/backends/alpm/pk-backend-error.h b/backends/alpm/pk-backend-error.h
+index b01b06d..83fe4a5 100644
+--- a/backends/alpm/pk-backend-error.h
++++ b/backends/alpm/pk-backend-error.h
+@@ -32,6 +32,4 @@ enum {
+
+ 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-transaction.c b/backends/alpm/pk-backend-transaction.c
+index f919309..fdb840e 100644
+--- a/backends/alpm/pk-backend-transaction.c
++++ b/backends/alpm/pk-backend-transaction.c
+@@ -32,6 +32,9 @@ static off_t dtotal = 0;
+ static pmpkg_t *dpkg = NULL;
+ static GString *dfiles = NULL;
+
++static pmpkg_t *tpkg = NULL;
++static GString *toutput = NULL;
++
+ static gchar *
+ pk_backend_resolve_path (PkBackend *self, const gchar *basename)
+ {
+@@ -332,6 +335,53 @@ pk_backend_transaction_conv_cb (pmtransconv_t question, gpointer data1,
+ }
+
+ static void
++pk_backend_output_end (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++
++ tpkg = NULL;
++
++ if (toutput != NULL) {
++ pk_backend_output (self, toutput->str);
++ g_string_free (toutput, TRUE);
++ toutput = NULL;
++ }
++}
++
++static void
++pk_backend_output_start (PkBackend *self, pmpkg_t *pkg)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ if (tpkg != NULL) {
++ pk_backend_output_end (self);
++ }
++
++ tpkg = pkg;
++}
++
++void
++pk_backend_output (PkBackend *self, const gchar *output)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (output != NULL);
++
++ if (tpkg != NULL) {
++ if (toutput == NULL) {
++ toutput = g_string_new ("<b>");
++ g_string_append (toutput, alpm_pkg_get_name (tpkg));
++ g_string_append (toutput, "</b>\n");
++ }
++
++ g_string_append (toutput, output);
++ } else {
++ PkMessageEnum type = PK_MESSAGE_ENUM_UNKNOWN;
++ pk_backend_message (self, type, "%s", output);
++ }
++}
++
++static void
+ pk_backend_transaction_dep_resolve (PkBackend *self)
+ {
+ g_return_if_fail (self != NULL);
+@@ -355,6 +405,7 @@ pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
+
+ pk_backend_set_status (self, PK_STATUS_ENUM_INSTALL);
+ pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLING);
++ pk_backend_output_start (self, pkg);
+ }
+
+ static void
+@@ -374,20 +425,16 @@ pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
+
+ 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);
++ pk_backend_output (self, "Optional dependencies:\n");
+
+ for (i = optdepends; i != NULL; i = i->next) {
+- g_string_append_printf (depends, "%s\n",
+- (const gchar *) i->data);
++ const gchar *depend = i->data;
++ gchar *output = g_strdup_printf ("%s\n", depend);
++ pk_backend_output (self, output);
++ g_free (output);
+ }
+-
+- pk_backend_output (self, depends->str);
+- g_string_free (depends, TRUE);
+ }
++ pk_backend_output_end (self);
+ }
+
+ static void
+@@ -398,6 +445,7 @@ pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
+
+ pk_backend_set_status (self, PK_STATUS_ENUM_REMOVE);
+ pk_backend_pkg (self, pkg, PK_INFO_ENUM_REMOVING);
++ pk_backend_output_start (self, pkg);
+ }
+
+ static void
+@@ -413,6 +461,7 @@ pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
+
+ alpm_logaction ("removed %s (%s)\n", name, version);
+ pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
++ pk_backend_output_end (self);
+ }
+
+ static void
+@@ -438,6 +487,7 @@ pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
+
+ pk_backend_set_status (self, state);
+ pk_backend_pkg (self, pkg, info);
++ pk_backend_output_start (self, pkg);
+ }
+
+ static void
+@@ -463,22 +513,18 @@ pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *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);
++ pk_backend_output (self, "New optional dependencies:\n");
+
+ for (i = optdepends; i != NULL; i = i->next) {
+- g_string_append_printf (depends, "%s\n",
+- (const gchar *) i->data);
++ const gchar *depend = i->data;
++ gchar *output = g_strdup_printf ("%s\n", depend);
++ pk_backend_output (self, output);
++ g_free (output);
+ }
+
+- pk_backend_output (self, depends->str);
+-
+- g_string_free (depends, TRUE);
+ alpm_list_free (optdepends);
+ }
++ pk_backend_output_end (self);
+ }
+
+ static void
+@@ -896,6 +942,13 @@ pk_backend_transaction_end (PkBackend *self, GError **error)
+ alpm_option_set_dlcb (NULL);
+ alpm_option_set_totaldlcb (NULL);
+
++ if (dpkg != NULL) {
++ pk_backend_transaction_download_end (self);
++ }
++ if (tpkg != NULL) {
++ pk_backend_output_end (self);
++ }
++
+ if (alpm_trans_release () < 0) {
+ g_set_error_literal (error, ALPM_ERROR, pm_errno,
+ alpm_strerrorlast ());
+diff --git a/backends/alpm/pk-backend-transaction.h b/backends/alpm/pk-backend-transaction.h
+index 7bc1af0..6bb1d69 100644
+--- a/backends/alpm/pk-backend-transaction.h
++++ b/backends/alpm/pk-backend-transaction.h
+@@ -41,3 +41,6 @@ gboolean pk_backend_transaction_end (PkBackend *self,
+
+ gboolean pk_backend_transaction_finish (PkBackend *self,
+ GError *error);
++
++void pk_backend_output (PkBackend *self,
++ const gchar *output);
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..cbecb9018
--- /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' 'mips64el')
+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/pam-krb5/PKGBUILD b/community/pam-krb5/PKGBUILD
new file mode 100644
index 000000000..49647afef
--- /dev/null
+++ b/community/pam-krb5/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 46339 2011-05-05 11:43:20Z spupykin $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Ryan Corder <ryanc@greengrey.org>
+
+pkgname=pam-krb5
+pkgver=4.4
+pkgrel=2
+pkgdesc='A PAM module providing Kerberos v5 support.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.eyrie.org/~eagle/software/pam-krb5/'
+license=('custom')
+options=('!libtool')
+depends=('krb5' '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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..d27ce1bcd
--- /dev/null
+++ b/community/pam_mysql/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 44499 2011-04-07 20:43:51Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arjan Timmerman<arjan@archlinux.org>
+# Contributor: Manolis Tzanidakis
+pkgname=pam_mysql
+pkgver=0.7RC1
+pkgrel=4
+pkgdesc="A PAM module to authenticate users against mysql."
+arch=(i686 x86_64 'mips64el')
+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
+
+ sed -i 's/pam_mysql_la_LIBADD = /pam_mysql_la_LIBADD = -lpam/g' Makefile.in
+ ./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..d7dd9d79d
--- /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 'mips64el')
+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/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..41855fec5
--- /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' 'mips64el')
+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..da943848f
--- /dev/null
+++ b/community/paraview/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 58527 2011-11-13 15:58:19Z andrea $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Michele Mocciola <mickele>
+# Contributor: Simon Zilliken <simon____AT____zilliken____DOT____name>
+
+pkgname=paraview
+pkgver=3.10.1
+pkgrel=4
+pkgdesc='Parallel Visualization Application using VTK'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.paraview.org'
+license=('custom')
+depends=('qt' 'python2' 'libgl' 'libxml2' 'unixodbc' 'postgresql-libs' 'libxt' 'libmysqlclient' 'mesa' 'openmpi') #'hdf5'
+makedepends=('cmake' 'desktop-file-utils')
+source=("http://paraview.org/files/v${pkgver:0:4}/ParaView-${pkgver}.tar.gz"
+ 'paraview.png'
+ 'paraview.desktop'
+ 'fixkernelversioncheck.diff')
+md5sums=('d8a9d4a997a720589ffd57568bcdd449'
+ 'db623002bc71a257ddfdd0c9c7b14c3f'
+ '4e4b7172ed18171c37446fd7c4f1e8f5'
+ '9e137af23701f76fc727222ebac23389')
+
+build() {
+ cd ParaView-${pkgver}
+
+ # patch vtk to fix http://www.vtk.org/Bug/view.php?id=12568
+ # remove next pkgver bump
+ cd VTK
+ patch -Np1 -i ${srcdir}/fixkernelversioncheck.diff
+ cd ..
+
+ sed -i '20 i#include <stddef.h>' VTK/Utilities/vtkmetaio/metaUtils.cxx
+ sed -i 's/stddef.h/cstddef/' VTK/Wrapping/Python/vtkPythonUtil.cxx
+ sed -i '36 i#include <vtksys/cstddef>' VTK/Wrapping/Python/PyVTKObject.cxx
+
+ # 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_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 license
+ install -Dm644 ${srcdir}/ParaView-${pkgver}/License_v1.2.txt ${pkgdir}/usr/share/licenses/paraview/LICENSE
+
+ # Install desktop shortcuts
+ install -Dm644 ${srcdir}/paraview.png ${pkgdir}/usr/share/pixmaps/paraview.png
+ desktop-file-install --dir=${pkgdir}/usr/share/applications ${srcdir}/paraview.desktop
+
+ # Removes VTK plugin for designer - if you need, you can install vtk
+ #rm -rf ${pkgdir}/opt/paraview/plugins
+}
diff --git a/community/paraview/fixkernelversioncheck.diff b/community/paraview/fixkernelversioncheck.diff
new file mode 100644
index 000000000..165f07366
--- /dev/null
+++ b/community/paraview/fixkernelversioncheck.diff
@@ -0,0 +1,19 @@
+--- a/Utilities/vtkhdf5/ConfigureChecks.cmake
++++ b/Utilities/vtkhdf5/ConfigureChecks.cmake
+@@ -75,14 +75,14 @@ IF (HDF5_WANT_DCONV_EXCEPTION)
+ ENDIF (HDF5_WANT_DCONV_EXCEPTION)
+
+ SET (LINUX_LFS 0)
+-IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++IF (CMAKE_SYSTEM MATCHES "Linux")
+ # Linux Specific flags
+ ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
+ OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
+ IF (HDF5_ENABLE_LARGE_FILE)
+ SET (LARGEFILE 1)
+ ENDIF (HDF5_ENABLE_LARGE_FILE)
+-ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++ENDIF (CMAKE_SYSTEM MATCHES "Linux")
+ SET (HDF5_EXTRA_FLAGS)
+ IF (LINUX_LFS)
+ SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
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/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..7d7a812ff
--- /dev/null
+++ b/community/parcellite/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55624 2011-09-16 13:23:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=parcellite
+pkgver=1.0.2rc5
+pkgrel=1
+pkgdesc="Lightweight GTK+ clipboard manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://parcellite.sourceforge.net/"
+license=('GPL3')
+depends=('gtk2')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/parcellite/parcellite-$pkgver.tar.gz
+ history_menu_crash_patch)
+md5sums=('e7c818b93c7303daadf6093c6ebe79f9'
+ '8fd6e07fa907865ca4db7b3e13441ce6')
+
+build() {
+ cd "$srcdir/parcellite-$pkgver"
+ (cd src && patch -p0 <$srcdir/history_menu_crash_patch)
+ make distclean
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/parcellite/history_menu_crash_patch b/community/parcellite/history_menu_crash_patch
new file mode 100644
index 000000000..961106839
--- /dev/null
+++ b/community/parcellite/history_menu_crash_patch
@@ -0,0 +1,39 @@
+Index: main.c
+===================================================================
+--- main.c (revision 232)
++++ main.c (working copy)
+@@ -1199,24 +1199,28 @@
+ {
+ GString* string = g_string_new((gchar*)element->data);
+ /* Ellipsize text */
+- if (string->len > prefs.item_length)
++ glong len = g_utf8_strlen(string->str, string->len);
++ if (len > prefs.item_length)
+ {
+ switch (prefs.ellipsize)
+ {
+ case PANGO_ELLIPSIZE_START:
+- string = g_string_erase(string, 0, string->len-(prefs.item_length));
++ string = g_string_erase(string, 0, g_utf8_offset_to_pointer(string->str, len - prefs.item_length) - string->str);
+ string = g_string_prepend(string, "...");
+ break;
+ case PANGO_ELLIPSIZE_MIDDLE:
+- string = g_string_erase(string, (prefs.item_length/2), string->len-(prefs.item_length));
+- string = g_string_insert(string, (string->len/2), "...");
++ ; /* to avoid wierd gcc error */
++ gchar* p1 = g_utf8_offset_to_pointer(string->str, prefs.item_length / 2);
++ gchar* p2 = g_utf8_offset_to_pointer(string->str, len - prefs.item_length / 2);
++ string = g_string_erase(string, p1 - string->str, p2 - p1);
++ string = g_string_insert(string, p1 - string->str, "...");
+ break;
+ case PANGO_ELLIPSIZE_END:
+- string = g_string_truncate(string, prefs.item_length);
++ string = g_string_truncate(string, g_utf8_offset_to_pointer(string->str, prefs.item_length) - string->str);
+ string = g_string_append(string, "...");
+ break;
+ }
+- }
++ }
+ /* Remove control characters */
+ gsize i = 0;
+ while (i < string->len)
diff --git a/community/pari/PKGBUILD b/community/pari/PKGBUILD
new file mode 100644
index 000000000..01d2fc6d9
--- /dev/null
+++ b/community/pari/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 56828 2011-10-14 00:16:01Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=pari
+pkgver=2.5.0
+pkgrel=2
+pkgdesc='Computer algebra system designed for fast computations in number theory'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://pari.math.u-bordeaux.fr/'
+license=('GPL')
+depends=('gmp' 'readline' 'libx11')
+makedepends=('perl' 'texlive-core')
+optdepends=('perl: gphelp, tex2mail')
+source=("${url}pub/pari/unix/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('d96250cd8b3e426f548a832f2f44fdfd30fd32b6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./Configure --prefix=/usr --with-gmp --with-readline
+ make all
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make bench
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # 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/parole/PKGBUILD b/community/parole/PKGBUILD
new file mode 100644
index 000000000..38338fa4f
--- /dev/null
+++ b/community/parole/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 56327 2011-10-05 16:30:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: TDY <tdy@gmx.com>
+
+pkgname=parole
+pkgver=0.2.0.6
+pkgrel=1
+pkgdesc="A modern media player based on the GStreamer framework"
+arch=('i686' 'x86_64')
+url="http://goodies.xfce.org/projects/applications/parole/"
+license=('GPL')
+depends=('gstreamer0.10-base>=0.10.11' 'hicolor-icon-theme' 'libnotify>=0.4.1'
+ 'libxfcegui4>=4.6.0' 'taglib>=1.4')
+makedepends=('pkgconfig>=0.9.0' 'xfce4-dev-tools')
+optdepends=('xulrunner>=1.9.1: browser plugin')
+conflicts=('parole-media-player-git')
+options=('!libtool')
+install=parole.install
+source=(http://archive.xfce.org/src/apps/$pkgname/${pkgver%.*.*}/$pkgname-$pkgver.tar.bz2)
+md5sums=('5d7e5ab7535bdf89508a8d7e551f9187')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --libexecdir=/usr/lib --enable-taglib --enable-libnotify
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/parole/parole.install b/community/parole/parole.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/community/parole/parole.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/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..e3bed3e31
--- /dev/null
+++ b/community/parrot/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 58586 2011-11-16 05:16:04Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributer: mpie <michael.kyne-phillips1@ntlworld.com>
+
+pkgname=parrot
+pkgver=3.10.0
+_rel=devel
+#_rel=stable
+pkgrel=2
+pkgdesc="standalone virtual machine that can be used to execute bytecode compiled dynamic languages"
+arch=(i686 x86_64 'mips64el')
+url="http://www.parrotcode.org/"
+license=('GPL')
+depends=('gmp' 'gdbm' 'readline' 'icu' 'openssl' 'libffi')
+makedepends=('perl-json')
+optdepends=('freeglut')
+options=(!emptydirs !makeflags)
+source=(ftp://ftp.parrot.org/pub/parrot/releases/${_rel}/$pkgver/parrot-$pkgver.tar.gz)
+md5sums=('36a839beaef511f178b0607a03f1ff0f')
+
+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..9f8737f5f
--- /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' 'mips64el')
+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/passenger/PKGBUILD b/community/passenger/PKGBUILD
new file mode 100644
index 000000000..a1181cbb5
--- /dev/null
+++ b/community/passenger/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 59679 2011-11-29 10:41:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=passenger
+pkgver=3.0.11
+pkgrel=1
+_pkgdlnr=75548
+pkgdesc="mod_rails passenger"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.modrails.com"
+license=('GPL')
+depends=('apache' 'ruby' 'ruby-rack' 'curl')
+install=$pkgname.install
+options=('!emptydirs')
+source=(http://rubyforge.org/frs/download.php/${_pkgdlnr}/$pkgname-$pkgver.tar.gz
+ $pkgname-install-apache2-module.patch)
+md5sums=('9186d799e065ccad803cbc0289954f40'
+ '3d04eba10c55a955c378678d5df8497f')
+
+build(){
+ cd $srcdir/$pkgname-$pkgver
+ patch bin/passenger-install-apache2-module <$srcdir/passenger-install-apache2-module.patch
+ ./bin/passenger-install-apache2-module
+ mkdir -p $pkgdir/etc/httpd/modules/
+ cp ext/apache2/mod_passenger.so $pkgdir/etc/httpd/modules/mod_passenger.so
+ mkdir -p $pkgdir/usr/lib/passenger/
+ cp -R * $pkgdir/usr/lib/passenger/
+ mkdir -p $pkgdir/usr/lib/httpd
+ mv $pkgdir/etc/httpd/modules $pkgdir/usr/lib/httpd/modules
+}
diff --git a/community/passenger/passenger-install-apache2-module.patch b/community/passenger/passenger-install-apache2-module.patch
new file mode 100644
index 000000000..ee6080c1a
--- /dev/null
+++ b/community/passenger/passenger-install-apache2-module.patch
@@ -0,0 +1,5 @@
+105d104
+< wait
+179,180d177
+< else
+< wait
diff --git a/community/passenger/passenger.install b/community/passenger/passenger.install
new file mode 100644
index 000000000..9c683e7cd
--- /dev/null
+++ b/community/passenger/passenger.install
@@ -0,0 +1,32 @@
+post_install() {
+ echo "Please edit your Apache configuration file, and add these lines:"
+ echo ""
+ echo "LoadModule passenger_module /var/aur/passenger3/src/passenger-3.0.0/ext/apache2/mod_passenger.so"
+ echo "PassengerRoot /var/aur/passenger3/src/passenger-3.0.0"
+ echo "PassengerRuby /opt/ruby1.8/bin/ruby"
+ echo ""
+ echo "After you restart Apache, you are ready to deploy any number of Ruby on Rails"
+ echo "applications on Apache, without any further Ruby on Rails-specific"
+ echo "configuration!"
+ echo ""
+ echo ""
+ echo "Deploying a Ruby on Rails application: an example"
+ echo ""
+ echo "Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host"
+ echo "to your Apache configuration file, and set its DocumentRoot to"
+ echo "/somewhere/public, like this:"
+ echo ""
+ echo "<VirtualHost *:80>"
+ echo " ServerName www.yourhost.com"
+ echo " DocumentRoot /somewhere/public # <-- be sure to point to 'public'!"
+ echo " <Directory /somewhere/public>"
+ echo " AllowOverride all # <-- relax Apache security settings"
+ echo " Options -MultiViews # <-- MultiViews must be turned off"
+ echo " </Directory>"
+ echo "</VirtualHost>"
+ echo ""
+ echo "And that's it! You may also want to check the Users Guide for security and"
+ echo "optimization tips, troubleshooting and other useful information:"
+ echo ""
+ echo "/var/aur/passenger3/src/passenger-3.0.0/doc/Users guide Apache.html"
+}
diff --git a/community/patchage/PKGBUILD b/community/patchage/PKGBUILD
new file mode 100644
index 000000000..033929668
--- /dev/null
+++ b/community/patchage/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 56003 2011-09-28 17:57:04Z 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=2
+pkgdesc="A modular patch bay for audio and MIDI systems"
+arch=(i686 x86_64 'mips64el')
+url="http://drobilla.net/software/patchage"
+license=('GPL')
+depends=('dbus-glib' 'libglademm' 'hicolor-icon-theme'
+ 'raul' 'flowcanvas<1.0.0' '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..d7c3ec534
--- /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' 'mips64el')
+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..7e452bd3b
--- /dev/null
+++ b/community/pawm/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 59172 2011-11-21 13:08:19Z 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' 'mips64el')
+url="http://www.pleyades.net/pawm/"
+license=("GPL")
+depends=('libxft' 'libxpm' 'libxrandr')
+makedepends=('cmake')
+source=(http://www.pleyades.net/pawm/files/pawm-$pkgver.tar.gz)
+md5sums=('cc004865f5b5d8118e68154857b913a2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX=/usr
+ make
+ make install DESTDIR=$pkgdir
+}
diff --git a/community/pbzip2/PKGBUILD b/community/pbzip2/PKGBUILD
new file mode 100644
index 000000000..8cf2f8700
--- /dev/null
+++ b/community/pbzip2/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 57784 2011-11-02 15:50:11Z foutrelis $
+# Contributor: Vasco Costa <vasco dot costa at geekslot dot com>
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+
+pkgname=pbzip2
+pkgver=1.1.6
+pkgrel=1
+pkgdesc="Parallel implementation of the bzip2 block-sorting file compressor"
+arch=(i686 x86_64 'mips64el')
+url="http://compression.ca/pbzip2/"
+license=('BSD')
+depends=('bzip2' 'gcc-libs')
+source=(http://compression.ca/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('86bd6d58e5a6c13cf8c709620ebfe186fca423c2724225bb30431fa7a453aee2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ 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/PKGBUILD b/community/pcb/PKGBUILD
new file mode 100644
index 000000000..3409bbad0
--- /dev/null
+++ b/community/pcb/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id$
+
+# Contributor: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=pcb
+pkgver=20110918
+pkgrel=2
+pkgdesc='Interactive printed circuit board editor'
+url='http://pcb.gpleda.org/'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gtkglext' 'gd' 'hicolor-icon-theme')
+optdepends=('tk: additional tools'
+ 'tcl: additional tools'
+ 'perl: additional tools')
+makedepends=('intltool' 'tk')
+source=("http://downloads.sourceforge.net/pcb/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('53ca27797d4db65a068b56f157e3ea6c5c29051f')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure \
+ --prefix=/usr \
+ --enable-dbus \
+ --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
+ rm "${pkgdir}"/usr/include/gts.h
+ rm "${pkgdir}"/usr/lib/libgts.a
+ rmdir "${pkgdir}"/usr/include
+ rmdir "${pkgdir}"/usr/lib
+}
diff --git a/community/pcb/install b/community/pcb/install
new file mode 100644
index 000000000..62ce80440
--- /dev/null
+++ b/community/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/pcmanfm/PKGBUILD b/community/pcmanfm/PKGBUILD
new file mode 100644
index 000000000..1880c5743
--- /dev/null
+++ b/community/pcmanfm/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Unknown47 <unknown47r@gmail.com>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=pcmanfm
+pkgver=0.9.10
+pkgrel=1
+pkgdesc="File manager of the LXDE Desktop"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pcmanfm.sourceforge.net/"
+license=('GPL')
+groups=('lxde')
+depends=('gtk2' 'desktop-file-utils' 'libfm' 'lxmenu-data')
+makedepends=('intltool' 'pkgconfig')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-$pkgver.tar.gz)
+md5sums=('d34a3530a6c5dcd674d23021d71c3e95')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/pcsc-perl/PKGBUILD b/community/pcsc-perl/PKGBUILD
new file mode 100644
index 000000000..94dceea86
--- /dev/null
+++ b/community/pcsc-perl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 50836 2011-07-01 18:53:03Z bluewind $
+# 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=2
+pkgdesc="A Perl Module for PC/SC SmartCard access"
+arch=('i686' 'x86_64' 'mips64el')
+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..a22b0529b
--- /dev/null
+++ b/community/pcsc-tools/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 59828 2011-11-30 21:11: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=5
+pkgdesc="PC/SC Architecture smartcard tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ludovic.rousseau.free.fr/softwares/pcsc-tools/"
+license=('GPL')
+depends=('pcsclite' 'pcsc-perl' 'gtk2-perl' 'glib-perl')
+makedepends=('pkg-config')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}/usr" install
+}
diff --git a/community/pcsclite/PKGBUILD b/community/pcsclite/PKGBUILD
new file mode 100644
index 000000000..b2de20b24
--- /dev/null
+++ b/community/pcsclite/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 60080 2011-12-04 22:03:31Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Daniel Plaza <daniel.plaza.espi@gmail.com>
+
+pkgname=pcsclite
+pkgver=1.8.1
+pkgrel=2
+pkgdesc="PC/SC Architecture smartcard middleware library"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://alioth.debian.org/projects/pcsclite/"
+license=('BSD')
+depends=('udev')
+makedepends=('pkgconfig')
+options=('!libtool' '!docs')
+source=("https://alioth.debian.org/frs/download.php/3687/pcsc-lite-${pkgver}.tar.bz2"
+ 'pcscd')
+md5sums=('fd035e4f610eba6fa545159e60d0d780'
+ 'c97b6bce695222efb0f003d8e8369010')
+
+build() {
+ cd "${srcdir}/pcsc-lite-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --enable-libudev \
+ --sysconfdir=/etc \
+ --enable-ipcdir=/run/pcscd \
+ --enable-usbdropdir=/usr/lib/pcsc/drivers \
+ --with-systemdsystemunitdir=/lib/systemd/system
+
+ 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..1dc5e0166
--- /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=/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/pcsxr/PKGBUILD b/community/pcsxr/PKGBUILD
new file mode 100644
index 000000000..09c3ca5ed
--- /dev/null
+++ b/community/pcsxr/PKGBUILD
@@ -0,0 +1,28 @@
+## Maintainer: schuay <jakob.gruber@gmail.com>
+## Contributor: quantax -- contact via Arch Linux forum or AUR
+## Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=pcsxr
+pkgver=1.9.92
+pkgrel=3
+pkgdesc='A Sony PlayStation emulator based on the PCSX-df Project'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://pcsxr.codeplex.com/'
+license=('GPL')
+depends=('libcdio' 'libgl' 'libglade' 'libxtst' 'libxv' 'sdl' 'mesa')
+conflicts=('pcsx-df')
+_pkgurl="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=$pkgname&DownloadId=140521&FileTime=129254829621800000&Build=$(wget -qO - http://www.codeplex.com/ | sed -nr 's/^[[:space:]]*Version [[:digit:]]{4}\.([[:digit:]]{1,2}\.){2}([[:digit:]]+)[[:space:]]*$/\2/p' | tail -n 1)"
+source=($pkgname-$pkgver.tar.bz2::$_pkgurl)
+md5sums=('28411aed0b4424f97227d94bdefaec83')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --enable-libcdio --enable-opengl
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/pdf2djvu/PKGBUILD b/community/pdf2djvu/PKGBUILD
new file mode 100644
index 000000000..7e30d453c
--- /dev/null
+++ b/community/pdf2djvu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58479 2011-11-13 13:51:40Z jelle $
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Jelle van der Waa <jelle@vdwaa.nl>
+
+pkgname=pdf2djvu
+pkgver=0.7.11
+pkgrel=3
+pkgdesc="Creates DjVu files from PDF files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pdf2djvu.googlecode.com"
+license=('GPL')
+depends=('poppler' 'djvulibre' 'libxslt' 'gcc-libs')
+makedepends=('pstreams')
+source=("http://pdf2djvu.googlecode.com/files/${pkgname}_${pkgver}.tar.gz")
+md5sums=('cdc0cbb46512aaf7109d6ebc7aef1a7a')
+
+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=('37c3d5a31c155bc65a39912da4c6bce1')
diff --git a/community/pdf2svg/PKGBUILD b/community/pdf2svg/PKGBUILD
new file mode 100644
index 000000000..c20098d2a
--- /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=6
+pkgdesc="A pdf to svg converter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.cityinthesky.co.uk/pdf2svg.html"
+license=('GPL')
+depends=('poppler-glib' 'gtk2' 'glib2')
+source=("http://www.cityinthesky.co.uk/_media/opensource/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+
+md5sums=('59b3b9768166f73b77215e95d91f0a9d')
diff --git a/community/pdfedit/PKGBUILD b/community/pdfedit/PKGBUILD
new file mode 100644
index 000000000..47e6293fa
--- /dev/null
+++ b/community/pdfedit/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Firmicus <firmicus α gmx δ net>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pdfedit
+pkgver=0.4.5
+pkgrel=2
+pkgdesc='Full featured editor for manipulating PDF documents'
+arch=('i686' 'x86_64' 'mips64el')
+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
+ ./configure --prefix=/usr --with-qmake=/opt/qt/bin/qmake
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make INSTALL_ROOT="${pkgdir}" install
+
+ install -Dm0644 ../pdfedit.desktop "${pkgdir}/usr/share/applications/pdfedit.desktop"
+ install -Dm0644 ../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..47b15bfea
--- /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' 'mips64el')
+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..9b79ad428
--- /dev/null
+++ b/community/pdmenu/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59165 2011-11-21 13:00:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pdmenu
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="simple full screen menu program"
+arch=('i686' 'x86_64' 'mips64el')
+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=('a7d5315119fd18a81cc3d1e578f8d3f8')
+
+build() {
+ cd $srcdir/pdmenu
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/pdmenu
+ make INSTALL_PREFIX=$pkgdir install
+}
diff --git a/community/pdnsd/PKGBUILD b/community/pdnsd/PKGBUILD
new file mode 100644
index 000000000..3b6a0d55a
--- /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 'mips64el')
+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..03f87e9e6
--- /dev/null
+++ b/community/performous/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 59954 2011-12-02 20:59:56Z ibiru $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=performous
+pkgver=0.6.1
+pkgrel=11
+pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://performous.org/"
+license=('GPL')
+depends=('boost-libs>=1.48' 'imagemagick' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' 'opencv' 'librsvg')
+#depends=('boost-libs>=1.48' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' \
+# 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo')
+makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.48')
+optdepends=('performous-freesongs: free songs for performous')
+source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2
+ boost-filesystem-v3.patch
+ ffmpeg-0.8.patch::"http://performous.git.sourceforge.net/git/gitweb.cgi?p=performous/performous;a=patch;h=18449f6e56451f68b980c8359a4d1dc06f82db1a")
+md5sums=('451a759de77984b5a699e91107fe52e2'
+ '42a8c825d80b0de16bd5752d2a80e585'
+ 'ff0ffa681dfaa09c4f42133a65309bf0')
+
+build() {
+ cd ${srcdir}/Performous-${pkgver}-Source
+
+ # fix to built against boost 1.46 and later, upstream (git) now support v3
+ patch -Np1 -i ../boost-filesystem-v3.patch
+ # fix with ffmpeg-0.8
+ patch -Np1 -i ../ffmpeg-0.8.patch
+
+ mkdir -p build
+ cd build
+
+ # fix config loading with libxml++
+ export LDFLAGS=${LDFLAGS/-Wl,--as-needed/}
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr ..
+
+ make
+}
+
+package() {
+ cd ${srcdir}/Performous-${pkgver}-Source/build
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/performous/boost-filesystem-v3.patch b/community/performous/boost-filesystem-v3.patch
new file mode 100644
index 000000000..22dd07213
--- /dev/null
+++ b/community/performous/boost-filesystem-v3.patch
@@ -0,0 +1,135 @@
+diff --git a/game/backgrounds.cc b/game/backgrounds.cc
+index 7fd3cd0..cdedefb 100644
+--- a/game/backgrounds.cc
++++ b/game/backgrounds.cc
+@@ -55,8 +55,13 @@ void Backgrounds::reload_internal(fs::path const& parent) {
+ for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) {
+ fs::path p = dirIt->path();
+ if (fs::is_directory(p)) { reload_internal(p); continue; }
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename
+ std::string path = p.directory_string(); // Path without filename
++#else
++ std::string name = p.filename().string(); // File basename
++ std::string path = p.string(); // Path without filename
++#endif
+ path.erase(path.size() - name.size());
+ if (!regex_match(name.c_str(), match, expression)) continue;
+ {
+diff --git a/game/cache.cc b/game/cache.cc
+index 69974e2..0f1edd0 100644
+--- a/game/cache.cc
++++ b/game/cache.cc
+@@ -9,7 +9,11 @@ namespace cache {
+ fs::path constructSVGCacheFileName(fs::path const& svgfilename, double factor){
+ fs::path cache_filename;
+ std::string const lod = (boost::format("%.2f") % factor).str();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string const cache_basename = svgfilename.filename() + ".cache_" + lod + ".png";
++#else
++ std::string const cache_basename = svgfilename.filename().string() + ".cache_" + lod + ".png";
++#endif
+
+ if (isThemeResource(svgfilename)) {
+ std::string const theme_name = (config["game/theme"].s().empty() ? "default" : config["game/theme"].s());
+diff --git a/game/filemagic.hh b/game/filemagic.hh
+index bf87ded..29e81fe 100644
+--- a/game/filemagic.hh
++++ b/game/filemagic.hh
+@@ -71,7 +71,11 @@ namespace filemagic {
+ // For now, just check the extension an assume it's not lying.
+
+ // Get file extension in lower case
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string ext = filename.extension();
++#else
++ std::string ext = filename.extension().string();
++#endif
+ // somehow this does not convert the extension to lower case:
+ //std::for_each(ext.begin(), ext.end(), static_cast<int(*)(int)>(std::tolower));
+ std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower );
+diff --git a/game/fs.cc b/game/fs.cc
+index e34a784..767a7ab 100644
+--- a/game/fs.cc
++++ b/game/fs.cc
+@@ -128,7 +128,11 @@ std::string getThemePath(std::string const& filename) {
+
+ bool isThemeResource(fs::path filename){
+ try {
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string themefile = getThemePath(filename.filename());
++#else
++ std::string themefile = getThemePath(filename.filename().string());
++#endif
+ return themefile == filename;
+ } catch (...) { return false; }
+ }
+diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
+index 38e163b..db15d79 100644
+--- a/game/songparser-ini.cc
++++ b/game/songparser-ini.cc
+@@ -104,7 +104,11 @@ void SongParser::iniParseHeader() {
+ // Search the dir for the music files
+ for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) {
+ boost::filesystem::path p = dirIt->path();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename (notes.txt)
++#else
++ std::string name = p.filename().string(); // File basename (notes.txt)
++#endif
+ if (regex_match(name.c_str(), match, midifile)) {
+ s.midifilename = name;
+ } else if (regex_match(name.c_str(), match, audiofile_background)) {
+diff --git a/game/songparser.cc b/game/songparser.cc
+index 2b7b9b4..ac9f3f6 100644
+--- a/game/songparser.cc
++++ b/game/songparser.cc
+@@ -100,7 +100,11 @@ SongParser::SongParser(Song& s):
+
+ for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) {
+ boost::filesystem::path p = dirIt->path();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename
++#else
++ std::string name = p.filename().string(); // File basename
++#endif
+ if (m_song.cover.empty() && regex_match(name.c_str(), match, coverfile)) {
+ m_song.cover = name;
+ } else if (m_song.background.empty() && regex_match(name.c_str(), match, backgroundfile)) {
+diff --git a/game/songs.cc b/game/songs.cc
+index 62ab26d..afab383 100644
+--- a/game/songs.cc
++++ b/game/songs.cc
+@@ -67,8 +67,13 @@ void Songs::reload_internal(fs::path const& parent) {
+ for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) {
+ fs::path p = dirIt->path();
+ if (fs::is_directory(p)) { reload_internal(p); continue; }
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename (notes.txt)
+ std::string path = p.directory_string(); // Path without filename
++#else
++ std::string name = p.filename().string(); // File basename (notes.txt)
++ std::string path = p.string(); // Path without filename
++#endif
+ path.erase(path.size() - name.size());
+ if (!regex_match(name.c_str(), match, expression)) continue;
+ try {
+diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh
+index 58e19dc..8895d94 100644
+--- a/tools/ss_helpers.hh
++++ b/tools/ss_helpers.hh
+@@ -10,7 +10,11 @@ extern "C" void xmlLogger(void* logger, char const* msg, ...) { if (logger) *(st
+ void enableXMLLogger(std::ostream& os = std::cerr) { xmlSetGenericErrorFunc(&os, xmlLogger); }
+ void disableXMLLogger() { xmlSetGenericErrorFunc(NULL, xmlLogger); }
+
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string filename(boost::filesystem::path const& p) { return *--p.end(); }
++#else
++std::string filename(boost::filesystem::path const& p) { return p.filename().string(); }
++#endif
+
+ /** Fix Singstar's b0rked XML **/
+ std::string xmlFix(std::vector<char> const& data) {
+--
+1.7.4.1
+
diff --git a/community/perl-berkeleydb/PKGBUILD b/community/perl-berkeleydb/PKGBUILD
new file mode 100644
index 000000000..ccccee3f5
--- /dev/null
+++ b/community/perl-berkeleydb/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 56001 2011-09-28 15:01:26Z 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.49
+pkgrel=1
+pkgdesc="Interface to Berkeley DB version 2, 3 or 4"
+arch=('i686' 'x86_64' 'mips64el')
+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=('8a1883f87ba82fc1614a636c8f899ea5')
+
+build() {
+ cd $srcdir/BerkeleyDB-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ _dbver=`pacman -Q db | cut -d\ -f2 | cut -d- -f1`
+ depends=('perl' "db=$_dbver")
+
+ cd $srcdir/BerkeleyDB-$pkgver
+ 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..31173e5b0
--- /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=4
+pkgdesc="Inheritable, overridable class data "
+arch=('i686' 'x86_64' 'mips64el')
+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..e42ba31e7
--- /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=3
+pkgdesc="Provide utility methods for factory classes"
+arch=(i686 x86_64 'mips64el')
+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..def16e65f
--- /dev/null
+++ b/community/perl-class-methodmaker/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 47471 2011-05-23 15:46:41Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-class-methodmaker
+pkgver=2.18
+pkgrel=4
+pkgdesc="Create generic class methods"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/Class-MethodMaker"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/S/SC/SCHWIGON/Class-MethodMaker-${pkgver}.tar.gz")
+md5sums=('99435d78e0a1754b102fe39597c6c3df')
+
+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..a2ae2b1a7
--- /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=3
+pkgdesc='Recursive copy of nested objects.'
+arch=('i686' 'x86_64' 'mips64el')
+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..a45d200e7
--- /dev/null
+++ b/community/perl-crypt-blowfish/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 47477 2011-05-23 15:51:28Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-crypt-blowfish
+pkgver=2.12
+pkgrel=3
+pkgdesc="Perl/CPAN Module Crypt::Blowfish : XSbased implementation of Blowfish"
+arch=("i686" "x86_64" 'mips64el')
+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..43982fb94
--- /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=3
+pkgdesc="Perl DES encryption module"
+arch=('i686' 'x86_64' 'mips64el')
+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..721249b20
--- /dev/null
+++ b/community/perl-crypt-openssl-bignum/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 47483 2011-05-23 15:54:16Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-crypt-openssl-bignum
+pkgver=0.04
+pkgrel=5
+pkgdesc="OpenSSL's multiprecision integer arithmetic "
+arch=('i686' 'x86_64' 'mips64el')
+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..d66f44187
--- /dev/null
+++ b/community/perl-crypt-openssl-random/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 47486 2011-05-23 15:55:23Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-crypt-openssl-random
+pkgver=0.04
+pkgrel=5
+pkgdesc="Interface to OpenSSL PRNG methods"
+arch=('i686' 'x86_64' 'mips64el')
+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..9fe5c09c8
--- /dev/null
+++ b/community/perl-crypt-openssl-rsa/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56403 2011-10-07 09:48:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-crypt-openssl-rsa
+pkgver=0.28
+pkgrel=1
+pkgdesc="Interface to OpenSSL RSA methods"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/Crypt-OpenSSL-RSA"
+depends=('perl-crypt-openssl-random' 'perl-crypt-openssl-bignum')
+license=('GPL')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/P/PE/PERLER/Crypt-OpenSSL-RSA-$pkgver.tar.gz")
+md5sums=('86217a5036fc63779c30420b5fd84129')
+
+build() {
+ cd $srcdir/Crypt-OpenSSL-RSA-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/Crypt-OpenSSL-RSA-$pkgver
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-curses/PKGBUILD b/community/perl-curses/PKGBUILD
new file mode 100644
index 000000000..fb82f9368
--- /dev/null
+++ b/community/perl-curses/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 47492 2011-05-23 15:58:40Z 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=3
+pkgdesc="Character screen handling and windowing"
+arch=('i686' 'x86_64' 'mips64el')
+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..840da26ba
--- /dev/null
+++ b/community/perl-data-structure-util/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 47495 2011-05-23 16:00:16Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-data-structure-util
+pkgver=0.15
+pkgrel=4
+pkgdesc="Perl/CPAN Module Data::Structure::Util"
+arch=("i686" "x86_64" 'mips64el')
+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..940d700a3
--- /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=5
+pkgdesc="Create DateTime parser classes and objects"
+arch=('i686' 'x86_64' 'mips64el')
+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-mail/PKGBUILD b/community/perl-datetime-format-mail/PKGBUILD
new file mode 100644
index 000000000..c2e9758d1
--- /dev/null
+++ b/community/perl-datetime-format-mail/PKGBUILD
@@ -0,0 +1,26 @@
+# 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=7
+pkgdesc="Convert between DateTime and RFC2822/822 formats "
+arch=('i686' 'x86_64' 'mips64el')
+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 $srcdir/DateTime-Format-Mail-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+package() {
+ cd $srcdir/DateTime-Format-Mail-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-datetime/PKGBUILD b/community/perl-datetime/PKGBUILD
new file mode 100644
index 000000000..19a115798
--- /dev/null
+++ b/community/perl-datetime/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 55077 2011-09-02 08:37:50Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-datetime
+pkgver=0.70
+pkgrel=3
+pkgdesc="A complete, easy to use date and time object"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'perl-math-round')
+LC_NUMERIC=C
+provides=("perl-datetime=`printf %.4f $pkgver`")
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-$pkgver.tar.gz)
+md5sums=('228a3ca93b49e308fc7a3b7a47341ab3')
+
+build() {
+ cd $srcdir/DateTime-$pkgver
+ perl Build.PL installdirs=vendor destdir="$pkgdir/"
+ ./Build
+}
+
+check() {
+ cd $srcdir/DateTime-$pkgver
+# ./Build test
+ true
+}
+
+package() {
+ cd $srcdir/DateTime-$pkgver
+ ./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..0901da771
--- /dev/null
+++ b/community/perl-dbd-odbc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 60400 2011-12-13 10:29:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-dbd-odbc
+pkgver=1.33
+pkgrel=1
+pkgdesc="ODBC Driver for DBI"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/DBD-ODBC/"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi' 'perl' 'unixodbc')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-${pkgver}.tar.gz")
+md5sums=('3e44ea4eb4b0bb711eea93632b76de17')
+
+build() {
+ cd DBD-ODBC-${pkgver}
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd DBD-ODBC-${pkgver}
+ 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..d2e9c663b
--- /dev/null
+++ b/community/perl-dbd-pg/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47753 2011-05-25 13:27:50Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-dbd-pg
+pkgver=2.18.1
+pkgrel=1
+pkgdesc="Postgres Driver for DBI"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1f4a837b3d79789ad6854443fce7a901')
+
+build() {
+ cd DBD-Pg-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd DBD-Pg-${pkgver}
+
+ 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..35e26ee90
--- /dev/null
+++ b/community/perl-dbd-sqlite2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47756 2011-05-25 13:30:12Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-dbd-sqlite2
+pkgver=0.33
+pkgrel=7
+pkgdesc="Perl/CPAN Module DBD::SQLite2"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/DBD-SQLite2"
+license=("GPL" "PerlArtistic")
+depends=("perl-dbi")
+source=("http://www.cpan.org/authors/id/M/MS/MSERGEANT/DBD-SQLite2-${pkgver}.tar.gz")
+md5sums=('babd83fd5eb9ba7560ad4bab4c76c0eb')
+
+build() {
+ cd DBD-SQLite2-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd DBD-SQLite2-${pkgver}
+
+ 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..e6b72e091
--- /dev/null
+++ b/community/perl-dbd-sybase/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 56416 2011-10-07 09:53:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-dbd-sybase
+pkgver=1.14
+pkgrel=1
+pkgdesc="Sybase Driver for DBI"
+arch=('i686' 'x86_64' 'mips64el')
+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=('db6662d710b3adffe37bd8aec8060eda')
+
+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
+}
+
+package() {
+ cd $srcdir/DBD-Sybase-${pkgver}
+ 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..896384913
--- /dev/null
+++ b/community/perl-device-serialport/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 50831 2011-07-01 18:51:53Z bluewind $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Ross melin <rdmelin@gmail.com>
+
+pkgname=perl-device-serialport
+pkgver=1.04
+pkgrel=3
+pkgdesc="POSIX clone of Win32::SerialPort"
+arch=('i686' 'x86_64' 'mips64el')
+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-fuse/PKGBUILD b/community/perl-fuse/PKGBUILD
new file mode 100644
index 000000000..907db9b9f
--- /dev/null
+++ b/community/perl-fuse/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56424 2011-10-07 09:55:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=perl-fuse
+pkgver=0.14
+pkgrel=1
+pkgdesc="write filesystems in Perl using FUSE"
+arch=('i686' 'x86_64' 'mips64el')
+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=('df72f17bf03e1a31c1a834816a3a59f1')
+
+build() {
+ cd $srcdir/Fuse-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/Fuse-$pkgver
+ 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..225151d7c
--- /dev/null
+++ b/community/perl-gd/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 51555 2011-07-11 14:02:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+aur@gmail.com>
+
+pkgname=perl-gd
+pkgver=2.46
+pkgrel=1
+pkgdesc="Interface to Gd Graphics Library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('ea86a94eb45330eae27ecbfd5c2f43bb')
+
+build() {
+ cd $srcdir/GD-$pkgver
+ unset CFLAGS
+ unset LDFLAGS
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make CCFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+}
+package() {
+ cd $srcdir/GD-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gnome2-wnck/PKGBUILD b/community/perl-gnome2-wnck/PKGBUILD
new file mode 100644
index 000000000..6dea6c1e1
--- /dev/null
+++ b/community/perl-gnome2-wnck/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47727 2011-05-25 02:44:57Z tdziedzic $
+# Maintainer Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=perl-gnome2-wnck
+pkgver=0.16
+pkgrel=4
+pkgdesc="Perl interface to the Window Navigator Construction Kit"
+arch=('i686' 'x86_64' 'mips64el')
+license=("GPL" "Artistic")
+url="http://search.cpan.org/dist/Gnome2-Wnck"
+depends=('perl' 'perl-extutils-depends' 'perl-extutils-pkgconfig' 'gnome-perl' 'libwnck')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/T/TS/TSCH/Gnome2-Wnck-${pkgver}.tar.gz")
+md5sums=('439f4569ffd7af96ef1d3feaab23760e')
+
+build() {
+ cd Gnome2-Wnck-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Gnome2-Wnck-${pkgver}
+
+ make 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..85dac1dc7
--- /dev/null
+++ b/community/perl-gssapi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47705 2011-05-25 02:18:24Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-gssapi
+pkgver=0.28
+pkgrel=4
+pkgdesc="Perl/CPAN Module GSSAPI"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/GSSAPI"
+license=("GPL" "PerlArtistic")
+depends=('krb5')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/A/AG/AGROLMS/GSSAPI-${pkgver}.tar.gz")
+md5sums=('65f00a0749212af064289c8a05e59b3f')
+
+build() {
+ cd GSSAPI-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd GSSAPI-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-gstreamer-interfaces/PKGBUILD b/community/perl-gstreamer-interfaces/PKGBUILD
new file mode 100644
index 000000000..fc1e2f160
--- /dev/null
+++ b/community/perl-gstreamer-interfaces/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47709 2011-05-25 02:21:42Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gstreamer-interfaces
+pkgver=0.06
+pkgrel=3
+pkgdesc="GStreamer::Interfaces"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/GStreamer-Interfaces"
+license=('GPL' 'PerlArtistic')
+depends=('glib-perl' 'gstreamer0.10-base' 'perl-extutils-pkgconfig' 'perl-gstreamer' 'perl-extutils-depends')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/T/TS/TSCH/GStreamer-Interfaces-${pkgver}.tar.gz")
+md5sums=('aa9583a484fa6829935b360887ecda45')
+
+build() {
+ cd GStreamer-Interfaces-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd GStreamer-Interfaces-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-gstreamer/PKGBUILD b/community/perl-gstreamer/PKGBUILD
new file mode 100644
index 000000000..4273c6903
--- /dev/null
+++ b/community/perl-gstreamer/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47702 2011-05-25 01:05:10Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gstreamer
+pkgver=0.16
+pkgrel=1
+pkgdesc="Interface to the GStreamer library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('e2d51158f3c671c0e4c11a82c9171b2b')
+
+build() {
+ cd GStreamer-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd GStreamer-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-gtk2-sexy/PKGBUILD b/community/perl-gtk2-sexy/PKGBUILD
new file mode 100644
index 000000000..f0f3c21e8
--- /dev/null
+++ b/community/perl-gtk2-sexy/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 47716 2011-05-25 02:28:38Z tdziedzic $
+# 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=5
+pkgdesc="Perl/CPAN Module Gtk2::Sexy"
+arch=('i686' 'x86_64' 'mips64el')
+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 Gtk2-Sexy-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd 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..1ce8a3b11
--- /dev/null
+++ b/community/perl-gtk2-trayicon/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 47733 2011-05-25 02:54:41Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=perl-gtk2-trayicon
+pkgver=0.06
+pkgrel=7
+pkgdesc="Perl interface to the EggTrayIcon library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/Gtk2-TrayIcon/"
+depends=('gtk2-perl')
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+license=("GPL")
+options=('!emptydirs')
+source=("http://downloads.sourceforge.net/sourceforge/gtk2-perl/Gtk2-TrayIcon-${pkgver}.tar.gz")
+md5sums=('522c328f14681a25d76eeaf317e05049')
+
+build() {
+ cd Gtk2-TrayIcon-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Gtk2-TrayIcon-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-gtk2-webkit/PKGBUILD b/community/perl-gtk2-webkit/PKGBUILD
new file mode 100644
index 000000000..ebc9e352c
--- /dev/null
+++ b/community/perl-gtk2-webkit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47720 2011-05-25 02:33:54Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gtk2-webkit
+pkgver=0.09
+pkgrel=1
+pkgdesc="Gtk2::WebKit"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/Gtk2-WebKit"
+license=('GPL' 'PerlArtistic')
+depends=('perl' '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=('e696fc2b15d6189370e19bce9a9e56f3')
+
+build() {
+ cd Gtk2-WebKit-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Gtk2-WebKit-${pkgver}
+
+ 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..3177e4998
--- /dev/null
+++ b/community/perl-html-strip/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 47534 2011-05-23 18:42:18Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-html-strip
+pkgver=1.06
+pkgrel=6
+pkgdesc="Perl/CPAN Module HTML::Strip"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+options=('!emptydirs')
+
+build() {
+ cd $srcdir/HTML-Strip-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+package() {
+ cd $srcdir/HTML-Strip-$pkgver
+ 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..af57cf739
--- /dev/null
+++ b/community/perl-inline-java/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 47531 2011-05-23 18:37:03Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+
+pkgname=perl-inline-java
+pkgver=0.53
+pkgrel=2
+pkgdesc="The Inline::Java module allows you to put Java source code directly inline in a Perl script or module."
+arch=('i686' 'x86_64' 'mips64el')
+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')
+options=('!emptydirs')
+
+build() {
+ cd $srcdir/Inline-Java-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor J2SDK=$J2SDKDIR
+ make java
+ make
+}
+package() {
+ cd $srcdir/Inline-Java-$pkgver
+ 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..f51133495
--- /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' 'mips64el')
+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..6afc5da89
--- /dev/null
+++ b/community/perl-io-tty/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56440 2011-10-07 09:59:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-io-tty
+pkgver=1.10
+pkgrel=1
+pkgdesc="Provide an interface to TTYs and PTYs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/IO-Tty/"
+license=("GPL" "PerlArtistic")
+depends=('glibc')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/IO-Tty-$pkgver.tar.gz")
+md5sums=('46baec86a145e57f0ec661fa412b097c')
+
+build() {
+ cd $srcdir/IO-Tty-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+package(){
+ cd $srcdir/IO-Tty-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-json-xs/PKGBUILD b/community/perl-json-xs/PKGBUILD
new file mode 100644
index 000000000..18a78f161
--- /dev/null
+++ b/community/perl-json-xs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 56442 2011-10-07 09:59:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=perl-json-xs
+pkgver=2.32
+pkgrel=1
+pkgdesc="JSON::XS - JSON serialising/deserialising, done correctly and fast"
+url="http://search.cpan.org/dist/JSON-XS/"
+license=("GPL")
+arch=('i686' 'x86_64' 'mips64el')
+depends=('perl' 'perl-common-sense')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/JSON-XS-$pkgver.tar.gz)
+md5sums=('87f71c78010083ad4d158b5765c4a609')
+
+build() {
+ cd $srcdir/JSON-XS-$pkgver
+# eval `perl -V:archname`
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+package() {
+ cd $srcdir/JSON-XS-$pkgver
+ 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..85081460b
--- /dev/null
+++ b/community/perl-libapreq2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 51414 2011-07-08 20:33:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=perl-libapreq2
+pkgver=2.13
+pkgrel=1
+pkgdesc="A safe, standards-compliant, high-performance library used for parsing HTTP cookies, query-strings and POST data."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/libapreq2"
+depends=('mod_perl' 'apr-util')
+makedepends=('perl-extutils-xsbuilder')
+license=("GPL")
+options=('!libtool' '!makeflags')
+source=(http://search.cpan.org/CPAN/authors/id/I/IS/ISAAC/libapreq2-$pkgver.tar.gz)
+md5sums=('c11fb0861aa84dcc6cd0f0798b045eee')
+
+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-5.1#-ldb-5.2#' {} \;
+ sed -i 's#-ldb-5.1#-ldb-5.2#' apreq2-config
+ make
+}
+package(){
+ cd $srcdir/libapreq2-$pkgver
+ 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-linux-pid/PKGBUILD b/community/perl-linux-pid/PKGBUILD
new file mode 100644
index 000000000..fe33de910
--- /dev/null
+++ b/community/perl-linux-pid/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 50357 2011-06-28 18:54:54Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Generator : CPANPLUS::Dist::Arch 1.12
+
+pkgname='perl-linux-pid'
+pkgver='0.04'
+pkgrel='1'
+pkgdesc="Interface to Linux getpp?id functions"
+arch=('i686' 'x86_64' 'mips64el')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+url='http://search.cpan.org/dist/Linux-Pid'
+source=('http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/Linux-Pid-0.04.tar.gz')
+md5sums=('130c4d299f827abf1f2285fddf03fccb')
+_distdir="${srcdir}/Linux-Pid-0.04"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ cd "$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
diff --git a/community/perl-list-moreutils/PKGBUILD b/community/perl-list-moreutils/PKGBUILD
new file mode 100644
index 000000000..49773ee71
--- /dev/null
+++ b/community/perl-list-moreutils/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer : Justin "juster" Davis <jrcd83@gmail.com>
+# Generator : pbjam 0.01
+
+pkgname=perl-list-moreutils
+pkgver=0.33
+pkgrel=1
+pkgdesc="Provide the stuff missing in List::Util"
+arch=('i686' 'x86_64' 'mips64el')
+license=(PerlArtistic GPL)
+options=(!emptydirs)
+depends=('perl>=5.5.30')
+url=http://search.cpan.org/dist/List-MoreUtils
+source=("http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/List-MoreUtils-${pkgver}.tar.gz")
+md5sums=(8a33c84028cc2ff3e92c92434b326c0f)
+sha512sums=(e758b995438c5c5322317aab3602e89b9f683c42d403a0ac97ccd8cc20d0db1a75caefc22f34ad088314867c0bdd9c2b8264e8f2f6a43eab1421aa8c482233b5)
+_distdir="${srcdir}/List-MoreUtils-${pkgver}"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ cd "$_distdir"
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/community/perl-mail-box-parser-c/PKGBUILD b/community/perl-mail-box-parser-c/PKGBUILD
new file mode 100644
index 000000000..0b498a844
--- /dev/null
+++ b/community/perl-mail-box-parser-c/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47593 2011-05-23 20:41:57Z 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=6
+pkgdesc="Perl/CPAN Module Mail::Box::Parser::C : extends MailBox with the speed of C"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/Mail-Box-Parser-C"
+license=("GPL" "PerlArtistic")
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/M/MA/MARKOV/Mail-Box-Parser-C-${pkgver}.tar.gz")
+md5sums=('3dfb3e2729597ae33114250cbce1b884')
+
+build() {
+ cd Mail-Box-Parser-C-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Mail-Box-Parser-C-${pkgver}
+
+ 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..c9995475f
--- /dev/null
+++ b/community/perl-mail-transport-dbx/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47596 2011-05-23 20:45:10Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-mail-transport-dbx
+pkgver=0.07
+pkgrel=6
+pkgdesc="Perl/CPAN Module Mail::Transport::Dbx : Parse Outlook Express mailboxes"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/Mail-Transport-Dbx"
+license=("GPL" "PerlArtistic")
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/V/VP/VPARSEVAL/Mail-Transport-Dbx-${pkgver}.tar.gz")
+md5sums=('4dcf5346a67c0a7f861cb2bb51a7d14e')
+
+build() {
+ cd Mail-Transport-Dbx-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Mail-Transport-Dbx-${pkgver}
+
+ 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..b22530497
--- /dev/null
+++ b/community/perl-net-dbus/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 56450 2011-10-07 10:02:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-net-dbus
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Binding for DBus messaging protocol"
+arch=('i686' 'x86_64' 'mips64el')
+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=('b17e32976d1a3b56feb908ebd7fed7f1')
+
+build() {
+ cd Net-DBus-${pkgver}
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd Net-DBus-${pkgver}
+ 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..313cd913d
--- /dev/null
+++ b/community/perl-net-libidn/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47590 2011-05-23 20:30:08Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-net-libidn
+pkgver=0.12
+pkgrel=4
+pkgdesc="Perl/CPAN Module Net::LibIDN"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/Net-LibIDN/"
+license=("GPL" "PerlArtistic")
+depends=(perl libidn)
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/T/TH/THOR/Net-LibIDN-${pkgver}.tar.gz")
+md5sums=('c3e4de2065009d67bcb1df0afb473e12')
+
+build() {
+ cd Net-LibIDN-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Net-LibIDN-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-package-stash-xs/PKGBUILD b/community/perl-package-stash-xs/PKGBUILD
new file mode 100644
index 000000000..40dd20936
--- /dev/null
+++ b/community/perl-package-stash-xs/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Justin Davis <jrcd83@gmail.com>
+# $Id: PKGBUILD 57660 2011-11-01 00:16:28Z juster $
+
+pkgname=perl-package-stash-xs
+pkgver=0.25
+pkgrel=1
+pkgdesc="faster and more correct implementation of the Package::Stash API"
+arch=(i686 x86_64)
+license=(PerlArtistic GPL)
+options=(!emptydirs)
+depends=('perl>=5.8.1')
+makedepends=('perl-extutils-makemaker>=6.30')
+checkdepends=('perl-test-fatal' 'perl-test-simple')
+url=https://metacpan.org/release/Package-Stash-XS
+source=("http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Package-Stash-XS-${pkgver}.tar.gz")
+md5sums=(52ece18842c46da8fb7a4a14dea910ab)
+sha512sums=(2b539d9ba1a68c5ba681e9eabbcde4b396f66dc8dbd3b1e333286ea7ce39b93b97ec4bd97c31681720a925553b128371ce2c48f11254806aebd5de868a22b528)
+_distdir="${srcdir}/Package-Stash-XS-${pkgver}"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ cd "$_distdir"
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/community/perl-params-classify/PKGBUILD b/community/perl-params-classify/PKGBUILD
new file mode 100644
index 000000000..3ad5af1e9
--- /dev/null
+++ b/community/perl-params-classify/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 58968 2011-11-20 18:12:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-params-classify
+pkgver=0.013
+pkgrel=1
+pkgdesc="argument type classification"
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/~zefram/Params-Classify"
+options=(!emptydirs)
+depends=('perl>=5.10.1')
+source=("http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Params-Classify-$pkgver.tar.gz")
+md5sums=('63d24fbec775472ada49d16bce4a9b1f')
+
+build() {
+ cd $srcdir/Params-Classify-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=${pkgdir}
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/community/perl-params-util/PKGBUILD b/community/perl-params-util/PKGBUILD
new file mode 100644
index 000000000..df95826e9
--- /dev/null
+++ b/community/perl-params-util/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Justin Davis <jrcd83@gmail.com>
+# $Id: PKGBUILD 57661 2011-11-01 00:18:52Z juster $
+
+pkgname=perl-params-util
+pkgver=1.04
+pkgrel=1
+pkgdesc="Simple, compact and correct param-checking functions"
+arch=(i686 x86_64)
+license=(PerlArtistic GPL)
+options=(!emptydirs)
+depends=('perl>=5.5.30' 'perl-scalar-list-utils')
+makedepends=('perl-extutils-cbuilder>=0.27' 'perl-extutils-makemaker>=6.52'
+ 'perl-pathtools')
+checkdepends=('perl-test-simple')
+url=https://metacpan.org/release/Params-Util
+source=("http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Params-Util-${pkgver}.tar.gz")
+md5sums=(84bfb0a16cff67f2077ece0e24408b0f)
+sha512sums=(086b6e37ce24a423439e346c4fc7069cbb5bde6af5c259fa765616bf637597105ee379df5edca82fdeb3bb0e44d83c7704ea1fe09170acea389ffb54d77f3d3d)
+_distdir="${srcdir}/Params-Util-${pkgver}"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ cd "$_distdir"
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/community/perl-params-validate/PKGBUILD b/community/perl-params-validate/PKGBUILD
new file mode 100644
index 000000000..def2a8d1b
--- /dev/null
+++ b/community/perl-params-validate/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56454 2011-10-07 10:03:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-params-validate
+pkgver=1.00
+pkgrel=1
+pkgdesc="Validate sub params against a spec"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/Params-Validate"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/D/DR/DROLSKY/Params-Validate-${pkgver}.tar.gz")
+md5sums=('e8989f5686de4cd916cd973ccf097625')
+
+build() {
+ cd Params-Validate-${pkgver}
+ perl ./Build.PL --installdirs=vendor
+ ./Build
+}
+package(){
+ cd Params-Validate-${pkgver}
+ ./Build install --destdir=${pkgdir}
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-string-crc32/PKGBUILD b/community/perl-string-crc32/PKGBUILD
new file mode 100644
index 000000000..9c3f6ee44
--- /dev/null
+++ b/community/perl-string-crc32/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47584 2011-05-23 20:23:28Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-string-crc32
+pkgver=1.4
+pkgrel=6
+pkgdesc="Perl/CPAN Module String::CRC32 : ZMODEMlike CRC32 generation"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/String-CRC32"
+license=("GPL" "PerlArtistic")
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/S/SO/SOENKE/String-CRC32-${pkgver}.tar.gz")
+md5sums=('9b241bc4a482a3aa59fbb1429bc30546')
+
+build() {
+ cd String-CRC32-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd String-CRC32-${pkgver}
+
+ 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..580f8b640
--- /dev/null
+++ b/community/perl-text-charwidth/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47581 2011-05-23 20:20:00Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-text-charwidth
+pkgver=0.04
+pkgrel=6
+pkgdesc="Perl/CPAN Module Text::CharWidth"
+arch=("i686" "x86_64" 'mips64el')
+url="http://search.cpan.org/dist/Text-CharWidth"
+license=("GPL" "PerlArtistic")
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/K/KU/KUBOTA/Text-CharWidth-${pkgver}.tar.gz")
+md5sums=('37a723df0580c0758c0ee67b37336c15')
+
+build() {
+ cd Text-CharWidth-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Text-CharWidth-${pkgver}
+
+ 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..21e704403
--- /dev/null
+++ b/community/perl-text-kakasi/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 47575 2011-05-23 20:14:17Z 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=7
+pkgdesc="Perl frontend to kakasi"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/Text-Kakasi"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'kakasi')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/D/DA/DANKOGAI/Text-Kakasi-${pkgver}.tar.gz")
+md5sums=('5a9e381cb93edfd707124a63c60f96b1')
+
+build() {
+ cd Text-Kakasi-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Text-Kakasi-${pkgver}
+
+ 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..be3eaab4d
--- /dev/null
+++ b/community/perl-tie-hash-indexed/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47578 2011-05-23 20:16: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=6
+pkgdesc="Ordered hashes for Perl"
+arch=('i686' 'x86_64' 'mips64el')
+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 Tie-Hash-Indexed-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Tie-Hash-Indexed-${pkgver}
+
+ 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..3d66d05a7
--- /dev/null
+++ b/community/perl-tk-tablematrix/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 47698 2011-05-24 20:28:40Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-tk-tablematrix
+pkgver=1.23
+pkgrel=7
+pkgdesc="Display data in TableSpreadsheet format"
+arch=("i686" "x86_64" 'mips64el')
+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 Tk-TableMatrix-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Tk-TableMatrix-${pkgver}
+ 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..66468ec54
--- /dev/null
+++ b/community/perl-www-curl/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47564 2011-05-23 19:59:27Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-www-curl
+pkgver=4.15
+pkgrel=1
+pkgdesc="Perl/CPAN Module WWW::Curl"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/WWW-Curl/"
+license=("GPL" "PerlArtistic")
+depends=("curl")
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/S/SZ/SZBALINT/WWW-Curl-${pkgver}.tar.gz")
+md5sums=('31c0b8c7e5e2d26bcc8213d702186d5f')
+
+build() {
+ cd WWW-Curl-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd WWW-Curl-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-xml-libxml/PKGBUILD b/community/perl-xml-libxml/PKGBUILD
new file mode 100644
index 000000000..6680d155e
--- /dev/null
+++ b/community/perl-xml-libxml/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: François Charette <francois.archlinux.org>
+
+pkgname=perl-xml-libxml
+pkgver=1.88
+pkgrel=1
+pkgdesc="Interface to the libxml library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+source=(http://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-$pkgver.tar.gz)
+md5sums=('31c0e64e0ccd7d51489aae03a29b372a')
+
+build() {
+ cd $srcdir/XML-LibXML-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd $srcdir/XML-LibXML-$pkgver
+ make test
+}
+
+package() {
+ cd $srcdir/XML-LibXML-$pkgver
+ make pure_install doc_install DESTDIR=$pkgdir
+}
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..82e09e9c6
--- /dev/null
+++ b/community/perl-xml-libxslt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 56997 2011-10-18 03:35:07Z ebelanger $
+# Maintainer: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-xml-libxslt
+pkgver=1.73
+pkgrel=1
+pkgdesc="Interface to the gnome libxslt library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/XML-LibXSLT"
+license=('GPL')
+depends=('perl-xml-libxml' 'libxslt')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXSLT-$pkgver.tar.gz)
+md5sums=('99b372c85cae773a073d4387e305c29c')
+
+build() {
+ cd "$srcdir/XML-LibXSLT-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "$srcdir/XML-LibXSLT-$pkgver"
+ make test
+}
+
+package() {
+ cd "$srcdir/XML-LibXSLT-$pkgver"
+ make install DESTDIR="$pkgdir"
+}
diff --git a/community/perl-xmms/PKGBUILD b/community/perl-xmms/PKGBUILD
new file mode 100644
index 000000000..4490b6b3a
--- /dev/null
+++ b/community/perl-xmms/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 47561 2011-05-23 19:55:02Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Georg Grabler <ggrabler@gmail.com>
+
+pkgname=perl-xmms
+pkgver=0.12
+pkgrel=6
+pkgdesc="Bundle::Xmms - Bundle for xmms remote control shell"
+arch=('i686' 'x86_64' 'mips64el')
+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/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..c05aceb50
--- /dev/null
+++ b/community/pgadmin3/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 55823 2011-09-22 21:47:07Z 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.14.0
+pkgrel=1
+pkgdesc="A comprehensive design and management interface for PostgreSQL database"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pgadmin.org"
+license=('custom')
+depends=('wxgtk' 'postgresql-libs' 'libxslt')
+makedepends=('libpqxx' 'krb5' 'postgresql')
+source=(ftp://ftp.de.postgresql.org/pub/packages/databases/PostgreSQL/pgadmin3/release/v${pkgver}/src/pgadmin3-${pkgver}.tar.gz
+ pgadmin3.desktop)
+md5sums=('27bf1694809a7d9adf4feec508374df2'
+ 'd07ba4df54baead30b66d19d7450bcad')
+
+build() {
+ cd $srcdir/pgadmin3-${pkgver}
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/pgadmin3-${pkgver}
+ make DESTDIR=$pkgdir/ install
+ install -Dm644 i18n/$pkgname.lng $pkgdir/usr/share/pgadmin3/i18n
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 pgadmin/include/images/pgAdmin3.ico $pkgdir/usr/share/pgadmin3/pixmaps/pgAdmin3.ico
+ install -Dm644 $srcdir/pgadmin3.desktop $pkgdir/usr/share/applications/pgadmin3.desktop
+}
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..37b59a9be
--- /dev/null
+++ b/community/php-geoip/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 57315 2011-10-25 17:20:28Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+
+pkgname=php-geoip
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="GeoIP module for PHP"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+sha1sums=('f8d17da3e192002332ab54b9b4ab0f5deeaf9f15')
+
+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..2f206f038
--- /dev/null
+++ b/community/php-memcache/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 44760 2011-04-11 15:50:58Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=php-memcache
+pkgver=3.0.6
+pkgrel=1
+pkgdesc="Memcache module for PHP"
+arch=('i686' 'x86_64' 'mips64el')
+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=('23c2a1548f3fc7658b98b1c60e6d83b1')
+
+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..f5894f448
--- /dev/null
+++ b/community/php-memcached/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 49774 2011-06-21 04:55:35Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=php-memcached
+pkgver=1.0.2
+pkgrel=5
+pkgdesc="PHP extension for interfacing with memcached via libmemcached library"
+arch=('i686' 'x86_64' 'mips64el')
+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/picard/PKGBUILD b/community/picard/PKGBUILD
new file mode 100644
index 000000000..dcc8aba90
--- /dev/null
+++ b/community/picard/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58419 2011-11-12 17:18:36Z ibiru $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: sysrq
+
+pkgname=picard
+pkgver=0.16
+pkgrel=3
+pkgdesc='Official MusicBrainz tagger'
+url='http://musicbrainz.org/doc/MusicBrainz_Picard'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('python2-pyqt' 'mutagen' 'libofa' 'ffmpeg')
+optdepends=('libdiscid: CD-Lookup feature')
+source=("http://ftp.musicbrainz.org/pub/musicbrainz/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('274071410550ee29051bb0137d72602921a015f9')
+
+install=install
+
+build() {
+ cd "${srcdir}/picard-${pkgver}"
+ python2 setup.py config
+}
+
+package() {
+ cd "${srcdir}/picard-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
diff --git a/community/picard/install b/community/picard/install
new file mode 100644
index 000000000..b46fab005
--- /dev/null
+++ b/community/picard/install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ update-desktop-database -q &>/dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/picocom/PKGBUILD b/community/picocom/PKGBUILD
new file mode 100644
index 000000000..7b98ad531
--- /dev/null
+++ b/community/picocom/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 59616 2007-01-01 00:26:04Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Jens Adam (byte/jra) <j_adam@web.de>
+
+pkgname=picocom
+pkgver=1.6
+pkgrel=2
+pkgdesc='Minimal dumb-terminal emulation program, very much like minicom'
+url='http://code.google.com/p/picocom/'
+license=('GPL2')
+arch=('i686' 'x86_64')
+source=("http://${pkgname}.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('f042e15fa76ab3349c74a70062aa210b527e6bdc')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ make -e
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ install -D -m 755 picocom "${pkgdir}"/usr/bin/picocom
+ install -D -m 644 picocom.8 "${pkgdir}"/usr/share/man/man8/picocom.8
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/pidgin-libnotify/PKGBUILD b/community/pidgin-libnotify/PKGBUILD
new file mode 100644
index 000000000..72a3394b2
--- /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' 'mips64el')
+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..058d7b42d
--- /dev/null
+++ b/community/pidgin-musictracker/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 57892 2011-11-04 08:42:55Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: 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=2
+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' 'mips64el')
+source=("http://pidgin-musictracker.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2")
+options=('!libtool')
+md5sums=('8d7225c705484db86b864cab5a536423')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/pidgin-otr/PKGBUILD b/community/pidgin-otr/PKGBUILD
new file mode 100644
index 000000000..2a01f18f7
--- /dev/null
+++ b/community/pidgin-otr/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 57815 2011-11-03 09:57:10Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: 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=3
+pkgdesc='Off-the-Record Messaging plugin for Pidgin.'
+arch=('i686' 'x86_64' 'mips64el')
+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"{,.asc})
+md5sums=('8af70b654b7d7c5a5b7785699ff562f9'
+ '67d711a7a44cef2791f50b319aaf0e0e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/pigeonhole/PKGBUILD b/community/pigeonhole/PKGBUILD
new file mode 100644
index 000000000..609531264
--- /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.16
+# Make sure to bump pkgrel if changing this.
+
+pkgname=pigeonhole
+pkgver=0.2.5
+pkgrel=1
+pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.0"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pigeonhole.dovecot.org/"
+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")
+options=('!libtool')
+md5sums=('f50151dd20eb5acbac2b546e586f2d43'
+ '564b771c339f69a477c06babf53e11c2')
+
+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/pigz/PKGBUILD b/community/pigz/PKGBUILD
new file mode 100755
index 000000000..de0dc48f4
--- /dev/null
+++ b/community/pigz/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Laszlo Papp <djszapi2@gmail.com>
+# Maintainer:Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=pigz
+pkgver=2.1.6
+pkgrel=2
+pkgdesc="Parallel implementation of the gzip file compressor"
+arch=('i686' 'x86_64')
+url="http://www.zlib.net/pigz/"
+license=('custom')
+depends=('zlib')
+source=(http://www.zlib.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('cbe9030c4be3d0ef2438ee5f8b169ca4')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ sed -i s/"CFLAGS=".*/"CFLAGS=${CFLAGS}"/g Makefile
+ make
+}
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ install -Dm755 ${srcdir}/${pkgname}-${pkgver}/${pkgname} \
+ ${pkgdir}/usr/bin/${pkgname}
+ pushd ${pkgdir}/usr/bin
+ ln -s pigz unpigz
+ popd
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/${pkgname}.1 \
+ ${pkgdir}/usr/share/man/man1/${pkgname}.1
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/${pkgname}.pdf \
+ ${pkgdir}/usr/share/doc/${pkgname}/${pkgname}.pdf
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/README \
+ ${pkgdir}/usr/share/licenses/${pkgname}/README
+}
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..aa82fe665
--- /dev/null
+++ b/community/pinfo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55275 2011-09-08 12:47:50Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=pinfo
+pkgver=0.6.10
+pkgrel=2
+pkgdesc="A hypertext info file viewer"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ sed -i 's|nogroup|nobody|' src/pinforc.in src/utils.c
+ [ -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..887484957
--- /dev/null
+++ b/community/pingus/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59956 2011-12-02 21:00:04Z ibiru $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=pingus
+pkgver=0.7.5
+pkgrel=2
+pkgdesc="A Lemmings clone, i.e. a level-based puzzle game."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pingus.seul.org"
+license=('GPL')
+depends=('sdl_image' 'sdl_mixer' 'libgl' 'boost-libs>=1.48')
+makedepends=('scons' 'boost>=1.48' 'mesa')
+source=(http://pingus.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2 pingus.desktop)
+md5sums=('68e0bd1327e0eedcaab64d64528540ba'
+ '9eec34047bdcff49e08f41e81764e20c')
+sha1sums=('65493f9c9914bb401dbcfe1fe6bf2fad2388b755'
+ '579a1144f161ce89e6e024cea37210149b89c0c0')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ scons prefix=/usr
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make install DESTDIR="${pkgdir}" PREFIX="/usr"
+
+ install -D -m644 "${srcdir}/pingus.desktop" "${pkgdir}/usr/share/applications/pingus.desktop"
+}
diff --git a/community/pingus/pingus.desktop b/community/pingus/pingus.desktop
new file mode 100644
index 000000000..276db36a4
--- /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/images/core/editor/actions.png
diff --git a/community/pinot/PKGBUILD b/community/pinot/PKGBUILD
new file mode 100644
index 000000000..9c315cc50
--- /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' 'mips64el')
+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/pion-net/PKGBUILD b/community/pion-net/PKGBUILD
new file mode 100644
index 000000000..c47091deb
--- /dev/null
+++ b/community/pion-net/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 59958 2011-12-02 21:00:12Z ibiru $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: David Watzke <david@watzke.cz>
+
+pkgname=pion-net
+pkgver=4.0.7
+pkgrel=2
+pkgdesc="A C++ development library for implementing lightweight HTTP interfaces"
+url="http://www.pion.org/projects/pion-network-library"
+arch=('i686' 'x86_64')
+license=('custom:Boost')
+depends=('boost-libs' 'openssl' 'log4cpp')
+makedepends=('boost')
+source=("http://www.pion.org/files/$pkgname-$pkgver.tar.bz2"
+ "$pkgname-4.0.5-build.patch")
+md5sums=('761c8af8dc54102b637f8d91d162f987'
+ 'd75ea2af90163a81d2bc71fda00f0c00')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i "$srcdir/$pkgname-4.0.5-build.patch"
+
+ # override configure bug (forces debug even when nobody asked for it)
+ sed -i "s/ -ggdb//g;s/ -DNDEBUG//g" configure
+
+ ./configure --prefix=/usr --disable-doxygen-doc --with-log4cpp
+
+ find -name Makefile -print0 | xargs -0 \
+ sed -i -r '/^C(XX)?FLAGS/ s/$/ -DBOOST_FILESYSTEM_VERSION=2/' Makefile
+
+ # override Makefile bug
+ sed -i "/docs:/ s/doxygen-doc//" Makefile
+
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # install license
+ install -D -m0755 COPYING "$pkgdir/usr/share/licenses/$pkgname/Boost"
+}
diff --git a/community/pion-net/pion-net-4.0.5-build.patch b/community/pion-net/pion-net-4.0.5-build.patch
new file mode 100644
index 000000000..25fdca20b
--- /dev/null
+++ b/community/pion-net/pion-net-4.0.5-build.patch
@@ -0,0 +1,12 @@
+diff -ru pion-net-4.0.5/net/include/pion/net/TCPConnection.hpp pion-net-4.0.5.fixed/net/include/pion/net/TCPConnection.hpp
+--- pion-net-4.0.5/net/include/pion/net/TCPConnection.hpp 2010-12-21 03:07:13.000000000 +0100
++++ pion-net-4.0.5.fixed/net/include/pion/net/TCPConnection.hpp 2011-07-31 09:01:38.445559768 +0200
+@@ -639,7 +639,7 @@
+
+ /// returns reference to the io_service used for async operations
+ inline boost::asio::io_service& getIOService(void) {
+- return m_ssl_socket.lowest_layer().io_service();
++ return m_ssl_socket.lowest_layer().get_io_service();
+ }
+
+ /// returns non-const reference to underlying TCP socket object
diff --git a/community/pkgtools/PKGBUILD b/community/pkgtools/PKGBUILD
new file mode 100644
index 000000000..facae0d8e
--- /dev/null
+++ b/community/pkgtools/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+# Contributor: Daenyth <Daenyth+Arch AT gmail DOT com>
+pkgname=pkgtools
+pkgver=23
+pkgrel=2
+pkgdesc="A collection of scripts for Arch Linux packages"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://bbs.archlinux.org/viewtopic.php?pid=384196"
+license=('GPL')
+source=(v$pkgver::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' 'pcre' 'libarchive' 'python')
+optdepends=('cron: For pkgfile --update entry'
+ 'abs: Provides proto packaging files for newpkg'
+ 'python-yaml: for gem2arch'
+ 'python2: for pkgconflict')
+md5sums=('5361111e31741f8d7ff8ca45c7996b6b')
+
+build() {
+ cd "$srcdir/Daenyth-$pkgname"-*
+
+ make
+}
+
+package() {
+ cd "$srcdir/Daenyth-$pkgname"-*
+
+ make DESTDIR="$pkgdir" install
+
+ # fix infinite loop in autotools configure scripts
+ sed -i '/export -f command_not_found_handle/d' "$pkgdir/usr/share/pkgtools/pkgfile-hook.bash"
+}
+
+# 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..bcbf2f85c
--- /dev/null
+++ b/community/pkgtools/pkgtools.install
@@ -0,0 +1,66 @@
+_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
+ if is_update_from $2 22-1; then
+ echo " - This is the largest release in a long time. This updates all python scripts to py3k."
+ echo " - This version of pkgtools includes a new tool called gem2arch, for automating ruby gem packaging"
+ 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..441f9bb9f
--- /dev/null
+++ b/community/plan9port/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 57586 2011-10-31 07:11:36Z cbrannon $
+# Contributor: phrakture <aaronmgriffin--gmail--com>
+# Contributor: Fazlul Shahriar
+# Contributor: Chris Brannon <cmbrannon79@gmail.com>
+pkgname=plan9port
+pkgver=20111026
+pkgrel=1
+pkgdesc="A port of many programs from Plan 9 to Unix-like operating systems"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://swtch.com/plan9port/"
+license=('custom')
+depends=(xorg-server libxt libxext 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=('4aa76e73fcb9f716165dd628d052cd58'
+ '9695eb15a247e23140e8a35ff52a5c20')
diff --git a/community/plan9port/plan9.install b/community/plan9port/plan9.install
new file mode 100644
index 000000000..63b8dd0da
--- /dev/null
+++ b/community/plan9port/plan9.install
@@ -0,0 +1,42 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ echo "==> Decompressing 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..9964fe277
--- /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' 'mips64el')
+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..8acabff31
--- /dev/null
+++ b/community/pmtools/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 59227 2011-11-21 15:25:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@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' 'mips64el')
+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)
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/$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..a0f3fdabc
--- /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' 'mips64el')
+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..efb32fa9c
--- /dev/null
+++ b/community/podofo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 59830 2011-11-30 22:21:17Z 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.1
+pkgrel=2
+pkgdesc="A C++ library to work with the PDF file format"
+arch=('i686' 'x86_64' 'mips64el')
+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=('cec586ab69f92bc88d38b5d4b8eee5a0')
+
+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..e7fb0b4e3
--- /dev/null
+++ b/community/poedit/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49387 2011-06-15 09:36:08Z spupykin $
+# 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=5
+pkgdesc="Cross-platform gettext catalogs (.po files) editor"
+arch=('i686' 'x86_64' 'mips64el')
+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..ba4dca3e6
--- /dev/null
+++ b/community/pokerth/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59960 2011-12-02 21:00:17Z ibiru $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Vasco Costa <vasco.costa@meiodigital.com>
+
+pkgname=pokerth
+_realname=PokerTH
+pkgver=0.8.3
+pkgrel=6
+pkgdesc="Poker game written in C++/QT4"
+arch=('i686' 'x86_64' 'mips64el')
+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 $_realname-$pkgver-src
+
+ sed -i 's/QMAKE_CXXFLAGS += -std=gnu++0x/QMAKE_CXXFLAGS += -std=gnu++0x -DBOOST_FILESYSTEM_VERSION=2/' *.pro
+
+
+ # fix g++: error: unrecognized option '-no_dead_strip_inits_and_terms'
+ sed \
+ -e 's/QMAKE_LFLAGS += -no_dead_strip_inits_and_terms//' \
+ -i zlib_compress.pro pokerth_game.pro pokerth_server.pro
+
+ qmake $pkgname.pro
+
+ make
+}
+
+package() {
+ cd $_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..20d910287
--- /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' 'mips64el')
+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..91e4b4fcf
--- /dev/null
+++ b/community/pork/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 47556 2011-05-23 19:46:39Z tdziedzic $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=pork
+pkgver=0.99.8.1
+pkgrel=4
+pkgdesc="Console-based AOL Instant Messenger & IRC client"
+arch=('i686' 'x86_64' 'mips64el')
+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 $pkgname-$pkgver
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/portaudio/PKGBUILD b/community/portaudio/PKGBUILD
new file mode 100644
index 000000000..767c8784b
--- /dev/null
+++ b/community/portaudio/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55258 2011-09-07 18:41:32Z ebelanger $
+# 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_20110326
+pkgrel=1
+pkgdesc="A free, cross-platform, open source, audio I/O library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.portaudio.com/"
+license=('custom')
+depends=('jack')
+options=('!libtool')
+source=(http://www.portaudio.com/archives/pa_stable_v$pkgver.tgz)
+md5sums=('8f266ce03638419ef46e4efcb0fabde6')
+
+build() {
+ cd "$srcdir/$pkgname"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ 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..00ed1b3ac
--- /dev/null
+++ b/community/portaudio_cpp/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55337 2011-09-10 02:09:27Z ebelanger $
+# Maintainer: Bob Finch <w9ya@qrparci.net>
+
+pkgname=portaudio_cpp
+pkgver=19_20110326
+pkgrel=1
+pkgdesc="PortAudio c++ bindings"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.portaudio.com/"
+license=('custom')
+depends=("portaudio=${pkgver}" 'gcc-libs')
+options=('!libtool')
+source=(http://www.portaudio.com/archives/pa_stable_v$pkgver.tgz)
+md5sums=('8f266ce03638419ef46e4efcb0fabde6')
+
+build() {
+ cd "$srcdir/portaudio"
+ ./configure --prefix=/usr --enable-cxx
+ make
+}
+
+package() {
+ cd "$srcdir/portaudio/bindings/cpp"
+ make DESTDIR=$pkgdir install
+ install -D -m644 ../../LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt"
+}
diff --git a/community/portmidi/PKGBUILD b/community/portmidi/PKGBUILD
new file mode 100644
index 000000000..1ddd9bd97
--- /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' 'mips64el')
+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..379774e3e
--- /dev/null
+++ b/community/postgis/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 57370 2011-10-26 14:27:28Z 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.3
+pkgrel=2
+pkgdesc="Adds support for geographic objects to PostgreSQL"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://postgis.refractions.net/"
+license=('GPL')
+depends=('postgresql' 'proj' 'geos')
+changelog=$pkgname.changelog
+source=(http://postgis.refractions.net/download/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('a2334f8b229446c0497d48a430a40152a3b71a5da02f414a0340a0a025d416cf')
+
+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..16f9b925d
--- /dev/null
+++ b/community/postgis/postgis.changelog
@@ -0,0 +1,8 @@
+2011-10-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#26159 fix in postgis-1.5.3-2
+
+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..98d2af3dc
--- /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' 'mips64el')
+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..8a00e25f6
--- /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' 'mips64el')
+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..13c0986a2
--- /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' 'mips64el')
+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..9fe5aaed2
--- /dev/null
+++ b/community/pppd-ldap/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 55777 2011-09-20 06:52:16Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pppd-ldap
+pkgver=0.12b
+pkgrel=3
+pkgdesc="A plugin for PPPD which performs an LDAP-enabled version of pppd"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/pppd-ldap/"
+license=('GPL')
+depends=('ppp' 'libldap')
+options=('docs')
+source=("http://downloads.sourceforge.net/${pkgname}/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"
+}
+
+package() {
+ cd "$srcdir/pppd_ldap-$pkgver"
+ 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..d97a6d95d
--- /dev/null
+++ b/community/pptpd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 48323 2011-05-31 10:24:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pptpd
+pkgver=1.3.4
+pkgrel=4
+pkgdesc="Poptop server"
+arch=(i686 x86_64 'mips64el')
+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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ 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..568cd38c4
--- /dev/null
+++ b/community/pragha/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# 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.99.1.1
+pkgrel=1
+pkgdesc="A lightweight GTK+ music manager - fork of Consonance Music Manager."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pragha.wikispaces.com/"
+license=('GPL3')
+depends=('libnotify' 'libcdio' 'curl'
+ 'taglib' 'gstreamer0.10' 'hicolor-icon-theme'
+ 'gtk2' 'dbus-glib' 'dbus-core'
+ 'sqlite3' 'glib2' 'desktop-file-utils')
+optdepends=('notification-daemon: OSD notification')
+replaces=('dissonance')
+install=pragha.install
+source=(http://dissonance.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+sha1sums=('25ff36e8a197f45edf7309072f1bd55785d9843d')
+
+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..ff5a644bd
--- /dev/null
+++ b/community/pragha/pragha.install
@@ -0,0 +1,10 @@
+post_install() {
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
diff --git a/community/prboom/PKGBUILD b/community/prboom/PKGBUILD
new file mode 100644
index 000000000..94106432e
--- /dev/null
+++ b/community/prboom/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57863 2011-11-03 19:29:22Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: dale <dale@archlinux.org>
+
+pkgname=prboom
+pkgver=2.5.0
+pkgrel=5
+pkgdesc='A game engine which provides a program to play Doom levels.'
+url='http://prboom.sourceforge.net/'
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libpng' 'mesa' 'sdl_mixer' 'sdl_net')
+source=("http://downloads.sourceforge.net/prboom/${pkgname}-${pkgver}.tar.gz"
+ 'libpng-1.4.patch')
+md5sums=('a8a15f61fa2626ab98051ab2703378c4'
+ 'ba53474db8e747035ca2320a445e4ae0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 < ../libpng-1.4.patch
+
+ ./configure --prefix=/usr --disable-i386-asm
+ sed -i "s|/games|/bin|g" "${srcdir}/${pkgname}-${pkgver}/src/Makefile"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
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..4b677caf1
--- /dev/null
+++ b/community/prelink/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57791 2011-11-02 20:30:29Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Rouslan Solomakhin <rouslan@localnet.com>
+
+pkgname=prelink
+pkgver=20111012
+pkgrel=1
+pkgdesc='ELF prelinking utility to speed up dynamic linking.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://people.redhat.com/jakub/prelink/'
+license=('GPL')
+depends=('elfutils')
+backup=('etc/prelink.conf')
+md5sums=('f5aaf347432d677c293e5e3399ba4fdf'
+ '0793ed49e9b31c125cba4d936c333cf6'
+ 'b347580536e078b34c547742d36a3e9d')
+source=("http://people.redhat.com/jakub/prelink/${pkgname}-${pkgver}.tar.bz2"
+ 'prelink.conf'
+ 'arch-x86_64-dynamic_linker.patch')
+
+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..847ec0cc1
--- /dev/null
+++ b/community/preload/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 55344 2011-09-10 09:19:46Z andrea $
+# Maintainer:
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=preload
+pkgver=0.6.4
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="Makes applications run faster by prefetching binaries and shared objects"
+url="http://sourceforge.net/projects/preload"
+license=('GPL2')
+depends=('glib2' 'bash')
+makedepends=('help2man' 'pkgconfig')
+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 "${srcdir}"/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m755 "${srcdir}"/rc.preload "${pkgdir}"/etc/rc.d/preload
+ rm -rf "${pkgdir}"/etc/rc.d/init.d
+
+ rm -rf "${pkgdir}"/var/lib/preload/preload.state
+ rm -rf "${pkgdir}"/var/log/preload.log
+
+ install -d "${pkgdir}"/etc/conf.d
+ mv "${pkgdir}"/etc/sysconfig/* "${pkgdir}"/etc/conf.d
+ rm -rf "${pkgdir}"/etc/sysconfig
+
+ sed -r -i 's#^((map|exe)prefix =) (.+)$#\1 /opt;\3#' "${pkgdir}"/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/premake/PKGBUILD b/community/premake/PKGBUILD
new file mode 100644
index 000000000..a239b435d
--- /dev/null
+++ b/community/premake/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: revel <revelΘmuub·net>
+# Contributor: Marcos J. S. Magalhaes <mjsmagalhaes ^dot^ insc _at_ gmail ~dot~ com>
+
+pkgname=premake
+pkgver=4.3
+pkgrel=1
+pkgdesc="A simple build configuration and project generation tool using lua"
+arch=('i686' 'x86_64')
+url="http://industriousone.com/premake"
+license=('BSD')
+provides=("premake4")
+source=(http://downloads.sourceforge.net/project/premake/Premake/$pkgver/premake-$pkgver-src.zip)
+md5sums=('8cfafee76f9665c93b2e9ad15b015eb7')
+
+build() {
+ cd $srcdir/premake-$pkgver/build/gmake.unix
+
+ make
+}
+
+package() {
+ install -dm755 ${pkgdir}/usr/bin
+ install -m755 $srcdir/premake-$pkgver/bin/release/premake4 ${pkgdir}/usr/bin
+}
diff --git a/community/premake3/PKGBUILD b/community/premake3/PKGBUILD
new file mode 100644
index 000000000..ef6e87f4d
--- /dev/null
+++ b/community/premake3/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Anders Bergh <anders1@gmail.com>
+# Contributor: Mildred <silkensedai@online.fr>
+# Contributor: Daniel J Griffiths <griffithsdj@archlinux.us>
+
+pkgname=premake3
+pkgver=3.7
+pkgrel=1
+pkgdesc="A simple build configuration and project generation tool using lua"
+arch=('i686' 'x86_64')
+url="http://premake.sourceforge.net"
+license=('GPL')
+makedepends=()
+source=("http://downloads.sourceforge.net/sourceforge/premake/premake-src-${pkgver}.zip")
+md5sums=('8d30dc5bbc52aad81abb1509c1dd7d8f')
+
+build() {
+ cd ${srcdir}/Premake-${pkgver}
+
+ make
+}
+
+package() {
+ cd ${srcdir}/Premake-${pkgver}
+
+ install -Dm755 bin/premake ${pkgdir}/usr/bin/premake
+}
diff --git a/community/privoxy/PKGBUILD b/community/privoxy/PKGBUILD
new file mode 100644
index 000000000..b222d50b4
--- /dev/null
+++ b/community/privoxy/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 59194 2011-11-21 14:53:22Z lfleischer $
+# 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.18
+pkgrel=1
+pkgdesc='A web proxy with advanced filtering capabilities.'
+arch=('i686' 'x86_64' 'mips64el')
+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=('baf0b13bb591ec6e1ba15b720ddea65c'
+ '1b4ed8c4e7e5b04b10ef41b597dc3f3b'
+ '79480f311313cc43974f6cbe6b672927'
+ '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 0700 "${pkgdir}/var/log/privoxy"
+}
diff --git a/community/privoxy/privoxy b/community/privoxy/privoxy
new file mode 100755
index 000000000..754453de5
--- /dev/null
+++ b/community/privoxy/privoxy
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/privoxy ] && . /etc/conf.d/privoxy
+
+# read logdir and logfile from privoxy config
+prld=`grep ^logdir "$PRIVOXY_CONF" 2>/dev/null | cut -d' ' -f2`
+[ -n "$prld" ] || prld=/var/log/privoxy
+prlf=`grep ^logfile "$PRIVOXY_CONF" 2>/dev/null | cut -d' ' -f2`
+[ -n "$prlf" ] || prlf=logfile
+
+PID=`pidof -o %PPID /usr/sbin/privoxy`
+
+case "$1" in
+ start)
+ stat_busy "Starting Privoxy"
+ # create missing logdir and logfile
+ [ -d "$prld" ] || mkdir -p "$prld"
+ if [ ! -f "$prlf" ]; then
+ touch "$prld/$prlf" && chgrp "${PRIVOXY_GROUP}" "$prld/$prlf" && \
+ chmod 0660 "$prld/$prlf"
+ fi
+ [ -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..386766c3e
--- /dev/null
+++ b/community/privoxy/privoxy.logrotate.d
@@ -0,0 +1,8 @@
+/var/log/privoxy/* {
+ 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..0123c6a68
--- /dev/null
+++ b/community/procstatd/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 58686 2011-11-17 15:41:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'mips64el')
+license=('GPL')
+source=(http://downloads.sourceforge.net/herdtools/$pkgname.tar.gz)
+md5sums=('1fdeaf05ca6337f5c02e76a76c53c407')
+url="http://www.phy.duke.edu/brahma/"
+md5sums=('1fdeaf05ca6337f5c02e76a76c53c407')
+
+build() {
+ cd $srcdir/$pkgname
+ # Get rid of the funky make install forever bug
+ sed -i 's/make install/echo/;s/cd watchman/echo/' Makefile
+ make
+ make INSTDIR=$pkgdir/usr install
+ mkdir ${pkgdir}/usr/share
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share/man
+}
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..cb0fbd6b5
--- /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' 'mips64el')
+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..68b20f4b9
--- /dev/null
+++ b/community/projectm/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 48148 2011-05-29 00:07:23Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=projectm
+pkgver=2.0.1
+pkgrel=3
+pkgdesc='A music visualizer which uses 3D accelerated iterative image based rendering.'
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ 'libprojectM-2.0.1-pkg-config.patch')
+md5sums=('f8bf795878cdbbef54784cf2390b4c89'
+ 'c271ec8c541eb281f1294287bdbc3488')
+
+build() {
+ cd "${srcdir}/projectM-${pkgver}-Source"
+
+ patch -p0 -i ../libprojectM-2.0.1-pkg-config.patch
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd "${srcdir}/projectM-${pkgver}-Source"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/projectm/libprojectM-2.0.1-pkg-config.patch b/community/projectm/libprojectM-2.0.1-pkg-config.patch
new file mode 100644
index 000000000..415e92fd7
--- /dev/null
+++ b/community/projectm/libprojectM-2.0.1-pkg-config.patch
@@ -0,0 +1,10 @@
+--- libprojectM.pc.orig 2011-05-29 01:52:53.869288700 +0200
++++ libprojectM.pc 2011-05-29 01:53:08.604851407 +0200
+@@ -1,6 +1,6 @@
+ prefix=/usr/local
+ exec_prefix=/usr/local
+-libdir=
++libdir=${exec_prefix}/lib
+ includedir=/usr/local/include
+ pkgdatadir=/usr/local/share/projectM
+ sysconfdir=/usr/local/share/projectM
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..0d6a57414
--- /dev/null
+++ b/community/prosody/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 49803 2011-06-21 09:01:01Z 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.8.2
+pkgrel=1
+pkgdesc="Lightweight and extensible Jabber/XMPP server written in Lua."
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'luadbi: SQL storage 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=('6e907bf0d0acf24f1011083020ba6ffb'
+ 'd2b5f9c8e42bb31819e715eb1756ee53'
+ '26466fdbea87963a3ca6f48f76fe4a29'
+ '59a1bf2dfd0bd386cef6fa646e2a3752')
+
+build() {
+ cd "$srcdir/prosody-$pkgver"
+ patch -p1 <$srcdir/fix-config.patch
+ ./configure --prefix=/usr --sysconfdir=/etc/prosody \
+ --datadir=/var/lib/prosody
+ make
+}
+
+package() {
+ cd "$srcdir/prosody-$pkgver"
+
+ 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..8856bfb92
--- /dev/null
+++ b/community/prosody/fix-config.patch
@@ -0,0 +1,32 @@
+diff -wbBur prosody-0.8.0/prosody.cfg.lua.dist prosody-0.8.0.my/prosody.cfg.lua.dist
+--- prosody-0.8.0/prosody.cfg.lua.dist 2011-04-05 13:47:06.000000000 +0000
++++ prosody-0.8.0.my/prosody.cfg.lua.dist 2011-04-07 16:03:42.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
+@@ -59,7 +61,7 @@
+ --"admin_telnet"; -- Opens telnet console interface on localhost port 5582
+
+ -- Other specific functionality
+- --"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
++ "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
+ --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
+ --"httpserver"; -- Serve static files from a directory over HTTP
+ --"groups"; -- Shared roster support
+@@ -123,8 +125,8 @@
+ -- Logging configuration
+ -- For advanced logging see http://prosody.im/doc/logging
+ log = {
+- info = "prosody.log"; -- Change 'info' to 'debug' for verbose logging
+- error = "prosody.err";
++ info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
++ error = "/var/log/prosody/prosody.err";
+ -- "*syslog"; -- Uncomment this for logging to syslog
+ -- "*console"; -- Log to the console, useful for debugging with daemonize=false
+ }
diff --git a/community/prosody/prosody.install b/community/prosody/prosody.install
new file mode 100644
index 000000000..f935e3d63
--- /dev/null
+++ b/community/prosody/prosody.install
@@ -0,0 +1,35 @@
+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
+
+ echo ">> Documentation: http://wiki.archlinux.org/index.php/Prosody"
+}
+
+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..afaf77903
--- /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 ; chown prosody:prosody /var/run/prosody; }
+ 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..739463982
--- /dev/null
+++ b/community/protobuf/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgbase=protobuf
+pkgname=('protobuf' 'protobuf-python')
+pkgver=2.4.1
+pkgrel=1
+pkgdesc="A way of encoding structured data in an efficient yet extensible format"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/protobuf/"
+license=('APACHE')
+depends=('gcc-libs' 'zlib')
+makedepends=('python2' 'setuptools')
+options=(!libtool)
+source=(http://$pkgname.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('ed436802019c9e1f40cc750eaf78f318')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./autogen.sh
+ ./configure --prefix=/usr --disable-static
+}
+
+package_protobuf() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
+package_protobuf-python() {
+ pkgdesc="protobuf python API"
+# arch=('any')
+ depends=("python2" "protobuf=${pkgver}")
+
+ cd $srcdir/protobuf-$pkgver/python
+ python2 setup.py install --prefix=/usr --root $pkgdir
+}
diff --git a/community/proxytunnel/PKGBUILD b/community/proxytunnel/PKGBUILD
new file mode 100644
index 000000000..8ae8cc023
--- /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' 'mips64el')
+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..baff02667
--- /dev/null
+++ b/community/psimedia/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 49833 2011-06-21 09:57:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vladimir Kutyavin <vlkut-at-bk-dot-ru>
+
+pkgname=psimedia
+pkgver=1.0.3
+pkgrel=7
+pkgdesc="Voice and video chat plugin for Psi-like IM clients. The implementation is based on GStreamer."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://delta.affinix.com/psimedia/"
+depends=('psi' 'speex' 'gstreamer0.10-base' 'qt' 'gstreamer0.10-good-plugins'
+ 'liboil')
+makedepends=('pkgconfig')
+source=(http://delta.affinix.com/download/psimedia/$pkgname-$pkgver.tar.bz2
+ videodev.h
+ psimedia-svn20110621.diff.gz)
+md5sums=('1be71c37d71c655ffc2c53cf86c77a7a'
+ '427e5832466726a86e5b55b1329d2e9e'
+ 'b571639d854c90c758f40a44054c6e06')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/psimedia-svn20110621.diff
+ sed -i 's|# include <linux/videodev.h>|# include "../../../videodev.h"|' gstprovider/deviceenum/deviceenum_unix.cpp
+ ./configure
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m644 ${srcdir}/$pkgname-$pkgver/gstprovider/libgstprovider.so ${pkgdir}/usr/lib/psi/plugins/libgstprovider.so
+}
diff --git a/community/psimedia/psimedia-svn20110621.diff.gz b/community/psimedia/psimedia-svn20110621.diff.gz
new file mode 100644
index 000000000..aeb969794
--- /dev/null
+++ b/community/psimedia/psimedia-svn20110621.diff.gz
Binary files differ
diff --git a/community/psimedia/videodev.h b/community/psimedia/videodev.h
new file mode 100644
index 000000000..c51a5f9cb
--- /dev/null
+++ b/community/psimedia/videodev.h
@@ -0,0 +1,320 @@
+/*
+ * Video for Linux version 1 - OBSOLETE
+ *
+ * Header file for v4l1 drivers and applications, for
+ * Linux kernels 2.2.x or 2.4.x.
+ *
+ * Provides header for legacy drivers and applications
+ *
+ * See http://linuxtv.org for more info
+ *
+ */
+#ifndef __LINUX_VIDEODEV_H
+#define __LINUX_VIDEODEV_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#include <linux/videodev2.h>
+
+
+#define VID_TYPE_CAPTURE 1 /* Can capture */
+#define VID_TYPE_TUNER 2 /* Can tune */
+#define VID_TYPE_TELETEXT 4 /* Does teletext */
+#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */
+#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */
+#define VID_TYPE_CLIPPING 32 /* Can clip */
+#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */
+#define VID_TYPE_SCALES 128 /* Scalable */
+#define VID_TYPE_MONOCHROME 256 /* Monochrome only */
+#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */
+#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */
+#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */
+#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */
+#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */
+
+struct video_capability
+{
+ char name[32];
+ int type;
+ int channels; /* Num channels */
+ int audios; /* Num audio devices */
+ int maxwidth; /* Supported width */
+ int maxheight; /* And height */
+ int minwidth; /* Supported width */
+ int minheight; /* And height */
+};
+
+
+struct video_channel
+{
+ int channel;
+ char name[32];
+ int tuners;
+ __u32 flags;
+#define VIDEO_VC_TUNER 1 /* Channel has a tuner */
+#define VIDEO_VC_AUDIO 2 /* Channel has audio */
+ __u16 type;
+#define VIDEO_TYPE_TV 1
+#define VIDEO_TYPE_CAMERA 2
+ __u16 norm; /* Norm set by channel */
+};
+
+struct video_tuner
+{
+ int tuner;
+ char name[32];
+ unsigned long rangelow, rangehigh; /* Tuner range */
+ __u32 flags;
+#define VIDEO_TUNER_PAL 1
+#define VIDEO_TUNER_NTSC 2
+#define VIDEO_TUNER_SECAM 4
+#define VIDEO_TUNER_LOW 8 /* Uses KHz not MHz */
+#define VIDEO_TUNER_NORM 16 /* Tuner can set norm */
+#define VIDEO_TUNER_STEREO_ON 128 /* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON 256 /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON 512 /* Tuner is seeing an MBS datastream */
+ __u16 mode; /* PAL/NTSC/SECAM/OTHER */
+#define VIDEO_MODE_PAL 0
+#define VIDEO_MODE_NTSC 1
+#define VIDEO_MODE_SECAM 2
+#define VIDEO_MODE_AUTO 3
+ __u16 signal; /* Signal strength 16bit scale */
+};
+
+struct video_picture
+{
+ __u16 brightness;
+ __u16 hue;
+ __u16 colour;
+ __u16 contrast;
+ __u16 whiteness; /* Black and white only */
+ __u16 depth; /* Capture depth */
+ __u16 palette; /* Palette in use */
+#define VIDEO_PALETTE_GREY 1 /* Linear greyscale */
+#define VIDEO_PALETTE_HI240 2 /* High 240 cube (BT848) */
+#define VIDEO_PALETTE_RGB565 3 /* 565 16 bit RGB */
+#define VIDEO_PALETTE_RGB24 4 /* 24bit RGB */
+#define VIDEO_PALETTE_RGB32 5 /* 32bit RGB */
+#define VIDEO_PALETTE_RGB555 6 /* 555 15bit RGB */
+#define VIDEO_PALETTE_YUV422 7 /* YUV422 capture */
+#define VIDEO_PALETTE_YUYV 8
+#define VIDEO_PALETTE_UYVY 9 /* The great thing about standards is ... */
+#define VIDEO_PALETTE_YUV420 10
+#define VIDEO_PALETTE_YUV411 11 /* YUV411 capture */
+#define VIDEO_PALETTE_RAW 12 /* RAW capture (BT848) */
+#define VIDEO_PALETTE_YUV422P 13 /* YUV 4:2:2 Planar */
+#define VIDEO_PALETTE_YUV411P 14 /* YUV 4:1:1 Planar */
+#define VIDEO_PALETTE_YUV420P 15 /* YUV 4:2:0 Planar */
+#define VIDEO_PALETTE_YUV410P 16 /* YUV 4:1:0 Planar */
+#define VIDEO_PALETTE_PLANAR 13 /* start of planar entries */
+#define VIDEO_PALETTE_COMPONENT 7 /* start of component entries */
+};
+
+struct video_audio
+{
+ int audio; /* Audio channel */
+ __u16 volume; /* If settable */
+ __u16 bass, treble;
+ __u32 flags;
+#define VIDEO_AUDIO_MUTE 1
+#define VIDEO_AUDIO_MUTABLE 2
+#define VIDEO_AUDIO_VOLUME 4
+#define VIDEO_AUDIO_BASS 8
+#define VIDEO_AUDIO_TREBLE 16
+#define VIDEO_AUDIO_BALANCE 32
+ char name[16];
+#define VIDEO_SOUND_MONO 1
+#define VIDEO_SOUND_STEREO 2
+#define VIDEO_SOUND_LANG1 4
+#define VIDEO_SOUND_LANG2 8
+ __u16 mode;
+ __u16 balance; /* Stereo balance */
+ __u16 step; /* Step actual volume uses */
+};
+
+struct video_clip
+{
+ __s32 x,y;
+ __s32 width, height;
+ struct video_clip *next; /* For user use/driver use only */
+};
+
+struct video_window
+{
+ __u32 x,y; /* Position of window */
+ __u32 width,height; /* Its size */
+ __u32 chromakey;
+ __u32 flags;
+ struct video_clip *clips; /* Set only */
+ int clipcount;
+#define VIDEO_WINDOW_INTERLACE 1
+#define VIDEO_WINDOW_CHROMAKEY 16 /* Overlay by chromakey */
+#define VIDEO_CLIP_BITMAP -1
+/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
+#define VIDEO_CLIPMAP_SIZE (128 * 625)
+};
+
+struct video_capture
+{
+ __u32 x,y; /* Offsets into image */
+ __u32 width, height; /* Area to capture */
+ __u16 decimation; /* Decimation divider */
+ __u16 flags; /* Flags for capture */
+#define VIDEO_CAPTURE_ODD 0 /* Temporal */
+#define VIDEO_CAPTURE_EVEN 1
+};
+
+struct video_buffer
+{
+ void *base;
+ int height,width;
+ int depth;
+ int bytesperline;
+};
+
+struct video_mmap
+{
+ unsigned int frame; /* Frame (0 - n) for double buffer */
+ int height,width;
+ unsigned int format; /* should be VIDEO_PALETTE_* */
+};
+
+struct video_key
+{
+ __u8 key[8];
+ __u32 flags;
+};
+
+struct video_mbuf
+{
+ int size; /* Total memory to map */
+ int frames; /* Frames */
+ int offsets[VIDEO_MAX_FRAME];
+};
+
+#define VIDEO_NO_UNIT (-1)
+
+struct video_unit
+{
+ int video; /* Video minor */
+ int vbi; /* VBI minor */
+ int radio; /* Radio minor */
+ int audio; /* Audio minor */
+ int teletext; /* Teletext minor */
+};
+
+struct vbi_format {
+ __u32 sampling_rate; /* in Hz */
+ __u32 samples_per_line;
+ __u32 sample_format; /* VIDEO_PALETTE_RAW only (1 byte) */
+ __s32 start[2]; /* starting line for each frame */
+ __u32 count[2]; /* count of lines for each frame */
+ __u32 flags;
+#define VBI_UNSYNC 1 /* can distingues between top/bottom field */
+#define VBI_INTERLACED 2 /* lines are interlaced */
+};
+
+/* video_info is biased towards hardware mpeg encode/decode */
+/* but it could apply generically to any hardware compressor/decompressor */
+struct video_info
+{
+ __u32 frame_count; /* frames output since decode/encode began */
+ __u32 h_size; /* current unscaled horizontal size */
+ __u32 v_size; /* current unscaled veritcal size */
+ __u32 smpte_timecode; /* current SMPTE timecode (for current GOP) */
+ __u32 picture_type; /* current picture type */
+ __u32 temporal_reference; /* current temporal reference */
+ __u8 user_data[256]; /* user data last found in compressed stream */
+ /* user_data[0] contains user data flags, user_data[1] has count */
+};
+
+/* generic structure for setting playback modes */
+struct video_play_mode
+{
+ int mode;
+ int p1;
+ int p2;
+};
+
+/* for loading microcode / fpga programming */
+struct video_code
+{
+ char loadwhat[16]; /* name or tag of file being passed */
+ int datasize;
+ __u8 *data;
+};
+
+#define VIDIOCGCAP _IOR('v',1,struct video_capability) /* Get capabilities */
+#define VIDIOCGCHAN _IOWR('v',2,struct video_channel) /* Get channel info (sources) */
+#define VIDIOCSCHAN _IOW('v',3,struct video_channel) /* Set channel */
+#define VIDIOCGTUNER _IOWR('v',4,struct video_tuner) /* Get tuner abilities */
+#define VIDIOCSTUNER _IOW('v',5,struct video_tuner) /* Tune the tuner for the current channel */
+#define VIDIOCGPICT _IOR('v',6,struct video_picture) /* Get picture properties */
+#define VIDIOCSPICT _IOW('v',7,struct video_picture) /* Set picture properties */
+#define VIDIOCCAPTURE _IOW('v',8,int) /* Start, end capture */
+#define VIDIOCGWIN _IOR('v',9, struct video_window) /* Get the video overlay window */
+#define VIDIOCSWIN _IOW('v',10, struct video_window) /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
+#define VIDIOCGFBUF _IOR('v',11, struct video_buffer) /* Get frame buffer */
+#define VIDIOCSFBUF _IOW('v',12, struct video_buffer) /* Set frame buffer - root only */
+#define VIDIOCKEY _IOR('v',13, struct video_key) /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
+#define VIDIOCGFREQ _IOR('v',14, unsigned long) /* Set tuner */
+#define VIDIOCSFREQ _IOW('v',15, unsigned long) /* Set tuner */
+#define VIDIOCGAUDIO _IOR('v',16, struct video_audio) /* Get audio info */
+#define VIDIOCSAUDIO _IOW('v',17, struct video_audio) /* Audio source, mute etc */
+#define VIDIOCSYNC _IOW('v',18, int) /* Sync with mmap grabbing */
+#define VIDIOCMCAPTURE _IOW('v',19, struct video_mmap) /* Grab frames */
+#define VIDIOCGMBUF _IOR('v',20, struct video_mbuf) /* Memory map buffer info */
+#define VIDIOCGUNIT _IOR('v',21, struct video_unit) /* Get attached units */
+#define VIDIOCGCAPTURE _IOR('v',22, struct video_capture) /* Get subcapture */
+#define VIDIOCSCAPTURE _IOW('v',23, struct video_capture) /* Set subcapture */
+#define VIDIOCSPLAYMODE _IOW('v',24, struct video_play_mode) /* Set output video mode/feature */
+#define VIDIOCSWRITEMODE _IOW('v',25, int) /* Set write mode */
+#define VIDIOCGPLAYINFO _IOR('v',26, struct video_info) /* Get current playback info from hardware */
+#define VIDIOCSMICROCODE _IOW('v',27, struct video_code) /* Load microcode into hardware */
+#define VIDIOCGVBIFMT _IOR('v',28, struct vbi_format) /* Get VBI information */
+#define VIDIOCSVBIFMT _IOW('v',29, struct vbi_format) /* Set VBI information */
+
+
+#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
+
+/* VIDIOCSWRITEMODE */
+#define VID_WRITE_MPEG_AUD 0
+#define VID_WRITE_MPEG_VID 1
+#define VID_WRITE_OSD 2
+#define VID_WRITE_TTX 3
+#define VID_WRITE_CC 4
+#define VID_WRITE_MJPEG 5
+
+/* VIDIOCSPLAYMODE */
+#define VID_PLAY_VID_OUT_MODE 0
+ /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
+#define VID_PLAY_GENLOCK 1
+ /* p1: 0 = OFF, 1 = ON */
+ /* p2: GENLOCK FINE DELAY value */
+#define VID_PLAY_NORMAL 2
+#define VID_PLAY_PAUSE 3
+#define VID_PLAY_SINGLE_FRAME 4
+#define VID_PLAY_FAST_FORWARD 5
+#define VID_PLAY_SLOW_MOTION 6
+#define VID_PLAY_IMMEDIATE_NORMAL 7
+#define VID_PLAY_SWITCH_CHANNELS 8
+#define VID_PLAY_FREEZE_FRAME 9
+#define VID_PLAY_STILL_MODE 10
+#define VID_PLAY_MASTER_MODE 11
+ /* p1: see below */
+#define VID_PLAY_MASTER_NONE 1
+#define VID_PLAY_MASTER_VIDEO 2
+#define VID_PLAY_MASTER_AUDIO 3
+#define VID_PLAY_ACTIVE_SCANLINES 12
+ /* p1 = first active; p2 = last active */
+#define VID_PLAY_RESET 13
+#define VID_PLAY_END_MARK 14
+
+
+#endif /* __LINUX_VIDEODEV_H */
+
+/*
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */
diff --git a/community/pspshrink/PKGBUILD b/community/pspshrink/PKGBUILD
new file mode 100644
index 000000000..1944a5af0
--- /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' 'mips64el')
+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..569f08763
--- /dev/null
+++ b/community/psqlodbc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60404 2011-12-13 10:30:42Z spupykin $
+# Maintainer:
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux-br.org>
+# Contributor: Rick Rein <jeebusroxors@gmail.com>
+
+pkgname=psqlodbc
+pkgver=09.00.0310
+pkgrel=1
+pkgdesc="PostgreSQL ODBC driver"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.postgresql.org"
+depends=('unixodbc' 'postgresql-libs')
+makedepends=('postgresql')
+options=('!libtool')
+source=(ftp://ftp2.it.postgresql.org/mirrors/postgres//odbc/versions/src/$pkgname-$pkgver.tar.gz
+ fix-function-declarations.patch)
+md5sums=('78144d9ea6c40f0a0a0b92128e6b0e05'
+ 'f1189f9c6ae0b5bfb5ee8423eaa4076f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+# patch -p1 -i "$srcdir/fix-function-declarations.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+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..a27c1066b
--- /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' 'mips64el')
+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..fa9d3d803
--- /dev/null
+++ b/community/puzzles/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+pkgname=puzzles
+pkgver=9306
+pkgrel=2
+pkgdesc="Simon Tatham's Portable Puzzle Collection"
+arch=('i686' 'x86_64' 'mips64el')
+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")
+
+build() {
+ cd ${srcdir}/${pkgname}-r${pkgver}
+
+ sed -i 's|\$(gamesdir)|\$(bindir)|' Makefile
+ make prefix=/usr
+}
+
+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
+
+ #fix FS#14600
+ mv ${pkgdir}/usr/bin/net ${pkgdir}/usr/bin/puzzles-net
+ mv ${pkgdir}/usr/bin/cube ${pkgdir}/usr/bin/puzzles-cube
+ mv ${pkgdir}/usr/bin/blackbox ${pkgdir}/usr/bin/puzzles-blackbox
+}
+
+md5sums=('317e97dc3bfc7cb901636761747fa4c9')
diff --git a/community/pv/PKGBUILD b/community/pv/PKGBUILD
new file mode 100644
index 000000000..5d09b1152
--- /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' 'mips64el')
+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..e0bafdeb5
--- /dev/null
+++ b/community/pwmanager/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58627 2011-11-16 15:52:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributors: Pointer <pointer@linux-blog.de>, tmaynard <arch@toddmaynard.com>
+
+pkgname=pwmanager
+pkgver=1.2.4
+pkgrel=5
+pkgdesc="With PwManager you can easily manage your passwords"
+arch=('i686' 'x86_64' 'mips64el')
+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 $srcdir/$pkgname-$pkgver
+
+ patch -p1 <$srcdir/build-fix.patch
+
+ ./configure --prefix=/opt/kde --without-arts
+ make
+ make DESTDIR=$pkgdir install
+}
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..ee1fb1011
--- /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' 'mips64el')
+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..b037dc146
--- /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' 'mips64el')
+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..fdecee5ae
--- /dev/null
+++ b/community/pygoocanvas/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 56152 2011-10-02 11:46:05Z ibiru $
+# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=pygoocanvas
+pkgver=0.14.1
+pkgrel=4
+pkgdesc="GooCanvas python bindings"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://developer.berlios.de/projects/pygoocanvas"
+license=('LGPL')
+depends=('python2' 'goocanvas1' 'pygtk')
+makedepends=('pkgconfig')
+options=('!libtool' 'docs')
+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
+}
+
+package() {
+ cd "$srcdir/pygoocanvas-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/pyid3lib/PKGBUILD b/community/pyid3lib/PKGBUILD
new file mode 100644
index 000000000..40f1cc6b0
--- /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' 'mips64el')
+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..4d5cee098
--- /dev/null
+++ b/community/pylibacl/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 57855 2011-11-03 18:43:59Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=pylibacl
+pkgver=0.5.0
+pkgrel=2
+pkgdesc='A python extension module that allows you to manipulate the POSIX.1e ACLs.'
+arch=('i686' 'x86_64' 'mips64el')
+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..55866fb71
--- /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' 'mips64el')
+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..befa59d9c
--- /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' 'mips64el')
+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..5122b3673
--- /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' 'mips64el')
+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..49f1839a7
--- /dev/null
+++ b/community/pypanel/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 57834 2011-11-03 10:22:57Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Jeff Mickey <j@codemac.net>
+# Contributor: Mr Green
+# Contributor: Jens Persson <xerxes2@gmail.com>
+
+pkgname=pypanel
+pkgver=2.4
+pkgrel=7
+pkgdesc='A lightweight panel/taskbar for X11 window managers written in python.'
+arch=('i686' 'x86_64' 'mips64el')
+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..c48714ab8
--- /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' 'mips64el')
+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..254e01b88
--- /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' 'mips64el')
+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..c6698eaed
--- /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' 'mips64el')
+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..4050906c5
--- /dev/null
+++ b/community/python-bsddb/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 55994 2011-09-28 12:21:07Z stephane $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgbase=python-bsddb
+pkgname=('python2-bsddb' 'python-bsddb')
+pkgver=5.2.0
+pkgrel=2
+pkgdesc="Python interface for BerkeleyDB"
+license=('MIT')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.jcea.es/programacion/pybsddb.htm"
+makedepends=('python2-distribute' 'python-distribute')
+source=(http://pypi.python.org/packages/source/b/bsddb3/bsddb3-${pkgver}.tar.gz
+ LICENSE)
+sha1sums=('4395c125807fc8c4bac4d367f4556e623605c7a8'
+ 'ef4e4caf618781104dbf5824279ed39d127b4713')
+
+build () {
+ cd "${srcdir}"
+
+ cp -r bsddb3-${pkgver}{,-python2}
+
+ # Build python 3 module
+ cd bsddb3-${pkgver}
+ python setup.py --berkeley-db=/usr build
+
+ # Build python 2 module
+ cd ../bsddb3-${pkgver}-python2
+ python2 setup.py --berkeley-db=/usr build
+}
+
+package_python2-bsddb() {
+ depends=('db' 'python2>=2.7')
+ cd "${srcdir}/bsddb3-${pkgver}-python2"
+
+ python2 setup.py --berkeley-db=/usr install --root="${pkgdir}" --skip-build --optimize=1
+ install -Dm644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_python-bsddb() {
+ depends=('db' 'python>=3.2')
+ cd "${srcdir}/bsddb3-${pkgver}"
+
+ python setup.py --berkeley-db=/usr install --root="${pkgdir}" --skip-build --optimize=1
+ install -Dm644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-cjson/PKGBUILD b/community/python-cjson/PKGBUILD
new file mode 100644
index 000000000..0979021c3
--- /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' 'mips64el')
+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..0d823a1ae
--- /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' 'mips64el')
+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..bd0043b2d
--- /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' 'mips64el')
+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..66fdff795
--- /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' 'mips64el')
+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..d2e1e07ab
--- /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' 'mips64el')
+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..f4710d43c
--- /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' 'mips64el')
+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..2542cf2dc
--- /dev/null
+++ b/community/python-gnutls/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 56532 2011-10-07 21:32:13Z spupykin $
+# 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.2
+pkgrel=1
+pkgdesc="Python wrapper for the GNUTLS library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1ca32b3e2d22ca33a15222191efc04aa')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+# sed -i "s|openpgp_\(privkey_sign_hash\)|\1|g" gnutls/library/functions.py
+ 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..4150fbf02
--- /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' 'mips64el')
+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..e5cd1d251
--- /dev/null
+++ b/community/python-lcms/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58889 2011-11-19 16:52:42Z andrea $
+# 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 'mips64el')
+license=('CUSTOM')
+depends=('libtiff' 'python2' 'lcms')
+url="http://www.littlecms.com"
+options=('!libtool')
+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..52b99ad1f
--- /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' 'mips64el')
+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..e48458f39
--- /dev/null
+++ b/community/python-mpi4py/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 60172 2011-12-06 14:17:13Z stephane $
+# 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=5
+arch=('i686' 'x86_64' 'mips64el')
+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..30a7cd923
--- /dev/null
+++ b/community/python-numarray/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 57888 2011-11-04 08:26:37Z 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=5
+pkgdesc='Provides array manipulation and computational capabilities.'
+arch=('i686' 'x86_64' 'mips64el')
+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..7f86ce232
--- /dev/null
+++ b/community/python-openbabel/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 57093 2011-10-21 05:48:48Z kchen $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Michal Bozon <bozonm@vscht.cz>
+
+pkgname=python-openbabel
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="Python bindings of openbabel library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1f029b0add12a3b55582dc2c832b04f8')
+
+build() {
+ cd "${srcdir}/openbabel-$pkgver"
+
+ # Create babelconfig.h
+ cmake .
+
+ # Regenerate interface with the patched swig 2.0.2
+ cd scripts
+ swig -I../include/ -python -py3 -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
+ sed -i '20i os.path.join("/usr/include/eigen2"),' setup.py
+}
+
+package() {
+ cd "${srcdir}/openbabel-$pkgver/scripts/python"
+ python setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
+}
diff --git a/community/python-psycopg1/PKGBUILD b/community/python-psycopg1/PKGBUILD
new file mode 100755
index 000000000..54244d526
--- /dev/null
+++ b/community/python-psycopg1/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# 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' 'mips64el')
+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..5a4786c00
--- /dev/null
+++ b/community/python-psycopg2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 51180 2011-07-05 16:56:35Z 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.2
+pkgrel=1
+pkgdesc="A PostgreSQL database adapter for the Python programming language."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://initd.org/psycopg/"
+license=('LGPL3')
+makedepends=('python2' 'python' 'postgresql-libs>=8.4.1')
+source=(http://initd.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-$pkgver.tar.gz)
+md5sums=('920c533806f112787b480806ea125406')
+
+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..df7d0dcb7
--- /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' 'mips64el')
+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..dd203c1e6
--- /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' 'mips64el')
+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-pymongo/PKGBUILD b/community/python-pymongo/PKGBUILD
new file mode 100644
index 000000000..25bdc0312
--- /dev/null
+++ b/community/python-pymongo/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 60320 2011-12-10 12:45:52Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Thomas S Hatch <thatch45@gmail.com>
+pkgname=python-pymongo
+pkgver=1.9b1
+pkgrel=3
+pkgdesc="Python driver for MongoDB"
+arch=('x86_64' 'i686' 'mips64el')
+license=("APACHE")
+url="http://pypi.python.org/pypi/pymongo3/"
+depends=('python')
+makedepends=('python-distribute')
+source=("http://pypi.python.org/packages/source/p/pymongo3/pymongo3-$pkgver.tar.gz")
+sha256sums=('dcabaaca2f0067e648c2b081a70564b832de981495ff953597c1e451a7fcac20')
+
+package() {
+ cd "$srcdir/pymongo3-$pkgver"
+
+ LANG=en_US.UTF8 python setup.py install --root="$pkgdir" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/python-pyro/ChangeLog b/community/python-pyro/ChangeLog
new file mode 100644
index 000000000..aa691dd88
--- /dev/null
+++ b/community/python-pyro/ChangeLog
@@ -0,0 +1,21 @@
+2011-10-07 Angel Velasquez <angvp@archlinux.org>
+ * updated to 4.9
+ * Adding support for python 3
+ * Splitted PKGBUILD
+
+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..72d738f24
--- /dev/null
+++ b/community/python-pyro/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.br>
+pkgbase=python-pyro
+pkgname=('python-pyro' 'python2-pyro')
+pkgver=4.9
+pkgrel=1
+pkgdesc="Python Remote Objects"
+url="http://irmen.home.xs4all.nl/pyro/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('MIT')
+depends=('python' 'python2')
+source=(http://pypi.python.org/packages/source/P/Pyro4/Pyro4-${pkgver}.tar.gz)
+md5sums=('00bf604303898ee920975a8ddd76bae1')
+
+package_python-pyro() {
+ depends=('python')
+ cd $srcdir/Pyro4-${pkgver}
+ python setup.py install --root=$pkgdir
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_python2-pyro() {
+ depends=('python2')
+ cd $srcdir/Pyro4-${pkgver}
+ python2 setup.py install --root=$pkgdir
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-pysqlite-legacy/PKGBUILD b/community/python-pysqlite-legacy/PKGBUILD
new file mode 100644
index 000000000..766c0a1c7
--- /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' 'mips64el')
+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-pyxattr/PKGBUILD b/community/python-pyxattr/PKGBUILD
new file mode 100644
index 000000000..6316dbe6c
--- /dev/null
+++ b/community/python-pyxattr/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 54628 2011-08-22 08:01:47Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Jon Bergli Heier <snakebite@jvnv.net>
+
+pkgname=('python2-pyxattr' 'python-pyxattr')
+pkgbase=python-pyxattr
+_pkgname=pyxattr
+pkgver=0.5.0
+pkgrel=2
+pkgdesc="A python extension module that allows you to manipulate the extended attributes."
+arch=('i686' 'x86_64')
+url='http://pyxattr.sourceforge.net/'
+license=('GPL')
+makedepends=('python2' 'python' 'python2-distribute' 'python-distribute')
+source=("http://downloads.sourceforge.net/${_pkgname}/${_pkgname}-${pkgver}.tar.gz")
+md5sums=('0f7ab1e185087329e40f7de218517c84')
+
+package_python2-pyxattr() {
+ depends=('python2')
+ provides=('pyxattr')
+ conflicts=('pyxattr')
+ replaces=('pyxattr')
+
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
+
+package_python-pyxattr() {
+ depends=('python')
+
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ python setup.py install --root="${pkgdir}"
+}
diff --git a/community/python-pyxmpp/PKGBUILD b/community/python-pyxmpp/PKGBUILD
new file mode 100644
index 000000000..bc07b6259
--- /dev/null
+++ b/community/python-pyxmpp/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 56515 2011-10-07 20:09:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-pyxmpp
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="A Python XMPP and Jabber implementation based on libxml2"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pyxmpp.jajcus.net/"
+license=('LGPL')
+depends=('python-dnspython' 'libxml2' 'python-m2crypto')
+source=(http://pyxmpp.jajcus.net/downloads/pyxmpp-$pkgver.tar.gz)
+md5sums=('a38abf032aca0408b6055cd94296eb75')
+
+build() {
+ cd $startdir/src/pyxmpp-$pkgver
+ python2 setup.py build
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/python-scipy/PKGBUILD b/community/python-scipy/PKGBUILD
new file mode 100755
index 000000000..d9ac969d6
--- /dev/null
+++ b/community/python-scipy/PKGBUILD
@@ -0,0 +1,71 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Ray Rashif <schiv@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Bodor Dávid Gábor <david.gabor.bodor@gmail.com>
+# Contributor: Andrzej Giniewicz <gginiu@gmail.com>
+
+pkgname=('python-scipy' 'python2-scipy')
+pkgver=0.10.0
+pkgrel=1
+pkgdesc="SciPy is open-source software for mathematics, science, and engineering."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.scipy.org/"
+license=('BSD')
+makedepends=('gcc-fortran' 'python-numpy' 'python2-numpy')
+source=("http://downloads.sourceforge.net/scipy/scipy-${pkgver}.tar.gz")
+md5sums=('e357c08425fd031dce63bc4905789088')
+
+build() {
+ unset LDFLAGS
+ unset FFLAGS
+
+ # Changing the arithmetic parameter (Thanks to Fabrizio Castellano)
+ sed -i "s/\#define\ UNK\ 1/\#define\ IBMPC\ 1/" \
+ scipy-${pkgver}/scipy/special/cephes/mconf.h
+
+ # 2 builds
+ cp -r scipy-${pkgver} scipy-${pkgver}-py2
+
+ # build for python3
+ cd scipy-${pkgver}
+ python setup.py config_fc --fcompiler=gnu95 build
+
+ # build for python2
+ cd ../scipy-${pkgver}-py2
+
+ 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
+}
+
+package_python-scipy() {
+ depends=('python-numpy')
+ provides=('python3-scipy' 'scipy')
+
+ cd scipy-${pkgver}
+
+ python setup.py config_fc --fcompiler=gnu95 install \
+ --prefix=/usr --root=${pkgdir} --optimize=1
+
+ install -Dm644 LICENSE.txt \
+ "${pkgdir}/usr/share/licenses/python-scipy/LICENSE"
+}
+
+package_python2-scipy() {
+ depends=('python2-numpy')
+ conflicts=('python-scipy<0.9.0')
+
+ cd scipy-${pkgver}-py2
+
+ python2 setup.py config_fc --fcompiler=gnu95 install \
+ --prefix=/usr --root=${pkgdir} --optimize=1
+
+ install -Dm644 LICENSE.txt \
+ "${pkgdir}/usr/share/licenses/python2-scipy/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/python-vorbissimple/PKGBUILD b/community/python-vorbissimple/PKGBUILD
new file mode 100644
index 000000000..ed4ae8b8d
--- /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' 'mips64el')
+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..fb2af475a
--- /dev/null
+++ b/community/python-yaml/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 49808 2011-06-21 09:01:51Z 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.10
+pkgrel=1
+pkgdesc="Python bindings for YAML, using fast libYAML library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('74c94a383886519e9e7b3dd1ee540247')
+
+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..1c4567710
--- /dev/null
+++ b/community/python2-basemap/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 51032 2011-07-04 14:39:21Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Julien Morin <jmorin@cp.dias.ie>
+
+pkgname=python2-basemap
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="Toolkit for plotting data on map projections"
+arch=('i686' 'x86_64' 'mips64el')
+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=('bd278580c004ec597020e313cc2c568593a018eb')
+
+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-cheetah/PKGBUILD b/community/python2-cheetah/PKGBUILD
new file mode 100755
index 000000000..d27faddb3
--- /dev/null
+++ b/community/python2-cheetah/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Todd Maynard <arch@toddmaynard.com>
+
+pkgname=python2-cheetah
+pkgver=2.4.4
+pkgrel=3
+pkgdesc="A Python-powered template engine and code generator"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.cheetahtemplate.org/"
+license=('custom')
+depends=('python2' 'python-markdown')
+makedepends=('python2-distribute')
+optdepends=('python2-pygments: for the CodeHighlighter filter')
+provides=('cheetah' 'python-cheetah')
+conflicts=('cheetah' 'python-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/python2-ldap/PKGBUILD b/community/python2-ldap/PKGBUILD
new file mode 100644
index 000000000..360825993
--- /dev/null
+++ b/community/python2-ldap/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 57753 2011-11-02 08:49:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Morgan LEFIEUX <comete_AT_archlinuxfr.org>
+
+pkgname=python2-ldap
+pkgver=2.4.4
+pkgrel=1
+pkgdesc="Provides an object-oriented API to access LDAP directory servers from Python programs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://python-ldap.sourceforge.net"
+license=('custom')
+depends=('python2' 'libldap>=2.4.26')
+makedepends=('chrpath')
+replaces=('python-ldap')
+source=(http://pypi.python.org/packages/source/p/python-ldap/python-ldap-$pkgver.tar.gz)
+md5sums=('b7b8d61eed6f03d1ca8914471e2c9724')
+
+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
+ chrpath -d $pkgdir/usr/lib/python2.7/site-packages/_ldap.so
+}
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..45a512959
--- /dev/null
+++ b/community/python2-matplotlib/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 56824 2011-10-13 21:31: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.1.0
+pkgrel=1
+pkgdesc="A python plotting library, making publication quality plots"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://matplotlib.sourceforge.net/"
+backup=(usr/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc)
+depends=('python2-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=('435b4f04a7e099b79f66451d69ad0b5ce66030ae'
+ '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}"
+ install -m 644 doc/users/license.rst "${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..6ca534313
--- /dev/null
+++ b/community/python2-openbabel/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 57091 2011-10-21 05:24:19Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Michal Bozon <bozonm@vscht.cz>
+
+pkgname=python2-openbabel
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="Python 2 bindings of openbabel library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1f029b0add12a3b55582dc2c832b04f8')
+
+package() {
+ cd ${srcdir}/openbabel-$pkgver/scripts/python
+ sed -i '19i os.path.join("/usr/include/openbabel-2.0"),' setup.py
+ sed -i '20i os.path.join("/usr/include/eigen2"),' 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..5a7e907d7
--- /dev/null
+++ b/community/python2-poppler/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 58362 2011-11-12 10:53:03Z ibiru $
+# Maintainer: Ray Rashif <schiv@archlinux.org
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=python2-poppler
+_realname=pypoppler
+pkgver=0.12.1
+pkgrel=7
+pkgdesc="Python 2.x bindings for Poppler"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://launchpad.net/poppler-python"
+license=('GPL')
+depends=('pygtk' 'poppler-glib' 'glib2' 'freetype2')
+provides=('pypoppler' 'python-poppler')
+conflicts=('python-poppler')
+replaces=('python-poppler')
+options=(!libtool)
+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"
+
+ # poppler 0.16 compat
+ patch -Np0 -i \
+ "$srcdir/pypoppler-0.12.1-poppler-0.16.0.patch"
+
+ # poppler 0.18 compat
+ sed -i "/pixbuf/,/^)/d" poppler.defs
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ PYTHON=python2
+ make
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
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-pymongo/PKGBUILD b/community/python2-pymongo/PKGBUILD
new file mode 100644
index 000000000..2497afb83
--- /dev/null
+++ b/community/python2-pymongo/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Piotr Husiatyński <phusiatynski@gmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=python2-pymongo
+pkgver=2.0.1
+pkgrel=1
+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' 'mips64el')
+md5sums=('9e94096991285c384adfa8cafaf39c88')
+
+package() {
+ cd $srcdir/pymongo-$pkgver
+ python2 setup.py install --root=$pkgdir --optimize=1
+}
+md5sums=('36300a5c3568707f6c5f1692f42ca008')
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..8f24a281f
--- /dev/null
+++ b/community/python2-pyopencl/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 53932 2011-08-10 01:28:16Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+pkgname=python2-pyopencl
+pkgver=2011.1.2
+pkgrel=2
+pkgdesc="A complete, object-oriented language binding of OpenCL to Python"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mathema.tician.de/software/pyopencl"
+license=('custom')
+depends=('python2' 'python2-numpy' 'python-mako' 'python2-pytools' '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=('5ecc476b86317ed065c75c1d8efb2a53d1d8f075'
+ '2e6966b3d9b15603ce2c3ff79eeadd63c5d066b7')
+
+build() {
+ cd "${srcdir}/pyopencl-${pkgver}"
+ python2 ./configure.py
+
+ 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/python2-rst2pdf/LICENSE.txt b/community/python2-rst2pdf/LICENSE.txt
new file mode 100644
index 000000000..89b95f202
--- /dev/null
+++ b/community/python2-rst2pdf/LICENSE.txt
@@ -0,0 +1,20 @@
+Copyright (c) 2007,2008,2009 Roberto Alsina
+Nicolas Laurance, Christoph Zwerschke, Yasushi Masuda, Josh VanderLinden.
+
+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-rst2pdf/PKGBUILD b/community/python2-rst2pdf/PKGBUILD
new file mode 100644
index 000000000..b81b90874
--- /dev/null
+++ b/community/python2-rst2pdf/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 54721 2011-08-23 21:07:42Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+pkgname=python2-rst2pdf
+pkgver=0.16
+pkgrel=10
+pkgdesc="Create PDFs from simple text markup, no LaTeX required."
+arch=('i686' 'x86_64')
+url="http://rst2pdf.googlecode.com"
+license=('MIT')
+depends=('python2' 'setuptools' 'docutils' 'python-reportlab')
+source=(http://rst2pdf.googlecode.com/files/rst2pdf-$pkgver.tar.gz LICENSE.txt
+ rst2pdf-0.16_docutils-0.8.patch)
+optdepends=('uniconvertor: vector images support'
+ 'python-svglib: some SVG support'
+ 'inkscape: best SVG support'
+ 'python-wordaxe: hyphenation'
+ 'python2-pygments: Syntax Highlighting'
+ 'pil: non-JPEG bitmap image formats'
+ 'pythonmagick: more image formats')
+md5sums=('67b8bfac3ac55a85a09fc35ba98794d3'
+ '416f8046c66b9476cdbacda69a673afe'
+ 'fcd21288b01b35f654579670dd8c7a02')
+
+build() {
+ cd $srcdir/rst2pdf-$pkgver
+ patch -p0 < ../rst2pdf-0.16_docutils-0.8.patch
+ python2 setup.py install --root=$pkgdir
+}
+
+package() {
+ cd $srcdir/rst2pdf-$pkgver
+ install -D ../LICENSE.txt $pkgdir/usr/share/licenses/python-rst2pdf/COPYING
+ (cd doc && rst2man rst2pdf.txt rst2pdf.1)
+ install -D doc/rst2pdf.1 $pkgdir/usr/share/man/man1/rst2pdf.1
+ gzip $pkgdir/usr/share/man/man1/rst2pdf.1
+}
diff --git a/community/python2-rst2pdf/rst2pdf-0.16_docutils-0.8.patch b/community/python2-rst2pdf/rst2pdf-0.16_docutils-0.8.patch
new file mode 100644
index 000000000..a7cc081ff
--- /dev/null
+++ b/community/python2-rst2pdf/rst2pdf-0.16_docutils-0.8.patch
@@ -0,0 +1,52 @@
+Index: rst2pdf/createpdf.py
+===================================================================
+--- rst2pdf/createpdf.py (revision 2441)
++++ rst2pdf/createpdf.py (working copy)
+@@ -56,6 +56,7 @@
+ from optparse import OptionParser
+ import logging
+
++import docutils
+ from docutils.languages import get_language
+ import docutils.readers.doctree
+ import docutils.core
+@@ -97,6 +98,12 @@
+ escape=tenjin.helpers.escape
+ templateEngine=tenjin.Engine()
+
++# fix get_language for docutils>=0.8
++if docutils.__version__ >= '0.8':
++ orig_func = get_language
++ def get_language(arg1):
++ return orig_func(arg1, None)
++
+ def renderTemplate(tname, **context):
+ context['to_str']=to_str
+ context['escape']=escape
+Index: rst2pdf/pdfbuilder.py
+===================================================================
+--- rst2pdf/pdfbuilder.py (revision 2441)
++++ rst2pdf/pdfbuilder.py (working copy)
+@@ -27,6 +27,7 @@
+ from rst2pdf import pygments_code_block_directive, oddeven_directive
+ from pygments.lexers import get_lexer_by_name, guess_lexer
+
++import docutils
+ from docutils import writers
+ from docutils import nodes
+ from docutils import languages
+@@ -56,7 +57,14 @@
+
+ from traceback import print_exc
+
++# fix get_language for docutils>=0.8
++if docutils.__version__ >= '0.8':
++ orig_func = get_language
++ def get_language(arg1):
++ return orig_func(arg1, None)
++ languages.get_language = get_language
+
++
+ class PDFBuilder(Builder):
+ name = 'pdf'
+ out_suffix = '.pdf'
diff --git a/community/pyvorbis/PKGBUILD b/community/pyvorbis/PKGBUILD
new file mode 100644
index 000000000..f2a83d7b8
--- /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' 'mips64el')
+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/qbittorrent/PKGBUILD b/community/qbittorrent/PKGBUILD
new file mode 100644
index 000000000..26f31340e
--- /dev/null
+++ b/community/qbittorrent/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 60037 2011-12-03 17:31:58Z tdziedzic $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=qbittorrent
+pkgver=2.9.2
+pkgrel=6
+pkgdesc="A bittorrent client written in C++ / Qt4 using the good libtorrent library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.qbittorrent.org/"
+license=('GPL')
+depends=('qt' 'libtorrent-rasterbar' 'xdg-utils')
+makedepends=('boost' 'geoip')
+optdepends=('python: needed for search'
+ 'geoip: improves peer country resolution')
+install='qbittorrent.install'
+source=("http://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-${pkgver}.tar.gz")
+md5sums=('0c2188e0065be57e50c06f5934d5f7a2')
+
+build() {
+ cd qbittorrent-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd qbittorrent-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} install
+}
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/qcad/PKGBUILD b/community/qcad/PKGBUILD
new file mode 100644
index 000000000..074cad7a5
--- /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' 'mips64el')
+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/qconf/PKGBUILD b/community/qconf/PKGBUILD
new file mode 100644
index 000000000..771a74430
--- /dev/null
+++ b/community/qconf/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 55030 2011-08-31 16:23:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: DsTr <kostindima@gmail.com>
+
+pkgname=qconf
+pkgver=1.4
+pkgrel=2
+pkgdesc="QConf allows you to have a nice configure script for your qmake-based project."
+arch=(i686 x86_64)
+url="http://delta.affinix.com/qconf/"
+license=('GPL')
+depends=('qt')
+makedepends=()
+source=(http://delta.affinix.com/download/qconf-$pkgver.tar.bz2)
+md5sums=(e0080044f88c31e032008d5a5682a112)
+
+build() {
+ cd $srcdir/qconf-$pkgver
+ ./configure --prefix=/usr
+ make
+ make INSTALL_ROOT="$pkgdir" install
+}
diff --git a/community/qdevelop/PKGBUILD b/community/qdevelop/PKGBUILD
new file mode 100644
index 000000000..a544dbdcf
--- /dev/null
+++ b/community/qdevelop/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 59469 2011-11-25 21:18:16Z andrea $
+# Maintainer:
+# Contributor: 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>
+
+pkgname=qdevelop
+pkgver=0.28
+pkgrel=1
+pkgdesc='A free and cross-platform IDE for Qt4'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://biord-software.org/${pkgname}"
+license=('GPL2')
+depends=('qt')
+optdepends=('ctags: for code completion and class browser'
+ 'gdb: for debugging functionalities')
+source=("http://biord-software.org/downloads/$pkgname-v$pkgver.tar.gz"
+ 'qt47.patch')
+md5sums=('24e64bd80dd7407a885acd639b59a740'
+ 'dc14b87a849b71ae3ac476e49c7d87e9')
+
+build() {
+ cd ${srcdir}/${pkgname}-v${pkgver}
+
+ patch -p1 -i "${srcdir}"/qt47.patch
+
+ lrelease QDevelop.pro
+ qmake
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-v${pkgver}
+
+ make INSTALL_ROOT="$pkgdir" install
+
+ # Desktop
+ install -Dm644 ${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/qt47.patch b/community/qdevelop/qt47.patch
new file mode 100644
index 000000000..a1607779b
--- /dev/null
+++ b/community/qdevelop/qt47.patch
@@ -0,0 +1,24 @@
+Description: Fix FTBFS with Qt 4.7.
+
+--- qdevelop-0.28.orig/src/build.h
++++ qdevelop-0.28/src/build.h
+@@ -56,7 +56,7 @@ private:
+ int m_warnings;
+ QString m_forceMode;
+ signals:
+- void message(QString, QString=0);
++ void message(QString, QString=QString());
+ protected slots:
+ void slotBuildMessages();
+ void slotStopBuild();
+--- qdevelop-0.28.orig/src/textEdit.h
++++ qdevelop-0.28/src/textEdit.h
+@@ -142,7 +142,7 @@ public:
+ void setMouseHidden( bool hidden );
+ public slots:
+ void gotoLine( int line, bool moveTop );
+- void slotFind(Ui::FindWidget uiFind, Ui::ReplaceWidget uiReplace, QString ttf=0, QTextDocument::FindFlags options=0, bool fromButton=false);
++ void slotFind(Ui::FindWidget uiFind, Ui::ReplaceWidget uiReplace, QString ttf=QString(), QTextDocument::FindFlags options=0, bool fromButton=false);
+ void slotIndent(bool indent=true);
+ void slotUnindent();
+ void comment(ActionComment action);
diff --git a/community/qgit/0001-Cause-qgit-to-use-git-config-everywhere.patch b/community/qgit/0001-Cause-qgit-to-use-git-config-everywhere.patch
new file mode 100644
index 000000000..a0c7e6c4d
--- /dev/null
+++ b/community/qgit/0001-Cause-qgit-to-use-git-config-everywhere.patch
@@ -0,0 +1,39 @@
+From 50b7344bc2cc941a43b3adfaebdc96dd1935e747 Mon Sep 17 00:00:00 2001
+From: Jonathan Ross Rogers <jrogers@socialserve.com>
+Date: Mon, 9 May 2011 18:16:29 -0400
+Subject: [PATCH] Cause qgit to use "git config" everywhere.
+
+Whenever starting up qgit, it pops up a dialog showing that git
+complained about the obsolete command "repo-config". This patch
+replaces remaining calls to "git repo-config" with "git config".
+
+Signed-off-by: Jonathan Ross Rogers <jrogers@socialserve.com>
+---
+ src/git.cpp | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/git.cpp b/src/git.cpp
+index 50e6dd3..8e9365c 100644
+--- a/src/git.cpp
++++ b/src/git.cpp
+@@ -427,7 +427,7 @@ void Git::setTextCodec(QTextCodec* tc) {
+ if (name == "Big5-HKSCS")
+ name = "Big5";
+
+- run("git repo-config i18n.commitencoding " + name);
++ run("git config i18n.commitencoding " + name);
+ }
+
+ QTextCodec* Git::getTextCodec(bool* isGitArchive) {
+@@ -437,7 +437,7 @@ QTextCodec* Git::getTextCodec(bool* isGitArchive) {
+ return NULL;
+
+ QString runOutput;
+- if (!run("git repo-config --get i18n.commitencoding", &runOutput))
++ if (!run("git config --get i18n.commitencoding", &runOutput))
+ return NULL;
+
+ if (runOutput.isEmpty()) // git docs says default is utf-8
+--
+1.7.5
+
diff --git a/community/qgit/PKGBUILD b/community/qgit/PKGBUILD
new file mode 100644
index 000000000..73af75518
--- /dev/null
+++ b/community/qgit/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 49264 2011-06-13 14:58:16Z schuay $
+# Maintainer: schuay <jakob.gruber@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+
+pkgname=qgit
+pkgver=2.3
+pkgrel=3
+pkgdesc="A GIT GUI viewer built on Qt/C++"
+url="http://digilander.libero.it/mcostalba/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('qt' 'git')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'qgit.desktop' 'qgit.png'
+ '0001-Cause-qgit-to-use-git-config-everywhere.patch')
+md5sums=('1f6cd60cc1b92973718b108d542e3270'
+ 'ecb8b35e17163a7ec6893ffa71445c40'
+ '85138f44d577b03dfc738d3f27e04992'
+ '8b8eda62d6f4d04ed57f87d4dbda9fa9')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ # patch taken from http://sourceforge.net/tracker/?func=detail&aid=3299672&group_id=139897&atid=744829
+ patch -Np1 < ${srcdir}/0001-Cause-qgit-to-use-git-config-everywhere.patch
+ qmake qgit.pro
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ install -Dm755 bin/qgit ${pkgdir}/usr/bin/qgit
+ install -Dm644 ${srcdir}/qgit.desktop ${pkgdir}/usr/share/applications/qgit.desktop
+ install -Dm644 ${srcdir}/qgit.png ${pkgdir}/usr/share/pixmaps/qgit.png
+}
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..6bf66405d
--- /dev/null
+++ b/community/qgo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 56296 2011-10-05 06:31:10Z andrea $
+# Maintainer:
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgname=qgo
+pkgver=1.5.4
+_realver=1.5.4-r3
+pkgrel=4
+pkgdesc="A Go client and full featured SGF editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://qgo.sourceforge.net/"
+license=('GPL')
+depends=('qt3' 'libsm')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-${_realver}.tar.gz"
+ 'gcc43.patch'
+ 'gcc45.patch')
+md5sums=('f8f9a6288b7854932bb2666a58631988'
+ '1e242ff9c3b46bcebfda0d7ae3aef2fa'
+ '58de47198a50dedb029acbe28bd3bb1b')
+
+build() {
+ . /etc/profile.d/qt3.sh
+
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i "${srcdir}"/gcc43.patch
+ patch -Np1 -i "${srcdir}"/gcc45.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/qgo/gcc43.patch b/community/qgo/gcc43.patch
new file mode 100644
index 000000000..1af8b8bd9
--- /dev/null
+++ b/community/qgo/gcc43.patch
@@ -0,0 +1,37 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 05_g++-4.3.dpatch by Pierre Habouzit <madcoder@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: g++-4.3 patch
+
+@DPATCH@
+--- qgo-1.5.4-r2~/src/matrix.cpp 2004-10-30 20:49:50.000000000 +0000
++++ qgo-1.5.4-r2/src/matrix.cpp 2008-03-16 23:04:18.306414183 +0000
+@@ -2,12 +2,14 @@
+ * matrix.cpp
+ */
+
++#include <cstdlib>
+ #include "matrix.h"
+-#include <stdlib.h>
+ #ifndef NO_DEBUG
+-#include <iostream.h>
++#include <iostream>
+ #endif
+
++using namespace std;
++
+ Matrix::Matrix(int s)
+ : size(s)
+ {
+--- qgo-1.5.4-r2~/src/tree.cpp 2005-05-12 20:58:23.000000000 +0000
++++ qgo-1.5.4-r2/src/tree.cpp 2008-03-16 23:04:50.660267034 +0000
+@@ -5,7 +5,7 @@
+ #include "tree.h"
+ #include "move.h"
+ #include "qgo.h"
+-#include <iostream.h>
++#include <iostream>
+ #include <qptrstack.h>
+
+ Tree::Tree(int board_size)
diff --git a/community/qgo/gcc45.patch b/community/qgo/gcc45.patch
new file mode 100644
index 000000000..6c71f92f6
--- /dev/null
+++ b/community/qgo/gcc45.patch
@@ -0,0 +1,205 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## Description: fix builiding with gcc4.5
+## Origin/Author: Ubuntu
+## Bug: http://bugs.launchpad.net/bugs/756004
+## 06_ftbfs_gcc45.dpatch by Andreas Moog <amoog@ubuntu.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: fix build with gcc 4.5
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' qgo-1.5.4-r3~/src/gamedialog.cpp qgo-1.5.4-r3/src/gamedialog.cpp
+--- qgo-1.5.4-r3~/src/gamedialog.cpp 2011-04-12 20:03:12.000000000 +0200
++++ qgo-1.5.4-r3/src/gamedialog.cpp 2011-04-12 20:03:15.640382627 +0200
+@@ -512,7 +512,7 @@
+ if (handicapSpin->value() != val.toInt())
+ {
+ handicapSpin->setValue(val.toInt());
+- handicapSpin->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ handicapSpin->setPaletteBackgroundColor(QColor("cyan"));
+ }
+ else
+ handicapSpin->unsetPalette();
+@@ -521,7 +521,7 @@
+ if (boardSizeSpin->value() != val.toInt())
+ {
+ boardSizeSpin->setValue(val.toInt());
+- boardSizeSpin->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ boardSizeSpin->setPaletteBackgroundColor(QColor("cyan"));
+ }
+ else
+ boardSizeSpin->unsetPalette();
+@@ -530,7 +530,7 @@
+ if (timeSpin->value() != val.toInt()/60)
+ {
+ timeSpin->setValue(val.toInt()/60);
+- timeSpin->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ timeSpin->setPaletteBackgroundColor(QColor("cyan"));
+ }
+ else
+ timeSpin->unsetPalette();
+@@ -539,7 +539,7 @@
+ if (byoTimeSpin->value() != val.toInt()/60)
+ {
+ byoTimeSpin->setValue(val.toInt()/60);
+- byoTimeSpin->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ byoTimeSpin->setPaletteBackgroundColor(QColor("cyan"));
+ }
+ else
+ byoTimeSpin->unsetPalette();
+@@ -550,25 +550,25 @@
+ val = element(line,0," ");
+ if ( !(play_nigiri_button->isChecked()) && (val == "N"))
+ {
+- play_nigiri_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
+- play_white_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
+- play_black_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ play_nigiri_button->setPaletteBackgroundColor(QColor("cyan"));
++ play_white_button->setPaletteBackgroundColor(QColor("cyan"));
++ play_black_button->setPaletteBackgroundColor(QColor("cyan"));
+ play_nigiri_button->setChecked(true);
+
+ }
+ else if ( (play_black_button->isChecked()) && (val == "B"))
+ {
+- play_nigiri_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
+- play_white_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
+- play_black_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ play_nigiri_button->setPaletteBackgroundColor(QColor("cyan"));
++ play_white_button->setPaletteBackgroundColor(QColor("cyan"));
++ play_black_button->setPaletteBackgroundColor(QColor("cyan"));
+ play_white_button->setChecked(true);
+
+ }
+ else if ( (play_white_button->isChecked()) && (val == "W"))
+ {
+- play_nigiri_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
+- play_white_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
+- play_black_button->setPaletteBackgroundColor(QColor::QColor("cyan"));
++ play_nigiri_button->setPaletteBackgroundColor(QColor("cyan"));
++ play_white_button->setPaletteBackgroundColor(QColor("cyan"));
++ play_black_button->setPaletteBackgroundColor(QColor("cyan"));
+ play_black_button->setChecked(true);
+
+ }
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' qgo-1.5.4-r3~/src/mainwin.cpp qgo-1.5.4-r3/src/mainwin.cpp
+--- qgo-1.5.4-r3~/src/mainwin.cpp 2011-04-12 20:03:12.000000000 +0200
++++ qgo-1.5.4-r3/src/mainwin.cpp 2011-04-12 20:03:15.640382627 +0200
+@@ -68,35 +68,35 @@
+ {
+
+
+- prefsIcon= QPixmap::QPixmap(qembed_findImage("package_settings"));//QPixmap(ICON_PREFS);
++ prefsIcon= QPixmap(qembed_findImage("package_settings"));//QPixmap(ICON_PREFS);
+ // infoIcon= QPixmap(ICON_GAMEINFO);
+- exitIcon = QPixmap::QPixmap(qembed_findImage("exit"));//QPixmap(ICON_EXIT);
+- fileNewboardIcon = QPixmap::QPixmap(qembed_findImage("newboard"));//QPixmap(ICON_FILENEWBOARD);
+- fileNewIcon = QPixmap::QPixmap(qembed_findImage("filenew"));//QPixmap(ICON_FILENEW);
+- fileOpenIcon = QPixmap::QPixmap(qembed_findImage("fileopen"));//QPixmap(ICON_FILEOPEN);
++ exitIcon = QPixmap(qembed_findImage("exit"));//QPixmap(ICON_EXIT);
++ fileNewboardIcon = QPixmap(qembed_findImage("newboard"));//QPixmap(ICON_FILENEWBOARD);
++ fileNewIcon = QPixmap(qembed_findImage("filenew"));//QPixmap(ICON_FILENEW);
++ fileOpenIcon = QPixmap(qembed_findImage("fileopen"));//QPixmap(ICON_FILEOPEN);
+ // fileSaveIcon = QPixmap(ICON_FILESAVE);
+ // fileSaveAsIcon = QPixmap(ICON_FILESAVEAS);
+ // transformIcon = QPixmap(ICON_TRANSFORM);
+ // charIcon = QPixmap(ICON_CHARSET);
+- manualIcon = QPixmap::QPixmap(qembed_findImage("help"));//QPixmap(ICON_MANUAL);
++ manualIcon = QPixmap(qembed_findImage("help"));//QPixmap(ICON_MANUAL);
+ // autoplayIcon = QPixmap(ICON_AUTOPLAY);
+- connectedIcon = QPixmap::QPixmap(qembed_findImage("connected"));//QPixmap(ICON_CONNECTED);
+- disconnectedIcon = QPixmap::QPixmap(qembed_findImage("connect_no"));//QPixmap(ICON_DISCONNECTED);
+- OpenIcon = QPixmap::QPixmap(qembed_findImage("open"));//QPixmap(ICON_OPEN);
+- LookingIcon = QPixmap::QPixmap(qembed_findImage("looking"));//QPixmap(ICON_LOOKING);
+- QuietIcon= QPixmap::QPixmap(qembed_findImage("quiet"));//QPixmap(ICON_QUIET);
+- NotOpenIcon = QPixmap::QPixmap(qembed_findImage("not_open"));//QPixmap(ICON_NOT_OPEN);
+- NotLookingIcon = QPixmap::QPixmap(qembed_findImage("not_looking"));//QPixmap(ICON_NOT_LOOKING);
+- NotQuietIcon= QPixmap::QPixmap(qembed_findImage("not_quiet"));//QPixmap(ICON_NOT_QUIET);
+- RefreshPlayersIcon = QPixmap::QPixmap(qembed_findImage("refresh_players"));//QPixmap(ICON_REFRESH_PLAYERS);
+- RefreshGamesIcon = QPixmap::QPixmap(qembed_findImage("refresh_games"));//QPixmap(ICON_REFRESH_GAMES);
+- ComputerPlayIcon = QPixmap::QPixmap(qembed_findImage("computerplay"));//QPixmap(ICON_COMPUTER_PLAY);
+- qgoIcon = QPixmap::QPixmap(qembed_findImage("Bowl"));//QPixmap(ICON_COMPUTER_PLAY);
+- NotSeekingIcon = QPixmap::QPixmap(qembed_findImage("not_seeking"));
+- seekingIcon[0] = QPixmap::QPixmap(qembed_findImage("seeking1"));
+- seekingIcon[1] = QPixmap::QPixmap(qembed_findImage("seeking2"));
+- seekingIcon[2] = QPixmap::QPixmap(qembed_findImage("seeking3"));
+- seekingIcon[3] = QPixmap::QPixmap(qembed_findImage("seeking4"));
++ connectedIcon = QPixmap(qembed_findImage("connected"));//QPixmap(ICON_CONNECTED);
++ disconnectedIcon = QPixmap(qembed_findImage("connect_no"));//QPixmap(ICON_DISCONNECTED);
++ OpenIcon = QPixmap(qembed_findImage("open"));//QPixmap(ICON_OPEN);
++ LookingIcon = QPixmap(qembed_findImage("looking"));//QPixmap(ICON_LOOKING);
++ QuietIcon= QPixmap(qembed_findImage("quiet"));//QPixmap(ICON_QUIET);
++ NotOpenIcon = QPixmap(qembed_findImage("not_open"));//QPixmap(ICON_NOT_OPEN);
++ NotLookingIcon = QPixmap(qembed_findImage("not_looking"));//QPixmap(ICON_NOT_LOOKING);
++ NotQuietIcon= QPixmap(qembed_findImage("not_quiet"));//QPixmap(ICON_NOT_QUIET);
++ RefreshPlayersIcon = QPixmap(qembed_findImage("refresh_players"));//QPixmap(ICON_REFRESH_PLAYERS);
++ RefreshGamesIcon = QPixmap(qembed_findImage("refresh_games"));//QPixmap(ICON_REFRESH_GAMES);
++ ComputerPlayIcon = QPixmap(qembed_findImage("computerplay"));//QPixmap(ICON_COMPUTER_PLAY);
++ qgoIcon = QPixmap(qembed_findImage("Bowl"));//QPixmap(ICON_COMPUTER_PLAY);
++ NotSeekingIcon = QPixmap(qembed_findImage("not_seeking"));
++ seekingIcon[0] = QPixmap(qembed_findImage("seeking1"));
++ seekingIcon[1] = QPixmap(qembed_findImage("seeking2"));
++ seekingIcon[2] = QPixmap(qembed_findImage("seeking3"));
++ seekingIcon[3] = QPixmap(qembed_findImage("seeking4"));
+
+ // init
+
+@@ -576,7 +576,7 @@
+ if (e->timerId() == seekButtonTimer)
+ {
+ imagecounter = (imagecounter+1) % 4;
+- toolSeek->setIconSet(QIconSet::QIconSet(seekingIcon[imagecounter]));
++ toolSeek->setIconSet(QIconSet(seekingIcon[imagecounter]));
+ return;
+ }
+
+@@ -2950,17 +2950,17 @@
+ //tb->setProperty( "geometry", QRect(0, 0, 20, 20));
+
+ //added the icons
+- refreshPlayers->setIconSet(QIconSet::QIconSet(RefreshPlayersIcon));
+- refreshGames->setIconSet(QIconSet::QIconSet(RefreshGamesIcon));
+- fileNew->setIconSet(QIconSet::QIconSet(fileNewIcon));
+- fileNewBoard->setIconSet(QIconSet::QIconSet(fileNewboardIcon));
+- fileOpen->setIconSet(QIconSet::QIconSet(fileOpenIcon));
+- fileQuit->setIconSet(QIconSet::QIconSet(exitIcon));
+- computerPlay->setIconSet(QIconSet::QIconSet(ComputerPlayIcon));
+- Connect->setIconSet(QIconSet::QIconSet(connectedIcon));
+- Disconnect->setIconSet(QIconSet::QIconSet(disconnectedIcon));
+- helpManual->setIconSet(QIconSet::QIconSet(manualIcon));
+- setPreferences->setIconSet(QIconSet::QIconSet(prefsIcon));
++ refreshPlayers->setIconSet(QIconSet(RefreshPlayersIcon));
++ refreshGames->setIconSet(QIconSet(RefreshGamesIcon));
++ fileNew->setIconSet(QIconSet(fileNewIcon));
++ fileNewBoard->setIconSet(QIconSet(fileNewboardIcon));
++ fileOpen->setIconSet(QIconSet(fileOpenIcon));
++ fileQuit->setIconSet(QIconSet(exitIcon));
++ computerPlay->setIconSet(QIconSet(ComputerPlayIcon));
++ Connect->setIconSet(QIconSet(connectedIcon));
++ Disconnect->setIconSet(QIconSet(disconnectedIcon));
++ helpManual->setIconSet(QIconSet(manualIcon));
++ setPreferences->setIconSet(QIconSet(prefsIcon));
+ setIcon(qgoIcon);
+
+ UserToolbar->show();
+@@ -3218,7 +3218,7 @@
+ toolSeek->setOn(false);
+ toolSeek->setPopup(seekMenu);
+ toolSeek->setPopupDelay(1);
+- toolSeek->setIconSet(QIconSet::QIconSet(NotSeekingIcon));
++ toolSeek->setIconSet(QIconSet(NotSeekingIcon));
+ killTimer(seekButtonTimer);
+ seekButtonTimer = 0;
+ }
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' qgo-1.5.4-r3~/src/qgtp.cpp qgo-1.5.4-r3/src/qgtp.cpp
+--- qgo-1.5.4-r3~/src/qgtp.cpp 2011-04-12 20:03:12.000000000 +0200
++++ qgo-1.5.4-r3/src/qgtp.cpp 2011-04-12 20:03:22.360029899 +0200
+@@ -277,7 +277,7 @@
+ _cpt++;
+
+ qDebug(QString("flush -> %1").arg(s));
+- programProcess->writeToStdin(QString::QString(s));
++ programProcess->writeToStdin(QString(s));
+
+
+ }
diff --git a/community/qingy/PKGBUILD b/community/qingy/PKGBUILD
new file mode 100644
index 000000000..18fc8acdc
--- /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' 'mips64el')
+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..d20f1568f
--- /dev/null
+++ b/community/qlandkartegt/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 60267 2011-12-08 19:52:00Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Matthias Maennich <arch@maennich.net>
+# Contributor: <boenki@gmx.de>
+
+pkgname=qlandkartegt
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="Use your GPS with Linux"
+arch=('i686' 'x86_64' 'mips64el')
+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=('77a387856e2d41f9ea69f750cbac9bb49fa249d65bdef5e319bfa6f7c9f84121'
+ 'e8d33948831f8a66edd752c71c653085d6c4d9f1969e70dd8c40b9c7ca37fba0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ 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
+
+ install -D -m644 ${srcdir}/$pkgname-mimetypes.xml \
+ ${pkgdir}/usr/share/mime/packages/$pkgname-mimetypes.xml
+}
diff --git a/community/qlandkartegt/fix-glu-header.patch b/community/qlandkartegt/fix-glu-header.patch
new file mode 100644
index 000000000..214ad395d
--- /dev/null
+++ b/community/qlandkartegt/fix-glu-header.patch
@@ -0,0 +1,12 @@
+--- QLandkarteGT/trunk/src/CMap3D.cpp 2011/08/23 16:34:50 2943
++++ QLandkarteGT/trunk/src/CMap3D.cpp 2011/09/03 07:58:02 2961
+@@ -31,8 +31,8 @@
+ #include "CWptDB.h"
+ #include "WptIcons.h"
+
+-#include <GL/glu.h>
+ #include <QtGui>
++#include <QtOpenGL>
+ #include <math.h>
+
+ #ifndef GL_CLAMP_TO_EDGE
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..59d0e9a59
--- /dev/null
+++ b/community/qlandkartegt/qlandkartegt.changelog
@@ -0,0 +1,30 @@
+2011-12-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.3.1-1
+
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.4-1
+
+2011-09-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.3-1
+
+2011-07-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.2-1
+
+2011-07-07 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.1-1
+
+2011-06-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.0-1
+
+2011-05-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.1.2-1
+
+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..e55805570
--- /dev/null
+++ b/community/qlandkartegt/qlandkartegt.install
@@ -0,0 +1,7 @@
+post_install() {
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/qmc2/PKGBUILD b/community/qmc2/PKGBUILD
new file mode 100644
index 000000000..b45a08dd0
--- /dev/null
+++ b/community/qmc2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58650 2011-11-17 09:14:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+
+pkgname=qmc2
+pkgver=0.34
+pkgrel=1
+pkgdesc="Qt 4 based UNIX MAME frontend supporting SDLMAME"
+url="http://qmc2.arcadehits.net"
+license=("GPL")
+arch=('i686' 'x86_64' 'mips64el')
+depends=('qt' 'phonon' 'sdl' 'libxmu')
+makedepends=('rsync' 'mesa')
+source=("http://downloads.sourceforge.net/project/qmc2/qmc2/$pkgver/qmc2-$pkgver.tar.bz2")
+md5sums=('3439fb62c95ff702e3c4194c05353169')
+
+build() {
+ cd "$srcdir/$pkgname"
+ export CTIME=0
+ make PREFIX=/usr DATADIR=/usr/share SYSCONFDIR=/etc QTDIR=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ make PREFIX=/usr DATADIR=/usr/share SYSCONFDIR=/etc QTDIR=/usr DESTDIR=$pkgdir install
+ install -d $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..e594e316c
--- /dev/null
+++ b/community/qmmp/PKGBUILD
@@ -0,0 +1,38 @@
+#$Id: PKGBUILD 58421 2011-11-12 17:18:45Z ibiru $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=qmmp
+pkgver=0.5.2
+pkgrel=3
+pkgdesc="Qt4 based audio-player"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://qmmp.ylsoftware.com/"
+license=('GPL')
+depends=('alsa-lib' 'curl' 'hicolor-icon-theme' 'libmad' 'libvorbis' 'libogg' 'qt' 'taglib' 'xdg-utils')
+makedepends=('cmake' 'flac' 'jack' 'libmpcdec' 'pulseaudio' 'ffmpeg' 'libcdio' 'libcddb' 'libmms' 'libsamplerate' 'libmodplug' 'libsndfile' 'wavpack')
+optdepends=('flac: native FLAC support'
+ 'jack: JACK sound output'
+ 'libmpcdec: Musepack support'
+ 'pulseaudio: PulseAudio output'
+ 'libcdio: Compact Disc input and control support'
+ 'libcddb: CDDB server support'
+ 'libmms: MMS stream protocol support'
+ '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=('6391dec020d2a381d7f4b7890fae6c49eadf88b3c9aef571fe3c5e96140822ec')
+
+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..379f85cbe
--- /dev/null
+++ b/community/qmmp/qmmp.changelog
@@ -0,0 +1,51 @@
+2011-11-12 Andrea Scarpino <andrea@archlinux.org>
+ * qmmp 0.5.2-3
+ * rebuild with qt 4.7
+
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.2-1
+
+2011-07-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.1-1
+
+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..4c0972beb
--- /dev/null
+++ b/community/qmmp/qmmp.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-desktop-database -q
+}
+
+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..b98775d66
--- /dev/null
+++ b/community/qmpdclient/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58444 2011-11-12 18:54:25Z andrea $
+# 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.2
+pkgrel=2
+pkgdesc="A Qt4 client for MPD"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://bitcheese.net/wiki/QMPDClient"
+license=('GPL')
+depends=('qt')
+makedepends=('cmake')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://dump.bitcheese.net/files/$pkgname-$pkgver.tar.bz2)
+sha256sums=('ed65705eaae8fb10fdce34ce20e010757a87423c2874479e1466e4368a866289')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -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..788ad2d68
--- /dev/null
+++ b/community/qmpdclient/qmpdclient.changelog
@@ -0,0 +1,12 @@
+2011-11-12 Andrea Scarpino <andrea@archlinux.org>
+ * qmpdclient 1.2.2-2
+ * Qt 4.8 downgrade
+
+2011-10-22 Andrea Scarpino <andrea@archlinux.org>
+ * qmpdclient 1.2.2-1
+
+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..7721aecb9
--- /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' 'mips64el')
+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..d1ec3d9b7
--- /dev/null
+++ b/community/qps/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 60157 2011-12-06 09:22:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: David Rosenstrauch <darose@darose.net>
+
+pkgname=qps
+pkgver=1.10.16
+_dlpkgver=5963
+pkgrel=1
+pkgdesc="a visual process manager, an X11 version of 'top' or 'ps'."
+url="http://qps.kldp.net/projects/qps"
+depends=('qt')
+arch=('i686' 'x86_64' 'mips64el')
+license="GPL"
+source=(http://kldp.net/frs/download.php/${_dlpkgver}/qps-$pkgver.tar.bz2)
+md5sums=('dc3396749ad9254fd60ca84b5c0b16b9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ qmake
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ 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/qps/version-patch.diff b/community/qps/version-patch.diff
new file mode 100644
index 000000000..bfddd2a0a
--- /dev/null
+++ b/community/qps/version-patch.diff
@@ -0,0 +1,14 @@
+--- proc_linux.cpp 2011-07-17 08:03:52.000000000 -0400
++++ proc_linux.cpp.new 2011-08-09 11:09:47.278589772 -0400
+@@ -1962,7 +1962,10 @@
+ int result;
+
+ result = sscanf(p, "%d.%d.%d", &major, &minor, &patch);
+- if(result < 3) {
++ if(result == 2) {
++ patch = 0;
++ }
++ else if(result < 3) {
+ fprintf(stderr, "Qps: can't determine version, read %s \n", p);
+ fprintf(stderr, "please report this bug.\n");
+ exit(1);
diff --git a/community/qpxtool/PKGBUILD b/community/qpxtool/PKGBUILD
new file mode 100644
index 000000000..03bacd40e
--- /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' 'mips64el')
+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/qscintilla-qt3/PKGBUILD b/community/qscintilla-qt3/PKGBUILD
new file mode 100644
index 000000000..8de84ddb2
--- /dev/null
+++ b/community/qscintilla-qt3/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 55531 2011-09-14 07:43:04Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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=4
+pkgdesc="A port to Qt3 of Neil Hodgson's Scintilla C++ editor class"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ 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/qt
+ # 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 "${pkgdir}"/opt/qt/translations/$i
+ #done
+}
diff --git a/community/qstardict/PKGBUILD b/community/qstardict/PKGBUILD
new file mode 100755
index 000000000..ad3c84abb
--- /dev/null
+++ b/community/qstardict/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 60201 2011-12-07 14:41:34Z arodseth $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+
+pkgname=qstardict
+pkgver=1.0
+pkgrel=1
+pkgdesc="Qt4 clone of StarDict with full support of StarDict dictionaries"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+changelog=$pkgname.changelog
+source=(http://qstardict.ylsoftware.com/files/$pkgname-$pkgver.tar.bz2)
+sha256sums=('9cb20f8829be0983176bc52728d3701b0862522741cac1a9967222c86aaaa9fb')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ qmake ENABLED_PLUGINS="stardict web swac"
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/community/qstardict/qstardict.changelog b/community/qstardict/qstardict.changelog
new file mode 100644
index 000000000..aa794fc98
--- /dev/null
+++ b/community/qstardict/qstardict.changelog
@@ -0,0 +1,11 @@
+2011-08-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qstardict 1.0-1
+
+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/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..9516cd232
--- /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' 'mips64el')
+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..2ccb70408
--- /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' 'mips64el')
+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..2c5c22cce
--- /dev/null
+++ b/community/qtcreator/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 60602 2011-12-14 21:38:30Z svenstaro $
+# Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Dan Vratil <progdan@progdansoft.com>
+# Contributor: thotypous <matiasΘarchlinux-br·org>
+# Contributor: delor <bartekpiech gmail com>
+
+pkgname="qtcreator"
+pkgver=2.4.0
+_pkgver=2.4.0
+pkgrel=1
+pkgdesc='Lightweight, cross-platform integrated development environment'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://qt.nokia.com/products/developer-tools'
+license=('LGPL')
+depends=('qt>=4.7.4')
+makedepends=('qt-private-headers>=4.7.4' 'git')
+options=('docs')
+install=qtcreator.install
+source=("http://get.qt.nokia.com/qtcreator/qt-creator-${_pkgver}-src.tar.gz"
+ 'qtcreator.desktop')
+md5sums=('80c1a2be4c685ce147c42424ad977e1a'
+ 'f1f4680b9838ff0b8f4cf11eb850d662')
+
+build() {
+ cd ${srcdir}
+ [[ -d build ]] && rm -r build
+ mkdir build && cd build
+
+ qmake ${srcdir}/qt-creator-${_pkgver}-src/qtcreator.pro
+ make
+}
+
+package() {
+ optdepends=('qt-doc: for the integrated Qt documentation'
+ 'gdb: for the debugger'
+ 'cmake: for cmake project suppport'
+ 'openssh-askpass: for ssh support'
+ 'git: for git support'
+ 'mercurial: for mercurial support'
+ 'bzr: for bazaar 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
+}
diff --git a/community/qtcreator/qtcreator.desktop b/community/qtcreator/qtcreator.desktop
new file mode 100644
index 000000000..0fd562bd9
--- /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/icons/hicolor/128x128/apps/qtcreator.png
+Terminal=false
+Type=Application
+Categories=Qt;Development
diff --git a/community/qtcreator/qtcreator.install b/community/qtcreator/qtcreator.install
new file mode 100644
index 000000000..4d4a283db
--- /dev/null
+++ b/community/qtcreator/qtcreator.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/qtemu/PKGBUILD b/community/qtemu/PKGBUILD
new file mode 100644
index 000000000..2fe9aeaf4
--- /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' 'mips64el')
+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..647a79693
--- /dev/null
+++ b/community/qtfm/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 60270 2011-12-08 20:02:24Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Wittfella <wittfella@wittfella.com>
+
+pkgname=qtfm
+pkgver=5.2
+pkgrel=1
+pkgdesc="A lightweight file manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.qtfm.org/"
+license=('GPL')
+depends=('qt')
+install=$pkgname.install
+source=(http://www.qtfm.org/$pkgname-$pkgver.tar.gz)
+sha256sums=('289b93956958729ccf02657acf7745d4ba621bfb18e8180988196a0a1310e99b')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ qmake
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/community/qtfm/qtfm.install b/community/qtfm/qtfm.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/community/qtfm/qtfm.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/qtmpc/PKGBUILD b/community/qtmpc/PKGBUILD
new file mode 100644
index 000000000..cd6d10d9a
--- /dev/null
+++ b/community/qtmpc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 47054 2011-05-14 19:45:44Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Shaika-Dzari <shaikadzari at gmail dot com>
+
+pkgname=qtmpc
+pkgver=0.6.1
+pkgrel=2
+pkgdesc="Qt4-based front-end for MPD"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://qtmpc.lowblog.nl/"
+license=('GPL')
+depends=('hicolor-icon-theme' 'kdebase-runtime' 'qt')
+makedepends=('automoc4' 'cmake')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://files.lowblog.nl/$pkgname/QtMPC-$pkgver.tar.bz2)
+sha256sums=('82287a26788b36d49db26518b66203f332cf686eefb81ee2d9be095e61123a62')
+
+build() {
+ cd ${srcdir}/QtMPC
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/QtMPC
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/qtmpc/qtmpc.changelog b/community/qtmpc/qtmpc.changelog
new file mode 100644
index 000000000..f4271103c
--- /dev/null
+++ b/community/qtmpc/qtmpc.changelog
@@ -0,0 +1,3 @@
+2011-05-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qtmpc 0.6.1-2
+ * moved to [community] with 109 votes
diff --git a/community/qtmpc/qtmpc.install b/community/qtmpc/qtmpc.install
new file mode 100644
index 000000000..1c0de2e4f
--- /dev/null
+++ b/community/qtmpc/qtmpc.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/qtoctave/PKGBUILD b/community/qtoctave/PKGBUILD
new file mode 100755
index 000000000..be22dbe7f
--- /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' 'mips64el')
+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..d73696ef5
--- /dev/null
+++ b/community/qtractor/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 56375 2011-10-06 21:35:18Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Philipp Überbacher <hollunder at gmx dot at>
+
+pkgname=qtractor
+pkgver=0.5.1
+pkgrel=1
+pkgdesc="Audio/MIDI multitrack sequencer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://qtractor.sourceforge.net/"
+license=('GPL')
+depends=('qt' 'jack' 'slv2>=0.6.6-6' 'libmad' 'liblo'
+ 'libsamplerate' 'rubberband')
+ # slv2 versioned for https://bugs.archlinux.org/task/25060
+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=('c54adf974fd363a9f2151a802f170e6d')
+
+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..c0c8a8e0c
--- /dev/null
+++ b/community/qtractor/qtractor.changelog
@@ -0,0 +1,14 @@
+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
+ only important changes will be logged
diff --git a/community/quagga/PKGBUILD b/community/quagga/PKGBUILD
new file mode 100644
index 000000000..2b9f4ec71
--- /dev/null
+++ b/community/quagga/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgname=quagga
+pkgver=0.99.20
+pkgrel=1
+pkgdesc='BGP/OSPF/ISIS/RIP/RIPNG routing daemon suite'
+arch=('i686' 'x86_64')
+url='http://www.quagga.net'
+license=('GPL2')
+depends=('libcap' 'libnl' 'net-snmp' 'readline' 'ncurses')
+options=('!libtool' '!buildflags')
+backup=()
+install=quagga.install
+source=("http://www.quagga.net/download/$pkgname-$pkgver.tar.gz"
+ 'quagga.rc'
+ 'quagga.conf')
+md5sums=('64cc29394eb8a4e24649d19dac868f64'
+ '6ebd2be39c45361eabe3e278bb21efa0'
+ '0c4f2dd13c7dac1b73de923d1d5e4e17')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc/quagga --localstatedir=/run/quagga \
+ --enable-exampledir=/usr/share/doc/quagga/examples \
+ --enable-vtysh \
+ --enable-isisd \
+ --enable-isis-topology \
+ --enable-netlink \
+ --enable-snmp \
+ --enable-tcp-zebra \
+ --enable-irdp \
+ --enable-pcreposix \
+ --enable-multipath=64 \
+ --enable-user=nobody \
+ --enable-group=nobody \
+ --enable-configfile-mask=0640 \
+ --enable-logfile-mask=0640
+ make
+}
+
+package() {
+ # initscripts files
+ for d in zebra ripd ripngd bgpd ospfd ospf6d isisd; do
+ install -D -m 755 $pkgname.rc "$pkgdir/etc/rc.d/$d"
+ install -D -m 644 $pkgname.conf "$pkgdir/etc/conf.d/$d"
+ backup+=("etc/conf.d/$d")
+ done
+
+ # create /run/quagga directory at startup
+ install -D -m 644 /dev/null "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
+ echo "d /run/$pkgname 0750 $pkgname $pkgname" > "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
+
+ # soft
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/quagga/quagga.conf b/community/quagga/quagga.conf
new file mode 100644
index 000000000..26f24daa8
--- /dev/null
+++ b/community/quagga/quagga.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+DAEMON_OPTS="-d -u quagga -g quagga -A 127.0.0.1"
diff --git a/community/quagga/quagga.install b/community/quagga/quagga.install
new file mode 100644
index 000000000..058f4f1d7
--- /dev/null
+++ b/community/quagga/quagga.install
@@ -0,0 +1,22 @@
+post_install() {
+ groupadd -r quagga
+ useradd -MNr -s /bin/false -d /run/quagga -g quagga quagga && passwd -l quagga &>/dev/null
+ install -d -m 750 -o quagga -g quagga /{run,etc,var/log}/quagga
+ :
+}
+
+pre_remove() {
+ for d in zebra ripd ripngd bgpd ospfd ospf6d isisd; do
+ /etc/rc.d/$d stop &>/dev/null
+ done
+ :
+}
+
+post_remove() {
+ userdel quagga &>/dev/null
+ groupdel quagga &>/dev/null
+ rmdir /{etc,var/log}/quagga
+ :
+}
+
+# vim: ft=sh ts=2 sw=2 et:
diff --git a/community/quagga/quagga.rc b/community/quagga/quagga.rc
new file mode 100644
index 000000000..f938c6f8a
--- /dev/null
+++ b/community/quagga/quagga.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+NAME=${0##*/}
+DAEMON=/usr/sbin/$NAME
+PID=$(pidof -o %PPID $DAEMON)
+
+case "$1" in
+ start)
+ stat_busy "Starting Quagga $NAME daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping $NAME daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh noet:
diff --git a/community/quassel/PKGBUILD b/community/quassel/PKGBUILD
new file mode 100644
index 000000000..9c87260ae
--- /dev/null
+++ b/community/quassel/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 57415 2011-10-27 10:22:06Z lcarlier $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=quassel
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="QT4 irc client with a separated core"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+source=(http://quassel-irc.org/pub/$pkgname-$pkgver.tar.bz2
+ rc.$pkgname
+ $pkgname.conf)
+sha256sums=('9e78dbc28bfeda2ed66fa3082392951cbd002f851ef1a7f1228988bb18c7c98d'
+ '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..6f544051f
--- /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' 'mips64el')
+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..ec287ab3b
--- /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' 'mips64el')
+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/quilt/PKGBUILD b/community/quilt/PKGBUILD
new file mode 100644
index 000000000..a09e3fc73
--- /dev/null
+++ b/community/quilt/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Peter Richard Lewis <plewis@aur.archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
+
+pkgname=quilt
+pkgver=0.48
+pkgrel=2
+pkgdesc="Manage a series of patches by keeping track of the changes each patch makes."
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/quilt"
+license=('GPL')
+depends=('perl' 'diffstat' 'gawk' 'patch' 'diffutils' 'gettext')
+source=(http://savannah.nongnu.org/download/quilt/${pkgname}-${pkgver}.tar.gz)
+md5sums=('f77adda60039ffa753f3c584a286f12b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+}
diff --git a/community/quvi/PKGBUILD b/community/quvi/PKGBUILD
new file mode 100644
index 000000000..5f2bedaa8
--- /dev/null
+++ b/community/quvi/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59896 2011-12-02 07:00:15Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: joyfulgirl@archlinux.us
+
+pkgname=quvi
+pkgver=0.4.1
+pkgrel=1
+pkgdesc='Command-line tool for parsing video download links.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://quvi.sourceforge.net/'
+license=('LGPL')
+depends=('libquvi')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig})
+md5sums=('0975e3d8cdf570d2143c49c249e698c5'
+ '53e2e206c17cb6a38c8c6b7b427b8b4a')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/r8168-lts/PKGBUILD b/community/r8168-lts/PKGBUILD
new file mode 100644
index 000000000..254303c85
--- /dev/null
+++ b/community/r8168-lts/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+
+pkgname=r8168-lts
+_pkgname=r8168
+pkgver=8.027.00
+pkgrel=2
+pkgdesc="A kernel module for Realtek 8168 network cards for kernel26-lts"
+url="http://www.realtek.com.tw"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('glibc' "kernel26-lts>=2.6.32" "kernel26-lts<2.6.33")
+makedepends=("kernel26-lts-headers>=2.6.32" "kernel26-lts-headers<2.6.33")
+source=(http://r8168.googlecode.com/files/$_pkgname-$pkgver.tar.bz2)
+install=$pkgname.install
+
+_extramodules=extramodules-2.6.32-lts
+_kernver="$(cat /lib/modules/$_extramodules/version || true)"
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make -C /lib/modules/$_kernver/build SUBDIRS="$srcdir/$_pkgname-$pkgver/src" EXTRA_CFLAGS="-DCONFIG_R8168_NAPI -DCONFIG_R8168_VLAN" modules
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver/src"
+ install -D -m644 $_pkgname.ko "$pkgdir/lib/modules/$_extramodules/$_pkgname.ko"
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
+
+md5sums=('98155ce1ad5c248eeb7a93c9954d8344')
+sha256sums=('5bc3b44bd69a05e45ab13be727256a95adf18a658f726141283046b397dc22e2')
diff --git a/community/r8168-lts/r8168-lts.install b/community/r8168-lts/r8168-lts.install
new file mode 100644
index 000000000..fd4f92f63
--- /dev/null
+++ b/community/r8168-lts/r8168-lts.install
@@ -0,0 +1,17 @@
+rebuild_module_dependencies() {
+ EXTRAMODULES='extramodules-2.6.32-lts'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_install() {
+ rebuild_module_dependencies
+ echo '>>> The module r8168 conflicts with r8169. You can blacklist it with:'
+ echo '>>> `echo "blacklist r8169" > /etc/modprobe.d/r8169_blacklist.conf`'
+}
+post_upgrade() {
+ rebuild_module_dependencies
+}
+
+post_remove() {
+ rebuild_module_dependencies
+}
diff --git a/community/radeontool/PKGBUILD b/community/radeontool/PKGBUILD
new file mode 100644
index 000000000..7d6eedb67
--- /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' 'mips64el')
+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..29a200129
--- /dev/null
+++ b/community/radvd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 56578 2011-10-09 01:59:34Z tdziedzic $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
+
+pkgname=radvd
+pkgver=1.8.2
+pkgrel=1
+pkgdesc='IPv6 Router Advertisement / Router Solicitation daemon'
+url='http://www.litech.org/radvd/'
+license=('custom')
+depends=('glibc')
+arch=('i686' 'x86_64' 'mips64el')
+install=radvd.install
+source=("http://www.litech.org/radvd/dist/$pkgname-$pkgver.tar.gz" 'radvd.rc.d')
+md5sums=('ac8a862d2b232d25ea2622274a2da8a4'
+ '65a585f5850a1ac2a0c2c2a7096ec92a')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ 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..b348c5c23
--- /dev/null
+++ b/community/rapidsvn/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 59187 2011-11-21 14:15:46Z 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."
+url='http://rapidsvn.tigris.org/'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+options=('!libtool')
+depends=('subversion' 'wxgtk')
+makedepends=('python2')
+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..ff583458c
--- /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 'mips64el')
+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..275a110ee
--- /dev/null
+++ b/community/raw-thumbnailer/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 58310 2011-11-10 20:50:33Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: boromil@gmail.com
+
+pkgname=raw-thumbnailer
+pkgver=0.2.1
+pkgrel=1
+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' 'mips64el')
+depends=('libopenraw')
+source=(http://raw-thumbnailer.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+sha1sums=('f34012062c0b1eaa10525722c36bd027b11ade2e')
+
+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..55792e67b
--- /dev/null
+++ b/community/rawstudio/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 56347 2011-10-05 19:08:35Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: cdhotfire <cdhotfire@gmail.com>
+
+pkgname=rawstudio
+pkgver=2.0
+pkgrel=3
+pkgdesc="An open source raw-image converter written in GTK+"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://rawstudio.org/"
+depends=('exiv2' 'libgphoto2' 'flickcurl' 'libjpeg' 'fftw' 'gconf' 'lensfun'
+ 'raptor1' 'lcms' 'gtk2')
+install=${pkgname}.install
+options=('!libtool')
+source=(http://rawstudio.org/files/release/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b2f86b8ca6b83ad954e3104c4cb89e9b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install
+ mkdir $pkgdir/usr/lib/rawstudio
+ mv $pkgdir/usr/share/rawstudio/plugins $pkgdir/usr/lib/rawstudio
+ ln -s ../../lib/rawstudio/plugins $pkgdir/usr/share/rawstudio/plugins
+}
diff --git a/community/rawstudio/rawstudio.install b/community/rawstudio/rawstudio.install
new file mode 100644
index 000000000..261adb7b4
--- /dev/null
+++ b/community/rawstudio/rawstudio.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q || true
+}
+
+post_upgrade() {
+ update-desktop-database -q || true
+}
+
+post_remove() {
+ update-desktop-database -q || true
+}
diff --git a/community/rawtherapee/PKGBUILD b/community/rawtherapee/PKGBUILD
new file mode 100644
index 000000000..d2e0e3e0b
--- /dev/null
+++ b/community/rawtherapee/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 56081 2011-09-30 14:47:59Z 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=4.0.3
+pkgrel=1
+pkgdesc="RAW photo editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.rawtherapee.com/"
+license=('GPL')
+depends=('bzip2' 'gtkmm' 'libiptcdata' 'lcms2' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('mercurial' 'cmake')
+install=rawtherapee.install
+source=()
+md5sums=()
+
+_root="https://rawtherapee.googlecode.com/hg/"
+_repo="rawtherapee"
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to Mercurial server...."
+
+ if [ -d $_repo ] ; then
+ cd $_repo
+ hg pull
+ hg up "$pkgver"
+ msg "The local files are updated."
+ else
+ hg clone -u "$pkgver" $_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 \
+ -DCMAKE_BUILD_TYPE=Release \
+ ../$_repo
+ make
+}
+
+package() {
+ cd "$srcdir/$_repo-build"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/rawtherapee/rawtherapee.install b/community/rawtherapee/rawtherapee.install
new file mode 100644
index 000000000..385eec8f4
--- /dev/null
+++ b/community/rawtherapee/rawtherapee.install
@@ -0,0 +1,22 @@
+post_install() {
+ echo "update desktop mime database..."
+ update-desktop-database -q
+ update-mime-database usr/share/mime 1>&2 > /dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+
+ if [ ${2%%_*} == "3.0a1" ]; 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
+}
+
+post_remove() {
+ post_install $1
+}
+
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/rdiff-backup/PKGBUILD b/community/rdiff-backup/PKGBUILD
new file mode 100644
index 000000000..e4f34995e
--- /dev/null
+++ b/community/rdiff-backup/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 57837 2011-11-03 10:27:32Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+# Contributor: Erwin Van de Velde <erwin.vandevelde@gmail.com>
+
+pkgname=rdiff-backup
+pkgver=1.2.8
+pkgrel=5
+pkgdesc='A utility for local/remote mirroring and incremental backups.'
+arch=('i686' 'x86_64' 'mips64el')
+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"{,.asc})
+md5sums=('1a94dc537fcf74d6a3a80bd27808e77b'
+ '3b88b18eb43ac85bc70b8dce92e958ba')
+
+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..35de41104
--- /dev/null
+++ b/community/recoll/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 59455 2011-11-25 11:15:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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.16.2
+pkgrel=1
+pkgdesc="Full text search tool based on Xapian backend"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lesbonscomptes.com/recoll/"
+license=('GPL')
+depends=('xapian-core>=1.0.15-1' 'qt' 'openssl' 'hicolor-icon-theme')
+optdepends=('libxslt: for XML based formats (fb2,etc)'
+ 'unzip: for the OpenOffice.org documents'
+ 'xpdf: for pdf'
+ 'pstotext: for postscipt'
+ 'antiword: for msword'
+ 'catdoc: for ms excel and powerpoint'
+ 'unrtf: for RTF'
+ 'untex: for dvi support with dvips'
+ 'djvulibre: for djvu'
+ 'id3lib: for mp3 tags support with id3info'
+ 'python2: for using some filters'
+ 'mutagen: Audio metadata'
+ 'python-pychm: CHM files'
+ 'perl-exiftool: EXIF data from raw files'
+ 'aspell-en: English stemming support')
+install=recoll.install
+source=(http://www.lesbonscomptes.com/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('1bbe35a1c0fb248d1c5b3a4c3ed20d1c')
+
+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..ce7dcecc7
--- /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' 'mips64el')
+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..c1c4427f5
--- /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' 'mips64el')
+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..0994d635c
--- /dev/null
+++ b/community/redis/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 59579 2011-11-28 12:47:33Z 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.4.4
+pkgrel=1
+pkgdesc="Advanced key-value store"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://redis.io/"
+#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=('8aec2c38b7d70956688cbfe3a99495fa'
+ '9726d06d0a0c60cb5d55a31b3dc1e55d'
+ '9e2d75b7a9dc421122d673fe520ef17f')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ CFLAGS="$CFLAGS -std=c99" make FORCE_LIBC_MALLOC=yes
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ 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..3294963ed
--- /dev/null
+++ b/community/redis/redis.d
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+daemon_name=redis
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+REDISPORT=6379
+EXEC=/usr/bin/redis-server
+CLIEXEC=/usr/bin/redis-cli
+PIDFILE=/var/run/redis.pid
+WORKDIR=/var/lib/redis
+CONF="/etc/redis.conf"
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name"
+ [ -d $WORKDIR ] || mkdir $WORKDIR
+
+ if [ -f $PIDFILE ]; then
+ stat_fail
+ exit 1
+ else
+ $EXEC $CONF >/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name"
+
+ if [ ! -f $PIDFILE ]; then
+ stat_fail
+ exit 1
+ else
+ PID=$(cat $PIDFILE)
+ $CLIEXEC -p $REDISPORT shutdown
+ [ -d /proc/${PID} ] && sleep 1
+ [ -d /proc/${PID} ] && sleep 5
+ [ -d /proc/${PID} ] && kill -9 $PID
+ [ -d /proc/${PID} ] && stat_fail || { stat_done; rm_daemon $daemon_name; }
+ fi
+ ;;
+
+ restart)
+ $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/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..3a4ff3358
--- /dev/null
+++ b/community/redshift/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 51577 2011-07-11 18:47:40Z 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.7
+pkgrel=1
+pkgdesc="Adjusts the color temperature of your screen according to your surroundings."
+arch=('i686' 'x86_64' 'mips64el')
+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=('c56512afa292b5a94b715ed4a1841d4c')
+
+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..f72b5a364
--- /dev/null
+++ b/community/rekonq/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 60395 2011-12-13 10:24:06Z plewis $
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Panagiotis Papadopoulos <pano_90 AT gmx DOT net>
+
+pkgname=rekonq
+pkgver=0.8.1
+pkgrel=1
+pkgdesc='A WebKit based web browser for KDE'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://rekonq.kde.org/'
+license=('GPL')
+depends=('kdebase-keditbookmarks')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+sha256sums=('907c3bd299ee95806d337b749c74531441e0d205055998678337266ccc6c9b7f')
+
+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..f80ffb217
--- /dev/null
+++ b/community/rekonq/rekonq.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
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..0927cd990
--- /dev/null
+++ b/community/remind/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# 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=2
+pkgdesc='A sophisticated calendar and alarm progam.'
+arch=('i686' 'x86_64' 'mips64el')
+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..9f94b7c05
--- /dev/null
+++ b/community/remmina-plugins/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 54479 2011-08-18 15:08:28Z bluewind $
+# 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=2
+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 'mips64el')
+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..b8f7dc5ed
--- /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 'mips64el')
+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..06a833404
--- /dev/null
+++ b/community/rep-gtk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55391 2011-09-11 18:32:16Z shusmann $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=rep-gtk
+pkgver=0.90.7
+pkgrel=1
+pkgdesc="Binding of the GTK and GDK libraries for the librep Lisp environment"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sawfish.wikia.com/wiki/Rep-GTK"
+license=('GPL')
+depends=('librep' 'gtk2')
+source=(http://download.tuxfamily.org/librep/rep-gtk/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('30736e88533e176f88677723f12095be983e1926')
+options=('!libtool')
+
+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..47ea0dfb2
--- /dev/null
+++ b/community/rexima/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 56548 2011-10-08 11:58:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jeff Mickey <j@codemac.net>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=rexima
+pkgver=1.4
+pkgrel=4
+pkgdesc="A curses-based interactive mixer."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.svgalib.org/rus/rexima.html"
+license=('GPL')
+depends=('ncurses')
+source=(http://ftp.ibiblio.org/pub/Linux/apps/sound/mixers/${pkgname}-${pkgver}.tar.gz)
+md5sums=('333a4db26409b9cca9b9e96ddf42f44c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=$pkgdir/usr MANDIR=$pkgdir/usr/share/man/man1 install
+}
diff --git a/community/ripperx/PKGBUILD b/community/ripperx/PKGBUILD
new file mode 100644
index 000000000..e8b694c28
--- /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 'mips64el')
+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/PKGBUILD b/community/rlog/PKGBUILD
new file mode 100644
index 000000000..1ba965fe5
--- /dev/null
+++ b/community/rlog/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 55453 2011-09-12 23:51:53Z ebelanger $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Sven Kauber <celeon@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=rlog
+pkgver=1.4
+pkgrel=4
+pkgdesc="A flexible message logging facility for C++ programs and libraries"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.arg0.net/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"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..ca15bd42b
--- /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' 'mips64el')
+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..6c24a6114
--- /dev/null
+++ b/community/rocksndiamonds/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 58930 2011-11-20 13:04:05Z andrea $
+# 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 'mips64el')
+url="http://www.artsoft.org/rocksndiamonds/"
+license=('GPL')
+depends=('sdl' 'sdl_image' 'sdl_mixer' 'sdl_net' 'smpeg' 'rocksndiamonds-data')
+makedepends=('unzip' 'p7zip')
+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..ed1105ab3
--- /dev/null
+++ b/community/root/PKGBUILD
@@ -0,0 +1,97 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Sebastian Voecking <voeck@web.de>
+
+pkgname=root
+pkgver=5.32.00
+pkgrel=1
+pkgdesc='C++ data analysis framework and interpreter from CERN.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://root.cern.ch'
+license=('LGPL2.1')
+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' 'hicolor-icon-theme')
+makedepends=('fftw')
+install='root.install'
+options=('!emptydirs')
+source=("ftp://root.cern.ch/root/root_v${pkgver}.source.tar.gz"
+ 'root.sh'
+ 'rootd'
+ 'root.xml')
+md5sums=('1c30e4e6eeae62ff1ad5118cd1309679'
+ '0e883ad44f99da9bc7c23bc102800b62'
+ 'efd06bfa230cc2194b38e0c8939e72af'
+ 'e2cf69b204192b5889ceb5b4dedc66f7')
+
+build() {
+ cd root
+
+ if [ ${CARCH} == 'i686' ]; then
+ TARGET=linux;
+ else
+ TARGET=linuxx8664gcc;
+ fi
+
+ # python2 switch
+ find . -type f -exec sed -i -e 's_#!/usr/bin/env python_&2_' \
+ -e 's/python -O/python2 -O/g' \
+ -e 's/python -c/python2 -c/g' {} \;
+ sed \
+ -e 's/python 2/python2 2/g' \
+ -i configure
+ sed \
+ -e 's/python $(pkgpyexecdir)/python2 $(pkgpyexecdir)/g' \
+ -i cint/reflex/python/genreflex/Makefile.am
+ sed \
+ -e 's/python /python2 /' \
+ -i config/genreflex.in config/genreflex-rootcint.in
+
+ ./configure \
+ ${TARGET} \
+ --prefix=/usr \
+ --disable-builtin-ftgl \
+ --disable-builtin-freetype \
+ --disable-builtin-glew \
+ --disable-builtin-pcre \
+ --disable-builtin-zlib \
+ --disable-builtin-lzma \
+ --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
+
+ # move from aur
+ #--disable-builtin-afterimage \
+
+ make
+}
+
+package() {
+ cd root
+
+ 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.xml \
+ ${pkgdir}/usr/share/mime/packages/root.xml
+
+ install -D -m644 ${srcdir}/root/build/package/debian/root-system-bin.desktop.in \
+ ${pkgdir}/usr/share/applications/root-system-bin.desktop
+ # replace @prefix@ with /usr for the desktop
+ sed -e 's_@prefix@_/usr_' -i ${pkgdir}/usr/share/applications/root-system-bin.desktop
+
+ install -D -m644 ${srcdir}/root/build/package/debian/root-system-bin.png \
+ ${pkgdir}/usr/share/icons/hicolor/48x48/apps/root-system-bin.png
+
+ # use a file that pacman can track instead of adding directly to ld.so.conf
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo '/usr/lib/root' > ${pkgdir}/etc/ld.so.conf.d/root.conf
+
+ rm -rf ${pkgdir}/etc/root/daemons
+}
diff --git a/community/root/root.install b/community/root/root.install
new file mode 100644
index 000000000..afabb7aea
--- /dev/null
+++ b/community/root/root.install
@@ -0,0 +1,25 @@
+post_install() {
+ update-desktop-database >/dev/null
+
+ update-mime-database /usr/share/mime >/dev/null
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_remove() {
+ # leave for pre 5.30.03-3
+ if [[ $(vercmp $1 5.30.03-3) == -1 ]]; then
+ 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 .
+ fi
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
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..6ef646b38
--- /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' 'mips64el')
+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..19b42db02
--- /dev/null
+++ b/community/roxterm/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 56631 2011-10-09 09:38:40Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=roxterm
+pkgver=2.2.2
+pkgrel=1
+pkgdesc="Tabbed, VTE-based terminal emulator"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://roxterm.sourceforge.net/"
+license=('GPL3')
+depends=('dbus-glib' 'vte3' '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)
+sha1sums=('e51f24e045fb7ecc38ea0f17b06ed2de3aec92cf')
+md5sums=('ad3c2e92c588ab312e8b199a9082efcd')
+
+
+build() {
+ cd "${srcdir}/roxterm-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/roxterm-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
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..9f36f6777
--- /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 'mips64el')
+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/PKGBUILD b/community/rsnapshot/PKGBUILD
new file mode 100644
index 000000000..428c44b09
--- /dev/null
+++ b/community/rsnapshot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58364 2011-11-12 11:47:00Z andrea $
+# Maintainer:
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Thorsten Tasch <tht@thorstentasch.de>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=rsnapshot
+pkgver=1.3.1
+pkgrel=3
+pkgdesc="A remote filesystem snapshot utility"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+md5sums=('588f92995dcf60a6ea6df8d94a017e7e'
+ '4cd16eaa51d58a652cffde945985e91c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
+ sed -i 's:/usr/bin/pod2man:/usr/bin/core_perl/pod2man:' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ mv ${pkgdir}/etc/rsnapshot.conf.default ${pkgdir}/etc/rsnapshot.conf
+ install -Dm644 ${srcdir}/rsnapshot ${pkgdir}/etc/logrotate.d/rsnapshot
+}
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..f1e4c060c
--- /dev/null
+++ b/community/rss-glx/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 55897 2011-09-24 16:49:31Z stephane $
+# 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=8
+pkgdesc="The Really Slick Screensavers port to GLX"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+}
+
+package() {
+ cd ${srcdir}/${pkgname}_${pkgver}
+ 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
+}
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..758642618
--- /dev/null
+++ b/community/rss-glx/rss-glx.install
@@ -0,0 +1,12 @@
+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..6d3bb3f4c
--- /dev/null
+++ b/community/rsyslog/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 58329 2011-11-11 14:26:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=rsyslog
+pkgver=5.8.6
+pkgrel=1
+pkgdesc="An enhanced multi-threaded syslogd with a focus on security and reliability"
+url="http://www.rsyslog.com/"
+arch=('i686' 'x86_64' 'mips64el')
+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=('c46db0496066b82faf735bd4222208d7'
+ '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 \
+ --with-systemdsystemunitdir=/lib/systemd/system
+ 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..7501d59d5
--- /dev/null
+++ b/community/rtorrent/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Daenyth <Daenyth [at] gmail [dot] com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: sh__
+
+pkgname=rtorrent
+pkgver=0.8.9
+pkgrel=2
+pkgdesc='Ncurses BitTorrent client based on libTorrent'
+url='http://libtorrent.rakshasa.no/'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libtorrent=0.12.9' 'curl' 'xmlrpc-c')
+source=("http://libtorrent.rakshasa.no/downloads/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('0ac51c185e98b5a386e5f1a07bca9a9963e2d6ce')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ ./configure \
+ --prefix=/usr \
+ --enable-debug \
+ --with-xmlrpc-c \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D doc/faq.xml "${pkgdir}"/usr/share/doc/rtorrent/faq.xml
+ install -D doc/rtorrent.1 "${pkgdir}"/usr/share/man/man1/rtorrent.1
+ install -D doc/rtorrent.rc "${pkgdir}"/usr/share/doc/rtorrent/rtorrent.rc
+}
diff --git a/community/ruby-cairo/PKGBUILD b/community/ruby-cairo/PKGBUILD
new file mode 100644
index 000000000..a082bbacf
--- /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' 'mips64el')
+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-gtk2/PKGBUILD b/community/ruby-gtk2/PKGBUILD
new file mode 100644
index 000000000..101dd3636
--- /dev/null
+++ b/community/ruby-gtk2/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 59056 2011-11-21 04:12:47Z ebelanger $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+# Contributor: kritoke <kritoke@nospam.gmail.com>
+
+pkgbase=ruby-gtk2
+pkgname=('ruby-atk' 'ruby-gdkpixbuf2' 'ruby-gio2' 'ruby-glib2' 'ruby-gtk2' 'ruby-pango')
+pkgver=1.0.3
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+makedepends=('ruby-pkgconfig' 'ruby-cairo' 'gtk2')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz)
+md5sums=('fa1de7fc920de46fb8d8b9f67732c7a3')
+
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ LANG="en_US.UTF-8" ruby extconf.rb atk gdk_pixbuf2 gio2 glib2 gtk2 pango --topdir=$pkgdir
+ make
+}
+
+package_ruby-atk() {
+ pkgdesc="Ruby bindings for atk"
+ depends=("ruby-glib2=$pkgver" 'atk')
+
+ cd "$srcdir/ruby-gtk2-$pkgver/atk"
+ make DESTDIR="$pkgdir" install
+}
+
+package_ruby-gdkpixbuf2() {
+ pkgdesc="Ruby bindings for gdkpixbuf2"
+ depends=("ruby-glib2=$pkgver" 'gdk-pixbuf2')
+
+ cd "$srcdir/ruby-gtk2-$pkgver/gdk_pixbuf2"
+ make DESTDIR="$pkgdir" install
+}
+
+package_ruby-gio2() {
+ pkgdesc="Ruby bindings for gio2"
+ depends=("ruby-glib2=$pkgver")
+
+ cd "$srcdir/ruby-gtk2-$pkgver/gio2"
+ make DESTDIR="$pkgdir" install
+}
+
+package_ruby-glib2() {
+ pkgdesc="Ruby bindings for glib2"
+ depends=('glib2' 'ruby')
+
+ cd "$srcdir/ruby-gtk2-$pkgver/glib2"
+ make DESTDIR="$pkgdir" install
+}
+
+package_ruby-gtk2() {
+ pkgdesc="Ruby bindings for gtk2"
+ depends=('gtk2' "ruby-glib2=$pkgver" "ruby-pango=$pkgver" "ruby-atk=$pkgver" "ruby-gdkpixbuf2=$pkgver")
+
+ cd "$srcdir/ruby-gtk2-$pkgver/gtk2"
+ make DESTDIR="$pkgdir" install
+}
+
+package_ruby-pango() {
+ pkgdesc="Ruby bindings for pango"
+ depends=("ruby-glib2=$pkgver" 'ruby-cairo' 'pango')
+
+ cd "$srcdir/ruby-gtk2-$pkgver/pango"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-ncurses/PKGBUILD b/community/ruby-ncurses/PKGBUILD
new file mode 100644
index 000000000..79e296738
--- /dev/null
+++ b/community/ruby-ncurses/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 59686 2011-11-29 12:01:49Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Jeff Mickey <j@codemac.net>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+pkgname=ruby-ncurses
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="Module for interactive text console applications (ncurses)"
+arch=('x86_64' 'i686')
+url="http://ncurses-ruby.berlios.de/"
+license=('GPL')
+depends=('ruby')
+source=("http://download.berlios.de/ncurses-ruby/ncurses-ruby-$pkgver.tar.bz2")
+md5sums=('63fd3d09a51cdd745e1ed37f85621ea2')
+
+build() {
+ cd "$srcdir/ncurses-ruby-$pkgver"
+
+ ruby extconf.rb
+ make
+}
+
+package() {
+ cd "$srcdir/ncurses-ruby-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/rusxmms/PKGBUILD b/community/rusxmms/PKGBUILD
new file mode 100644
index 000000000..96b89ac1c
--- /dev/null
+++ b/community/rusxmms/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 54066 2011-08-13 05:45:42Z ebelanger $
+# 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=3
+pkgdesc="XMMS with librcc"
+arch=(i686 x86_64 'mips64el')
+license=(GPL)
+url="http://rusxmms.sourceforge.net/"
+depends=(libsm libxxf86vm zlib gtk libvorbis 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 "${srcdir}"/xmms-${_xmmsver}
+
+if true; then
+ ln -s "$srcdir"/RusXMMS2 "$srcdir"/xmms-${_xmmsver}/RusXMMS2
+ (cd "$srcdir"/xmms-${_xmmsver}/RusXMMS2 && ./apply.sh)
+
+ 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 && \
+
+# I already remove esound from repo and it has some autotools errors that I can't seem to figure out. So let's use a hack to get the esound removal rebuild done.
+# aclocal
+# automake
+autoconf
+ sed -i 's/unicode.c//g' Input/mpg123/Makefile.in
+ sed -i 's/unicode.lo//g' Input/mpg123/Makefile.in
+
+
+ (cd libxmms && aclocal && automake && autoconf)
+
+ 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
+}
+
+package(){
+ cd "${srcdir}"/xmms-${_xmmsver}
+ make DESTDIR="$pkgdir" install
+
+ mkdir -p "$pkgdir"/usr/share/{applications,pixmaps}
+ install -m 644 xmms/xmms.desktop "$pkgdir"/usr/share/applications
+ install -m 644 xmms/xmms_mini.xpm "$pkgdir"/usr/share/pixmaps/xmms.xpm
+ # 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/community/rxvt/PKGBUILD b/community/rxvt/PKGBUILD
new file mode 100644
index 000000000..436fd7ae5
--- /dev/null
+++ b/community/rxvt/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Seblu <seblu+arch@seblu.net>
+# Contributor: Malte Rabenseifer <malte@zearan.de>
+# Contributor: urist <9362773@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Troy Phillips <9362773@gmail.com>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=rxvt
+pkgver=2.7.10
+pkgrel=5
+pkgdesc='A colour vt102 terminal emulator'
+arch=('i686' 'x86_64')
+url='http://rxvt.sourceforge.net/'
+license=('GPL')
+depends=('libx11')
+makedepends=('libxt')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('302c5c455e64047b02d1ef19ff749141')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make prefix="$pkgdir/usr" mandir="$pkgdir/usr/share/man/man1" install
+ rm "$pkgdir/usr/bin/$pkgname-$pkgver"
+ rmdir "$pkgdir/usr/include" "$pkgdir/usr/lib"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/sage-mathematics/PKGBUILD b/community/sage-mathematics/PKGBUILD
new file mode 100644
index 000000000..5e509bab0
--- /dev/null
+++ b/community/sage-mathematics/PKGBUILD
@@ -0,0 +1,105 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Osman Ugus <ugus11@yahoo.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Special thanks to Nareto for moving the compile from the .install to the PKGBUILD
+
+pkgname=sage-mathematics
+pkgver=4.7.2
+pkgrel=2
+pkgdesc='SAGE: Open Source Mathematics Software, a viable free alternative to Magma, Maple, Mathematica, and Matlab.'
+url='http://www.sagemath.org'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+#depends=('readline')
+depends=('ppl')
+makedepends=('gcc-fortran' 'gcc-libs' 'desktop-file-utils' 'imagemagick' 'texlive-core')
+optdepends=('imagemagick: some plotting functionality benefits from it'
+ 'texlive-core: some plotting functionality benefits from it, also to use SageTeX'
+ 'sage-mathematics-spkgs: original packages used to build additional packages')
+options=('!makeflags')
+install="${pkgname}.install"
+source=("http://sage.math.washington.edu/home/release/sage-${pkgver}/sage-${pkgver}.tar"
+ 'SAGE-notebook.desktop')
+md5sums=('b3073997e6c7ec00a269f84ff2e54973'
+ 'dc391f12b7d17dd37326343ec0e99bbd')
+
+build() {
+ cd sage-${pkgver}
+
+ # modularization of sage, sort of :)
+ # fixes the following error:
+ # bash: symbol lookup error: bash: undefined symbol: rl_filename_rewrite_hook
+ # remove this hack when sage uses a readline 6.1 or greater, or when sage uses its own internal bash
+ # this is for people who have custom kernels (sage works this around by checking uname -r)
+ #mkdir -p spkg/installed
+ #touch spkg/installed/readline-6.1
+ mkdir -p spkg/installed
+ touch spkg/installed/ppl-0.11.2
+
+ # fix "missing sage.all error" during build
+ unset CFLAGS
+ unset CXXFLAGS
+
+ # fix build errors
+ unset LDFLAGS
+
+ # enable multiple threads while building, is this really needed? check if uses MAKEFLAGS
+ export SAGE_BUILD_THREADS=$(lscpu | awk '/^CPU\(s\):/ { print $2 }')
+ export MAKE="make -j${SAGE_BUILD_THREADS}"
+
+ # use archlinux's fortran rather then the one that ships with sage to compile sage's fortran
+ export SAGE_FORTRAN='/usr/bin/gfortran'
+ export SAGE_FORTRAN_LIB='/usr/lib/libgfortran.so'
+
+ # disable building with debugging support
+ export SAGE_DEBUG='no'
+
+ # enable fat binaries (disables processor specific optimizations)
+ # comment out if you're only building it for yourself
+ export SAGE_FAT_BINARY='yes'
+
+ # can't write to root in a clean chroot
+ export DOT_SAGE='/build/src/'
+
+ # only build sage, no documents
+ #make build
+ make
+}
+
+<< COMMENT
+check() {
+ cd sage-${pkgver}
+
+ # uncomment if we want to run all the tests (warning: very long)
+ #make ptestlong
+}
+COMMENT
+
+package() {
+ cd sage-${pkgver}
+
+ # cp because make install is experimental and will corrupt the install
+ install -d ${pkgdir}/opt/sage
+ cp -r * ${pkgdir}/opt/sage
+
+ # move SageTeX files to more appropriate directory
+ install -d ${pkgdir}/usr/share
+ mv ${pkgdir}/opt/sage/local/share/texmf \
+ ${pkgdir}/usr/share
+
+ desktop-file-install ${srcdir}/SAGE-notebook.desktop \
+ --dir ${pkgdir}/usr/share/applications
+
+ # create link to main binary
+ install -d ${pkgdir}/usr/bin
+ ln -s /opt/sage/sage ${pkgdir}/usr/bin/sage
+
+ # remove build logs
+ rm -f ${pkgdir}/opt/sage/install.log
+ rm -rf ${pkgdir}/opt/sage/spkg/logs
+
+ # remove source packages, since they are rarely needed, they are 300mb in size (compressed)
+ # no need to package them together, put into sage-mathematics-spkgs
+ rm -f ${pkgdir}/opt/sage/spkg/base/*spkg
+ rm -f ${pkgdir}/opt/sage/spkg/standard/*spkg
+}
diff --git a/community/sage-mathematics/SAGE-notebook.desktop b/community/sage-mathematics/SAGE-notebook.desktop
new file mode 100644
index 000000000..26a35d3ac
--- /dev/null
+++ b/community/sage-mathematics/SAGE-notebook.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Version=1.0
+Name=SAGE
+Comment=SAGE NOTEBOOK
+Comment[en_US]=SAGE NOTEBOOK
+Exec=/opt/sage/sage -notebook
+GenericName=
+GenericName[de]=
+Icon=/opt/sage/data/extcode/notebook/images/sageicon.png
+MimeType=
+Name[de]=SAGE
+StartupNotify=true
+Terminal=true
+Type=Application
+Categories=Science;Math;
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+GenericName[en_US]=
diff --git a/community/sage-mathematics/sage-mathematics.install b/community/sage-mathematics/sage-mathematics.install
new file mode 100644
index 000000000..6caa5299e
--- /dev/null
+++ b/community/sage-mathematics/sage-mathematics.install
@@ -0,0 +1,56 @@
+post_install() {
+ cd /opt/sage
+
+ # set HOME because when sage updates its sage_root (after being moved) it will write files to ~/.sage with root ownership
+ # the files it writes to ~/.sage can be safely ignored
+ HOME=/tmp ./sage -c
+
+ # add sagemath user for the daemon
+ useradd -r -c 'Sage daemon' -d /opt/sage -s /bin/false sagemath
+
+ # Update LaTeX db to point to SageTeX
+ if [ -f /usr/bin/texhash ]; then
+ /usr/bin/texhash /usr/share/texmf
+ else
+ echo 'Warning: could not find /usr/bin/texhash'
+ echo 'SageTeX has been installed but you need to run:'
+ echo '# texhash /usr/share/texmf'
+ echo 'So that LaTeX will be able to find it.'
+ fi
+
+echo '
+ ___
+/ (_) o |
+\__ _ _ __ |
+/ / |/ | | / \_| | |
+\___/ | |_/|/\__/ \_/|/o
+ /| /|
+ \| \|
+ ________________________________
+< sage-mathematics, I mean, MOO! >
+ --------------------------------
+ \ ^__^
+ \ (oo)\_______
+ (__)\ )\/\
+ ||----w |
+ || ||
+'
+
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ # Update LaTeX db to remove SageTeX entries
+ if [ -f /usr/bin/texhash ]; then
+ /usr/bin/texhash /usr/share/texmf
+ fi
+
+ # remove the sagemath daemon user
+ userdel sagemath
+
+ # clean up left overs
+ rm -rf /opt/sage
+}
diff --git a/community/sakura/PKGBUILD b/community/sakura/PKGBUILD
new file mode 100644
index 000000000..aa0f750bb
--- /dev/null
+++ b/community/sakura/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 53190 2011-07-31 20:35:40Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Dmitry N. Shilov <stormblast@land.ru>
+
+pkgname=sakura
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="A terminal emulator based on GTK and VTE"
+arch=('i686' 'x86_64' 'mips64el')
+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=('24b98c42c057da39f57c281a4726901952774641')
+
+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..dc61c3a03
--- /dev/null
+++ b/community/sarg/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 60007 2011-12-03 08:04:41Z 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' 'mips64el')
+url="http://sarg.sourceforge.net"
+license=('GPL')
+depends=('gd' 'libldap')
+makedepends=('cmake')
+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..92e4e66c8
--- /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' 'mips64el')
+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..984ce840f
--- /dev/null
+++ b/community/sawfish/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 55392 2011-09-11 18:41:44Z shusmann $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=sawfish
+pkgver=1.8.2
+pkgrel=1
+pkgdesc="An extensible window manager using a Lisp-based scripting language"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sawfish.wikia.com/wiki/Main_Page"
+license=('GPL')
+depends=('libsm' 'rep-gtk' 'hicolor-icon-theme')
+install=${pkgname}.install
+source=(http://download.tuxfamily.org/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('d4716516fb0020bb728291c6defa1f421a33e5dc')
+options=('!libtool')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -r $pkgdir/usr/share/gnome/wm-properties
+ rm -r $pkgdir/usr/share/kde4
+ rmdir $pkgdir/usr/share/gnome
+}
diff --git a/community/sawfish/sawfish.install b/community/sawfish/sawfish.install
new file mode 100644
index 000000000..3b43a7466
--- /dev/null
+++ b/community/sawfish/sawfish.install
@@ -0,0 +1,21 @@
+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
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+} \ No newline at end of file
diff --git a/community/scantailor/PKGBUILD b/community/scantailor/PKGBUILD
new file mode 100644
index 000000000..1d295ea75
--- /dev/null
+++ b/community/scantailor/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 53336 2011-08-03 00:10:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Denis Terskov aka neurosurgeon <terskov.den@gmail.com>
+
+pkgname=scantailor
+pkgver=0.9.10
+pkgrel=1
+pkgdesc="Interactive post-processing tool for scanned pages"
+arch=(i686 x86_64 'mips64el')
+url="http://scantailor.sourceforge.net"
+license="GPL"
+depends=('qt')
+makedepends=('cmake' 'boost')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('f962c93a2d63b449fa3f6612ade3b028'
+ '0aeb1bae724b5cae208ae8af95e8ed9b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ patch -p1 <$srcdir/build-fix.patch
+ cmake .
+ cmake \
+ -DCMAKE_CXX_FLAGS="-DBOOST_NO_MEMBER_TEMPLATE_FRIENDS" \
+ -DCMAKE_CXX_FLAGS_DEBUG="-DBOOST_NO_MEMBER_TEMPLATE_FRIENDS" \
+ -DCMAKE_CXX_FLAGS_RELEASE="-DBOOST_NO_MEMBER_TEMPLATE_FRIENDS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release .
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/scantailor/build-fix.patch b/community/scantailor/build-fix.patch
new file mode 100644
index 000000000..85b620020
--- /dev/null
+++ b/community/scantailor/build-fix.patch
@@ -0,0 +1,16 @@
+diff -wbBur scantailor-0.9.10/zones/EditableZoneSet.h scantailor-0.9.10.my/zones/EditableZoneSet.h
+--- scantailor-0.9.10/zones/EditableZoneSet.h 2011-07-31 00:47:25.000000000 +0400
++++ scantailor-0.9.10.my/zones/EditableZoneSet.h 2011-08-03 01:59:40.000000000 +0400
+@@ -76,6 +77,12 @@
+
+ EditableZoneSet();
+
++ EditableZoneSet(const EditableZoneSet& zs)
++ {
++ m_splineMap = zs.m_splineMap;
++ m_defaultProps = zs.m_defaultProps;
++ }
++
+ const_iterator begin() const { return iterator(m_splineMap.begin()); }
+
+ const_iterator end() const { return iterator(m_splineMap.end()); }
diff --git a/community/schroot/PKGBUILD b/community/schroot/PKGBUILD
new file mode 100644
index 000000000..a2ae0f37e
--- /dev/null
+++ b/community/schroot/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 59964 2011-12-02 21:00:43Z ibiru $
+# 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.23
+pkgrel=3
+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' 'e2fsprogs')
+optdepends=('btrfs-progs-unstable' 'lvm2')
+arch=('i686' 'x86_64' 'mips64el')
+conflicts=('dchroot')
+replaces=('dchroot')
+provides=('schroot' 'sbuild' 'dchroot')
+backup=('etc/schroot/schroot.conf'
+ 'etc/schroot/arch32/config'
+ 'etc/schroot/arch32/copyfiles'
+ 'etc/schroot/arch32/mount'
+ 'etc/schroot/arch32/nssdatabases')
+options=(!libtool)
+source=("http://ftp.debian.org/debian/pool/main/s/$pkgname/${pkgname}_${pkgver}.orig.tar.bz2"
+ 'pam.d.schroot.patch'
+ 'arch32-example'
+ 'arch32-config'
+ 'arch32-copyfiles'
+ 'arch32-mount'
+ 'arch32-nssdatabases')
+md5sums=('73873e0fee83a45655ed8efa246a1e26'
+ 'a8d77cac806a0a9adef3f93cdbeb280a'
+ '1e34db5387c4e5de911e15d8a9208bdb'
+ '5a3f7b839c7e0b8933748da7c5b6385b'
+ '06db41d42f9fce5449a28feb76ded556'
+ 'f0d5d5b5e34a860f6f90b5628c680f46'
+ 'af1da6edd8c8c0dafeeb2c2c4e0c840b')
+
+build() {
+ cd ${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
+}
+
+check() {
+ cd ${pkgname}-${pkgver}
+ make -k check
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir install
+ install -dm 755 ${pkgdir}/etc/schroot/arch32
+ install -m 644 ${srcdir}/arch32-{config,mount,copyfiles,nssdatabases} ${pkgdir}/etc/schroot/arch32
+ rename 'arch32-' '' ${pkgdir}/etc/schroot/arch32/*
+ install -m 644 ${srcdir}/arch32-example ${pkgdir}/etc/schroot/chroot.d/arch32.conf.example
+ patch -i ${srcdir}/pam.d.schroot.patch ${pkgdir}/etc/pam.d/schroot
+}
diff --git a/community/schroot/arch32-config b/community/schroot/arch32-config
new file mode 100644
index 000000000..0ee72d522
--- /dev/null
+++ b/community/schroot/arch32-config
@@ -0,0 +1,11 @@
+# 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/arch32/mount"
+
+# Files to copy from the host system into the chroot.
+COPYFILES="/etc/schroot/arch32/copyfiles"
+
+# System databases to copy into the chroot
+NSSDATABASES="/etc/schroot/arch32/nssdatabases"
diff --git a/community/schroot/arch32-copyfiles b/community/schroot/arch32-copyfiles
new file mode 100644
index 000000000..88f093ceb
--- /dev/null
+++ b/community/schroot/arch32-copyfiles
@@ -0,0 +1,7 @@
+/etc/group
+/etc/hosts
+/etc/passwd
+/etc/resolv.conf
+/etc/rc.conf
+/etc/localtime
+/etc/locale.gen
diff --git a/community/schroot/arch32-example b/community/schroot/arch32-example
new file mode 100644
index 000000000..3f059e3c0
--- /dev/null
+++ b/community/schroot/arch32-example
@@ -0,0 +1,10 @@
+[arch32]
+description=Arch32
+type=directory
+directory=/opt/arch32
+#users=username
+groups=users
+root-groups=root
+script-config=arch32/config
+personality=linux32
+#aliases=32,i686
diff --git a/community/schroot/arch32-mount b/community/schroot/arch32-mount
new file mode 100644
index 000000000..075d6e451
--- /dev/null
+++ b/community/schroot/arch32-mount
@@ -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/arch32-nssdatabases b/community/schroot/arch32-nssdatabases
new file mode 100644
index 000000000..815ddce3f
--- /dev/null
+++ b/community/schroot/arch32-nssdatabases
@@ -0,0 +1,6 @@
+# System databases to copy into the chroot from the host system.
+#
+# <database name>
+passwd
+shadow
+group
diff --git a/community/schroot/pam.d.schroot.patch b/community/schroot/pam.d.schroot.patch
new file mode 100644
index 000000000..528acb5f7
--- /dev/null
+++ b/community/schroot/pam.d.schroot.patch
@@ -0,0 +1,15 @@
+@@ -23,13 +23,6 @@
+ # time restrainst on schroot usage.
+ # account requisite pam_time.so
+
+-# The standard Unix authentication modules, used with
+-# NIS (man nsswitch) as well as normal /etc/passwd and
+-# /etc/shadow entries.
+-@include common-auth
+-@include common-account
+-@include common-session
+-
+ # Sets up user limits, please uncomment and read /etc/security/limits.conf
+ # to enable this functionality.
+ # session required pam_limits.so
+
diff --git a/community/scilab/PKGBUILD b/community/scilab/PKGBUILD
new file mode 100644
index 000000000..ed76c2b92
--- /dev/null
+++ b/community/scilab/PKGBUILD
@@ -0,0 +1,86 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Simon Lipp <sloonz+aur@gmail.com>
+# Paulo Matias
+
+pkgname=scilab
+pkgver=5.3.1
+pkgrel=4
+pkgdesc='Scilab is a scientific software package for numerical computations.'
+arch=('i686' 'x86_64' 'mips64el')
+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' 'gcc-fortran' 'java-avalon-framework' 'xorg-fonts-type1')
+[[ $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' 'configure-hdf5-vercheck.patch')
+
+[[ $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' 'configure-hdf5-vercheck.patch')
+
+[[ $CARCH == x86_64 ]] && md5sums=('0002653e670efabb8faf9e6403367134'
+ '7c9bda373d8dfd75a4f8227a08ced588'
+ 'ad6286f324891fe8b86c60e4012a36b7'
+ 'efe6e8d06968ba5e1a3e5ab540a79667'
+ '7bf1a2149521db9e1c9a2ed684f9ce52')
+[[ $CARCH == i686 ]] && md5sums=('0002653e670efabb8faf9e6403367134'
+ '7545859e4078d3b77436b7f322967f26'
+ 'ad6286f324891fe8b86c60e4012a36b7'
+ 'efe6e8d06968ba5e1a3e5ab540a79667'
+ '7bf1a2149521db9e1c9a2ed684f9ce52')
+
+options=('!libtool' '!emptydirs')
+
+build() {
+ # we do not want things 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 ..
+
+ # dirty hack to remove non-working hdf5 version check from configure
+ patch -Np0 -i ${srcdir}/configure-hdf5-vercheck.patch
+
+ ./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/configure-hdf5-vercheck.patch b/community/scilab/configure-hdf5-vercheck.patch
new file mode 100644
index 000000000..0f1d875f3
--- /dev/null
+++ b/community/scilab/configure-hdf5-vercheck.patch
@@ -0,0 +1,24 @@
+--- configure.bak 2011-07-10 11:28:35.833136771 +0200
++++ configure 2011-07-10 11:28:45.023136232 +0200
+@@ -19495,21 +19495,6 @@
+ // #line 19495 "configure"
+ import ncsa.hdf.hdf5lib.H5;
+
+-public class conftest {
+- public static void main(String[] argv) {
+- String minVersion="1.8.4";
+- int[] vers = new int[3];
+- try { H5.H5get_libversion(vers); }
+- catch (Throwable ex) {System.exit(-1);}
+- String ver = vers[0] + "."+ vers[1] +"."+vers[2];
+-
+- System.out.println(ver);
+- if (minVersion.compareTo(ver) > 0) {
+- System.exit(-1);
+- }
+-
+- }
+-}
+ EOF
+
+ CLASSPATH=$ac_java_classpath
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..37808bbfe
--- /dev/null
+++ b/community/scite/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 59256 2011-11-22 03:57:15Z ebelanger $
+# 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=3.0.1
+pkgrel=1
+pkgdesc='A generally useful editor with facilities for building and running programs.'
+arch=('i686' 'x86_64' 'mips64el')
+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")
+md5sums=('e2ed3190ebf714f037d05cde7b9591de')
+
+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 "${srcdir}/scintilla/gtk"
+ make
+
+ cd "${srcdir}/${pkgname}/gtk"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}/gtk"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 ../License.txt \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-scite"
+ install -D -m644 "${srcdir}/scintilla/License.txt" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-scintilla"
+
+ ln -sf SciTE ${pkgdir}/usr/bin/scite
+}
diff --git a/community/scite/scite.install b/community/scite/scite.install
new file mode 100644
index 000000000..686b22022
--- /dev/null
+++ b/community/scite/scite.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/scorched3d/PKGBUILD b/community/scorched3d/PKGBUILD
new file mode 100644
index 000000000..83c7a81b1
--- /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' 'mips64el')
+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..ab8a33cd0
--- /dev/null
+++ b/community/scponly/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 59016 2011-11-20 20:06:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=scponly
+pkgver=4.8
+pkgrel=7
+pkgdesc="A limited shell for ssh/scp"
+arch=(i686 x86_64 'mips64el')
+url="http://sublimation.org/scponly/"
+depends=('glibc')
+makedepends=('openssh')
+license=('custom')
+options=(docs)
+source=(http://downloads.sourceforge.net/sourceforge/scponly/scponly-$pkgver.tgz
+ setup_chroot.sh)
+md5sums=('139ac9abd7f3b8dbc5c5520745318f8a'
+ 'a5e26c355cf4f127a1f2fdf2fb1582cc')
+
+build() {
+ cd $srcdir/$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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -D -m0644 COPYING $pkgdir/usr/share/licenses/scponly/COPYING
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+ 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..1af9807e0
--- /dev/null
+++ b/community/scponly/setup_chroot.sh
@@ -0,0 +1,275 @@
+#!/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-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
+
+ls /lib/libnss_files* > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+ LIB_LIST="$LIB_LIST /lib/libnss_files*"
+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/scrotwm/LICENSE b/community/scrotwm/LICENSE
new file mode 100644
index 000000000..24c04f3a0
--- /dev/null
+++ b/community/scrotwm/LICENSE
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
+ * Copyright (c) 2009 Ryan McBride <mcbride@countersiege.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 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.
+ */
+/*
+ * Much code and ideas taken from dwm under the following license:
+ * MIT/X Consortium License
+ *
+ * 2006-2008 Anselm R Garbe <garbeam at gmail dot com>
+ * 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
+ * 2006-2007 Jukka Salmi <jukka at salmi dot ch>
+ * 2007 Premysl Hruby <dfenze at gmail dot com>
+ * 2007 Szabolcs Nagy <nszabolcs at gmail dot com>
+ * 2007 Christof Musik <christof at sendfax dot de>
+ * 2007-2008 Enno Gottox Boland <gottox at s01 dot de>
+ * 2007-2008 Peter Hartlich <sgkkr at hartlich dot com>
+ * 2008 Martin Hurton <martin dot hurton at gmail dot 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.
+ */
diff --git a/community/scrotwm/PKGBUILD b/community/scrotwm/PKGBUILD
new file mode 100644
index 000000000..78ffbde73
--- /dev/null
+++ b/community/scrotwm/PKGBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=scrotwm
+pkgver=0.9.34
+pkgrel=2
+pkgdesc="A minimalistic dynamic tiling window manager that tries to stay out of the way."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.scrotwm.org"
+license=('custom:ISC')
+depends=('dmenu' 'libxrandr' 'libxtst' 'profont')
+makedepends=('libxt')
+optdepends=('scrot: screenshots' 'xlockmore: screenlocking' 'terminus-font: great font')
+backup=(etc/scrotwm.conf)
+source=(http://opensource.conformal.com/snapshots/$pkgname/$pkgname-$pkgver.tgz \
+ LICENSE \
+ baraction.sh)
+md5sums=('d38e296dd0bf014046e82cd42932f398'
+ 'a67cfe51079481e5b0eab1ad371379e3'
+ '6132ba773ee00f39d8f67ac0347a9814')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # it is like a patch, only less fragile
+ sed -i 's|\"/usr/local/lib/libswmhack.so\"|\"libswmhack.so\"|' scrotwm.c
+ sed -i 's/verbose_layout = 0;/verbose_layout = 1;/' scrotwm.c
+ sed -i 's/# modkey = Mod1/modkey = Mod4/' scrotwm.conf
+ sed -i 's/-\*-terminus-medium-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*/-*-profont-*-*-*-*-12-*-*-*-*-*-*-*/' scrotwm.conf
+
+ cd linux
+ make PREFIX="/usr"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/linux"
+ make PREFIX="/usr" DESTDIR="$pkgdir" install
+ install -Dm644 scrotwm.desktop "$pkgdir/usr/share/xsessions/scrotwm.desktop"
+ cd ..
+ install -Dm644 scrotwm.conf "$pkgdir/etc/scrotwm.conf"
+ install -Dm755 screenshot.sh "$pkgdir/usr/share/scrotwm/screenshot.sh"
+ #cd ../..
+ cd "$srcdir"
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -Dm755 baraction.sh "$pkgdir/usr/share/scrotwm/baraction.sh"
+
+ ln -s /usr/lib/libswmhack.so.0.0 "$pkgdir/usr/lib/libswmhack.so.0"
+ ln -s /usr/lib/libswmhack.so.0.0 "$pkgdir/usr/lib/libswmhack.so"
+
+ # fix this for real in the makefile
+ mkdir -p "$pkgdir"/usr/share/man/{es,it,pt,ru}/man1/
+ mv "$pkgdir/usr/share/man/man1/scrotwm_es.1" "$pkgdir/usr/share/man/es/man1/"
+ mv "$pkgdir/usr/share/man/man1/scrotwm_it.1" "$pkgdir/usr/share/man/it/man1/"
+ mv "$pkgdir/usr/share/man/man1/scrotwm_pt.1" "$pkgdir/usr/share/man/pt/man1/"
+ mv "$pkgdir/usr/share/man/man1/scrotwm_ru.1" "$pkgdir/usr/share/man/ru/man1/"
+}
diff --git a/community/scrotwm/baraction.sh b/community/scrotwm/baraction.sh
new file mode 100755
index 000000000..9c4600adc
--- /dev/null
+++ b/community/scrotwm/baraction.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+# baraction.sh for scrotwm status bar
+# From http://wiki.archlinux.org/index.php/Scrotwm
+
+SLEEP_SEC=5
+#loops forever outputting a line every SLEEP_SEC secs
+while :; do
+
+ eval $(cat /proc/acpi/battery/BAT0/state | awk '/charging state/ {printf "BAT_CHGSTATE=%s;", $3}; /remaining capacity/ {printf "BAT_REMNG=%s;",$3}; /present rate/ {printf "BAT_RATE=%s;",$3};' -)
+ eval $(cat /proc/acpi/battery/BAT0/info | awk '/present/ {printf "BAT_PRESENT=%s;", $2}; /last full capacity/ {printf "BAT_LASTFULL=%s;",$4};' -)
+
+ BAT_REMNG_WH=`echo "scale=1; a=($BAT_REMNG+50)/1000; print a" | bc -l`
+ BAT_RATE_W=`echo "scale=1; a=($BAT_RATE+50)/1000; print a" | bc -l`
+ BCSCRIPT="scale=0; a=(100*$BAT_REMNG / $BAT_LASTFULL); print a"
+ BAT_PCT=`echo $BCSCRIPT | bc -l`%
+
+ case $BAT_PRESENT in
+ no)
+ POWER_STR="AC, NO BATTERY"
+ ;;
+ yes)
+
+ case $BAT_CHGSTATE in
+ charged)
+ #on ac
+ AC_STATUS="ON AC"
+ TIME_REMNG="N/A"
+ POWER_STR="$AC_STATUS $BAT_CHGSTATE $BAT_PCT"
+ ;;
+ charging)
+ #on ac
+ AC_STATUS="ON AC"
+ BCSCRIPT="scale=1; a=(60*($BAT_LASTFULL - $BAT_REMNG) / $BAT_RATE); print a"
+ TIMETOFULL_MIN=`echo $BCSCRIPT | bc -l`
+ POWER_STR="$AC_STATUS $BAT_CHGSTATE $BAT_PCT C="$BAT_REMNG_WH"Wh Rate="$BAT_RATE_W"W TTF="$TIMETOFULL_MIN"min"
+ ;;
+ discharging)
+ AC_STATUS="ON BATT"
+ TIME_REMNG_MIN=`echo "scale=0; a=(60*$BAT_REMNG / $BAT_RATE); print a" | bc -l`
+ TIME_REMNG_HH=`echo "scale=0; a=($BAT_REMNG / $BAT_RATE); if (a<10) {print "0"; print a} else {print a}" | bc -l`
+
+ TIME_REMNG_MM=`echo "scale=0; a=($TIME_REMNG_MIN-60*$TIME_REMNG_HH); if (a<10) {print "0"; print a} else {print a}" | bc -l`
+ POWER_STR="$AC_STATUS $BAT_PCT C="$BAT_REMNG_WH"Wh P="$BAT_RATE_W"W R="$TIME_REMNG_HH":"$TIME_REMNG_MM
+ ;;
+ *)
+ POWER_STR=$BAT_CHGSTATE
+ ;;
+ esac
+
+ ;;
+ *)
+ POWER_STR="error"
+ ;;
+ esac
+
+ #scrotwm bar_print can't handle UTF-8 characters, such as degree symbol
+ #Core 0: +67.0°C (crit = +100.0°C)
+ eval $(sensors 2>/dev/null | sed s/[°+]//g | awk '/^Core 0/ {printf "CORE0TEMP=%s;", $3}; /^Core 1/ {printf "CORE1TEMP=%s;",$3}; /^fan1/ {printf "FANSPD=%s;",$2};' -)
+ TEMP_STR="Tcpu=$CORE0TEMP,$CORE1TEMP F=$FANSPD"
+
+ WLAN_ESSID=$(iwconfig wlan0 | awk -F "\"" '/wlan0/ { print $2 }')
+ eval $(cat /proc/net/wireless | sed s/[.]//g | awk '/wlan0/ {printf "WLAN_QULTY=%s; WLAN_SIGNL=%s; WLAN_NOISE=%s", $3,$4,$5};' -)
+ BCSCRIPT="scale=0;a=100*$WLAN_QULTY/70;print a"
+ WLAN_QPCT=`echo $BCSCRIPT | bc -l`
+ WLAN_POWER=`iwconfig 2>/dev/null| grep "Tx-Power"| awk {'print $4'}|sed s/Tx-Power=//`
+ WLAN_STR="$WLAN_ESSID: Q=$WLAN_QPCT% S/N="$WLAN_SIGNL"/"$WLAN_NOISE"dBm T="$WLAN_POWER"dBm"
+
+ CPUFREQ_STR=`echo "Freq:"$(cat /proc/cpuinfo | grep 'cpu MHz' | sed 's/.*: //g; s/\..*//g;')`
+ CPULOAD_STR="Load:$(uptime | sed 's/.*://; s/,//g')"
+
+ eval $(awk '/^MemTotal/ {printf "MTOT=%s;", $2}; /^MemFree/ {printf "MFREE=%s;",$2}' /proc/meminfo)
+ MUSED=$(( $MTOT - $MFREE ))
+ MUSEDPT=$(( ($MUSED * 100) / $MTOT ))
+ MEM_STR="Mem:${MUSEDPT}%"
+
+ echo -e "$POWER_STR $TEMP_STR $CPUFREQ_STR $CPULOAD_STR $MEM_STR $WLAN_STR"
+ #alternatively if you prefer a different date format
+ #DATE_STR=`date +"%H:%M %a %d %b`
+ #echo -e "$DATE_STR $POWER_STR $TEMP_STR $CPUFREQ_STR $CPULOAD_STR $MEM_STR $WLAN_STR"
+
+ sleep $SLEEP_SEC
+done
diff --git a/community/scummvm-tools/PKGBUILD b/community/scummvm-tools/PKGBUILD
new file mode 100644
index 000000000..b00fd1046
--- /dev/null
+++ b/community/scummvm-tools/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 58732 2011-11-18 08:41:40Z 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.4.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' 'mips64el')
+source=(http://downloads.sourceforge.net/sourceforge/scummvm/${pkgname}-${pkgver}.tar.gz)
+md5sums=('43cbf9f5c4939876cf4149dd59e68044')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ install -d ${pkgdir}/usr/bin
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ 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..eb6c882d1
--- /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' 'mips64el')
+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/sdcv/PKGBUILD b/community/sdcv/PKGBUILD
new file mode 100644
index 000000000..dd1d87971
--- /dev/null
+++ b/community/sdcv/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 57381 2011-10-26 16:44:58Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=sdcv
+pkgver=0.4.2
+pkgrel=6
+pkgdesc="StarDict Console Version"
+arch=('i686' 'x86_64')
+url="http://sdcv.sourceforge.net/"
+license=('GPL')
+depends=('glib2' 'readline' 'zlib')
+makedepends=('patch')
+provides=('stardict')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \
+ $pkgname-$pkgver-headers.patch)
+sha256sums=('a164f079e93986814ea2d39f3a49cf9d1b71b01aad908254457fe3d0ded9deb2'
+ '4746e32a6aaddf7744f373b539879598b48219a3b35f41ceb839f04c27921eb4')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np1 -i ${srcdir}/$pkgname-$pkgver-headers.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+
+#quick fix for x86_64
+ if [ "${CARCH}" == "x86_64" ]; then
+ sed -i 's|guint32 page_size|guint64 page_size|' src/lib/lib.cpp
+ fi
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/sdcv/sdcv-0.4.2-headers.patch b/community/sdcv/sdcv-0.4.2-headers.patch
new file mode 100644
index 000000000..9affec151
--- /dev/null
+++ b/community/sdcv/sdcv-0.4.2-headers.patch
@@ -0,0 +1,46 @@
+diff -ruN sdcv-0.4.2-orig/src/lib/lib.cpp sdcv-0.4.2/src/lib/lib.cpp
+--- sdcv-0.4.2-orig/src/lib/lib.cpp 2006-04-24 10:17:27.000000000 +0200
++++ sdcv-0.4.2/src/lib/lib.cpp 2009-12-19 21:15:37.000000000 +0100
+@@ -513,7 +513,7 @@
+ {
+ fseek(idxfile, wordoffset[page_idx], SEEK_SET);
+ guint32 page_size=wordoffset[page_idx+1]-wordoffset[page_idx];
+- fread(wordentry_buf, std::min(sizeof(wordentry_buf), page_size), 1, idxfile); //TODO: check returned values, deal with word entry that strlen>255.
++ fread(wordentry_buf, std::min(sizeof(wordentry_buf), (size_t)page_size), 1, idxfile); //TODO: check returned values, deal with word entry that strlen>255.
+ return wordentry_buf;
+ }
+
+diff -ruN sdcv-0.4.2-orig/src/libwrapper.cpp sdcv-0.4.2/src/libwrapper.cpp
+--- sdcv-0.4.2-orig/src/libwrapper.cpp 2006-04-24 12:40:29.000000000 +0200
++++ sdcv-0.4.2/src/libwrapper.cpp 2009-12-19 21:15:37.000000000 +0100
+@@ -24,6 +24,7 @@
+
+ #include <glib/gi18n.h>
+ #include <map>
++#include <cstring>
+
+ #include "utils.hpp"
+
+diff -ruN sdcv-0.4.2-orig/src/readline.cpp sdcv-0.4.2/src/readline.cpp
+--- sdcv-0.4.2-orig/src/readline.cpp 2005-12-07 23:07:23.000000000 +0100
++++ sdcv-0.4.2/src/readline.cpp 2009-12-19 21:15:37.000000000 +0100
+@@ -23,6 +23,7 @@
+ #endif
+
+ #include <cstdio>
++#include <cstdlib>
+ #ifdef WITH_READLINE
+ # include <readline/readline.h>
+ # include <readline/history.h>
+diff -ruN sdcv-0.4.2-orig/src/utils.cpp sdcv-0.4.2/src/utils.cpp
+--- sdcv-0.4.2-orig/src/utils.cpp 2006-04-24 11:03:47.000000000 +0200
++++ sdcv-0.4.2/src/utils.cpp 2009-12-19 21:15:37.000000000 +0100
+@@ -22,6 +22,8 @@
+ # include "config.h"
+ #endif
+
++#include <cstdio>
++#include <cstdlib>
+ #include <glib.h>
+ #include <glib/gi18n.h>
+
diff --git a/community/sdcv/sdcv.changelog b/community/sdcv/sdcv.changelog
new file mode 100644
index 000000000..f742d12c7
--- /dev/null
+++ b/community/sdcv/sdcv.changelog
@@ -0,0 +1,3 @@
+2011-10-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * sdcv 0.4.2-6
+ * moved to [community] with 206 votes
diff --git a/community/sdd/PKGBUILD b/community/sdd/PKGBUILD
new file mode 100644
index 000000000..12d3ba464
--- /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' 'mips64el')
+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/ser2net/PKGBUILD b/community/ser2net/PKGBUILD
new file mode 100644
index 000000000..1fc73b7e8
--- /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 'mips64el')
+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/setconf/PKGBUILD b/community/setconf/PKGBUILD
new file mode 100644
index 000000000..ba7b6d89a
--- /dev/null
+++ b/community/setconf/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59692 2011-11-29 12:22:12Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+pkgname=setconf
+pkgver=0.2
+pkgrel=8
+pkgdesc="A utility to easily change settings in Makefiles and other configuration files"
+arch=('x86_64' 'i686')
+url="http://setconf.roboticoverlords.org/"
+license=('GPL')
+depends=('pcre' 'gc')
+makedepends=('shedskin>=0.1.2')
+md5sums=('ccd0ca9527d8406d5393d77a6a56686b')
+source=("http://setconf.roboticoverlords.org/$pkgname-$pkgver.tbz2")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ shedskin "$pkgname.py"
+ make CPPFLAGS="-march=native -fomit-frame-pointer"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
+ install -Dm644 "$pkgname.1.gz" \
+ "$pkgdir/usr/share/man/man1/$pkgname.1.gz"
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/sfk/PKGBUILD b/community/sfk/PKGBUILD
new file mode 100644
index 000000000..3a6cb9e24
--- /dev/null
+++ b/community/sfk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 59548 2011-11-28 01:04:30Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Baumi <baumi@gmx.com>
+
+pkgname=sfk
+pkgver=1.6.4
+pkgrel=2
+pkgdesc='Swiss File Knife - A Command Line Tools Collection'
+arch=('i686' 'x86_64')
+url='http://stahlforce.com/dev/?tool=sfk'
+license=('custom: BSD')
+source=("http://downloads.sourceforge.net/swissfileknife/${pkgname}${pkgver//./}.zip")
+md5sums=('263df6a8e18f6ebb6032f3c048df0b6d')
+
+build() {
+ cd ${pkgname}${pkgver//./}
+ g++ $CXXFLAGS $LDFLAGS sfk.cpp sfknet.cpp patch.cpp inst.cpp -o sfk
+}
+
+package() {
+ cd ${pkgname}${pkgver//./}
+ install -D -m755 $pkgname "$pkgdir/usr/bin/$pkgname"
+ install -D -m444 bsd-license.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/sfml/PKGBUILD b/community/sfml/PKGBUILD
new file mode 100644
index 000000000..29a22b46e
--- /dev/null
+++ b/community/sfml/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 55899 2011-09-24 16:49:39Z stephane $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Ondrej Martinak <omartinak@gmail.com>
+
+pkgname=sfml
+
+_git=true
+
+if [[ "${_git}" = "true" ]]; then
+ pkgver=1.99.git20110917
+fi
+
+pkgrel=1
+pkgdesc='A simple, fast, cross-platform, and object-oriented multimedia API'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.sfml-dev.org/'
+license=('zlib')
+depends=('libsndfile' 'libxrandr' 'libjpeg' 'openal' 'glew' 'freetype2')
+makedepends=('git' 'mesa' 'cmake' 'doxygen')
+install=sfml.install
+
+_gitroot='https://github.com/LaurentGomila/SFML.git'
+_gitname='SFML'
+
+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
+ cd $_gitname
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ cp -r "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ mkdir build && cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .. \
+ -DBUILD_DOC=true \
+ -DBUILD_EXAMPLES=true
+ make
+ make doc
+}
+
+package() {
+ cd "$srcdir/$_gitname-build/build"
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 ../license.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ make clean
+}
+
diff --git a/community/sfml/sfml.install b/community/sfml/sfml.install
new file mode 100644
index 000000000..75f760be6
--- /dev/null
+++ b/community/sfml/sfml.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "To view the SFML samples, go to /usr/share/SFML/examples/ and run them individually"
+}
diff --git a/community/shake/PKGBUILD b/community/shake/PKGBUILD
new file mode 100644
index 000000000..93099b11d
--- /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' 'mips64el')
+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..ef72c4536
--- /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' 'mips64el')
+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..2336657b7
--- /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' 'mips64el')
+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..cf1bf70a9
--- /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' 'mips64el')
+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..51b020f1f
--- /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=2
+pkgdesc="A multi-purpose WAVE data processing and reporting utility"
+arch=('i686' 'x86_64' 'mips64el')
+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 "${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/shotwell/PKGBUILD b/community/shotwell/PKGBUILD
new file mode 100644
index 000000000..0e965efba
--- /dev/null
+++ b/community/shotwell/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 58472 2011-11-12 22:05:25Z lcarlier $
+# 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.11.6
+pkgrel=1
+pkgdesc="A digital photo organizer designed for the GNOME desktop environment"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://yorba.org/shotwell/"
+license=('LGPL2.1')
+depends=('gconf' 'libgee' 'libgphoto2' 'libunique' 'libwebkit' 'libgexiv2' 'libraw'
+ 'librsvg' 'json-glib' 'desktop-file-utils' 'dconf')
+makedepends=('intltool')
+# 'vala'
+install=shotwell.install
+source=("http://yorba.org/download/shotwell/0.11/shotwell-${pkgver}.tar.bz2"
+ "http://ftp.gnome.org/pub/gnome/sources/vala/0.12/vala-0.12.1.tar.bz2"
+ "fix-with-libraw-0.4.patch")
+md5sums=('bbbf2843eb98b6f0ef1dfcfb934e15cf'
+ 'bf35262cc611de447147d01cbac33767'
+ '488787b6d2cbc7348bc88348b78b6005')
+
+build() {
+ cd "${srcdir}/vala-0.12.1"
+ ./configure --prefix=$srcdir/vala --enable-vapigen
+ make
+ make install
+ export PATH=$srcdir/vala/bin:$PATH
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ../fix-with-libraw-0.4.patch
+
+ ./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
+ rm -f $pkgdir/usr/share/glib-2.0/schemas/gschemas.compiled
+}
diff --git a/community/shotwell/fix-with-libraw-0.4.patch b/community/shotwell/fix-with-libraw-0.4.patch
new file mode 100644
index 000000000..f6f021b61
--- /dev/null
+++ b/community/shotwell/fix-with-libraw-0.4.patch
@@ -0,0 +1,50 @@
+Seulement dans shotwell-0.11.5-fixed/misc: gschemas.compiled
+diff -ru shotwell-0.11.5/src/photos/GRaw.vala shotwell-0.11.5-fixed/src/photos/GRaw.vala
+--- shotwell-0.11.5/src/photos/GRaw.vala 2011-09-24 00:52:27.000000000 +0200
++++ shotwell-0.11.5-fixed/src/photos/GRaw.vala 2011-11-01 00:25:05.976289495 +0100
+@@ -163,9 +163,9 @@
+ proc = new LibRaw.Processor(options);
+ }
+
+- public void add_masked_borders_to_bitmap() {
+- proc.add_masked_borders_to_bitmap();
+- }
++// public void add_masked_borders_to_bitmap() {
++// proc.add_masked_borders_to_bitmap();
++// }
+
+ public void adjust_sizes_info_only() throws Exception {
+ throw_exception("adjust_sizes_info_only", proc.adjust_sizes_info_only());
+@@ -215,9 +215,9 @@
+ throw_exception("ppm_tiff_writer", proc.ppm_tiff_writer(filename));
+ }
+
+- public void rotate_fuji_raw() throws Exception {
+- throw_exception("rotate_fuji_raw", proc.rotate_fuji_raw());
+- }
++// public void rotate_fuji_raw() throws Exception {
++// throw_exception("rotate_fuji_raw", proc.rotate_fuji_raw());
++// }
+
+ public void thumb_writer(string filename) throws Exception {
+ throw_exception("thumb_writer", proc.thumb_writer(filename));
+@@ -262,7 +262,7 @@
+ // camera_profile
+ // bad_pixels
+ // dark_frame
+- output_params->filtering_mode = LibRaw.Filtering.AUTOMATIC;
++ // output_params->filtering_mode = LibRaw.Filtering.AUTOMATIC;
+ output_params->output_bps = 8;
+ // output_tiff
+ output_params->user_flip = GRaw.Flip.FROM_SOURCE;
+@@ -303,8 +303,8 @@
+ case LibRaw.Result.UNSUPPORTED_THUMBNAIL:
+ throw new Exception.UNSUPPORTED_THUMBNAIL(msg);
+
+- case LibRaw.Result.CANNOT_ADDMASK:
+- throw new Exception.CANNOT_ADDMASK(msg);
++// case LibRaw.Result.CANNOT_ADDMASK:
++// throw new Exception.CANNOT_ADDMASK(msg);
+
+ case LibRaw.Result.UNSUFFICIENT_MEMORY:
+ throw new Exception.OUT_OF_MEMORY(msg);
diff --git a/community/shotwell/shotwell.install b/community/shotwell/shotwell.install
new file mode 100644
index 000000000..bab8ecd29
--- /dev/null
+++ b/community/shotwell/shotwell.install
@@ -0,0 +1,17 @@
+pkgname=shotwell
+
+post_install() {
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+ update-desktop-database -q
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
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..d85a4b641
--- /dev/null
+++ b/community/shuffle/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49301 2011-06-14 09:58:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=shuffle
+pkgver=1.5
+pkgrel=3
+pkgdesc="Shuffles lines of input."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.w3.org/People/Bos/Shuffle/"
+license=('custom')
+depends=(glibc)
+makedepends=('gcc')
+source=(http://www.w3.org/People/Bos/Shuffle/shuffle.c
+ http://www.w3.org/People/Bos/Shuffle/shuffle.1
+ LICENSE)
+md5sums=('d337c7e4db93489e3a30ffc8f89ec363'
+ 'a352ff446a3c20f7b6390add7918f21d'
+ '9dafa5ef909b8a6db992bb8819d3832a')
+
+build() {
+ cd $srcdir
+ gcc -o shuffle shuffle.c
+}
+
+package() {
+ cd $srcdir
+ install -D -m 755 shuffle $pkgdir/usr/bin/shuffle
+ install -D -m 644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -D -m 644 shuffle.1 $pkgdir/usr/share/man/man1/shuffle.1
+}
diff --git a/community/siege/PKGBUILD b/community/siege/PKGBUILD
new file mode 100644
index 000000000..75396a1f8
--- /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' 'mips64el')
+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..b9f3f0e1a
--- /dev/null
+++ b/community/sigil/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 59836 2011-11-30 22:56:23Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
+
+pkgname=sigil
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="A WYSIWYG ebook editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/sigil/"
+license=('GPL3')
+depends=('qt')
+makedepends=('cmake')
+install=sigil.install
+source=("http://sigil.googlecode.com/files/Sigil-${pkgver}-Code.zip"
+ "${pkgname}.desktop")
+md5sums=('ce27976254236f8b11b787fd05be9acb'
+ 'fef6aa492af487ccccd6b133635cee5a')
+
+build() {
+ cd "${srcdir}"
+ 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 ..
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make install DESTDIR="${pkgdir}"
+
+ install -d -m 0755 "${pkgdir}"/usr/share/applications
+ install -m 0644 "${srcdir}"/${pkgname}.desktop "${pkgdir}"/usr/share/applications
+
+ 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
+ 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..4aa34ede2
--- /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' 'mips64el')
+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..900d8683e
--- /dev/null
+++ b/community/simgear/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59088 2011-11-21 09:41:13Z 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.4.0
+pkgrel=1
+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 'mips64el')
+depends=('glut' 'freealut' 'plib' 'openscenegraph')
+makedepends=('boost')
+license=("GPL")
+#url="http://www.simgear.org"
+url="https://gitorious.org/fg"
+options=('!makeflags')
+#source=("SimGear-$pkgver.tar.gz::https://gitorious.org/fg/simgear/archive-tarball/release/$pkgver")
+source=("http://mirrors.ibiblio.org/pub/mirrors/simgear/ftp/Source/simgear-$pkgver.tar.bz2")
+md5sums=('31f4ce7254a43229f050a8f86d6966ef')
+
+build() {
+ cd $srcdir/simgear-$pkgver
+ [ -x configure ] || ./autogen.sh
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/simgear-$pkgver
+ make DESTDIR=$pkgdir 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..e1edd93e9
--- /dev/null
+++ b/community/simh/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 59085 2011-11-21 09:31:01Z 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' 'mips64el')
+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 -lpcap -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..f1c053ce3
--- /dev/null
+++ b/community/simple-scan/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
+
+pkgname=simple-scan
+pkgver=3.2.1
+pkgrel=1
+pkgdesc='Simple scanning utility'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://launchpad.net/simple-scan'
+license=('GPL3')
+depends=('sane' 'dconf' 'gtk3' 'colord' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils' 'intltool')
+install=simple-scan.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('10fba94b60cd5159d54d3491f228ac9fe83ac0ab02b983d7cd8390aa26cf2ecc')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$srcdir/$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..5919c0b22
--- /dev/null
+++ b/community/simple-scan/simple-scan.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 3.1.3) < 0 )); then
+ usr/sbin/gconfpkg --uninstall simple-scan
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/sisctrl/PKGBUILD b/community/sisctrl/PKGBUILD
new file mode 100644
index 000000000..36379e068
--- /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 'mips64el')
+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..1356364d3
--- /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 'mips64el')
+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..120f51a3c
--- /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' 'mips64el')
+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..62a991564
--- /dev/null
+++ b/community/skrooge/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 59508 2011-11-27 13:44:23Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Ray Rashif <schiv@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: neuromante <lorenzo.nizzi.grifi@gmail.com>
+
+pkgname=skrooge
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="A personal finances manager for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://skrooge.org/"
+license=('GPL')
+depends=('kdebase-runtime' 'libofx' 'qca-ossl')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=("http://skrooge.org/files/$pkgname-$pkgver.tar.bz2")
+sha256sums=('6553a61a74bb4f5d0272fff4844e47d983fa38cd6af0481658f4d1e3150c6d62')
+
+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.changelog b/community/skrooge/skrooge.changelog
new file mode 100644
index 000000000..ce1768e34
--- /dev/null
+++ b/community/skrooge/skrooge.changelog
@@ -0,0 +1,2 @@
+2011-11-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * skrooge 1.1.1-1
diff --git a/community/skrooge/skrooge.install b/community/skrooge/skrooge.install
new file mode 100644
index 000000000..5cfbe649e
--- /dev/null
+++ b/community/skrooge/skrooge.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ kbuildsycoca4 &> /dev/null
+}
+
+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..5eb29e6a9
--- /dev/null
+++ b/community/sleuthkit/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 56657 2011-10-09 12:53:32Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=sleuthkit
+pkgver=3.2.3
+pkgrel=1
+pkgdesc='File system and media management forensic analysis tools'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.sleuthkit.org/sleuthkit'
+license=('GPL2' 'CPL' 'custom:"IBM Public Licence"')
+depends=('perl')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('ba5f63d7fd60d978de03777c72b1571004caa8dfe384f09757b6a8efa890ea62')
+
+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/sleuthkit/sleuthkit.changelog b/community/sleuthkit/sleuthkit.changelog
new file mode 100644
index 000000000..8931cc656
--- /dev/null
+++ b/community/sleuthkit/sleuthkit.changelog
@@ -0,0 +1,2 @@
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * sleuthkit 3.2.3-1
diff --git a/community/slimevolley/PKGBUILD b/community/slimevolley/PKGBUILD
new file mode 100644
index 000000000..9f49ec6bb
--- /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' 'mips64el')
+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..93a967095
--- /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' 'mips64el')
+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..2d338fabb
--- /dev/null
+++ b/community/slock/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59019 2011-11-20 20:12:50Z spupykin $
+# 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=('mips64el' 'i686' 'x86_64')
+url="http://tools.suckless.org/slock"
+license=('MIT')
+depends=('libxext')
+#source=("http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz")
+source=("slock-$pkgver.tar.bz2::http://hg.suckless.org/slock/archive/$_pkgver.tar.gz")
+md5sums=('7d22a7435324f7c879b6e87054a32309')
+
+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..0cfad4b25
--- /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' 'mips64el')
+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..3c9a6080d
--- /dev/null
+++ b/community/smalltalk/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 59718 2011-11-29 13:35:33Z stephane $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: mrshpot <mrshpot at gmail dot com>
+# Contributor: Michael Fellinger <m.fellinger@gmail.com>
+
+pkgname=smalltalk
+pkgver=3.2.4
+pkgrel=3
+pkgdesc='A free implementation of Smalltalk-80 by the GNU project'
+url='http://smalltalk.gnu.org/'
+license=('GPL' 'LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!libtool')
+
+depends=('gmp' 'libffi' 'libsigsegv' 'readline')
+makedepends=('gdbm' 'gtk2' 'sqlite3' 'tk' 'zip')
+
+source=("ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('a36a7c9beddca08dc492b500738efc82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/smalltalk \
+ --with-imagedir=/var/lib/smalltalk \
+ --enable-gtk=yes \
+ --with-system-libffi \
+ --with-system-libsigsegv \
+ --with-readline \
+ --with-tcl --with-tk \
+ --with-x --without-emacs
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+
+ # fix manpage symlink
+ rm -f $pkgdir/usr/share/man/man1/gst-reload.1
+ ln -s gst-load.1 $pkgdir/usr/share/man/man1/gst-reload.1
+}
diff --git a/community/smbnetfs/PKGBUILD b/community/smbnetfs/PKGBUILD
new file mode 100644
index 000000000..5f6554be9
--- /dev/null
+++ b/community/smbnetfs/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 58938 2011-11-20 14:35:52Z andrea $
+# 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' 'mips64el')
+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=(docs)
+source=(http://downloads.sourceforge.net/smbnetfs/$pkgname-$pkgver.tar.bz2 \
+ rc-smbnetfs \
+ conf-smbnetfs)
+md5sums=('66d1477ca981f5a07b4b21c6bdbdc442'
+ 'b6cff0ee75cafd739ad44216236b5e28'
+ '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..69c00d120
--- /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"
+
+ 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..7e0222034
--- /dev/null
+++ b/community/smc/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 59966 2011-12-02 21:00:57Z ibiru $
+# Maintainer:
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=smc
+pkgver=1.9
+pkgrel=13
+pkgdesc="Secret Maryo Chronicles"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.secretmaryo.org/"
+license=('GPL3')
+depends=('sdl_image' 'sdl_ttf' 'sdl_mixer' 'cegui' 'boost-libs' 'smc-data')
+makedepends=('autoconf' 'automake' 'boost')
+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..4bb48b41b
--- /dev/null
+++ b/community/smem/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59733 2011-11-30 03:48:48Z 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=2
+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' 'mips64el')
+source=("http://www.selenic.com/smem/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5620f20cae4d4f0e8eb33bdc2736b0f3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i '1s/python$/python2/' smem
+ make 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..cf9ef1e77
--- /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' 'mips64el')
+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..b92bcc3cf
--- /dev/null
+++ b/community/snort/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 57095 2011-10-21 06:30:14Z 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.1.2
+pkgrel=1
+pkgdesc='A lightweight network intrusion detection system.'
+arch=('i686' 'x86_64' 'mips64el')
+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/1207'
+ 'snort'
+ 'snort.conf.d')
+md5sums=('9e94f20b934566469c239966e1b41eba'
+ '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..a6bbb6222
--- /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 'mips64el')
+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..8d7e48609
--- /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' 'mips64el')
+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..fe0e9511f
--- /dev/null
+++ b/community/solfege/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 57439 2011-10-27 19:55:33Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: sickhate <sickhate@tux-linux.net>
+
+# TODO:
+# bring in pyalsa, csound, mma
+pkgname=solfege
+pkgver=3.20.4
+pkgrel=1
+pkgdesc="Music education and ear training software"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.solfege.org/"
+license=('GPL3')
+depends=('pygtk' 'libgtkhtml')
+makedepends=('ghostscript' 'gnome-doc-utils' 'librsvg' 'libxslt'
+ 'swig' 'texinfo' 'txt2man')
+optdepends=('timidity++: or any MIDI player & MIDI-WAV converter'
+ 'mpg123: or any MP3 player'
+ 'lame: or any WAV-MP3 converter'
+ 'vorbis-tools: or any OGG player & WAV-OGG converter'
+ 'lilypond: for generating print-outs & score sheets'
+ 'texlive-bin: use LaTeX to replace HTML reports with DVI')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('3a1914158ad218ad5b119ee4f719b567')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python2 fix for entire build
+ export PYTHON=/usr/bin/python2
+
+ # python2 fix for rogue Makefile
+ sed -i 's/shell python/shell python2/g' help/Makefile
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python2 fix for runtime
+ for i in $(find "$pkgdir" -name '*.py'); do
+ sed -i 's:^#!.*bin/python$:#!/usr/bin/python2:' "$i"
+ sed -i 's:^#!.*bin/env python$:#!/usr/bin/env python2:' "$i"
+ done
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/soundkonverter/PKGBUILD b/community/soundkonverter/PKGBUILD
new file mode 100644
index 000000000..113f78180
--- /dev/null
+++ b/community/soundkonverter/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 58635 2011-11-16 22:07:30Z andrea $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=soundkonverter
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Front-end to various audio converters"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ )
+install=$pkgname.install
+source=("https://gitorious.org/soundkonverter/soundkonverter/blobs/raw/180e777aa3d91456ac386868a1e324ca28649e2e/release/${pkgname}-${pkgver}.tar.gz")
+md5sums=('e4c4ccf1f7f93f758c3d440f67f61a64')
+
+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/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..4bbf779d9
--- /dev/null
+++ b/community/spawn-fcgi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 57827 2011-11-03 10:14:07Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Bull Schaefer <aaron@elasticdog.com>
+# Contributor: Felix Hanley <felix@seconddrawer.com.au>
+
+pkgname=spawn-fcgi
+pkgver=1.6.3
+pkgrel=2
+pkgdesc='A FastCGI process manager for web applications'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://redmine.lighttpd.net/projects/spawn-fcgi/'
+license=('BSD')
+depends=('glibc')
+source=("http://www.lighttpd.net/download/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('787ed2f88d2204bf1fe4fbd6e509d1d7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 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..1532b9514
--- /dev/null
+++ b/community/speed-dreams/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 56288 2011-10-04 20:51:38Z 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=2.0.0b1
+_pkgver=2.0.0-b1-r3937
+pkgrel=1
+pkgdesc="A racing simulator with rich graphics and physics"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://speed-dreams.sourceforge.net/"
+license=('GPL2')
+depends=('sdl' 'freealut' 'freeglut' 'libpng' 'libxi' 'libxmu' 'libxrandr' 'plib>=1.8.3' 'libjpeg' 'zlib' 'enet' 'speed-dreams-data')
+makedepends=('cmake' 'p7zip')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${_pkgver}-src.tar.7z"
+ "${pkgname}.desktop")
+md5sums=('5299fe23aec3641827039ae3c69de460'
+ '6b45e9c40984ebb79a1dfaddbfabde92')
+
+build() {
+ 7z x ${pkgname}-${_pkgver}-src.tar.7z
+ tar xf ${pkgname}-${_pkgver}-src.tar
+
+ cd "${pkgname}-${_pkgver}-src"
+
+ cmake . \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSD_BINDIR=/usr/bin \
+ -DSD_DATADIR=/usr/share/speed-dreams-2 \
+ -DSD_LIBDIR=/usr/lib/speed-dreams-2 \
+ -DOPTION_OFFICIAL_ONLY:BOOL=ON
+
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${_pkgver}-src"
+
+ make DESTDIR="${pkgdir}/" install
+
+ rm -r "${pkgdir}/usr/share"
+
+ install -Dm644 "data/data/icons/icon.png" "${pkgdir}/usr/share/pixmaps/speed-dreams.png"
+ install -Dm644 "data/data/icons/icon.svg" "${pkgdir}/usr/share/pixmaps/speed-dreams.svg"
+ install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/speed-dreams.desktop"
+
+ mkdir -p "${pkgdir}/usr/share/doc/${pkgname}"
+ cp -r doc/* "${pkgdir}/usr/share/doc/${pkgname}/"
+ rm -r "${pkgdir}/usr/share/doc/${pkgname}/man"
+
+ mkdir -p "${pkgdir}/usr/share/man/man6/${pkgname}"
+ cp doc/man/* "${pkgdir}/usr/share/man/man6/${pkgname}"
+
+ # Symlink for backwards compatibility
+ cd "${pkgdir}/usr/bin"
+ ln -s speed-dreams-2 speed-dreams
+}
+
+# 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..f04b71791
--- /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=speed-dreams-2
+Icon=speed-dreams.svg
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Application;Game;
diff --git a/community/splint/PKGBUILD b/community/splint/PKGBUILD
new file mode 100644
index 000000000..bc31421a9
--- /dev/null
+++ b/community/splint/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 55573 2011-09-14 10:41:16Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=splint
+pkgver=3.1.2
+pkgrel=3
+pkgdesc="A tool for statically checking C programs for security vulnerabilities and coding mistakes"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.splint.org/"
+license=('GPL')
+depends=('glibc')
+source=("http://www.splint.org/downloads/${pkgname}-${pkgver}.src.tgz"
+ 'splint.sh')
+md5sums=('25f47d70bd9c8bdddf6b03de5949c4fd'
+ '0efb6341b384dc44590989fe3678c96c')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m755 "${srcdir}"/splint.sh "${pkgdir}"/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..e2962a372
--- /dev/null
+++ b/community/splix/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 50983 2011-07-04 10:54:47Z spupykin $
+# 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=10
+pkgdesc="CUPS drivers for SPL (Samsung Printer Language) printers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://splix.ap2c.org/"
+license=('GPL')
+depends=('libcups' 'gcc-libs' 'ghostscript>=9.02')
+makedepends=('libcups' 'jbigkit' 'krb5')
+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
+ ln -s gstoraster $pkgdir/usr/lib/cups/filter/pstoraster
+}
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..1f8d2451b
--- /dev/null
+++ b/community/spring/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 60207 2011-12-07 16:26:35Z 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.84.0
+_pkgver=84.0
+pkgrel=2
+pkgdesc='A free 3D real-time-strategy (RTS) game engine'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://springrts.com/"
+license=('GPL')
+depends=('openal' 'glew' 'boost-libs' 'freetype2' 'devil' 'libvorbis' 'sdl')
+makedepends=('boost' 'cmake' 'zip' 'lzma-utils' 'p7zip' 'python2')
+optdepends=('python2: python-based bots'
+ 'java-runtime: java-based bots')
+source=(http://downloads.sourceforge.net/sourceforge/springrts/${pkgname}_${_pkgver}_src.tar.lzma)
+md5sums=('2aae395c055adceec5326fb3faec92ba')
+
+build() {
+ bsdtar -xf ${pkgname}_${_pkgver}_src.tar.lzma
+
+ cd spring_${_pkgver}
+
+ sed -i "s/FE_DFL_ENV/FE_DFL_ENV_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp rts/lib/streflop/SMath.cpp
+ sed -i "s/FE_INVALID/FE_INVALID_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_DENORMAL/FE_DENORMAL_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_DIVBYZERO/FE_DIVBYZERO_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_OVERFLOW/FE_OVERFLOW_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_UNDERFLOW/FE_UNDERFLOW_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_INEXACT/FE_INEXACT_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_ALL_EXCEPT/FE_ALL_EXCEPT_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_DOWNWARD/FE_DOWNWARD_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_TONEAREST/FE_TONEAREST_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_TOWARDZERO/FE_TOWARDZERO_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/FE_UPWARD/FE_UPWARD_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+ sed -i "s/feclearexcept/feclearexcept_/g" rts/lib/streflop/FPUSettings.h rts/System/Sync/FPUCheck.cpp rts/System/myMath.cpp rts/Lua/LuaParser.cpp
+
+ 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..cf40a1438
--- /dev/null
+++ b/community/springlobby/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 59970 2011-12-02 21:01:10Z ibiru $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: DuGi <dugi@irc.pl>
+
+pkgname=springlobby
+pkgver=0.139
+pkgrel=3
+pkgdesc="A free cross-platform lobby client for the Spring RTS project."
+arch=('i686' 'x86_64' 'mips64el')
+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=('48c572117338277068c67ec1ff7d514f'
+ '45f8b59d033931d02e734fe3bd7777dd'
+ '1f388187539aeb0358b51995e26ed890')
+
+build() {
+ cd $srcdir/${pkgname}-$pkgver
+
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ 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..b5d55b427
--- /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' 'mips64el')
+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..d1f7f1194
--- /dev/null
+++ b/community/sqlitebrowser/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 59079 2011-11-21 09:21:06Z spupykin $
+# 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' 'mips64el')
+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
+ sed -i 's|: name( 0 ) { }|: name( ) { }|' sqlitebrowser/sqlitedb.h
+ 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..83ca34614
--- /dev/null
+++ b/community/sqliteman/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58342 2011-11-12 08:23:16Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Roman Porizka <artee@beer.cz>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=sqliteman
+pkgver=1.2.2
+pkgrel=5
+pkgdesc="The best developer's and/or admin's GUI tool for Sqlite3 in the world"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sqliteman.sf.net"
+license=('GPL')
+depends=('qscintilla')
+makedepends=('cmake')
+install=sqliteman.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5ecdf710e23606e1b924f740ea69306d')
+
+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/sqliteman/sqliteman.install b/community/sqliteman/sqliteman.install
new file mode 100644
index 000000000..ce8f7514f
--- /dev/null
+++ b/community/sqliteman/sqliteman.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/community/squashfs-tools/PKGBUILD b/community/squashfs-tools/PKGBUILD
new file mode 100644
index 000000000..5ee766ced
--- /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' 'mips64el')
+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..405321d03
--- /dev/null
+++ b/community/sshguard/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 55676 2011-09-17 17:07:50Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=sshguard
+pkgver=1.5
+pkgrel=3
+pkgdesc="brute force detector for SSH, Exim, VSFTPD and more. Blocks by ip with iptables"
+arch=('i686' 'x86_64' 'mips64el')
+#url="http://sourceforge.net/projects/sshguard/"
+url="http://www.sshguard.net/"
+license=('GPL')
+depends=('iptables')
+options=(zipman)
+install=sshguard.install
+source=("http://downloads.sourceforge.net/sourceforge/sshguard/sshguard-$pkgver.tar.bz2"
+ sshguard.rc
+ sshguard.conf.d)
+md5sums=('11b9f47f9051e25bdfe84a365c961ec1'
+ '07bffbbfbf452d09cda10a1bab8cc03b'
+ '1dc6604975d3cd51321a8ad7cd53947c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-firewall=iptables
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ strings src/sshguard | grep -E "^`which iptables`[[:space:]]" >/dev/null
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+ install -Dm0755 $srcdir/sshguard.rc $pkgdir/etc/rc.d/sshguard
+ install -Dm0644 $srcdir/sshguard.conf.d $pkgdir/etc/conf.d/sshguard
+}
diff --git a/community/sshguard/sshguard.conf.d b/community/sshguard/sshguard.conf.d
new file mode 100644
index 000000000..8fa351a19
--- /dev/null
+++ b/community/sshguard/sshguard.conf.d
@@ -0,0 +1,4 @@
+#
+# Arguments to be passed to sshguard
+#
+SSHGUARD_ARGS=""
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..dbd95c9ea
--- /dev/null
+++ b/community/sshguard/sshguard.rc
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/sshguard ] && . /etc/conf.d/sshguard
+
+case "$1" in
+ start)
+ stat_busy "Starting SSHGuard"
+ /usr/sbin/sshguard -l /var/log/auth.log -b /var/db/sshguard/blacklist.db ${SSHGUARD_ARGS} &> /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/sshpass/PKGBUILD b/community/sshpass/PKGBUILD
new file mode 100644
index 000000000..3f18e8e76
--- /dev/null
+++ b/community/sshpass/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59631 2011-11-28 22:18:13Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor: Sebastien Vasey sebastien dot vasey at gmail dot com
+
+pkgname=sshpass
+pkgver=1.05
+pkgrel=1
+pkgdesc='Fool ssh into accepting an interactive password non-interactively'
+arch=('i686' 'x86_64')
+url='http://sourceforge.net/projects/sshpass/'
+license=('GPL')
+depends=('openssh')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('c52d65fdee0712af6f77eb2b60974ac7')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/sslh/PKGBUILD b/community/sslh/PKGBUILD
new file mode 100644
index 000000000..2f882aa11
--- /dev/null
+++ b/community/sslh/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Le_suisse <lesuisse.dev+aur at gmail dot com>
+# Contributor: Jason Rodriguez <jason-aur@catloaf.net>
+
+pkgname=sslh
+pkgver=1.10
+pkgrel=5
+pkgdesc='SSL/SSH/OpenVPN/XMPP/tinc port multiplexer'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.rutschle.net/tech/sslh.shtml'
+license=('GPL2')
+backup=('etc/conf.d/sslh')
+source=("http://www.rutschle.net/tech/${pkgname}-${pkgver}.tar.gz"
+ 'sslh.rc'
+ 'sslh.conf')
+md5sums=('bc34e9a4770d634633e70589c72708cc'
+ '0680f09267c33205acf16ac6d4adf926'
+ '808199410bd6ab67421bf3544f805d1a')
+
+build() {
+ cd $pkgname-$pkgver
+ # fix archlinux path in manpage
+ sed -i -e "s/init.d/rc.d/" sslh.pod
+ sed -i -e "s+/etc/default+/etc/conf.d+" sslh.pod
+ make
+}
+
+package() {
+ install -D -m 755 sslh.rc "${pkgdir}/etc/rc.d/sslh"
+ install -D -m 644 sslh.conf "${pkgdir}/etc/conf.d/sslh"
+ cd $pkgname-$pkgver
+ make PREFIX="$pkgdir/usr" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/sslh/sslh.conf b/community/sslh/sslh.conf
new file mode 100644
index 000000000..eb79e7c51
--- /dev/null
+++ b/community/sslh/sslh.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+DAEMON_OPTS='-p 192.168.0.1:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 -u nobody -P /var/lock/sslh.lock'
diff --git a/community/sslh/sslh.rc b/community/sslh/sslh.rc
new file mode 100644
index 000000000..05b03bc3e
--- /dev/null
+++ b/community/sslh/sslh.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+NAME=sslh
+DAEMON=/usr/sbin/sslh
+PID=$(pidof -o %PPID $DAEMON)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping $NAME daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh noet:
diff --git a/community/stalonetray/PKGBUILD b/community/stalonetray/PKGBUILD
new file mode 100644
index 000000000..51a4eaf95
--- /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' 'mips64el')
+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/start-stop-daemon/PKGBUILD b/community/start-stop-daemon/PKGBUILD
new file mode 100644
index 000000000..b469afe43
--- /dev/null
+++ b/community/start-stop-daemon/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Soup <soup a.t soultrap d.o.t n.e.t>
+# Contributor: Vladimir Koshelenko <koshelenko@rndavia.ru>
+
+pkgname=start-stop-daemon
+pkgver=1.15.8.11
+pkgrel=1
+pkgdesc='Start and stop system daemon programs'
+arch=('i686' 'x86_64')
+license=('GPL2')
+url='http://packages.qa.debian.org/d/dpkg.html'
+source=("http://ftp.debian.org/debian/pool/main/d/dpkg/dpkg_$pkgver.tar.bz2")
+md5sums=('58a1a3ab86ab3220e469cb75f6fb6d7c')
+
+build() {
+ cd dpkg-$pkgver
+ ./configure --without-dselect --without-update-alternatives --without-install-info
+ (cd lib && make)
+ cd utils && make
+}
+
+package() {
+ cd dpkg-$pkgver
+ install -D -m 755 utils/start-stop-daemon "$pkgdir/usr/bin/start-stop-daemon"
+ install -D -m 644 man/start-stop-daemon.8 "$pkgdir/usr/share/man/man8/start-stop-daemon.8"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
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..26e76cdbd
--- /dev/null
+++ b/community/steghide/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=steghide
+pkgver=0.5.1
+pkgrel=5
+pkgdesc='Embeds a message in a file by replacing some of the least significant bits.'
+arch=('i686' 'x86_64' 'mips64el')
+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 "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 < ../buildsystem.patch
+
+ # this patch courtesy gentoo bug tracker #178134
+ patch -Np1 -i ../gcc-4.2.patch
+ patch -Np1 -i ../steghide-climits.patch
+
+ # touch files needed by GNU Autotools
+ touch NEWS AUTHORS ChangeLog
+
+ autoreconf -i
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..2bf1dda14
--- /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' 'mips64el')
+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..ea4e904e3
--- /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' 'mips64el')
+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..6f906779a
--- /dev/null
+++ b/community/stone-soup/PKGBUILD
@@ -0,0 +1,65 @@
+# Maintainer: Jakob Gruber <jakob.gruber@gmail.com>
+
+pkgname=stone-soup
+pkgver=0.9.1
+pkgrel=1
+pkgdesc='An open-source, single-player, role-playing roguelike game of exploration and treasure-hunting'
+arch=('i686' 'x86_64' 'mips64el')
+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=('b9befb8177618d943295546c3d1e1d78'
+ 'afdacb4c39342e75674efb88eeb3da21')
+
+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="~/.crawl/" \
+ 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="~/.crawl/" \
+ 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..f76343515
--- /dev/null
+++ b/community/stone-soup/stone-soup.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Dungeon 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;AdventureGame
+
diff --git a/community/stone-soup/stone-soup.install b/community/stone-soup/stone-soup.install
new file mode 100644
index 000000000..2320123e2
--- /dev/null
+++ b/community/stone-soup/stone-soup.install
@@ -0,0 +1,11 @@
+post_upgrade() {
+
+ # return if old pkgver >= 0.9.0-2
+ [[ $(vercmp $2 0.9.0-2) -ge 0 ]] && return
+
+ echo "---------------------------------------------------------------------
+ stone-soup saves have moved to ~/.crawl.
+ If you want to keep your old saves, move ~/.stone-soup to
+ ~/.crawl.
+---------------------------------------------------------------------"
+}
diff --git a/community/stormbaancoureur/PKGBUILD b/community/stormbaancoureur/PKGBUILD
new file mode 100644
index 000000000..e3b15df2c
--- /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' 'mips64el')
+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/stow/PKGBUILD b/community/stow/PKGBUILD
new file mode 100644
index 000000000..c362a08d0
--- /dev/null
+++ b/community/stow/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Chris Brannon <cmbrannon79@gmail.com>
+
+pkgname=stow
+pkgver=2.1.0
+pkgrel=1
+pkgdesc='GNU Stow is a program for managing the installation of software packages'
+url='http://www.gnu.org/software/stow/'
+arch=('i686' 'x86_64')
+source=("ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz")
+license=('GPL2')
+md5sums=('5526fdb8c76d0aee35eb304d7f55d2f6')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/stress/PKGBUILD b/community/stress/PKGBUILD
new file mode 100644
index 000000000..7c6340f2f
--- /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' 'mips64el')
+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..6f228be5b
--- /dev/null
+++ b/community/stunnel/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 60289 2011-12-08 23:55:42Z lfleischer $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+
+pkgname=stunnel
+pkgver=4.50
+pkgrel=1
+pkgdesc="A program that allows you to encrypt arbitrary TCP connections inside SSL"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.stunnel.org"
+license=('GPL')
+depends=('openssl')
+install=$pkgname.install
+options=('!libtool')
+source=("ftp://ftp.stunnel.org/stunnel/$pkgname-$pkgver.tar.gz"{,.asc}
+ 'Makefile.patch'
+ 'stunnel.rc.d')
+md5sums=('d68b4565294496a8bdf23c728a679f53'
+ 'ea9e85daef0cc96ce21649901b3514f7'
+ '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 \
+ --disable-libwrap
+
+ 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 -Dm644 tools/stunnel.cnf "$pkgdir/etc/stunnel/stunnel.cnf"
+ 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"
+}
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..e0d167b0d
--- /dev/null
+++ b/community/subtitleeditor/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 55853 2011-09-23 20:07:37Z lcarlier $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=subtitleeditor
+pkgver=0.39.0
+pkgrel=1
+pkgdesc="A GTK+2 tool to edit subtitles for GNU/Linux/*BSD"
+arch=('i686' 'x86_64' 'mips64el')
+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.39/$pkgname-$pkgver.tar.gz
+ fix-taking-address-of-temporary-error.patch)
+md5sums=('17666e652edd27abfd3104a82385f6a8'
+ '13e4fde005a9017da9fd24a5c2b928ed')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # fix building with gcc-4.6.0, taken from upstream
+ patch -Np1 -i "../fix-taking-address-of-temporary-error.patch"
+
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/subtitleeditor/fix-taking-address-of-temporary-error.patch b/community/subtitleeditor/fix-taking-address-of-temporary-error.patch
new file mode 100644
index 000000000..a35746d62
--- /dev/null
+++ b/community/subtitleeditor/fix-taking-address-of-temporary-error.patch
@@ -0,0 +1,56 @@
+--- trunk/plugins/subtitleformats/sami/sami.cc 2011/06/18 08:06:45 772
++++ trunk/plugins/subtitleformats/sami/sami.cc 2011/07/02 13:01:33 777
+@@ -155,7 +155,7 @@
+ int state = 0;
+ Glib::ustring line;
+ Glib::ustring text;
+- Subtitle* curSt;
++ Subtitle curSt;
+ char tmptext[MAXBUF+1] = "";
+ char *p = NULL, *q = NULL;
+ if (!file.getline(line))
+@@ -174,8 +174,8 @@
+ start_sync = utility::string_to_int(inptr + 6);
+
+ // Get a line from the current subtitle on memory
+- curSt = &subtitles.append();
+- curSt->set_start(start_sync);
++ curSt = subtitles.append();
++ curSt.set_start(start_sync);
+
+ state = SAMI_STATE_SYNC_START;
+ continue;
+@@ -239,14 +239,14 @@
+ // Now we are sure that this line is the end sync.
+
+ end_sync = utility::string_to_int(q + 6);
+- curSt->set_end(end_sync);
++ curSt.set_end(end_sync);
+
+ *p = '\0';
+ trail_space(tmptext);
+
+ // finalize the end sync of current line
+ if (tmptext[0] != '\0')
+- curSt->set_text(tmptext);
++ curSt.set_text(tmptext);
+
+ // an important check if this is end sync.
+ // Is there any delimiter "&nbsp;" in this line?
+@@ -276,14 +276,14 @@
+ else
+ {
+ end_sync = SAMISYNC_MAXVAL;
+- curSt->set_end(end_sync);
++ curSt.set_end(end_sync);
+
+ *p = '\0';
+ trail_space(tmptext);
+
+ // finalize the end sync of current line
+ if (tmptext[0] != '\0')
+- curSt->set_text(tmptext);
++ curSt.set_text(tmptext);
+
+ state = SAMI_STATE_FORCE_QUIT;
+ break;
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..53211f509
--- /dev/null
+++ b/community/subtle/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 58177 2011-11-08 07:15: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.10.3008
+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" 'mips64el')
+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")
+install=subtle.install
+source=(http://subforge.org/attachments/download/75/$pkgname-$pkgver-nu.tbz2)
+md5sums=('10961e02f45a7ce9fc7ca5b11360f001')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver-nu"
+ rake destdir=$pkgdir install
+}
diff --git a/community/subtle/subtle.install b/community/subtle/subtle.install
new file mode 100644
index 000000000..363d963c5
--- /dev/null
+++ b/community/subtle/subtle.install
@@ -0,0 +1,11 @@
+post_upgrade() {
+ echo "ATTENTION:"
+ echo "This release of subtle (0.10.3008) includes awesome changes that might break your config, so please check http://subforge.org/projects/subtle and enjoy the new features"
+ echo ""
+ echo "In order to use sur you have to install the following dependencies: curb and minitar with"
+ echo "You can use this gem command: "
+ echo " gem install curb minitar"
+ echo ""
+ echo "If you have subtles on your system remember to upgrade them doing:"
+ echo " sur upgrade "
+}
diff --git a/community/sunpinyin/PKGBUILD b/community/sunpinyin/PKGBUILD
new file mode 100644
index 000000000..28943e362
--- /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' 'mips64el')
+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..a265ffac3
--- /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' 'mips64el')
+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..563f2e415
--- /dev/null
+++ b/community/supertux/PKGBUILD
@@ -0,0 +1,31 @@
+# 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=4
+pkgdesc="A classic 2D jump'n run sidescroller game in a style similar to the original SuperMario games"
+arch=('i686' 'x86_64' 'mips64el')
+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}
+
+ sed -i '1i#include <cstddef>' src/supertux/screen_manager.hpp
+ sed -i '/types\.h/d' src/addon/addon_manager.cpp
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D INSTALL_SUBDIR_BIN=bin .
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
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..dcb29d348
--- /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' 'mips64el')
+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..d6f3420e6
--- /dev/null
+++ b/community/surf/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 54600 2011-08-20 20:14:06Z 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=3
+pkgdesc="A simple web browser based on WebKit/GTK+."
+arch=('i686' 'x86_64' 'mips64el')
+url='http://surf.suckless.org/'
+license=('MIT')
+depends=('libwebkit' 'xorg-xprop')
+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..c11c1cd76
--- /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 'mips64el')
+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..5dbf41f29
--- /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' 'mips64el')
+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..6ea5e45ba
--- /dev/null
+++ b/community/swi-prolog/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=swi-prolog
+pkgver=5.10.5
+pkgrel=2
+pkgdesc='Prolog environment'
+arch=('i686' 'x86_64' 'mips64el')
+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=('1ca45eddd3590fb525085761e75a4ebd')
+
+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
+}
+
+check() {
+ cd pl-${pkgver}
+
+ make check || true
+}
+
+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..950c35862
--- /dev/null
+++ b/community/sword/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 60193 2011-12-07 12:16:33Z arodseth $
+# Maintainer: Alexander Rødseth
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: TripleE <eric1548@yahoo.com>
+pkgname=sword
+pkgver=1.6.2
+pkgrel=6
+pkgdesc="Libraries for Bible programs"
+arch=('x86_64' 'i686' 'mips64el')
+url="http://www.crosswire.org/sword/"
+license=('GPL')
+depends=('curl' 'clucene' 'swig')
+makedepends=('cmake')
+backup=('etc/sword.conf')
+source=("http://www.crosswire.org/ftpmirror/pub/$pkgname/source/v1.6/$pkgname-$pkgver.tar.gz"
+ curl.patch)
+md5sums=('a7dc4456e20e915fec46d774b690e305'
+ 'e84a226ce3697af33b9fdd9a22884a2a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i ../curl.patch
+
+ mkdir ../build
+ cd ../build
+
+ cmake "../$pkgname-$pkgver" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir/usr/lib/sword"
+ mv "$pkgdir"/usr/lib/1.6.2_icu_4.8* "$pkgdir/usr/lib/sword/"
+
+ cd "$srcdir/$pkgname-$pkgver/locales.d/"
+ for file in *.conf; do
+ install -Dm644 "$file" "$pkgdir/usr/share/sword/locales.d/$file"
+ done
+
+ cd ../include
+ install -d "$pkgdir/usr/include/sword"
+ install -Dm644 canon_{catholic{,2},synodalp}.h "$pkgdir/usr/include/sword"
+
+ cd ../samples
+ install -Dm644 mods.d/globals.conf "$pkgdir/usr/share/sword/mods.d/globals.conf"
+ install -Dm644 recommended/sword.conf "$pkgdir/etc/sword.conf"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/sword/curl.patch b/community/sword/curl.patch
new file mode 100644
index 000000000..63fd4433c
--- /dev/null
+++ b/community/sword/curl.patch
@@ -0,0 +1,22 @@
+diff -Naur sword-1.6.2.orig/src/mgr/curlftpt.cpp sword-1.6.2.new/src/mgr/curlftpt.cpp
+--- sword-1.6.2.orig/src/mgr/curlftpt.cpp 2011-07-27 00:41:40.000000000 +0200
++++ sword-1.6.2.new/src/mgr/curlftpt.cpp 2011-07-27 00:42:05.000000000 +0200
+@@ -26,7 +26,6 @@
+ #include <fcntl.h>
+
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+
+ #include <swlog.h>
+diff -Naur sword-1.6.2.orig/src/mgr/curlhttpt.cpp sword-1.6.2.new/src/mgr/curlhttpt.cpp
+--- sword-1.6.2.orig/src/mgr/curlhttpt.cpp 2011-07-27 00:41:40.000000000 +0200
++++ sword-1.6.2.new/src/mgr/curlhttpt.cpp 2011-07-27 00:42:45.000000000 +0200
+@@ -25,7 +25,6 @@
+ #include <cctype>
+
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+
+ #include <swlog.h>
diff --git a/community/sxiv/PKGBUILD b/community/sxiv/PKGBUILD
new file mode 100644
index 000000000..9f4eec24e
--- /dev/null
+++ b/community/sxiv/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Bert Muennich <muennich at informatik.hu-berlin.de>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=sxiv
+pkgver=1.0
+pkgrel=1
+pkgdesc='simple x image viewer'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+install=sxiv.install
+url='https://github.com/muennich/sxiv'
+depends=('libx11' 'xproto' 'imlib2' 'desktop-file-utils')
+source=("https://github.com/downloads/muennich/sxiv/sxiv-${pkgver}.tar.gz"
+ 'sxiv.desktop'
+ 'config.h')
+md5sums=('c887e0af1e4d5a101b285a46d288c419'
+ '1dda85ff6bed4de337f8fb303075ed11'
+ '78c71ef924095d7d6fb75222047de0bd')
+
+build() {
+ cd "sxiv-${pkgver}"
+
+ cp "$srcdir/config.h" .
+ make
+}
+
+package() {
+ cd "sxiv-${pkgver}"
+
+ make PREFIX="${pkgdir}/usr" install
+ install -D -m644 ${srcdir}/sxiv.desktop \
+ ${pkgdir}/usr/share/applications/sxiv.desktop
+}
diff --git a/community/sxiv/config.h b/community/sxiv/config.h
new file mode 100644
index 000000000..777cb805a
--- /dev/null
+++ b/community/sxiv/config.h
@@ -0,0 +1,158 @@
+#ifdef _FEATURE_CONFIG
+
+/* auto-orientate jpeg files according to their exif tags?
+ * (requires libexif [-lexif] to be installed)
+ */
+#define EXIF_SUPPORT 0
+/* load all frames from gif files and support gif animations?
+ * (requires giflib [-lgif] to be installed)
+ */
+#define GIF_SUPPORT 0
+
+#endif
+#ifdef _WINDOW_CONFIG
+
+/* default window dimensions (overwritten via -g option): */
+enum {
+ WIN_WIDTH = 800,
+ WIN_HEIGHT = 600
+};
+
+/* default color for window background: */
+static const char * const BG_COLOR = "#777777";
+/* default color for thumbnail selection: */
+static const char * const SEL_COLOR = "#DDDDDD";
+/* (see X(7) section "COLOR NAMES" for valid values) */
+
+#endif
+#ifdef _IMAGE_CONFIG
+
+/* how should images be scaled when they are loaded?
+ * (also controllable via -d/-s/-Z/-z options)
+ * SCALE_DOWN: 100%, but fit large images into window,
+ * SCALE_FIT: fit all images into window,
+ * SCALE_ZOOM: use current zoom level, 100% at startup
+ */
+static const scalemode_t SCALE_MODE = SCALE_DOWN;
+
+/* levels (in percent) to use when zooming via '-' and '+':
+ * (first/last value is used as min/max zoom level)
+ */
+static const float zoom_levels[] = {
+ 12.5, 25.0, 50.0, 75.0,
+ 100.0, 150.0, 200.0, 400.0, 800.0
+};
+
+/* default slideshow delay (in sec, overwritten via -S option): */
+enum { SLIDESHOW_DELAY = 5 };
+
+/* default settings for multi-frame gif images: */
+enum {
+ GIF_DELAY = 100, /* delay time (in ms) */
+ GIF_AUTOPLAY = 1, /* autoplay when loaded [0/1] */
+ GIF_LOOP = 0 /* endless loop [0/1] */
+};
+
+#endif
+#ifdef _THUMBS_CONFIG
+
+/* default dimension of thumbnails (width == height): */
+enum { THUMB_SIZE = 60 };
+
+#endif
+#ifdef _MAPPINGS_CONFIG
+
+/* keyboard mappings for image and thumbnail mode: */
+static const keymap_t keys[] = {
+ /* ctrl key function argument */
+ { false, XK_q, it_quit, (arg_t) None },
+ { false, XK_Return, it_switch_mode, (arg_t) None },
+ { false, XK_f, it_toggle_fullscreen, (arg_t) None },
+
+ { false, XK_r, it_reload_image, (arg_t) None },
+ { false, XK_D, it_remove_image, (arg_t) None },
+
+ { false, XK_n, i_navigate, (arg_t) +1 },
+ { false, XK_space, i_navigate, (arg_t) +1 },
+ { false, XK_p, i_navigate, (arg_t) -1 },
+ { false, XK_BackSpace, i_navigate, (arg_t) -1 },
+ { false, XK_bracketright, i_navigate, (arg_t) +10 },
+ { false, XK_bracketleft, i_navigate, (arg_t) -10 },
+ { false, XK_g, it_first, (arg_t) None },
+ { false, XK_G, it_n_or_last, (arg_t) None },
+
+ { true, XK_n, i_navigate_frame, (arg_t) +1 },
+ { true, XK_p, i_navigate_frame, (arg_t) -1 },
+ { true, XK_space, i_toggle_animation, (arg_t) None },
+
+ { false, XK_h, it_scroll_move, (arg_t) DIR_LEFT },
+ { false, XK_Left, it_scroll_move, (arg_t) DIR_LEFT },
+ { false, XK_j, it_scroll_move, (arg_t) DIR_DOWN },
+ { false, XK_Down, it_scroll_move, (arg_t) DIR_DOWN },
+ { false, XK_k, it_scroll_move, (arg_t) DIR_UP },
+ { false, XK_Up, it_scroll_move, (arg_t) DIR_UP },
+ { false, XK_l, it_scroll_move, (arg_t) DIR_RIGHT },
+ { false, XK_Right, it_scroll_move, (arg_t) DIR_RIGHT },
+
+ { true, XK_h, it_scroll_screen, (arg_t) DIR_LEFT },
+ { true, XK_Left, it_scroll_screen, (arg_t) DIR_LEFT },
+ { true, XK_j, it_scroll_screen, (arg_t) DIR_DOWN },
+ { true, XK_Down, it_scroll_screen, (arg_t) DIR_DOWN },
+ { true, XK_k, it_scroll_screen, (arg_t) DIR_UP },
+ { true, XK_Up, it_scroll_screen, (arg_t) DIR_UP },
+ { true, XK_l, it_scroll_screen, (arg_t) DIR_RIGHT },
+ { true, XK_Right, it_scroll_screen, (arg_t) DIR_RIGHT },
+
+ { false, XK_H, i_scroll_to_edge, (arg_t) DIR_LEFT },
+ { false, XK_J, i_scroll_to_edge, (arg_t) DIR_DOWN },
+ { false, XK_K, i_scroll_to_edge, (arg_t) DIR_UP },
+ { false, XK_L, i_scroll_to_edge, (arg_t) DIR_RIGHT },
+
+ { false, XK_plus, i_zoom, (arg_t) +1 },
+ { false, XK_KP_Add, i_zoom, (arg_t) +1 },
+ { false, XK_minus, i_zoom, (arg_t) -1 },
+ { false, XK_KP_Subtract, i_zoom, (arg_t) -1 },
+ { false, XK_equal, i_set_zoom, (arg_t) 100 },
+ { false, XK_w, i_fit_to_win, (arg_t) None },
+ { false, XK_W, i_fit_to_img, (arg_t) None },
+
+ { false, XK_less, i_rotate, (arg_t) DIR_LEFT },
+ { false, XK_greater, i_rotate, (arg_t) DIR_RIGHT },
+
+ { false, XK_s, i_toggle_slideshow, (arg_t) None },
+ { true, XK_plus, i_adjust_slideshow, (arg_t) +1 },
+ { true, XK_minus, i_adjust_slideshow, (arg_t) -1 },
+ { true, XK_equal, i_reset_slideshow, (arg_t) None },
+
+ { false, XK_a, i_toggle_antialias, (arg_t) None },
+ { false, XK_A, it_toggle_alpha, (arg_t) None },
+
+ /* open current image with given program: */
+ { true, XK_g, it_open_with, (arg_t) "gimp" },
+
+ /* run shell command line on current file ("$SXIV_IMG"): */
+ { true, XK_less, it_shell_cmd, (arg_t) \
+ "mogrify -rotate -90 \"$SXIV_IMG\"" },
+ { true, XK_greater, it_shell_cmd, (arg_t) \
+ "mogrify -rotate +90 \"$SXIV_IMG\"" },
+ { true, XK_comma, it_shell_cmd, (arg_t) \
+ "jpegtran -rotate 270 -copy all -outfile \"$SXIV_IMG\" \"$SXIV_IMG\"" },
+ { true, XK_period, it_shell_cmd, (arg_t) \
+ "jpegtran -rotate 90 -copy all -outfile \"$SXIV_IMG\" \"$SXIV_IMG\"" },
+};
+
+/* mouse button mappings for image mode: */
+static const button_t buttons[] = {
+ /* ctrl shift button function argument */
+ { false, false, Button1, i_navigate, (arg_t) +1 },
+ { false, false, Button3, i_navigate, (arg_t) -1 },
+ { false, false, Button2, i_drag, (arg_t) None },
+ { false, false, Button4, it_scroll_move, (arg_t) DIR_UP },
+ { false, false, Button5, it_scroll_move, (arg_t) DIR_DOWN },
+ { false, true, Button4, it_scroll_move, (arg_t) DIR_LEFT },
+ { false, true, Button5, it_scroll_move, (arg_t) DIR_RIGHT },
+ { true, false, Button4, i_zoom, (arg_t) +1 },
+ { true, false, Button5, i_zoom, (arg_t) -1 },
+};
+
+#endif
diff --git a/community/sxiv/sxiv.desktop b/community/sxiv/sxiv.desktop
new file mode 100644
index 000000000..a981171c5
--- /dev/null
+++ b/community/sxiv/sxiv.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=sxiv
+GenericName=Image Viewer
+Exec=sxiv %F
+MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;image/x-bmp;
+NoDisplay=true
diff --git a/community/sxiv/sxiv.install b/community/sxiv/sxiv.install
new file mode 100644
index 000000000..c50e26c78
--- /dev/null
+++ b/community/sxiv/sxiv.install
@@ -0,0 +1,12 @@
+post_install () {
+ update-desktop-database -q
+
+ echo "* Look into config.h to customize sxiv to your needs."
+ echo " Use 'makepkg --skipinteg' to rebuild the package after changing config.h."
+ echo "* Create the directory ~/.sxiv/ to enable thumbnail caching."
+ echo " See sxiv(1) for more information."
+}
+
+post_upgrade () {
+ post_install ${1}
+}
diff --git a/community/synce-libmimedir/PKGBUILD b/community/synce-libmimedir/PKGBUILD
new file mode 100644
index 000000000..323f3c742
--- /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' 'mips64el')
+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..b8c8123c0
--- /dev/null
+++ b/community/synce-librapi/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 53263 2011-08-02 15:19:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-librapi
+pkgver=0.15.2
+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' 'mips64el')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('synce-libsynce')
+makedepends=('pyrex')
+source=(http://downloads.sourceforge.net/sourceforge/synce/librapi2-$pkgver.tar.gz)
+md5sums=('0a15bc22ee02794ca4714799611b4746')
+
+build() {
+ cd $srcdir/librapi2-$pkgver
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr --enable-udev-support --disable-hal-support
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synce-libsynce/PKGBUILD b/community/synce-libsynce/PKGBUILD
new file mode 100644
index 000000000..1329374b6
--- /dev/null
+++ b/community/synce-libsynce/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 46029 2011-05-02 10:37:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-libsynce
+pkgver=0.15.1
+pkgrel=2
+pkgdesc="provide a means of communication with a Windows CE device - libraries"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('dbus-glib')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/synce/libsynce-$pkgver.tar.gz)
+md5sums=('eaddc88c5f0027e89c6f0fffec34def2')
+
+build() {
+ cd $srcdir/libsynce-$pkgver
+ ./configure --prefix=/usr --enable-odccm-support --enable-udev-support --disable-hal-support
+ make
+}
+
+package() {
+ cd $srcdir/libsynce-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synce-rra/PKGBUILD b/community/synce-rra/PKGBUILD
new file mode 100644
index 000000000..aad00d2a7
--- /dev/null
+++ b/community/synce-rra/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 53286 2011-08-02 17:26:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-rra
+pkgver=0.14
+pkgrel=4
+pkgdesc="provide a means of communication with a Windows CE device - rra libraries for synce"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('3a608174a3a476c96dd4dd4929448fe8')
+
+build() {
+ cd $srcdir/librra-$pkgver
+ ./configure --prefix=/usr
+ sed -i s/-Werror// lib/Makefile src/Makefile
+ 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..4d08a823d
--- /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' 'mips64el')
+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..d2e7c3d0b
--- /dev/null
+++ b/community/synce-vdccm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 53376 2011-08-03 10:12:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-vdccm
+pkgver=0.10.1
+pkgrel=3
+pkgdesc="provide a means of communication with a Windows CE device - daemon to communicate with a handheld device"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('synce-libsynce')
+source=(http://downloads.sourceforge.net/synce/vdccm-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('43bca4c2fdb658f99b07549fa03832e0'
+ 'b90e1f8b46e70cd7f8f66f7ef041f3ac')
+
+build() {
+ cd $srcdir/vdccm-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synce-vdccm/build-fix.patch b/community/synce-vdccm/build-fix.patch
new file mode 100644
index 000000000..f3bd32cff
--- /dev/null
+++ b/community/synce-vdccm/build-fix.patch
@@ -0,0 +1,123 @@
+diff -wbBur vdccm-0.10.1/lib/continousnode.cpp vdccm-0.10.1.my/lib/continousnode.cpp
+--- vdccm-0.10.1/lib/continousnode.cpp 2006-03-28 02:40:15.000000000 +0400
++++ vdccm-0.10.1.my/lib/continousnode.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <stdio.h>
+ /***************************************************************************
+ * Copyright (c) 2003 Volker Christian <voc@users.sourceforge.net> *
+ * *
+diff -wbBur vdccm-0.10.1/lib/localclientsocket.cpp vdccm-0.10.1.my/lib/localclientsocket.cpp
+--- vdccm-0.10.1/lib/localclientsocket.cpp 2006-03-22 22:59:14.000000000 +0300
++++ vdccm-0.10.1.my/lib/localclientsocket.cpp 2011-08-03 14:09:42.000000000 +0400
+@@ -68,6 +68,7 @@
+ raddr.sun_family = AF_LOCAL;
+ strncpy(raddr.sun_path, path.c_str(), sizeof(raddr.sun_path));
+
++#define offsetof(type, member) __builtin_offsetof (type, member)
+ size_t size = (offsetof (struct sockaddr_un, sun_path) + strlen(raddr.sun_path) + 1);
+
+ if (::connect(fd, (struct sockaddr *) &raddr, size) < 0) {
+diff -wbBur vdccm-0.10.1/lib/localsocket.cpp vdccm-0.10.1.my/lib/localsocket.cpp
+--- vdccm-0.10.1/lib/localsocket.cpp 2006-03-28 02:40:15.000000000 +0400
++++ vdccm-0.10.1.my/lib/localsocket.cpp 2011-08-03 14:09:16.000000000 +0400
+@@ -78,6 +78,7 @@
+ localAddress.sun_family = AF_LOCAL;
+ strncpy(localAddress.sun_path, path.c_str(), sizeof(localAddress.sun_path));
+
++#define offsetof(type, member) __builtin_offsetof (type, member)
+ size_t size = (offsetof (struct sockaddr_un, sun_path) + strlen(localAddress.sun_path) + 1);
+
+ if (::bind(getDescriptor(), (struct sockaddr *) &localAddress, size) < 0) {
+diff -wbBur vdccm-0.10.1/lib/tcpclientsocket.cpp vdccm-0.10.1.my/lib/tcpclientsocket.cpp
+--- vdccm-0.10.1/lib/tcpclientsocket.cpp 2006-03-22 22:59:14.000000000 +0300
++++ vdccm-0.10.1.my/lib/tcpclientsocket.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <string.h>
+ /***************************************************************************
+ * Copyright (c) 2003 Volker Christian <voc@users.sourceforge.net> *
+ * *
+diff -wbBur vdccm-0.10.1/lib/tcpconnectedsocket.cpp vdccm-0.10.1.my/lib/tcpconnectedsocket.cpp
+--- vdccm-0.10.1/lib/tcpconnectedsocket.cpp 2006-06-29 23:01:48.000000000 +0400
++++ vdccm-0.10.1.my/lib/tcpconnectedsocket.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <string.h>
+ /***************************************************************************
+ * Copyright (c) 2003 Volker Christian <voc@users.sourceforge.net> *
+ * *
+diff -wbBur vdccm-0.10.1/lib/tcpsocket.cpp vdccm-0.10.1.my/lib/tcpsocket.cpp
+--- vdccm-0.10.1/lib/tcpsocket.cpp 2006-06-29 23:01:48.000000000 +0400
++++ vdccm-0.10.1.my/lib/tcpsocket.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <string.h>
+ /***************************************************************************
+ * Copyright (c) 2003 Volker Christian <voc@users.sourceforge.net> *
+ * *
+diff -wbBur vdccm-0.10.1/lib/udpsocket.cpp vdccm-0.10.1.my/lib/udpsocket.cpp
+--- vdccm-0.10.1/lib/udpsocket.cpp 2006-05-07 19:49:36.000000000 +0400
++++ vdccm-0.10.1.my/lib/udpsocket.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <string.h>
+ //
+ // C++ Implementation: udpsocket
+ //
+diff -wbBur vdccm-0.10.1/lib/udpsocket.h vdccm-0.10.1.my/lib/udpsocket.h
+--- vdccm-0.10.1/lib/udpsocket.h 2006-05-06 17:07:32.000000000 +0400
++++ vdccm-0.10.1.my/lib/udpsocket.h 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <stdint.h>
+ //
+ // C++ Interface: udpsocket
+ //
+diff -wbBur vdccm-0.10.1/Makefile.in vdccm-0.10.1.my/Makefile.in
+--- vdccm-0.10.1/Makefile.in 2007-12-19 22:59:02.000000000 +0300
++++ vdccm-0.10.1.my/Makefile.in 2011-08-03 14:05:21.000000000 +0400
+@@ -186,9 +186,9 @@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ SUBDIRS = lib src tools
+-AM_CFLAGS = -O2 -Werror -pedantic-errors -Wall
+-AM_CXXFLAGS = -O2 -Werror -pedantic-errors -Wall
+-AM_FFLAGS = -O2 -Werror -pedantic-errors -Wall
++AM_CFLAGS = -O2 -Werror -Wall
++AM_CXXFLAGS = -O2 -Werror -Wall
++AM_FFLAGS = -O2 -Werror -Wall
+ all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+diff -wbBur vdccm-0.10.1/src/Makefile.in vdccm-0.10.1.my/src/Makefile.in
+--- vdccm-0.10.1/src/Makefile.in 2007-12-19 22:59:01.000000000 +0300
++++ vdccm-0.10.1.my/src/Makefile.in 2011-08-03 14:05:21.000000000 +0400
+@@ -250,7 +250,7 @@
+ rapiproxy.cpp rapiproxyfactory.cpp rapiproxyconnection.cpp \
+ $(am__append_3)
+ AM_CFLAGS = -Wall
+-AM_CXXFLAGS = -pedantic-errors -Wall
++AM_CXXFLAGS = -Wall
+ man_MANS = vdccm.1
+ EXTRA_DIST = $(man_MANS)
+ all: $(BUILT_SOURCES)
+diff -wbBur vdccm-0.10.1/src/rapiclient.cpp vdccm-0.10.1.my/src/rapiclient.cpp
+--- vdccm-0.10.1/src/rapiclient.cpp 2006-05-06 17:07:32.000000000 +0400
++++ vdccm-0.10.1.my/src/rapiclient.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <string.h>
+ //
+ // C++ Implementation: rapiclient
+ //
+diff -wbBur vdccm-0.10.1/src/rapiclient.h vdccm-0.10.1.my/src/rapiclient.h
+--- vdccm-0.10.1/src/rapiclient.h 2006-05-06 17:07:32.000000000 +0400
++++ vdccm-0.10.1.my/src/rapiclient.h 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,5 @@
++#include <limits.h>
++#include <stdint.h>
+ //
+ // C++ Interface: rapiclient
+ //
+diff -wbBur vdccm-0.10.1/src/rapiconnection.cpp vdccm-0.10.1.my/src/rapiconnection.cpp
+--- vdccm-0.10.1/src/rapiconnection.cpp 2007-05-10 22:27:03.000000000 +0400
++++ vdccm-0.10.1.my/src/rapiconnection.cpp 2011-08-03 14:05:21.000000000 +0400
+@@ -1,3 +1,4 @@
++#include <stdio.h>
+ //
+ // C++ Implementation: rapiconnection
+ //
diff --git a/community/synergy/PKGBUILD b/community/synergy/PKGBUILD
new file mode 100644
index 000000000..c03f1d511
--- /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.8
+pkgrel=1
+pkgdesc="Share a single mouse and keyboard between multiple computers"
+url="http://synergy-foss.org"
+arch=('i686' 'x86_64' 'mips64el')
+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/bin"
+
+# 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 $srcdir/$pkgname-$pkgver-Source/doc/${pkgname}.conf.example "${pkgdir}/etc"
+ install -Dm755 $srcdir/${pkgname}s.rc "${pkgdir}/etc/rc.d/${pkgname}s"
+}
+md5sums=('3534c65ecfa6e47d7899c57975442f03'
+ '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..f0ebb3f77
--- /dev/null
+++ b/community/synfig/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 60363 2011-12-12 09:57:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Franco Iacomella <yaco@gnu.org>
+
+pkgname=synfig
+pkgver=0.63.03
+pkgrel=1
+pkgdesc="Professional vector animation program (CLI renderer only)"
+arch=(i686 x86_64 'mips64el')
+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/project/synfig/synfig/$pkgver/synfig-$pkgver.tar.gz
+ build-fix.patch
+ ffmpeg-0.8.patch)
+md5sums=('9bd77cd2fc2381adfbd50a7b9c1c6e7c'
+ 'b5568b06fae1a7ee465b5380b1139b83'
+ 'ebf41046097cfd778dee9a9854561dae')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ [ -f configure ] || { libtoolize --ltdl --copy --force && autoreconf --install --force; }
+ [ -f Makefile ] || ./configure --prefix=/usr --sysconfdir=/etc --with-libavcodec --with-libdv
+ patch -p1 -i $srcdir/build-fix.patch
+ patch -Np1 -i $srcdir/ffmpeg-0.8.patch
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synfig/build-fix.patch b/community/synfig/build-fix.patch
new file mode 100644
index 000000000..be45fdc68
--- /dev/null
+++ b/community/synfig/build-fix.patch
@@ -0,0 +1,31 @@
+diff -wbBur synfig-core/src/modules/mod_libavcodec/trgt_av.cpp synfig-core.my/src/modules/mod_libavcodec/trgt_av.cpp
+--- synfig-core/src/modules/mod_libavcodec/trgt_av.cpp 2011-06-05 13:04:07.000000000 +0400
++++ synfig-core.my/src/modules/mod_libavcodec/trgt_av.cpp 2011-06-14 14:32:49.000000000 +0400
+@@ -31,6 +31,10 @@
+ # include <config.h>
+ #endif
+
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++#include <libswscale/swscale.h>
++
+ #include "trgt_av.h"
+
+ extern "C"
+@@ -116,14 +120,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 --git a/community/synfig/ffmpeg-0.8.patch b/community/synfig/ffmpeg-0.8.patch
new file mode 100644
index 000000000..4ba40fff2
--- /dev/null
+++ b/community/synfig/ffmpeg-0.8.patch
@@ -0,0 +1,60 @@
+diff -aur synfig-0.63.02/src/modules/mod_libavcodec/trgt_av.cpp synfig-0.63.02.new/src/modules/mod_libavcodec/trgt_av.cpp
+--- synfig-0.63.02/src/modules/mod_libavcodec/trgt_av.cpp 2011-09-29 10:51:41.000000000 +0200
++++ synfig-0.63.02.new/src/modules/mod_libavcodec/trgt_av.cpp 2011-10-31 16:39:03.000000000 +0100
+@@ -441,7 +441,7 @@
+ if( context->coded_frame )
+ pkt.pts = context->coded_frame->pts;
+ if( context->coded_frame && context->coded_frame->key_frame)
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+
+ //kluge for raw picture format (they said they'd fix)
+ if (formatc->oformat->flags & AVFMT_RAWPICTURE)
+@@ -463,7 +463,7 @@
+ if( context->coded_frame )
+ pkt.pts = context->coded_frame->pts;
+ if( context->coded_frame && context->coded_frame->key_frame)
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+
+ ret = av_write_frame(formatc, &pkt);
+
+@@ -567,17 +567,17 @@
+ if (typestring)
+ {
+ //formatptr guess_format(type, filename, MIME type)
+- format = guess_format(typestring,NULL,NULL);
++ format = av_guess_format(typestring,NULL,NULL);
+ }
+ else
+ {
+- format = guess_format(NULL, filename, NULL);
++ format = av_guess_format(NULL, filename, NULL);
+ }
+
+ if(!format)
+ {
+ synfig::warning("Unable to Guess the output, defaulting to mpeg");
+- format = guess_format("mpeg", NULL, NULL);
++ format = av_guess_format("mpeg", NULL, NULL);
+ }
+
+ if(!format)
+@@ -753,7 +753,7 @@
+
+ context = st->codec;
+ context->codec_id = (CodecID)codec_id;
+- context->codec_type = CODEC_TYPE_VIDEO;
++ context->codec_type = AVMEDIA_TYPE_VIDEO;
+
+ //PARAMETERS MUST BE PASSED IN SOMEHOW (ANOTHER FUNCTION PARAMETER???)
+
+@@ -800,7 +800,7 @@
+
+ context = stream->codec;
+ context->codec_id = (CodecID)codec_id;
+- context->codec_type = CODEC_TYPE_AUDIO;
++ context->codec_type = AVMEDIA_TYPE_AUDIO;
+
+ /* put sample parameters */
+ context->bit_rate = 64000;
diff --git a/community/synfigstudio/PKGBUILD b/community/synfigstudio/PKGBUILD
new file mode 100644
index 000000000..591c3d8d1
--- /dev/null
+++ b/community/synfigstudio/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 60377 2011-12-12 14:49:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Franco Iacomella <yaco@gnu.org>
+
+pkgname=synfigstudio
+pkgver=0.63.03
+pkgrel=2
+pkgdesc="Professional vector animation program (GUI)"
+arch=(i686 x86_64 'mips64el')
+url="http://synfig.org"
+license=('GPL2')
+depends=('gtkmm' 'synfig')
+makedepends=('openexr' 'imagemagick' 'xorg-fonts-100dpi' 'xorg-fonts-75dpi'
+ 'xorg-fonts-misc' 'xorg-fonts-type1')
+install=synfigstudio.install
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/synfig/synfigstudio/$pkgver/synfigstudio-$pkgver.tar.gz)
+md5sums=('a166ff4917b0e058cae96e51aa273080')
+
+build() {
+ cd $srcdir/synfigstudio-$pkgver
+ [ -f configure ] || { libtoolize --ltdl --copy --force && autoreconf --install --force; }
+ [ -f Makefile ] || ./configure --prefix=/usr --sysconfdir=/etc --with-libavcodec --with-libdv
+ sed -i 's#Gtk::IconSize::IconSize#Gtk::IconSize#' src/gui/dialogs/dialog_color.cpp
+ make
+}
+
+package() {
+ cd $srcdir/synfigstudio-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -f $pkgdir/usr/share/pixmaps/$pkgname/*.mng
+ install -m644 images/*.png -t $pkgdir/usr/share/pixmaps/$pkgname/
+ rm -f $pkgdir/usr/share/mime/XMLnamespaces
+ rm -f $pkgdir/usr/share/mime/aliases
+ rm -f $pkgdir/usr/share/mime/generic-icons
+ rm -f $pkgdir/usr/share/mime/globs
+ rm -f $pkgdir/usr/share/mime/globs2
+ rm -f $pkgdir/usr/share/mime/icons
+ rm -f $pkgdir/usr/share/mime/magic
+ rm -f $pkgdir/usr/share/mime/mime.cache
+ rm -f $pkgdir/usr/share/mime/subclasses
+ rm -f $pkgdir/usr/share/mime/treemagic
+ rm -f $pkgdir/usr/share/mime/types
+ rm -f $pkgdir/usr/share/mime/version
+}
diff --git a/community/synfigstudio/synfigstudio.install b/community/synfigstudio/synfigstudio.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/synfigstudio/synfigstudio.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/sysprof/PKGBUILD b/community/sysprof/PKGBUILD
new file mode 100644
index 000000000..65072e103
--- /dev/null
+++ b/community/sysprof/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 56814 2011-10-13 17:07:33Z 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.8
+pkgrel=1
+pkgdesc="A sampling CPU profiler that uses a Linux kernel module to profile the entire system"
+arch=('i686' 'x86_64' 'mips64el')
+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=('a46e24250988d96d8fc7b30773d55222')
+
+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..a24abdc21
--- /dev/null
+++ b/community/sysstat/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 59567 2011-11-28 06:28:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Martin Devera <devik@cdi.cz>
+
+pkgname=sysstat
+pkgver=10.0.3
+pkgrel=1
+pkgdesc="a collection of performance monitoring tools (iostat,isag,mpstat,pidstat,sadf,sar)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pagesperso-orange.fr/sebastien.godard/"
+license=('GPL')
+depends=('lm_sensors')
+optdepends=('tk: to use isag'
+ 'gnuplot: to use isag')
+options=(zipman)
+backup=('etc/conf.d/sysstat'
+ 'etc/conf.d/sysstat.ioconf')
+source=(http://pagesperso-orange.fr/sebastien.godard/$pkgname-$pkgver.tar.gz
+ sysstat)
+md5sums=('0e1ed5200f31f69a3b90ff1e81c07745'
+ '0241e3dd701cf7badbd3bb8408fb7bc9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ conf_dir=/etc/conf.d ./configure --prefix=/usr \
+ --enable-yesterday \
+ --mandir=/usr/share/man \
+ --enable-install-isag \
+ --disable-man-group
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ 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..e914567b8
--- /dev/null
+++ b/community/sysstat/sysstat
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/sysstat
+
+case "$1" in
+ start)
+ stat_busy "Writing SysStat restart record"
+ /usr/lib/sa/sadc -L -F ${SADC_OPTIONS} -
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stop)
+ ;;
+ *)
+ echo "usage: $0 {start|stop}"
+esac
+exit 0
diff --git a/community/systemd/PKGBUILD b/community/systemd/PKGBUILD
new file mode 100644
index 000000000..eb7d8b9fc
--- /dev/null
+++ b/community/systemd/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 58198 2011-11-08 16:54:47Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+
+pkgname=systemd
+pkgver=37
+pkgrel=2
+pkgdesc="Session and Startup manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2')
+depends=('dbus-core' 'kbd' 'libcap' 'util-linux>=2.19' 'udev>=172')
+makedepends=('gperf' 'cryptsetup' 'gtk2' 'intltool' 'libnotify')
+optdepends=('cryptsetup: required for encrypted block devices'
+ 'dbus-python: systemd-analyze'
+ 'gtk2: systemadm'
+ 'initscripts: legacy support for hostname and vconsole setup'
+ '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' '!strip')
+backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
+ etc/dbus-1/system.d/org.freedesktop.hostname1.conf
+ etc/dbus-1/system.d/org.freedesktop.login1.conf
+ etc/dbus-1/system.d/org.freedesktop.locale1.conf
+ etc/dbus-1/system.d/org.freedesktop.timedate1.conf
+ etc/systemd/system.conf
+ etc/systemd/user.conf
+ etc/systemd/systemd-logind.conf)
+install=systemd.install
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.bz2"
+ "os-release"
+ systemctl-completion.patch)
+md5sums=('1435f23be79c8c38d1121c6b150510f3'
+ '752636def0db3c03f121f8b4f44a63cd'
+ '8acca6b7be4bfebe4174d89e4625b0ee')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Don't unset locale in getty
+ # https://bugzilla.redhat.com/show_bug.cgi?id=663900
+ sed -i -e '/^Environ.*LANG/s/^/#/' \
+ -e '/^ExecStart/s/agetty/& -8/' units/getty@.service.m4
+
+ # fix bash completion
+ patch -Np1 < "$srcdir"/systemctl-completion.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/systemd \
+ --libdir=/usr/lib \
+ --localstatedir=/var \
+ --with-rootdir= \
+ --with-rootlibdir=/lib
+
+ make
+
+ # fix .so links in manpages
+ sed -i 's|\.so halt\.8|.so systemd.halt.8|' man/{halt,poweroff}.8
+ sed -i 's|\.so systemd\.1|.so man1/systemd.1|' man/init.1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
+ printf "d /run/console 755 root root\n" > "$pkgdir/usr/lib/tmpfiles.d/console.conf"
+
+ # fix systemd-analyze for python2
+ sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
+
+ # 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..5e24a6031
--- /dev/null
+++ b/community/systemd/os-release
@@ -0,0 +1,5 @@
+NAME="Arch Linux"
+ID=arch
+PRETTY_NAME="Arch Linux"
+ANSI_COLOR="1;36"
+
diff --git a/community/systemd/systemctl-completion.patch b/community/systemd/systemctl-completion.patch
new file mode 100644
index 000000000..afa1ae73f
--- /dev/null
+++ b/community/systemd/systemctl-completion.patch
@@ -0,0 +1,77 @@
+From 255e63837bc985ce6f3c3b5ce5d2856e2240138b Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner@archlinux.org>
+Date: Tue, 11 Oct 2011 20:53:05 -0400
+Subject: [PATCH] systemctl-completion: always invoke with --no-legend
+
+In the case of completion for the 'restart' verb, passing the invalid
+unit name (the colums header) causes completion to cease functioning
+entirely, with the error:
+
+ Failed to issue method call: Unit name UNIT is not valid.
+
+This adds a small wrapper function for systemctl which can have common
+options added to it.
+
+---
+ src/systemctl-bash-completion.sh | 20 ++++++++++++--------
+ 1 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh
+index 6369a6c..6ebb792 100644
+--- a/src/systemctl-bash-completion.sh
++++ b/src/systemctl-bash-completion.sh
+@@ -15,6 +15,10 @@
+ # You should have received a copy of the GNU General Public License
+ # along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
++__systemctl() {
++ systemctl --no-legend "$@"
++}
++
+ __contains_word () {
+ local word=$1; shift
+ for w in $*; do [[ $w = $word ]] && return 0; done
+@@ -24,7 +28,7 @@ __contains_word () {
+ __filter_units_by_property () {
+ local property=$1 value=$2 ; shift ; shift
+ local -a units=( $* )
+- local -a props=( $(systemctl show --property "$property" -- ${units[*]} | grep -v ^$) )
++ local -a props=( $(__systemctl show --property "$property" -- ${units[*]} | grep -v ^$) )
+ for ((i=0; $i < ${#units[*]}; i++)); do
+ if [[ "${props[i]}" = "$property=$value" ]]; then
+ echo "${units[i]}"
+@@ -32,10 +36,10 @@ __filter_units_by_property () {
+ done
+ }
+
+-__get_all_units () { systemctl list-units --full --all | awk ' {print $1}' ; }
+-__get_active_units () { systemctl list-units --full | awk ' {print $1}' ; }
+-__get_inactive_units () { systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; }
+-__get_failed_units () { systemctl list-units --full | awk '$3 == "failed" {print $1}' ; }
++__get_all_units () { __systemctl list-units --full --all | awk ' {print $1}' ; }
++__get_active_units () { __systemctl list-units --full | awk ' {print $1}' ; }
++__get_inactive_units () { __systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; }
++__get_failed_units () { __systemctl list-units --full | awk '$3 == "failed" {print $1}' ; }
+
+ _systemctl () {
+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
+@@ -134,13 +138,13 @@ _systemctl () {
+ comps=''
+
+ elif __contains_word "$verb" ${VERBS[JOBS]}; then
+- comps=$( systemctl list-jobs | awk '{print $1}' )
++ comps=$( __systemctl list-jobs | awk '{print $1}' )
+
+ elif __contains_word "$verb" ${VERBS[SNAPSHOTS]}; then
+- comps=$( systemctl list-units --type snapshot --full --all | awk '{print $1}' )
++ comps=$( __systemctl list-units --type snapshot --full --all | awk '{print $1}' )
+
+ elif __contains_word "$verb" ${VERBS[ENVS]}; then
+- comps=$( systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' )
++ comps=$( __systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' )
+ compopt -o nospace
+ fi
+
+--
+1.7.7
+
diff --git a/community/systemd/systemd.install b/community/systemd/systemd.install
new file mode 100644
index 000000000..04b29688a
--- /dev/null
+++ b/community/systemd/systemd.install
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+checkgroups() {
+ if ! usr/bin/getent group lock >/dev/null; then
+ usr/sbin/groupadd -g 54 lock
+ fi
+}
+
+sd_booted() {
+ [ -e sys/fs/cgroups/systemd ]
+}
+
+post_install() {
+ checkgroups
+
+ if [ ! -f etc/machine-id ]; then
+ bin/systemd-machine-id-setup
+ fi
+
+ 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
+
+ if [ ! -f etc/machine-id ]; then
+ bin/systemd-machine-id-setup
+ fi
+
+ if sd_booted; then
+ bin/systemctl daemon-reexec >/dev/null
+ fi
+
+ newpkgver=${1%-*}
+ oldpkgver=${2%-*}
+
+ # catch v31 need for restarting systemd-logind.service
+ if [ "$newpkgver" -ge 31 ] && [ "$oldpkgver" -lt 31 ]; then
+ # but only if systemd is running
+ if sd_booted; then
+ bin/systemctl try-restart systemd-logind.service
+ fi
+ fi
+}
+
+post_remove() {
+ if usr/bin/getent group lock >/dev/null; then
+ usr/sbin/groupdel lock
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/sysvbanner/PKGBUILD b/community/sysvbanner/PKGBUILD
new file mode 100644
index 000000000..44304f42a
--- /dev/null
+++ b/community/sysvbanner/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgname=sysvbanner
+pkgver=1.0.15
+pkgrel=1
+pkgdesc='System-V banner clone'
+arch=('i686' 'x86_64')
+url='http://packages.qa.debian.org/s/sysvbanner.html'
+conflicts=('bsd-games')
+license=('custom')
+source=("http://cdn.debian.net/debian/pool/main/s/sysvbanner/${pkgname}_${pkgver}.tar.gz"
+ 'man.patch')
+md5sums=('5a7bd216a42faa20bfd91268a77cc41d'
+ '003aa4532e00c32f747dfba6566c094d')
+
+build() {
+ cd $pkgname-$pkgver
+ patch -p 1 < ../man.patch
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ install -D -m444 "debian/copyright" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/sysvbanner/man.patch b/community/sysvbanner/man.patch
new file mode 100644
index 000000000..3719d5ebf
--- /dev/null
+++ b/community/sysvbanner/man.patch
@@ -0,0 +1,16 @@
+--- a/banner.1 2007-04-08 00:26:57.000000000 +0200
++++ b/banner.1 2011-12-01 04:16:43.677157180 +0100
+@@ -3,12 +3,10 @@
+ banner \- print large banner
+ .SH SYNOPSIS
+ .B banner
+-.I text
++.B [\fItext\fB]
+ .br
+ .SH "DESCRIPTION"
+ .B banner
+ prints out the first 10 characters of
+ .I text
+ in large letters.
+-.SH SEE ALSO
+-.BR banner "(6)."
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..9d23ff14d
--- /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' 'mips64el')
+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..142c68a81
--- /dev/null
+++ b/community/tabbed/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 57841 2011-11-03 11:24:18Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: totoloco <totoloco at gmx>
+
+pkgname=tabbed
+pkgver=0.3
+pkgrel=2
+pkgdesc='Simple generic tabbed fronted to xembed aware applications.'
+arch=('i686' 'x86_64' 'mips64el')
+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..e34ef6d7a
--- /dev/null
+++ b/community/taglib-rcc/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 59135 2011-11-21 12:15:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=taglib-rcc
+pkgver=1.7
+pkgrel=1
+pkgdesc="taglib with librcc patch"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://developer.kde.org/~wheeler/taglib.html"
+depends=('gcc-libs' 'zlib' 'bash' 'libxml2' 'db' 'librcc')
+makedepends=('patch' 'cmake')
+license=('GPL')
+provides=("taglib=$pkgver")
+conflicts=("taglib")
+options=('!libtool')
+source=(http://developer.kde.org/~wheeler/files/src/taglib-$pkgver.tar.gz
+ http://downloads.sourceforge.net/rusxmms/taglib-csa6.tar.bz2)
+md5sums=('6a7e312668f153fa905a81714aebc257'
+ '0868d633843ecd87526c77d788b3d3b6')
+
+build() {
+ cd $srcdir/taglib-$pkgver
+ [ $NOEXTRACT -eq 1 ] || patch -Np1 <$srcdir/taglib/taglib-1.5-ds-rusxmms.patch || true
+ [ $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
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/tagpy/PKGBUILD b/community/tagpy/PKGBUILD
new file mode 100644
index 000000000..b2751c52d
--- /dev/null
+++ b/community/tagpy/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 59972 2011-12-02 21:01:17Z ibiru $
+# 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=6
+pkgdesc="Python bindings for TagLib"
+arch=('i686' 'x86_64' 'mips64el')
+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..08088d1d8
--- /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' 'mips64el')
+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..3e007656d
--- /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' 'mips64el')
+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..84d06dd3d
--- /dev/null
+++ b/community/tasks/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59230 2011-11-21 15:27: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.19
+pkgrel=2
+pkgdesc="A simple to do list application that uses libecal"
+arch=(i686 x86_64 mips64el)
+url="http://pimlico-project.org/tasks.html"
+license=('GPL')
+depends=('evolution-data-server>=3.2.0' 'xdg-utils' 'gtk2')
+makedepends=('intltool')
+install=tasks.install
+#source=(http://pimlico-project.org/sources/tasks/$pkgname-$pkgver.tar.gz)
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/$pkgname-$pkgver.tar.gz)
+md5sums=('0afd969758561599fd782e1effb39c08')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+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/tcc/ChangeLog b/community/tcc/ChangeLog
new file mode 100644
index 000000000..460adba69
--- /dev/null
+++ b/community/tcc/ChangeLog
@@ -0,0 +1,3 @@
+0.9.25-2:
+
+ + Added libtcc.so as well, for dynamic code.
diff --git a/community/tcc/PKGBUILD b/community/tcc/PKGBUILD
new file mode 100644
index 000000000..c5cc9d845
--- /dev/null
+++ b/community/tcc/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 59917 2002-02-02 03:01:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : Gergely Imreh <imrehgATgmailDOTcom>
+# Contributor : dschauer <dschauerATgmailDOTcom>
+# Contributor : Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor : Jeremy Cowgar <jeremy@cowgar.com>
+
+pkgname=tcc
+pkgver=0.9.25
+pkgrel=2
+pkgdesc="Tiny C Compiler"
+arch=('i686' 'x86_64')
+url="http://bellard.org/tcc/"
+license=('LGPL')
+makedepends=('gcc')
+options=('docs')
+source=(http://download.savannah.nongnu.org/releases/tinycc/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('991c2a1986cce15f03ca6ddc86ea5f43')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # sed fixes from Gentoo ebuild, cheers!
+ # Don't strip
+ sed -i -e 's|$(INSTALL) -s|$(INSTALL)|' Makefile
+
+ # Fix examples
+ sed -i -e '1{
+ i#! /usr/bin/tcc -run
+ /^#!/d
+ }' examples/ex*.c
+ sed -i -e '1s/$/ -lX11/' examples/ex4.c
+
+ ./configure --prefix=/usr
+ make
+ make tccdir=${pkgdir}/usr/lib/tcc libdir=${pkgdir}/usr/lib \
+ mandir=${pkgdir}/usr/share/man bindir=${pkgdir}/usr/bin \
+ includedir=${pkgdir}/usr/include \
+ docdir=${pkgdir}/usr/share/doc/tcc \
+ install
+
+ make clean
+ make CFLAGS="-fPIC" libtcc.o
+ ld -shared -soname libtcc.so -o libtcc.so libtcc.o
+ install -D -m 755 libtcc.so "${pkgdir}/usr/lib/libtcc.so"
+}
diff --git a/community/tcpflow/PKGBUILD b/community/tcpflow/PKGBUILD
new file mode 100644
index 000000000..f2d674ea2
--- /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' 'mips64el')
+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..fda586748
--- /dev/null
+++ b/community/tcsh/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 57883 2011-11-04 08:18:37Z 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=4
+pkgdesc='Enhanced version of the Berkeley C shell.'
+arch=('i686' 'x86_64' 'mips64el')
+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..668abdad0
--- /dev/null
+++ b/community/tdfsb/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 59877 2011-12-01 15:19:47Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=tdfsb
+pkgver=0.0.10
+pkgrel=5
+pkgdesc="SDL based graphical file browser"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -D -m755 tdfsb "${pkgdir}/usr/bin/tdfsb"
+
+ # Install desktop file
+ install -D -m755 ${srcdir}/tdfsb.desktop "${pkgdir}/usr/share/applications/tdfsb.desktop"
+ # Install icon
+ install -D -m644 ${srcdir}/tdfsb.png "${pkgdir}/usr/share/pixmaps/tdfsb.png"
+}
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..326787a77
--- /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' 'mips64el')
+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..6becdb293
--- /dev/null
+++ b/community/tea/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 55791 2011-09-20 17:02:31Z 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=31.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' 'mips64el')
+url="http://tea-editor.sourceforge.net/"
+license=('GPL')
+depends=('qt' 'aspell' 'hunspell')
+install=tea.install
+source=(http://downloads.sourceforge.net/project/tea-editor/tea-editor/$pkgver/tea-$pkgver.tar.bz2
+ tea.desktop)
+md5sums=('53cb9b079e7ebaddcc41b27c684beaab'
+ '377ace3363124f4c086de0babb820761')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ qmake PREFIX=/usr/bin
+ make
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}" install
+ 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..f97ffc653
--- /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' 'mips64el')
+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..4c9f80ea9
--- /dev/null
+++ b/community/teeworlds/PKGBUILD
@@ -0,0 +1,59 @@
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Armin 'IsSuE' Praher [issue.at.gmx.dot.at]
+# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=teeworlds
+pkgver=0.6.1
+_bamver=0.4.0
+pkgrel=1
+pkgdesc="A multiplayer 2D shooter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://teeworlds.com"
+license=('custom')
+depends=('alsa-lib' 'mesa' 'sdl' 'freetype2')
+makedepends=('python2')
+replaces=('teewars')
+source=(http://www.teeworlds.com/files/${pkgname}-${pkgver}-source.tar.gz
+ https://github.com/downloads/matricks/bam/bam-${_bamver}.tar.bz2
+ teeworlds.desktop
+ teeworlds.png)
+md5sums=('00de7195ecd1f23596dc3237341af512'
+ 'f8b62ad553c3615a725a034df4fb4257'
+ '3944aaf7a8c19a83510b2b39c4cddf5f'
+ '44f39e398409232a0e0a431ed46d8cc8')
+
+build() {
+ # Build bam (used to build teeworlds)
+ # Now it is released separately I should make a separate package...
+ cd ${srcdir}/bam-${_bamver}
+ ./make_unix.sh
+
+ # Build teeworlds
+ cd ${srcdir}/${pkgname}-*-source
+
+ # Use Python 2
+ sed -i 's/python /python2 /' bam.lua
+
+ ../bam-${_bamver}/bam server_release client_release
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-*-source
+
+ # Install data files
+ mkdir -p ${pkgdir}/usr/share/${pkgname}/data
+ cp -r data/* ${pkgdir}/usr/share/${pkgname}/data
+
+ install -Dm755 ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+ install -Dm755 ${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 license.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
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..0d7c36aa6
--- /dev/null
+++ b/community/tellico/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 55957 2011-09-26 19:23:41Z 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.4
+pkgrel=1
+pkgdesc="A collection manager for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tellico-project.org/"
+license=('GPL')
+depends=('kdebase-workspace' 'yaz' 'exempi' 'libksane' 'taglib'
+ 'kdemultimedia-kioslave' 'poppler-qt' 'qjson')
+makedepends=('automoc4' 'cmake')
+install=$pkgname.install
+source=("http://tellico-project.org/files/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('0a955754e89fc96d9745266ec97410c7')
+
+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
+
+ # 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..817bf2368
--- /dev/null
+++ b/community/terminator/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 55930 2011-09-25 18:21:36Z guillaume $
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: fancris3 <fancris3 at gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=terminator
+pkgver=0.96
+pkgrel=1
+pkgdesc='an application that provides lots of terminals in a single window'
+arch=('i686' 'x86_64' 'mips64el')
+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=('070e3878336b341c9e18339d89ba64fe')
+
+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..66fd9e8f8
--- /dev/null
+++ b/community/tesseract/PKGBUILD
@@ -0,0 +1,95 @@
+# $Id: PKGBUILD 59081 2011-11-21 09:28:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Hauser <andy-aur@splashground.de>
+
+pkgname=tesseract
+pkgver=3.01
+pkgrel=1
+pkgdesc="An OCR programm"
+arch=(x86_64 i686 'mips64el')
+url="http://code.google.com/p/tesseract-ocr"
+license=("APACHE")
+depends=(libpng libtiff libjpeg zlib giflib gcc-libs leptonica)
+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=('1ba496e51a42358fb9d3ffe781b2d20a'
+ '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
+ [ -f Makefile.in ] || automake
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ mkdir -p $pkgdir/usr/share/tessdata
+ cp $srcdir/*.traineddata $pkgdir/usr/share/tessdata/
+ 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..4baa0b4c3
--- /dev/null
+++ b/community/texmaker/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 58537 2011-11-13 16:08:37Z andrea $
+# 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.1
+pkgrel=1
+pkgdesc='Free cross-platform latex editor'
+arch=('i686' 'x86_64' 'mips64el')
+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=('10a14c75abbb7234d4e5e58a7c85b110')
+
+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..a76b828bc
--- /dev/null
+++ b/community/texvc/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 59805 2011-11-30 12:45:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=texvc
+pkgver=1.18.0
+_svnrev=103240
+pkgrel=1
+pkgdesc="tex to HTML/MathML/png converter used by mediawiki"
+arch=(i686 x86_64 'mips64el')
+url="http://www.mediawiki.org/wiki/Extension:Math"
+license=("GPL")
+depends=('imagemagick' 'ghostscript' 'texlive-core' 'texlive-latexextra')
+makedepends=('ocaml')
+source=(http://upload.wikimedia.org/ext-dist/Math-MW1.18-r${_svnrev}.tar.gz)
+md5sums=('bd24346536339034b29e65341683a2c1')
+
+build() {
+ cd $srcdir/Math/math
+ make
+ install -d -m 0755 $pkgdir/usr/bin
+ install -m 0755 texvc $pkgdir/usr/bin
+}
diff --git a/community/tig/PKGBUILD b/community/tig/PKGBUILD
new file mode 100644
index 000000000..9a2b54b02
--- /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.18
+pkgrel=1
+pkgdesc="Text-mode interface for git"
+depends=('git' 'ncurses')
+url="http://jonas.nitro.dk/tig/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://jonas.nitro.dk/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4fa9e33c5daa76b6fed11e068405356f')
+
+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
+}
diff --git a/community/tilda/PKGBUILD b/community/tilda/PKGBUILD
new file mode 100644
index 000000000..34658be55
--- /dev/null
+++ b/community/tilda/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 54949 2011-08-28 17:21:28Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=tilda
+pkgver=0.9.6
+pkgrel=4
+pkgdesc="Linux terminal based on classic terminals from first person shooter games"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tilda.sourceforge.net"
+license=('GPL')
+depends=('vte' 'confuse' 'libglade')
+makedepends=('gawk')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
+ fix.patch)
+sha256sums=('b3bd0f63eb83a5001ef26056ca116e5f8005d454f8f82a94f334868862068411'
+ '5f3aa2a58f52475e476b1871ea3f407c0cf4414670e861794888737b605c3caf')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np1 -i ${srcdir}/fix.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/tilda-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/tilda/fix.patch b/community/tilda/fix.patch
new file mode 100644
index 000000000..058af6a36
--- /dev/null
+++ b/community/tilda/fix.patch
@@ -0,0 +1,24 @@
+--- tilda-0.9.6/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));
+
+--- tilda-0.9.6/tilda.desktop.in 2007-03-16 04:53:34.000000000 +0100
++++ tilda-0.9.6/tilda.desktop.in 2011-08-28 19:08:53.000000000 +0200
+@@ -2 +1,0 @@
+-Encoding=UTF-8
+@@ -4,2 +3,2 @@
+-Exec=@BINDIR@/tilda
+-Icon=@PIXMAPSDIR@/tilda.png
++Exec=tilda
++Icon=tilda
+@@ -8 +7 @@
+-Categories=GNOME;GTK;Application;Utility;TerminalEmulator;
++Categories=GNOME;GTK;Utility;TerminalEmulator;System;
diff --git a/community/tilda/tilda.changelog b/community/tilda/tilda.changelog
new file mode 100644
index 000000000..af3650071
--- /dev/null
+++ b/community/tilda/tilda.changelog
@@ -0,0 +1,16 @@
+2011-08-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * FS#25762 fixed
+
+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/tint2/PKGBUILD b/community/tint2/PKGBUILD
new file mode 100644
index 000000000..c8562dd4b
--- /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' 'mips64el')
+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..dd9bce78e
--- /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 'mips64el')
+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..4e165bf32
--- /dev/null
+++ b/community/tinyproxy/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 55575 2011-09-14 10:47:03Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Andrea Zucchelli <zukka77@gmail.com>
+
+pkgname=tinyproxy
+pkgver=1.8.3
+pkgrel=1
+pkgdesc='A light-weight HTTP proxy daemon for POSIX operating systems.'
+arch=('i686' 'x86_64' 'mips64el')
+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=('292ac51da8ad6ae883d4ebf56908400d'
+ '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..524c14522
--- /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' 'mips64el')
+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..684ed1441
--- /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' 'mips64el')
+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..d8dcee95c
--- /dev/null
+++ b/community/tksystray/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 59200 2011-11-21 14:59:42Z 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' 'mips64el')
+url="http://tkabber.jabber.ru/tksystray"
+license=("GPL")
+depends=(tcl tk imlib)
+source=(ftp://ftp.archlinux.org/other/community/tksystray/tksystray_$pkgver.orig.tar.gz)
+md5sums=('d1784d2f786304bd6eaa82512fd5cf1c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-tcl=/usr/lib --with-tk=/usr/lib
+ make
+ mkdir -p $pkgdir/usr/lib/$pkgname-$pkgver
+ cp -rf libtray.so $pkgdir/usr/lib/$pkgname-$pkgver
+ cp -rf pkgIndex.tcl $pkgdir/usr/lib/$pkgname-$pkgver
+}
diff --git a/community/tktheme/PKGBUILD b/community/tktheme/PKGBUILD
new file mode 100644
index 000000000..5f9a7a64b
--- /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' 'mips64el')
+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..a12e807fb
--- /dev/null
+++ b/community/tls/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59810 2011-11-30 14:40:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s@gmail.com>
+# Contributor: Mario Vazquez <mariovazq@gmail.com>
+
+pkgname=tls
+pkgver=1.6
+pkgrel=4
+pkgdesc="OpenSSL extension to Tcl"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tls.sourceforge.net/"
+license=('GPL')
+depends=('tcl' 'openssl' 'awk')
+source=(http://downloads.sourceforge.net/project/tls/tls/$pkgver/tls$pkgver-src.tar.gz)
+md5sums=('eb326ff9e6fc3b9885aa5c72fb8df3bf')
+
+build() {
+ cd $srcdir/tls$pkgver
+ ./configure --prefix=/usr --with-ssl-dir=/usr
+ make
+}
+
+check() {
+ cd $srcdir/tls$pkgver
+# make test | awk '{print}/FAILED/{F=1}END{if(F)exit 1}'
+}
+
+package() {
+ cd $srcdir/tls$pkgver
+ make DESTDIR=$pkgdir install
+ ln -s tls$pkgver/libtls$pkgver.so $pkgdir/usr/lib/libtls$pkgver.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..c37dbd826
--- /dev/null
+++ b/community/tmux/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 51497 2011-07-10 19:49:12Z 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.5
+pkgrel=1
+pkgdesc="A terminal multiplexer"
+url="http://tmux.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('BSD')
+depends=('ncurses' 'libevent')
+source=(http://downloads.sourceforge.net/tmux/tmux-$pkgver.tar.gz
+ LICENSE)
+md5sums=('3d4b683572af34e83bc8b183a8285263'
+ '71601bc37fa44e4395580b321963018e')
+
+build() {
+ cd "$srcdir/tmux-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/tmux-$pkgver"
+ make install 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..fd1c65b13
--- /dev/null
+++ b/community/tmw/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 46816 2011-05-12 17:56:23Z mherych $
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=tmw
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="The Mana World (TMW) is a serious effort to create an innovative free and open source MMORPG."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://themanaworld.org"
+license=('GPL')
+depends=('curl' 'guichan' 'sdl_image' 'libgl' 'libxml2' 'physfs'
+'sdl_mixer' 'sdl_net' 'sdl_gfx' 'sdl_ttf')
+makedepends=('cmake' 'mesa')
+source=(http://downloads.sourceforge.net/sourceforge/themanaworld/$pkgname-$pkgver.tar.bz2)
+md5sums=('c843ef420aced82db1e51fa14e80174a')
+
+build() {
+ cd $srcdir
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/tnef/PKGBUILD b/community/tnef/PKGBUILD
new file mode 100644
index 000000000..e1e521a55
--- /dev/null
+++ b/community/tnef/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 55067 2011-09-01 21:53:31Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jeffrey 'jf' Lim <jfs.world@gmail.com>
+
+pkgname=tnef
+pkgver=1.4.8
+pkgrel=1
+arch=(i686 x86_64 'mips64el')
+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/tnef-$pkgver.tar.gz)
+md5sums=('cc6443ac5f30913394c0c16ae7941e4f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/tnftp/PKGBUILD b/community/tnftp/PKGBUILD
new file mode 100644
index 000000000..1dfa52704
--- /dev/null
+++ b/community/tnftp/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 56963 2011-10-17 10:15:04Z 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=2
+pkgdesc="NetBSD FTP client with several advanced features"
+arch=('i686' 'x86_64' 'mips64el')
+url="ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/"
+license=('BSD')
+depends=('ncurses' 'dante')
+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
+ make install DESTDIR=$pkgdir
+ install -Dm755 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/tomoyo-tools/PKGBUILD b/community/tomoyo-tools/PKGBUILD
new file mode 100644
index 000000000..c21b75200
--- /dev/null
+++ b/community/tomoyo-tools/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58253 2011-11-09 13:16:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jamie Nguyen <jamie AT tomoyolinux.co.uk>
+
+pkgname=tomoyo-tools
+_basever=2.4.0
+_timestamp=20111025
+_file=52848
+pkgver=${_basever}.${_timestamp}
+pkgrel=1
+pkgdesc='TOMOYO Linux 2.3.x userspace tools for Linux kernels 2.6.36 - 3.0'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://tomoyo.sourceforge.jp'
+#url='http://sourceforge.jp/projects/tomoyo/releases/?package_id=9818'
+license=('GPL')
+depends=('ncurses')
+conflicts=('ccs-tools')
+install=tomoyo-tools.install
+source=("http://sourceforge.jp/frs/redir.php?f=/tomoyo/${_file}/${pkgname}-${_basever}-${_timestamp}.tar.gz")
+md5sums=('eeee0afbccae2291e16dbbb64cf85370')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ make -j1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ make INSTALLDIR="${pkgdir}" install
+}
diff --git a/community/tomoyo-tools/tomoyo-tools.install b/community/tomoyo-tools/tomoyo-tools.install
new file mode 100644
index 000000000..695a53f19
--- /dev/null
+++ b/community/tomoyo-tools/tomoyo-tools.install
@@ -0,0 +1,11 @@
+post_install () {
+ echo
+ echo " * To enable TOMOYO Linux, append 'security=tomoyo' to the kernel"
+ echo " boot options and initialize policy with this command:"
+ echo " /usr/lib/tomoyo/init_policy"
+ echo
+}
+
+post_upgrade () {
+ post_install $1
+}
diff --git a/community/toolame/PKGBUILD b/community/toolame/PKGBUILD
new file mode 100644
index 000000000..b4ba3d230
--- /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' 'mips64el')
+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..61d53c4d6
--- /dev/null
+++ b/community/tor/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 57572 2011-10-30 21:39:28Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=tor
+pkgver=0.2.2.34
+pkgrel=1
+pkgdesc='Anonymizing overlay network.'
+arch=('i686' 'x86_64' 'mips64el')
+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=('0f1bbb8e086ea2aba41ff7f898fcf3bd'
+ '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..324e4d48c
--- /dev/null
+++ b/community/tora/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58339 2011-11-12 08:18:18Z andrea $
+# 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=3
+pkgdesc="Toolkit for databases with support for MySQL and PostgreSQL"
+arch=('i686' 'x86_64' 'mips64el')
+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}"
+ 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/tora/tora.install b/community/tora/tora.install
new file mode 100644
index 000000000..161b21e2b
--- /dev/null
+++ b/community/tora/tora.install
@@ -0,0 +1,19 @@
+# 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..f7b5d89ce
--- /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 'mips64el')
+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..63a03d633
--- /dev/null
+++ b/community/torcs/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 59309 2011-11-23 10:18:01Z spupykin $
+# 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' 'mips64el')
+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/_/-}
+ unset LDFLAGS
+ ./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/transset-df/PKGBUILD b/community/transset-df/PKGBUILD
new file mode 100644
index 000000000..6839abcf0
--- /dev/null
+++ b/community/transset-df/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 57820 2011-11-03 10:04:35Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=transset-df
+pkgver=6
+pkgrel=3
+pkgdesc="A patched version of X.Org's transset with added functionality."
+arch=('i686' 'x86_64' 'mips64el')
+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 -Dm0755 transset-df "${pkgdir}/usr/bin/transset-df"
+}
diff --git a/community/trayion/PKGBUILD b/community/trayion/PKGBUILD
new file mode 100644
index 000000000..365b18a9d
--- /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' 'mips64el')
+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..0e7ab68e5
--- /dev/null
+++ b/community/tre/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 56023 2011-09-29 06:45:36Z andrea $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de
+# Contributor: Igor Galic<i.galic@gmail.com>
+
+pkgname=tre
+pkgver=0.8.0
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="POSIX compliant regexp matching library. Includes agrep for aproximate grepping."
+url="http://laurikari.net/tre"
+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
+ make
+}
+
+package(){
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -Dm644 ${srcdir}/$pkgname-$pkgver/LICENSE \
+ ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+ 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
+}
diff --git a/community/tremulous/PKGBUILD b/community/tremulous/PKGBUILD
new file mode 100644
index 000000000..81f0e46a4
--- /dev/null
+++ b/community/tremulous/PKGBUILD
@@ -0,0 +1,72 @@
+#Contributor: Daenyth <Daenyth+arch [AT] gmail [dot] com>
+
+pkgname=tremulous
+pkgver=1.1.0
+pkgrel=9
+pkgdesc="A free team based FPS/RTS hybrid built on the ioq3 engine. Includes community updates."
+url="http://tremulous.net"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('sdl' 'openal>=1.7.411' 'libgl' "tremulous-data=$pkgver" "freetype2")
+makedepends=(mesa)
+provides=("tremulous-updated=$pkgver-$pkgrel")
+conflicts=('tremulous-updated')
+replaces=('trem-backport' 'tremulous-updated')
+source=(http://releases.mercenariesguild.net/client/mg-client-manual.txt
+ http://releases.mercenariesguild.net/client/mgclient_source_Release_1.011.tar.gz
+ http://releases.mercenariesguild.net/tremded/mg_tremded_source_1.01.tar.gz
+ http://projects.mercenariesguild.net/attachments/download/109/game.qvm
+ http://projects.mercenariesguild.net/attachments/download/111/lakitu7_qvm.txt
+ tremdedrc
+ tremulous.desktop
+ tremded.sh
+ tremulous.sh
+ tremulous.xpm
+ fix_fs26749.patch)
+
+backup=('etc/tremdedrc')
+noextract=(mg_tremded_source_1.01.tar.gz)
+
+md5sums=('e0e1b6e03e7596da00a77fe638560402'
+ '95e526b961f875ba66b6fdd4842c913b'
+ '938bdf944dff667b74e2132a87a49780'
+ '90343619d140557d0c481a61ffa5756c'
+ 'a0b8970b33a27798c125f9152049013c'
+ 'f0056120d0192a0d4d591d1114439c52'
+ 'aef37632a2edcf74a53503a49530bad2'
+ 'b755d7c022cddc449ca2de508dfeee30'
+ '8e89473f9fdb481ad44e5cea5f6f681e'
+ '7e3a881608f1c7c0ccece1e07fcf92d8'
+ 'e85511d8a9e7309dc24fb90917463900')
+
+build() {
+ local _arch=${CARCH/i686/x86}
+
+ # Build and install the server
+ mkdir -p $srcdir/tremded
+ bsdtar -x -C $srcdir/tremded -f $srcdir/mg_tremded_source_1.01.tar.gz
+ cd $srcdir/tremded
+ make || return 1
+ install -D -m755 build/release-linux-$_arch/tremded.$_arch $pkgdir/opt/tremulous/tremded.$_arch
+ install -D -m644 $srcdir/tremdedrc $pkgdir/etc/tremdedrc
+ install -D -m644 $srcdir/game.qvm $pkgdir/opt/tremulous/game.qvm
+ install -D -m755 $srcdir/tremded.sh $pkgdir/usr/bin/tremded
+
+ # Build and install the client
+ cd $srcdir/Release_1.011
+ patch -Np1 -i $srcdir/fix_fs26749.patch || return 1
+ make || return 1
+ install -Dm755 build/release-linux-$_arch/tremulous.$_arch $pkgdir/opt/tremulous/tremulous.$_arch
+ install -D -m755 $srcdir/tremulous.sh $pkgdir/usr/bin/tremulous
+
+ # Install the documentation
+ install -Dm644 $srcdir/mg-client-manual.txt $pkgdir/usr/share/tremulous/mg-client-manual.txt
+ install -Dm644 $srcdir/lakitu7_qvm.txt $pkgdir/usr/share/tremulous/lakitu7_qvm.txt
+
+ # Install the .desktop and icon files
+ install -D -m644 $srcdir/tremulous.xpm $pkgdir/usr/share/pixmaps/tremulous.xpm
+ install -D -m644 $srcdir/tremulous.desktop $pkgdir/usr/share/applications/tremulous.desktop
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/tremulous/fix_fs26749.patch b/community/tremulous/fix_fs26749.patch
new file mode 100644
index 000000000..12a73138c
--- /dev/null
+++ b/community/tremulous/fix_fs26749.patch
@@ -0,0 +1,21 @@
+diff -ruN Release_1.011-old/src/qcommon/parse.c Release_1.011/src/qcommon/parse.c
+--- Release_1.011-old/src/qcommon/parse.c 2011-12-02 19:11:49.307368651 -0500
++++ Release_1.011/src/qcommon/parse.c 2011-12-02 19:13:27.556836387 -0500
+@@ -981,7 +981,7 @@
+ {
+ if (*string == '\"')
+ {
+- strcpy(string, string+1);
++ memmove(string, string+1, strlen(string));
+ }
+ if (string[strlen(string)-1] == '\"')
+ {
+@@ -1784,7 +1784,7 @@
+ if ((*ptr == '\\' || *ptr == '/') &&
+ (*(ptr+1) == '\\' || *(ptr+1) == '/'))
+ {
+- strcpy(ptr, ptr+1);
++ memmove(ptr, ptr+1, strlen(ptr));
+ }
+ else
+ {
diff --git a/community/tremulous/tremded.sh b/community/tremulous/tremded.sh
new file mode 100644
index 000000000..339bdd501
--- /dev/null
+++ b/community/tremulous/tremded.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+CARCH=`uname -m`
+ext=x86; [ "$CARCH" = 'x86_64' ] && ext=x86_64
+
+[ -f /etc/tremdedrc ] && . /etc/tremdedrc
+[ -f "$HOME/.tremdedrc" ] && . "$HOME/.tremdedrc"
+
+if [ ! -r "$HOME/.tremulous/base/vm/game.qvm" ]; then
+ echo "Cannot find game.qvm -- linking to installed version."
+ if [ ! -d "$HOME/.tremulous/base/vm" ]; then
+ mkdir -p "$HOME/.tremulous/base/vm/" || exit 1
+ fi
+ ln -s /opt/tremulous/game.qvm "$HOME/.tremulous/base/vm/game.qvm" || exit 1
+fi
+
+cd /opt/tremulous/
+./tremded.$ext "$TREM_ARGS" "$@"
diff --git a/community/tremulous/tremdedrc b/community/tremulous/tremdedrc
new file mode 100644
index 000000000..7fbe122f6
--- /dev/null
+++ b/community/tremulous/tremdedrc
@@ -0,0 +1 @@
+TREM_ARGS="+set dedicated 1 +exec server.cfg"
diff --git a/community/tremulous/tremulous.desktop b/community/tremulous/tremulous.desktop
new file mode 100644
index 000000000..357c357bd
--- /dev/null
+++ b/community/tremulous/tremulous.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Tremulous
+Comment=A free team based FPS/RTS hybrid built on the ioq3 engine. Includes community updates.
+Icon=/usr/share/pixmaps/tremulous.xpm
+Exec=tremulous
+Terminal=false
+Categories=Game;ActionGame;
diff --git a/community/tremulous/tremulous.sh b/community/tremulous/tremulous.sh
new file mode 100644
index 000000000..01575befc
--- /dev/null
+++ b/community/tremulous/tremulous.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+CARCH=`uname -m`
+ext=x86; [ "$CARCH" = 'x86_64' ] && ext=x86_64
+
+if [ ! -r "$HOME/.tremulous/base/vm/game.qvm" ]; then
+ echo "Cannot find game.qvm -- linking to installed version."
+ if [ ! -d "$HOME/.tremulous/base/vm" ]; then
+ mkdir -p "$HOME/.tremulous/base/vm/" || exit 1
+ fi
+ ln -s /opt/tremulous/game.qvm "$HOME/.tremulous/base/vm/game.qvm" || exit 1
+fi
+
+cd /opt/tremulous/
+./tremulous.$ext "$@"
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..5560361cd
--- /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' 'mips64el')
+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/tucan/PKGBUILD b/community/tucan/PKGBUILD
new file mode 100644
index 000000000..8f4f3c81d
--- /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' 'mips64el')
+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..2be7171be
--- /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' 'mips64el')
+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..e9cffb4cf
--- /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' 'mips64el')
+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..4bb779b52
--- /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' 'mips64el')
+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..feb55fae9
--- /dev/null
+++ b/community/tuxguitar/PKGBUILD
@@ -0,0 +1,112 @@
+# $Id: PKGBUILD 59148 2011-11-21 12:35:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: |AhIoRoS| < ahioros@gmail.com >
+
+pkgname=tuxguitar
+pkgver=1.2
+pkgrel=4
+_jdk=java-7-openjdk
+pkgdesc="multitrack guitar tablature editor and player"
+arch=('i686' 'x86_64' 'mips64el')
+#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' 'fluidsynth' 'java-environment')
+optdepends=('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)
+ (cd TuxGuitar-alsa/ && ant)
+ (cd TuxGuitar-fluidsynth/ && ant)
+ (cd TuxGuitar-jack/ && ant)
+ (cd TuxGuitar-oss/ && ant)
+ (cd TuxGuitar-compat/ && ant)
+ (cd TuxGuitar-gtp/ && ant)
+ (cd TuxGuitar-ptb/ && ant)
+ (cd TuxGuitar-tef/ && ant)
+ (cd TuxGuitar-midi/ && ant)
+ (cd TuxGuitar-lilypond/ && ant)
+ (cd TuxGuitar-musicxml/ && ant)
+ (cd TuxGuitar-ascii/ && ant)
+ (cd TuxGuitar-converter/ && ant)
+ (cd TuxGuitar-tray/ && ant)
+ (cd TuxGuitar-community/ && ant)
+ (cd TuxGuitar-gervill/ && ant)
+ (cd TuxGuitar-jsa/ && ant)
+
+ 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/
+
+ # alsa
+ pushd TuxGuitar-alsa/jni
+ gcc -I/usr/lib/jvm/${_jdk}/include -I/usr/lib/jvm/${_jdk}/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
+ popd
+
+ # oss
+ pushd TuxGuitar-oss/jni
+ gcc -I/usr/lib/jvm/${_jdk}/include -I/usr/lib/jvm/${_jdk}/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
+ popd
+
+ # jack
+ pushd TuxGuitar-jack/jni
+ gcc -I/usr/lib/jvm/${_jdk}/include -I/usr/lib/jvm/${_jdk}/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
+ popd
+
+ # fluidsynth
+ pushd TuxGuitar-fluidsynth/jni
+ gcc -I/usr/lib/jvm/${_jdk}/include -I/usr/lib/jvm/${_jdk}/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
+ popd
+
+ cd $pkgdir/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..ec083254d
--- /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' 'mips64el')
+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..0b89dcc1d
--- /dev/null
+++ b/community/tvision/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 57007 2011-10-18 03:49:00Z ebelanger $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=tvision
+pkgver=2.2.1_r1
+pkgrel=2
+pkgdesc="turbo vision library port (console interface)"
+arch=(i686 x86_64 'mips64el')
+url="http://tvision.sourceforge.net"
+license=("GPL")
+depends=(gpm gcc-libs libxmu)
+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
+ 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..e54707192
--- /dev/null
+++ b/community/tvtime/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59091 2011-11-21 09:46:20Z spupykin $
+# 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' 'mips64el')
+url='http://tvtime.sourceforge.net/'
+license=('GPL' 'LGPL')
+depends=('gcc-libs' 'libpng' 'libxml2' 'freetype2' 'libxtst' 'libxinerama' 'libxv'
+ 'libsm' 'libxxf86vm')
+makedepends=('libxt' 'v4l-utils')
+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'
+ 'e956821745686b5b3a784f7471996ade'
+ 'c782789825dfa664e1f6fcc96ac7246c'
+ '1069dc5b47bba8456cbf48e34cb5c0b6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 < ../tvtime-1.0.2+linux-headers-2.6.18.patch
+ patch -p1 < ../tvtime-1.0.2-gcc41.patch
+ patch -p1 < ../tvtime-1.0.2-locale_t.patch
+ [ -f Makefile ] || ./configure --prefix=/usr --mandir=/usr/share/man --localstatedir=/var --sysconfdir=/etc
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m644 docs/html/default.tvtime.xml $pkgdir/usr/share/tvtime/default.tvtime.xml
+}
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..d0772783d
--- /dev/null
+++ b/community/tvtime/tvtime-1.0.2+linux-headers-2.6.18.patch
@@ -0,0 +1,16 @@
+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,9 @@
+ #ifdef HAVE_CONFIG_H
+ # include "config.h"
+ #endif
+-#include "videodev.h"
+-#include "videodev2.h"
++#include <libv4l1-videodev.h>
++#include <linux/videodev2.h>
++#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
+ #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..03aa1ae09
--- /dev/null
+++ b/community/twin/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 59233 2011-11-21 15:28:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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' 'mips64el')
+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://arch.p5n.pp.ru/~sergej/dl/2011/twin-$pkgver.tar.gz)
+md5sums=('6211c8b2e655003eb96b1fc5dc37e7d9')
+
+build() {
+ cd $srcdir/$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
+ make -j1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/twinkle/PKGBUILD b/community/twinkle/PKGBUILD
new file mode 100644
index 000000000..850dad358
--- /dev/null
+++ b/community/twinkle/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59974 2011-12-02 21:01:27Z ibiru $
+# 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=12
+pkgdesc="A softphone for voice over IP and instant messaging communications using the SIP protocol"
+arch=('i686' 'x86_64' 'mips64el')
+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..461714d7a
--- /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' 'mips64el')
+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/ucarp/01-fix-getopt.patch b/community/ucarp/01-fix-getopt.patch
new file mode 100644
index 000000000..9a4b21eeb
--- /dev/null
+++ b/community/ucarp/01-fix-getopt.patch
@@ -0,0 +1,11 @@
+--- ucarp-1.5.1.orig/src/ucarp_p.h
++++ ucarp-1.5.1/src/ucarp_p.h
+@@ -1,7 +1,7 @@
+ #ifndef __CARP_P_H__
+ #define __CARP_P_H__ 1
+
+-static const char *GETOPT_OPTIONS = "i:s:v:p:Pa:hb:k:x:nu:d:r:zf:BoSM";
++static const char *GETOPT_OPTIONS = "i:s:v:p:Pa:hb:k:x:nu:d:r:zf:Bo:SM";
+
+ static struct option long_options[] = {
+ { "interface", 1, NULL, 'i' },
diff --git a/community/ucarp/02-fix-downscript-on-error.c b/community/ucarp/02-fix-downscript-on-error.c
new file mode 100644
index 000000000..08af568b4
--- /dev/null
+++ b/community/ucarp/02-fix-downscript-on-error.c
@@ -0,0 +1,12 @@
+--- ucarp-1.5.1.orig/src/carp.c
++++ ucarp-1.5.1/src/carp.c
+@@ -843,6 +843,9 @@
+ if ((pfds[0].revents & (POLLERR | POLLHUP)) != 0) {
+ logfile(LOG_ERR, _("exiting: pfds[0].revents = %d"),
+ pfds[0].revents);
++ if ((sc.sc_state != BACKUP) && (shutdown_at_exit != 0)) {
++ (void) spawn_handler(dev_desc_fd, downscript);
++ }
+ break;
+ }
+ if (gettimeofday(&now, NULL) != 0) {
diff --git a/community/ucarp/PKGBUILD b/community/ucarp/PKGBUILD
new file mode 100644
index 000000000..fa1879371
--- /dev/null
+++ b/community/ucarp/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id$
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+
+pkgname=ucarp
+pkgver=1.5.2
+pkgrel=1
+pkgdesc='UCARP is a portable implementation of the CARP protocol'
+arch=('i686' 'x86_64')
+url='http://www.ucarp.org/project/ucarp'
+license=('GPL2')
+depends=('libpcap')
+optdepends=('iproute2')
+source=("http://download.pureftpd.org/pub/ucarp/ucarp-$pkgver.tar.gz"
+ 'ucarp.rc'
+ 'ucarp.conf'
+ '01-fix-getopt.patch'
+ '02-fix-downscript-on-error.c')
+md5sums=('e3caa733316a32c09e5d3817617e9145'
+ 'd941d2978c5b43154a29212115729519'
+ '35d1aabe416384e6fd8bd62312dbdb25'
+ '3f20699aaf2ef8139dcd337f1e7f06ab'
+ '09d26233c37956cf08e629554a91b8cd')
+
+build() {
+ cd $pkgname-$pkgver
+ patch -N -p1 -i ../01-fix-getopt.patch
+ patch -N -p1 -i ../02-fix-downscript-on-error.c
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+
+ # fix iproute2 path
+ sed -i "s|/sbin|/usr/sbin|g" examples/linux/vip-down.sh
+ sed -i "s|/sbin|/usr/sbin|g" examples/linux/vip-up.sh
+}
+
+package() {
+ # add initscripts
+ install -D -m 755 $pkgname.rc "${pkgdir}/etc/rc.d/$pkgname"
+ install -D -m 644 $pkgname.conf "${pkgdir}/etc/conf.d/$pkgname"
+
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ install -D -m 755 examples/linux/vip-down.sh "$pkgdir/etc/ucarp/vip-down.sh"
+ install -D -m 755 examples/linux/vip-up.sh "$pkgdir/etc/ucarp/vip-up.sh"
+
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ucarp/ucarp.conf b/community/ucarp/ucarp.conf
new file mode 100644
index 000000000..3b7ae2118
--- /dev/null
+++ b/community/ucarp/ucarp.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+DAEMON_OPTS='--daemonize --interface=eth0 --srcip=10.1.1.1 --vhid=1 --pass=mypassword --addr=10.1.1.252 --upscript=/etc/ucarp/vip-up.sh --downscript=/etc/ucarp/vip-down.sh'
diff --git a/community/ucarp/ucarp.rc b/community/ucarp/ucarp.rc
new file mode 100644
index 000000000..33f40268f
--- /dev/null
+++ b/community/ucarp/ucarp.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+NAME=ucarp
+DAEMON=/usr/sbin/ucarp
+PID=$(pidof -o %PPID $DAEMON)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping $NAME daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh noet:
diff --git a/community/ucl/PKGBUILD b/community/ucl/PKGBUILD
new file mode 100644
index 000000000..0ac1bb6e1
--- /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' 'mips64el')
+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..f30a0faf0
--- /dev/null
+++ b/community/ude/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 50701 2011-06-29 17:35:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+
+pkgname=ude
+pkgver=0.2.10a
+pkgrel=2
+pkgdesc="Unix Desktop Environment is a GUI desktop environment"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1370418179f56612ffe63d6ed0c89d13'
+ '84f94253ea284258c4465cd76edf599f')
+
+build() {
+ cd $srcdir/uwm-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/uwm-$pkgver
+ mkdir -p $pkgdir/etc/X11/sessions
+ make prefix=$pkgdir/usr install
+ cp $srcdir/$pkgname.desktop $pkgdir/etc/X11/sessions
+ mv $pkgdir/usr/doc $pkgdir/usr/share/
+}
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..782e4fd24
--- /dev/null
+++ b/community/udunits/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 44910 2011-04-12 18:07:39Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+
+pkgname=udunits
+pkgver=2.1.22
+pkgrel=2
+pkgdesc='A tool for calculations of physical quantities'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.unidata.ucar.edu/software/udunits/'
+license=('custom')
+options=('!libtool')
+depends=('glibc' 'expat')
+provides=('udunits2')
+install=udunits.install
+source=("ftp://ftp.unidata.ucar.edu/pub/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('9a1972a1389a9a613beacd9b05aef6ed')
+
+build() {
+ # stupid workaround for broken make install
+ install -dm755 $pkgdir/usr/share/doc/$pkgname
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make; make DESTDIR=$pkgdir install
+
+ for x in so so.0 so.0.1.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/ulogd/PKGBUILD b/community/ulogd/PKGBUILD
new file mode 100644
index 000000000..c4ea91a7c
--- /dev/null
+++ b/community/ulogd/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 55184 2011-09-05 09:03:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Sergej Pupykin <ps@lx-ltd.ru>
+
+pkgname=ulogd
+pkgver=1.24
+pkgrel=7
+pkgdesc='Userspace Packet Logging for netfilter'
+arch=('i686' 'x86_64')
+url='http://www.netfilter.org/projects/ulogd/index.html'
+license=('GPL2')
+makedepends=('mysql' 'postgresql' 'sqlite3' 'libpcap')
+optdepends=('postgresql-libs'
+ 'sqlite3'
+ 'libpcap'
+ 'libmysqlclient')
+backup=('etc/ulogd.conf')
+source=("ftp://ftp.netfilter.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'rc'
+ 'logrotate')
+md5sums=('05b4ed2926b9a22aaeaf642917bbf8ff'
+ 'c42230c1cabf5dd9b80bf9a0fd87ca7e'
+ 'fe40b3073b7474a77e0b8b0bfd19ab63')
+
+build() {
+ cd $pkgname-$pkgver
+ export MAKEFLAGS="-j1"
+ ./configure --prefix=/usr --sysconfdir=/etc --with-mysql --with-pgsql --with-sqlite3
+ make || true
+ (cd mysql && ld -shared -L/usr/lib -L/usr/lib -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -o ulogd_MYSQL.so ulogd_MYSQL_sh.o -lc)
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ chmod 644 "$pkgdir/etc/ulogd.conf"
+ install -d -m 755 "$pkgdir/usr/share/ulogd"
+ install -m644 doc/*.table "$pkgdir/usr/share/ulogd"
+ install -D -m644 "$srcdir/logrotate" "$pkgdir/etc/logrotate.d/ulogd"
+ install -D -m755 "$srcdir/rc" "$pkgdir/etc/rc.d/ulogd"
+}
diff --git a/community/ulogd/logrotate b/community/ulogd/logrotate
new file mode 100644
index 000000000..c104ad511
--- /dev/null
+++ b/community/ulogd/logrotate
@@ -0,0 +1,10 @@
+/var/log/ulogd.* {
+ missingok
+ notifempty
+ sharedscripts
+ create 0640 root root
+
+ postrotate
+ [ -e /var/run/ulogd.pid ] && /etc/rc.d/ulogd restart > /dev/null
+ endscript
+}
diff --git a/community/ulogd/rc b/community/ulogd/rc
new file mode 100644
index 000000000..83f0550cc
--- /dev/null
+++ b/community/ulogd/rc
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/sbin/ulogd
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting ulogd daemon"
+
+ [ -f /var/run/ulog.pid ] && rm -f /var/run/ulog.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ /usr/sbin/ulogd -d &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/ulogd.pid
+ add_daemon ulogd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping ulog daemon"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ulogd.pid &> /dev/null
+ rm_daemon ulogd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ultimate-ircd/PKGBUILD b/community/ultimate-ircd/PKGBUILD
new file mode 100644
index 000000000..72f8e8ab4
--- /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 'mips64el')
+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..46c03ecb7
--- /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 'mips64el')
+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..07109a954
--- /dev/null
+++ b/community/unbound/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 57055 2011-10-19 13:43:09Z bisson $
+
+# 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.13
+pkgrel=2
+pkgdesc='Validating, recursive, and caching DNS resolver'
+arch=('i686' 'x86_64' 'mips64el')
+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=('834ccfd1cb41a44f53b33f8338a8f9cc68febaf7'
+ '5d473ec2943fd85367cdb653fcd58e186f07383f'
+ 'dc96e772f467b32555df21d16fdb15e98194c228')
+
+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..b5b6466de
--- /dev/null
+++ b/community/unbound/rc.d
@@ -0,0 +1,39 @@
+#!/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; }
+ ;;
+reload)
+ stat_busy "Reloading $name daemon"
+ [[ -n "$PID" ]] && kill -SIGHUP $PID &>/dev/null \
+ && { 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..aad154b49
--- /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' 'mips64el')
+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/unhide/PKGBUILD b/community/unhide/PKGBUILD
new file mode 100644
index 000000000..c825f5e48
--- /dev/null
+++ b/community/unhide/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 54495 2011-08-19 08:09:31Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=unhide
+pkgver=20110113
+pkgrel=2
+pkgdesc='A forensic tool to find processes hidden by rootkits, LKMs or by other techniques.'
+arch=('i686' 'x86_64')
+url='http://www.unhide-forensics.info/'
+license=('GPL3')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tgz")
+md5sums=('0dff8ee5029615f1f81db96dcf6758f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cc -Os -static unhide.c -o unhide-posix
+ cc -Os -static -pthread unhide-linux26.c -o unhide-linux26
+ cc -Os -static unhide-tcp.c -o unhide-tcp
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -Dm0755 unhide-posix "${pkgdir}/usr/sbin/unhide-posix"
+ install -Dm0755 unhide-linux26 "${pkgdir}/usr/sbin/unhide-linux26"
+ install -Dm0755 unhide-tcp "${pkgdir}/usr/sbin/unhide-tcp"
+ ln -fs ./unhide-linux26 "${pkgdir}/usr/sbin/unhide"
+ install -Dm0644 man/unhide.8 "${pkgdir}/usr/share/man/man8/unhide.8"
+}
+
diff --git a/community/uniconvertor/PKGBUILD b/community/uniconvertor/PKGBUILD
new file mode 100644
index 000000000..f5e1eccb3
--- /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' 'mips64el')
+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..cdb7ee936
--- /dev/null
+++ b/community/unifdef/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 53255 2011-08-02 14:56:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=unifdef
+pkgver=2.6
+pkgrel=1
+pkgdesc="Remove #ifdef'ed lines"
+arch=(i686 x86_64 'mips64el')
+url="http://dotat.at/prog/unifdef/"
+license=('GPL')
+depends=()
+source=("http://dotat.at/prog/unifdef/unifdef-$pkgver.tar.gz")
+md5sums=('18b832baea2c7b6b00bd7d4f3db38f62')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make clean
+ make
+ mkdir -p $pkgdir/usr/bin $startdir/pkg/usr/share/man/man1
+ install -m 0755 unifdef $pkgdir/usr/bin/
+ install -m 0644 unifdef.1 $pkgdir/usr/share/man/man1/
+}
diff --git a/community/units/PKGBUILD b/community/units/PKGBUILD
new file mode 100644
index 000000000..ad4c43b11
--- /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' 'mips64el')
+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..52b0a52ed
--- /dev/null
+++ b/community/unpaper/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 44854 2011-04-12 08:56:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Hauser <andy-aur@splashground.de>
+
+pkgname=unpaper
+pkgver=0.3
+pkgrel=2
+pkgdesc="post-processing tool for scanned sheets of paper"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://$pkgname.berlios.de/"
+license="GPL"
+depends=()
+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
+ install -d -m0755 $pkgdir/usr/share/doc/unpaper
+ cp -a ../doc/* $pkgdir/usr/share/doc/unpaper
+}
diff --git a/community/unrealircd/PKGBUILD b/community/unrealircd/PKGBUILD
new file mode 100644
index 000000000..41de79973
--- /dev/null
+++ b/community/unrealircd/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 60367 2011-12-12 09:58:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zerial <fernando@zerial.org>
+
+pkgname=unrealircd
+pkgver=3.2.9
+pkgrel=2
+pkgdesc="Open Source IRC Server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://unrealircd.com"
+license=('GPL2')
+depends=('openssl' 'curl' 'c-ares')
+conflicts=('ircd')
+provides=('ircd')
+backup=(etc/unrealircd/unrealircd.conf)
+source=(http://www.unrealircd.com/downloads/Unreal$pkgver.tar.gz
+ unrealircd.rc
+ arch-fixes.patch)
+md5sums=('bde023695347969f545ce5f2a9ac9aed'
+ '07ffa1e82a01f319a8b997e155d2af1d'
+ '77807313c4578f2c30286b9f9e3fb21c')
+
+build() {
+ mkdir -p $pkgdir/etc/unrealircd
+ mkdir -p $pkgdir/usr/bin
+ cd $srcdir/Unreal3.2
+
+ patch -p1 <$srcdir/arch-fixes.patch
+
+ ./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 \
+ --with-system-cares
+
+ 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
+
+ mkdir -p $pkgdir/etc/conf.d/
+ echo 'UNREALIRCD_USER=root' >$pkgdir/etc/conf.d/unrealircd
+
+ find $pkgdir/usr -type f -exec chmod ugo+r {} \;
+ find $pkgdir/usr -type d -exec chmod ugo+rx {} \;
+}
diff --git a/community/unrealircd/arch-fixes.patch b/community/unrealircd/arch-fixes.patch
new file mode 100644
index 000000000..a1741968d
--- /dev/null
+++ b/community/unrealircd/arch-fixes.patch
@@ -0,0 +1,89 @@
+diff -wbBur Unreal3.2.org/doc/example.conf Unreal3.2/doc/example.conf
+--- Unreal3.2.org/doc/example.conf 2009-04-13 15:03:55.000000000 +0400
++++ Unreal3.2/doc/example.conf 2011-08-29 13:39:25.000000000 +0400
+@@ -33,8 +33,8 @@
+ */
+
+ /* FOR *NIX, uncomment the following 2lines: */
+-//loadmodule "src/modules/commands.so";
+-//loadmodule "src/modules/cloak.so";
++loadmodule "modules/commands.so";
++loadmodule "modules/cloak.so";
+
+ /* FOR Windows, uncomment the following 2 lines: */
+ //loadmodule "modules/commands.dll";
+diff -wbBur Unreal3.2.org/src/ircd.c Unreal3.2/src/ircd.c
+--- Unreal3.2.org/src/ircd.c 2009-03-01 21:37:58.000000000 +0300
++++ Unreal3.2/src/ircd.c 2011-08-29 13:39:25.000000000 +0400
+@@ -844,7 +844,7 @@
+ const char *compiledfor, *runtime;
+ int error = 0;
+
+-#ifdef USE_SSL
++#if 0
+ compiledfor = OPENSSL_VERSION_TEXT;
+ runtime = SSLeay_version(SSLEAY_VERSION);
+ if (strcasecmp(compiledfor, runtime))
+@@ -854,7 +854,7 @@
+ error=1;
+ }
+ #endif
+-#ifdef ZIP_LINKS
++#if 0
+ runtime = zlibVersion();
+ compiledfor = ZLIB_VERSION;
+ if (*compiledfor != *runtime)
+@@ -864,7 +864,7 @@
+ error = 1;
+ }
+ #endif
+-#ifdef USE_LIBCURL
++#if 0
+ /* Perhaps someone should tell them to do this a bit more easy ;)
+ * problem is runtime output is like: 'libcurl/7.11.1 zlib/1.2.1 c-ares/1.2.0'
+ * while header output is like: '7.11.1'.
+diff -wbBur Unreal3.2.org/unreal.in Unreal3.2/unreal.in
+--- Unreal3.2.org/unreal.in 2009-03-01 21:37:55.000000000 +0300
++++ Unreal3.2/unreal.in 2011-08-29 13:39:37.000000000 +0400
+@@ -7,7 +7,7 @@
+ if [ -r $PID_FILE ] ; then
+ mv -f $PID_FILE $PID_BACKUP
+ fi
+- @BINDIR@
++ @BINDIR@/ircd
+ sleep 1
+ if [ ! -r $PID_FILE ] ; then
+ echo "Possible error encountered (IRCd seemingly not started)"
+@@ -31,11 +31,11 @@
+ echo "Restarting UnrealIRCd"
+ kill -2 `cat $PID_FILE`
+ elif [ "$1" = "mkpasswd" ] ; then
+- @BINDIR@ -P $2 $3
++ @BINDIR@/ircd -P $2 $3
+ elif [ "$1" = "version" ] ; then
+- @BINDIR@ -v
++ @BINDIR@/ircd -v
+ elif [ "$1" = "gencloak" ] ; then
+- @BINDIR@ -k
++ @BINDIR@/ircd -k
+ elif [ "$1" = "backtrace" ] ; then
+ cd @IRCDDIR@
+
+@@ -90,7 +90,7 @@
+ fi
+
+ # Some ugly prepare work -- ignore errors
+- (echo quit|gdb @BINDIR@ $corefile 2>&1)|\
++ (echo quit|gdb @BINDIR@/ircd $corefile 2>&1)|\
+ grep -i 'no such file'|\
+ awk -F ':' '{ print $1 }'|sort|uniq|\
+ awk -F '.' "{ system(\"ln -s ../$modpath/\" \$2 \".so \" \$0) }"
+@@ -110,7 +110,7 @@
+ quit
+ __EOF__
+
+- gdb -batch -x gdb.commands @BINDIR@ $corefile
++ gdb -batch -x gdb.commands @BINDIR@/ircd $corefile
+ rm -f gdb.commands
+ echo "GCC: `gcc -v 2>&1|tail -n 1`"
+ echo "UNAME: `uname -a`"
diff --git a/community/unrealircd/unrealircd.rc b/community/unrealircd/unrealircd.rc
new file mode 100755
index 000000000..2cede46c8
--- /dev/null
+++ b/community/unrealircd/unrealircd.rc
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+daemon_name=unrealircd
+
+. /etc/conf.d/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"
+ su -c /usr/bin/unrealircd -p - $UNREALIRCD_USER 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..bce1f2817
--- /dev/null
+++ b/community/unrtf/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 60272 2011-12-08 20:04:08Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: froggie <sullivanva@gmail.com>
+
+pkgname=unrtf
+pkgver=0.21.2
+pkgrel=1
+pkgdesc="Command-line program which converts RTF documents to other formats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/unrtf/unrtf.html"
+license=('GPL3')
+depends=('glibc')
+changelog=$pkgname.changelog
+source=(http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('acb1b093dd2c7485fc43b128ccaf665d6188f568752cec96d54b693374caddb0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+# bugfix FS#14043
+ sed -e 's|/usr/local|/usr|' -i src/{main.h,path.h}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/unrtf/unrtf.changelog b/community/unrtf/unrtf.changelog
new file mode 100644
index 000000000..04b898b16
--- /dev/null
+++ b/community/unrtf/unrtf.changelog
@@ -0,0 +1,11 @@
+2011-12-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * unrtf 0.21.2
+
+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/unshield/PKGBUILD b/community/unshield/PKGBUILD
new file mode 100644
index 000000000..38cf6894b
--- /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' 'mips64el')
+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..44bd457cd
--- /dev/null
+++ b/community/uptimed/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 58644 2011-11-16 23:03:01Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: 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 'mips64el')
+url="http://podgorny.cz/uptimed/"
+license=('GPL')
+depends=('glibc' 'bash')
+backup=(etc/uptimed.conf)
+options=('!libtool')
+install=$pkgname.install
+source=(http://podgorny.cz/$pkgname/releases/$pkgname-$pkgver.tar.bz2
+ uptimed)
+md5sums=('f87ec2cc39039239004afa542cf99c59'
+ '4ae90bee9fc78014a889a5072effb735')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Change log path to Arch standard
+ for M in `ls M*`; do
+ sed -i "s|/var/spool/uptimed|$pkgdir/var/log/uptimed|" $M
+ done
+ sed -i 's|spool|log|' libuptimed/urec.h
+
+ autoreconf
+ libtoolize --force
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr sysconfdir=$pkgdir/etc install
+
+ mv $pkgdir/etc/uptimed.conf-dist $pkgdir/etc/uptimed.conf
+ install -D $srcdir/uptimed $pkgdir/etc/rc.d/uptimed
+}
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..e3d172960
--- /dev/null
+++ b/community/upx/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: bekks <eduard.warkentin@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=upx
+pkgver=3.07
+pkgrel=2
+pkgdesc='Ultimate executable compressor.'
+arch=('i686' 'x86_64' 'mips64el')
+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 -Dm0755 src/upx.out "${pkgdir}/usr/bin/upx"
+ install -Dm0644 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..d88533b02
--- /dev/null
+++ b/community/uqm/PKGBUILD
@@ -0,0 +1,59 @@
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# 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.7.0
+pkgrel=1
+pkgdesc="The Ur-Quan Masters is a port of Star Control 2"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sc2.sf.net/"
+license=('GPL')
+depends=('libmikmod' 'libvorbis' 'sdl_image' 'libgl')
+makedepends=('imagemagick' 'mesa' 'namcap')
+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-${pkgver}-content.uqm
+ config.state
+ uqm
+ uqm.desktop
+ uqm.png)
+noextract=(uqm-${pkgver}-content.uqm)
+md5sums=('f9018ea0493d7dac6a9e1006b00af7df'
+ '2f36dcb15274dbbcb5e266f2ed84d5b2'
+ '07f0a0e74a0b1c706940cc43d5a4160c'
+ '07e64632fce6323a14ab558d0214b885'
+ '44c83b9b9d102b99210af0036749a318'
+ '06d0a72aa18e7edce6cd3c7a3a747c44')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ cp $srcdir/config.state .
+ sed -e "/INPUT_install_prefix/ s|replaceme|$pkgdir/usr|" \
+ -i config.state
+
+ echo | ./build.sh uqm config
+
+ ./build.sh uqm
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./build.sh uqm install
+
+ install -Dm644 $srcdir/$pkgname-$pkgver-content.uqm \
+ $pkgdir/usr/share/uqm/content/packages/$pkgname-$pkgver-content.uqm
+
+ # stolen from fedora!
+ install -Dm644 $srcdir/uqm.desktop \
+ $pkgdir/usr/share/applications/uqm.desktop
+ install -Dm644 $srcdir/uqm.png \
+ $pkgdir/usr/share/pixmaps/uqm.png
+
+ rm $pkgdir/usr/bin/uqm
+ install -Dm755 $srcdir/uqm $pkgdir/usr/bin/uqm
+}
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/uqm/uqm.desktop b/community/uqm/uqm.desktop
new file mode 100644
index 000000000..7a0e46882
--- /dev/null
+++ b/community/uqm/uqm.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=The Ur-Quan Masters
+Comment=An epic space adventure
+Comment[fi]=Eeppinen avaruusseikkailu
+Exec=uqm
+Icon=uqm
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Application;Game;ArcadeGame;StrategyGame;
diff --git a/community/uqm/uqm.png b/community/uqm/uqm.png
new file mode 100644
index 000000000..64765a43b
--- /dev/null
+++ b/community/uqm/uqm.png
Binary files differ
diff --git a/community/uriparser/PKGBUILD b/community/uriparser/PKGBUILD
new file mode 100644
index 000000000..73bef5e46
--- /dev/null
+++ b/community/uriparser/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59139 2011-11-21 12:26:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# 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)
+arch=('i686' 'x86_64')
+license=("custom")
+source=(http://downloads.sourceforge.net/sourceforge/uriparser/$pkgname-$pkgver.tar.bz2)
+md5sums=('4f4349085fe5de33bcae8d0f26649593')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ [ -f Makefile ] || ./configure --prefix=/usr --disable-test
+ ln -s ${srcdir}/$pkgname-$pkgver/doc/Doxyfile.in ${srcdir}/$pkgname-$pkgver/doc/Doxyfile
+ sed -i 's|{css,gif,html,png}|{css,html,png}|' doc/Makefile
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m644 "${srcdir}/$pkgname-$pkgver/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/usb_modeswitch/PKGBUILD b/community/usb_modeswitch/PKGBUILD
new file mode 100644
index 000000000..f1fd5c300
--- /dev/null
+++ b/community/usb_modeswitch/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 58972 2011-11-20 18:14:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=usb_modeswitch
+pkgver=1.2.0
+pkgrel=1
+_pkgdata=20111023
+pkgdesc="Activating switchable USB devices on Linux."
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ "http://www.draisberghof.de/usb_modeswitch/device_reference.txt")
+md5sums=('1932ab96d6e3c5e0a6bdfac863338627'
+ '6e7cb67d0428bda241600b038ba11aeb'
+ '1378c0319520c817d49c7e9457c7d6e3')
+
+build() {
+ cd $srcdir/usb-modeswitch-$pkgver/
+ make clean
+ make
+}
+
+package() {
+ cd $srcdir/usb-modeswitch-$pkgver/
+
+ mkdir -p $pkgdir/lib/udev/usb_modeswitch
+ mkdir -p $pkgdir/etc
+ mkdir -p $pkgdir/usr/share/man/man1
+
+ 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 $srcdir/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..522bd1b1f
--- /dev/null
+++ b/community/ushare/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 58584 2011-11-15 20:14:24Z spupykin $
+# 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=16
+pkgdesc="A free UPnP A/V Media Server for Linux"
+url="http://ushare.geexbox.org"
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libupnp' 'libdlna' 'sudo')
+backup=('etc/ushare/ushare.conf'
+ 'etc/conf.d/ushare')
+install=ushare.install
+source=("http://ushare.geexbox.org/releases/${pkgname}-${pkgver}.tar.bz2"
+ "ushare"
+ "upnp-build-fix.patch"
+ "ushare-config.patch")
+md5sums=('5bbcdbf1ff85a9710fa3d4e82ccaa251'
+ 'e3cf0a44b0280da4966177c21e49361c'
+ '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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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/
+ cat >${pkgdir}/etc/conf.d/ushare <<EOF
+#PARAMS="-c /tmp -i eth0"
+PARAMS=
+USHARE_USER=ushare
+EOF
+ 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..b545b85d4
--- /dev/null
+++ b/community/ushare/ushare
@@ -0,0 +1,56 @@
+#!/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
+
+[ -z $USHARE_USER ] && USHARE_USER=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" ] && sudo -u $USHARE_USER /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/ushare/ushare.install b/community/ushare/ushare.install
new file mode 100644
index 000000000..38d710156
--- /dev/null
+++ b/community/ushare/ushare.install
@@ -0,0 +1,17 @@
+post_install() {
+ if [ -z "`grep '^ushare:' /etc/group`" ]; then
+ groupadd -r ushare
+ fi
+ if [ -z "`grep '^ushare:' /etc/passwd`" ]; then
+ useradd -r -d /var/empty -g ushare -s /sbin/nologin ushare
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ userdel ushare
+ groupdel ushare
+}
diff --git a/community/ussp-push/PKGBUILD b/community/ussp-push/PKGBUILD
new file mode 100644
index 000000000..709e347c3
--- /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' 'mips64el')
+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..721e23528
--- /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 'mips64el')
+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..6efbdea2f
--- /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 'mips64el')
+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..43cbc0d35
--- /dev/null
+++ b/community/uudeview/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 54630 2011-08-22 09:13:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: kmaster <kmaster12@sasktel.net>
+
+pkgname=uudeview
+pkgver=0.5.20
+pkgrel=9
+pkgdesc="UUDeview helps transmitting & recieving binary files using mail or newsgroups. Includes library files."
+arch=('i686' 'x86_64' 'mips64el')
+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 $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make prefix=$pkgdir/usr MANDIR=$pkgdir/usr/share/man install
+ install -d $pkgdir/usr/lib/uudeview
+ install -d $pkgdir/usr/include/uudeview
+
+ cd $srcdir/uudeview-$pkgver/uulib
+ ./configure --prefix=/usr
+ make
+ cp -v *.o $pkgdir/usr/lib/uudeview
+ cp -v *.a $pkgdir/usr/lib/uudeview
+ cp -v *.h $pkgdir/usr/include/uudeview
+}
diff --git a/community/uzbl/PKGBUILD b/community/uzbl/PKGBUILD
new file mode 100644
index 000000000..2ddcbe37c
--- /dev/null
+++ b/community/uzbl/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 60076 2011-12-04 21:15:00Z 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.11.28
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.uzbl.org"
+license=('GPL3')
+makedepends=('pkgconfig' 'libwebkit>=1.3.13')
+source=(uzbl-$pkgver.tar.gz::https://github.com/Dieterbe/uzbl/tarball/$pkgver)
+md5sums=('6e55474050b5df43d8bdd403248b1da6')
+
+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') bin/*
+
+ make
+}
+
+package_uzbl-core() {
+ pkgdesc="Webpage interface component meant for integration with other tools and scripts"
+ depends=('libwebkit>=1.3.13')
+ 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
+ rm -r $pkgdir/usr/bin/uzbl-core $pkgdir/usr/share/uzbl/docs
+}
+
+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..500b114e7
--- /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=38"
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/v8/PKGBUILD b/community/v8/PKGBUILD
new file mode 100644
index 000000000..84d97951e
--- /dev/null
+++ b/community/v8/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 56586 2011-10-09 03:29:08Z tdziedzic $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: tocer <tocer.deng@gmail.com>
+
+pkgname=v8
+pkgver=3.6.5.1
+pkgrel=1
+pkgdesc='A fast and modern javascript engine'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://code.google.com/p/v8'
+license=('BSD')
+makedepends=('subversion' 'scons')
+
+build() {
+ _source="http://v8.googlecode.com/svn/tags/$pkgver"
+ svn checkout "$_source" "$srcdir/$pkgname-$pkgver"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ [ "$CARCH" = 'i686' ] && SCONS_ARCH=ia32
+ [ "$CARCH" = 'x86_64' ] && SCONS_ARCH=x64
+
+ scons mode=release library=shared arch=$SCONS_ARCH
+ scons d8 arch=$SCONS_ARCH
+
+ find include -type f \
+ -exec install -Dm644 {} $pkgdir/usr/{} \;
+ rm -rf $pkgdir/usr/include/.svn
+
+ install -Dm755 d8 "$pkgdir/usr/bin/d8"
+ install -Dm755 libv8.so "$pkgdir/usr/lib/libv8.so"
+}
diff --git a/community/vamps/PKGBUILD b/community/vamps/PKGBUILD
new file mode 100644
index 000000000..a0be01624
--- /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' 'mips64el')
+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/vbetool/PKGBUILD b/community/vbetool/PKGBUILD
new file mode 100644
index 000000000..d39993d3b
--- /dev/null
+++ b/community/vbetool/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 55527 2011-09-14 07:33:04Z andrea $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Christian Storm <Christian.Storm@gmx.DE>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+
+pkgname=vbetool
+pkgver=1.1
+pkgrel=2
+pkgdesc="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' 'mips64el')
+depends=('zlib' 'libx86')
+makedepends=('pciutils')
+source=("http://www.codon.org.uk/~mjg59/${pkgname}/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('ffb03b118867a02296d7449019ad8846')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ if [ "${CARCH}" = "x86_64" ]; then
+ ./configure --prefix=/usr --without-x86emu
+ else
+ ./configure --prefix=/usr
+ fi
+ make LIBS=-lpci
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/vbindiff/PKGBUILD b/community/vbindiff/PKGBUILD
new file mode 100644
index 000000000..2b89cbe94
--- /dev/null
+++ b/community/vbindiff/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 45041 2011-04-14 10:57:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: tyr0 <thomas.hoernes@gmx.at>
+
+pkgname=vbindiff
+pkgver=3.0_beta4
+pkgrel=2
+pkgdesc="displays files in hexadecimal and ASCII (or EBCDIC) and highlight the differences between them"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.cjmweb.net/vbindiff/"
+license=('GPL')
+depends=('gcc-libs' 'ncurses')
+source=($url/$pkgname-$pkgver.tar.gz)
+md5sums=('dbda80ef580e1a0975ef50b9aaa5210e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=$pkgdir/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make install
+}
diff --git a/community/vdrift/PKGBUILD b/community/vdrift/PKGBUILD
new file mode 100644
index 000000000..97439f4f2
--- /dev/null
+++ b/community/vdrift/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 57538 2011-10-30 16:10:55Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Lone_Wolf lonewolf@xs4all.nl
+
+pkgname=vdrift
+pkgver=2011.10.22
+pkgrel=1
+pkgdesc="An open source driving simulation made with drift racing in mind"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://vdrift.net/"
+license=('GPL')
+depends=('bullet' 'curl' 'sdl_gfx' 'sdl_image' 'glew' 'libvorbis' 'vdrift-data')
+makedepends=('scons' 'boost' 'asio')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${pkgver//./-}.tar.bz2)
+md5sums=('6f8806ab1be303e9e1e47522c9eee890')
+
+build() {
+ cd "$srcdir"/$pkgname-${pkgver//./-}
+
+ # select arch
+ if [ `uname -m` = "x86_64" ]; then
+ _sconsarch="a64"
+ else
+ _sconsarch="686"
+ fi
+
+ #sed -i 's/glGenerateMipmap/glGenerateMipmapEXT/g' src/texture.cpp
+ #sed -i '/types.h/d' src/http.h
+
+ # build and install
+ scons \
+ "destdir"="$pkgdir" \
+ "arch"=$_sconsarch \
+ "release"=1 \
+ "force_feedback"=1 \
+ "prefix"=/usr \
+ "datadir"=share/$pkgname/ \
+ "extbullet"=1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-${pkgver//./-}
+
+ scons install
+
+ # install .desktop file
+ install -Dm644 $pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+
+ # install icons
+ install -Dm644 data/textures/icons/vdrift-16x16.png \
+ "$pkgdir"/usr/share/icons/hicolor/16x16/apps/vdrift.png
+ install -Dm644 data/textures/icons/vdrift-32x32.png \
+ "$pkgdir"/usr/share/icons/hicolor/32x32/apps/vdrift.png
+ install -Dm644 data/textures/icons/vdrift-64x64.png \
+ "$pkgdir"/usr/share/icons/hicolor/64x64/apps/vdrift.png
+
+ rm -r $pkgdir/usr/share/vdrift
+}
+# 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..0fbc59ffe
--- /dev/null
+++ b/community/vhba-module/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58264 2011-11-09 15:50:55Z jelle $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=vhba-module
+pkgver=20110915
+#_kernver='3.1.0-ARCH'
+_extramodules=extramodules-3.1-ARCH
+_kernver="$(cat /lib/modules/${_extramodules}/version)"
+pkgrel=2
+pkgdesc="Kernel module that emulates SCSI devices"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cdemu.sourceforge.net/"
+license=('GPL2')
+depends=('linux>=3.1' 'linux<3.2')
+makedepends=('linux-headers>=3.1')
+install=vhba-module.install
+source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz)
+md5sums=('fb90cd8fc4cd74d08c92e8235f99f1f4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -j1 KDIR=/usr/src/linux-${_kernver}
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -D vhba.ko "$pkgdir/lib/modules/${_extramodules}/vhba.ko"
+ sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${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..eca9bb285
--- /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."
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
diff --git a/community/viewnior/PKGBUILD b/community/viewnior/PKGBUILD
new file mode 100644
index 000000000..5c2cc31ed
--- /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' 'mips64el')
+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/PKGBUILD b/community/vifm/PKGBUILD
new file mode 100644
index 000000000..8555fe568
--- /dev/null
+++ b/community/vifm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59610 2007-01-01 00:15:20Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=vifm
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Ncurses based file manager with vi like keybindings"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://vifm.sourceforge.net/"
+license=('GPL')
+depends=('ncurses' 'gtk2')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+sha256sums=('7c0f2e8949851394a0fa91a9e8509a58306ce3aebd27fed163fbec10c2258583')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/vifm/vifm.changelog b/community/vifm/vifm.changelog
new file mode 100644
index 000000000..24dcb8dd5
--- /dev/null
+++ b/community/vifm/vifm.changelog
@@ -0,0 +1,14 @@
+2011-11-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vifm 0.7.1-1
+
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vifm 0.7.0-1
+
+2011-08-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vifm 0.6.3-1
+
+2011-07-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vifm 0.6.2-1
+
+2010-02-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Moved to [community] 0.5-2 (212 votes in AUR)
diff --git a/community/viking/PKGBUILD b/community/viking/PKGBUILD
new file mode 100644
index 000000000..3fad1772e
--- /dev/null
+++ b/community/viking/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59505 2011-11-27 13:11:14Z 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.2.2
+pkgrel=1
+pkgdesc="GTK+2 application to manage GPS data"
+arch=('i686' 'x86_64' 'mips64el')
+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/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('9f96f9bdfc9cae8c65d391f9e972a987ec7f3d9d662a0e4df8bd14282879b10c')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --disable-realtime-gps-tracking --enable-geocaches --enable-expedia
+ 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..b195927d1
--- /dev/null
+++ b/community/viking/viking.changelog
@@ -0,0 +1,8 @@
+2011-11-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * viking 1.2.2-1
+
+2011-08-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * viking 1.2.1-1
+
+2011-06-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * viking 1.2-1
diff --git a/community/viking/viking.install b/community/viking/viking.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/community/viking/viking.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/vile/PKGBUILD b/community/vile/PKGBUILD
new file mode 100644
index 000000000..19945365c
--- /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' 'mips64el')
+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-modules/60-vboxguest.rules b/community/virtualbox-modules/60-vboxguest.rules
new file mode 100644
index 000000000..6285f7249
--- /dev/null
+++ b/community/virtualbox-modules/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-modules/LocalConfig.kmk b/community/virtualbox-modules/LocalConfig.kmk
new file mode 100644
index 000000000..af79f90cd
--- /dev/null
+++ b/community/virtualbox-modules/LocalConfig.kmk
@@ -0,0 +1,19 @@
+VBOX_WITH_ADDITION_DRIVERS =
+VBOX_WITH_INSTALLER = 1
+VBOX_WITH_LINUX_ADDITIONS = 1
+VBOX_WITH_X11_ADDITIONS =
+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 = /usr/lib/jvm/java-6-openjdk
+VBOX_GCC_WERR =
+VBOX_GCC_WARN =
diff --git a/community/virtualbox-modules/PKGBUILD b/community/virtualbox-modules/PKGBUILD
new file mode 100644
index 000000000..694a0c31c
--- /dev/null
+++ b/community/virtualbox-modules/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id: PKGBUILD 60393 2011-12-13 09:32:43Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=virtualbox-modules
+pkgname=('virtualbox-modules' 'virtualbox-archlinux-modules')
+pkgver=4.1.6
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-headers')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ LocalConfig.kmk 60-vboxguest.rules)
+md5sums=('89b979d1b817242c7cdcb489898f166a'
+ '4c88bd122677a35f68abd76eb01b378b'
+ 'ed1341881437455d9735875ddf455fbe')
+
+_extramodules=extramodules-3.1-ARCH
+_kernver="$(cat /lib/modules/${_extramodules}/version || true)"
+
+export KERN_DIR=/lib/modules/${_kernver}/build
+export KERN_INCL=/usr/src/linux-${_kernver}/include/
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}_OSE"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure \
+ --with-linux=/usr/src/linux-${_kernver} \
+ --disable-java \
+ --disable-docs \
+ --disable-xpcom \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-alsa \
+ --disable-pulse \
+ --disable-dbus \
+ --disable-opengl \
+ --build-headless \
+ --nofatal
+ source ./env.sh
+ kmk all
+
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+}
+
+package_virtualbox-archlinux-modules(){
+ pkgdesc="Additions only for Arch Linux guests (kernel modules)"
+ license=('GPL')
+ install=virtualbox-archlinux-modules.install
+ depends=('linux>=3.1' 'linux<3.2')
+ replaces=('virtualbox-guest-modules')
+ conflicts=('virtualbox-guest-modules')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+
+ for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do
+ install -D -m644 ${module} \
+ "$pkgdir/lib/modules/${_extramodules}/${module}"
+ done
+
+ install -D -m 0644 "$srcdir/60-vboxguest.rules" \
+ "$pkgdir/lib/udev/rules.d/60-vboxguest.rules"
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+
+ sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-archlinux-modules.install"
+}
+
+package_virtualbox-modules(){
+ pkgdesc="Kernel modules for VirtualBox"
+ license=('GPL')
+ install=virtualbox-modules.install
+ depends=('linux>=3.1' 'linux<3.2')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
+
+ install -D -m644 vboxdrv.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxdrv.ko"
+
+ install -D -m644 vboxnetadp.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxnetadp.ko"
+
+ install -D -m644 vboxnetflt.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxnetflt.ko"
+
+ install -D -m644 vboxpci.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxpci.ko"
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+
+ sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-modules.install"
+}
diff --git a/community/virtualbox-modules/virtualbox-archlinux-modules.install b/community/virtualbox-modules/virtualbox-archlinux-modules.install
new file mode 100644
index 000000000..39a0e4063
--- /dev/null
+++ b/community/virtualbox-modules/virtualbox-archlinux-modules.install
@@ -0,0 +1,17 @@
+post_install() {
+cat << EOF
+===> You may want to load vboxguest, vboxsf and vboxvideo
+EOF
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_remove() {
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
diff --git a/community/virtualbox-modules/virtualbox-modules.install b/community/virtualbox-modules/virtualbox-modules.install
new file mode 100644
index 000000000..ec29d3a87
--- /dev/null
+++ b/community/virtualbox-modules/virtualbox-modules.install
@@ -0,0 +1,19 @@
+post_install() {
+/bin/cat << EOF
+===> You must load vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+EOF
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+ echo 'In order to use the new version, reload all virtualbox modules manually.'
+}
+
+post_remove() {
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
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/LocalConfig.kmk b/community/virtualbox/LocalConfig.kmk
new file mode 100644
index 000000000..e5cbcebcd
--- /dev/null
+++ b/community/virtualbox/LocalConfig.kmk
@@ -0,0 +1,19 @@
+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 = /usr/lib/jvm/java-6-openjdk
+VBOX_GCC_WERR =
+VBOX_GCC_WARN =
diff --git a/community/virtualbox/PKGBUILD b/community/virtualbox/PKGBUILD
new file mode 100644
index 000000000..bc16759fa
--- /dev/null
+++ b/community/virtualbox/PKGBUILD
@@ -0,0 +1,189 @@
+# $Id: PKGBUILD 60048 2011-12-03 18:39:55Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgbase=virtualbox
+pkgname=('virtualbox' 'virtualbox-archlinux-additions' 'virtualbox-sdk' 'virtualbox-source')
+pkgver=4.1.6
+pkgrel=4
+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' 'linux-headers' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'openjdk6' 'gsoap' 'vde2')
+#'xorg-server-devel' 'xf86driproto' 'libxcomposite')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ UserManual-$pkgver.pdf::http://download.virtualbox.org/virtualbox/${pkgver}/UserManual.pdf
+ 10-vboxdrv.rules vboxdrv-reference.patch LocalConfig.kmk vboxbuild
+ change_default_driver_dir.patch vbox-service.conf vbox-service.rc)
+
+_extramodules=extramodules-3.1-LIBRE
+_kernver="$(cat /lib/modules/${_extramodules}/version || true)"
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}_OSE"
+
+ patch -Np1 -i "$srcdir/vboxdrv-reference.patch"
+ patch -Np1 -i "$srcdir/change_default_driver_dir.patch"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure --disable-docs \
+ --enable-webservice \
+ --enable-vde \
+ --enable-vnc \
+ --nofatal \
+ --with-linux=/usr/src/linux-${_kernver}
+ source ./env.sh
+ kmk all
+ 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=('virtualbox-modules' 'libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng')
+ optdepends=('qt: for VirtualBox GUI'
+ 'vde2: Virtual Distributed Ethernet support'
+ 'virtualbox-sdk: developer kit'
+ 'virtualbox-source: host kernel source modules for non-stock kernels')
+
+ backup=('etc/vbox/vbox.cfg')
+ 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-$pkgver.pdf" "$pkgdir/usr/share/virtualbox/UserManual.pdf"
+
+ #Binaries and Wrapper with Launchers
+ install -m 0755 VBox.sh "$pkgdir/usr/bin/VBox"
+
+ for i in VBoxHeadless vboxheadless VBoxManage vboxmanage VBoxSDL vboxsdl VirtualBox virtualbox vboxwebsrv VBoxBalloonCtrl vboxballoonctrl; do
+ ln -sf VBox "$pkgdir/usr/bin/$i"
+ done
+ 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 VBoxBalloonCtrl 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"
+}
+
+package_virtualbox-source() {
+ pkgdesc="VirtualBox kernel modules source"
+ depends=(gcc make)
+ provides=(virtualbox-modules)
+ optdepends=('linux-headers'
+ 'kernel26-lts-headers')
+ install=virtualbox-source.install
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+ mkdir -p $pkgdir/usr/lib/virtualbox
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ #sources for modules
+ cp -r src ${pkgdir}/usr/lib/virtualbox
+ #install compilation script
+ install -D -m 755 "${srcdir}/vboxbuild" "${pkgdir}/usr/bin/vboxbuild"
+}
+
+package_virtualbox-sdk() {
+ pkgdesc="VirtualBox Software Developer Kit (SDK)"
+ depends=('python2')
+
+ 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-archlinux-additions(){
+ pkgdesc="Additions only for Arch Linux guests (userspace tools)"
+ depends=("virtualbox-archlinux-modules=$pkgver" 'gcc-libs' 'libxmu' 'xorg-xrandr')
+ replaces=('virtualbox-guest-additions')
+ conflicts=('virtualbox-guest-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,sbin}
+ install -m755 VBoxClient VBoxControl VBoxService "$pkgdir/usr/bin"
+ install -m755 mount.vboxsf "$pkgdir/sbin"
+
+ 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 vboxvideo_drv_111.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"
+
+ # install rc.d script
+ install -D -m755 "${srcdir}/vbox-service.rc" "${pkgdir}/etc/rc.d/vbox-service"
+
+ # install sample config
+ install -D -m644 "${srcdir}/vbox-service.conf" "${pkgdir}/etc/conf.d/vbox-service"
+}
+md5sums=('89b979d1b817242c7cdcb489898f166a'
+ 'af534f713993eb077df26ff9a44fb080'
+ '5f85710e0b8606de967716ded7b2d351'
+ '6ab2455c391d8cc005e2f4461ae26a3b'
+ '78ffa67ff131680f1d2b6f06d4325c5b'
+ 'cd8a53d0bfb26632d5b4d4e91a2b91d2'
+ '97e193f050574dd272a38e5ee5ebe62b'
+ '3c08ad30b89add47d3f45121200a5360'
+ 'e7416331d0bc331f3b5aae3e5d104642')
diff --git a/community/virtualbox/change_default_driver_dir.patch b/community/virtualbox/change_default_driver_dir.patch
new file mode 100644
index 000000000..d8531499d
--- /dev/null
+++ b/community/virtualbox/change_default_driver_dir.patch
@@ -0,0 +1,18 @@
+diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Additions/common/crOpenGL/fakedri_drv.c VirtualBox-4.1.0_OSE/src/VBox/Additions/common/crOpenGL/fakedri_drv.c
+--- VirtualBox-4.1.0_OSE.orig/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2011-07-19 15:11:37.903456612 +0000
++++ VirtualBox-4.1.0_OSE/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2011-07-19 15:12:41.024021274 +0000
+@@ -36,13 +36,8 @@
+ //#define DEBUG_DRI_CALLS
+
+ //@todo this could be different...
+-#ifdef RT_ARCH_AMD64
+-# define DRI_DEFAULT_DRIVER_DIR "/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri"
++# define DRI_DEFAULT_DRIVER_DIR "/usr/lib/xorg/modules/dri"
+ # define DRI_XORG_DRV_DIR "/usr/lib/xorg/modules/drivers/"
+-#else
+-# define DRI_DEFAULT_DRIVER_DIR "/usr/lib/dri:/usr/lib/i386-linux-gnu/dri"
+-# define DRI_XORG_DRV_DIR "/usr/lib/xorg/modules/drivers/"
+-#endif
+
+ #ifdef DEBUG_DRI_CALLS
+ #define SWDRI_SHOWNAME(pext, func) \
diff --git a/community/virtualbox/vbox-service.conf b/community/virtualbox/vbox-service.conf
new file mode 100644
index 000000000..9d4ec629f
--- /dev/null
+++ b/community/virtualbox/vbox-service.conf
@@ -0,0 +1,2 @@
+# VBoxService -h
+VBOX_SERVICE_OPTION=""
diff --git a/community/virtualbox/vbox-service.rc b/community/virtualbox/vbox-service.rc
new file mode 100755
index 000000000..6f1b8d892
--- /dev/null
+++ b/community/virtualbox/vbox-service.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/vbox-service
+
+name=VBoxService
+PID=$(pidof -o %PPID $name)
+
+case "$1" in
+ start)
+ stat_busy "Starting $name service"
+ [[ -z "$PID" ]] && ${name} $VBOX_SERVICE_OPTION &>/dev/null \
+ && { add_daemon vbox-service; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+ stop)
+ stat_busy "Stopping $name service"
+ [[ -n "$PID" ]] && kill $PID &>/dev/null \
+ && { rm_daemon vbox-service; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ status)
+ stat_busy "Checking $name status";
+ ck_status $name
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+ exit 1
+esac
+
+exit 0
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/virtualbox/vboxbuild b/community/virtualbox/vboxbuild
new file mode 100755
index 000000000..c74004199
--- /dev/null
+++ b/community/virtualbox/vboxbuild
@@ -0,0 +1,86 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/vbox/vbox.cfg
+
+MODLIST=()
+LOG="/var/log/vbox-install.log"
+>| "$LOG"
+
+if [[ $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
+ BUILDVBOXPCI=$INSTALL_DIR/src/vboxpci/build_in_tmp
+else
+ echo "error: missing vbox.cfg"
+ exit 1
+fi
+
+if [[ -f /proc/modules ]]; then
+ IFS=$'\n' read -r -d '' -a MODLIST < \
+ <(grep -oE '^vbox(pci|netflt|netadp|drv)' /proc/modules)
+fi
+
+if (( ${#MODLIST[*]} )); then
+ stat_busy "Unloading VirtualBox kernel modules"
+ modprobe -ar "${MODLIST[@]}" && stat_done || stat_fail
+fi
+
+for kdir in /lib/modules/[2-3]*; do
+ if [[ ! -d $kdir/kernel ]]; then
+ # found a stale kernel
+ mods=("$kdir/misc/vbox"{drv,netadp,netflt,pci}.ko*)
+ if (( ${#mods[@]} )); then
+ stat_busy "Removing all old VirtualBox kernel modules"
+ if rm -f "${mods[@]}" &&
+ rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null; then
+ stat_done
+ else
+ stat_fail
+ fi
+ fi
+ fi
+done
+
+# default to the currently running kernel
+if (( ! $# )); then
+ set -- $(uname -r)
+fi
+
+for kernver; do
+ export KERN_DIR=/lib/modules/$kernver/build
+ export MODULE_DIR=/lib/modules/$kernver/extramodules
+ if [[ ! -d $KERN_DIR ]]; then
+ printf "error: \`%s' does not appear to be a valid kernel build directory.\n" \
+ "$KERN_DIR"
+ continue
+ fi
+
+ stat_busy "Recompiling VirtualBox kernel modules ($kernver)"
+ 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"
+ stat_fail
+ fi
+ for build in BUILDVBOX{NETFLT,NETADP,PCI}; do
+ if ! ${!build} \
+ --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"
+ stat_fail
+ fi
+ done
+ gzip -9 "$MODULE_DIR"/*.ko
+ depmod "$kernver"
+ stat_done
+done
+
+if (( ${#MODLIST[*]} )); then
+ stat_busy "Reloading VirtualBox kernel modules"
+ modprobe -a "${MODLIST[@]}" && stat_done || stat_fail
+fi
+
diff --git a/community/virtualbox/vboxdrv-reference.patch b/community/virtualbox/vboxdrv-reference.patch
new file mode 100644
index 000000000..710e2e511
--- /dev/null
+++ b/community/virtualbox/vboxdrv-reference.patch
@@ -0,0 +1,57 @@
+diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp VirtualBox-4.1.6_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
+--- VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-11-04 17:22:13.636083176 +0000
++++ VirtualBox-4.1.6_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-11-04 17:48:58.915541368 +0000
+@@ -75,10 +75,9 @@
+ "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. If it is available in your distribution, you should install the "
+- "DKMS package first. This package keeps track of Linux kernel changes and "
+- "recompiles the vboxdrv kernel module if necessary."
++ " <font color=blue>'pacman -S virtualbox-modules'</font><br/><br/>"
++ "as root. If you don't use our stock kernel, install virtualbox-source and"
++ "execute /usr/bin/vboxbuild ."
+ );
+
+ QString g_QStrHintOtherWrongDriverVersion = QApplication::tr(
+@@ -90,11 +89,8 @@
+
+ QString g_QStrHintLinuxWrongDriverVersion = QApplication::tr(
+ "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/>"
+- "may correct this. Make sure that you do not mix the "
+- "OSE version and the PUEL version of VirtualBox."
++ "VirtualBox. Reload the modules or if you don't use our stock kernel execute<br/><br/> "
++ " <font color=blue>'/usr/bin/vboxbuild'</font><br/><br/>"
+ );
+
+ QString g_QStrHintOtherNoDriver = QApplication::tr(
+diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox-4.1.6_OSE/src/VBox/Installer/linux/VBox.sh
+--- VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh 2011-11-04 17:22:13.549415814 +0000
++++ VirtualBox-4.1.6_OSE/src/VBox/Installer/linux/VBox.sh 2011-11-04 17:56:50.735874087 +0000
+@@ -32,17 +32,18 @@
+ cat << EOF
+ WARNING: The vboxdrv kernel module is not loaded. Either there is no module
+ available for the current kernel (`uname -r`) or it failed to
+- load. Please recompile the kernel module and install it by
++ load. Please reinstall the kernel module virtualbox-modules or
++ if you don't use our stock kernel compile the modules with
+
+- sudo /etc/init.d/vboxdrv setup
++ sudo /usr/bin/vboxbuild
+
+ You will not be able to start VMs until this problem is fixed.
+ EOF
+ elif [ ! -c /dev/vboxdrv ]; then
+ cat << EOF
+-WARNING: The character device /dev/vboxdrv does not exist. Try
++WARNING: The character device /dev/vboxdrv does not exist. Try to load the module
+
+- sudo /etc/init.d/vboxdrv restart
++ sudo modprobe vboxdrv
+
+ and if that is not successful, try to re-install the package.
+
diff --git a/community/virtualbox/virtualbox-source.install b/community/virtualbox/virtualbox-source.install
new file mode 100644
index 000000000..24d90b1c2
--- /dev/null
+++ b/community/virtualbox/virtualbox-source.install
@@ -0,0 +1,12 @@
+post_install() {
+/bin/cat << EOF
+===> To compile the modules do /usr/bin/vboxbuild
+EOF
+
+}
+
+post_upgrade() {
+/bin/cat << EOF
+===> To recompile the modules do /usr/bin/vboxbuild
+EOF
+}
diff --git a/community/virtualbox/virtualbox.install b/community/virtualbox/virtualbox.install
new file mode 100644
index 000000000..c794b857d
--- /dev/null
+++ b/community/virtualbox/virtualbox.install
@@ -0,0 +1,34 @@
+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
+ utils
+}
+
+post_upgrade() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ utils
+ if [ "$(vercmp $2 4.1.6-1)" -lt 0 ]; then
+/bin/cat << EOF
+===> Starting with virtualbox version 4.1.6-1, kernel modules handling is done by virtualbox-modules.
+===> Use virtualbox-source package if you don't use our stock linux package.
+EOF
+ fi
+}
+
+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..4ea807b62
--- /dev/null
+++ b/community/virtviewer/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 54218 2011-08-14 19:34:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jonathan Wiersma <archaur at jonw dot org>
+
+pkgname=virtviewer
+pkgver=0.4.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')
+makedepends=('intltool')
+url="http://virt-manager.et.redhat.com"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+source=("http://virt-manager.et.redhat.com/download/sources/virt-viewer/virt-viewer-$pkgver.tar.gz")
+md5sums=('1cc86ed3fbbe37a56faa6476b2e6dbcd')
+
+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..e1e099c60
--- /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' 'mips64el')
+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/vlan/PKGBUILD b/community/vlan/PKGBUILD
new file mode 100644
index 000000000..8cdaddd47
--- /dev/null
+++ b/community/vlan/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 59555 2011-11-28 01:48:10Z seblu $
+# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=vlan
+pkgver=1.9
+pkgrel=1
+pkgdesc='Virtual LAN configuration utility'
+arch=('i686' 'x86_64')
+url='http://www.candelatech.com/~greear/vlan.html'
+license=('GPL')
+source=("http://www.candelatech.com/~greear/vlan/vlan.${pkgver}.tar.gz")
+md5sums=('5f0c6060b33956fb16e11a15467dd394')
+
+build() {
+ cd vlan
+ make clean all
+}
+
+package() {
+ cd vlan
+ install -D -m755 'vconfig' "$pkgdir/usr/sbin/vconfig"
+ install -D -m755 'macvlan_config' "$pkgdir/usr/sbin/macvlan_config"
+ install -D -m644 'vconfig.8' "$pkgdir/usr/share/man/man8/vconfig.8"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
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..7beb1f60e
--- /dev/null
+++ b/community/vlock/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 58034 2011-11-05 17:24:10Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=vlock
+pkgver=2.2.3
+pkgrel=1
+pkgdesc="A small console locking program"
+url="http://cthulhu.c3d2.de/~toidinamai/vlock/vlock.html"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('pam')
+install=vlock.install
+source=("http://cthulhu.c3d2.de/~toidinamai/vlock/archive/$pkgname-$pkgver.tar.bz2")
+md5sums=('2dd5677c97f2707db62532ae24f58433')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # vlock gid is 129
+ make DESTDIR="$pkgdir" VLOCK_GROUP=129 install
+}
+
+# vim:set ts=2 sw=2 et:
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..8b1b223de
--- /dev/null
+++ b/community/vmoviedb/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59169 2011-11-21 13:06:56Z 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' 'mips64el')
+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' 'intltool')
+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
+ make -j1 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 -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..341ff0199
--- /dev/null
+++ b/community/vnstat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 55756 2011-09-19 06:41:29Z ttopper $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=vnstat
+pkgver=1.11
+pkgrel=2
+pkgdesc="A console-based network traffic monitor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://humdi.net/vnstat/"
+license=('GPL')
+depends=('bash')
+makedepends=('gd')
+optdepends=('gd: image output')
+backup=(etc/vnstat.conf)
+source=(http://humdi.net/vnstat/$pkgname-$pkgver.tar.gz
+ http://humdi.net/vnstat/init.d/arch/vnstat)
+md5sums=('a5a113f9176cd61fb954f2ba297f5fdb'
+ '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/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..77119e34d
--- /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' 'mips64el')
+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..7c5bc547b
--- /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' 'mips64el')
+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..8e7970931
--- /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' 'mips64el')
+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..6f896a7c9
--- /dev/null
+++ b/community/vtk/PKGBUILD
@@ -0,0 +1,108 @@
+# $Id: PKGBUILD 58425 2011-11-12 17:19:02Z ibiru $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Christofer Bertonha <christoferbertonha at gmail dot com>
+# Contributor: leepesjee <lpeschier at xs4all dot nl>
+# Contributor: Olivier Medoc
+# Contributor: ignotus
+# Contributor: Fabian Moser
+# Contributor: djscholl
+
+pkgname=vtk
+pkgver=5.8.0
+pkgrel=6
+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' 'mips64el')
+url='http://www.vtk.org'
+license=('BSD')
+depends=('libpng' 'libtiff' 'freetype2' 'boost' 'ffmpeg' 'qt' 'lesstif' 'mysql')
+makedepends=('cmake' 'java-environment' 'doxygen' 'gnuplot' 'mesa' 'python2' 'tk')
+optdepends=('python2: python bindings'
+ 'java-runtime: java bindings'
+ 'tk: tcl bindings'
+ 'gnuplot: plotting tools'
+ 'graphviz: drawing tools')
+source=("http://www.vtk.org/files/release/${pkgver:0:3}/vtk-${pkgver}.tar.gz"
+ "http://www.vtk.org/files/release/${pkgver:0:3}/vtkdata-${pkgver}.tar.gz"
+ 'fixkernelversioncheck.diff'
+ 'ffmpeg-0.8.diff')
+md5sums=('37b7297d02d647cc6ca95b38174cb41f'
+ 'a05295b81930e894fc0e31866f399151'
+ '9e137af23701f76fc727222ebac23389'
+ 'e992321c9d1def6034d0fa6607b40c5a')
+
+build() {
+ cd VTK
+
+ # fix compilation error: http://vtk.org/Bug/view.php?id=12568
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/fixkernelversioncheck.diff
+
+ # fix compilation error:
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/ffmpeg-0.8.diff
+
+ 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_MYSQL: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="--root=${pkgdir}" \
+ -DVTK_USE_QT:BOOL=ON \
+ -DVTK_INSTALL_QT_PLUGIN_DIR:STRING="/usr/lib/qt/plugins" \
+ -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
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # Move the vtk.jar to the arch-specific location
+ install -dv ${pkgdir}/usr/share/java/vtk
+ mv -v ${pkgdir}/usr/lib/vtk-${pkgver:0:3}/java/vtk.jar \
+ ${pkgdir}/usr/share/java/vtk
+
+ # Install license
+ install -dv ${pkgdir}/usr/share/licenses/vtk
+ install -m644 ${srcdir}/VTK/Copyright.txt \
+ ${pkgdir}/usr/share/licenses/vtk
+
+ # Put an entry in /etc/ld.so.conf.d
+ install -dv ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/vtk-${pkgver:0:3}" > ${pkgdir}/etc/ld.so.conf.d/vtk.conf
+}
diff --git a/community/vtk/ffmpeg-0.8.diff b/community/vtk/ffmpeg-0.8.diff
new file mode 100644
index 000000000..523919d6f
--- /dev/null
+++ b/community/vtk/ffmpeg-0.8.diff
@@ -0,0 +1,66 @@
+Description: Upstream changes introduced in version 5.6.1-6.1
+ This patch has been created by dpkg-source during the package build.
+ Here's the last changelog entry, hopefully it gives details on why
+ those changes were made:
+ .
+ vtk (5.6.1-6.1) unstable; urgency=low
+ .
+ [ Michael Schutte ]
+ * Non-maintainer upload.
+ * Remove absolute paths to required libraries from
+ /usr/lib/vtk-5.6/VTKLibraryDepends.cmake after building, closes:
+ #506992. Due to the multiarch transition, the original behavior
+ frequently causes reverse build-deps to FTBFS. This change should
+ probably be reverted once all required libraries are multiarched.
+ .
+ [ Steve M. Robbins ]
+ * Override lintian diagnostic about embedded libraries ftgl and sqlite.
+ * IO/vtkFFMPEGWriter.cxx: Applied fix from #638246 to build with libav
+ 0.7.
+ .
+ The person named in the Author field signed this changelog entry.
+Author: Steve M. Robbins <smr@debian.org>
+Bug-Debian: http://bugs.debian.org/506992
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+--- vtk-5.6.1.orig/IO/vtkFFMPEGWriter.cxx
++++ vtk-5.6.1/IO/vtkFFMPEGWriter.cxx
+@@ -123,7 +123,7 @@ int vtkFFMPEGWriterInternal::Start()
+ }
+
+ //choose avi media file format
+- this->avOutputFormat = guess_format("avi", NULL, NULL);
++ this->avOutputFormat = av_guess_format("avi", NULL, NULL);
+ if (!this->avOutputFormat)
+ {
+ vtkGenericWarningMacro (<< "Could not open the avi media file format.");
+@@ -150,7 +150,7 @@ int vtkFFMPEGWriterInternal::Start()
+ //Set up the codec.
+ AVCodecContext *c = this->avStream->codec;
+ c->codec_id = (CodecID)this->avOutputFormat->video_codec;
+- c->codec_type = CODEC_TYPE_VIDEO;
++ c->codec_type = AVMEDIA_TYPE_VIDEO;
+ c->width = this->Dim[0];
+ c->height = this->Dim[1];
+ c->pix_fmt = PIX_FMT_YUVJ420P;
+@@ -329,7 +329,7 @@ int vtkFFMPEGWriterInternal::Write(vtkIm
+ pkt.stream_index = this->avStream->index;
+ if (cc->coded_frame->key_frame) //treat keyframes well
+ {
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ }
+ pkt.duration = 0; //presentation duration in time_base units or 0 if NA
+ pkt.pos = -1; //byte position in stream or -1 if NA
diff --git a/community/vtk/fixkernelversioncheck.diff b/community/vtk/fixkernelversioncheck.diff
new file mode 100644
index 000000000..165f07366
--- /dev/null
+++ b/community/vtk/fixkernelversioncheck.diff
@@ -0,0 +1,19 @@
+--- a/Utilities/vtkhdf5/ConfigureChecks.cmake
++++ b/Utilities/vtkhdf5/ConfigureChecks.cmake
+@@ -75,14 +75,14 @@ IF (HDF5_WANT_DCONV_EXCEPTION)
+ ENDIF (HDF5_WANT_DCONV_EXCEPTION)
+
+ SET (LINUX_LFS 0)
+-IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++IF (CMAKE_SYSTEM MATCHES "Linux")
+ # Linux Specific flags
+ ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
+ OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
+ IF (HDF5_ENABLE_LARGE_FILE)
+ SET (LARGEFILE 1)
+ ENDIF (HDF5_ENABLE_LARGE_FILE)
+-ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++ENDIF (CMAKE_SYSTEM MATCHES "Linux")
+ SET (HDF5_EXTRA_FLAGS)
+ IF (LINUX_LFS)
+ SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
diff --git a/community/vym/PKGBUILD b/community/vym/PKGBUILD
new file mode 100644
index 000000000..c56dbb428
--- /dev/null
+++ b/community/vym/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 56624 2011-10-09 08:27:22Z 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.99.0
+pkgrel=1
+pkgdesc="A mindmapping tool"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.insilmaril.de/vym/"
+license=('GPL')
+depends=('qt' 'unzip' 'zip')
+options=('!emptydirs')
+changelog=$pkgname.changelog
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \
+ $pkgname.desktop)
+sha256sums=('0393aca3d88103bdfe4bce829a41664510dd0f6b8599299bf58ea797a913e583'
+ '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..b61af921b
--- /dev/null
+++ b/community/vym/vym.changelog
@@ -0,0 +1,11 @@
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vym 1.99.0-1
+
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vym 1.12.8-1
+
+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/vym/vym.install b/community/vym/vym.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/community/vym/vym.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/vyqchat/PKGBUILD b/community/vyqchat/PKGBUILD
new file mode 100644
index 000000000..e88e9f19f
--- /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' 'mips64el')
+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..59d6aa56d
--- /dev/null
+++ b/community/w3cam/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 59116 2011-11-21 11:03:42Z spupykin $
+# 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' 'mips64el')
+url="http://mpx.freeshell.net/"
+license=('GPL')
+depends=('libpng' 'libjpeg')
+makedepends=('v4l-utils')
+source=(http://mpx.freeshell.net/$pkgname-$pkgver.tar.gz)
+md5sums=('eec0b301b32bc8e9f65a4e54248c9868')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|#include <linux/videodev.h>|#include <libv4l1-videodev.h>|' v4l.c vidcat.c w3cam.c w3camd/w3v4l.c
+ ./configure --prefix=/usr --with-device=/dev/video0 --with-ttf-inc=/usr/include/freetype
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/cgi-bin $pkgdir/usr/bin $pkgdir/usr/man/man1 $pkgdir/usr/share/
+ make prefix=$pkgdir/usr/ install
+ mkdir -p $pkgdir/usr/lib/w3cam/
+ mv $pkgdir/usr/cgi-bin/* $pkgdir/usr/lib/w3cam/
+ mv $pkgdir/usr/man $pkgdir/usr/share/man
+ rm -rf $pkgdir/usr/cgi-bin
+}
diff --git a/community/warmux/PKGBUILD b/community/warmux/PKGBUILD
new file mode 100644
index 000000000..3fd4f09a0
--- /dev/null
+++ b/community/warmux/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 47366 2011-05-22 06:58:10Z lcarlier $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: pukyxd
+# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+
+pkgname=warmux
+pkgver=11.04.1
+pkgrel=3
+pkgdesc="A clone of the worms game"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.wormux.org/"
+license=('GPL')
+makedepends=('pkgconfig' 'libxml++' 'sdl_image' 'sdl_gfx>=2.0.19' 'sdl_ttf' 'sdl_mixer' 'sdl_net' 'curl>=7.16.2' 'gcc-libs' 'libxml2')
+replaces=('wormux')
+source=(http://download.gna.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('26ff65c43a9bb61a3f0529c98b943e35')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver/.1/}"
+
+ #gcc 4.6.0 fix
+ #sed -i '27i#include <stddef.h>' lib/warmux/include/WARMUX_action.h
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ depends=('libxml++' 'sdl_image' 'sdl_gfx>=2.0.19' 'sdl_ttf' 'sdl_mixer' 'sdl_net' 'curl>=7.16.2' 'gcc-libs' 'libxml2' "warmux-data>=${pkgver/.1/}")
+
+ cd "${srcdir}/${pkgname}-${pkgver/.1/}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -r ${pkgdir}/usr/share/warmux
+}
diff --git a/community/warsow/PKGBUILD b/community/warsow/PKGBUILD
new file mode 100644
index 000000000..b0384e132
--- /dev/null
+++ b/community/warsow/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 45996 2011-05-01 17:37:53Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Slash <demodevil5[at]yahoo[dot]com>
+# Contributor: Babets
+# Contributor: Vain
+
+pkgname=warsow
+pkgver=0.62
+pkgrel=2
+pkgdesc="a free online multiplayer competitive FPS based on the Qfusion engine"
+url="http://www.warsow.net/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ '649568447e938efded07e77cdfb3accb')
+
+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 Makefile to correctly pass on ld opts
+ sed -i 's:--as-needed:-Wc,--as-needed: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..ea04d4520
--- /dev/null
+++ b/community/warzone2100/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 57212 2011-10-24 14:41:07Z lcarlier $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=warzone2100
+pkgver=2.3.9
+pkgrel=1
+pkgdesc="3D realtime strategy game on a future Earth"
+url="http://wz2100.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('sdl_net' 'libgl' 'openal' 'libjpeg' 'libpng' 'libvorbis' 'libtheora' 'libmad' 'physfs' 'quesoglc' 'popt' 'ttf-dejavu')
+makedepends=('gawk' 'bison' 'flex' 'zip' 'unzip' 'mesa')
+source=("http://downloads.sourceforge.net/project/warzone2100/releases/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('7185090a089c9c0e0eca7535a8f25dca')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --with-distributor="Arch linux"
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/wavegain/PKGBUILD b/community/wavegain/PKGBUILD
new file mode 100644
index 000000000..ae2379453
--- /dev/null
+++ b/community/wavegain/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 56863 2011-10-15 08:48:28Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=wavegain
+_realname=WaveGain
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="A command line tool to normalize sound files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://rarewares.org/others.php"
+license=('LGPL')
+depends=('libsndfile')
+source=(http://www.rarewares.org/files/others/$pkgname-${pkgver}srcs.zip)
+md5sums=('6f4bc4f5fc7387db34e04f80fdf74dd2')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ make -f Makefile.linux
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ install -Dm755 "$srcdir/$_realname-$pkgver/wavegain" \
+ "$pkgdir/usr/bin/wavegain"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/wbar/PKGBUILD b/community/wbar/PKGBUILD
new file mode 100644
index 000000000..8968b1045
--- /dev/null
+++ b/community/wbar/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 47294 2011-05-21 08:20:51Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=wbar
+pkgver=2.2.2
+pkgrel=1
+pkgdesc="A quick launch bar developed with speed in mind"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/wbar"
+license=('GPL')
+depends=('libglade' 'imlib2' 'gcc-libs')
+makedepends=('intltool')
+source=(http://wbar.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+sha256sums=('0d7ae78d02d52cdb046a47286341ad6ff42dd9aff667f7d389b4f352046d4db0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --exec_prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package () {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/wbar/wbar.changelog b/community/wbar/wbar.changelog
new file mode 100644
index 000000000..17916badd
--- /dev/null
+++ b/community/wbar/wbar.changelog
@@ -0,0 +1,9 @@
+2011-05-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * wbar 2.2.2-1
+
+2011-01-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * wbar 2.1.1-1
+
+2008-10-13 Allan McRae <allan@archlinux.org>
+ * wbar 1.3.3-2
+ * Moved to [community] repo
diff --git a/community/wdm/PKGBUILD b/community/wdm/PKGBUILD
new file mode 100644
index 000000000..0f1b7b9c1
--- /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 'mips64el')
+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..0b9cf4994
--- /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 'mips64el')
+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..b06dbf980
--- /dev/null
+++ b/community/widelands/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 57518 2011-10-29 21:39:24Z lcarlier $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: Christoph Zeiler <rabyte*gmail>
+
+pkgname=widelands
+pkgver=16
+_realver=build16
+pkgrel=4
+pkgdesc="A realtime strategy game with emphasis on economy and transport"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://widelands.org/"
+license=('GPL')
+makedepends=('cmake' 'boost' 'sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'ggz-client-libs' 'lua' 'glew' 'python2')
+source=(http://launchpad.net/$pkgname/build16/$_realver/+download/$pkgname-$_realver-src.tar.bz2
+ $pkgname.desktop
+ $pkgname.png
+ $pkgname.sh)
+md5sums=('3d8c28e145b73c64d8ed1625319d25a2'
+ '15820bf099fd6f16251fe70a75c534bb'
+ '3dfda7e9ca76ca00dd98d745d0ceb328'
+ '7cae50aba5ed0cd2cfeea79124637b46')
+
+build() {
+ cd $srcdir/$pkgname-$_realver-src
+
+ 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() {
+ depends=('sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'ggz-client-libs' 'lua' 'glew' 'python2' 'widelands-data>=16')
+
+ cd $srcdir/$pkgname-$_realver-src/build/compile
+
+ make DESTDIR="$pkgdir" install
+
+ rm -r $pkgdir/usr/share/widelands/{campaigns,fonts,global,locale,maps,music,pics,scripting,sound,tribes,txts,worlds}
+
+ # 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/windowlab/PKGBUILD b/community/windowlab/PKGBUILD
new file mode 100644
index 000000000..e98718ad4
--- /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' 'mips64el')
+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/wine/PKGBUILD b/community/wine/PKGBUILD
new file mode 100644
index 000000000..004bb7207
--- /dev/null
+++ b/community/wine/PKGBUILD
@@ -0,0 +1,144 @@
+# $Id: PKGBUILD 59923 2011-12-02 20:03:51Z 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.34
+pkgrel=1
+
+_pkgbasever=${pkgver/rc/-rc}
+
+source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
+md5sums=('ae7be1767e95e27360fc86f573649c19')
+
+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
+ libxi lib32-libxi
+ gettext lib32-gettext
+ 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
+ libcups lib32-libcups
+ v4l-utils lib32-v4l-utils
+ alsa-lib lib32-alsa-lib
+ oss
+)
+
+optdepends=(
+ giflib lib32-giflib
+ libpng lib32-libpng
+ libldap lib32-libldap
+ lcms lib32-lcms
+ libxml2 lib32-libxml2
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ libcups lib32-libcups
+ v4l-utils lib32-v4l-utils
+ libpulse lib32-libpulse
+ alsa-plugins lib32-alsa-plugins
+ alsa-lib lib32-alsa-lib
+ oss
+)
+
+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/community/wine/wine.install b/community/wine/wine.install
new file mode 100644
index 000000000..0548b7ffd
--- /dev/null
+++ b/community/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/community/winefish/PKGBUILD b/community/winefish/PKGBUILD
new file mode 100644
index 000000000..9ffbc3db8
--- /dev/null
+++ b/community/winefish/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60333 2011-12-11 17:42:32Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Claudio Riva <firetux83@gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=winefish
+pkgver=1.3.3
+pkgrel=10
+pkgdesc="LaTeX editor based on Bluefish with auto-completion and syntax highlighting"
+url="http://winefish.berlios.de/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gtk2' 'desktop-file-utils' 'shared-mime-info')
+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..7555b9814
--- /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' 'mips64el')
+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..1e0b25b0d
--- /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' 'mips64el')
+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..79b021c93
--- /dev/null
+++ b/community/wkhtmltopdf/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58535 2011-11-13 16:06:48Z andrea $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.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' 'mips64el')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALL_ROOT="$pkgdir/usr" install
+
+ # Generate and install man page
+ install -d "$pkgdir/usr/share/man/man1"
+ ./wkhtmltopdf --manpage >"$pkgdir/usr/share/man/man1/wkhtmltopdf.1"
+}
diff --git a/community/wmctrl/PKGBUILD b/community/wmctrl/PKGBUILD
new file mode 100644
index 000000000..a4a8a9af6
--- /dev/null
+++ b/community/wmctrl/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 59113 2011-11-21 10:53:55Z spupykin $
+# Maintainer:
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Dalius <dagis@takas.lt>
+
+pkgname=wmctrl
+pkgver=1.07
+pkgrel=3
+pkgdesc="Control your EWMH compliant window manager from command line"
+url="http://sweb.cz/tripie/utils/wmctrl/"
+arch=('i686' 'mips64el')
+license=('GPL')
+depends=(libxmu glib2)
+source=(http://sweb.cz/tripie/utils/wmctrl/dist/$pkgname-$pkgver.tar.gz
+ http://ftp.de.debian.org/debian/pool/main/w/wmctrl/wmctrl_$pkgver-6.diff.gz)
+md5sums=('1fe3c7a2caa6071e071ba34f587e1555'
+ '7ddf2aadc48f4300c16160b3c9a7e141')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i "$srcdir/wmctrl_$pkgver-6.diff"
+ ./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..8413e3e5d
--- /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' 'mips64el')
+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..2124c148a
--- /dev/null
+++ b/community/wml/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 50698 2011-06-29 15:35:12Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=wml
+pkgver=2.0.11
+pkgrel=7
+pkgdesc="The Website Meta Language"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://thewml.org/"
+license=('GPL')
+depends=('perl' 'libpng' 'gdbm' 'db' 'ncurses')
+makedepends=('lynx')
+source=("http://thewml.org/distrib/${pkgname}-${pkgver}.tar.gz")
+md5sums=('a26feebf4e59e9a6940f54c69dde05b5')
+build() {
+ cd ${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
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ 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..0d72d64c7
--- /dev/null
+++ b/community/wmname/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 55541 2011-09-14 08:07:38Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vincent Kriek <vincent@vincentkriek.nl>
+
+pkgname=wmname
+pkgver=0.1
+pkgrel=2
+pkgdesc="An 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' 'mips64el')
+source=("http://dl.suckless.org/tools/wmname-$pkgver.tar.gz")
+md5sums=('6903d299f84d335e529fbd2c1d6e49fe')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make PREFIX="${pkgdir}"/usr install
+ 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..b5d778ac6
--- /dev/null
+++ b/community/wol/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58676 2011-11-17 14:54:30Z 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=5
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="Wake On LAN functionality in a small program. It wakes up hardware that is Magic Packet compliant"
+license=("GPL")
+depends=()
+url="http://ahh.sourceforge.net/wol/"
+install=wol.install
+source=(http://downloads.sourceforge.net/ahh/wol-$pkgver.tar.gz)
+md5sums=('c2fa9d7e771134ac8c89d56b8197d4ca')
+
+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
+ 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..9e428da02
--- /dev/null
+++ b/community/workrave/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 51933 2011-07-18 09:09:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=workrave
+pkgver=1.9.4
+pkgrel=2
+pkgdesc="a tool to help RSI"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://workrave.org"
+depends=('libxtst' 'gtkmm' 'gconf' 'gdome2' 'gstreamer0.10' 'libsm' 'libice')
+makedepends=('intltool' 'python-cheetah')
+source=(http://downloads.sourceforge.net/workrave/workrave-$pkgver.tar.gz)
+md5sums=('d5eaf399b38b063053cff1a8527cba8e')
+
+build() {
+ cd $srcdir/workrave-$pkgver
+ export PYTHON=python2
+ ./configure --prefix=/usr --enable-dbus --sysconfdir=/etc --libexecdir=/usr/lib/workrave \
+ --disable-pulse
+ make
+}
+
+package() {
+ cd $srcdir/workrave-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/wput/PKGBUILD b/community/wput/PKGBUILD
new file mode 100644
index 000000000..1b0ddcaea
--- /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' 'mips64el')
+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/wt/PKGBUILD b/community/wt/PKGBUILD
new file mode 100644
index 000000000..04b748d41
--- /dev/null
+++ b/community/wt/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 60381 2011-12-12 16:41:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Denis Martinez <deuns.martinez@gmail.com>
+
+pkgname=wt
+pkgver=3.2.0
+pkgrel=2
+pkgdesc="a C++ library and application server for developing and deploying web applications"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.webtoolkit.eu/"
+license=('GPL')
+depends=('boost-libs>=1.36')
+makedepends=('boost>=1.36' 'cmake>=2.8'
+ 'postgresql-libs' 'zlib' 'fcgi' 'sqlite3' 'libharu' 'graphicsmagick' 'pango' 'mysql++' 'qt')
+optdepends=('openssl: for SSL support in built-in webserver'
+ 'zlib: for compression in HTTP protocol'
+ 'fcgi: for FastCGI support'
+ 'postgresql-libs: for PostgreSQL Dbo support'
+ 'sqlite3: for Sqlite3 Dbo support'
+ 'libharu: for PDF generation (WPdfImage)'
+ 'graphicsmagick: for raster image support (WRasterImage)'
+ 'pango: for advanced font rendering (WRasterImage)'
+ 'mysql++: for the hangman example'
+ 'qt: for the Wt/Qt interopability example (wtwithqt)')
+backup=('etc/wt/wt_config.xml')
+source=(http://downloads.sourceforge.net/witty/$pkgname-${pkgver}.tar.gz)
+md5sums=('82ff039bccf7a941b37142c9d3fc7f32')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ mkdir -p build
+ cd build
+ cmake -DCONNECTOR_HTTP=ON -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWEBUSER=http -DWEBGROUP=http -DRUNDIR=/var/run/wt -DDEPLOYROOT=/var/www/wt \
+ -DUSE_SYSTEM_SQLITE3=ON -DCMAKE_EXE_LINKER_FLAGS="-lboost_random" \
+ -DDESTDIR=${pkgdir} -DWT_CMAKE_FINDER_INSTALL_DIR="share/cmake-2.8/Modules" ..
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}/build
+ make DESTDIR=${pkgdir} install
+ rm -rf $pkgdir/var/run
+}
diff --git a/community/wt/wt-boost-1.47.patch b/community/wt/wt-boost-1.47.patch
new file mode 100644
index 000000000..919e1371f
--- /dev/null
+++ b/community/wt/wt-boost-1.47.patch
@@ -0,0 +1,11 @@
+diff -wbBur wt-3.1.10.q/src/CMakeLists.txt wt-3.1.10/src/CMakeLists.txt
+--- wt-3.1.10.q/src/CMakeLists.txt 2011-07-26 00:58:19.000000000 +0400
++++ wt-3.1.10/src/CMakeLists.txt 2011-06-24 18:51:54.000000000 +0400
+@@ -236,6 +236,7 @@
+ web/TimeUtil.C
+ web/XSSFilter.C
+ web/XSSUtils.C
++web/random_device.cpp
+ web/base64.cpp
+ Plain_html.C
+ Boot_html.C
diff --git a/community/wvdial/PKGBUILD b/community/wvdial/PKGBUILD
new file mode 100644
index 000000000..a6428f314
--- /dev/null
+++ b/community/wvdial/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49019 2011-06-09 20:53:15Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=wvdial
+pkgver=1.61
+pkgrel=3
+pkgdesc="A dialer program to connect to the Internet"
+url="http://alumnit.ca/wiki/index.php?page=WvDial"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+depends=('wvstreams' 'ppp' 'gcc-libs')
+makedepends=('lockdev')
+options=('!makeflags' '!buildflags')
+source=("http://wvstreams.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('acd3b2050c9b65fff2aecda6576ee7bc')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure
+ make LOCKDEV="-llockdev"
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make prefix="${pkgdir}"/usr PPPDIR="${pkgdir}"/etc/ppp/peers install
+
+ install -Dm644 COPYING.LIB "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/wvstreams/PKGBUILD b/community/wvstreams/PKGBUILD
new file mode 100644
index 000000000..d6d506855
--- /dev/null
+++ b/community/wvstreams/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 59490 2011-11-26 18:58:32Z bluewind $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=wvstreams
+pkgver=4.6.1
+pkgrel=3
+pkgdesc="A network programming library written in C++"
+arch=('i686' 'x86_64' 'mips64el')
+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
+wvstreams-4.6.1-glibc212.patch)
+md5sums=('2760dac31a43d452a19a3147bfde571c'
+ '5f6e24864209055239cb4e7c9bbd4a41')
+options=('!makeflags')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i "$srcdir/wvstreams-4.6.1-glibc212.patch"
+ ./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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # 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/community/wvstreams/wvstreams-4.6.1-glibc212.patch b/community/wvstreams/wvstreams-4.6.1-glibc212.patch
new file mode 100644
index 000000000..eb3e9b631
--- /dev/null
+++ b/community/wvstreams/wvstreams-4.6.1-glibc212.patch
@@ -0,0 +1,24 @@
+http://bugs.gentoo.org/333301
+https://bugs.archlinux.org/task/27188
+
+--- ipstreams/wvunixdgsocket.cc
++++ ipstreams/wvunixdgsocket.cc
+@@ -1,5 +1,5 @@
+ #include "wvunixdgsocket.h"
+-#ifdef MACOS
++#if defined(MACOS) || defined(__GNUC__)
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #endif
+--- streams/wvatomicfile.cc
++++ streams/wvatomicfile.cc
+@@ -11,7 +11,8 @@
+ #include "wvfileutils.h"
+ #include "wvstrutils.h"
+
+-#ifdef MACOS
++#if defined(MACOS) || defined(__GNUC__)
++#include <sys/types.h>
+ #include <sys/stat.h>
+ #endif
+
diff --git a/community/wxsvg/PKGBUILD b/community/wxsvg/PKGBUILD
new file mode 100644
index 000000000..078cba68e
--- /dev/null
+++ b/community/wxsvg/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 58427 2011-11-12 17:19:10Z ibiru $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=wxsvg
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="C++ library to create, manipulate and render SVG files"
+arch=('i686' 'x86_64' 'mips64el')
+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}.tar.bz2")
+md5sums=('d88b0a68334df157fa560413681c3264')
+
+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/wxsvg/COPYING"
+}
diff --git a/community/wyrd/PKGBUILD b/community/wyrd/PKGBUILD
new file mode 100644
index 000000000..30e04b55f
--- /dev/null
+++ b/community/wyrd/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Daniel J Griffiths <griffithsdj@archlinux.us>
+
+pkgname=wyrd
+pkgver=1.4.5
+pkgrel=3
+pkgdesc='A text-based front-end to Remind.'
+arch=('i686' 'x86_64' 'mips64el')
+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/1.11.0_pre797991-parallel-build.patch b/community/xalan-c/1.11.0_pre797991-parallel-build.patch
new file mode 100644
index 000000000..46d9659b0
--- /dev/null
+++ b/community/xalan-c/1.11.0_pre797991-parallel-build.patch
@@ -0,0 +1,62 @@
+diff -urN xml-xalan.orig//c/src/xalanc/Makefile.in xml-xalan/c/src/xalanc/Makefile.in
+--- xml-xalan.orig//c/src/xalanc/Makefile.in 2010-02-23 10:51:30.058353490 +0100
++++ xml-xalan/c/src/xalanc/Makefile.in 2010-02-23 10:52:53.251679288 +0100
+@@ -84,6 +84,10 @@
+ SAMPLES_DIR = ${XALANCROOT}/samples
+ TESTS_DIR = ${XALANCROOT}/Tests
+
++TESTXSLT_OBJS = ${XSL_OBJ_DIR}/process.o
++XALANEXE_OBJS = ${XSL_OBJ_DIR}/XalanExe.o
++TESTXPATH_OBJS = ${XSL_OBJ_DIR}/TestXPath.o ${XSL_OBJ_DIR}/NodeNameTreeWalker.o
++
+ ALL_VPATH_CPP = \
+ $(XALANDOM_DIR):$(PLATFORMSUPPORT_DIR):$(DOMSUPPORT_DIR):$(XMLSUPPORT_DIR): \
+ $(XPATH_DIR):$(XERCESPARSERLIAISON_DIR):$(DEPRECATED_XERCESPARSERLIAISON_DIR):$(XALANSOURCETREE_DIR):$(XPATHCAPI_DIR): \
+@@ -169,6 +173,9 @@
+
+ compile: $(ALL_OBJECTS)
+
++$(ALL_OBJECTS) $(TESTXSLT_OBJS) $(XALANEXE_OBJS) $(TESTXPATH_OBJS): locale
++locale: prepare
++
+ ifeq (${OS390BATCH},1)
+ XalanExe: lib "//'$(LOADSAMP)(${BATCH_XALAN_UTIL_NAME})'"
+
+@@ -188,28 +195,28 @@
+
+ else # Not OS390BATCH
+
+-XalanExe: lib $(XSL_BIN_DIR)/Xalan
++XalanExe: $(XSL_BIN_DIR)/Xalan
+
+-$(XSL_BIN_DIR)/Xalan: ${XSL_OBJ_DIR}/XalanExe.o
++$(XSL_BIN_DIR)/Xalan: lib ${XALANEXE_OBJS}
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
++ ${EXTRA_LINK_OPTIONS} ${XALANEXE_OBJS} -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
+
+-testXSLT: lib $(XSL_BIN_DIR)/testXSLT
++testXSLT: $(XSL_BIN_DIR)/testXSLT
+
+-$(XSL_BIN_DIR)/testXSLT: ${XSL_OBJ_DIR}/process.o
++$(XSL_BIN_DIR)/testXSLT: lib ${TESTXSLT_OBJS}
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
++ ${EXTRA_LINK_OPTIONS} ${TESTXSLT_OBJS} -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 $@ $<
+
+-testXPath: lib $(XSL_BIN_DIR)/testXPath
++testXPath: $(XSL_BIN_DIR)/testXPath
+
+-$(XSL_BIN_DIR)/testXPath: ${XSL_OBJ_DIR}/TestXPath.o ${XSL_OBJ_DIR}/NodeNameTreeWalker.o
++$(XSL_BIN_DIR)/testXPath: lib ${TESTXPATH_OBJS}
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
++ ${EXTRA_LINK_OPTIONS} $(CXXFLAGS) ${TESTXPATH_OBJS} -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 $@ $<
+
diff --git a/community/xalan-c/PKGBUILD b/community/xalan-c/PKGBUILD
new file mode 100644
index 000000000..e013f6b97
--- /dev/null
+++ b/community/xalan-c/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 54514 2011-08-19 14:55:46Z ibiru $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=xalan-c
+pkgver=1.11_pre1153059
+pkgrel=1
+pkgdesc="A XSLT processor for transforming XML documents"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xml.apache.org/xalan-c"
+license=('APACHE')
+depends=('xerces-c')
+source=(http://mirrors.kernel.org/gentoo/distfiles/Xalan-C_r1153059-src.tar.gz
+ 1.11.0_pre797991-as-needed.patch
+ 1.11.0_pre797991-bugfixes.patch
+ 1.11.0_pre797991-parallel-build.patch)
+md5sums=('98ea8584ccdbb9044757dda725f780bf'
+ '7040fb617e26fbdadc423948d3a23558'
+ 'fe7af1f3a9e02ad813481f0e1a84f16c'
+ '633b4ab702cb0ea0cf1010cadef7ac4c')
+
+build() {
+ export XALANCROOT=${srcdir}/xml-xalan/c
+
+ cd ${srcdir}/xml-xalan/c
+ patch -Np2 -i ${srcdir}/1.11.0_pre797991-as-needed.patch
+ patch -Np2 -i ${srcdir}/1.11.0_pre797991-bugfixes.patch
+ patch -Np2 -i ${srcdir}/1.11.0_pre797991-parallel-build.patch
+
+ ./runConfigure -p linux -c gcc -x g++ -P/usr
+ #./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/xml-xalan/c
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/xapian-core/PKGBUILD b/community/xapian-core/PKGBUILD
new file mode 100644
index 000000000..fec3402fb
--- /dev/null
+++ b/community/xapian-core/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 54076 2011-08-13 09:16:09Z spupykin $
+# 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.7
+pkgrel=1
+pkgdesc='Open source search engine library.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.xapian.org/'
+license=('GPL')
+depends=('sh' 'gcc-libs' 'zlib' 'util-linux')
+# xapian config requires libxapian.la
+options=('libtool')
+source=("http://oligarchy.co.uk/xapian/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6684eb7a990b9cedf4257f41bfddb584')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/xautolock/PKGBUILD b/community/xautolock/PKGBUILD
new file mode 100644
index 000000000..72a6ac9d7
--- /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 'mips64el')
+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/xautomation/PKGBUILD b/community/xautomation/PKGBUILD
new file mode 100644
index 000000000..1fc7aff75
--- /dev/null
+++ b/community/xautomation/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 57187 2011-10-23 16:31:38Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: raubkopierer <mail[dot]sensenmann[at]gmail[dot]com>
+
+pkgname=xautomation
+pkgver=1.05
+pkgrel=1
+pkgdesc='Controls X from the command line and does "visual scraping".'
+url='http://hoopajoo.net/projects/xautomation.html'
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libpng' 'libxtst')
+source=("http://hoopajoo.net/static/projects/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4526ea5085a680a3ae8629af1731e5fa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/xbindkeys/PKGBUILD b/community/xbindkeys/PKGBUILD
new file mode 100644
index 000000000..913e7cd09
--- /dev/null
+++ b/community/xbindkeys/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 49026 2011-06-09 20:58:03Z andrea $
+# Maintainer:
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+
+pkgname=xbindkeys
+pkgver=1.8.5
+pkgrel=1
+pkgdesc="Launch shell commands with your keyboard or your mouse under X"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nongnu.org/xbindkeys/xbindkeys.html"
+license=('GPL')
+depends=('libx11' 'guile' 'tk')
+source=(http://www.nongnu.org/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4b66a05594dbc6888c0a6439351aa66d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/xboard/PKGBUILD b/community/xboard/PKGBUILD
new file mode 100644
index 000000000..e060ead17
--- /dev/null
+++ b/community/xboard/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 47322 2011-05-21 17:35:38Z jelle $
+# 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.2
+pkgrel=1
+pkgdesc="A graphical user interfaces for chess"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+
+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
+}
+md5sums=('2fa92fceeda344ef935bc97bef5f9fc5'
+ '1d9d4a7864465a703fe4a215e83f4806')
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/xcircuit/PKGBUILD b/community/xcircuit/PKGBUILD
new file mode 100644
index 000000000..1cf9b6a4d
--- /dev/null
+++ b/community/xcircuit/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 53887 2011-08-09 08:33:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Giovanni Scafora <linuxmania@gmail.com>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=xcircuit
+pkgver=3.7.26
+pkgrel=1
+pkgdesc="A program for drawing publishable-quality electrical circuit schematic diagrams"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://opencircuitdesign.com/xcircuit"
+license=('GPL2')
+depends=('tk' 'libxpm' 'zlib')
+makedepends=('chrpath')
+source=(http://opencircuitdesign.com/xcircuit/archive/$pkgname-$pkgver.tgz)
+md5sums=('6026f65a4bc327e5769157ffd1387342')
+
+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.7/man/* $pkgdir/usr/share/man/man1/
+ rm -rf $pkgdir/usr/lib/xcircuit-3.7/man/
+ chrpath -d $pkgdir/usr/lib/xcircuit-3.7/xcircexec
+}
diff --git a/community/xdebug/PKGBUILD b/community/xdebug/PKGBUILD
new file mode 100644
index 000000000..8c924de9b
--- /dev/null
+++ b/community/xdebug/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 54418 2011-08-18 09:30:31Z 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.2
+pkgrel=1
+pkgdesc="PHP debugging extension"
+arch=('i686' 'x86_64' 'mips64el')
+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=('3a9c3402063c8163de6e419ddc8d96e7'
+ '6b7fdbbe0bf381bda40e77e29981f439'
+ '68de800943369d4c76bdf7eb35c8463b')
+
+build() {
+ local PHPVER=`php -r 'echo phpversion();'`
+
+ cd $srcdir/$pkgname-$pkgver
+ phpize
+ ./configure --prefix=/usr --enable-xdebug
+ make
+
+ cd debugclient
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+
+ cd $srcdir/$pkgname-$pkgver
+ if [ "$PHPVER" \< "5.3.0" ] ; then
+ install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/xdebug.so
+ install -D -m 644 $srcdir/xdebug-5.2.ini $pkgdir/etc/php/conf.d/xdebug.ini
+ else
+ install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/modules/xdebug.so
+ install -D -m 644 $srcdir/xdebug.ini $pkgdir/etc/php/conf.d/xdebug.ini
+ 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..25dd339bf
--- /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.14
+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' 'mips64el')
+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=('dc496ecde0e6a1e959bd8a38643f28fd')
+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..3716f5570
--- /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' 'mips64el')
+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..833ce7f9e
--- /dev/null
+++ b/community/xdiskusage/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 51101 2011-07-05 08:55:16Z 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=6
+pkgdesc="xdiskusage is a user-friendly program to show you what is using up all your disk space"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('fltk')
+makedepends=('libxi')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" mandir="$pkgdir/usr/share/man" install
+ 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..58913e176
--- /dev/null
+++ b/community/xdotool/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 48265 2011-05-30 19:01:31Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Rttommy <rttommy@gmail.com>
+
+pkgname=xdotool
+pkgver=2.20110530.1
+pkgrel=1
+pkgdesc="Command-line X11 automation tool"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.semicomplete.com/projects/xdotool/"
+license=('BSD')
+depends=('libxtst' 'libxinerama')
+source=(http://semicomplete.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+sha1sums=('bf8372b2e76e8ee3884763cee6e8b3f66bf29aa6')
+
+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..02183f87d
--- /dev/null
+++ b/community/xemacs/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 59720 2011-11-29 13:35:44Z stephane $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor : Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=xemacs
+pkgver=21.5.31
+pkgrel=3
+pkgdesc="An highly customizable open source text editor and application development system forked from GNU Emacs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xemacs.org/"
+license=('GPL')
+depends=('db' 'libpng' 'libtiff' 'gpm' 'desktop-file-utils' 'libxaw' 'gdbm' 'giflib')
+optdepends=('xorg-fonts-75dpi: X bitmap fonts needed for the interface'
+ 'xorg-fonts-100dpi: X bitmap fonts needed for the interface')
+makedepends=('xbitmaps')
+install=xemacs.install
+source=(http://ftp.xemacs.org/pub/xemacs/beta/$pkgname-$pkgver.tar.gz
+ xemacs.desktop
+ xemacs-21.5.29-optimization-bug.patch)
+md5sums=('0185fe905d0b8d8d094d9b60cf262d4a'
+ 'a4d3d5c0aa2c7ce7bec491f809ca3694'
+ 'eb061b10ea3bbe1026df5326ae1618e3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+# Fix problem caused by improper optimization with GCC>=4.1.2 on i686
+# (and possibly other arches). See
+# http://tracker.xemacs.org/XEmacs/its/issue354
+# for the upstream bug report.
+ patch -Np0 -i ../xemacs-21.5.29-optimization-bug.patch
+
+ ./configure --build="${CHOST}" --prefix=/usr --with-dynamic \
+ --without-postgresql --with-athena=xaw \
+ --enable-database=berkdb --without-ldap \
+ --enable-menubars=lucid --enable-scrollbars=lucid \
+ --enable-widgets=athena --enable-dialogs=athena \
+ --enable-external-widget \
+ --with-jpeg --with-png --with-tiff \
+ --with-ncurses --with-pop --with-xfs --disable-sound \
+ --infodir=/usr/share/info \
+ --with-mule \
+ --mandir=/usr/share/man/man1
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -j1 prefix="${pkgdir}/usr" mandir="${pkgdir}/usr/share/man/man1" infodir="${pkgdir}/usr/share/info" install gzip-el
+
+ rm "${pkgdir}"/usr/bin/{b2m,ctags,etags}
+ rm "${pkgdir}"/usr/share/man/man1/{ctags.1,etags.1}
+
+ # fix FS#7927
+ install -d -m755 "${pkgdir}/usr/share/pixmaps"
+ install -D -m644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ ln -sf /usr/share/xemacs-${pkgver%.*}-b${pkgver##*.}/etc/xemacs-icon.xpm "${pkgdir}/usr/share/pixmaps/xemacs-icon.xpm"
+
+ # correct permissions
+ chown -R root:root "${pkgdir}"
+
+ rm "${pkgdir}"/usr/share/info/{info.info,texinfo.info-2,cl.info,texinfo.info-1,texinfo.info,standards.info,widget.info}
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/community/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.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..a04ee187f
--- /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..4dab38499
--- /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' 'mips64el')
+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..8788a2600
--- /dev/null
+++ b/community/xfe/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 48873 2011-06-06 21:48:23Z 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.4
+pkgrel=1
+pkgdesc="X File Explorer (Xfe) is an MS-Explorer like file manager for X."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://roland65.free.fr/xfe"
+license=("GPL")
+depends=('fox')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ed9db4338b9191adb5267fd12f64e774')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ sed -i 's|inline||' src/xfeutils.cpp
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/xfmedia/PKGBUILD b/community/xfmedia/PKGBUILD
new file mode 100644
index 000000000..92afa25ab
--- /dev/null
+++ b/community/xfmedia/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 58605 2011-11-16 15:28:21Z 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' 'mips64el')
+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..cb3864be4
--- /dev/null
+++ b/community/xiphos/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 60197 2011-12-07 12:42:03Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Andrea Scarpino
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: TripleE <eric1548@yahoo.com>
+pkgname=xiphos
+pkgver=3.1.4
+pkgrel=9
+pkgdesc="Bible study tool for GTK+"
+arch=('x86_64' 'i686' 'mips64el')
+url="http://xiphos.org/"
+license=('GPL')
+depends=('libgsf' 'libglade' 'gtkhtml' 'sword')
+makedepends=('gnome-doc-utils' 'intltool' 'python2')
+conflicts=('gnomesword')
+provides=('gnomesword')
+replaces=('gnomesword')
+install=xiphos.install
+source=("http://downloads.sourceforge.net/gnomesword/$pkgname-$pkgver.tar.gz")
+md5sums=('4d6f7805c4c8185f5c4ac3bd95fc705a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i '0,/on/s//on2/' 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"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/xiphos/xiphos.install b/community/xiphos/xiphos.install
new file mode 100644
index 000000000..048e77780
--- /dev/null
+++ b/community/xiphos/xiphos.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/xkbsel/PKGBUILD b/community/xkbsel/PKGBUILD
new file mode 100644
index 000000000..c292de3d6
--- /dev/null
+++ b/community/xkbsel/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59722 2011-11-29 13:35:50Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xkbsel
+pkgver=0.13
+pkgrel=5
+pkgdesc="framework for defining, selecting and indicating XKB keyboard mappings"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.meduna.org/sw_xkbsel_en.html"
+license=('GPL')
+depends=('gdbm' 'libxaw')
+makedepends=('patch' 'xkeyboard-config')
+source=(http://www.meduna.org/code/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('c82196344ef920a072f413df85b9dc00'
+ 'dee0f7de8618d9eff073942f0e08f030')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 <../build-fix.patch
+ export CFLAGS="$CFLAGS -I/usr/include/gdbm -DHAVE_NDBM_H"
+ export LDFLAGS="-lgdbm -lgdbm_compat"
+
+ ./configure --prefix=/usr --localstatedir=/var/lib --sysconfdir=/etc/xkbsel \
+ --build=`uname -m` --host=`uname -m` --target=`uname -m` \
+ --mandir=/usr/share/man
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/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..ef84d353b
--- /dev/null
+++ b/community/xkeycaps/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 59110 2011-11-21 10:43:20Z 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' 'mips64el')
+pkgdesc="XKeyCaps is a graphical front-end to xmodmap."
+url="http://www.jwz.org/xkeycaps/"
+license=('custom')
+depends=('libxaw')
+makedepends=('imake' 'xbitmaps')
+source=(http://www.jwz.org/$pkgname/$pkgname-$pkgver.tar.Z
+ license.txt)
+md5sums=('6792f828db6538f44f7696a8783b44ac'
+ '6d44b50641d2e7898aebcc668d204751')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ xmkmf
+ make MANPATH=/usr/share/man
+ make DESTDIR=$pkgdir install
+ make DESTDIR=$pkgdir MANPATH=/usr/share/man install.man
+ 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..9a0bcbfc5
--- /dev/null
+++ b/community/xl2tpd/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 53519 2011-08-04 21:10:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Hengfu <rhfcaesar@gmail.com>
+
+pkgname=xl2tpd
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="an open source implementation of the L2TP maintained by Xelerance Corporation"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ ipparam.patch)
+md5sums=('28264284552c442b24cf421755a2bb48'
+ '1439d13084fc09c2a19c97b24a834345'
+ '5f0ae07026e61a3dd15a76fd4144a6d5'
+ '16ed0886115d4dcc21072cfb847250bb'
+ 'ed57eb67335cdf246251285dad502cc7'
+ '4d258a58cc109d5c4d96af8f81d481cf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ 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/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..0d1cc9b3f
--- /dev/null
+++ b/community/xloadimage/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 59105 2011-11-21 10:35:15Z 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 'mips64el')
+#url="http://world.std.com/~jimf/xloadimage.html"
+url="http://sioseis.ucsd.edu/xloadimage.html"
+license=("MIT")
+depends=('libtiff' 'libpng' 'libx11' 'libxext')
+makedepends=('patch' 'imake')
+source=(http://archlinux-stuff.googlecode.com/files/xloadimage.$pkgver-1.tar.gz
+ license.txt
+ enable-image-types.patch)
+md5sums=('86b42b1b628a9c00008b7deec21e1175'
+ 'cc16a51aeb5083b8ff07939dfe244130'
+ '3a2703925011276fd2d2bd139b676487')
+
+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..b61e36b87
--- /dev/null
+++ b/community/xloadimage/enable-image-types.patch
@@ -0,0 +1,74 @@
+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 -wbBur xloadimage.4.1/jpeg.c xloadimage.4.1.my/jpeg.c
+--- xloadimage.4.1/jpeg.c 2011-02-11 14:47:37.000000000 +0300
++++ xloadimage.4.1.my/jpeg.c 2011-11-21 14:32:30.000000000 +0400
+@@ -319,6 +319,7 @@
+ if (verbose)
+ printf(" Using arithmetic coding.\n");
+ cinfo->arith_code = TRUE;
++ }
+ #else
+ fprintf(stderr, "jpegDump: sorry, arithmetic coding not supported\n");
+ }
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..74f912e37
--- /dev/null
+++ b/community/xlockmore/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 58588 2011-11-16 05:16:51Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=xlockmore
+pkgver=5.35
+pkgrel=1
+pkgdesc="screen saver / locker for the X Window System"
+arch=(i686 x86_64 'mips64el')
+license=('BSD')
+depends=(freetype2 gtk2 libxpm lesstif pam mesa 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=('fdd7b876aac46f9a86497858b70e17b2'
+ 'a64afab4283f53972a6702c2e59850d7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --disable-setuid \
+ --enable-appdefaultdir=/usr/share/X11/app-defaults \
+ --enable-pam --with-gtk2 --without-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/xml2/01_use_libxml2_instead_of_libxml.patch b/community/xml2/01_use_libxml2_instead_of_libxml.patch
new file mode 100644
index 000000000..975060ed3
--- /dev/null
+++ b/community/xml2/01_use_libxml2_instead_of_libxml.patch
@@ -0,0 +1,70 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_use_libxml2_instead_of_libxml.dpatch by Daniel Leidert
+## <daniel.leidert@wgdd.de>
+##
+## DP: Make use of libxml2 instead of libxml
+
+@DPATCH@
+diff -urNad xml2-0.4~/2xml.c xml2-0.4/2xml.c
+--- xml2-0.4~/2xml.c 2003-12-24 21:28:48.000000000 +0100
++++ xml2-0.4/2xml.c 2008-03-12 09:32:17.345380803 +0100
+@@ -24,7 +24,7 @@
+ #include <assert.h>
+ #include <ctype.h>
+
+-#include <HTMLparser.h>
++#include <libxml/HTMLparser.h>
+
+ int do_html;
+ int in_tag = 0;
+@@ -104,7 +104,7 @@
+ fputs("/>",stdout);
+ else {
+ const htmlElemDesc *elem = NULL;
+- if (do_html) elem = htmlTagLookup(name);
++ if (do_html) elem = htmlTagLookup((xmlChar *) name);
+ finish_tag();
+ if (NULL == elem || (!elem->endTag && !elem->empty)) {
+ fputs("</",stdout);
+diff -urNad xml2-0.4~/Makefile.am xml2-0.4/Makefile.am
+--- xml2-0.4~/Makefile.am 2008-02-07 16:58:13.000000000 +0100
++++ xml2-0.4/Makefile.am 2008-03-12 09:32:17.345380803 +0100
+@@ -1,9 +1,9 @@
+-AM_CPPFLAGS = $(XML_CFLAGS)
++AM_CFLAGS = $(XML_CFLAGS)
+ bin_PROGRAMS = xml2 2xml csv2 2csv
+ xml2_SOURCES = xml2.c
+-xml2_LDADD = -lxml
++xml2_LDADD = $(XML_LIBS)
+ 2xml_SOURCES = 2xml.c
+-2xml_LDADD = -lxml
++2xml_LDADD = $(XML_LIBS)
+ csv2_SOURCES = csv2.c
+ 2csv_SOURCES = 2csv.c
+
+diff -urNad xml2-0.4~/configure.ac xml2-0.4/configure.ac
+--- xml2-0.4~/configure.ac 2008-02-07 17:11:54.000000000 +0100
++++ xml2-0.4/configure.ac 2008-03-12 09:32:17.345380803 +0100
+@@ -11,7 +11,7 @@
+ AC_PROG_CC
+
+ # Checks for libraries.
+-PKG_CHECK_MODULES(XML, libxml)
++PKG_CHECK_MODULES(XML, libxml-2.0)
+ AC_SUBST(XML_LIBS)
+ AC_SUBST(XML_CFLAGS)
+
+diff -urNad xml2-0.4~/xml2.c xml2-0.4/xml2.c
+--- xml2-0.4~/xml2.c 2001-10-28 05:29:46.000000000 +0100
++++ xml2-0.4/xml2.c 2008-03-12 09:32:17.345380803 +0100
+@@ -24,8 +24,8 @@
+ #include <string.h>
+ #include <ctype.h>
+
+-#include <parser.h>
+-#include <HTMLparser.h>
++#include <libxml/parser.h>
++#include <libxml/HTMLparser.h>
+
+ struct node
+ {
diff --git a/community/xml2/PKGBUILD b/community/xml2/PKGBUILD
new file mode 100644
index 000000000..ab1fdd7fc
--- /dev/null
+++ b/community/xml2/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 55027 2011-08-31 14:49:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Orivej Desh <masecretaire@gmx.fr>
+# Maintainer: Orivej Desh <masecretaire@gmx.fr>
+
+pkgname=xml2
+pkgver=0.4
+pkgrel=2
+pkgdesc="XML/Unix Processing Tools to convert XML and HTML to and from a line-oriented format more amenable to processing by classic Unix pipeline processing tools"
+arch=("i686" "x86_64")
+url="http://www.ofb.net/~egnor/xml2/"
+license=("GPL")
+depends=("libxml2")
+source=("http://download.ofb.net/gale/$pkgname-$pkgver.tar.gz"
+ "01_use_libxml2_instead_of_libxml.patch")
+md5sums=('8a0ef16fe0b3e1495307318c590c1ec0'
+ '9e810be33d2abbc8aabd8203db1f9654')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i ../01_use_libxml2_instead_of_libxml.patch
+ autoreconf
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+ cd "$pkgdir/usr/bin"
+ rm html2 2html
+ ln -s xml2 html2
+ ln -s 2xml 2html
+}
diff --git a/community/xmldiff/PKGBUILD b/community/xmldiff/PKGBUILD
new file mode 100644
index 000000000..bff34a96d
--- /dev/null
+++ b/community/xmldiff/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 50681 2011-06-29 12:57:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+
+pkgname=xmldiff
+pkgver=0.6.10
+pkgrel=1
+pkgdesc="A python tool that figures out the differences between two similar XML files, in the same way the diff utility does it"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.logilab.org/project/xmldiff/"
+license=('GPL2')
+depends=('python2' 'libxslt' 'jade')
+optdepends=('docbook-xsl: render revision info')
+source=(http://ftp.logilab.org/pub/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('a61e6e95a130e3bd53f5ea5616cc5314')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's@^#!.*python$@#!/usr/bin/python2@' main.py
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+ install -m755 -d "$pkgdir/usr/share/man/man1"
+ install -m644 man/*.1 "$pkgdir/usr/share/man/man1"
+}
diff --git a/community/xmlrpc-c/PKGBUILD b/community/xmlrpc-c/PKGBUILD
new file mode 100644
index 000000000..b4883c4ed
--- /dev/null
+++ b/community/xmlrpc-c/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 49552 2011-06-18 07:22:08Z andrea $
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Vitaliy Berdinskikh <skipper13@root.ua>
+
+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' 'mips64el')
+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/community/$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}"
+}
+
+package() {
+ cd $srcdir/$pkgname
+ make DESTDIR=$pkgdir install
+
+ install -m 644 -D doc/COPYING $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+ 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..b07fd1af9
--- /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 'mips64el')
+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..7f97c4ced
--- /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' 'mips64el')
+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..8b2f6b3f7
--- /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' 'mips64el')
+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..b2d59a5e6
--- /dev/null
+++ b/community/xmms2/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 58429 2011-11-12 17:19:30Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xmms2
+pkgver=0.8DrO_o
+pkgrel=2
+pkgdesc="complete rewrite of the popular music player"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'jack' 'libao' 'libmms' 'libmpcdec' 'libofa' 'libsamplerate' 'libshout'
+ 'libvorbis' 'libxml2' 'mpg123' 'oss' 'perl' 'pulseaudio' 'pyrex'
+ 'ruby' 'smbclient' 'speex' 'wavpack' 'libmodplug') # avahi
+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'
+ 'smbclient: direct CIFS/SMB access'
+ 'speex: Speex support'
+ 'wavpack: WavPack support')
+# '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)
+conflicts=('xmms2-devel')
+install=xmms2.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ xmms2d.conf
+ xmms2d.rc
+ xmms2-helpers.patch
+ vorbis-albumart.patch)
+md5sums=('84d5c05a70bfd31ed392a4e3f701eaa3'
+ 'af13c937bf3c86b77ae6820107aab9b8'
+ '9d8e3e1a434f271423bdd228a1e9bd7c'
+ 'eddb800ebcc495b8574044a110a34add'
+ 'c5a16da0c5a6ebe5e7f58afb6edfa87e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+# patch -Np1 < ${srcdir}/xmms2-helpers.patch
+# patch -p1 <$srcdir/vorbis-albumart.patch
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' waf
+
+ ./waf configure --prefix=/usr \
+ --with-optionals=python,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..9d4d2b7e9
--- /dev/null
+++ b/community/xmms2/xmms2d.rc
@@ -0,0 +1,39 @@
+#!/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 '/usr/bin/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" ] && su -c '/usr/bin/xmms2 quit &>/dev/null' - $XMMS2_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ for i in `seq 1 10`; do
+ [ -d /proc/$PID ] || { stat_done; rm_daemon xmms2d; exit 0; }
+ sleep 1
+ done
+ stat_fail
+ 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..95cb17f60
--- /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' 'mips64el')
+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..9fa62dba5
--- /dev/null
+++ b/community/xmobar/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60406 2011-12-13 10:42:25Z 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.14
+pkgrel=1
+pkgdesc="A Minimalistic Text Based Status Bar"
+url="http://hackage.haskell.org/package/xmobar"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gmp' 'libxft' 'libxinerama' 'wireless_tools' 'libxrandr')
+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=('b965e2db0555c741db96945210995777')
+
+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..a2d1a65e4
--- /dev/null
+++ b/community/xmonad-contrib/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 60423 2011-12-13 19:10:42Z spupykin $
+# 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=4
+pkgdesc="Add-ons for xmonad"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xmonad.org/"
+license=('BSD')
+depends=('ghc=7.0.3' 'xmonad=0.9.2' 'sh' 'haskell-x11=1.5.0.1'
+ 'haskell-x11-xft=0.3.1' '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-shared --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/PKGBUILD b/community/xmonad/PKGBUILD
new file mode 100644
index 000000000..e21e9aeaf
--- /dev/null
+++ b/community/xmonad/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 60410 2011-12-13 13:22:16Z spupykin $
+# 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=3
+pkgdesc="A lightweight X11 tiled window manager written in Haskell"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xmonad.org/"
+license=('BSD')
+depends=('ghc=7.0.3' 'gmp' 'haskell-x11=1.5.0.1' '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.session
+ xmonad.svg)
+md5sums=('5a4117f798664d772d2a834ea6c90f1c'
+ 'f8e3d84a9f154d1b5d7fcffbc0a058c9'
+ '9d1bc84a7f32897d32f3fc71ef76228e'
+ '72bfa5e62e4e44fe7fa59b6a7593d993')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ runhaskell Setup.lhs configure --ghc --enable-shared --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/xsessions/xmonad.desktop
+ install -D -m644 $srcdir/xmonad.session $pkgdir/usr/share/gnome-session/sessions/xmonad.session
+ 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..0af0f2d9b
--- /dev/null
+++ b/community/xmonad/xmonad.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Xmonad GNOME
+Comment=Tiling window manager
+TryExec=/usr/bin/gnome-session
+Exec=gnome-session --session=xmonad
+Type=XSession
+Icon=/usr/share/pixmaps/xmonad.svg
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.session b/community/xmonad/xmonad.session
new file mode 100644
index 000000000..c0bd16781
--- /dev/null
+++ b/community/xmonad/xmonad.session
@@ -0,0 +1,6 @@
+[GNOME Session]
+Name=Xmonad session
+RequiredComponents=gnome-panel;gnome-settings-daemon;
+RequiredProviders=windowmanager;notifications;
+DefaultProvider-windowmanager=xmonad
+DefaultProvider-notifications=notification-daemon
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..3f13d611e
--- /dev/null
+++ b/community/xmoto/PKGBUILD
@@ -0,0 +1,39 @@
+# $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.8
+pkgrel=1
+pkgdesc="A challenging 2D motocross platform game, where physics play an important role."
+arch=('i686' 'x86_64' 'mips64el')
+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' 'libxml++')
+install=xmoto.install
+source=("http://download.tuxfamily.org/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}-src.tar.gz")
+sha1sums=('a5197e10f0c37cfefbab55723c8d0760234fb4ce')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # 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/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..3e923496d
--- /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' 'mips64el')
+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..43cb3b476
--- /dev/null
+++ b/community/xnc/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 58678 2011-11-17 15:02:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xnc
+pkgver=5.0.4
+pkgrel=4
+pkgdesc="X nortern captain file manager"
+arch=(i686 x86_64 'mips64el')
+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'
+ 'c0037a081824bca691e59a4ec68b6686')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 <$srcdir/xnc-gcc44.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/xnc/xnc-gcc44.patch b/community/xnc/xnc-gcc44.patch
new file mode 100644
index 000000000..120d9d467
--- /dev/null
+++ b/community/xnc/xnc-gcc44.patch
@@ -0,0 +1,72 @@
+diff -wbBur xnc-5.0.4/src/include/commonfuncs.h xnc-5.0.4.my/src/include/commonfuncs.h
+--- xnc-5.0.4/src/include/commonfuncs.h 2002-10-16 10:44:17.000000000 +0400
++++ xnc-5.0.4.my/src/include/commonfuncs.h 2011-11-17 18:59:19.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);
+diff -wbBur xnc-5.0.4/src/lib/tool/commonfuncs.cxx xnc-5.0.4.my/src/lib/tool/commonfuncs.cxx
+--- xnc-5.0.4/src/lib/tool/commonfuncs.cxx 2002-10-16 10:44:20.000000000 +0400
++++ xnc-5.0.4.my/src/lib/tool/commonfuncs.cxx 2011-11-17 18:59:19.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);
+diff -wbBur xnc-5.0.4/src/lib/vfs/afs.cxx xnc-5.0.4.my/src/lib/vfs/afs.cxx
+--- xnc-5.0.4/src/lib/vfs/afs.cxx 2003-11-27 18:36:43.000000000 +0300
++++ xnc-5.0.4.my/src/lib/vfs/afs.cxx 2011-11-17 18:59:19.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
+diff -wbBur xnc-5.0.4/src/lib/vfs/ftpfs.cxx xnc-5.0.4.my/src/lib/vfs/ftpfs.cxx
+--- xnc-5.0.4/src/lib/vfs/ftpfs.cxx 2002-10-30 15:47:38.000000000 +0300
++++ xnc-5.0.4.my/src/lib/vfs/ftpfs.cxx 2011-11-17 18:59:19.000000000 +0400
+@@ -1413,7 +1413,7 @@
+ return;
+ if(strcmp(dir,"/"))
+ {
+- char *s=dir;
++ const char *s=dir;
+ if(*s=='/') //Skip leading '/'
+ s++;
+ do
+diff -wbBur xnc-5.0.4/src/man_page.cxx xnc-5.0.4.my/src/man_page.cxx
+--- xnc-5.0.4/src/man_page.cxx 2002-10-02 16:54:33.000000000 +0400
++++ xnc-5.0.4.my/src/man_page.cxx 2011-11-17 18:59:00.000000000 +0400
+@@ -81,7 +81,7 @@
+ buf[j] = 0;
+ manf->size = j;
+ delete buf;
+- fp = open(tmps, O_WRONLY | O_CREAT | O_TRUNC);
++ fp = open(tmps, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+ write(fp, buf2, j);
+ close(fp);
+ delete manf;
diff --git a/community/xnee/PKGBUILD b/community/xnee/PKGBUILD
new file mode 100644
index 000000000..989a23021
--- /dev/null
+++ b/community/xnee/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 55315 2011-09-09 20:38:51Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=xnee
+pkgver=3.10
+pkgrel=1
+pkgdesc="A program to record, distribute, and replay X (X11) protocol data"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.sandklef.com/xnee/"
+license=('GPL3')
+depends=('gtk2' 'libgnomeui' 'libxtst')
+makedepends=('texinfo')
+options=('!libtool' '!emptydirs')
+changelog=$pkgname.changelog
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('6260e02f4938d18a548e6a6716ae48e34f1bf33c7a832d5eda35d4191fb86b56')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --disable-gnome-applet
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/xnee/xnee.changelog b/community/xnee/xnee.changelog
new file mode 100644
index 000000000..f3e20ccfe
--- /dev/null
+++ b/community/xnee/xnee.changelog
@@ -0,0 +1,8 @@
+2011-09-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * xnee 3.10-1
+
+2011-04-10 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * xnee 3.09-1
+
+2009-12-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 3.05
diff --git a/community/xosd/PKGBUILD b/community/xosd/PKGBUILD
new file mode 100644
index 000000000..f7cef2249
--- /dev/null
+++ b/community/xosd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 55535 2011-09-14 07:50:30Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=xosd
+pkgver=2.2.14
+pkgrel=4
+pkgdesc="Displays text on your screen. On-Screen-Display-libs for some tools"
+arch=("i686" "x86_64" 'mips64el')
+license=('GPL2')
+url="http://www.ignavus.net/software.html"
+depends=('libxt' 'libxinerama' 'sh')
+makedepends=('xmms' 'bmp' 'gdk-pixbuf')
+optdepends=('gdk-pixbuf: for using the bmp or xmms plugin')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/libxosd/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4b349fe930e4eee2f504d6c02673e24d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ sed -i 's/AC_DEFUN(AM_PATH_LIBXOSD,/AC_DEFUN([AM_PATH_LIBXOSD],/' \
+ "$pkgdir/usr/share/aclocal/libxosd.m4"
+}
diff --git a/community/xpacman/PKGBUILD b/community/xpacman/PKGBUILD
new file mode 100644
index 000000000..908a4c7b6
--- /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 'mips64el')
+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..48034026b
--- /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' 'mips64el')
+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..338d5972d
--- /dev/null
+++ b/community/xpad/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 60101 2011-12-05 05:18:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=xpad
+pkgver=4.1
+pkgrel=1
+pkgdesc="Stickies-like notes program"
+arch=(i686 x86_64 'mips64el')
+depends=('gtk2' 'libsm' 'librsvg')
+makedepends=('intltool')
+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=('e37bfbe2331d810124c28150fdf30b3f'
+ '6a3d2952b469d65ec333714991ba8284')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+# patch -p1 <$srcdir/xpad-gtk-2.20.patch
+ ./configure --prefix=/usr
+ /usr/bin/make
+ /usr/bin/make DESTDIR=$pkgdir 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..588fb55e5
--- /dev/null
+++ b/community/xplanet/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 52172 2011-07-21 07:16:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=xplanet
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="An Xearth wannabe"
+arch=(i686 x86_64 'mips64el')
+url="http://xplanet.sourceforge.net/"
+license=('GPL')
+depends=('pango' 'libungif' 'libtiff' 'libxss')
+source=(http://downloads.sourceforge.net/project/xplanet/xplanet/$pkgver/xplanet-$pkgver.tar.gz)
+md5sums=('b38c3b4cfdd772643f876a9bb15f288b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-freetype
+ make
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/xplc/PKGBUILD b/community/xplc/PKGBUILD
new file mode 100644
index 000000000..c7c5a7b5b
--- /dev/null
+++ b/community/xplc/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 49019 2011-06-09 20:53:15Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=xplc
+pkgver=0.3.13
+pkgrel=3
+pkgdesc="Cross-Platform Lightweight Components"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xplc.sourceforge.net"
+license=('LGPL')
+depends=('gcc-libs')
+source=("http://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz")
+md5sums=('39da3270527c8712b8e8fcf03768d29f')
+options=('!buildflags')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./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/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..5820da5df
--- /dev/null
+++ b/community/xrestop/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 58682 2011-11-17 15:15:17Z spupykin $
+# 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' 'mips64el')
+url="http://freedesktop.org/wiki/Software/xrestop"
+license=('GPL')
+depends=('libxres' 'ncurses')
+source=(ftp://ftp.archlinux.org/other/community/xrestop/xrestop-$pkgver.tar.gz)
+md5sums=('d8a54596cbaf037e62b80c4585a3ca9b')
+
+build() {
+ cd "$srcdir/xrestop-$pkgver"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/xrestop-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/xsel/PKGBUILD b/community/xsel/PKGBUILD
new file mode 100644
index 000000000..f3bcc8b08
--- /dev/null
+++ b/community/xsel/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 59067 2011-11-21 08:59:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xsel
+pkgver=1.2.0
+pkgrel=4
+pkgdesc="XSel is a command-line program for getting and setting the contents of the X selection"
+arch=(i686 x86_64 'mips64el')
+url="http://www.vergenet.net/~conrad/software/xsel/"
+license=("custom")
+depends=('libx11')
+makedepends=('libxt')
+source=(http://www.vergenet.net/~conrad/software/xsel/download/$pkgname-$pkgver.tar.gz)
+md5sums=('75983f143ce83dc259796c6eaf85c8f5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ mkdir -p $pkgdir/usr/share/licenses/xsel/
+ install -D -m0644 COPYING $pkgdir/usr/share/licenses/xsel/COPYING
+}
diff --git a/community/xsensors/PKGBUILD b/community/xsensors/PKGBUILD
new file mode 100644
index 000000000..c061523d2
--- /dev/null
+++ b/community/xsensors/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 59264 2011-11-22 07:31:16Z 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=3
+pkgdesc="X11 interface to lm_sensors"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ remove-unused-variables.patch
+ replace-deprecated-gtk.patch
+ xsensors.desktop)
+md5sums=('4f8fb83cfd03c0cc34967a73c6021531'
+ '8ca558b7f7e4a5f83f63498668c4ad8f'
+ 'd9ee6799d45adc7c62273f32085bec5f'
+ 'fe1369d2b61eed1a25002e2247617357')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # patches from debian
+ patch -Np1 -i ${srcdir}/remove-unused-variables.patch
+ patch -Np1 -i ${srcdir}/replace-deprecated-gtk.patch
+
+ ./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/remove-unused-variables.patch b/community/xsensors/remove-unused-variables.patch
new file mode 100644
index 000000000..7da97a0e5
--- /dev/null
+++ b/community/xsensors/remove-unused-variables.patch
@@ -0,0 +1,39 @@
+Author: Nanley Chery <nanleychery@gmail.com>
+From: Jean Delvare <khali@linux-fr.org>
+Subject: Remove declared, but unused variables
+Bug-Debian: http://bugs.debian.org/625435
+---
+--- a/src/gui.c
++++ b/src/gui.c
+@@ -257,10 +257,9 @@
+
+ /* Start the sensor info update timer. */
+ gint start_timer( GtkWidget *widget, gpointer data ) {
+- gint timer;
+
+ /* Setup timer for updates. */
+- timer = g_timeout_add( update_time * 1000,
++ g_timeout_add( update_time * 1000,
+ (GtkFunction) update_sensor_data,
+ (gpointer) data );
+
+@@ -287,7 +286,7 @@
+
+ /* feature data */
+ updates *head = NULL;
+- updates *current = NULL, *prev = NULL;
++ updates *current = NULL;
+
+ const sensors_feature *feature;
+
+@@ -347,10 +346,8 @@
+ new_node->pbar = featpbar;
+
+ if ( head == NULL ) {
+- prev = head;
+ head = current = new_node;
+ } else {
+- prev = current;
+ current = current->next = new_node;
+ }
+
diff --git a/community/xsensors/replace-deprecated-gtk.patch b/community/xsensors/replace-deprecated-gtk.patch
new file mode 100644
index 000000000..fed4c7dc4
--- /dev/null
+++ b/community/xsensors/replace-deprecated-gtk.patch
@@ -0,0 +1,168 @@
+Author: Nanley Chery <nanleychery@gmail.com>
+Subject: Update deprecated gtk casts and replace deprecated function calls with their analogous cairo counterparts.
+Bug-Debian: http://bugs.debian.org/622005
+Bug-Debian: http://bugs.debian.org/610321
+---
+--- a/src/gui.c
++++ b/src/gui.c
+@@ -27,10 +27,10 @@
+ GtkWidget *mainwindow = NULL;
+
+ GdkColor colorWhite = { 0, 0xFFFF, 0xFFFF, 0xFFFF };
+-
+-GdkColormap *cmap = NULL;
+
+-GdkPixmap *theme = NULL;
++GdkPixbuf *theme = NULL;
++
++cairo_surface_t *surface = NULL;
+
+ /* Destroy the main window. */
+ gint destroy_gui( GtkWidget *widget, gpointer data ) {
+@@ -76,17 +76,16 @@
+ }
+ }
+
+-static void draw_digits( GtkWidget *widget, const gchar *digits, int highLow )
++static void draw_digits( GtkWidget *widget, cairo_t *cr, const gchar *digits, int highLow )
+ {
+ const gchar *digit = digits;
+ int pos = 0, x = 0, y = 0, w = 0;
+
+ while ( *digit ) {
+ get_pm_location( *digit, &x, &y, &w );
+- gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
+- (widget) ], theme, x, y + highLow,
+- pos, 0, w, 30 );
++ cairo_set_source_surface (cr, surface, pos-x, 0-(y + highLow));
++ cairo_rectangle(cr, pos, 0, w, 30);
++ cairo_fill(cr);
+ pos += w;
+ digit++;
+ }
+@@ -102,6 +101,8 @@
+
+ gchar result[7];
+
++ cairo_t *cr = gdk_cairo_create(widget->window);
++
+ #ifdef DEBUG_XSENSORS
+ printf( "area.width = %d, area.height = %d\n", event->area.width,
+ event->area.height );
+@@ -117,13 +118,11 @@
+
+ /* Display the digits */
+ if ( g_snprintf( result, 6, "%5.0f", current->curvalue ) >= 0 )
+- draw_digits( widget, result, highLow );
++ draw_digits( widget, cr, result, highLow );
+
+ /* Display RPM */
+- gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
+- (widget) ], theme, 0, 120 + highLow,
+- 90, 0, 57, 30 );
++ cairo_set_source_surface (cr, surface, 90-0, 0-(120 + highLow));
++ cairo_rectangle(cr, 90, 0, 57, 30);
+ break;
+ case TEMP:
+ if ( current->curvalue > current->curmax )
+@@ -134,17 +133,15 @@
+
+ /* Display the digits */
+ if ( g_snprintf( result, 7, "%6.1f", current->curvalue ) >= 0 )
+- draw_digits( widget, result, highLow );
++ draw_digits( widget, cr, result, highLow );
+
+ /* Display degree symbol */
+ if ( tf == FALSE )
+ x = 0;
+ else
+ x = 57;
+- gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
+- (widget) ], theme, x, 60 + highLow,
+- 96, 0, 57, 30 );
++ cairo_set_source_surface (cr, surface, 96-x, 0-(60 + highLow));
++ cairo_rectangle(cr, 96, 0, 57, 30);
+
+ break;
+ case VOLT:
+@@ -154,20 +151,17 @@
+
+ /* Display the digits */
+ if ( g_snprintf( result, 7, "%6.2f", current->curvalue ) >= 0 )
+- draw_digits( widget, result, highLow );
++ draw_digits( widget, cr, result, highLow );
+
+ /* Display V */
+- gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
+- (widget) ], theme, 114, 60 + highLow,
+- 96, 0, 57, 30 );
+-
+-
++ cairo_set_source_surface (cr, surface, 96-114, 0-(60 + highLow));
++ cairo_rectangle(cr, 96, 0, 57, 30);
+ break;
+ default:
+ break;
+ }
+-
++ cairo_fill(cr);
++ cairo_destroy(cr);
+ return TRUE;
+ }
+
+@@ -260,7 +254,7 @@
+
+ /* Setup timer for updates. */
+ g_timeout_add( update_time * 1000,
+- (GtkFunction) update_sensor_data,
++ (GSourceFunc) update_sensor_data,
+ (gpointer) data );
+
+ return SUCCESS;
+@@ -460,8 +454,6 @@
+ g_signal_connect( G_OBJECT (mainwindow), "delete_event",
+ G_CALLBACK (destroy_gui), NULL );
+
+- /* Graphics needed for drawing info. */
+- cmap = gtk_widget_get_colormap( mainwindow );
+
+ /* Set up the image file used for displaying characters. */
+ if ( imagefile == NULL ) {
+@@ -481,12 +473,10 @@
+ "Image file not found in either location! Exiting!\n" );
+ exit( 1 );
+ } else {
+- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap,
+- NULL, NULL, "./images/default.xpm" );
++ theme = gdk_pixbuf_new_from_file("./images/default.xpm", NULL );
+ }
+ } else {
+- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap,
+- NULL, NULL, imagefile );
++ theme = gdk_pixbuf_new_from_file(imagefile, NULL );
+ }
+ } else {
+ if ( stat( imagefile, &sbuf ) != 0 ) {
+@@ -495,11 +485,15 @@
+ "Image file not found in specified location! Exiting!\n" );
+ exit( 1 );
+ } else {
+- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap,
+- NULL, NULL, imagefile );
++ theme = gdk_pixbuf_new_from_file(imagefile, NULL );
+ }
+ }
+-
++ surface = cairo_image_surface_create_for_data(gdk_pixbuf_get_pixels(theme),
++ CAIRO_FORMAT_RGB24,
++ gdk_pixbuf_get_width(theme),
++ gdk_pixbuf_get_height(theme),
++ gdk_pixbuf_get_rowstride(theme));
++
+ /* Create notebook for sensors. */
+ notebook = gtk_notebook_new( );
+ gtk_widget_modify_bg( notebook, GTK_STATE_NORMAL, &colorWhite );
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..23786f30f
--- /dev/null
+++ b/community/xsettings-client/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 59102 2011-11-21 10:29:36Z 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' 'mips64el')
+license=('GPL')
+url="http://matchbox-project.org"
+depends=('libx11')
+options=('!libtool')
+source=(http://matchbox-project.org/sources/optional-dependencies/Xsettings-client-$pkgver.tar.gz)
+md5sums=('c14aa9db6c097e0306dac97fb7da1add')
+
+build() {
+ cd $srcdir/Xsettings-client-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/xskat/PKGBUILD b/community/xskat/PKGBUILD
new file mode 100644
index 000000000..119f8d5b6
--- /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' 'mips64el')
+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..2ca9375d9
--- /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' 'mips64el')
+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/xvidcap/PKGBUILD b/community/xvidcap/PKGBUILD
new file mode 100644
index 000000000..52f8f4622
--- /dev/null
+++ b/community/xvidcap/PKGBUILD
@@ -0,0 +1,50 @@
+# $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=4
+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" 'mips64el')
+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'
+ 'ffmpeg-0.8.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
+ patch -Np1 -i ${srcdir}/ffmpeg-0.8.patch
+
+ ./configure --prefix=/usr \
+ --with-x \
+ --with-gtk2 \
+ --enable-libmp3lame \
+ --without-forced-embedded-ffmpeg
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+}
+md5sums=('b39a682d3ef9fcbf424af771936780e2'
+ 'fbde2b076c5ea05723883b87f3ef2a65'
+ 'f18817da1c0dada05fa791ae53193b2c'
+ '36ead5f0345ae776601d49c1c90cb101')
+md5sums=('b39a682d3ef9fcbf424af771936780e2'
+ 'fbde2b076c5ea05723883b87f3ef2a65'
+ 'f18817da1c0dada05fa791ae53193b2c'
+ '6e4dfab56b877362757092f55ad6b337')
diff --git a/community/xvidcap/ffmpeg-0.8.patch b/community/xvidcap/ffmpeg-0.8.patch
new file mode 100644
index 000000000..511333a0f
--- /dev/null
+++ b/community/xvidcap/ffmpeg-0.8.patch
@@ -0,0 +1,82 @@
+diff -aur xvidcap-1.1.7/src/xtoffmpeg.c xvidcap-1.1.7.new/src/xtoffmpeg.c
+--- xvidcap-1.1.7/src/xtoffmpeg.c 2008-05-25 22:01:54.000000000 +0000
++++ xvidcap-1.1.7.new/src/xtoffmpeg.c 2011-10-31 20:41:08.259171263 +0000
+@@ -361,7 +361,7 @@
+ }
+ // put sample parameters
+ au_c->codec_id = xvc_audio_codecs[job->au_targetCodec].ffmpeg_id;
+- au_c->codec_type = CODEC_TYPE_AUDIO;
++ au_c->codec_type = AVMEDIA_TYPE_AUDIO;
+ au_c->bit_rate = target->sndsize;
+ au_c->sample_rate = target->sndrate;
+ au_c->channels = target->sndchannels;
+@@ -567,7 +567,7 @@
+ av_rescale_q (enc->coded_frame->pts, enc->time_base,
+ ost->st->time_base);
+ }
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ pkt.stream_index = ost->st->index;
+
+ pkt.data = audio_out;
+@@ -627,7 +627,7 @@
+ pkt.pts =
+ av_rescale_q (enc->coded_frame->pts, enc->time_base,
+ ost->st->time_base);
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ av_interleaved_write_frame (s, &pkt);
+ }
+
+@@ -681,7 +681,7 @@
+ if (ret <= 0) {
+ ret = avcodec_encode_audio (enc, bit_buffer, bit_buffer_size, NULL);
+ }
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+
+ if (samples) {
+ av_free (samples);
+@@ -905,7 +905,7 @@
+ ost->time_base);
+ }
+ if (enc->coded_frame->key_frame)
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ }
+
+ pkt.stream_index = ost->index;
+@@ -1157,7 +1157,7 @@
+ }
+
+ st->codec->codec_id = codec_id;
+- st->codec->codec_type = CODEC_TYPE_VIDEO;
++ st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
+
+ // find the video encoder
+ codec = avcodec_find_encoder (st->codec->codec_id);
+@@ -1439,13 +1439,13 @@
+ // guess AVOutputFormat
+ if (job->target >= CAP_MF)
+ file_oformat =
+- guess_format (xvc_formats[job->target].ffmpeg_name, NULL, NULL);
++ av_guess_format (xvc_formats[job->target].ffmpeg_name, NULL, NULL);
+ else {
+ char tmp_fn[30];
+
+ snprintf (tmp_fn, 29, "test-%%d.%s",
+ xvc_formats[job->target].extensions[0]);
+- file_oformat = guess_format (NULL, tmp_fn, NULL);
++ file_oformat = av_guess_format (NULL, tmp_fn, NULL);
+ }
+ if (!file_oformat) {
+ fprintf (stderr,
+@@ -1466,7 +1466,7 @@
+ #endif // DEBUG
+
+ // prepare AVFormatContext
+- output_file = av_alloc_format_context ();
++ output_file = avformat_alloc_context();
+ if (!output_file) {
+ fprintf (stderr,
+ _
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..76db0fc76
--- /dev/null
+++ b/community/xvkbd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 58680 2011-11-17 15:09:35Z 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=2
+pkgdesc="virtual (graphical) keyboard program for X Window System"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ xmkmf
+ sed -i 's|#include <X11/Xaw/|#include <X11/Xaw3d/|' xvkbd.c
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR=$pkgdir install
+ # 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..1a98e7f65
--- /dev/null
+++ b/community/xwax/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 53200 2011-07-31 23:46:37Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: sputnick <gilles DOT quenot AT gmail DOT com>
+
+pkgname=xwax
+pkgver=1.0
+pkgrel=1
+pkgdesc='Open-source vinyl emulation software for Linux.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.xwax.co.uk/'
+license=('GPL')
+depends=('alsa-lib' 'sdl_ttf' 'ttf-dejavu')
+optdepends=('cdparanoia: for CD import'
+ 'mpg123: for MP3 import'
+ 'ffmpeg: for video fallback import')
+source=("http://www.xwax.co.uk/releases/${pkgname}-${pkgver}.tar.gz")
+md5sums=('cb07866ac8d4f9e2e12518a6ebd1d6e7')
+
+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..ee9bd7c19
--- /dev/null
+++ b/community/xxkb/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 55567 2011-09-14 10:23:32Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xxkb
+pkgver=1.11
+pkgrel=4
+pkgdesc="keyboard layout switcher/indicator"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/xxkb/"
+license=('PerlArtistic')
+depends=('libxpm')
+makedepends=('imake')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-$pkgver-src.tar.gz"
+ XXkb
+ en22.xpm
+ ru22.xpm)
+md5sums=('c2e5c7f3285033f0e26b358ef95a7c89'
+ 'f181b7a017d3d2524ecf10638317d341'
+ '649c6d378fe12853d457b768bd273dc5'
+ 'f1692f0be5fc697b3b792d0098bdb42f')
+
+build() {
+ cd "${srcdir}"/${pkgname}
+ xmkmf
+ make PROJECTROOT=/usr PIXMAPDIR=/usr/share/$pkgname LOCAL_LIBRARIES='-lXext -lXt -lXpm'
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}
+ 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/
+
+ 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..dc0c87ea1
--- /dev/null
+++ b/community/xylib/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+
+pkgname=xylib
+pkgver=0.8
+pkgrel=2
+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' 'mips64el')
+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..7ead3986a
--- /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' 'mips64el')
+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/yagf/PKGBUILD b/community/yagf/PKGBUILD
new file mode 100644
index 000000000..e259d5e58
--- /dev/null
+++ b/community/yagf/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59071 2011-11-21 09:04:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: das-ich <das-ich@yandex.ru>
+
+pkgname=yagf
+pkgver=0.8.7
+pkgrel=1
+pkgdesc="QT4-based GUI for Cuneiform OCR"
+arch=(i686 x86_64 'mips64el')
+url="http://symmetrica.net/cuneiform-linux/yagf-en.html"
+license=('GPL')
+depends=('cuneiform' 'qt>=4.3' 'aspell')
+optdepends=('xsane: acquire images from a scanner into YAGF directly')
+makedepends=('cmake')
+install=yagf.install
+source=(http://symmetrica.net/cuneiform-linux/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e77716d1d96a6c120b340539af448195')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release .
+ make
+ make DESTDIR=${pkgdir} install
+ [ -d $pkgdir/usr/lib64 ] && mv $pkgdir/usr/lib64 $pkgdir/usr/lib || true
+}
diff --git a/community/yagf/yagf.install b/community/yagf/yagf.install
new file mode 100644
index 000000000..1eb57303c
--- /dev/null
+++ b/community/yagf/yagf.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/yajl/PKGBUILD b/community/yajl/PKGBUILD
new file mode 100644
index 000000000..97304ce49
--- /dev/null
+++ b/community/yajl/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Dave Reisner <d@falconindy.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
+
+pkgname=yajl
+pkgver=2.0.3
+pkgrel=1
+pkgdesc='Yet Another JSON Library.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://lloyd.github.com/yajl/'
+license=('ISC')
+makedepends=('cmake')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/lloyd/$pkgname/tarball/$pkgver")
+md5sums=('2356068635e8b93c09896a72c5b9cb8b')
+
+build() {
+ dirname=$(tar tf "$srcdir/$pkgname-$pkgver.tar.gz" | sed 1q);
+ cd "$dirname"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+
+ make
+}
+
+package() {
+ dirname=$(tar tf "$srcdir/$pkgname-$pkgver.tar.gz" | sed 1q);
+ cd "$dirname"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/yaml-cpp/PKGBUILD b/community/yaml-cpp/PKGBUILD
new file mode 100644
index 000000000..940a9cadb
--- /dev/null
+++ b/community/yaml-cpp/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Markus Martin <markus@archwyrm.net>
+pkgname=yaml-cpp
+pkgver=0.2.7
+pkgrel=1
+pkgdesc="YAML parser and emitter in C++, written around the YAML 1.2 spec"
+url="http://code.google.com/p/yaml-cpp/"
+arch=('i686' 'x86_64')
+license=('MIT')
+makedepends=('cmake')
+source=(http://yaml-cpp.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('6878e14bad90c69a8f2caca273eb24c2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
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..3474a3ae8
--- /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' 'mips64el')
+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..3c326284e
--- /dev/null
+++ b/community/yaz/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 48643 2011-06-03 16:57:46Z stephane $
+# 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=2
+pkgdesc="A toolkit supporting the development of Z39.50/SRW/SRU clients and servers"
+arch=('i686' 'x86_64' 'mips64el')
+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..5e36f3c18
--- /dev/null
+++ b/community/zathura/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60106 2011-12-05 11:21:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ML <neldoreth>
+
+pkgname=zathura
+pkgver=0.0.8.5
+pkgrel=4
+pkgdesc="a PDF viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pwmt.org/projects/zathura/"
+license=('custom')
+depends=('poppler-glib' 'gtk2' 'cairo')
+makedepends=('docutils')
+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)
+md5sums=('52e0c3b3917c7feaecba98cff8435b90')
+
+build() {
+ cd $srcdir/zathura-$pkgver
+ make
+}
+
+package() {
+ cd $srcdir/zathura-$pkgver
+ make install DESTDIR=$pkgdir
+ install -D -m664 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ mkdir -p $pkgdir/etc/bash_completion.d/
+ echo "complete -f -X '!*.[pf]df' zathura" >$pkgdir/etc/bash_completion.d/zathura
+}
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..2f08aef15
--- /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' 'mips64el')
+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..b5b326d44
--- /dev/null
+++ b/community/zeromq/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56540 2011-10-08 03:04:25Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+pkgname=zeromq
+pkgver=2.1.10
+pkgrel=1
+pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.zeromq.org"
+license=('LGPL')
+depends=('gcc-libs' 'util-linux')
+makedepends=()
+source=(http://download.zeromq.org/$pkgname-$pkgver.tar.gz)
+md5sums=('f034096095fa76041166a8861e9d71b7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+
diff --git a/community/znc/PKGBUILD b/community/znc/PKGBUILD
new file mode 100644
index 000000000..ab3c92e82
--- /dev/null
+++ b/community/znc/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 55922 2011-09-25 01:01:16Z dreisner $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: mickael9 <mickael9 at gmail dot com>
+
+pkgname=znc
+pkgver=0.202
+pkgrel=1
+pkgdesc='An IRC bouncer with modules & scripts support'
+url='http://en.znc.in/wiki/index.php/ZNC'
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('c-ares' 'gcc-libs' 'openssl')
+makedepends=('swig' 'tcl' 'python' 'perl' 'cyrus-sasl')
+optdepends=('tcl: modtcl module'
+ 'python: modpython module'
+ 'perl: modperl module'
+ 'cyrus-sasl: saslauth module')
+source=("http://znc.in/releases/znc-${pkgver}.tar.gz")
+md5sums=('3c6ff4620e139e3d9745cd53111bab20')
+
+build() {
+ cd "znc-$pkgver"
+
+ ./configure --prefix=/usr \
+ --enable-sasl \
+ --enable-tcl \
+ --enable-python \
+ --enable-perl \
+ --enable-extra
+
+ make
+}
+
+package() {
+ cd "znc-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/zynaddsubfx/PKGBUILD b/community/zynaddsubfx/PKGBUILD
new file mode 100644
index 000000000..b0c7927f9
--- /dev/null
+++ b/community/zynaddsubfx/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 54754 2011-08-24 10:43:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=zynaddsubfx
+pkgver=2.4.1
+pkgrel=5
+pkgdesc="An opensource software synthesizer capable of making a countless number of instruments."
+arch=('i686' 'x86_64')
+url="http://zynaddsubfx.sourceforge.net"
+license=('GPL')
+depends=('fltk' 'libgl' 'fftw' 'lash')
+makedepends=('mxml' 'cmake' 'pkgconfig' 'mesa')
+options=('!emptydirs')
+source=("http://switch.dl.sourceforge.net/sourceforge/$pkgname/ZynAddSubFX-$pkgver.tar.bz2"
+ "$pkgname.desktop"
+ "$pkgname.svg"
+ "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-sound/zynaddsubfx/files/zynaddsubfx-2.4.1-fltk.patch"
+ "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-sound/zynaddsubfx/files/zynaddsubfx-2.4.1-fltk13.patch")
+md5sums=('59eb69ce24d6f8c605f8ba43958d0526'
+ '5da6735ee59fdfa21f171fdc4d6c80cb'
+ '6f7e9c3ce3947088a10c99c46a65431f'
+ 'eb95d339ff5deac8c6b54965f04a8c60'
+ '49464a33ab9c4250520eda0df7705663')
+
+build() {
+ cd "$srcdir/ZynAddSubFX-$pkgver"
+
+ # patches
+ patch -p1 -i "$srcdir/$pkgname-$pkgver-fltk.patch"
+ patch -p1 -i "$srcdir/$pkgname-$pkgver-fltk13.patch"
+
+ [ -d build ] || mkdir build && cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DOutputModule=jack -DGuiModule=fltk ..
+ make
+
+ # build external programs
+ cd ../ExternalPrograms/Spliter && make
+ cd ../Controller && sed -i "s|Box\.h|Box\.H|" ControllerUI.fl && make
+}
+
+package() {
+ cd "$srcdir/ZynAddSubFX-$pkgver/build"
+
+ make DESTDIR="$pkgdir/" install
+
+ # install external programs
+ install -Dm755 ../ExternalPrograms/Spliter/spliter "$pkgdir/usr/bin/spliter"
+ install -Dm755 ../ExternalPrograms/Controller/controller "$pkgdir/usr/bin/controller"
+ install -Dm644 ../ExternalPrograms/Spliter/readme.txt "$pkgdir/usr/share/doc/$pkgname/SPLITER.txt"
+
+ # banks and examples
+ install -d "$pkgdir/usr/share/$pkgname"
+ cp -a ../banks "$pkgdir/usr/share/$pkgname"
+ cp -a ../examples "$pkgdir/usr/share/$pkgname"
+
+ # desktop file and icon
+ install -Dm644 "$srcdir/$pkgname.svg" "$pkgdir/usr/share/pixmaps/$pkgname.svg"
+ install -Dm644 "$srcdir/$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
+}
diff --git a/community/zynaddsubfx/zynaddsubfx.desktop b/community/zynaddsubfx/zynaddsubfx.desktop
new file mode 100644
index 000000000..ebca740ef
--- /dev/null
+++ b/community/zynaddsubfx/zynaddsubfx.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=ZynAddSubFX
+Comment=A powerful realtime software synthesizer
+Exec=zynaddsubfx
+Icon=zynaddsubfx
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;
diff --git a/community/zynaddsubfx/zynaddsubfx.svg b/community/zynaddsubfx/zynaddsubfx.svg
new file mode 100644
index 000000000..d81c651ad
--- /dev/null
+++ b/community/zynaddsubfx/zynaddsubfx.svg
@@ -0,0 +1,313 @@
+<?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://creativecommons.org/ns#"
+ 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="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ width="507.1875"
+ height="509.21875"
+ sodipodi:docname="zynaddsubfx_icon.svg"
+ version="1.1">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient4809">
+ <stop
+ style="stop-color:#d5d8db;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4810" />
+ <stop
+ style="stop-color:#6d8ec2;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4811" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4179">
+ <stop
+ style="stop-color:#bec8c6;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4180" />
+ <stop
+ style="stop-color:#bbcac9;stop-opacity:1.0000000;"
+ offset="0.59527779"
+ id="stop4182" />
+ <stop
+ style="stop-color:#879797;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4181" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4038">
+ <stop
+ style="stop-color:#4a8a61;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4039" />
+ <stop
+ style="stop-color:#557c7d;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4040" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2162">
+ <stop
+ style="stop-color:#549c6d;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2163" />
+ <stop
+ style="stop-color:#679697;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2164" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2158">
+ <stop
+ style="stop-color:#dbdbdb;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2159" />
+ <stop
+ style="stop-color:#a1aec2;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2160" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2158"
+ id="radialGradient2165"
+ cx="205.28555"
+ cy="152.50184"
+ r="486.22545"
+ fx="198.52472"
+ fy="148.59325"
+ gradientTransform="matrix(0.99940285,0,0,1.0005975,-127.46875,-47)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4038"
+ id="linearGradient4043"
+ x1="119.48864"
+ y1="387.75519"
+ x2="462.45943"
+ y2="302.28432"
+ gradientTransform="scale(1.0666754,0.9374923)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4809"
+ id="radialGradient4184"
+ cx="-6.2401056"
+ cy="138.19312"
+ r="63.0278"
+ fx="-5.4719041"
+ fy="137.48498"
+ spreadMethod="pad"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.0322663,0.96874227)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4809"
+ id="radialGradient3021"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="pad"
+ cx="-6.2401056"
+ cy="138.19312"
+ fx="-5.4719041"
+ fy="137.48498"
+ r="63.0278"
+ gradientTransform="scale(1.0322663,0.96874227)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.61399264"
+ inkscape:cx="305.35982"
+ inkscape:cy="328.83153"
+ inkscape:window-width="1278"
+ inkscape:window-height="760"
+ inkscape:window-x="0"
+ inkscape:window-y="19"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ showgrid="false"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="true"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg1" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <rect
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.13874531pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect2793"
+ width="497.32657"
+ height="497.92426"
+ x="8.5265961"
+ y="9.9727058"
+ rx="10"
+ ry="10.000001" />
+ <rect
+ style="fill:url(#radialGradient2165);fill-opacity:0.75;fill-rule:evenodd;stroke:#c7ffc7;stroke-width:2.67499995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1532"
+ width="497.32657"
+ height="497.92426"
+ x="1.3287659"
+ y="1.3353081"
+ rx="10"
+ ry="10.000001" />
+ <g
+ id="g4871"
+ transform="matrix(1,0,0,0.72153,-123.39704,-123.99862)">
+ <rect
+ style="fill:url(#linearGradient4043);fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.50865927pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect2794"
+ width="374.5567"
+ height="328.96643"
+ x="144.30453"
+ y="199.03429"
+ rx="10.000001"
+ ry="13.85943" />
+ <path
+ style="fill:none;stroke:#fafafa;stroke-width:20;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 153.53968,361.37008 c 70.53877,201.53936 110.35828,210.2256 177.45839,6.10757 66.67288,-202.81841 104.2451,-205.61109 176.22345,0.24698"
+ id="path4175"
+ sodipodi:nodetypes="czc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:7.375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 145.99255,362.80964 c 369.96869,0 369.3724,1.43957 369.3724,1.43957"
+ id="path4176"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g4852"
+ transform="matrix(-1.360555,0.352222,-0.352222,-1.360555,196.67455,583.0333)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3021);fill-opacity:0.75;fill-rule:evenodd;stroke:none"
+ id="path4853"
+ sodipodi:cx="16.555019"
+ sodipodi:cy="147.59439"
+ sodipodi:rx="46.785923"
+ sodipodi:ry="43.906792"
+ d="m 63.340942,147.59439 a 46.785923,43.906792 0 1 1 -93.571846,0 46.785923,43.906792 0 1 1 93.571846,0 z"
+ transform="matrix(1.045432,0,0,1.113986,-125.3003,-37.14836)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#000000;stroke-width:11.85730171;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.857302, 23.714604;stroke-dashoffset:0"
+ id="path4854"
+ sodipodi:cx="16.555019"
+ sodipodi:cy="147.59439"
+ sodipodi:rx="46.785923"
+ sodipodi:ry="43.906792"
+ d="m 63.340942,147.59439 a 46.785923,43.906792 0 1 1 -93.571846,0 46.785923,43.906792 0 1 1 93.571846,0 z"
+ transform="matrix(1.162718,0.507361,-0.579194,1.268918,-39.94742,-66.78193)" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -108.49675,123.27211 c 36.885113,-10.80173 39.904052,-12.46015 39.904052,-12.46015 l -33.461822,23.25931 -6.44223,-10.79916 z"
+ id="path4855"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g4864"
+ transform="matrix(0.687211,0,0,0.854478,499.66235,-75.81607)">
+ <rect
+ style="fill:#000000;fill-opacity:0.75;fill-rule:evenodd;stroke:none"
+ id="rect4856"
+ width="110.64801"
+ height="545.60913"
+ x="-136.40228"
+ y="109.76131" />
+ <rect
+ style="fill:#00bc1a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect4857"
+ width="39.393082"
+ height="442.41235"
+ x="-128.61479"
+ y="205.44652" />
+ <rect
+ style="fill:#00bc1a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect4858"
+ width="37.357227"
+ height="525.88245"
+ x="-74.664627"
+ y="120.64261" />
+ <rect
+ style="fill:#000000;fill-opacity:0.17543862;fill-rule:evenodd;stroke:none"
+ id="rect4860"
+ width="95.883904"
+ height="12.21513"
+ x="-128.35823"
+ y="221.73334" />
+ <rect
+ style="fill:#000000;fill-opacity:0.17543862;fill-rule:evenodd;stroke:none"
+ id="rect4862"
+ width="95.883904"
+ height="12.21513"
+ x="-129.37616"
+ y="563.75702" />
+ <rect
+ style="fill:#000000;fill-opacity:0.17543862;fill-rule:evenodd;stroke:none"
+ id="rect4863"
+ width="95.883904"
+ height="12.21513"
+ x="-127.34029"
+ y="386.6376" />
+ </g>
+ <g
+ id="g4875"
+ transform="matrix(-1.360555,0.352222,-0.352222,-1.360555,3.44525,587.1877)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4184);fill-opacity:0.75;fill-rule:evenodd;stroke:none"
+ id="path4876"
+ sodipodi:cx="16.555019"
+ sodipodi:cy="147.59439"
+ sodipodi:rx="46.785923"
+ sodipodi:ry="43.906792"
+ d="m 63.340942,147.59439 c 0,24.24905 -20.946771,43.90679 -46.785923,43.90679 -25.8391514,0 -46.785923,-19.65774 -46.785923,-43.90679 0,-24.24905 20.9467716,-43.90679 46.785923,-43.90679 25.839152,0 46.785923,19.65774 46.785923,43.90679 z"
+ transform="matrix(1.045432,0,0,1.113986,-125.3003,-37.14836)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#000000;stroke-width:11.85730171;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.857302, 23.714604;stroke-dashoffset:0"
+ id="path4877"
+ sodipodi:cx="16.555019"
+ sodipodi:cy="147.59439"
+ sodipodi:rx="46.785923"
+ sodipodi:ry="43.906792"
+ d="m 63.340942,147.59439 c 0,24.24905 -20.946771,43.90679 -46.785923,43.90679 -25.8391514,0 -46.785923,-19.65774 -46.785923,-43.90679 0,-24.24905 20.9467716,-43.90679 46.785923,-43.90679 25.839152,0 46.785923,19.65774 46.785923,43.90679 z"
+ transform="matrix(1.162718,0.507361,-0.579194,1.268918,-39.94742,-66.78193)" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -108.49675,123.27211 c 36.885113,-10.80173 39.904052,-12.46015 39.904052,-12.46015 l -33.461822,23.25931 -6.44223,-10.79916 z"
+ id="path4878"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/core/acl/PKGBUILD b/core/acl/PKGBUILD
new file mode 100644
index 000000000..dd6ffd124
--- /dev/null
+++ b/core/acl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 123916 2011-05-14 10:31:07Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=acl
+pkgver=2.2.51
+pkgrel=1
+pkgdesc="Access control list utilities, libraries and headers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://savannah.nongnu.org/projects/acl"
+license=('LGPL')
+depends=('attr>=2.4.46')
+replaces=('xfsacl')
+provides=('xfsacl')
+conflicts=('xfsacl')
+options=('!libtool')
+source=(http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.src.tar.gz)
+sha256sums=('06854521cf5d396801af7e54b9636680edf8064355e51c07657ec7442a185225')
+
+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
+
+ # tidy up
+ rm -f ${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..1df0d7b06
--- /dev/null
+++ b/core/attr/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 123916 2011-05-14 10:31:07Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=attr
+pkgver=2.4.46
+pkgrel=1
+pkgdesc="Extended attribute support library for ACL support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://savannah.nongnu.org/projects/attr"
+license=('LGPL')
+depends=('glibc')
+makedepends=('gettext')
+replaces=('xfsattr')
+provides=('xfsattr')
+conflicts=('xfsattr')
+options=('!libtool')
+source=(http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.src.tar.gz)
+sha256sums=('dcd69bdca7ff166bc45141eddbcf21967999a6b66b0544be12a1cc2fd6340e1f')
+
+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}
+ export CFLAGS+="-Wparentheses"
+
+ make DIST_ROOT="${pkgdir}" install install-lib install-dev
+
+ # tidy up
+ rm -f "${pkgdir}"/lib/libattr.a
+ chmod 0755 "${pkgdir}"/lib/libattr.so.*.*.*
+ # remove conflicting manpages
+ rm -rf "${pkgdir}"/usr/share/man/man2
+}
diff --git a/core/bash/PKGBUILD b/core/bash/PKGBUILD
new file mode 100644
index 000000000..ac9aa8b6c
--- /dev/null
+++ b/core/bash/PKGBUILD
@@ -0,0 +1,121 @@
+# $Id: PKGBUILD 143250 2011-11-24 01:36:23Z allan $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=bash
+_basever=4.2
+_patchlevel=020 #prepare for some patches
+pkgver=$_basever.$_patchlevel
+pkgrel=1
+pkgdesc="The GNU Bourne Again shell"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig}
+ 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){,.sig})
+ done
+fi
+
+build() {
+ cd ${srcdir}/${pkgname}-$_basever
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ msg "applying patch bash${_basever//./}-$(printf "%03d" $p)"
+ patch -Np0 -i $srcdir/bash${_basever//./}-$(printf "%03d" $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
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-$_basever
+ 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'
+ '8d37a3f97a48c1e56e1a4ded877ed944'
+ '027d6bd8f5f6a06b75bb7698cb478089'
+ '2902e0fee7a9168f3a4fd2ccd60ff047'
+ '42f4400ed2314bd7519c020d0187edc5'
+ 'fe5d3a367f7d5f754214dc05e3d958ab'
+ '472f536d7c9e8250dc4568ec4cfaf294'
+ '1100bc1dda2cdc06ac44d7e5d17864a3'
+ 'a7184b76eb4a079f10174a0a8f574819'
+ '30e7948079921d3261efcc6a40722135'
+ 'c4d45307f7e69fe508ce347c4cec1955'
+ '9ea06decec43a198f3d7cf29acc602f8'
+ '74bddae6eeb9227a04a467d42597a34d'
+ 'fb48f6134d7b013135929476aa0c250c'
+ '3e6a18226b16c773229246abd07a1f5e'
+ 'e70e45de33426b38153b390be0dbbcd4'
+ 'e667dc9348ebc3e0e14bfdd87f4b6ff2'
+ 'ce4e5c484993705b27daa151eca242c2'
+ '41cbd8e57589bc081a546a014ddb12f8'
+ '88d1f96db29461767602e2546803bda7'
+ 'b8b781520f4c7493a2a1ac3010a44a44'
+ '24c574bf6d6a581e300823d9c1276af6'
+ '354a0899a7c4b446454c52546562b55b'
+ '4c5835f2fbab36c4292bb334977e5b6d'
+ 'ff4547ca7b508d52101729d61f5b77b6'
+ '0a51602b535ef661ee707be6c8bdb373'
+ 'cec7c92a4d8052ea4b29216365d16566'
+ '58deacf3d57cbd75575444ff6a3b0806'
+ '9ed2a08e549c3c17745f19e8413cfb31'
+ '72d5059820015231483bb7415d09e9db'
+ '45b04b41a4230f469d3e47ab9952c2df'
+ '608336ebe215984ef126e3c29d2d3409'
+ '623f63025d155a84977b62531e260ee2'
+ 'ed19da878e3f630834c62b9d9dcc6fce'
+ 'eef2dd4a0e4505dc8f8e664b40c6cd66'
+ '2d07daba0b8ca8f876d2aa052ff594b4'
+ '0cb823a44e6dc1cde7ac97ae5c8163c9'
+ '53d246537e1fffd1aaa02ba5c056211c'
+ '60f983a1dded5f0b28040ff4b3f1e9b5'
+ '304fd129a58fee2d8a34f8b4704db0aa'
+ '9df4bf4f46aaadc436f430187741f815'
+ '6921a0b4228fe89b6537a5c29f027c89'
+ '4ef0e2a2cbfbdd53346f927000b7e112'
+ '1195d85447f3d048d2c9bcd075fa765c'
+ 'b0f3a651ce29a1feee687d93177870f1'
+ 'b09000bba08da6ac753124593850cdf7'
+ '204bb5054d1f8bafe2b446d4e5d0d99a')
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/binutils/PKGBUILD b/core/binutils/PKGBUILD
new file mode 100644
index 000000000..bc1928a92
--- /dev/null
+++ b/core/binutils/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 144850 2011-12-08 12:17:07Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.22
+pkgrel=2
+_date=20111201
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc>=2.14' 'zlib')
+checkdepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
+md5sums=('77c15027ac112c65fd5f73ca91b0651c')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_22-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"
+ [[ $CARCH == "mips64el" ]] && CONFIGFLAG="--disable-multilib --disable-werror"
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared $CONFIGFLAG
+
+ # check the host environment and makes sure all the necessary tools are available
+ 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/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/PKGBUILD b/core/bison/PKGBUILD
new file mode 100644
index 000000000..b3a32e418
--- /dev/null
+++ b/core/bison/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 143798 2011-11-29 12:24:20Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=bison
+pkgver=2.5
+pkgrel=3
+pkgdesc="The GNU general-purpose parser generator"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+url="http://www.gnu.org/software/bison/bison.html"
+depends=('glibc' 'm4' 'sh')
+groups=('base-devel')
+install=bison.install
+source=(ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.bz2{,.sig}
+ bison-2.5-undefined-reference.patch)
+md5sums=('9dba20116b13fc61a0846b0058fbe004'
+ '610b73db67bd4760209458efe7554ca3'
+ '2015c5421b2ad99032154f27bf5c4772')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # workaround for FS#26794
+ patch -Np1 -i $srcdir/bison-2.5-undefined-reference.patch
+
+ ./configure --prefix=/usr --datadir=/usr/share
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/bison/bison-2.5-undefined-reference.patch b/core/bison/bison-2.5-undefined-reference.patch
new file mode 100644
index 000000000..ea390259e
--- /dev/null
+++ b/core/bison/bison-2.5-undefined-reference.patch
@@ -0,0 +1,11 @@
+diff -Naur bison-2.5-orig/lib/yyerror.c bison-2.5/lib/yyerror.c
+--- bison-2.5-orig/lib/yyerror.c 2011-01-04 00:50:42.000000000 +1000
++++ bison-2.5/lib/yyerror.c 2011-11-09 22:01:48.725507079 +1000
+@@ -18,6 +18,7 @@
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ #include <stdio.h>
++#undef fprintf
+
+ int yyerror (char const *);
+
diff --git a/core/bison/bison.install b/core/bison/bison.install
new file mode 100644
index 000000000..0081a194f
--- /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..774404d3b
--- /dev/null
+++ b/core/bridge-utils/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140510 2011-10-16 05:39:52Z eric $
+# Maintainer:
+# Contributor: Judd Vinet <judd@archlinux.org>
+
+pkgname=bridge-utils
+pkgver=1.5
+pkgrel=1.1
+pkgdesc="Utilities for configuring the Linux ethernet bridge"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge"
+license=('GPL')
+depends=('glibc')
+backup=('etc/conf.d/bridges')
+source=(http://downloads.sourceforge.net/bridge/bridge-utils-$pkgver.tar.gz
+ bridges.conf.d)
+md5sums=('ec7b381160b340648dede58c31bb2238'
+ 'f5d691282653580dd5fd4a1092ef365b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ aclocal
+ autoconf
+ ./configure --prefix=/usr --sysconfdir=/etc
+ 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..12699158a
--- /dev/null
+++ b/core/btrfs-progs-unstable/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 142300 2011-11-08 06:06:06Z tomegun $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=btrfs-progs-unstable
+pkgver=0.19.20101006
+pkgrel=2.1
+pkgdesc="btrfs filesystem utilities"
+arch=(i686 x86_64 'mips64el')
+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..0f5a0ed6b
--- /dev/null
+++ b/core/bzip2/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 142378 2011-11-08 22:04:46Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=bzip2
+pkgver=1.0.6
+pkgrel=3.1
+pkgdesc="A high-quality data compression program"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://sources.redhat.com/bzip2"
+groups=('base')
+depends=('glibc')
+source=(http://www.bzip.org/$pkgver/bzip2-$pkgver.tar.gz
+ bzip2-1.0.4-bzip2recover.patch)
+sha1sums=('3f89f861209ce81a6bab1fd1998c0ef311712002'
+ '85ce76fdb67f52f152bba368c1de81132dcdbdb5')
+
+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
+
+ patch -Np1 < ../bzip2-1.0.4-bzip2recover.patch
+
+ make -f Makefile-libbz2_so
+ make bzip2 bzip2recover libbz2.a
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ 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/bzip2/bzip2-1.0.4-bzip2recover.patch b/core/bzip2/bzip2-1.0.4-bzip2recover.patch
new file mode 100644
index 000000000..e2bfe1cc1
--- /dev/null
+++ b/core/bzip2/bzip2-1.0.4-bzip2recover.patch
@@ -0,0 +1,12 @@
+--- bzip2-1.0.4/bzip2recover.c.pom 2007-01-03 03:00:55.000000000 +0100
++++ bzip2-1.0.4/bzip2recover.c 2007-02-05 11:55:17.000000000 +0100
+@@ -309,7 +309,8 @@
+ UInt32 buffHi, buffLo, blockCRC;
+ Char* p;
+
+- strcpy ( progName, argv[0] );
++ strncpy ( progName, argv[0], BZ_MAX_FILENAME-1);
++ progName[BZ_MAX_FILENAME-1]='\0';
+ inFileName[0] = outFileName[0] = 0;
+
+ fprintf ( stderr,
diff --git a/core/cloog/PKGBUILD b/core/cloog/PKGBUILD
new file mode 100644
index 000000000..9a3af5e84
--- /dev/null
+++ b/core/cloog/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 136343 2011-08-26 22:10:53Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=cloog
+pkgver=0.16.3
+pkgrel=1
+pkgdesc="Library that generates loops for scanning polyhedra"
+arch=('i686' 'x86_64' 'mips64el')
+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=('a0f8a241cd1c4f103f8d2c91642b3498')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-isl=system --with-gmp=system
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/core/coreutils/PKGBUILD b/core/coreutils/PKGBUILD
new file mode 100644
index 000000000..8190cf341
--- /dev/null
+++ b/core/coreutils/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 140430 2011-10-14 06:04:29Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=coreutils
+pkgver=8.14
+pkgrel=1.1
+pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig}
+ coreutils-uname.patch
+ coreutils-pam.patch
+ su.pam)
+md5sums=('bcb135ce553493a45aba01b39eb3920a'
+ '279712f9afc954beaff0d99194c8f462'
+ '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 --libexecdir=/usr/lib/coreutils \
+ --enable-install-program=su \
+ --enable-no-install-program=groups,hostname,kill,uptime \
+ --enable-pam
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..8b0eec86c
--- /dev/null
+++ b/core/cracklib/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142311 2011-11-08 10:56:31Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+
+pkgname=cracklib
+pkgver=2.8.18
+pkgrel=2.1
+pkgdesc="Password Checking Library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+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..4e500aa23
--- /dev/null
+++ b/core/crda/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 141968 2011-11-03 18:52:56Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=crda
+pkgver=1.1.2
+pkgrel=1.1
+pkgdesc="Central Regulatory Domain Agent for wireless networks"
+arch=(i686 x86_64 'mips64el')
+url="http://wireless.kernel.org/en/developers/Regulatory/CRDA"
+license=('custom')
+depends=('wireless-regdb' 'libnl' 'libgcrypt' 'udev' 'iw')
+makedepends=('python-m2crypto' 'pkg-config')
+install=crda.install
+source=(http://wireless.kernel.org/download/crda/${pkgname}-${pkgver}.tar.bz2
+ crda.rc)
+md5sums=('5226f65aebacf94baaf820f8b4e06df4'
+ '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/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/cronie/PKGBUILD b/core/cronie/PKGBUILD
new file mode 100644
index 000000000..c23101c6f
--- /dev/null
+++ b/core/cronie/PKGBUILD
@@ -0,0 +1,64 @@
+# Contributor: Kaiting Chen <kaiting.chen@kiwilight.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname='cronie'
+pkgver=1.4.8
+pkgrel=1
+pkgdesc='Daemon that runs specified programs at scheduled times and related tools'
+url='https://fedorahosted.org/cronie/'
+license=('custom:BSD')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('pam' 'bash' 'run-parts')
+optdepends=('smtp-server: sending cron job output via email')
+
+source=("https://fedorahosted.org/releases/c/r/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'cron.deny'
+ 'pam.d'
+ 'rc.d')
+sha1sums=('1d2ce3a6ca2a6f96ff31921e4060be3199dc10f3'
+ '0f279b8fb820340267d578dc85511c980715f91e'
+ '5eff7fb31f6bc0a924243ff046704726cf20c221'
+ 'c08c040ed5cb12bc4fd15639a5242d31ec247ef5')
+
+backup=('etc/anacrontab'
+ 'etc/conf.d/crond'
+ 'etc/pam.d/crond'
+ 'etc/cron.deny')
+
+conflicts=('cron')
+provides=('cron')
+groups=('base')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-anacron \
+ --with-inotify \
+ --with-pam \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}"/etc/cron.{d,hourly,daily,weekly,monthly}
+ install -d "${pkgdir}"/var/spool/{ana,}cron
+ chmod u+s "${pkgdir}"/usr/bin/crontab
+
+ install -Dm755 ../rc.d "${pkgdir}"/etc/rc.d/crond
+ install -Dm644 ../pam.d "${pkgdir}"/etc/pam.d/crond
+ install -Dm644 ../cron.deny "${pkgdir}"/etc/cron.deny
+ install -Dm644 crond.sysconfig "${pkgdir}"/etc/conf.d/crond
+ install -Dm644 contrib/0hourly "${pkgdir}"/etc/cron.d/0hourly
+ install -Dm755 contrib/0anacron "${pkgdir}"/etc/cron.hourly/0anacron
+ install -Dm644 contrib/anacrontab "${pkgdir}"/etc/anacrontab
+
+ install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/cronie/COPYING
+}
diff --git a/core/cronie/cron.deny b/core/cronie/cron.deny
new file mode 100644
index 000000000..06e685cc8
--- /dev/null
+++ b/core/cronie/cron.deny
@@ -0,0 +1 @@
+# without this file, only users listed in /etc/cron.allow can use crontab
diff --git a/core/cronie/pam.d b/core/cronie/pam.d
new file mode 100644
index 000000000..9a254ebc0
--- /dev/null
+++ b/core/cronie/pam.d
@@ -0,0 +1,10 @@
+auth required pam_unix.so
+auth required pam_env.so
+
+account required pam_access.so
+account required pam_unix.so
+account required pam_time.so
+
+session required pam_loginuid.so
+session required pam_limits.so
+session required pam_unix.so
diff --git a/core/cronie/rc.d b/core/cronie/rc.d
new file mode 100755
index 000000000..d0659685c
--- /dev/null
+++ b/core/cronie/rc.d
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+name=crond
+. /etc/conf.d/crond
+PID=$(pidof -o %PPID /usr/sbin/crond)
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ [[ -z "$PID" ]] && /usr/sbin/crond $CRONDARGS &>/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; }
+ ;;
+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/core/cryptsetup/PKGBUILD b/core/cryptsetup/PKGBUILD
new file mode 100644
index 000000000..a96ea1c4a
--- /dev/null
+++ b/core/cryptsetup/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142292 2011-11-08 00:30:49Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=cryptsetup
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Userspace setup tool for transparent encryption of block devices using dm-crypt"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://code.google.com/p/cryptsetup/"
+groups=('base')
+depends=('device-mapper>=2.02.85-2' 'libgcrypt' 'popt')
+conflicts=('mkinitcpio<0.7')
+options=('!libtool' '!emptydirs')
+source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
+ encrypt_hook
+ encrypt_install
+ cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch)
+sha256sums=('96d682853c8019cfeae0b21250cd2d00af42e46251807e8dbda2ff8427c2e9ed'
+ '811bbea1337106ad811731c746d73ee81039bad00aef52398e3a377ad0766757'
+ 'd4380195351b70abf8fcb3cd19461879c55a7a07e4915d1f0365b295b112a573'
+ '6fa1d3172014ba3ba96f7a67acbcae7f26b24a61abb84b3917f526a54f81dd87')
+build() {
+ cd "${srcdir}"/$pkgname-${pkgver}
+ patch -p0 -i "${srcdir}"/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch
+ ./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/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch b/core/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch
new file mode 100644
index 000000000..f35226122
--- /dev/null
+++ b/core/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch
@@ -0,0 +1,94 @@
+Index: ChangeLog
+===================================================================
+--- ChangeLog (Revision 664)
++++ ChangeLog (Revision 665)
+@@ -1,3 +1,6 @@
++2011-10-27 Milan Broz <mbroz@redhat.com>
++ * Fix crypt_get_volume_key_size() for plain device.
++
+ 2011-10-25 Milan Broz <mbroz@redhat.com>
+ * Print informative message in isLuks only in verbose mode.
+ * Version 1.4.0.
+Index: tests/api-test.c
+===================================================================
+--- tests/api-test.c (Revision 664)
++++ tests/api-test.c (Revision 665)
+@@ -660,6 +660,11 @@
+
+ FAIL_(crypt_init_by_name_and_header(&cd, CDEVICE_1, H_DEVICE),"can't init plain device by header device");
+ OK_(crypt_init_by_name(&cd, CDEVICE_1));
++ OK_(strcmp(cipher_mode,crypt_get_cipher_mode(cd)));
++ OK_(strcmp(cipher,crypt_get_cipher(cd)));
++ EQ_((int)key_size, crypt_get_volume_key_size(cd));
++ EQ_(params.skip, crypt_get_iv_offset(cd));
++ EQ_(params.offset, crypt_get_data_offset(cd));
+ OK_(crypt_deactivate(cd, CDEVICE_1));
+ crypt_free(cd);
+
+Index: lib/setup.c
+===================================================================
+--- lib/setup.c (Revision 664)
++++ lib/setup.c (Revision 665)
+@@ -56,6 +56,7 @@
+ char *plain_cipher;
+ char *plain_cipher_mode;
+ char *plain_uuid;
++ unsigned int plain_key_size;
+
+ /* used in CRYPT_LOOPAES */
+ struct crypt_params_loopaes loopaes_hdr;
+@@ -677,6 +678,7 @@
+ (*cd)->plain_hdr.hash = NULL; /* no way to get this */
+ (*cd)->plain_hdr.offset = dmd.offset;
+ (*cd)->plain_hdr.skip = dmd.iv_offset;
++ (*cd)->plain_key_size = dmd.vk->keylength;
+
+ r = crypt_parse_name_and_mode(dmd.cipher, cipher, NULL, cipher_mode);
+ if (!r) {
+@@ -754,6 +756,7 @@
+ return -EINVAL;
+ }
+
++ cd->plain_key_size = volume_key_size;
+ cd->volume_key = crypt_alloc_volume_key(volume_key_size, NULL);
+ if (!cd->volume_key)
+ return -ENOMEM;
+@@ -1516,7 +1519,7 @@
+ }
+
+ r = process_key(cd, cd->plain_hdr.hash,
+- cd->volume_key->keylength,
++ cd->plain_key_size,
+ passphrase, passphrase_size, &vk);
+ if (r < 0)
+ goto out;
+@@ -1586,7 +1589,7 @@
+ goto out;
+
+ r = process_key(cd, cd->plain_hdr.hash,
+- cd->volume_key->keylength,
++ cd->plain_key_size,
+ passphrase_read, passphrase_size_read, &vk);
+ if (r < 0)
+ goto out;
+@@ -1658,8 +1661,7 @@
+ if (!name)
+ return -EINVAL;
+
+- if (!volume_key || !volume_key_size || !cd->volume_key ||
+- volume_key_size != cd->volume_key->keylength) {
++ if (!volume_key || !volume_key_size || volume_key_size != cd->plain_key_size) {
+ log_err(cd, _("Incorrect volume key specified for plain device.\n"));
+ return -EINVAL;
+ }
+@@ -1976,8 +1978,8 @@
+
+ int crypt_get_volume_key_size(struct crypt_device *cd)
+ {
+- if (isPLAIN(cd->type) && cd->volume_key)
+- return cd->volume_key->keylength;
++ if (isPLAIN(cd->type))
++ return cd->plain_key_size;
+
+ if (isLUKS(cd->type))
+ return cd->hdr.keyBytes;
diff --git a/core/cryptsetup/encrypt_hook b/core/cryptsetup/encrypt_hook
new file mode 100644
index 000000000..956b18023
--- /dev/null
+++ b/core/cryptsetup/encrypt_hook
@@ -0,0 +1,148 @@
+# 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
+ mkdir /dev/mapper
+ 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)"
+ cryptoptions="$(echo "${cryptdevice}" | cut -d: -f3)"
+ 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."
+ }
+
+ OLDIFS="${IFS}"
+ IFS=","
+ for cryptopt in ${cryptoptions}; do
+ case ${cryptopt} in
+ allow-discards)
+ echo "Enabling TRIM/discard support."
+ cryptargs="${cryptargs} --allow-discards"
+ ;;
+ *)
+ echo "Encryption option '${cryptopt}' not known, ignoring." >&2
+ ;;
+ esac
+ done
+ IFS="${OLDIFS}"
+
+ 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} ${cryptargs} ${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} ${cryptargs} ${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} ${cryptargs}"
+ 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..13174ec06
--- /dev/null
+++ b/core/cryptsetup/encrypt_install
@@ -0,0 +1,26 @@
+# vim: set ft=sh:
+
+build()
+{
+ if [ -z "${CRYPTO_MODULES}" ]; then
+ MODULES=" dm-crypt $(all_modules "/crypto/") "
+ else
+ MODULES=" dm-crypt ${CRYPTO_MODULES} "
+ fi
+ FILES=""
+ SCRIPT="encrypt"
+ [ -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"
+ add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook allows for an encrypted root device.
+HELPEOF
+}
diff --git a/core/curl/PKGBUILD b/core/curl/PKGBUILD
new file mode 100644
index 000000000..eb142196f
--- /dev/null
+++ b/core/curl/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 143109 2011-11-23 02:58:17Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: 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.23.1
+pkgrel=2
+pkgdesc="An URL retrival utility and library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://curl.haxx.se"
+license=('MIT')
+depends=('ca-certificates' 'libssh2' 'openssl' 'zlib')
+makedepends=('perl-libwww')
+options=('!libtool')
+source=("http://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc}
+ fix-J-with-O-regression.patch
+ curlbuild.h)
+md5sums=('8e23151f569fb54afef093ac0695077d'
+ '5d8eb7e2e38be0fb00a043f714f6d49f'
+ 'aa4539ec4f4a2dad1663dc22dd3ab0a1'
+ '751bd433ede935c8fae727377625a8ae')
+
+ptrsize=$(cpp <<<'__SIZEOF_POINTER__' | sed '/^#/d')
+case $ptrsize in
+ 8) _curlbuild=curlbuild-64.h ;;
+ 4) _curlbuild=curlbuild-32.h ;;
+ *) error "unknown pointer size for architecture: %s bytes" "$ptrsize"
+ exit 1
+ ;;
+esac
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # upstream bugfix
+ # http://curl.haxx.se/mail/archive-2011-11/0030.html
+ patch -Np1 < "$srcdir/fix-J-with-O-regression.patch"
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --disable-dependency-tracking \
+ --disable-ldap \
+ --disable-ldaps \
+ --enable-ipv6 \
+ --enable-manual \
+ --enable-versioned-symbols \
+ --enable-threaded-resolver \
+ --without-libidn \
+ --with-random=/dev/urandom \
+ --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # license
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+
+ # devel
+ 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 -m644 "$srcdir/curlbuild.h" "$pkgdir/usr/include/curl/curlbuild.h"
+}
diff --git a/core/curl/curlbuild.h b/core/curl/curlbuild.h
new file mode 100644
index 000000000..b48862696
--- /dev/null
+++ b/core/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/core/curl/fix-J-with-O-regression.patch b/core/curl/fix-J-with-O-regression.patch
new file mode 100644
index 000000000..4b7de1a23
--- /dev/null
+++ b/core/curl/fix-J-with-O-regression.patch
@@ -0,0 +1,142 @@
+From c532604b137cae2e2814280778f914e4cd0460d1 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Sun, 20 Nov 2011 23:33:46 +0100
+Subject: [PATCH] -J -O: use -O name if no Content-Disposition header comes!
+
+A regression between 7.22.0 and 7.23.0 -- downloading a file with the
+flags -O and -J results in the content being written to stdout if and
+only if there was no Content-Disposition header in the http response. If
+there is a C-D header with a filename attribute, the output is correctly
+written.
+
+Reported by: Dave Reisner
+Bug: http://curl.haxx.se/mail/archive-2011-11/0030.html
+---
+ src/tool_cb_hdr.c | 3 +-
+ src/tool_operate.c | 59 ++++++++++++++++++++++----------------------
+ src/tool_operhlp.c | 18 +++++++++++++
+ tests/data/Makefile.am | 2 +-
+ tests/data/test1210 | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 112 insertions(+), 33 deletions(-)
+ create mode 100644 tests/data/test1210
+
+diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c
+index fb24b45..dea7338 100644
+--- a/src/tool_cb_hdr.c
++++ b/src/tool_cb_hdr.c
+@@ -66,8 +66,7 @@ size_t tool_header_cb(void *ptr, size_t size, size_t nmemb, void *userdata)
+ }
+ #endif
+
+- if(!outs->filename && (cb > 20) &&
+- checkprefix("Content-disposition:", str)) {
++ if((cb > 20) && checkprefix("Content-disposition:", str)) {
+ const char *p = str + 20;
+
+ /* look for the 'filename=' parameter
+diff --git a/src/tool_operate.c b/src/tool_operate.c
+index 7ab815f..1e88120 100644
+--- a/src/tool_operate.c
++++ b/src/tool_operate.c
+@@ -576,41 +576,40 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
+
+ if((urlnode->flags & GETOUT_USEREMOTE)
+ && config->content_disposition) {
+- /* Our header callback sets the filename */
++ /* Our header callback MIGHT set the filename */
+ DEBUGASSERT(!outs.filename);
+ }
+- else {
+- if(config->resume_from_current) {
+- /* We're told to continue from where we are now. Get the size
+- of the file as it is now and open it for append instead */
+- struct_stat fileinfo;
+- /* VMS -- Danger, the filesize is only valid for stream files */
+- if(0 == stat(outfile, &fileinfo))
+- /* set offset to current file size: */
+- config->resume_from = fileinfo.st_size;
+- else
+- /* let offset be 0 */
+- config->resume_from = 0;
+- }
+
+- if(config->resume_from) {
+- /* open file for output: */
+- FILE *file = fopen(outfile, config->resume_from?"ab":"wb");
+- if(!file) {
+- helpf(config->errors, "Can't open '%s'!\n", outfile);
+- res = CURLE_WRITE_ERROR;
+- goto quit_urls;
+- }
+- outs.fopened = TRUE;
+- outs.stream = file;
+- outs.init = config->resume_from;
+- }
+- else {
+- outs.stream = NULL; /* open when needed */
++ if(config->resume_from_current) {
++ /* We're told to continue from where we are now. Get the size
++ of the file as it is now and open it for append instead */
++ struct_stat fileinfo;
++ /* VMS -- Danger, the filesize is only valid for stream files */
++ if(0 == stat(outfile, &fileinfo))
++ /* set offset to current file size: */
++ config->resume_from = fileinfo.st_size;
++ else
++ /* let offset be 0 */
++ config->resume_from = 0;
++ }
++
++ if(config->resume_from) {
++ /* open file for output: */
++ FILE *file = fopen(outfile, config->resume_from?"ab":"wb");
++ if(!file) {
++ helpf(config->errors, "Can't open '%s'!\n", outfile);
++ res = CURLE_WRITE_ERROR;
++ goto quit_urls;
+ }
+- outs.filename = outfile;
+- outs.s_isreg = TRUE;
++ outs.fopened = TRUE;
++ outs.stream = file;
++ outs.init = config->resume_from;
++ }
++ else {
++ outs.stream = NULL; /* open when needed */
+ }
++ outs.filename = outfile;
++ outs.s_isreg = TRUE;
+ }
+
+ if(uploadfile && !stdin_upload(uploadfile)) {
+diff --git a/src/tool_operhlp.c b/src/tool_operhlp.c
+index 808d2d5..4c1697b 100644
+--- a/src/tool_operhlp.c
++++ b/src/tool_operhlp.c
+@@ -178,6 +178,24 @@ CURLcode get_url_file_name(char **filename, const char *url)
+ return CURLE_OUT_OF_MEMORY;
+ }
+ }
++
++ /* in case we built debug enabled, we allow an environment variable
++ * named CURL_TESTDIR to prefix the given file name to put it into a
++ * specific directory
++ */
++#ifdef DEBUGBUILD
++ {
++ char *tdir = curlx_getenv("CURL_TESTDIR");
++ if(tdir) {
++ char buffer[512]; /* suitably large */
++ snprintf(buffer, sizeof(buffer), "%s/%s", tdir, *filename);
++ Curl_safefree(*filename);
++ *filename = strdup(buffer); /* clone the buffer */
++ curl_free(tdir);
++ }
++ }
++#endif
++
+ return CURLE_OK;
+ }
+
+--
+1.7.7.3
diff --git a/core/dash/PKGBUILD b/core/dash/PKGBUILD
new file mode 100644
index 000000000..b46979bc2
--- /dev/null
+++ b/core/dash/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 135572 2011-08-15 22:58:37Z tomegun $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=dash
+pkgver=0.5.7
+pkgrel=2
+pkgdesc="A POSIX compliant shell that aims to be as small as possible"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gondor.apana.org.au/~herbert/dash/"
+license=('BSD')
+depends=('glibc')
+install=dash.install
+source=("http://gondor.apana.org.au/~herbert/dash/files/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('a3ebc16f2e2c7ae8adf64e5e62ae3dcb631717c6')
+
+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/dash/dash.install b/core/dash/dash.install
new file mode 100644
index 000000000..6b04cba30
--- /dev/null
+++ b/core/dash/dash.install
@@ -0,0 +1,11 @@
+post_install() {
+ grep -q '/bin/dash' etc/shells || echo '/bin/dash' >> etc/shells
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ sed -i '/^\/bin\/dash/d' etc/shells
+}
diff --git a/core/db/PKGBUILD b/core/db/PKGBUILD
new file mode 100644
index 000000000..50a11313d
--- /dev/null
+++ b/core/db/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142177 2011-11-05 16:31:54Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=db
+pkgver=5.2.36
+pkgrel=2.1
+pkgdesc="The Berkeley DB embedded database system"
+arch=('i686' 'x86_64' 'mips64el')
+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.oracle.com/berkeley-db/db-${pkgver}.tar.gz)
+sha1sums=('1a7997e5bcdf504a439f90d9eaed63864806ed5f')
+
+build() {
+ cd "${srcdir}/$pkgname-${pkgver}/build_unix"
+ ../dist/configure --prefix=/usr --enable-compat185 \
+ --enable-shared --enable-static --enable-cxx --enable-dbm
+ make LIBSO_LIBS=-lpthread
+}
+
+package() {
+ cd "${srcdir}/$pkgname-${pkgver}/build_unix"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/docs
+ install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/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..854a17c40
--- /dev/null
+++ b/core/dbus-core/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 140075 2011-10-06 07:35:37Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+#
+pkgname=dbus-core
+pkgver=1.4.16
+pkgrel=1.1
+pkgdesc="Freedesktop.org message bus system"
+url="http://www.freedesktop.org/Software/dbus"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'custom')
+depends=('expat>=2.0.1' 'coreutils' 'filesystem')
+makedepends=('libx11')
+conflicts=('dbus<1.2.3-2')
+options=(!libtool)
+install=dbus.install
+source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz
+ dbus)
+md5sums=('44a2a10678e7e50460879c3eb4453a65'
+ '08f93dd19cffd1b45ab05c1fd4efb560')
+
+build() {
+ cd "${srcdir}/dbus-${pkgver}"
+ ./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 \
+ --with-systemdsystemunitdir=/lib/systemd/system
+ make
+}
+
+package(){
+ cd "${srcdir}/dbus-${pkgver}"
+ 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"
+
+ 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/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch b/core/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch
new file mode 100644
index 000000000..4420d0b63
--- /dev/null
+++ b/core/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch
@@ -0,0 +1,33 @@
+From d345b36b483fec8fb2def5f3acdc2d3c5faa94eb Mon Sep 17 00:00:00 2001
+From: Dan McGee <dan@archlinux.org>
+Date: Sun, 19 Jun 2011 16:04:25 -0500
+Subject: [PATCH] Set hostname via /proc if file is available
+
+On Linux, the hostname can be set via this file if available, precluding
+the need for a `hostname` binary.
+
+Signed-off-by: Dan McGee <dan@archlinux.org>
+---
+ dhcpcd-hooks/30-hostname | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/dhcpcd-hooks/30-hostname b/dhcpcd-hooks/30-hostname
+index 65d1a13..af94262 100644
+--- a/dhcpcd-hooks/30-hostname
++++ b/dhcpcd-hooks/30-hostname
+@@ -21,7 +21,11 @@ need_hostname()
+ try_hostname()
+ {
+ if valid_domainname "$1"; then
+- hostname "$1"
++ if [ -w /proc/sys/kernel/hostname ]; then
++ echo "$1" > /proc/sys/kernel/hostname
++ else
++ hostname "$1"
++ fi
+ else
+ syslog err "Invalid hostname: $1"
+ fi
+--
+1.7.5.4
+
diff --git a/core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch b/core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch
new file mode 100644
index 000000000..7e78ecd0d
--- /dev/null
+++ b/core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch
@@ -0,0 +1,61 @@
+From 950c00d1b183796034d227ef47a90eb248d79b72 Mon Sep 17 00:00:00 2001
+From: Dave Reisner <d@falconindy.com>
+Date: Tue, 21 Jun 2011 09:32:47 -0400
+Subject: [PATCH] set MTU via sysfs if file is available
+
+On Linux, a network interface's MTU can be set by writing to
+/sys/class/net/$interface/mtu, which removes the dependency on ifconfig.
+
+Signed-off-by: Dave Reisner <d@falconindy.com>
+---
+ dhcpcd-hooks/10-mtu | 4 ++--
+ dhcpcd-run-hooks.in | 11 +++++++++++
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/dhcpcd-hooks/10-mtu b/dhcpcd-hooks/10-mtu
+index 639697c..8763930 100644
+--- a/dhcpcd-hooks/10-mtu
++++ b/dhcpcd-hooks/10-mtu
+@@ -7,7 +7,7 @@ if [ "$reason" = PREINIT -a -e "$mtu_dir/$interface" ]; then
+ elif [ -n "$new_interface_mtu" ] && $if_up; then
+ # The smalled MTU dhcpcd can work with is 576
+ if [ "$new_interface_mtu" -ge 576 ]; then
+- if ifconfig "$interface" mtu "$new_interface_mtu"; then
++ if set_mtu "$interface" "$new_interface_mtu"; then
+ syslog info "$interface: MTU set to $new_interface_mtu"
+ # Save the MTU so we can restore it later
+ if [ ! -e "$mtu_dir/$interface" ]; then
+@@ -21,7 +21,7 @@ elif [ -e "$mtu_dir/$interface" ]; then
+ # No MTU in this state, so restore the prior MTU
+ mtu=$(cat "$mtu_dir/$interface")
+ syslog info "$interface: MTU restored to $mtu"
+- ifconfig "$interface" mtu "$mtu"
++ set_mtu "$interface" "$mtu"
+ rm "$mtu_dir/$interface"
+ fi
+ fi
+diff --git a/dhcpcd-run-hooks.in b/dhcpcd-run-hooks.in
+index 0e60338..843f3ca 100644
+--- a/dhcpcd-run-hooks.in
++++ b/dhcpcd-run-hooks.in
+@@ -215,6 +215,17 @@ service_condcommand()
+ service_exists $1 && service_status $1 && service_cmd $1 $2
+ }
+
++# Set MTU for an interface
++set_mtu() {
++ local interface=$1 mtu=$2
++
++ if [ -e /sys/class/net/$interface/mtu ]; then
++ echo "$mtu" > /sys/class/net/$interface/mtu
++ else
++ ifconfig "$interface" mtu "$mtu"
++ fi
++}
++
+ # We source each script into this one so that scripts run earlier can
+ # remove variables from the environment so later scripts don't see them.
+ # Thus, the user can create their dhcpcd.enter/exit-hook script to configure
+--
+1.7.5.4
+
diff --git a/core/dhcpcd/PKGBUILD b/core/dhcpcd/PKGBUILD
new file mode 100644
index 000000000..75477bfeb
--- /dev/null
+++ b/core/dhcpcd/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 142553 2011-11-12 07:19:26Z allan $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Tom Killian <tom.archlinux.org>
+# Contributor: Judd Vinet <jvinet.zeroflux.org>
+
+pkgname=dhcpcd
+pkgver=5.2.12
+pkgrel=4
+pkgdesc="RFC2131 compliant DHCP client daemon"
+url="http://roy.marples.name/dhcpcd/"
+arch=('i686' 'x86_64' 'mips64el')
+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' '0001-Set-hostname-via-proc-if-file-is-available.patch' \
+ '0001-set-MTU-via-sysfs-if-file-is-available.patch')
+sha1sums=('27378a251705c7888332e6d60eea7805d1f8aeb5'
+ 'b67b9ce6a2faaca75fea356966a16be2283b7db0'
+ 'ee85adac972a8172a9d9b3a1bdd46e0430301582'
+ 'afbed18dc5544f7d0b81e2266b322ca12becf9a4')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # remove net-tools dep
+ patch -Np1 -i ${srcdir}/0001-Set-hostname-via-proc-if-file-is-available.patch
+ patch -Np1 -i ${srcdir}/0001-set-MTU-via-sysfs-if-file-is-available.patch
+
+ # 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/dhcpcd/remove_ifconfig.patch b/core/dhcpcd/remove_ifconfig.patch
new file mode 100644
index 000000000..5bcc4a68f
--- /dev/null
+++ b/core/dhcpcd/remove_ifconfig.patch
@@ -0,0 +1,20 @@
+--- dhcpcd-hooks/10-mtu.orig 2011-11-04 07:45:46.477712667 +0100
++++ dhcpcd-hooks/10-mtu 2011-11-04 07:46:38.964379550 +0100
+@@ -7,7 +7,7 @@
+ elif [ -n "$new_interface_mtu" ] && $if_up; then
+ # The smalled MTU dhcpcd can work with is 576
+ if [ "$new_interface_mtu" -ge 576 ]; then
+- if ifconfig "$interface" mtu "$new_interface_mtu"; then
++ if ip link set "$interface" mtu "$new_interface_mtu"; then
+ syslog info "$interface: MTU set to $new_interface_mtu"
+ # Save the MTU so we can restore it later
+ if [ ! -e "$mtu_dir/$interface" ]; then
+@@ -21,7 +21,7 @@
+ # No MTU in this state, so restore the prior MTU
+ mtu=$(cat "$mtu_dir/$interface")
+ syslog info "$interface: MTU restored to $mtu"
+- ifconfig "$interface" mtu "$mtu"
++ ip link set "$interface" mtu "$new_interface_mtu"
+ rm "$mtu_dir/$interface"
+ fi
+ fi
diff --git a/core/dialog/PKGBUILD b/core/dialog/PKGBUILD
new file mode 100644
index 000000000..77aa80bd8
--- /dev/null
+++ b/core/dialog/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142187 2011-11-06 02:25:41Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=dialog
+pkgver=1.1_20111020
+pkgrel=1.1
+pkgdesc="A tool to display dialog boxes from shell scripts"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://invisible-island.net/dialog/"
+license=('LGPL2.1')
+depends=('ncurses')
+source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver/_/-}.tgz)
+sha1sums=('ddabc0950275db4e9cef382a862ff3b20746e843')
+
+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..ec0c05e0b
--- /dev/null
+++ b/core/diffutils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137084 2011-09-06 04:35:05Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=diffutils
+pkgver=3.2
+pkgrel=1
+pkgdesc="Utility programs used for creating patch files"
+arch=('i686' 'x86_64' 'mips64el')
+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=('26ff64c332429c830c154be46b393382')
+
+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
+}
diff --git a/core/diffutils/diffutils.install b/core/diffutils/diffutils.install
new file mode 100644
index 000000000..ae6655fba
--- /dev/null
+++ b/core/diffutils/diffutils.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(diffutils.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..b15879ebf
--- /dev/null
+++ b/core/dmraid/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 129977 2011-06-30 18:03:08Z thomas $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+#Contributor: Urs Wolfer <uwolfer @ fwo.ch>
+
+pkgname=dmraid
+pkgver=1.0.0.rc16.3
+pkgrel=2
+pkgdesc="Device mapper RAID interface"
+url="http://people.redhat.com/~heinzm/sw/dmraid/"
+conflicts=('mkinitcpio<0.7')
+depends=('device-mapper>=2.0.54')
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'bf6c61a11dbbb40d5152835075c9f438'
+ '2a1ef82fb32f065ee560dceef736475e')
+
+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/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..6219a718a
--- /dev/null
+++ b/core/dmraid/dmraid_hook
@@ -0,0 +1,19 @@
+# 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
+ mkdir /dev/mapper
+ 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..eeb9e0893
--- /dev/null
+++ b/core/dmraid/dmraid_install
@@ -0,0 +1,19 @@
+# vim: set ft=sh:
+
+build()
+{
+ MODULES=" dm-mod dm-mirror "
+ BINARIES="/sbin/dmraid /sbin/dmsetup"
+ FILES=""
+ SCRIPT="dmraid"
+ 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..4d698eaba
--- /dev/null
+++ b/core/dnsutils/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 142197 2011-11-06 05:47:32Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: 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.1
+_pkgver=9.8.1
+pkgrel=2.1
+
+pkgdesc='DNS utilities: dig host nslookup'
+url='http://www.isc.org/software/bind/'
+license=('custom:ISC')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!makeflags')
+depends=('openssl' 'krb5' 'idnkit')
+source=("http://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz"
+ 'remove-bind.patch')
+sha1sums=('7e6ed6ebc896b1de33a9f440233066c60539de4c'
+ 'b465ef6160b004838f04de9978fe1be8422af777')
+
+replaces=('bind-tools' 'host')
+
+build() {
+ cd "${srcdir}/bind-${_pkgver}"
+
+ patch -p1 -i ../remove-bind.patch
+ export STD_CDEFINES='-DDIG_SIGCHASE'
+
+ # hack to remove unused bloat from the binaries
+ CFLAGS+=' -fdata-sections -ffunction-sections'
+ LDFLAGS+=' -Wl,--gc-sections'
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-linux-caps \
+ --with-openssl \
+ --with-idn \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/bind-${_pkgver}"
+
+ install -Dm644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ cd bin
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/dnsutils/remove-bind.patch b/core/dnsutils/remove-bind.patch
new file mode 100644
index 000000000..19d650964
--- /dev/null
+++ b/core/dnsutils/remove-bind.patch
@@ -0,0 +1,25 @@
+diff -aur old/bin/Makefile.in new/bin/Makefile.in
+--- old/bin/Makefile.in 2009-10-05 05:07:08.000000000 -0700
++++ new/bin/Makefile.in 2011-08-28 19:16:17.245495043 -0700
+@@ -19,8 +19,7 @@
+ VPATH = @srcdir@
+ top_srcdir = @top_srcdir@
+
+-SUBDIRS = named rndc dig dnssec tests tools nsupdate \
+- check confgen @PKCS11_TOOLS@
++SUBDIRS = dig
+ TARGETS =
+
+ @BIND9_MAKE_RULES@
+diff -aur old/lib/Makefile.in new/lib/Makefile.in
+--- old/lib/Makefile.in 2007-06-19 16:47:13.000000000 -0700
++++ new/lib/Makefile.in 2011-08-28 19:17:50.828688599 -0700
+@@ -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..3f7526340
--- /dev/null
+++ b/core/e2fsprogs/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 142380 2011-11-08 22:04:59Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=e2fsprogs
+pkgver=1.41.14
+pkgrel=2.1
+pkgdesc="Ext2/3/4 filesystem utilities"
+arch=('i686' 'x86_64' 'mips64el')
+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..f02d49f08
--- /dev/null
+++ b/core/ed/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 142294 2011-11-08 00:38:03Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=ed
+pkgver=1.5
+pkgrel=4
+pkgdesc="A POSIX-compliant line-oriented text editor"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnu.org/software/ed/ed.html"
+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
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make "DESTDIR=$pkgdir" install
+
+ # nuke info pages
+ rm -r "$pkgdir/usr/share/info"
+}
diff --git a/core/eglibc/PKGBUILD b/core/eglibc/PKGBUILD
new file mode 100644
index 000000000..87ea5dc27
--- /dev/null
+++ b/core/eglibc/PKGBUILD
@@ -0,0 +1,149 @@
+# $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=eglibc
+pkgver=2.13
+pkgrel=1
+_glibcdate=20110117
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64' 'mips64el')
+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=(http://repo.parabolagnulinux.org/other/eglibc-2_13.tar.bz2
+ http://repo.parabolagnulinux.org/other/eglibc-linuxthreads-2_13.tar.bz2
+ http://repo.parabolagnulinux.org/other/eglibc-localedef-2_13.tar.bz2
+ http://repo.parabolagnulinux.org/other/eglibc-ports-2_13.tar.bz2
+ nscd
+ locale.gen.txt
+ locale-gen)
+
+build() {
+ cd ${srcdir}
+ ln -s eglibc-2_13 eglibc
+
+ cd eglibc
+
+ # timezone data is in separate package (tzdata)
+ sed -i "s/localedata //" Makeconfig
+
+ for addon in ports ; do
+ ln -s ../eglibc-$addon-2_13 $addon
+ done
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ cd ${srcdir}
+ mkdir build || true
+ cd build
+
+ if [[ ${CARCH} = "mips64el" ]]; then
+ # mips64el is only supported out of tree.
+ extra_addons=",ports"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ ${srcdir}/eglibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn$extra_addons \
+ --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}/build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/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}/eglibc/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}/eglibc/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}/eglibc/localedata/SUPPORTED
+ sed -i 's|\\| |g' ${srcdir}/eglibc/localedata/SUPPORTED
+ sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/eglibc/localedata/SUPPORTED
+ cat ${srcdir}/eglibc/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}
+}
+md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190'
+ '483f37cfdd619e81d8ca9e9d713944b5'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '24dfab6fd244f3773523412588ecc52c'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+md5sums=('0f79580a194657aa74e3331d33a3889e'
+ 'f07ce5e45308fc7e2faaa55f2c766550'
+ '40b693a9ce8ab0a8837826160b3419c9'
+ '973e16228492b46bf731ad5ce2e06e9f'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
diff --git a/core/eglibc/glibc-2.13-prelink.patch b/core/eglibc/glibc-2.13-prelink.patch
new file mode 100644
index 000000000..bef7998a8
--- /dev/null
+++ b/core/eglibc/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/eglibc/glibc.install b/core/eglibc/glibc.install
new file mode 100644
index 000000000..7f85ade96
--- /dev/null
+++ b/core/eglibc/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/eglibc/locale-gen b/core/eglibc/locale-gen
new file mode 100755
index 000000000..5aff344c4
--- /dev/null
+++ b/core/eglibc/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/eglibc/locale.gen.txt b/core/eglibc/locale.gen.txt
new file mode 100644
index 000000000..ccdd81734
--- /dev/null
+++ b/core/eglibc/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/eglibc/nscd b/core/eglibc/nscd
new file mode 100755
index 000000000..8b14f2a3f
--- /dev/null
+++ b/core/eglibc/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/eventlog/ChangeLog b/core/eventlog/ChangeLog
new file mode 100644
index 000000000..1c139bdf5
--- /dev/null
+++ b/core/eventlog/ChangeLog
@@ -0,0 +1,19 @@
+2011-11-02 Andrea Scarpino <andrea@archlinux.org>
+
+ * Sign package
+
+2011-04-05 Stéphane Gaudreault <stephane@archlinux.org>
+
+ * Rebuild of old package
+ * Tidy up PKGBUILD
+
+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..92abd7bcc
--- /dev/null
+++ b/core/eventlog/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142815 2011-11-15 17:24:10Z andrea $
+# Maintainer:
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=eventlog
+pkgver=0.2.12
+pkgrel=3
+pkgdesc="API to format and send structured log messages"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.balabit.com/support/community/products/"
+license=('BSD')
+depends=('glibc')
+options=('!libtool')
+changelog=ChangeLog
+source=("http://www.balabit.com/downloads/files/${pkgname}/${pkgver%.*}/${pkgname}_${pkgver}.tar.gz")
+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..1864a6a2a
--- /dev/null
+++ b/core/expat/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142209 2011-11-06 08:56:53Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=expat
+pkgver=2.0.1
+pkgrel=7.1
+pkgdesc="An XML parser library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+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..d3fd6f97d
--- /dev/null
+++ b/core/fakeroot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144854 2011-12-08 12:17:14Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=fakeroot
+pkgver=1.18.2
+pkgrel=1
+pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://packages.debian.org/fakeroot"
+groups=('base-devel')
+install=fakeroot.install
+depends=('glibc' 'filesystem' 'sed' 'util-linux' 'sh')
+options=('!libtool')
+source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2)
+md5sums=('79f32331358ad58499704ea5e19fd0ae')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \
+ --disable-static --with-ipc=sysv
+ 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..1cacf025b
--- /dev/null
+++ b/core/file/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 138220 2011-09-19 05:03:19Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=file
+pkgver=5.09
+pkgrel=1
+pkgdesc="File type identification utility"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('6fd7cd6c4281e68fe9ec6644ce0fac6f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#\$(datadir)/misc#\$(datadir)#' configure
+
+ ./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/findutils/PKGBUILD b/core/findutils/PKGBUILD
new file mode 100644
index 000000000..54dd26005
--- /dev/null
+++ b/core/findutils/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 142108 2011-11-05 10:13:34Z tpowa $
+# Maintainer:
+
+pkgname=findutils
+pkgver=4.4.2
+pkgrel=4.1
+pkgdesc="GNU utilities to locate files"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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..62a73bbfc
--- /dev/null
+++ b/core/flex/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 142183 2011-11-05 22:42:53Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=flex
+pkgver=2.5.35
+pkgrel=5.1
+pkgdesc="A tool for generating text-scanning programs"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ 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..9a7414798
--- /dev/null
+++ b/core/gawk/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 142110 2011-11-05 10:13:55Z tpowa $
+# Maintainer:
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gawk
+pkgver=4.0.0
+pkgrel=2.1
+pkgdesc="GNU version of awk"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/directory/GNU/gawk.html"
+license=('GPL')
+groups=('base')
+depends=('sh' 'glibc')
+provides=('awk')
+install=gawk.install
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('51e417b71287629940051e6f652c6492')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make -j1 check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -dm755 ${pkgdir}/bin
+ mv ${pkgdir}/usr/bin/gawk* ${pkgdir}/bin/
+ ln -sf gawk ${pkgdir}/bin/awk
+ ln -sf /bin/gawk ${pkgdir}/usr/bin/
+}
diff --git a/core/gawk/gawk.install b/core/gawk/gawk.install
new file mode 100644
index 000000000..3f7f24cfe
--- /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..bd6f44227
--- /dev/null
+++ b/core/gcc/PKGBUILD
@@ -0,0 +1,278 @@
+# $Id: PKGBUILD 144846 2011-12-08 12:16:58Z 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
+
+if [[ "${CARCH}" != "mips64el" ]]; then
+ pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
+else
+ pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc')
+fi
+pkgver=4.6.2
+pkgrel=3
+_snapshot=4.6-20111125
+_libstdcppmanver=20110814 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+if [[ "${CARCH}" != "mips64el" ]]; then
+ makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada')
+else
+ makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl')
+fi
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc_mips64el_lib.patch
+ gcc-hash-style-both.patch
+ gcc-pr49720.patch)
+md5sums=('922b0ee688669c188d237bbd21d42d07'
+ 'ce920d2550ff7e042b9f091d27764d8f'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '67e337993d821d72fccacbed52d48c34'
+ '4df25b623799b148a0703eaeec8fdf3f'
+ 'f9d7e5b792c59175f3da3f8421447512')
+
+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
+ elif [ "${CARCH}" = "mips64el" ]; then
+ patch -Np0 -i ${srcdir}/gcc_mips64el_lib.patch
+ fi
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ # fix compiler segfault in binutils testsuite
+ patch -Np1 -i ${srcdir}/gcc-pr49720.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+
+ if [[ "${CARCH}" != "mips64el" ]]; then
+ languages=c,c++,ada,fortran,go,lto,objc,obj-c++
+ else
+ languages=c,c++,fortran,lto,objc,obj-c++
+ fi
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.parabolagnulinux.org/ \
+ --enable-languages=$languages \
+ --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-libssp --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.14')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp 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{,32}/{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=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' '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 -f $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm -f $pkgdir/usr/lib{,32}/*.so*
+ rm -f $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm -f $pkgdir/usr/lib{,32}/libgfortran.spec
+ rm -rf $pkgdir/usr/lib{,32}/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
+ rm -f $pkgdir/usr/lib{,32}/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm -f $pkgdir/usr/lib{,32}/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
+ rm -rf $pkgdir/usr/lib{,32}/go
+ rm -f $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm -f $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm -f $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm -f $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++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+
+ # 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 -f ${pkgdir}/usr/lib{,32}/lib{gfortran,quadmath}.so*
+ rm -f ${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 -f ${pkgdir}/usr/lib{,32}/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/core/gcc/gcc-ada.install b/core/gcc/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/core/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/core/gcc/gcc-fortran.install b/core/gcc/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/core/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/core/gcc/gcc-go.install b/core/gcc/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/core/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/core/gcc/gcc-hash-style-both.patch b/core/gcc/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/core/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/core/gcc/gcc-libs.install b/core/gcc/gcc-libs.install
new file mode 100644
index 000000000..a880434ae
--- /dev/null
+++ b/core/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
+ [ -f $infodir/$file.gz ] && 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
+ [ -f $infodir/$file.gz ] && install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/gcc/gcc-pr49720.patch b/core/gcc/gcc-pr49720.patch
new file mode 100644
index 000000000..8f50c4120
--- /dev/null
+++ b/core/gcc/gcc-pr49720.patch
@@ -0,0 +1,26 @@
+--- trunk/gcc/simplify-rtx.c 2011/10/28 05:55:10 180603
++++ trunk/gcc/simplify-rtx.c 2011/10/28 06:35:31 180604
+@@ -4352,10 +4352,20 @@
+ {
+ rtx x = XEXP (op0, 0);
+ rtx c = XEXP (op0, 1);
++ enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS;
++ rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c);
+
+- c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS,
+- cmp_mode, op1, c);
+- return simplify_gen_relational (code, mode, cmp_mode, x, c);
++ /* Detect an infinite recursive condition, where we oscillate at this
++ simplification case between:
++ A + B == C <---> C - B == A,
++ where A, B, and C are all constants with non-simplifiable expressions,
++ usually SYMBOL_REFs. */
++ if (GET_CODE (tem) == invcode
++ && CONSTANT_P (x)
++ && rtx_equal_p (c, XEXP (tem, 1)))
++ return NULL_RTX;
++
++ return simplify_gen_relational (code, mode, cmp_mode, x, tem);
+ }
+
+ /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is
diff --git a/core/gcc/gcc.install b/core/gcc/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/core/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/core/gcc/gcc_mips64el_lib.patch b/core/gcc/gcc_mips64el_lib.patch
new file mode 100644
index 000000000..425758e88
--- /dev/null
+++ b/core/gcc/gcc_mips64el_lib.patch
@@ -0,0 +1,25 @@
+--- gcc/config/mips/t-linux64.orig 2011-04-09 20:28:51.729723495 -0300
++++ gcc/config/mips/t-linux64 2011-04-09 20:29:06.913724013 -0300
+@@ -18,7 +18,7 @@
+
+ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+ MULTILIB_DIRNAMES = n32 32 64
+-MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
++MULTILIB_OSDIRNAMES = ../lib ../lib32 ../lib64
+
+ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+
+--- gcc/config/mips/linux64.h.orig 2011-04-09 20:27:06.909723735 -0300
++++ gcc/config/mips/linux64.h 2011-04-09 20:28:16.033723803 -0300
+@@ -35,9 +35,9 @@
+ %{!shared: \
+ %{profile:-lc_p} %{!profile:-lc}}"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld.so.1"
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
++#define GLIBC_DYNAMIC_LINKERN32 "/lib/ld.so.1"
+ #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
+ #define LINUX_DYNAMIC_LINKERN32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
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..393a4abbe
--- /dev/null
+++ b/core/gdbm/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 143800 2011-11-29 13:32:53Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=gdbm
+pkgver=1.10
+pkgrel=1
+pkgdesc="GNU database library"
+url="http://www.gnu.org/software/gdbm/gdbm.html"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glibc' 'sh')
+source=(ftp://ftp.gnu.org/gnu/gdbm/${pkgname}-${pkgver}.tar.gz
+ gdbm-1.10-zeroheaders.patch)
+options=('!libtool' '!makeflags')
+install=gdbm.install
+md5sums=('88770493c2559dc80b561293e39d3570'
+ 'ac255b10452005237836cd2d3a470733')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Prevent gdbm from storing uninitialized memory content
+ # to database files. This patch improves security, as the
+ # uninitialized memory might contain sensitive informations
+ # from other applications.
+ # https://bugzilla.redhat.com/show_bug.cgi?id=4457
+ # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208927
+ patch -Np1 -i ../gdbm-1.10-zeroheaders.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-libgdbm-compat
+
+ make prefix=/usr
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}"/usr \
+ manprefix="${pkgdir}"/usr/share/man \
+ man3dir="${pkgdir}"/usr/share/man/man3 \
+ infodir="${pkgdir}"/usr/share/info \
+ install
+
+ # create symlinks for compatibility
+ install -dm755 "${pkgdir}"/usr/include/gdbm
+ ln -sf ../gdbm.h "${pkgdir}"/usr/include/gdbm/gdbm.h
+ ln -sf ../ndbm.h "${pkgdir}"/usr/include/gdbm/ndbm.h
+ ln -sf ../dbm.h "${pkgdir}"/usr/include/gdbm/dbm.h
+}
diff --git a/core/gdbm/gdbm-1.10-zeroheaders.patch b/core/gdbm/gdbm-1.10-zeroheaders.patch
new file mode 100644
index 000000000..a268f6bdf
--- /dev/null
+++ b/core/gdbm/gdbm-1.10-zeroheaders.patch
@@ -0,0 +1,33 @@
+diff -up gdbm-1.10/src/falloc.c.zeroheaders gdbm-1.10/src/falloc.c
+--- gdbm-1.10/src/falloc.c.zeroheaders 2011-11-11 11:59:11.000000000 +0100
++++ gdbm-1.10/src/falloc.c 2011-11-14 17:34:32.487604027 +0100
+@@ -255,7 +255,7 @@ push_avail_block (GDBM_FILE dbf)
+
+
+ /* Split the header block. */
+- temp = (avail_block *) malloc (av_size);
++ temp = (avail_block *) calloc (1, av_size);
+ if (temp == NULL) _gdbm_fatal (dbf, _("malloc error"));
+ /* Set the size to be correct AFTER the pop_avail_block. */
+ temp->size = dbf->header->avail.size;
+diff -up gdbm-1.10/src/gdbmopen.c.zeroheaders gdbm-1.10/src/gdbmopen.c
+--- gdbm-1.10/src/gdbmopen.c.zeroheaders 2011-11-11 19:39:42.000000000 +0100
++++ gdbm-1.10/src/gdbmopen.c 2011-11-14 17:33:24.867608650 +0100
+@@ -264,7 +264,7 @@ gdbm_open (const char *file, int block_s
+ (dbf->header->block_size - sizeof (hash_bucket))
+ / sizeof (bucket_element) + 1;
+ dbf->header->bucket_size = dbf->header->block_size;
+- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
++ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if (dbf->bucket == NULL)
+ {
+ gdbm_close (dbf);
+@@ -456,7 +456,7 @@ _gdbm_init_cache(GDBM_FILE dbf, size_t s
+ for(index = 0; index < size; index++)
+ {
+ (dbf->bucket_cache[index]).ca_bucket
+- = (hash_bucket *) malloc (dbf->header->bucket_size);
++ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if ((dbf->bucket_cache[index]).ca_bucket == NULL)
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
diff --git a/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/gettext/PKGBUILD b/core/gettext/PKGBUILD
new file mode 100644
index 000000000..7e8af9342
--- /dev/null
+++ b/core/gettext/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142112 2011-11-05 10:14:09Z tpowa $
+# Maintainer:
+
+pkgname=gettext
+pkgver=0.18.1.1
+pkgrel=4
+pkgdesc="GNU internationalization library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/gettext/"
+license=('GPL')
+groups=('base')
+depends=('gcc-libs' 'acl' 'sh' 'glib2')
+optdepends=('cvs: for autopoint tool')
+options=(!libtool !docs)
+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 --build=$CHOST --prefix=/usr --enable-csharp
+ make
+}
+
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# make check
+#}
+
+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..075b45073
--- /dev/null
+++ b/core/glib2/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142720 2011-11-13 20:52:32Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=glib2
+pkgver=2.30.2
+pkgrel=1
+pkgdesc="Common C routines used by GTK+ and other libs"
+url="http://www.gtk.org/"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('pcre' 'libffi')
+makedepends=('pkgconfig' 'python2')
+optdepends=('python2: for gdbus-codegen')
+options=('!libtool' '!docs' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.30/glib-${pkgver}.tar.xz
+ glib2.sh
+ glib2.csh)
+sha256sums=('f0e91e6333321ddb48fa12b5c66f56c3d5f05325748c66dd2e9016c278ff8e82'
+ '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
+ '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
+
+build() {
+ cd "${srcdir}/glib-${pkgver}"
+ PYTHON=/usr/bin/python2 ./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
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "$pkgdir"/usr/bin/gdbus-codegen
+}
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/.arch b/core/glibc/.arch
new file mode 100644
index 000000000..9fe4d07f7
--- /dev/null
+++ b/core/glibc/.arch
@@ -0,0 +1 @@
+mips64el=false
diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD
new file mode 100644
index 000000000..d3462cb2e
--- /dev/null
+++ b/core/glibc/PKGBUILD
@@ -0,0 +1,222 @@
+# $Id: PKGBUILD 144848 2011-12-08 12:17:04Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+pkgname=glibc
+pkgver=2.14.1
+pkgrel=2
+_glibcdate=20111025
+_glibcportsver=2.14
+_glibcportsdate=20110908
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=3.1' 'tzdata')
+makedepends=('gcc>=4.6')
+backup=(etc/gai.conf
+ etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
+ http://repo.parabolagnulinux.org/other/glibc-ports-${_glibcportsver}_${_glibcportsdate}.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-futex.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-revert-4768ae77.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ git checkout -b glibc-2.14-arch origin/release/2.14/master
+ popd
+ tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
+ mksource-ports
+}
+
+mksource-ports() {
+ git clone git://sourceware.org/git/glibc-ports.git
+ pushd glibc-ports
+ git checkout -b glibc-2.14-arch origin/release/2.14/master
+ popd
+ tar -cvJf glibc-ports-${pkgver}_${_glibcdate}.tar.xz glibc-ports/*
+}
+
+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=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # Revert commit causing issues with crappy DNS servers...
+ # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER!
+ # Note that both these patches do not fix the issue completely:
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+
+ ln -s ../glibc-ports ports
+
+ 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"
+ elif [[ ${CARCH} = "mips64el" ]]; then
+ # mips64el is only supported out of tree.
+ extra_addons=",ports"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn$extra_addons \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --enable-multi-arch
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "s#=no#=yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+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 -f ${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}
+ [[ $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,{audit,gconv}/*.so}
+}
+md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1'
+ '46569182a7ac0b94c0b1d643ab277dfa'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ '6970bcfeb3bf88913436d5112d16f588'
+ '7da8c554a3b591c7401d7023b1928afc'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
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-futex.patch b/core/glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/core/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/core/glibc/glibc-2.14-libdl-crash.patch b/core/glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/core/glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/core/glibc/glibc-2.14-reexport-rpc-interface.patch b/core/glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/core/glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/core/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/core/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/core/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/core/glibc/glibc-2.14-revert-4768ae77.patch b/core/glibc/glibc-2.14-revert-4768ae77.patch
new file mode 100644
index 000000000..11f087cb7
--- /dev/null
+++ b/core/glibc/glibc-2.14-revert-4768ae77.patch
@@ -0,0 +1,37 @@
+diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
+--- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000
++++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000
+@@ -549,7 +549,7 @@
+ ns, ansp, ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ } else {
+ /* Use datagrams. */
+@@ -559,7 +559,7 @@
+ ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ if (v_circuit)
+ // XXX Check whether both requests failed or
+@@ -1275,14 +1275,10 @@
+ (*thisresplenp > *thisanssizp)
+ ? *thisanssizp : *thisresplenp);
+
+- if (recvresp1 || (buf2 != NULL && recvresp2)) {
+- *resplen2 = 0;
++ if (recvresp1 || (buf2 != NULL && recvresp2))
+ return resplen;
+- }
+ if (buf2 != NULL)
+ {
+- /* No data from the first reply. */
+- resplen = 0;
+ /* We are waiting for a possible second reply. */
+ if (hp->id == anhp->id)
+ recvresp1 = 1;
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/538dfce27f41.patch b/core/gmp/538dfce27f41.patch
new file mode 100644
index 000000000..2e0a1af50
--- /dev/null
+++ b/core/gmp/538dfce27f41.patch
@@ -0,0 +1,38 @@
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1310730221 -7200
+# Node ID 538dfce27f410b910d5e2f011119269e224d16a3
+# Parent 03ed209dd7efd4f4fff0ce297bb3a8f7e7ba2366
+(mpn_dcpi1_bdiv_q): Get mpn_sub_1 size argument right.
+
+diff -r 03ed209dd7ef -r 538dfce27f41 mpn/generic/dcpi1_bdiv_q.c
+--- a/mpn/generic/dcpi1_bdiv_q.c Thu Jun 16 12:22:24 2011 +0200
++++ b/mpn/generic/dcpi1_bdiv_q.c Fri Jul 15 13:43:41 2011 +0200
+@@ -7,7 +7,7 @@
+ SAFE TO REACH THEM THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
+ GUARANTEED THAT THEY WILL CHANGE OR DISAPPEAR IN A FUTURE GMP RELEASE.
+
+-Copyright 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
++Copyright 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+
+ This file is part of the GNU MP Library.
+
+@@ -28,7 +28,6 @@
+ #include "gmp-impl.h"
+
+
+-
+ mp_size_t
+ mpn_dcpi1_bdiv_q_n_itch (mp_size_t n)
+ {
+@@ -130,7 +129,7 @@
+ qn = nn - qn;
+ while (qn > dn)
+ {
+- mpn_sub_1 (np + dn, np + dn, qn, cy);
++ mpn_sub_1 (np + dn, np + dn, qn - dn, cy);
+ cy = mpn_dcpi1_bdiv_qr_n (qp, np, dp, dn, dinv, tp);
+ qp += dn;
+ np += dn;
+
diff --git a/core/gmp/PKGBUILD b/core/gmp/PKGBUILD
new file mode 100644
index 000000000..e8a2c1367
--- /dev/null
+++ b/core/gmp/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 135906 2011-08-20 07:13:57Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gmp
+pkgver=5.0.2
+pkgrel=3
+pkgdesc="A free library for arbitrary precision arithmetic"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ 538dfce27f41.patch)
+md5sums=('0bbaedc82fb30315b06b1588b9077cd3'
+ 'a769be9c41618ca9c35d83375e7097d0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i $srcdir/538dfce27f41.patch
+
+ [ "${CARCH}" = "i686" ] && export ABI="32"
+ [ "${CARCH}" = "mips64el" ] && export ABI="n32"
+ ./configure --build=${CHOST} \
+ --prefix=/usr --infodir=/usr/share/info \
+ --enable-cxx
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..cad3354f9
--- /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..70aa978f1
--- /dev/null
+++ b/core/gpm/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 142351 2011-11-08 18:37:43Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gpm
+pkgver=1.20.6
+pkgrel=7
+pkgdesc="A mouse server for the console and xterm"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+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..5cd2533f6
--- /dev/null
+++ b/core/grep/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143252 2011-11-24 01:36:25Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=grep
+pkgver=2.10
+pkgrel=1
+pkgdesc="A string search utility"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig})
+md5sums=('709915434d09f5db655e5ebd7fd6bb7f'
+ '9ad5c390a6ad7f566c58db28ddb06aed')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..7cd31301f
--- /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..f9661d3f4
--- /dev/null
+++ b/core/groff/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 142313 2011-11-08 10:57:28Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=groff
+pkgver=1.21
+pkgrel=2
+pkgdesc="GNU troff text-formatting system"
+arch=(i686 x86_64 'mips64el')
+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 !docs)
+install=groff.install
+md5sums=('8b8cd29385b97616a0f0d96d0951c5bf'
+ 'a1fedafd7863b37968d32ad9ae1d8c13')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --without-x
+ mkdir -p $pkgdir/usr
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+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..d6ce70c31
--- /dev/null
+++ b/core/gzip/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142064 2011-11-04 23:35:55Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=gzip
+pkgver=1.4
+pkgrel=4.1
+pkgdesc="GNU compression utility"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig})
+md5sums=('e381b8506210c794278f5527cba0e765'
+ '3b11d485d1638f2d16f7494a0486a6e8')
+
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr install
+
+ install -dm755 ${pkgdir}/bin
+ mv ${pkgdir}/usr/bin/{gunzip,gzip,uncompress,zcat} ${pkgdir}/bin/
+}
diff --git a/core/gzip/gzip.install b/core/gzip/gzip.install
new file mode 100644
index 000000000..24c8b8fb9
--- /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..662e6e13b
--- /dev/null
+++ b/core/hdparm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 142539 2011-11-11 21:16:42Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=hdparm
+pkgver=9.37
+pkgrel=2
+pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
+arch=(i686 x86_64 'mips64el')
+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/heirloom-mailx/PKGBUILD b/core/heirloom-mailx/PKGBUILD
new file mode 100644
index 000000000..e08a0246e
--- /dev/null
+++ b/core/heirloom-mailx/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 142842 2011-11-16 20:25:47Z dan $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s@arch@gmail.com>
+# Contributor: Andreas Wagner <Andreas.Wagner@em.uni-frankfurt.de>
+
+pkgname=heirloom-mailx
+pkgver=12.5
+pkgrel=3
+pkgdesc="A commandline utility for sending and receiving email"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://heirloom.sourceforge.net/mailx.html"
+license=('custom')
+groups=('base')
+depends=('openssl' 'krb5')
+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 -rf ${_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..74b1cb6b5
--- /dev/null
+++ b/core/idnkit/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 142702 2011-11-13 10:10:08Z bisson $
+# Contributor: Igor Nemilentsev <trezorg@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=idnkit
+pkgver=1.0
+pkgrel=2
+pkgdesc='Provides functionalities about Internationalized Domain Name processing'
+url='http://www.nic.ad.jp/ja/idn/idnkit/download/'
+license=('custom:BSD')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glibc')
+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 \
+ --host=$CHOST \
+ --build=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --enable-static=no
+ make
+}
+
+check() {
+ cd "${srcdir}/idnkit-${pkgver}-src"
+ make check
+}
+
+package() {
+ cd "${srcdir}/idnkit-${pkgver}-src"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ rm "${pkgdir}"/etc/*.sample
+}
diff --git a/core/ifenslave/PKGBUILD b/core/ifenslave/PKGBUILD
new file mode 100644
index 000000000..b5e4897a9
--- /dev/null
+++ b/core/ifenslave/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142704 2011-11-13 10:10:10Z bisson $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=ifenslave
+pkgver=1.1.0
+pkgrel=7
+pkgdesc='Utility for bonding ethernet interfaces'
+arch=('i686' 'x86_64' 'mips64el')
+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=65968fbf'
+ 'bonding.conf.d')
+sha1sums=('c657d9e6b8acb983bb8ef856f8f7f25ee6bf4f73'
+ '6843971c0254768868b556af33289d7d32d6208d')
+
+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
+}
+sha1sums=('627333f410809971409023fda6a8b1de419146ba'
+ '6843971c0254768868b556af33289d7d32d6208d')
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..9bb18c831
--- /dev/null
+++ b/core/inetutils/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 140458 2011-10-14 20:15:14Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=inetutils
+pkgver=1.8
+pkgrel=6.1
+pkgdesc="A collection of common network programs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/inetutils/"
+license=('GPL3')
+groups=('base')
+depends=('readline' 'ncurses' 'pam')
+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{,.sig} \
+ ftpd.rc ftpd.conf telnet.xinetd talk.xinetd rexec.xinetd rlogin.xinetd rsh.xinetd \
+ dnsdomainname domainname)
+sha1sums=('598445859b511f73681e4d74a41d65cd6ae0f83e'
+ 'c439b577214017be9cccd1b2fbba048964386a0e'
+ '84dc802b5e57b5e04c847572225a3b9612017155'
+ '68a590083b45997dfdb80e666b2de762f494ba74'
+ 'bfad98a4a62f1fff8779f076c6019ed07f9111af'
+ '27d99b910eec0fc26bd79ccc2c1de26608330298'
+ '87aa4f38ebee9dac5dcaa04cbc3f2f0906bec605'
+ '81f10b3b688e3952f793b35bcef63b5bf257a92b'
+ '81f4a8da823cf0bb14284fc71ee6108849691eda'
+ 'ac69756d6cc50157d430d863db04a5aac4688380'
+ 'eb952b0b9c3e3d429d8e21b110249e495f0e0e63')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexec=/usr/sbin --localstatedir=/var \
+ --sysconfdir=/etc --mandir=/usr/share/man --infodir=/usr/share/info \
+ --without-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 --enable-hostname \
+ --disable-tftp --disable-tftpd \
+ --disable-ping --disable-ping6 \
+ --disable-logger --disable-syslogd \
+ --disable-inetd --disable-whois \
+ --disable-uucpd --disable-ifconfig --disable-traceroute
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/bin"
+ ln -s /usr/bin/hostname "${pkgdir}/bin/hostname"
+ install -D -m755 "${srcdir}/domainname" "${pkgdir}/bin/domainname"
+ install -D -m755 "${srcdir}/dnsdomainname" "${pkgdir}/bin/dnsdomainname"
+ echo ".so man1/hostname.1" > "${pkgdir}/usr/share/man/man1/domainname.1"
+ echo ".so man1/hostname.1" > "${pkgdir}/usr/share/man/man1/dnsdomainname.1"
+ 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/dnsdomainname b/core/inetutils/dnsdomainname
new file mode 100644
index 000000000..4bba209fe
--- /dev/null
+++ b/core/inetutils/dnsdomainname
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/hostname -y "$@"
diff --git a/core/inetutils/domainname b/core/inetutils/domainname
new file mode 100644
index 000000000..a1b8a8c31
--- /dev/null
+++ b/core/inetutils/domainname
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/hostname -d "$@"
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..3b0996dd0
--- /dev/null
+++ b/core/iproute2/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 142382 2011-11-08 22:05:14Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=iproute2
+pkgver=2.6.39
+pkgrel=2.1
+pkgdesc="IP Routing Utilities"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.linux-foundation.org/en/Net:Iproute2"
+depends=('perl')
+makedepends=('linux-atm')
+optdepends=('linux-atm: ATM support')
+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.gz
+ 'iproute2-fhs.patch')
+sha1sums=('9044ad0b4a34a377a54197724373330294d743c7'
+ '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
+
+ # allow loopback to be started before /usr is mounted, this may not be supported in the future
+ mkdir -p ${pkgdir}/sbin
+ mv ${pkgdir}/usr/sbin/ip ${pkgdir}/sbin/ip
+ ln -s /sbin/ip ${pkgdir}/usr/sbin/ip
+
+ # 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..390d6d482
--- /dev/null
+++ b/core/iptables/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 142199 2011-11-06 05:47:47Z bisson $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=iptables
+pkgver=1.4.12.1
+pkgrel=2.1
+pkgdesc='Linux kernel packet control tool'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url='http://www.netfilter.org/projects/iptables/index.html'
+depends=('glibc' 'bash')
+makedepends=('linux-api-headers')
+options=('!libtool')
+source=("http://www.iptables.org/projects/iptables/files/${pkgname}-${pkgver}.tar.bz2"
+ iptables
+ ip6tables
+ empty.rules
+ simple_firewall.rules
+ iptables.conf.d
+ empty-filter.rules
+ empty-mangle.rules
+ empty-nat.rules
+ empty-raw.rules
+ empty-security.rules)
+backup=(etc/conf.d/iptables)
+sha1sums=('86022c3b5129ad7105f5087ec1349e99cc5a9728'
+ '5bb6fa526665cdd728c26f0f282f5a51f220cf88'
+ '2db68906b603e5268736f48c8e251f3a49da1d75'
+ '83b3363878e3660ce23b2ad325b53cbd6c796ecf'
+ '9907f9e815592837abc7fa3264a401567b7606ab'
+ 'cdb830137192bbe002c6d01058656bd053ed0ddd'
+ 'd9f9f06b46b4187648e860afa0552335aafe3ce4'
+ 'c45b738b5ec4cfb11611b984c21a83b91a2d58f3'
+ '1694d79b3e6e9d9d543f6a6e75fed06066c9a6c6'
+ '7db53bb882f62f6c677cc8559cff83d8bae2ef73'
+ 'ebbd1424a1564fd45f455a81c61ce348f0a14c2e')
+
+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
+
+ # FS#25358: libxt_statistic.so undefined symbol: lround
+ export LDFLAGS='-lm'
+
+ ./configure --prefix=/usr \
+ --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
+
+ cd "${srcdir}"
+ 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
+
+ mkdir -p "${pkgdir}"/var/lib/iptables
+ install -m644 empty-{filter,mangle,nat,raw,security}.rules "${pkgdir}"/var/lib/iptables
+}
diff --git a/core/iptables/empty-filter.rules b/core/iptables/empty-filter.rules
new file mode 100644
index 000000000..5a4de4876
--- /dev/null
+++ b/core/iptables/empty-filter.rules
@@ -0,0 +1,6 @@
+# Empty iptables filter table rule file
+*filter
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+COMMIT
diff --git a/core/iptables/empty-mangle.rules b/core/iptables/empty-mangle.rules
new file mode 100644
index 000000000..49d493c4d
--- /dev/null
+++ b/core/iptables/empty-mangle.rules
@@ -0,0 +1,8 @@
+# Empty iptables mangle table rules file
+*mangle
+:PREROUTING ACCEPT [0:0]
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+:POSTROUTING ACCEPT [0:0]
+COMMIT
diff --git a/core/iptables/empty-nat.rules b/core/iptables/empty-nat.rules
new file mode 100644
index 000000000..437e96411
--- /dev/null
+++ b/core/iptables/empty-nat.rules
@@ -0,0 +1,7 @@
+# Empty iptables nat table rules file
+*nat
+:PREROUTING ACCEPT [0:0]
+:INPUT ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+:POSTROUTING ACCEPT [0:0]
+COMMIT
diff --git a/core/iptables/empty-raw.rules b/core/iptables/empty-raw.rules
new file mode 100644
index 000000000..8dc50d23e
--- /dev/null
+++ b/core/iptables/empty-raw.rules
@@ -0,0 +1,5 @@
+# Empty iptables raw table rules file
+*raw
+:PREROUTING ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+COMMIT
diff --git a/core/iptables/empty-security.rules b/core/iptables/empty-security.rules
new file mode 100644
index 000000000..4531fa13f
--- /dev/null
+++ b/core/iptables/empty-security.rules
@@ -0,0 +1,6 @@
+# Empty iptables security table rules file
+*security
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+COMMIT
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..2d119e3ed
--- /dev/null
+++ b/core/iptables/ip6tables
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/iptables ] && . /etc/conf.d/iptables
+
+# Set defaults if settings are missing
+[ -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 ip6tables 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"
+ if ! ck_daemon ip6tables; then
+ fail=0
+ for table in $(cat /proc/net/ip6_tables_names); do
+ ip6tables-restore < /var/lib/iptables/empty-$table.rules
+ [ $? -gt 0 ] && fail=1
+ done
+ if [ $fail -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ip6tables
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ $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..fbb02face
--- /dev/null
+++ b/core/iptables/iptables
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/iptables ] && . /etc/conf.d/iptables
+
+# Set defaults if settings are missing
+[ -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"
+ if ! ck_daemon iptables; then
+ fail=0
+ for table in $(cat /proc/net/ip_tables_names); do
+ iptables-restore < /var/lib/iptables/empty-$table.rules
+ [ $? -gt 0 ] && fail=1
+ done
+ if [ $fail -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon iptables
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ $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..1c6cc7b5d
--- /dev/null
+++ b/core/iptables/iptables.conf.d
@@ -0,0 +1,12 @@
+# Configuration for iptables rules
+IPTABLES_CONF=/etc/iptables/iptables.rules
+IP6TABLES_CONF=/etc/iptables/ip6tables.rules
+
+# Enable IP forwarding (both IPv4 and IPv6)
+# NOTE: this is not the recommended way to do this, and is supported only for
+# backward compatibility. Instead, use /etc/sysctl.conf and set the following
+# options:
+# * net.ipv4.ip_forward=1
+# * net.ipv6.conf.default.forwarding=1
+# * net.ipv6.conf.all.forwarding=1
+#IPTABLES_FORWARD=0
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..bf24c3a6e
--- /dev/null
+++ b/core/iputils/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 142315 2011-11-08 10:57:52Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=iputils
+pkgver=20101006
+_traceroutever=1.4a12
+pkgrel=2.1
+pkgdesc="IP Configuration Utilities (and Ping)"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ find . -name Makefile | xargs sed -ri 's/^(CCOPT=.*)$/\1 '"${CFLAGS}"'/'
+ 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
+ find . -name Makefile.in | xargs sed -ri 's/^(CCOPT=.*)$/\1 '"${CFLAGS}"'/'
+ ./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/isl/PKGBUILD b/core/isl/PKGBUILD
new file mode 100644
index 000000000..bf6b8b147
--- /dev/null
+++ b/core/isl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 136341 2011-08-26 22:10:51Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=isl
+pkgver=0.07
+pkgrel=1
+pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kotnet.org/~skimo/isl/"
+license=('LGPL2.1')
+options=('!libtool')
+source=(http://www.kotnet.org/~skimo/isl/$pkgname-$pkgver.tar.bz2)
+md5sums=('0d1a38db9f1c7d526758092b985827ea')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -j1 DESTDIR="$pkgdir/" install
+
+ # this seems a better place for this file...
+ install -dm755 $pkgdir/usr/share/gdb/auto-load/
+ mv $pkgdir/usr/{lib,share/gdb/auto-load}/libisl.so.7.0.0-gdb.py
+}
diff --git a/core/iw/PKGBUILD b/core/iw/PKGBUILD
new file mode 100644
index 000000000..260ec0c2e
--- /dev/null
+++ b/core/iw/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 135527 2011-08-14 20:37:21Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=iw
+pkgver=3.0
+pkgrel=1.1
+pkgdesc="nl80211 based CLI configuration utility for wireless devices"
+arch=("i686" "x86_64" 'mips64el')
+url="http://wireless.kernel.org/en/users/Documentation/iw"
+license=("GPL")
+depends=("libnl")
+makedepends=("linux-api-headers" "pkg-config")
+source=(http://wireless.kernel.org/download/$pkgname/$pkgname-$pkgver.tar.bz2)
+sha256sums=('a0ccbf1ce71ae4bdb05495ca18ab00a87c06dce2c3bf8b8358c615e60c4632fb')
+
+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..8ed938017
--- /dev/null
+++ b/core/jfsutils/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142848 2011-11-17 00:38:27Z bisson $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=jfsutils
+pkgver=1.1.15
+pkgrel=3
+pkgdesc='JFS filesystem utilities'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://jfs.sourceforge.net'
+license=('GPL')
+groups=('base')
+depends=('util-linux-ng')
+source=("http://jfs.sourceforge.net/project/pub/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('291e8bd9d615cf3d27e4000117c81a3602484a50')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --sbindir=/sbin
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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..23d04ad5c
--- /dev/null
+++ b/core/kbd/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 141105 2011-10-24 06:35:43Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kbd
+pkgver=1.15.3
+pkgrel=2.1
+pkgdesc="Keytable files and keyboard utilities"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ fix-es.po.patch)
+md5sums=('8143e179a0f3c25646ce5085e8777200'
+ '4ded3edb50fb7a3277bae6a870cee812')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ../fix-es.po.patch
+ # 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
+ mv data/keymaps/i386/colemak/{en-latin9,colemak}.map
+
+ ./configure --prefix=/usr --datadir=/usr/share/kbd --mandir=/usr/share/man
+ make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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/kbd/fix-es.po.patch b/core/kbd/fix-es.po.patch
new file mode 100644
index 000000000..578f0a7b7
--- /dev/null
+++ b/core/kbd/fix-es.po.patch
@@ -0,0 +1,11 @@
+--- kbd-1.15.3/po/es.old 2011-05-14 23:12:49.000000000 +0200
++++ kbd-1.15.3/po/es.po 2011-05-15 21:07:02.120669404 +0200
+@@ -1363,7 +1363,7 @@
+ #: src/setfont.c:682
+ #, c-format
+ msgid "Saved %d-char %dx%d font file on %s\n"
+-msgstr "Se ha guardado el fichero de tipos %2$dx%3$d de %1$d caracteres en %s\n"
++msgstr "Se ha guardado el fichero de tipos %dx%d de %d caracteres en %s\n"
+
+ #: src/setkeycodes.c:21
+ #, c-format
diff --git a/core/keyutils/PKGBUILD b/core/keyutils/PKGBUILD
new file mode 100644
index 000000000..5a9db6545
--- /dev/null
+++ b/core/keyutils/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 144590 2011-12-07 12:54:45Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=keyutils
+pkgver=1.5.5
+pkgrel=1
+pkgdesc="Linux Key Management Utilities"
+arch=(i686 x86_64 'mips64el')
+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)
+md5sums=('9e8ab5164bc8f84be148761cc89e9d6f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i "s|/lib64|/lib|g" Makefile
+ make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/krb5/PKGBUILD b/core/krb5/PKGBUILD
new file mode 100644
index 000000000..9eb17fc59
--- /dev/null
+++ b/core/krb5/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 144896 2011-12-09 11:55:57Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=krb5
+pkgver=1.9.2
+pkgrel=2
+pkgdesc="The Kerberos network authentication system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://web.mit.edu/kerberos/"
+license=('custom')
+depends=('e2fsprogs' 'libldap' 'keyutils')
+makedepends=('perl')
+provides=('heimdal')
+replaces=('heimdal')
+conflicts=('heimdal')
+backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf')
+source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.9/${pkgname}-${pkgver}-signed.tar
+ krb5-kadmind
+ krb5-kdc
+ krb5-kpropd
+ krb5-1.9.1-config-script.patch
+ krb5-1.9.1-2011-007.patch)
+sha1sums=('aa06f778ee1f9791cd4c5cf4c9e9465769ffec92'
+ '2aa229369079ed1bbb201a1ef72c47bf143f4dbe'
+ '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393'
+ '7f402078fa65bb9ff1beb6cbbbb017450df78560'
+ '7342410760cf44bfa01bb99bb4c49e12496cb46f'
+ 'ec917dd1d1c96fa331f512331d5aa37c2e9b9df7')
+options=('!emptydirs')
+
+build() {
+ tar zxvf ${pkgname}-${pkgver}.tar.gz
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+
+ # - Make krb5-config suppress CFLAGS output when called with --libs
+ # cf https://bugzilla.redhat.com/show_bug.cgi?id=544391
+ #
+ # - Omit extra libraries because their interfaces are not exposed to applications
+ # by libkrb5, unless do_deps is set to 1, which indicates that the caller
+ # wants the whole list.
+ #
+ # Patch from upstream :
+ # http://anonsvn.mit.edu/viewvc/krb5/trunk/src/krb5-config.in?r1=23662&r2=25236
+ patch -Np2 -i ${srcdir}/krb5-1.9.1-config-script.patch
+
+ # Apply upstream patch to fix a null pointer dereference when processing TGS requests
+ # CVE-2011-1530
+ # see http://web.mit.edu/kerberos/advisories/MITKRB5-SA-2011-007.txt
+ patch -Np2 -i ${srcdir}/krb5-1.9.1-2011-007.patch
+
+ # FS#25384
+ sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4
+
+ export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all"
+ export CPPFLAGS+=" -I/usr/include/et"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --localstatedir=/var/lib \
+ --enable-shared \
+ --with-system-et \
+ --with-system-ss \
+ --disable-rpath \
+ --without-tcl \
+ --enable-dns-for-realm \
+ --with-ldap
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ make DESTDIR="${pkgdir}" EXAMPLEDIR="/usr/share/doc/${pkgname}/examples" install
+
+ # Sample KDC config file
+ install -dm 755 "${pkgdir}"/var/lib/krb5kdc
+ install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf
+
+ # Default configuration file
+ install -dm 755 "${pkgdir}"/etc
+ install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf
+
+ install -dm 755 "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-kdc "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-kadmind "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-kpropd "${pkgdir}"/etc/rc.d
+
+ install -dm 755 "${pkgdir}"/usr/share/aclocal
+ install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal
+
+ install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/krb5/krb5-1.9.1-2011-006.patch b/core/krb5/krb5-1.9.1-2011-006.patch
new file mode 100644
index 000000000..05a22caf5
--- /dev/null
+++ b/core/krb5/krb5-1.9.1-2011-006.patch
@@ -0,0 +1,75 @@
+diff --git a/src/plugins/kdb/db2/lockout.c b/src/plugins/kdb/db2/lockout.c
+index b473611..50c60b7 100644
+--- a/src/plugins/kdb/db2/lockout.c
++++ b/src/plugins/kdb/db2/lockout.c
+@@ -169,6 +169,9 @@ krb5_db2_lockout_audit(krb5_context context,
+ return 0;
+ }
+
++ if (entry == NULL)
++ return 0;
++
+ if (!db_ctx->disable_lockout) {
+ code = lookup_lockout_policy(context, entry, &max_fail,
+ &failcnt_interval, &lockout_duration);
+@@ -176,6 +179,15 @@ krb5_db2_lockout_audit(krb5_context context,
+ return code;
+ }
+
++ /*
++ * Don't continue to modify the DB for an already locked account.
++ * (In most cases, status will be KRB5KDC_ERR_CLIENT_REVOKED, and
++ * this check is unneeded, but in rare cases, we can fail with an
++ * integrity error or preauth failure before a policy check.)
++ */
++ if (locked_check_p(context, stamp, max_fail, lockout_duration, entry))
++ return 0;
++
+ /* Only mark the authentication as successful if the entry
+ * required preauthentication, otherwise we have no idea. */
+ if (status == 0 && (entry->attributes & KRB5_KDB_REQUIRES_PRE_AUTH)) {
+diff --git a/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c b/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
+index 552e39a..c2f44ab 100644
+--- a/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
++++ b/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
+@@ -105,6 +105,7 @@ krb5_ldap_get_principal(krb5_context context, krb5_const_principal searchfor,
+ CHECK_LDAP_HANDLE(ldap_context);
+
+ if (is_principal_in_realm(ldap_context, searchfor) != 0) {
++ st = KRB5_KDB_NOENTRY;
+ krb5_set_error_message (context, st, "Principal does not belong to realm");
+ goto cleanup;
+ }
+diff --git a/src/plugins/kdb/ldap/libkdb_ldap/lockout.c b/src/plugins/kdb/ldap/libkdb_ldap/lockout.c
+index a218dc7..fd164dd 100644
+--- a/src/plugins/kdb/ldap/libkdb_ldap/lockout.c
++++ b/src/plugins/kdb/ldap/libkdb_ldap/lockout.c
+@@ -165,6 +165,9 @@ krb5_ldap_lockout_audit(krb5_context context,
+ return 0;
+ }
+
++ if (entry == NULL)
++ return 0;
++
+ if (!ldap_context->disable_lockout) {
+ code = lookup_lockout_policy(context, entry, &max_fail,
+ &failcnt_interval,
+@@ -173,9 +176,16 @@ krb5_ldap_lockout_audit(krb5_context context,
+ return code;
+ }
+
+- entry->mask = 0;
++ /*
++ * Don't continue to modify the DB for an already locked account.
++ * (In most cases, status will be KRB5KDC_ERR_CLIENT_REVOKED, and
++ * this check is unneeded, but in rare cases, we can fail with an
++ * integrity error or preauth failure before a policy check.)
++ */
++ if (locked_check_p(context, stamp, max_fail, lockout_duration, entry))
++ return 0;
+
+- assert (!locked_check_p(context, stamp, max_fail, lockout_duration, entry));
++ entry->mask = 0;
+
+ /* Only mark the authentication as successful if the entry
+ * required preauthentication, otherwise we have no idea. */
diff --git a/core/krb5/krb5-1.9.1-2011-007.patch b/core/krb5/krb5-1.9.1-2011-007.patch
new file mode 100644
index 000000000..336a4ad31
--- /dev/null
+++ b/core/krb5/krb5-1.9.1-2011-007.patch
@@ -0,0 +1,40 @@
+diff --git a/src/kdc/Makefile.in b/src/kdc/Makefile.in
+index f46cad3..102fbaa 100644
+--- a/src/kdc/Makefile.in
++++ b/src/kdc/Makefile.in
+@@ -67,6 +67,7 @@ check-unix:: rtest
+
+ check-pytests::
+ $(RUNPYTEST) $(srcdir)/t_workers.py $(PYTESTFLAGS)
++ $(RUNPYTEST) $(srcdir)/t_emptytgt.py $(PYTESTFLAGS)
+
+ install::
+ $(INSTALL_PROGRAM) krb5kdc ${DESTDIR}$(SERVER_BINDIR)/krb5kdc
+diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
+index c169c54..840a2ef 100644
+--- a/src/kdc/do_tgs_req.c
++++ b/src/kdc/do_tgs_req.c
+@@ -243,7 +243,8 @@ tgt_again:
+ if (!tgs_1 || !data_eq(*server_1, *tgs_1)) {
+ errcode = find_alternate_tgs(request, &server);
+ firstpass = 0;
+- goto tgt_again;
++ if (errcode == 0)
++ goto tgt_again;
+ }
+ }
+ status = "UNKNOWN_SERVER";
+diff --git a/src/kdc/t_emptytgt.py b/src/kdc/t_emptytgt.py
+new file mode 100644
+index 0000000..1760bcd
+--- /dev/null
++++ b/src/kdc/t_emptytgt.py
+@@ -0,0 +1,8 @@
++#!/usr/bin/python
++from k5test import *
++
++realm = K5Realm(start_kadmind=False, create_host=False)
++output = realm.run_as_client([kvno, 'krbtgt/'], expected_code=1)
++if 'not found in Kerberos database' not in output:
++ fail('TGT lookup for empty realm failed in unexpected way')
++success('Empty tgt lookup.')
diff --git a/core/krb5/krb5-1.9.1-canonicalize-fallback.patch b/core/krb5/krb5-1.9.1-canonicalize-fallback.patch
new file mode 100644
index 000000000..e5a38498f
--- /dev/null
+++ b/core/krb5/krb5-1.9.1-canonicalize-fallback.patch
@@ -0,0 +1,58 @@
+diff -Naur krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c krb5-1.9.1/src/lib/krb5/krb/get_creds.c
+--- krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c 2011-02-09 16:55:36.000000000 -0500
++++ krb5-1.9.1/src/lib/krb5/krb/get_creds.c 2011-09-26 18:42:01.465190278 -0400
+@@ -470,13 +470,10 @@
+
+ /***** STATE_REFERRALS *****/
+
+-/*
+- * Possibly retry a request in the fallback realm after a referral request
+- * failure in the local realm. Expects ctx->reply_code to be set to the error
+- * from a referral request.
+- */
++/* Possibly try a non-referral request after a referral request failure.
++ * Expects ctx->reply_code to be set to the error from a referral request. */
+ static krb5_error_code
+-try_fallback_realm(krb5_context context, krb5_tkt_creds_context ctx)
++try_fallback(krb5_context context, krb5_tkt_creds_context ctx)
+ {
+ krb5_error_code code;
+ char **hrealms;
+@@ -485,9 +482,10 @@
+ if (ctx->referral_count > 1)
+ return ctx->reply_code;
+
+- /* Only fall back if the original request used the referral realm. */
++ /* If the request used a specified realm, make a non-referral request to
++ * that realm (in case it's a KDC which rejects KDC_OPT_CANONICALIZE). */
+ if (!krb5_is_referral_realm(&ctx->req_server->realm))
+- return ctx->reply_code;
++ return begin_non_referral(context, ctx);
+
+ if (ctx->server->length < 2) {
+ /* We need a type/host format principal to find a fallback realm. */
+@@ -500,10 +498,10 @@
+ if (code != 0)
+ return code;
+
+- /* Give up if the fallback realm isn't any different. */
++ /* If the fallback realm isn't any different, use the existing TGT. */
+ if (data_eq_string(ctx->server->realm, hrealms[0])) {
+ krb5_free_host_realm(context, hrealms);
+- return ctx->reply_code;
++ return begin_non_referral(context, ctx);
+ }
+
+ /* Rewrite server->realm to be the fallback realm. */
+@@ -540,9 +538,9 @@
+ krb5_error_code code;
+ const krb5_data *referral_realm;
+
+- /* Possibly retry with the fallback realm on error. */
++ /* Possibly try a non-referral fallback request on error. */
+ if (ctx->reply_code != 0)
+- return try_fallback_realm(context, ctx);
++ return try_fallback(context, ctx);
+
+ if (krb5_principal_compare(context, ctx->reply_creds->server,
+ ctx->server)) {
diff --git a/core/krb5/krb5-1.9.1-config-script.patch b/core/krb5/krb5-1.9.1-config-script.patch
new file mode 100644
index 000000000..a72a75edf
--- /dev/null
+++ b/core/krb5/krb5-1.9.1-config-script.patch
@@ -0,0 +1,27 @@
+diff -Naur krb5-1.9.1.ori/src/krb5-config.in krb5-1.9.1/src/krb5-config.in
+--- krb5-1.9.1.ori/src/krb5-config.in 2010-01-19 13:44:57.000000000 -0500
++++ krb5-1.9.1/src/krb5-config.in 2011-09-26 18:27:09.018487087 -0400
+@@ -186,7 +186,7 @@
+ -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \
+ -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \
+ -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \
+- -e 's#\$(CFLAGS)#'"$CFLAGS"'#'`
++ -e 's#\$(CFLAGS)##'`
+
+ if test $library = 'kdb'; then
+ lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB"
+@@ -214,9 +214,13 @@
+ fi
+
+ if test $library = 'krb5'; then
+- lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err $GEN_LIB $LIBS $DL_LIB"
++ lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err"
+ fi
+
++ # If we ever support a flag to generate output suitable for static
++ # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB"
++ # here.
++
+ echo $lib_flags
+ fi
+
diff --git a/core/krb5/krb5-kadmind b/core/krb5/krb5-kadmind
new file mode 100644
index 000000000..04df0dcff
--- /dev/null
+++ b/core/krb5/krb5-kadmind
@@ -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 Kerberos Admin Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kadmind
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon krb5-kadmind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Admin Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon krb5-kadmind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/krb5/krb5-kdc b/core/krb5/krb5-kdc
new file mode 100644
index 000000000..05a03411e
--- /dev/null
+++ b/core/krb5/krb5-kdc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/krb5kdc`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Authentication"
+ if [ -z "$PID" ]; then
+ /usr/sbin/krb5kdc
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon krb5-kdc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Authentication"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon krb5-kdc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/krb5/krb5-kpropd b/core/krb5/krb5-kpropd
new file mode 100644
index 000000000..a0077d68e
--- /dev/null
+++ b/core/krb5/krb5-kpropd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kpropd`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Database Propagation Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kpropd -S
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kpropd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Database Propagation Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kpropd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/less/PKGBUILD b/core/less/PKGBUILD
new file mode 100644
index 000000000..5edb5273f
--- /dev/null
+++ b/core/less/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142066 2011-11-04 23:35:58Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=less
+pkgver=444
+pkgrel=2.1
+pkgdesc="A terminal based program for viewing text files"
+license=('GPL3')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.greenwoodsoftware.com/less"
+groups=('base')
+depends=('ncurses' 'pcre')
+source=(http://www.greenwoodsoftware.com/$pkgname/$pkgname-$pkgver.tar.gz{,.sig})
+md5sums=('56f9f76ffe13f70155f47f6b3c87d421'
+ 'd5fafbd94a9cfdeaad0c82143a033fe5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --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/libarchive/PKGBUILD b/core/libarchive/PKGBUILD
new file mode 100644
index 000000000..00ea96ae3
--- /dev/null
+++ b/core/libarchive/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 140981 2011-10-20 13:56:51Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+pkgname=libarchive
+pkgver=2.8.5
+pkgrel=2.1
+pkgdesc="library that can create and read several streaming archive formats"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ release-2.8-fixes.patch)
+md5sums=('9caf51dcf6213e9c9f5a1c27448b9c90'
+ '14dbbf2d31d68d8eedb93ec5531f3b0c')
+sha256sums=('13993e0ffbd121ccda46ea226b1f8eac218de0fa8da7d8b1f998093d5c32a72d'
+ 'fcadc5ac3020a9fab5922d343baca28f067cc051e9b6f59e480349ba5b0a5060')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np0 < ../release-2.8-fixes.patch
+ ./configure --prefix=/usr --without-xml2
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -D -m644 COPYING "$pkgdir"/usr/share/licenses/libarchive/COPYING
+}
diff --git a/core/libarchive/release-2.8-fixes.patch b/core/libarchive/release-2.8-fixes.patch
new file mode 100644
index 000000000..c21eeaa7b
--- /dev/null
+++ b/core/libarchive/release-2.8-fixes.patch
@@ -0,0 +1,234 @@
+Index: build/cmake/config.h.in
+===================================================================
+--- build/cmake/config.h.in (revision 3670)
++++ build/cmake/config.h.in (revision 3737)
+@@ -1,5 +1,8 @@
+ /* config.h. Generated from config.h.cmake by cmake configure */
+
++/* Define ZLIB_WINAPI if zlib was built on Visual Studio. */
++#cmakedefine ZLIB_WINAPI 1
++
+ /* MD5 via ARCHIVE_HASH_MD5_LIBC supported. */
+ #cmakedefine ARCHIVE_HASH_MD5_LIBC
+
+Index: libarchive/archive_read_support_format_all.c
+===================================================================
+--- libarchive/archive_read_support_format_all.c (revision 3670)
++++ libarchive/archive_read_support_format_all.c (revision 3737)
+@@ -1,5 +1,5 @@
+ /*-
+- * Copyright (c) 2003-2007 Tim Kientzle
++ * Copyright (c) 2003-2011 Tim Kientzle
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+@@ -39,5 +39,13 @@
+ archive_read_support_format_tar(a);
+ archive_read_support_format_xar(a);
+ archive_read_support_format_zip(a);
++
++ /* Note: We always return ARCHIVE_OK here, even if some of the
++ * above return ARCHIVE_WARN. The intent here is to enable
++ * "as much as possible." Clients who need specific
++ * compression should enable those individually so they can
++ * verify the level of support. */
++ /* Clear any warning messages set by the above functions. */
++ archive_clear_error(a);
+ return (ARCHIVE_OK);
+ }
+Index: libarchive/archive_write_disk.c
+===================================================================
+--- libarchive/archive_write_disk.c (revision 3670)
++++ libarchive/archive_write_disk.c (revision 3737)
+@@ -1513,6 +1513,22 @@
+ }
+
+ #if defined(_WIN32) || defined(__CYGWIN__)
++static int
++guidword(const char *p, int n)
++{
++ int i;
++
++ for (i = 0; i < n; i++) {
++ if ((*p >= '0' && *p <= '9') ||
++ (*p >= 'a' && *p <= 'f') ||
++ (*p >= 'A' && *p <= 'F'))
++ p++;
++ else
++ return (-1);
++ }
++ return (0);
++}
++
+ /*
+ * 1. Convert a path separator from '\' to '/' .
+ * We shouldn't check multi-byte character directly because some
+@@ -1521,26 +1537,92 @@
+ * 2. Replace unusable characters in Windows with underscore('_').
+ * See also : http://msdn.microsoft.com/en-us/library/aa365247.aspx
+ */
+-static void
++static int
+ cleanup_pathname_win(struct archive_write_disk *a)
+ {
+ wchar_t wc;
+ char *p;
+ size_t alen, l;
+
+- alen = 0;
+- l = 0;
+- for (p = a->name; *p != '\0'; p++) {
+- ++alen;
+- if (*p == '\\')
+- l = 1;
++ p = a->name;
++ /* Skip leading "\\.\" or "\\?\" or "\\?\UNC\" or
++ * "\\?\Volume{GUID}\"
++ * (absolute path prefixes used by Windows API) */
++ if ((p[0] == '\\' || p[0] == '/') && (p[1] == '\\' || p[1] == '/' ) &&
++ (p[2] == '.' || p[2] == '?') && (p[3] == '\\' || p[3] == '/'))
++ {
++ /* A path begin with "\\?\UNC\" */
++ if (p[2] == '?' &&
++ (p[4] == 'U' || p[4] == 'u') &&
++ (p[5] == 'N' || p[5] == 'n') &&
++ (p[6] == 'C' || p[6] == 'c') &&
++ (p[7] == '\\' || p[7] == '/'))
++ p += 8;
++ /* A path begin with "\\?\Volume{GUID}\" */
++ else if (p[2] == '?' &&
++ (p[4] == 'V' || p[4] == 'v') &&
++ (p[5] == 'O' || p[5] == 'o') &&
++ (p[6] == 'L' || p[6] == 'l') &&
++ (p[7] == 'U' || p[7] == 'u') &&
++ (p[8] == 'M' || p[8] == 'm') &&
++ (p[9] == 'E' || p[9] == 'e') &&
++ p[10] == '{') {
++ if (guidword(p+11, 8) == 0 && p[19] == '-' &&
++ guidword(p+20, 4) == 0 && p[24] == '-' &&
++ guidword(p+25, 4) == 0 && p[29] == '-' &&
++ guidword(p+30, 4) == 0 && p[34] == '-' &&
++ guidword(p+35, 12) == 0 && p[47] == '}' &&
++ (p[48] == '\\' || p[48] == '/'))
++ p += 49;
++ else
++ p += 4;
++ /* A path begin with "\\.\PhysicalDriveX" */
++ } else if (p[2] == '.' &&
++ (p[4] == 'P' || p[4] == 'p') &&
++ (p[5] == 'H' || p[5] == 'h') &&
++ (p[6] == 'Y' || p[6] == 'y') &&
++ (p[7] == 'S' || p[7] == 's') &&
++ (p[8] == 'I' || p[8] == 'i') &&
++ (p[9] == 'C' || p[9] == 'c') &&
++ (p[9] == 'A' || p[9] == 'a') &&
++ (p[9] == 'L' || p[9] == 'l') &&
++ (p[9] == 'D' || p[9] == 'd') &&
++ (p[9] == 'R' || p[9] == 'r') &&
++ (p[9] == 'I' || p[9] == 'i') &&
++ (p[9] == 'V' || p[9] == 'v') &&
++ (p[9] == 'E' || p[9] == 'e') &&
++ (p[10] >= '0' && p[10] <= '9') &&
++ p[11] == '\0') {
++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
++ "Path is a physical drive name");
++ return (ARCHIVE_FAILED);
++ } else
++ p += 4;
++ }
++
++ /* Skip leading drive letter from archives created
++ * on Windows. */
++ if (((p[0] >= 'a' && p[0] <= 'z') ||
++ (p[0] >= 'A' && p[0] <= 'Z')) &&
++ p[1] == ':') {
++ if (p[2] == '\0') {
++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
++ "Path is a drive name");
++ return (ARCHIVE_FAILED);
++ }
++ if (p[2] == '\\' || p[2] == '/')
++ p += 3;
++ }
++
++ for (; *p != '\0'; p++) {
+ /* Rewrite the path name if its character is a unusable. */
+ if (*p == ':' || *p == '*' || *p == '?' || *p == '"' ||
+ *p == '<' || *p == '>' || *p == '|')
+ *p = '_';
+ }
+- if (alen == 0 || l == 0)
+- return;
++ alen = p - a->name;
++ if (alen == 0 || strchr(a->name, '\\') == NULL)
++ return (ARCHIVE_OK);
+ /*
+ * Convert path separator.
+ */
+@@ -1560,6 +1642,7 @@
+ p += l;
+ alen -= l;
+ }
++ return (ARCHIVE_OK);
+ }
+ #endif
+
+@@ -1583,7 +1666,8 @@
+ }
+
+ #if defined(_WIN32) || defined(__CYGWIN__)
+- cleanup_pathname_win(a);
++ if (cleanup_pathname_win(a) != ARCHIVE_OK)
++ return (ARCHIVE_FAILED);
+ #endif
+ /* Skip leading '/'. */
+ if (*src == '/')
+Index: libarchive/archive_util.c
+===================================================================
+--- libarchive/archive_util.c (revision 3670)
++++ libarchive/archive_util.c (revision 3737)
+@@ -155,6 +155,7 @@
+ {
+ archive_string_empty(&a->error_string);
+ a->error = NULL;
++ a->archive_error_number = 0;
+ }
+
+ void
+Index: libarchive/archive_read_extract.c
+===================================================================
+--- libarchive/archive_read_extract.c (revision 3670)
++++ libarchive/archive_read_extract.c (revision 3737)
+@@ -108,7 +108,7 @@
+ if (r != ARCHIVE_OK)
+ /* If _write_header failed, copy the error. */
+ archive_copy_error(&a->archive, ad);
+- else if (archive_entry_size(entry) > 0)
++ else if (!archive_entry_size_is_set(entry) || archive_entry_size(entry) > 0)
+ /* Otherwise, pour data into the entry. */
+ r = copy_data(_a, ad);
+ r2 = archive_write_finish_entry(ad);
+Index: CMakeLists.txt
+===================================================================
+--- CMakeLists.txt (revision 3670)
++++ CMakeLists.txt (revision 3737)
+@@ -154,6 +154,13 @@
+ SET(HAVE_ZLIB_H 1)
+ INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
+ LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES})
++ IF(WIN32 AND NOT CYGWIN)
++ SET(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
++ SET(CMAKE_REQUIRED_LIBRARIES ${ZLIB_LIBRARIES})
++ CHECK_C_SOURCE_Runs(
++ "#ifndef ZLIB_WINAPI\n#define ZLIB_WINAPI\n#endif\n#include <zlib.h>\nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }"
++ ZLIB_WINAPI)
++ ENDIF(WIN32 AND NOT CYGWIN)
+ ENDIF(ZLIB_FOUND)
+ MARK_AS_ADVANCED(CLEAR ZLIB_INCLUDE_DIR)
+ MARK_AS_ADVANCED(CLEAR ZLIB_LIBRARY)
+
+Property changes on: .
+___________________________________________________________________
+Modified: svn:mergeinfo
+ Merged /trunk:r1989,3247,3722
+
diff --git a/core/libcap/PKGBUILD b/core/libcap/PKGBUILD
new file mode 100644
index 000000000..6fc8cb8eb
--- /dev/null
+++ b/core/libcap/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 142211 2011-11-06 08:56:56Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=libcap
+pkgver=2.22
+pkgrel=2.1
+pkgdesc="POSIX 1003.1e capabilities"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sites.google.com/site/fullycapable/"
+license=('GPL2')
+depends=('glibc' 'attr')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${pkgname}-${pkgver}.tar.gz{,.asc})
+md5sums=('b4896816b626bea445f0b3849bdd4077'
+ '9d0983e25e5a251d098507f9561d2b27')
+
+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..59b8c9433
--- /dev/null
+++ b/core/libedit/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 135574 2011-08-15 23:39:35Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Roman Cheplyaka <roma@ro-che.info>
+
+pkgname=libedit
+pkgver=20110802_3.0
+pkgrel=1
+pkgdesc='Command line editor library providing generic line editing, history, and tokenization functions'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.thrysoee.dk/editline/'
+license=('BSD')
+depends=('ncurses')
+options=('!libtool')
+source=("http://www.thrysoee.dk/editline/libedit-${pkgver/_/-}.tar.gz")
+sha1sums=('b06e3cf248a4235617c71454e15ca3a54a61d467')
+
+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..6bad9b288
--- /dev/null
+++ b/core/libevent/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143770 2011-11-29 02:05:28Z eric $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=libevent
+pkgver=2.0.16
+pkgrel=1
+pkgdesc="An event notification library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.monkey.org/~provos/libevent/"
+license=('GPL2')
+depends=('openssl')
+optdepends=('python2: to use event_rpcgen.py')
+options=('!libtool')
+source=(https://github.com/downloads/libevent/libevent/libevent-$pkgver-stable.tar.gz{,.asc})
+sha1sums=('9eb9fe3c0ec607525ed2dee6827687efcd0696ac'
+ '679023511db0106cb84a36e4ff78604d00d0a611')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ sed -i 's#python#python2#' event_rpcgen.py
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ make check
+}
+
+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..34f3b1d99
--- /dev/null
+++ b/core/libfetch/Makefile
@@ -0,0 +1,68 @@
+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
+
+CFLAGS += -fPIC $(WARNINGS)
+CFLAGS += -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
+LDADD += -Wl,-lssl -Wl,-lcrypto
+endif
+
+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
+
+all: libfetch.so libfetch.a
+.PHONY: all
+
+%.o: %.c $(INCS) $(GEN)
+ $(CC) $(CFLAGS) -c $<
+
+ftperr.h: ftp.errors Makefile errlist.sh
+ ./errlist.sh ftp_errlist FTP ftp.errors > $@
+
+httperr.h: http.errors Makefile errlist.sh
+ ./errlist.sh http_errlist HTTP http.errors > $@
+
+libfetch.so: $(GEN) $(INCS) $(OBJS)
+ rm -f $@
+ $(CC) $(LDFLAGS) $(OBJS) $(LDADD) -shared -fPIC -o $@
+
+libfetch.a: $(GEN) $(INCS) $(OBJS)
+ rm -f $@
+ $(AR) rcs $@ $(OBJS)
+
+clean:
+ rm -f libfetch.so libfetch.a *.o $(GEN)
+.PHONY: clean
+
+install: all
+ $(INSTALL) -m 755 libfetch.so $(DESTDIR)$(prefix)/lib/libfetch.so
+ $(INSTALL) -m 644 libfetch.a $(DESTDIR)$(prefix)/lib/libfetch.a
+ $(INSTALL) -m 644 fetch.h $(DESTDIR)$(prefix)/include/fetch.h
+ $(INSTALL) -m 644 fetch.3 $(DESTDIR)$(prefix)/share/man/man3/fetch.3
+.PHONY: install
+
+uninstall:
+ rm -f $(DESTDIR)$(prefix)/lib/libfetch.so
+ rm -f $(DESTDIR)$(prefix)/lib/libfetch.a
+ rm -f $(DESTDIR)$(prefix)/include/fetch.h
+ 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..7ad51c2b5
--- /dev/null
+++ b/core/libfetch/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id:$
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Xavier Chantry <shiningxc@gmail.com>
+
+pkgname=libfetch
+pkgver=2.33
+pkgrel=3
+pkgdesc="URL based download library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ fetch-handle-temp-redirect.patch)
+md5sums=('7dffdd5a81bb32084a2f45e61f70dcf9'
+ 'a176b94f7f30344ef8a71c047ca2136b'
+ '2ee40d7e7d76c39ae5500d89075ef8a6')
+
+# 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/libfetch/fetch-handle-temp-redirect.patch b/core/libfetch/fetch-handle-temp-redirect.patch
new file mode 100644
index 000000000..351cbcfd8
--- /dev/null
+++ b/core/libfetch/fetch-handle-temp-redirect.patch
@@ -0,0 +1,15 @@
+Index: http.c
+===================================================================
+RCS file: /cvsroot/pkgsrc/net/libfetch/files/http.c,v
+retrieving revision 1.29
+diff -u -r1.29 http.c
+--- http.c 24 Jan 2010 19:10:35 -0000 1.29
++++ http.c 19 Apr 2011 13:29:04 -0000
+@@ -974,6 +974,7 @@
+ case HTTP_MOVED_PERM:
+ case HTTP_MOVED_TEMP:
+ case HTTP_SEE_OTHER:
++ case HTTP_TEMP_REDIRECT:
+ /*
+ * Not so fine, but we still have to read the
+ * headers to get the new location.
diff --git a/core/libffi/PKGBUILD b/core/libffi/PKGBUILD
new file mode 100644
index 000000000..d0d021b2c
--- /dev/null
+++ b/core/libffi/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 139471 2011-10-02 01:24:24Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libffi
+pkgver=3.0.10
+pkgrel=1
+pkgdesc="A portable, high level programming interface to various calling conventions"
+arch=('i686' 'x86_64')
+url="http://sourceware.org/libffi"
+license=('MIT')
+depends=('glibc')
+options=('!libtool')
+install=libffi.install
+source=(ftp://sourceware.org/pub/libffi/libffi-${pkgver}.tar.gz)
+md5sums=('79390673f5d07a8fb342bc09b5055b6f')
+
+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/${pkgname}/LICENSE"
+}
diff --git a/core/libffi/libffi.install b/core/libffi/libffi.install
new file mode 100644
index 000000000..903bede10
--- /dev/null
+++ b/core/libffi/libffi.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libffi.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/libgcrypt/PKGBUILD b/core/libgcrypt/PKGBUILD
new file mode 100644
index 000000000..ec4077548
--- /dev/null
+++ b/core/libgcrypt/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 130865 2011-07-08 14:06:03Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libgcrypt
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="a general purpose crypto library based on the code used"
+arch=(i686 x86_64 'mips64el')
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('libgpg-error>=1.9')
+options=('!libtool' '!emptydirs')
+install=$pkgname.install
+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
+)
+sha1sums=('3e776d44375dc1a710560b98ae8437d5da6e32cf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ [ "$CARCH" = "i686" ] && EXTRAFLAGS="--disable-aesni-support"
+ ./configure --prefix=/usr \
+ --disable-static \
+ --disable-padlock-support $EXTRAFLAGS
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make -k 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/core/libgcrypt/libgcrypt.install b/core/libgcrypt/libgcrypt.install
new file mode 100644
index 000000000..79b878201
--- /dev/null
+++ b/core/libgcrypt/libgcrypt.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gcrypt.info.gz gcrypt.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/core/libgpg-error/PKGBUILD b/core/libgpg-error/PKGBUILD
new file mode 100644
index 000000000..d24c58623
--- /dev/null
+++ b/core/libgpg-error/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 132298 2011-07-22 15:47:59Z andyrtr $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+pkgname=libgpg-error
+pkgver=1.10
+pkgrel=1
+pkgdesc="Support library for libgcrypt"
+arch=(i686 x86_64 'mips64el')
+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=('736a03daa9dc5873047d4eb4a9c22a16')
+
+
+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/core/libgssglue/PKGBUILD b/core/libgssglue/PKGBUILD
new file mode 100644
index 000000000..3d7678a0c
--- /dev/null
+++ b/core/libgssglue/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 133594 2011-07-29 21:01:43Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libgssglue
+pkgver=0.3
+pkgrel=1
+pkgdesc="Exports a gssapi interface which calls other random gssapi libraries"
+arch=('i686' 'x86_64' 'mips64el')
+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=('48aaad11b7371ba3270faa322202c038'
+ '080be866717e4e06fa6f7d6f43cb395a')
+
+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..9a832ee1b
--- /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/libmpc/PKGBUILD b/core/libmpc/PKGBUILD
new file mode 100644
index 000000000..df2984082
--- /dev/null
+++ b/core/libmpc/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 135910 2011-08-20 07:14:03Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=libmpc
+pkgver=0.9
+pkgrel=2
+pkgdesc="Library for the arithmetic of complex numbers with arbitrarily high precision"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+check() {
+ cd "${srcdir}/mpc-${pkgver}"
+ 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..29edac2e7
--- /dev/null
+++ b/core/libnl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137795 2011-09-11 08:35:21Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libnl
+pkgver=1.1
+pkgrel=3
+pkgdesc="Library for applications dealing with netlink sockets"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.infradead.org/~tgr/libnl/"
+license=('GPL')
+depends=('glibc')
+source=("http://www.infradead.org/~tgr/libnl/files/${pkgname}-${pkgver}.tar.gz"
+ 'fix-compilation.patch')
+md5sums=('ae970ccd9144e132b68664f98e7ceeb1'
+ 'e1f5e82c8aa1b3ad025c7b588178de1e')
+
+build() {
+ cd ${srcdir}/libnl-${pkgver}
+ patch -Np1 -i ${srcdir}/fix-compilation.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/libnl-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
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/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch b/core/libpcap/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
new file mode 100644
index 000000000..1fce472b7
--- /dev/null
+++ b/core/libpcap/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
@@ -0,0 +1,344 @@
+From bc937fc4ff6715e9bee939041fa02be0755d7d58 Mon Sep 17 00:00:00 2001
+From: Guy Harris <guy@alum.mit.edu>
+Date: Sat, 13 Nov 2010 17:42:47 -0800
+Subject: [PATCH] Add support for libnl 2.x, adapted from a newer version of the iw command.
+
+---
+ config.h.in | 3 ++
+ configure | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ configure.in | 40 ++++++++++++++++++----
+ pcap-linux.c | 58 ++++++++++++++++++++++++-------
+ 4 files changed, 184 insertions(+), 25 deletions(-)
+
+diff --git a/config.h.in b/config.h.in
+index f988e8f..3b9ce3c 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -52,6 +52,9 @@
+ /* if libnl exists */
+ #undef HAVE_LIBNL
+
++/* if libnl exists and is version 2.x */
++#undef HAVE_LIBNL_2_x
++
+ /* Define to 1 if you have the <limits.h> header file. */
+ #undef HAVE_LIMITS_H
+
+diff --git a/configure b/configure
+index c99c1ab..7338dee 100755
+--- a/configure
++++ b/configure
+@@ -7340,7 +7340,93 @@ fi
+
+
+ if test x$with_libnl != xno ; then
+- { echo "$as_me:$LINENO: checking for nl_handle_alloc in -lnl" >&5
++ #
++ # Try libnl 2.x first.
++ #
++ { echo "$as_me:$LINENO: checking for nl_socket_alloc in -lnl" >&5
++echo $ECHO_N "checking for nl_socket_alloc in -lnl... $ECHO_C" >&6; }
++if test "${ac_cv_lib_nl_nl_socket_alloc+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lnl $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++/* Override any GCC internal prototype to avoid an error.
++ Use char because int might match the return type of a GCC
++ builtin and then its argument prototype would still apply. */
++#ifdef __cplusplus
++extern "C"
++#endif
++char nl_socket_alloc ();
++int
++main ()
++{
++return nl_socket_alloc ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++ (eval "$ac_link") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext &&
++ $as_test_x conftest$ac_exeext; then
++ ac_cv_lib_nl_nl_socket_alloc=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_cv_lib_nl_nl_socket_alloc=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++{ echo "$as_me:$LINENO: result: $ac_cv_lib_nl_nl_socket_alloc" >&5
++echo "${ECHO_T}$ac_cv_lib_nl_nl_socket_alloc" >&6; }
++if test $ac_cv_lib_nl_nl_socket_alloc = yes; then
++
++ #
++ # Yes, we have libnl 2.x.
++ #
++ LIBS="-lnl-genl -lnl $LIBS"
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LIBNL 1
++_ACEOF
++
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LIBNL_2_x 1
++_ACEOF
++
++
++else
++
++ #
++ # No, we don't; do we have libnl 1.x?
++ #
++ { echo "$as_me:$LINENO: checking for nl_handle_alloc in -lnl" >&5
+ echo $ECHO_N "checking for nl_handle_alloc in -lnl... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_nl_nl_handle_alloc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7402,18 +7488,30 @@ fi
+ { echo "$as_me:$LINENO: result: $ac_cv_lib_nl_nl_handle_alloc" >&5
+ echo "${ECHO_T}$ac_cv_lib_nl_nl_handle_alloc" >&6; }
+ if test $ac_cv_lib_nl_nl_handle_alloc = yes; then
+- LIBS="-lnl $LIBS"
++
++ #
++ # Yes.
++ #
++ LIBS="-lnl $LIBS"
+
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_LIBNL 1
+ _ACEOF
+
++
+ else
+- if test x$with_libnl = xyes ; then
+- { { echo "$as_me:$LINENO: error: libnl support requested but libnl not found" >&5
++
++ #
++ # No, we don't have libnl at all.
++ #
++ if test x$with_libnl = xyes ; then
++ { { echo "$as_me:$LINENO: error: libnl support requested but libnl not found" >&5
+ echo "$as_me: error: libnl support requested but libnl not found" >&2;}
+ { (exit 1); exit 1; }; }
+- fi
++ fi
++
++fi
++
+
+ fi
+
+diff --git a/configure.in b/configure.in
+index 16eadf9..ef801ed 100644
+--- a/configure.in
++++ b/configure.in
+@@ -445,13 +445,39 @@ linux)
+ with_libnl=$withval,,)
+
+ if test x$with_libnl != xno ; then
+- AC_CHECK_LIB(nl, nl_handle_alloc,
+- LIBS="-lnl $LIBS"
+- AC_DEFINE(HAVE_LIBNL,1,[if libnl exists]),
+- if test x$with_libnl = xyes ; then
+- AC_MSG_ERROR([libnl support requested but libnl not found])
+- fi
+- )
++ #
++ # Try libnl 2.x first.
++ #
++ AC_CHECK_LIB(nl, nl_socket_alloc,
++ [
++ #
++ # Yes, we have libnl 2.x.
++ #
++ LIBS="-lnl-genl -lnl $LIBS"
++ AC_DEFINE(HAVE_LIBNL,1,[if libnl exists])
++ AC_DEFINE(HAVE_LIBNL_2_x,1,[if libnl exists and is version 2.x])
++ ],
++ [
++ #
++ # No, we don't; do we have libnl 1.x?
++ #
++ AC_CHECK_LIB(nl, nl_handle_alloc,
++ [
++ #
++ # Yes.
++ #
++ LIBS="-lnl $LIBS"
++ AC_DEFINE(HAVE_LIBNL,1,[if libnl exists])
++ ],
++ [
++ #
++ # No, we don't have libnl at all.
++ #
++ if test x$with_libnl = xyes ; then
++ AC_MSG_ERROR([libnl support requested but libnl not found])
++ fi
++ ])
++ ])
+ fi
+
+ AC_LBL_TPACKET_STATS
+diff --git a/pcap-linux.c b/pcap-linux.c
+index f8b3f10..deabbc4 100644
+--- a/pcap-linux.c
++++ b/pcap-linux.c
+@@ -527,8 +527,37 @@ get_mac80211_phydev(pcap_t *handle, const char *device, char *phydev_path,
+ return 1;
+ }
+
++#ifndef HAVE_LIBNL_2_x
++/* libnl 2.x compatibility code */
++
++#define nl_sock nl_handle
++
++static inline struct nl_handle *
++nl_socket_alloc(void)
++{
++ return nl_handle_alloc();
++}
++
++static inline void
++nl_socket_free(struct nl_handle *h)
++{
++ nl_handle_destroy(h);
++}
++
++static inline int
++__genl_ctrl_alloc_cache(struct nl_handle *h, struct nl_cache **cache)
++{
++ struct nl_cache *tmp = genl_ctrl_alloc_cache(h);
++ if (!tmp)
++ return -ENOMEM;
++ *cache = tmp;
++ return 0;
++}
++#define genl_ctrl_alloc_cache __genl_ctrl_alloc_cache
++#endif /* !HAVE_LIBNL_2_x */
++
+ struct nl80211_state {
+- struct nl_handle *nl_handle;
++ struct nl_sock *nl_sock;
+ struct nl_cache *nl_cache;
+ struct genl_family *nl80211;
+ };
+@@ -536,23 +565,26 @@ struct nl80211_state {
+ static int
+ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device)
+ {
+- state->nl_handle = nl_handle_alloc();
+- if (!state->nl_handle) {
++ int err;
++
++ state->nl_sock = nl_socket_alloc();
++ if (!state->nl_sock) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: failed to allocate netlink handle", device);
+ return PCAP_ERROR;
+ }
+
+- if (genl_connect(state->nl_handle)) {
++ if (genl_connect(state->nl_sock)) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: failed to connect to generic netlink", device);
+ goto out_handle_destroy;
+ }
+
+- state->nl_cache = genl_ctrl_alloc_cache(state->nl_handle);
+- if (!state->nl_cache) {
++ err = genl_ctrl_alloc_cache(state->nl_sock, &state->nl_cache);
++ if (err < 0) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+- "%s: failed to allocate generic netlink cache", device);
++ "%s: failed to allocate generic netlink cache: %s",
++ device, strerror(-err));
+ goto out_handle_destroy;
+ }
+
+@@ -568,7 +600,7 @@ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device)
+ out_cache_free:
+ nl_cache_free(state->nl_cache);
+ out_handle_destroy:
+- nl_handle_destroy(state->nl_handle);
++ nl_socket_free(state->nl_sock);
+ return PCAP_ERROR;
+ }
+
+@@ -577,7 +609,7 @@ nl80211_cleanup(struct nl80211_state *state)
+ {
+ genl_family_put(state->nl80211);
+ nl_cache_free(state->nl_cache);
+- nl_handle_destroy(state->nl_handle);
++ nl_socket_free(state->nl_sock);
+ }
+
+ static int
+@@ -605,7 +637,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ NLA_PUT_STRING(msg, NL80211_ATTR_IFNAME, mondevice);
+ NLA_PUT_U32(msg, NL80211_ATTR_IFTYPE, NL80211_IFTYPE_MONITOR);
+
+- err = nl_send_auto_complete(state->nl_handle, msg);
++ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+@@ -626,7 +658,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ return PCAP_ERROR;
+ }
+ }
+- err = nl_wait_for_ack(state->nl_handle);
++ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+@@ -685,7 +717,7 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ 0, NL80211_CMD_DEL_INTERFACE, 0);
+ NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, ifindex);
+
+- err = nl_send_auto_complete(state->nl_handle, msg);
++ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+@@ -706,7 +738,7 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ return PCAP_ERROR;
+ }
+ }
+- err = nl_wait_for_ack(state->nl_handle);
++ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+--
+1.7.3.5
+
diff --git a/core/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch b/core/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch
new file mode 100644
index 000000000..219494200
--- /dev/null
+++ b/core/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch
@@ -0,0 +1,159 @@
+From 9545ff8e2670db02652f9cf781aafdd6bac58ac4 Mon Sep 17 00:00:00 2001
+From: Guy Harris <guy@alum.mit.edu>
+Date: Sun, 14 Nov 2010 13:48:19 -0800
+Subject: [PATCH] Libnl 2.x returns its own error codes, not errnos; handle that.
+
+While we're at it, don't special-case ENFILE for "delete monitor device"
+operations; that's not like "add monitor device", where we want to drive
+on if a device with that name already exists.
+---
+ pcap-linux.c | 76 ++++++++++++++++++++++++++--------------------------------
+ 1 files changed, 34 insertions(+), 42 deletions(-)
+
+diff --git a/pcap-linux.c b/pcap-linux.c
+index deabbc4..5d291e9 100644
+--- a/pcap-linux.c
++++ b/pcap-linux.c
+@@ -527,7 +527,9 @@ get_mac80211_phydev(pcap_t *handle, const char *device, char *phydev_path,
+ return 1;
+ }
+
+-#ifndef HAVE_LIBNL_2_x
++#ifdef HAVE_LIBNL_2_x
++#define get_nl_errmsg nl_geterror
++#else
+ /* libnl 2.x compatibility code */
+
+ #define nl_sock nl_handle
+@@ -544,6 +546,8 @@ nl_socket_free(struct nl_handle *h)
+ nl_handle_destroy(h);
+ }
+
++#define get_nl_errmsg strerror
++
+ static inline int
+ __genl_ctrl_alloc_cache(struct nl_handle *h, struct nl_cache **cache)
+ {
+@@ -584,7 +588,7 @@ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device)
+ if (err < 0) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: failed to allocate generic netlink cache: %s",
+- device, strerror(-err));
++ device, get_nl_errmsg(-err));
+ goto out_handle_destroy;
+ }
+
+@@ -639,10 +643,17 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+
+ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
++#ifdef HAVE_LIBNL_2_x
++ if (err == -NLE_FAILURE) {
++#else
+ if (err == -ENFILE) {
++#endif
+ /*
+ * Device not available; our caller should just
+- * keep trying.
++ * keep trying. (libnl 2.x maps ENFILE to
++ * NLE_FAILURE; it can also map other errors
++ * to that, but there's not much we can do
++ * about that.)
+ */
+ nlmsg_free(msg);
+ return 0;
+@@ -653,17 +664,24 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ */
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: nl_send_auto_complete failed adding %s interface: %s",
+- device, mondevice, strerror(-err));
++ device, mondevice, get_nl_errmsg(-err));
+ nlmsg_free(msg);
+ return PCAP_ERROR;
+ }
+ }
+ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
++#ifdef HAVE_LIBNL_2_x
++ if (err == -NLE_FAILURE) {
++#else
+ if (err == -ENFILE) {
++#endif
+ /*
+ * Device not available; our caller should just
+- * keep trying.
++ * keep trying. (libnl 2.x maps ENFILE to
++ * NLE_FAILURE; it can also map other errors
++ * to that, but there's not much we can do
++ * about that.)
+ */
+ nlmsg_free(msg);
+ return 0;
+@@ -674,7 +692,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ */
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: nl_wait_for_ack failed adding %s interface: %s",
+- device, mondevice, strerror(-err));
++ device, mondevice, get_nl_errmsg(-err));
+ nlmsg_free(msg);
+ return PCAP_ERROR;
+ }
+@@ -719,45 +737,19 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+
+ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
+- if (err == -ENFILE) {
+- /*
+- * Device not available; our caller should just
+- * keep trying.
+- */
+- nlmsg_free(msg);
+- return 0;
+- } else {
+- /*
+- * Real failure, not just "that device is not
+- * available.
+- */
+- snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+- "%s: nl_send_auto_complete failed deleting %s interface: %s",
+- device, mondevice, strerror(-err));
+- nlmsg_free(msg);
+- return PCAP_ERROR;
+- }
++ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
++ "%s: nl_send_auto_complete failed deleting %s interface: %s",
++ device, mondevice, get_nl_errmsg(-err));
++ nlmsg_free(msg);
++ return PCAP_ERROR;
+ }
+ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
+- if (err == -ENFILE) {
+- /*
+- * Device not available; our caller should just
+- * keep trying.
+- */
+- nlmsg_free(msg);
+- return 0;
+- } else {
+- /*
+- * Real failure, not just "that device is not
+- * available.
+- */
+- snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+- "%s: nl_wait_for_ack failed adding %s interface: %s",
+- device, mondevice, strerror(-err));
+- nlmsg_free(msg);
+- return PCAP_ERROR;
+- }
++ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
++ "%s: nl_wait_for_ack failed adding %s interface: %s",
++ device, mondevice, get_nl_errmsg(-err));
++ nlmsg_free(msg);
++ return PCAP_ERROR;
+ }
+
+ /*
+--
+1.7.3.5
+
diff --git a/core/libpcap/PKGBUILD b/core/libpcap/PKGBUILD
new file mode 100644
index 000000000..f4489153a
--- /dev/null
+++ b/core/libpcap/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 142215 2011-11-06 10:21:27Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=libpcap
+pkgver=1.1.1
+pkgrel=4
+pkgdesc="A system-independent interface for user-level packet capture"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.tcpdump.org/"
+license=('BSD')
+depends=('glibc' 'libnl' 'sh')
+makedepends=('flex')
+source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz)
+ #Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
+ #Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch)
+sha256sums=('508cca15547e55d1318498b838456a21770c450beb2dc7d7d4a96d90816e5a85')
+ #'194aa268a3397be3ba406b7102dbdbc14fc16c6e4b535d0a0fab6b04d414563a'
+ #'f1f31c3e2b064f4c9d0e643e8ed1874a65ec17f770362f8ffa3b3f9ee9dc71bb')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ #patch -p1 -i "${srcdir}"/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
+ #patch -p1 -i "${srcdir}"/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch
+ ./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/libpipeline/PKGBUILD b/core/libpipeline/PKGBUILD
new file mode 100644
index 000000000..513901bbc
--- /dev/null
+++ b/core/libpipeline/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142205 2011-11-06 08:47:46Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libpipeline
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="a C library for manipulating pipelines of subprocesses in a flexible and convenient way"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libpipeline.nongnu.org/"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://download.savannah.gnu.org/releases/libpipeline/$pkgname-$pkgver.tar.gz)
+md5sums=('dd3a987a0d2b594716baee2f73d61ae3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/core/librpcsecgss/PKGBUILD b/core/librpcsecgss/PKGBUILD
new file mode 100644
index 000000000..6e571f9ee
--- /dev/null
+++ b/core/librpcsecgss/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142792 2011-11-15 09:00:03Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andrew Krawchyk <krawch_a@denison.edu>, Marco Lima <cipparello gmail com>
+
+pkgname=librpcsecgss
+pkgver=0.19
+pkgrel=7
+pkgdesc="Library for RPCSECGSS support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.citi.umich.edu/projects/nfsv4/linux/"
+license=('GPL')
+depends=('glibc' 'krb5' 'libgssglue')
+makedepends=('pkg-config' 'autoconf')
+options=('!libtool')
+source=("http://www.citi.umich.edu/projects/nfsv4/linux/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b45ed565bdc3099023aa35830ec92997')
+
+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
+}
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/0003_saslauthd_mdoc.patch b/core/libsasl/0003_saslauthd_mdoc.patch
new file mode 100644
index 000000000..694f4bb67
--- /dev/null
+++ b/core/libsasl/0003_saslauthd_mdoc.patch
@@ -0,0 +1,35 @@
+0003_saslauthd_mdoc.dpatch by <fabbe@debian.org>
+
+Use the correct path for the saslauthd.conf file, and use another
+date format (cosmetic).
+
+diff -urNad trunk~/saslauthd/saslauthd.mdoc trunk/saslauthd/saslauthd.mdoc
+--- trunk~/saslauthd/saslauthd.mdoc 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/saslauthd.mdoc 2006-07-12 15:05:25.000000000 +0300
+@@ -10,7 +10,7 @@
+ .\" manpage in saslauthd.8 whenever you change this source
+ .\" version. Only the pre-formatted manpage is installed.
+ .\"
+-.Dd 10 24 2002
++.Dd October 24 2002
+ .Dt SASLAUTHD 8
+ .Os "CMU-SASL"
+ .Sh NAME
+@@ -216,7 +216,7 @@
+ .Em (All platforms that support OpenLDAP 2.0 or higher)
+ .Pp
+ Authenticate against an ldap server. The ldap configuration parameters are
+-read from /usr/local/etc/saslauthd.conf. The location of this file can be
++read from /etc/saslauthd.conf. The location of this file can be
+ changed with the -O parameter. See the LDAP_SASLAUTHD file included with the
+ distribution for the list of available parameters.
+ .It Li sia
+@@ -249,7 +249,7 @@
+ .Bl -tag -width "/var/run/saslauthd/mux"
+ .It Pa /var/run/saslauthd/mux
+ The default communications socket.
+-.It Pa /usr/local/etc/saslauthd.conf
++.It Pa /etc/saslauthd.conf
+ The default configuration file for ldap support.
+ .El
+ .Sh SEE ALSO
diff --git a/core/libsasl/0010_maintainer_mode.patch b/core/libsasl/0010_maintainer_mode.patch
new file mode 100644
index 000000000..cf3d02a08
--- /dev/null
+++ b/core/libsasl/0010_maintainer_mode.patch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 0010_maintainer_mode.dpatch by <fabbe@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Enable maintainer mode to avoid auto* problems.
+
+@DPATCH@
+diff -urNad trunk~/configure.in trunk/configure.in
+--- trunk~/configure.in 2006-05-29 22:52:46.000000000 +0300
++++ trunk/configure.in 2006-11-01 23:24:55.000000000 +0200
+@@ -62,6 +62,8 @@
+ AM_INIT_AUTOMAKE(cyrus-sasl, 2.1.22)
+ CMU_INIT_AUTOMAKE
+
++AM_MAINTAINER_MODE
++
+ # and include our config dir scripts
+ ACLOCAL="$ACLOCAL -I \$(top_srcdir)/config"
+
diff --git a/core/libsasl/0011_saslauthd_ac_prog_libtool.patch b/core/libsasl/0011_saslauthd_ac_prog_libtool.patch
new file mode 100644
index 000000000..3805b4857
--- /dev/null
+++ b/core/libsasl/0011_saslauthd_ac_prog_libtool.patch
@@ -0,0 +1,15 @@
+0011_saslauthd_ac_prog_libtool.dpatch by <fabbe@debian.org>
+
+Enable libtool use.
+
+diff -urNad trunk~/saslauthd/configure.in trunk/saslauthd/configure.in
+--- trunk~/saslauthd/configure.in 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/configure.in 2006-11-01 23:41:51.000000000 +0200
+@@ -25,6 +25,7 @@
+ AC_PROG_MAKE_SET
+ AC_PROG_LN_S
+ AC_PROG_INSTALL
++AC_PROG_LIBTOOL
+
+ dnl Checks for build foo
+ CMU_C___ATTRIBUTE__
diff --git a/core/libsasl/0012_xopen_crypt_prototype.patch b/core/libsasl/0012_xopen_crypt_prototype.patch
new file mode 100644
index 000000000..d50ec8343
--- /dev/null
+++ b/core/libsasl/0012_xopen_crypt_prototype.patch
@@ -0,0 +1,20 @@
+0012_xopen_crypt_prototype.dpatch by <dannf@debian.org>
+
+When _XOPEN_SOURCE is defined, the subsequent #include <unistd.h>
+will define a correct function prototype for the crypt function.
+This avoids segfaults on architectures where the size of a pointer
+is greater than the size of an integer (ia64 and amd64 are examples).
+This may be detected by looking for build log lines such as the
+following:
+auth_shadow.c:183: warning: implicit declaration of function ‘crypt’
+auth_shadow.c:183: warning: cast to pointer from integer of different
+size
+
+diff -urNad trunk~/saslauthd/auth_shadow.c trunk/saslauthd/auth_shadow.c
+--- trunk~/saslauthd/auth_shadow.c 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/auth_shadow.c 2006-11-08 13:44:23.000000000 +0200
+@@ -1,3 +1,4 @@
++#define _XOPEN_SOURCE
+ #define PWBUFSZ 256 /***SWB***/
+
+ /* MODULE: auth_shadow */
diff --git a/core/libsasl/0016_pid_file_lock_creation_mask.patch b/core/libsasl/0016_pid_file_lock_creation_mask.patch
new file mode 100644
index 000000000..e9170cef3
--- /dev/null
+++ b/core/libsasl/0016_pid_file_lock_creation_mask.patch
@@ -0,0 +1,27 @@
+0016_pid_file_lock_creation_mask.dpatch by Sam Hocevar <sam@zoy.org>
+
+pid_file_lock is created with a mask of 644 instead of 0644.
+This patch fixes this octal/decimal confusion as well as the
+(harmless) one in the previous umask() call.
+
+diff -urNad trunk~/saslauthd/saslauthd-main.c trunk/saslauthd/saslauthd-main.c
+--- trunk~/saslauthd/saslauthd-main.c 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/saslauthd-main.c 2007-06-26 12:07:10.000000000 +0300
+@@ -276,7 +276,7 @@
+ exit(1);
+ }
+
+- umask(077);
++ umask(0077);
+
+ pid_file_size = strlen(run_path) + sizeof(PID_FILE_LOCK) + 1;
+ if ((pid_file_lock = malloc(pid_file_size)) == NULL) {
+@@ -287,7 +287,7 @@
+ strlcpy(pid_file_lock, run_path, pid_file_size);
+ strlcat(pid_file_lock, PID_FILE_LOCK, pid_file_size);
+
+- if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 644)) < 0) {
++ if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 0644)) < 0) {
+ rc = errno;
+ logger(L_ERR, L_FUNC, "could not open pid lock file: %s", pid_file_lock);
+ logger(L_ERR, L_FUNC, "open: %s", strerror(rc));
diff --git a/core/libsasl/0018_auth_rimap_quotes.patch b/core/libsasl/0018_auth_rimap_quotes.patch
new file mode 100644
index 000000000..13fa999f0
--- /dev/null
+++ b/core/libsasl/0018_auth_rimap_quotes.patch
@@ -0,0 +1,35 @@
+0016_auth_rimap_quotes.dpatch by <fabbe@debian.org>
+
+All lines beginning with `## DP:' are a description of the patch.
+Avoid infinite loop when username/password has a double quote character.
+Upstream change: https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/sasl/saslauthd/auth_rimap.c.diff?r1=1.12;r2=1.13
+
+diff -urNad etch~/saslauthd/auth_rimap.c etch/saslauthd/auth_rimap.c
+--- etch~/saslauthd/auth_rimap.c 2007-03-29 15:16:20.000000000 +0300
++++ etch/saslauthd/auth_rimap.c 2008-02-13 13:42:53.000000000 +0200
+@@ -162,6 +162,7 @@
+ num_quotes = 0;
+ p1 = s;
+ while ((p1 = strchr(p1, '"')) != NULL) {
++ p1++;
+ num_quotes++;
+ }
+
+@@ -438,7 +439,7 @@
+ syslog(LOG_WARNING, "auth_rimap: writev: %m");
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+ (void)close(s);
+ return strdup(RESP_IERROR);
+@@ -447,7 +448,7 @@
+ /* don't need these any longer */
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+
+ /* read and parse the LOGIN response */
diff --git a/core/libsasl/0019_ldap_deprecated.patch b/core/libsasl/0019_ldap_deprecated.patch
new file mode 100644
index 000000000..8825256cb
--- /dev/null
+++ b/core/libsasl/0019_ldap_deprecated.patch
@@ -0,0 +1,22 @@
+0019_ldap_deprecated.dpatch by dann frazier <dannf@debian.org>
+
+The function ldap_get_values, used in saslauthd/lak.c, is deprecated.
+Therefore, its prototype is not included by default when compiling
+against the ldap.h headers. As a result, the compiler cannot know the
+return type of the function at compile time, and will implicitly
+convert to a pointer. This has implications on 64-bit systems.
+This patch sets the deprecation mode on, so that the function prototype
+gets included when compiling.
+(Description by Fabian Fagerholm <fabbe@debian.org>)
+
+diff -urNad trunk~/saslauthd/lak.c trunk/saslauthd/lak.c
+--- trunk~/saslauthd/lak.c 2006-06-04 12:26:20.000000000 +0300
++++ trunk/saslauthd/lak.c 2008-02-15 14:32:11.000000000 +0200
+@@ -55,6 +55,7 @@
+ #include <openssl/des.h>
+ #endif
+
++#define LDAP_DEPRECATED 1
+ #include <ldap.h>
+ #include <lber.h>
+ #include <sasl.h>
diff --git a/core/libsasl/0022_gcc4.4_preprocessor_syntax.patch b/core/libsasl/0022_gcc4.4_preprocessor_syntax.patch
new file mode 100644
index 000000000..a49b553f0
--- /dev/null
+++ b/core/libsasl/0022_gcc4.4_preprocessor_syntax.patch
@@ -0,0 +1,26 @@
+0022_gcc4.4_preprocessor_syntax.dpatch by <fabbe@paniq.net>
+
+The #elif preprocessor directive requires a test condition.
+GCC 4.4 enforces this rule.
+
+diff -urNad trunk~/plugins/digestmd5.c trunk/plugins/digestmd5.c
+--- trunk~/plugins/digestmd5.c 2006-06-04 12:26:19.000000000 +0300
++++ trunk/plugins/digestmd5.c 2009-01-26 13:29:40.000000000 +0200
+@@ -2715,7 +2715,7 @@
+ "DIGEST-MD5", /* mech_name */
+ #ifdef WITH_RC4
+ 128, /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
+@@ -4034,7 +4034,7 @@
+ "DIGEST-MD5",
+ #ifdef WITH_RC4 /* mech_name */
+ 128, /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
diff --git a/core/libsasl/0025_ld_as_needed.patch b/core/libsasl/0025_ld_as_needed.patch
new file mode 100644
index 000000000..67b48b4a4
--- /dev/null
+++ b/core/libsasl/0025_ld_as_needed.patch
@@ -0,0 +1,27 @@
+Author: Matthias Klose <doko@ubuntu.com>
+Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use
+it.
+--- a/saslauthd/Makefile.am
++++ b/saslauthd/Makefile.am
+@@ -16,7 +16,7 @@ EXTRA_saslauthd_sources = getaddrinfo.c
+ saslauthd_DEPENDENCIES = saslauthd-main.o @LTLIBOBJS@
+ saslauthd_LDADD = @SASL_KRB_LIB@ \
+ @GSSAPIBASE_LIBS@ @GSSAPI_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
+- @LIB_SOCKET@ @SASL_DB_LIB@ @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
++ @LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
+
+ testsaslauthd_SOURCES = testsaslauthd.c utils.c
+ testsaslauthd_LDADD = @LIB_SOCKET@
+--- a/sasldb/Makefile.am
++++ b/sasldb/Makefile.am
+@@ -55,8 +55,8 @@ noinst_LIBRARIES = libsasldb.a
+
+ libsasldb_la_SOURCES = allockey.c sasldb.h
+ EXTRA_libsasldb_la_SOURCES = $(extra_common_sources)
+-libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND)
+-libsasldb_la_LIBADD = $(SASL_DB_BACKEND)
++libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
++libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
+
+ # Prevent make dist stupidity
+ libsasldb_a_SOURCES =
diff --git a/core/libsasl/0026_drop_krb5support_dependency.patch b/core/libsasl/0026_drop_krb5support_dependency.patch
new file mode 100644
index 000000000..cc00867ef
--- /dev/null
+++ b/core/libsasl/0026_drop_krb5support_dependency.patch
@@ -0,0 +1,14 @@
+Author: Roberto C. Sanchez <roberto@connexer.com>
+Description: Drop gratuitous dependency on krb5support
+--- a/cmulocal/sasl2.m4
++++ b/cmulocal/sasl2.m4
+@@ -112,9 +112,6 @@ if test "$gssapi" != no; then
+ fi
+
+ if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
+- # check for libkrb5support first
+- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
+-
+ gss_failed=0
+ AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
diff --git a/core/libsasl/0027_db5_support.patch b/core/libsasl/0027_db5_support.patch
new file mode 100644
index 000000000..522824074
--- /dev/null
+++ b/core/libsasl/0027_db5_support.patch
@@ -0,0 +1,24 @@
+Author: Ondřej Surý <ondrej@debian.org>
+Description: Support newer Berkeley DB versions
+--- a/sasldb/db_berkeley.c
++++ b/sasldb/db_berkeley.c
+@@ -101,7 +101,7 @@ static int berkeleydb_open(const sasl_ut
+ 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);
+--- a/utils/dbconverter-2.c
++++ b/utils/dbconverter-2.c
+@@ -214,7 +214,7 @@ static int berkeleydb_open(const char *p
+ 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/libsasl/0030-dont_use_la_files_for_opening_plugins.patch b/core/libsasl/0030-dont_use_la_files_for_opening_plugins.patch
new file mode 100644
index 000000000..14a322496
--- /dev/null
+++ b/core/libsasl/0030-dont_use_la_files_for_opening_plugins.patch
@@ -0,0 +1,134 @@
+--- a/lib/dlopen.c
++++ b/lib/dlopen.c
+@@ -247,105 +247,6 @@ static int _sasl_plugin_load(char *plugi
+ return result;
+ }
+
+-/* this returns the file to actually open.
+- * out should be a buffer of size PATH_MAX
+- * and may be the same as in. */
+-
+-/* We'll use a static buffer for speed unless someone complains */
+-#define MAX_LINE 2048
+-
+-static int _parse_la(const char *prefix, const char *in, char *out)
+-{
+- FILE *file;
+- size_t length;
+- char line[MAX_LINE];
+- char *ntmp = NULL;
+-
+- if(!in || !out || !prefix || out == in) return SASL_BADPARAM;
+-
+- /* Set this so we can detect failure */
+- *out = '\0';
+-
+- length = strlen(in);
+-
+- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) {
+- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) {
+- /* check for a .la file */
+- strcpy(line, prefix);
+- strcat(line, in);
+- length = strlen(line);
+- *(line + (length - strlen(SO_SUFFIX))) = '\0';
+- strcat(line, LA_SUFFIX);
+- file = fopen(line, "r");
+- if(file) {
+- /* We'll get it on the .la open */
+- fclose(file);
+- return SASL_FAIL;
+- }
+- }
+- strcpy(out, prefix);
+- strcat(out, in);
+- return SASL_OK;
+- }
+-
+- strcpy(line, prefix);
+- strcat(line, in);
+-
+- file = fopen(line, "r");
+- if(!file) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "unable to open LA file: %s", line);
+- return SASL_FAIL;
+- }
+-
+- while(!feof(file)) {
+- if(!fgets(line, MAX_LINE, file)) break;
+- if(line[strlen(line) - 1] != '\n') {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "LA file has too long of a line: %s", in);
+- return SASL_BUFOVER;
+- }
+- if(line[0] == '\n' || line[0] == '#') continue;
+- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) {
+- /* We found the line with the name in it */
+- char *end;
+- char *start;
+- size_t len;
+- end = strrchr(line, '\'');
+- if(!end) continue;
+- start = &line[sizeof("dlname=")-1];
+- len = strlen(start);
+- if(len > 3 && start[0] == '\'') {
+- ntmp=&start[1];
+- *end='\0';
+- /* Do we have dlname="" ? */
+- if(ntmp == end) {
+- _sasl_log(NULL, SASL_LOG_DEBUG,
+- "dlname is empty in .la file: %s", in);
+- return SASL_FAIL;
+- }
+- strcpy(out, prefix);
+- strcat(out, ntmp);
+- }
+- break;
+- }
+- }
+- if(ferror(file) || feof(file)) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "Error reading .la: %s\n", in);
+- fclose(file);
+- return SASL_FAIL;
+- }
+- fclose(file);
+-
+- if(!(*out)) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "Could not find a dlname line in .la file: %s", in);
+- return SASL_FAIL;
+- }
+-
+- return SASL_OK;
+-}
+ #endif /* DO_DLOPEN */
+
+ /* loads a plugin library */
+@@ -499,18 +400,18 @@ int _sasl_load_plugins(const add_plugin_
+ if (length + pos>=PATH_MAX) continue; /* too big */
+
+ if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)),
+- SO_SUFFIX)
+- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)),
+- LA_SUFFIX))
++ SO_SUFFIX))
+ continue;
+
++ /* We only use .so files for loading plugins */
++
+ memcpy(name,dir->d_name,length);
+ name[length]='\0';
+
+- result = _parse_la(prefix, name, tmp);
+- if(result != SASL_OK)
+- continue;
+-
++ /* Create full name with path */
++ strncpy(tmp, prefix, PATH_MAX);
++ strncat(tmp, name, PATH_MAX);
++
+ /* skip "lib" and cut off suffix --
+ this only need be approximate */
+ strcpy(plugname, name + 3);
diff --git a/core/libsasl/PKGBUILD b/core/libsasl/PKGBUILD
new file mode 100644
index 000000000..e04b555db
--- /dev/null
+++ b/core/libsasl/PKGBUILD
@@ -0,0 +1,204 @@
+# $Id: PKGBUILD 140271 2011-10-11 21:27:38Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+# This package spans multiple repositories.
+# Always build from cyrus-sasl/trunk and merge changes to libsasl/trunk.
+
+#pkgbase=('cyrus-sasl')
+#pkgname=('cyrus-sasl' 'cyrus-sasl-gssapi' 'cyrus-sasl-ldap' 'cyrus-sasl-sql')
+pkgname=libsasl
+pkgver=2.1.23
+pkgrel=8.1
+pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cyrusimap.web.cmu.edu/downloads.html#sasl"
+license=('custom')
+options=('!makeflags' '!libtool')
+makedepends=('postgresql-libs' 'libmysqlclient' 'libldap' 'krb5' 'openssl' 'libtool' 'groff')
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
+ cyrus-sasl-2.1.19-checkpw.c.patch
+ cyrus-sasl-2.1.22-crypt.patch
+ cyrus-sasl-2.1.22-qa.patch
+ cyrus-sasl-2.1.22-automake-1.10.patch
+ cyrus-sasl-2.1.23-authd-fix.patch
+ 0003_saslauthd_mdoc.patch
+ 0010_maintainer_mode.patch
+ 0011_saslauthd_ac_prog_libtool.patch
+ 0012_xopen_crypt_prototype.patch
+ 0016_pid_file_lock_creation_mask.patch
+ 0018_auth_rimap_quotes.patch
+ 0019_ldap_deprecated.patch
+ 0022_gcc4.4_preprocessor_syntax.patch
+ 0025_ld_as_needed.patch
+ 0026_drop_krb5support_dependency.patch
+ 0027_db5_support.patch
+ 0030-dont_use_la_files_for_opening_plugins.patch
+ saslauthd.conf.d
+ saslauthd)
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ 'e27ddff076342e7a3041c4759817d04b'
+ 'd7e6886e88af04d05f3dec7f0a59ccf7'
+ '79b8a5e8689989e2afd4b7bda595a7b1'
+ 'f4131b077ddb5240b375d749162f1b7a'
+ 'c7ad2c70c1ef814eb4b119f316c064f2'
+ 'caeeac3feba19cbbd36e7345cc805600'
+ 'f45d8b60e8f74dd7f7c2ec1665fa602a'
+ '9d93880514cb5ff5da969f1ceb64a661'
+ 'dfdc052a7e678db9f687482c5d52f34e'
+ '4a09f6b24b91f8450892a78e378860da'
+ '213abe7c5dfe0d7f446992787da1e780'
+ '5a0321177ad30cb5518c8b6812e3961a'
+ '0c965748970eea29fa295524821d43f0'
+ '62bf892fe4d1df41ff748e91a1afaf67'
+ 'b7848957357e7c02d6490102be496bf9'
+ 'd86a5aa2e3b5b7c1bad6f8b548b7ea36'
+ '8e7106f32e495e9ade69014fd1b3352a'
+ '49219af5641150edec288a3fdb65e7c1'
+ '75542f613185d5a90520ad0d7d926a20')
+
+build() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-crypt.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-qa.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-automake-1.10.patch"
+ patch -Np0 -i "${srcdir}/cyrus-sasl-2.1.23-authd-fix.patch"
+ patch -Np1 -i "${srcdir}/0003_saslauthd_mdoc.patch"
+ patch -Np1 -i "${srcdir}/0010_maintainer_mode.patch"
+ patch -Np1 -i "${srcdir}/0011_saslauthd_ac_prog_libtool.patch"
+ patch -Np1 -i "${srcdir}/0012_xopen_crypt_prototype.patch"
+ patch -Np1 -i "${srcdir}/0016_pid_file_lock_creation_mask.patch"
+ patch -Np1 -i "${srcdir}/0018_auth_rimap_quotes.patch"
+ patch -Np1 -i "${srcdir}/0019_ldap_deprecated.patch"
+ patch -Np1 -i "${srcdir}/0022_gcc4.4_preprocessor_syntax.patch"
+ patch -Np1 -i "${srcdir}/0025_ld_as_needed.patch"
+ patch -Np1 -i "${srcdir}/0026_drop_krb5support_dependency.patch"
+ patch -Np1 -i "${srcdir}/0027_db5_support.patch"
+ patch -Np1 -i "${srcdir}/0030-dont_use_la_files_for_opening_plugins.patch"
+
+ rm -f config/config.guess config/config.sub
+ rm -f config/ltconfig config/ltmain.sh config/libtool.m4
+ rm -fr autom4te.cache
+ libtoolize -c
+ aclocal -I config -I cmulocal
+ automake -a -c
+ autoheader
+ autoconf
+
+ pushd saslauthd
+ rm -f config/config.guess config/config.sub
+ rm -f config/ltconfig config/ltmain.sh config/libtool.m4
+ rm -fr autom4te.cache
+ libtoolize -c
+ aclocal -I config -I ../cmulocal -I ../config
+ automake -a -c
+ autoheader
+ autoconf
+ popd
+
+ ./configure --prefix=/usr \
+ --host=$CHOST \
+ --build=$CHOST \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-static \
+ --enable-shared \
+ --enable-alwaystrue \
+ --enable-checkapop \
+ --enable-cram \
+ --enable-digest \
+ --disable-otp \
+ --disable-srp \
+ --disable-srp-setpass \
+ --disable-krb4 \
+ --enable-gssapi \
+ --enable-auth-sasldb \
+ --enable-plain \
+ --enable-anon \
+ --enable-login \
+ --enable-ntlm \
+ --disable-passdss \
+ --enable-sql \
+ --enable-ldapdb \
+ --disable-macos-framework \
+ --with-pam \
+ --with-saslauthd=/var/run/saslauthd \
+ --with-ldap \
+ --with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/sasl2 \
+ --sysconfdir=/etc \
+ --with-devrandom=/dev/urandom
+ make
+}
+
+package_libsasl() {
+ pkgdesc="Cyrus Simple Authentication Service Layer (SASL) Library"
+ depends=('openssl')
+ conflicts=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ rm -f "${pkgdir}"/usr/lib/sasl2/libsql.so*
+ rm -f "${pkgdir}"/usr/lib/sasl2/libgssapiv2.so*
+ rm -f "${pkgdir}"/usr/lib/sasl2/libldapdb.so*
+ install -m755 -d "${pkgdir}/usr/share/licenses/libsasl"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/libsasl/"
+}
+
+package_cyrus-sasl() {
+ depends=("libsasl=${pkgver}-${pkgrel}")
+ pkgdesc="Cyrus saslauthd SASL authentication daemon"
+ backup=('etc/conf.d/saslauthd')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/saslauthd"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 -d "${pkgdir}/etc/conf.d"
+ install -m755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/"
+ install -m644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/"
+}
+
+package_cyrus-sasl-gssapi() {
+ pkgdesc="GSSAPI authentication mechanism for Cyrus SASL"
+ depends=("libsasl=${pkgver}-${pkgrel}" 'krb5')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libgssapiv2.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi/"
+}
+
+package_cyrus-sasl-ldap() {
+ pkgdesc="ldapdb auxprop module for Cyrus SASL"
+ depends=("libsasl=${pkgver}-${pkgrel}" 'libldap')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libldapdb.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap/"
+}
+
+package_cyrus-sasl-sql() {
+ pkgdesc="SQL auxprop module for Cyrus SASL"
+ depends=("libsasl=${pkgver}-${pkgrel}" 'postgresql-libs' 'libmysqlclient')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libsql.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-sql"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-sql/"
+}
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-2.1.22-as-needed.patch b/core/libsasl/cyrus-sasl-2.1.22-as-needed.patch
new file mode 100644
index 000000000..1294cb507
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-2.1.22-as-needed.patch
@@ -0,0 +1,11 @@
+--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700
++++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700
+@@ -77,7 +77,7 @@
+ AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
+ SASL_DB_PATH_CHECK()
+ SASL_DB_CHECK()
+- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
++ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB"
+ fi
+
+ AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
diff --git a/core/libsasl/cyrus-sasl-2.1.22-automake-1.10.patch b/core/libsasl/cyrus-sasl-2.1.22-automake-1.10.patch
new file mode 100644
index 000000000..8cd71c0c5
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-2.1.22-automake-1.10.patch
@@ -0,0 +1,94 @@
+Re-merged patch by Robert Scheck <redhat@linuxnetz.de> for cyrus-sasl >= 2.1.22, which was
+originally written by Jacek Konieczny <jajcus@pld-linux.org> and makes cyrus-sasl building
+using automake 1.10.
+
+--- cyrus-sasl-2.1.22/plugins/Makefile.am 2006-05-17 18:46:16.000000000 +0200
++++ cyrus-sasl-2.1.22/plugins/Makefile.am.am110 2007-02-16 15:42:07.000000000 +0100
+@@ -82,73 +82,73 @@
+ libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la
+
+ libplain_la_SOURCES = plain.c plain_init.c $(common_sources)
+-libplain_la_LDFLAGS = -version-info $(plain_version)
++libplain_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(plain_version)
+ libplain_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libplain_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS)
+
+ libanonymous_la_SOURCES = anonymous.c anonymous_init.c $(common_sources)
+-libanonymous_la_LDFLAGS = -version-info $(anonymous_version)
++libanonymous_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(anonymous_version)
+ libanonymous_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libanonymous_la_LIBADD = $(COMPAT_OBJS)
+
+ libkerberos4_la_SOURCES = kerberos4.c kerberos4_init.c $(common_sources)
+-libkerberos4_la_LDFLAGS = -version-info $(kerberos4_version)
++libkerberos4_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(kerberos4_version)
+ libkerberos4_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libkerberos4_la_LIBADD = $(SASL_KRB_LIB) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ libgssapiv2_la_SOURCES = gssapi.c gssapiv2_init.c $(common_sources)
+-libgssapiv2_la_LDFLAGS = -version-info $(gssapiv2_version)
++libgssapiv2_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(gssapiv2_version)
+ libgssapiv2_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libgssapiv2_la_LIBADD = $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ libcrammd5_la_SOURCES = cram.c crammd5_init.c $(common_sources)
+-libcrammd5_la_LDFLAGS = -version-info $(crammd5_version)
++libcrammd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(crammd5_version)
+ libcrammd5_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libcrammd5_la_LIBADD = $(COMPAT_OBJS)
+
+ libdigestmd5_la_SOURCES = digestmd5.c digestmd5_init.c $(common_sources)
+-libdigestmd5_la_LDFLAGS = -version-info $(digestmd5_version)
++libdigestmd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(digestmd5_version)
+ libdigestmd5_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libdigestmd5_la_LIBADD = $(LIB_DES) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ liblogin_la_SOURCES = login.c login_init.c $(common_sources)
+-liblogin_la_LDFLAGS = -version-info $(login_version)
++liblogin_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(login_version)
+ liblogin_la_DEPENDENCIES = $(COMPAT_OBJS)
+ liblogin_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS)
+
+ libsrp_la_SOURCES = srp.c srp_init.c $(common_sources)
+-libsrp_la_LDFLAGS = -version-info $(srp_version)
++libsrp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(srp_version)
+ libsrp_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsrp_la_LIBADD = $(SRP_LIBS) $(COMPAT_OBJS)
+
+ libotp_la_SOURCES = otp.c otp_init.c otp.h $(common_sources)
+-libotp_la_LDFLAGS = -version-info $(otp_version)
++libotp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(otp_version)
+ libotp_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libotp_la_LIBADD = $(OTP_LIBS) $(COMPAT_OBJS)
+
+ libntlm_la_SOURCES = ntlm.c ntlm_init.c $(common_sources)
+-libntlm_la_LDFLAGS = -version-info $(ntlm_version)
++libntlm_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(ntlm_version)
+ libntlm_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libntlm_la_LIBADD = $(NTLM_LIBS) $(COMPAT_OBJS)
+
+ libpassdss_la_SOURCES = passdss.c passdss_init.c $(common_sources)
+-libpassdss_la_LDFLAGS = -version-info $(passdss_version)
++libpassdss_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(passdss_version)
+ libpassdss_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libpassdss_la_LIBADD = $(PASSDSS_LIBS) $(COMPAT_OBJS)
+
+ # Auxprop Plugins
+ libsasldb_la_SOURCES = sasldb.c sasldb_init.c $(common_sources)
+-libsasldb_la_LDFLAGS = -version-info $(sasldb_version)
++libsasldb_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(sasldb_version)
+ libsasldb_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsasldb_la_LIBADD = ../sasldb/libsasldb.la $(SASL_DB_LIB) $(COMPAT_OBJS)
+
+ libldapdb_la_SOURCES = ldapdb.c ldapdb_init.c $(common_sources)
+-libldapdb_la_LDFLAGS = $(LIB_LDAP) -version-info $(ldapdb_version)
++libldapdb_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_LDAP) -version-info $(ldapdb_version)
+ libldapdb_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libldapdb_la_LIBADD = $(COMPAT_OBJS)
+
+ libsql_la_SOURCES = sql.c sql_init.c $(common_sources)
+-libsql_la_LDFLAGS = $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version)
++libsql_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version)
+ libsql_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsql_la_LIBADD = $(COMPAT_OBJS)
+
diff --git a/core/libsasl/cyrus-sasl-2.1.22-crypt.patch b/core/libsasl/cyrus-sasl-2.1.22-crypt.patch
new file mode 100644
index 000000000..fd356327b
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-2.1.22-crypt.patch
@@ -0,0 +1,71 @@
+http://bugs.gentoo.org/152544
+
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -45,6 +45,7 @@ sasl_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/plugins -I$(top_builddir)/include -I$(top_srcdir)/sasldb
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = windlopen.c staticopen.h NTMakefile
+ EXTRA_LIBRARIES = libsasl2.a
+ noinst_LIBRARIES = @SASL_STATIC_LIBS@
+--- cyrus-sasl-2.1.22/plugins/Makefile.am
++++ cyrus-sasl-2.1.22/plugins/Makefile.am
+@@ -63,6 +63,7 @@ srp_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include
+ AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir)
++AM_CFLAGS = -fPIC
+
+ COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@
+
+--- cyrus-sasl-2.1.22/sasldb/Makefile.am
++++ cyrus-sasl-2.1.22/sasldb/Makefile.am
+@@ -48,6 +48,7 @@ INCLUDES=-I$(top_srcdir)/include -I$(top
+
+ extra_common_sources = db_none.c db_ndbm.c db_gdbm.c db_berkeley.c
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = NTMakefile
+
+ noinst_LTLIBRARIES = libsasldb.la
+--- cyrus-sasl-2.1.22/utils/Makefile.am
++++ cyrus-sasl-2.1.22/utils/Makefile.am
+@@ -42,7 +42,7 @@
+ #
+ ################################################################
+
+-all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET)
++all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) $(LIB_CRYPT)
+ all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE)
+
+ sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer
+--- cyrus-sasl-2.1.22/sample/Makefile.am
++++ cyrus-sasl-2.1.22/sample/Makefile.am
+@@ -54,10 +54,10 @@ sample_server_SOURCES = sample-server.c
+ server_SOURCES = server.c common.c common.h
+ client_SOURCES = client.c common.c common.h
+
+-server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+-sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+ EXTRA_DIST = NTMakefile
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -63,7 +63,7 @@ lib_LTLIBRARIES = libsasl2.la
+ libsasl2_la_SOURCES = $(common_sources) $(common_headers)
+ libsasl2_la_LDFLAGS = -version-info $(sasl_version)
+ libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
+-libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR)
++libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT)
+
+ if MACOSX
+ framedir = /Library/Frameworks/SASL2.framework
diff --git a/core/libsasl/cyrus-sasl-2.1.22-qa.patch b/core/libsasl/cyrus-sasl-2.1.22-qa.patch
new file mode 100644
index 000000000..4f7b04f13
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-2.1.22-qa.patch
@@ -0,0 +1,22 @@
+fix missing prototype warnings
+
+--- cyrus-sasl-2.1.22/lib/auxprop.c
++++ cyrus-sasl-2.1.22/lib/auxprop.c
+@@ -43,6 +43,7 @@
+ */
+
+ #include <config.h>
++#include <stdio.h>
+ #include <sasl.h>
+ #include <prop.h>
+ #include <ctype.h>
+--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
++++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
+@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF
+ ******************************************************************/
+
+ #include <shadow.h>
++#include <string.h>
+
+ extern char *crypt();
+
diff --git a/core/libsasl/cyrus-sasl-2.1.23-authd-fix.patch b/core/libsasl/cyrus-sasl-2.1.23-authd-fix.patch
new file mode 100644
index 000000000..f5f372d17
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-2.1.23-authd-fix.patch
@@ -0,0 +1,28 @@
+fix warnings:
+
+auth_sasldb.c: In function ‘auth_sasldb’:
+auth_sasldb.c:144: warning: implicit declaration of function ‘gethostname’
+
+auth_sasldb.c:153: warning: passing argument 8 of ‘_sasldb_getdata’ from incompatible pointer type
+../sasldb/sasldb.h:60: note: expected ‘size_t *’ but argument is of type ‘int *’
+
+--- saslauthd/auth_sasldb.c
++++ saslauthd/auth_sasldb.c
+@@ -41,6 +41,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <pwd.h>
++#include <unistd.h>
+ /* END PUBLIC DEPENDENCIES */
+
+ #define RETURN(x) return strdup(x)
+@@ -131,7 +132,8 @@
+ /* VARIABLES */
+ char pw[1024]; /* pointer to passwd file entry */
+ sasl_utils_t utils;
+- int ret, outsize;
++ int ret;
++ size_t outsize;
+ const char *use_realm;
+ char realm_buf[MAXHOSTNAMELEN];
+ /* END VARIABLES */
diff --git a/core/libsasl/saslauthd b/core/libsasl/saslauthd
new file mode 100644
index 000000000..6afafae0b
--- /dev/null
+++ b/core/libsasl/saslauthd
@@ -0,0 +1,49 @@
+#!/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_RUN=/var/run/saslauthd
+SASLAUTHD_PID=$SASLAUTHD_RUN/saslauthd.pid
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON_NAME"
+ [ ! -d /var/run/saslauthd ] && install -d /var/run/saslauthd
+ if $SASLAUTHD_BIN $SASLAUTHD_OPTS >/dev/null; then
+ add_daemon $DAEMON_NAME
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON_NAME"
+ [ -f $SASLAUTHD_PID ] && kill `cat $SASLAUTHD_PID` &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon $DAEMON_NAME
+ stat_done
+ fi
+ ;;
+
+ 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/core/libsasl/saslauthd.conf.d b/core/libsasl/saslauthd.conf.d
new file mode 100644
index 000000000..167211290
--- /dev/null
+++ b/core/libsasl/saslauthd.conf.d
@@ -0,0 +1 @@
+SASLAUTHD_OPTS="-a pam"
diff --git a/core/libssh2/PKGBUILD b/core/libssh2/PKGBUILD
new file mode 100644
index 000000000..4a7212c91
--- /dev/null
+++ b/core/libssh2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 138017 2011-09-14 11:16:24Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: ice-man <icemanf@gmail.com>
+
+pkgname=libssh2
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="A library implementing the SSH2 protocol as defined by Internet Drafts"
+url="http://www.libssh2.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('BSD')
+depends=('openssl')
+makedepends=('zlib')
+options=('!libtool')
+source=("http://www.libssh2.org/download/$pkgname-$pkgver.tar.gz"{,.asc})
+md5sums=('6425331899ccf1015f1ed79448cb4709'
+ '6ddcc9f2b37941f8291d7494ee8f89b7')
+
+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/libtirpc/PKGBUILD b/core/libtirpc/PKGBUILD
new file mode 100644
index 000000000..fac744d86
--- /dev/null
+++ b/core/libtirpc/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 133597 2011-07-29 21:03:33Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libtirpc
+pkgver=0.2.2
+pkgrel=2
+pkgdesc="Transport Independent RPC library (SunRPC replacement)"
+arch=(i686 x86_64 mips64el)
+url="http://libtirpc.sourceforge.net/"
+license=('BSD')
+depends=('libgssglue')
+backup=('etc/netconfig')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/libtirpc/${pkgname}-${pkgver}.tar.bz2
+ libtirpc-0.2.1-fortify.patch
+ libtirpc-0.2.3rc1.patch
+ libtirpc-fix-segfault-0.2.2.patch)
+md5sums=('74c41c15c2909f7d11d9c7bfa7db6273'
+ '2e5c067f1651469dfbbdc91d3c9c60e8'
+ 'ac2a1657b44f4a99c37d8265b05b9133'
+ '5a3ab55934cad4e8b38fc90c54756472')
+
+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
+ # add patches from fedora git to make nfs-utils compile again
+ patch -Np1 -i ../libtirpc-0.2.3rc1.patch
+ patch -Np1 -i ../libtirpc-fix-segfault-0.2.2.patch
+ sh autogen.sh
+ autoreconf -fisv
+ ./configure --prefix=/usr --enable-gss
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 doc/etc_netconfig "${pkgdir}"/etc/netconfig
+ install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
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/libtirpc/libtirpc-0.2.3rc1.patch b/core/libtirpc/libtirpc-0.2.3rc1.patch
new file mode 100644
index 000000000..d57a59e1f
--- /dev/null
+++ b/core/libtirpc/libtirpc-0.2.3rc1.patch
@@ -0,0 +1,637 @@
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 7ee8cbc..6731ff9 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -50,7 +50,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln
+ rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
+ rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_generic.c \
+ svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \
+- auth_time.c auth_des.c authdes_prot.c des_crypt.c
++ auth_time.c auth_des.c authdes_prot.c
+
+ ## XDR
+ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c
+diff --git a/src/auth_des.c b/src/auth_des.c
+index 37e7667..f0c8b8c 100644
+--- a/src/auth_des.c
++++ b/src/auth_des.c
+@@ -223,6 +223,7 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, u_int window,
+ goto failed;
+ }
+ ad->ad_nis_srvr = NULL; /* not needed any longer */
++ auth_get(auth); /* Reference for caller */
+ return (auth);
+
+ failed:
+@@ -472,6 +473,12 @@ authdes_destroy(AUTH *auth)
+ FREE(auth, sizeof(AUTH));
+ }
+
++static bool_t
++authdes_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere)
++{
++ return ((*xfunc)(xdrs, xwhere));
++}
++
+ static struct auth_ops *
+ authdes_ops(void)
+ {
+@@ -487,6 +494,8 @@ authdes_ops(void)
+ ops.ah_validate = authdes_validate;
+ ops.ah_refresh = authdes_refresh;
+ ops.ah_destroy = authdes_destroy;
++ ops.ah_wrap = authdes_wrap;
++ ops.ah_unwrap = authdes_wrap;
+ }
+ mutex_unlock(&authdes_ops_lock);
+ return (&ops);
+diff --git a/src/auth_gss.c b/src/auth_gss.c
+index df3017a..a992049 100644
+--- a/src/auth_gss.c
++++ b/src/auth_gss.c
+@@ -200,6 +200,8 @@ authgss_create(CLIENT *clnt, gss_name_t name, struct rpc_gss_sec *sec)
+
+ if (!authgss_refresh(auth))
+ auth = NULL;
++ else
++ auth_get(auth); /* Reference for caller */
+
+ clnt->cl_auth = save_auth;
+
+@@ -555,9 +557,20 @@ authgss_destroy_context(AUTH *auth)
+
+ if (gd->gc.gc_ctx.length != 0) {
+ if (gd->established) {
++ AUTH *save_auth = NULL;
++
++ /* Make sure we use the right auth_ops */
++ if (gd->clnt->cl_auth != auth) {
++ save_auth = gd->clnt->cl_auth;
++ gd->clnt->cl_auth = auth;
++ }
++
+ gd->gc.gc_proc = RPCSEC_GSS_DESTROY;
+ clnt_call(gd->clnt, NULLPROC, (xdrproc_t)xdr_void, NULL,
+ (xdrproc_t)xdr_void, NULL, AUTH_TIMEOUT);
++
++ if (save_auth != NULL)
++ gd->clnt->cl_auth = save_auth;
+ }
+ gss_release_buffer(&min_stat, &gd->gc.gc_ctx);
+ /* XXX ANDROS check size of context - should be 8 */
+diff --git a/src/auth_none.c b/src/auth_none.c
+index a439ec6..008c589 100644
+--- a/src/auth_none.c
++++ b/src/auth_none.c
+@@ -155,6 +155,12 @@ authnone_destroy(AUTH *client)
+ {
+ }
+
++static bool_t
++authnone_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere)
++{
++ return ((*xfunc)(xdrs, xwhere));
++}
++
+ static struct auth_ops *
+ authnone_ops()
+ {
+@@ -170,6 +176,8 @@ authnone_ops()
+ ops.ah_validate = authnone_validate;
+ ops.ah_refresh = authnone_refresh;
+ ops.ah_destroy = authnone_destroy;
++ ops.ah_wrap = authnone_wrap;
++ ops.ah_unwrap = authnone_wrap;
+ }
+ mutex_unlock(&ops_lock);
+ return (&ops);
+diff --git a/src/auth_unix.c b/src/auth_unix.c
+index c2469da..4b9b13f 100644
+--- a/src/auth_unix.c
++++ b/src/auth_unix.c
+@@ -162,6 +162,7 @@ authunix_create(machname, uid, gid, len, aup_gids)
+ */
+ auth->ah_cred = au->au_origcred;
+ marshal_new_auth(auth);
++ auth_get(auth); /* Reference for caller */
+ return (auth);
+ #ifndef _KERNEL
+ cleanup_authunix_create:
+@@ -396,6 +397,12 @@ marshal_new_auth(auth)
+ XDR_DESTROY(xdrs);
+ }
+
++static bool_t
++authunix_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere)
++{
++ return ((*xfunc)(xdrs, xwhere));
++}
++
+ static struct auth_ops *
+ authunix_ops()
+ {
+@@ -411,6 +418,8 @@ authunix_ops()
+ ops.ah_validate = authunix_validate;
+ ops.ah_refresh = authunix_refresh;
+ ops.ah_destroy = authunix_destroy;
++ ops.ah_wrap = authunix_wrap;
++ ops.ah_unwrap = authunix_wrap;
+ }
+ mutex_unlock(&ops_lock);
+ return (&ops);
+diff --git a/src/authgss_prot.c b/src/authgss_prot.c
+index 9d7fa09..0168318 100644
+--- a/src/authgss_prot.c
++++ b/src/authgss_prot.c
+@@ -161,6 +161,7 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
+ databuflen = end - start - 4;
+ XDR_SETPOS(xdrs, start + 4);
+ databuf.value = XDR_INLINE(xdrs, databuflen);
++ databuf.length = databuflen;
+
+ xdr_stat = FALSE;
+
+@@ -169,7 +170,6 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
+ XDR_SETPOS(xdrs, start);
+ if (!xdr_u_int(xdrs, (u_int *)&databuflen))
+ return (FALSE);
+- databuf.length = databuflen;
+
+ /* Checksum rpc_gss_data_t. */
+ maj_stat = gss_get_mic(&min_stat, ctx, qop,
+diff --git a/src/clnt_dg.c b/src/clnt_dg.c
+index 79fed5d..4a1f60a 100644
+--- a/src/clnt_dg.c
++++ b/src/clnt_dg.c
+@@ -366,7 +366,7 @@ call_again:
+
+ if ((! XDR_PUTINT32(xdrs, (int32_t *)&proc)) ||
+ (! AUTH_MARSHALL(cl->cl_auth, xdrs)) ||
+- (! (*xargs)(xdrs, argsp))) {
++ (! AUTH_WRAP(cl->cl_auth, xdrs, xargs, argsp))) {
+ cu->cu_error.re_status = RPC_CANTENCODEARGS;
+ goto out;
+ }
+@@ -400,8 +400,8 @@ get_reply:
+ * (We assume that this is actually only executed once.)
+ */
+ reply_msg.acpted_rply.ar_verf = _null_auth;
+- reply_msg.acpted_rply.ar_results.where = resultsp;
+- reply_msg.acpted_rply.ar_results.proc = xresults;
++ reply_msg.acpted_rply.ar_results.where = NULL;
++ reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
+
+ fd.fd = cu->cu_fd;
+ fd.events = POLLIN;
+@@ -512,6 +512,10 @@ get_reply:
+ &reply_msg.acpted_rply.ar_verf)) {
+ cu->cu_error.re_status = RPC_AUTHERROR;
+ cu->cu_error.re_why = AUTH_INVALIDRESP;
++ } else if (! AUTH_UNWRAP(cl->cl_auth, &reply_xdrs,
++ xresults, resultsp)) {
++ if (cu->cu_error.re_status == RPC_SUCCESS)
++ cu->cu_error.re_status = RPC_CANTDECODERES;
+ }
+ if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) {
+ xdrs->x_op = XDR_FREE;
+diff --git a/src/clnt_vc.c b/src/clnt_vc.c
+index 359063c..097cae8 100644
+--- a/src/clnt_vc.c
++++ b/src/clnt_vc.c
+@@ -364,7 +364,7 @@ call_again:
+ if ((! XDR_PUTBYTES(xdrs, ct->ct_u.ct_mcallc, ct->ct_mpos)) ||
+ (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) ||
+ (! AUTH_MARSHALL(cl->cl_auth, xdrs)) ||
+- (! (*xdr_args)(xdrs, args_ptr))) {
++ (! AUTH_WRAP(cl->cl_auth, xdrs, xdr_args, args_ptr))) {
+ if (ct->ct_error.re_status == RPC_SUCCESS)
+ ct->ct_error.re_status = RPC_CANTENCODEARGS;
+ (void)xdrrec_endofrecord(xdrs, TRUE);
+@@ -420,7 +420,8 @@ call_again:
+ &reply_msg.acpted_rply.ar_verf)) {
+ ct->ct_error.re_status = RPC_AUTHERROR;
+ ct->ct_error.re_why = AUTH_INVALIDRESP;
+- } else if (! (*xdr_results)(xdrs, results_ptr)) {
++ } else if (! AUTH_UNWRAP(cl->cl_auth, xdrs,
++ xdr_results, results_ptr)) {
+ if (ct->ct_error.re_status == RPC_SUCCESS)
+ ct->ct_error.re_status = RPC_CANTDECODERES;
+ }
+diff --git a/src/svc.c b/src/svc.c
+index b4a63d0..08cd6c9 100644
+--- a/src/svc.c
++++ b/src/svc.c
+@@ -77,9 +77,6 @@ static struct svc_callout
+
+ extern rwlock_t svc_lock;
+ extern rwlock_t svc_fd_lock;
+-#ifdef HAVE_LIBGSSAPI
+-extern struct svc_auth_ops svc_auth_gss_ops;
+-#endif
+
+ static struct svc_callout *svc_find (rpcprog_t, rpcvers_t,
+ struct svc_callout **, char *);
+@@ -717,11 +714,9 @@ svc_getreq_common (fd)
+ SVC_DESTROY (xprt);
+ break;
+ }
+- else if ((xprt->xp_auth != NULL)
+-#ifdef HAVE_LIBGSSAPI
+- && (xprt->xp_auth->svc_ah_ops != &svc_auth_gss_ops)
+-#endif
+- ) {
++ else if ((xprt->xp_auth != NULL) &&
++ (xprt->xp_auth->svc_ah_private == NULL))
++ {
+ xprt->xp_auth = NULL;
+ }
+ }
+diff --git a/src/svc_auth.c b/src/svc_auth.c
+index c6b3a0b..e80d5f9 100644
+--- a/src/svc_auth.c
++++ b/src/svc_auth.c
+@@ -98,8 +98,8 @@ _authenticate(rqst, msg)
+ rqst->rq_xprt->xp_verf.oa_length = 0;
+ cred_flavor = rqst->rq_cred.oa_flavor;
+ switch (cred_flavor) {
+- case AUTH_NULL:
+- dummy = _svcauth_null(rqst, msg);
++ case AUTH_NONE:
++ dummy = _svcauth_none(rqst, msg);
+ return (dummy);
+ case AUTH_SYS:
+ dummy = _svcauth_unix(rqst, msg);
+@@ -132,15 +132,6 @@ _authenticate(rqst, msg)
+ return (AUTH_REJECTEDCRED);
+ }
+
+-/*ARGSUSED*/
+-enum auth_stat
+-_svcauth_null(rqst, msg)
+- struct svc_req *rqst;
+- struct rpc_msg *msg;
+-{
+- return (AUTH_OK);
+-}
+-
+ /*
+ * Allow the rpc service to register new authentication types that it is
+ * prepared to handle. When an authentication flavor is registered,
+diff --git a/src/svc_auth_unix.c b/src/svc_auth_unix.c
+index ce83859..9585069 100644
+--- a/src/svc_auth_unix.c
++++ b/src/svc_auth_unix.c
+@@ -43,6 +43,8 @@
+
+ #include <rpc/rpc.h>
+
++extern SVCAUTH svc_auth_none;
++
+ /*
+ * Unix longhand authenticator
+ */
+@@ -67,6 +69,8 @@ _svcauth_unix(rqst, msg)
+ assert(rqst != NULL);
+ assert(msg != NULL);
+
++ rqst->rq_xprt->xp_auth = &svc_auth_none;
++
+ area = (struct area *) rqst->rq_clntcred;
+ aup = &area->area_aup;
+ aup->aup_machname = area->area_machname;
+@@ -142,5 +146,6 @@ _svcauth_short(rqst, msg)
+ struct svc_req *rqst;
+ struct rpc_msg *msg;
+ {
++ rqst->rq_xprt->xp_auth = &svc_auth_none;
+ return (AUTH_REJECTEDCRED);
+ }
+diff --git a/src/svc_dg.c b/src/svc_dg.c
+index 66a56ee..5ef9df2 100644
+--- a/src/svc_dg.c
++++ b/src/svc_dg.c
+@@ -134,6 +134,7 @@ svc_dg_create(fd, sendsize, recvsize)
+ su->su_cache = NULL;
+ xprt->xp_fd = fd;
+ xprt->xp_p2 = su;
++ xprt->xp_auth = NULL;
+ xprt->xp_verf.oa_base = su->su_verfbody;
+ svc_dg_ops(xprt);
+ xprt->xp_rtaddr.maxlen = sizeof (struct sockaddr_storage);
+@@ -234,10 +235,27 @@ svc_dg_reply(xprt, msg)
+ bool_t stat = FALSE;
+ size_t slen;
+
++ xdrproc_t xdr_results;
++ caddr_t xdr_location;
++ bool_t has_args;
++
++ if (msg->rm_reply.rp_stat == MSG_ACCEPTED &&
++ msg->rm_reply.rp_acpt.ar_stat == SUCCESS) {
++ has_args = TRUE;
++ xdr_results = msg->acpted_rply.ar_results.proc;
++ xdr_location = msg->acpted_rply.ar_results.where;
++
++ msg->acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
++ msg->acpted_rply.ar_results.where = NULL;
++ } else
++ has_args = FALSE;
++
+ xdrs->x_op = XDR_ENCODE;
+ XDR_SETPOS(xdrs, 0);
+ msg->rm_xid = su->su_xid;
+- if (xdr_replymsg(xdrs, msg)) {
++ if (xdr_replymsg(xdrs, msg) &&
++ (!has_args ||
++ (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) {
+ struct msghdr *msg = &su->su_msghdr;
+ struct iovec iov;
+
+@@ -264,7 +282,12 @@ svc_dg_getargs(xprt, xdr_args, args_ptr)
+ xdrproc_t xdr_args;
+ void *args_ptr;
+ {
+- return (*xdr_args)(&(su_data(xprt)->su_xdrs), args_ptr);
++ if (! SVCAUTH_UNWRAP(xprt->xp_auth, &(su_data(xprt)->su_xdrs),
++ xdr_args, args_ptr)) {
++ (void)svc_freeargs(xprt, xdr_args, args_ptr);
++ return FALSE;
++ }
++ return TRUE;
+ }
+
+ static bool_t
+@@ -288,6 +311,10 @@ svc_dg_destroy(xprt)
+ xprt_unregister(xprt);
+ if (xprt->xp_fd != -1)
+ (void)close(xprt->xp_fd);
++ if (xprt->xp_auth != NULL) {
++ SVCAUTH_DESTROY(xprt->xp_auth);
++ xprt->xp_auth = NULL;
++ }
+ XDR_DESTROY(&(su->su_xdrs));
+ (void) mem_free(rpc_buffer(xprt), su->su_iosz);
+ (void) mem_free(su, sizeof (*su));
+diff --git a/src/svc_vc.c b/src/svc_vc.c
+index aaaf2d7..74632e2 100644
+--- a/src/svc_vc.c
++++ b/src/svc_vc.c
+@@ -172,6 +172,7 @@ svc_vc_create(fd, sendsize, recvsize)
+ xprt->xp_p1 = r;
+ xprt->xp_p2 = NULL;
+ xprt->xp_p3 = NULL;
++ xprt->xp_auth = NULL;
+ xprt->xp_verf = _null_auth;
+ svc_vc_rendezvous_ops(xprt);
+ xprt->xp_port = (u_short)-1; /* It is the rendezvouser */
+@@ -283,6 +284,7 @@ makefd_xprt(fd, sendsize, recvsize)
+ xdrrec_create(&(cd->xdrs), sendsize, recvsize,
+ xprt, read_vc, write_vc);
+ xprt->xp_p1 = cd;
++ xprt->xp_auth = NULL;
+ xprt->xp_verf.oa_base = cd->verf_body;
+ svc_vc_ops(xprt); /* truely deals with calls */
+ xprt->xp_port = 0; /* this is a connection, not a rendezvouser */
+@@ -412,6 +414,10 @@ __svc_vc_dodestroy(xprt)
+ XDR_DESTROY(&(cd->xdrs));
+ mem_free(cd, sizeof(struct cf_conn));
+ }
++ if (xprt->xp_auth != NULL) {
++ SVCAUTH_DESTROY(xprt->xp_auth);
++ xprt->xp_auth = NULL;
++ }
+ if (xprt->xp_rtaddr.buf)
+ mem_free(xprt->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen);
+ if (xprt->xp_ltaddr.buf)
+@@ -610,7 +616,11 @@ svc_vc_recv(xprt, msg)
+ }
+
+ xdrs->x_op = XDR_DECODE;
+- (void)xdrrec_skiprecord(xdrs);
++ /*
++ * No need skip records with nonblocking connections
++ */
++ if (cd->nonblock == FALSE)
++ (void)xdrrec_skiprecord(xdrs);
+ if (xdr_callmsg(xdrs, msg)) {
+ cd->x_id = msg->rm_xid;
+ return (TRUE);
+@@ -628,8 +638,13 @@ svc_vc_getargs(xprt, xdr_args, args_ptr)
+
+ assert(xprt != NULL);
+ /* args_ptr may be NULL */
+- return ((*xdr_args)(&(((struct cf_conn *)(xprt->xp_p1))->xdrs),
+- args_ptr));
++
++ if (! SVCAUTH_UNWRAP(xprt->xp_auth,
++ &(((struct cf_conn *)(xprt->xp_p1))->xdrs),
++ xdr_args, args_ptr)) {
++ return FALSE;
++ }
++ return TRUE;
+ }
+
+ static bool_t
+@@ -658,15 +673,35 @@ svc_vc_reply(xprt, msg)
+ XDR *xdrs;
+ bool_t rstat;
+
++ xdrproc_t xdr_results;
++ caddr_t xdr_location;
++ bool_t has_args;
++
+ assert(xprt != NULL);
+ assert(msg != NULL);
+
+ cd = (struct cf_conn *)(xprt->xp_p1);
+ xdrs = &(cd->xdrs);
+
++ if (msg->rm_reply.rp_stat == MSG_ACCEPTED &&
++ msg->rm_reply.rp_acpt.ar_stat == SUCCESS) {
++ has_args = TRUE;
++ xdr_results = msg->acpted_rply.ar_results.proc;
++ xdr_location = msg->acpted_rply.ar_results.where;
++
++ msg->acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
++ msg->acpted_rply.ar_results.where = NULL;
++ } else
++ has_args = FALSE;
++
+ xdrs->x_op = XDR_ENCODE;
+ msg->rm_xid = cd->x_id;
+- rstat = xdr_replymsg(xdrs, msg);
++ rstat = FALSE;
++ if (xdr_replymsg(xdrs, msg) &&
++ (!has_args ||
++ (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) {
++ rstat = TRUE;
++ }
+ (void)xdrrec_endofrecord(xdrs, TRUE);
+ return (rstat);
+ }
+diff --git a/src/xdr_rec.c b/src/xdr_rec.c
+index 4e815d7..2aca623 100644
+--- a/src/xdr_rec.c
++++ b/src/xdr_rec.c
+@@ -64,7 +64,6 @@
+ #include <rpc/clnt.h>
+ #include <stddef.h>
+ #include "rpc_com.h"
+-#include <unistd.h>
+ static bool_t xdrrec_getlong(XDR *, long *);
+ static bool_t xdrrec_putlong(XDR *, const long *);
+ static bool_t xdrrec_getbytes(XDR *, char *, u_int);
+@@ -330,22 +329,22 @@ xdrrec_getpos(xdrs)
+ RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
+ off_t pos;
+
+- pos = lseek((int)(u_long)rstrm->tcp_handle, (off_t)0, 1);
+- if (pos != -1)
+- switch (xdrs->x_op) {
++ switch (xdrs->x_op) {
+
+- case XDR_ENCODE:
+- pos += rstrm->out_finger - rstrm->out_base;
+- break;
++ case XDR_ENCODE:
++ pos = rstrm->out_finger - rstrm->out_base
++ - BYTES_PER_XDR_UNIT;
++ break;
+
+- case XDR_DECODE:
+- pos -= rstrm->in_boundry - rstrm->in_finger;
+- break;
++ case XDR_DECODE:
++ pos = rstrm->in_boundry - rstrm->in_finger
++ - BYTES_PER_XDR_UNIT;
++ break;
+
+- default:
+- pos = (off_t) -1;
+- break;
+- }
++ default:
++ pos = (off_t) -1;
++ break;
++ }
+ return ((u_int) pos);
+ }
+
+diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h
+index 734e6b9..5f66e67 100644
+--- a/tirpc/rpc/auth.h
++++ b/tirpc/rpc/auth.h
+@@ -203,8 +203,22 @@ typedef struct __auth {
+
+ } *ah_ops;
+ void *ah_private;
++ int ah_refcnt;
+ } AUTH;
+
++static __inline int
++auth_get(AUTH *auth)
++{
++ return __sync_add_and_fetch(&auth->ah_refcnt, 1);
++}
++
++static __inline int
++auth_put(AUTH *auth)
++{
++ return __sync_sub_and_fetch(&auth->ah_refcnt, 1);
++}
++
++
+
+ /*
+ * Authentication ops.
+@@ -234,10 +248,23 @@ typedef struct __auth {
+ #define auth_refresh(auth, msg) \
+ ((*((auth)->ah_ops->ah_refresh))(auth, msg))
+
+-#define AUTH_DESTROY(auth) \
+- ((*((auth)->ah_ops->ah_destroy))(auth))
+-#define auth_destroy(auth) \
+- ((*((auth)->ah_ops->ah_destroy))(auth))
++#define AUTH_DESTROY(auth) \
++ do { \
++ int refs; \
++ if ((refs = auth_put((auth))) == 0) \
++ ((*((auth)->ah_ops->ah_destroy))(auth));\
++ log_debug("%s: auth_put(), refs %d\n", \
++ __func__, refs); \
++ } while (0)
++
++#define auth_destroy(auth) \
++ do { \
++ int refs; \
++ if ((refs = auth_put((auth))) == 0) \
++ ((*((auth)->ah_ops->ah_destroy))(auth));\
++ log_debug("%s: auth_put(), refs %d\n", \
++ __func__, refs); \
++ } while (0)
+
+ #define AUTH_WRAP(auth, xdrs, xfunc, xwhere) \
+ ((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \
+@@ -373,7 +400,7 @@ __END_DECLS
+ __BEGIN_DECLS
+ struct svc_req;
+ struct rpc_msg;
+-enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *);
++enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *);
+ enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
+ enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
+ __END_DECLS
+diff --git a/tirpc/rpc/des.h b/tirpc/rpc/des.h
+index e3d6897..d2881ad 100644
+--- a/tirpc/rpc/des.h
++++ b/tirpc/rpc/des.h
+@@ -33,6 +33,9 @@
+ * Copyright (c) 1986 by Sun Microsystems, Inc.
+ */
+
++#ifndef _RPC_DES_H_
++#define _RPC_DES_H_
++
+ #define DES_MAXLEN 65536 /* maximum # of bytes to encrypt */
+ #define DES_QUICKLEN 16 /* maximum # of bytes to encrypt quickly */
+
+@@ -80,3 +83,5 @@ struct desparams {
+ * Software DES.
+ */
+ extern int _des_crypt( char *, int, struct desparams * );
++
++#endif
+diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
+index 659e90c..14269d1 100644
+--- a/tirpc/rpc/svc_auth.h
++++ b/tirpc/rpc/svc_auth.h
+@@ -44,17 +44,23 @@
+ /*
+ * Interface to server-side authentication flavors.
+ */
+-typedef struct {
++typedef struct SVCAUTH {
+ struct svc_auth_ops {
+- int (*svc_ah_wrap)(void);
+- int (*svc_ah_unwrap)(void);
+- int (*svc_ah_destroy)(void);
++ int (*svc_ah_wrap)(struct SVCAUTH *, XDR *, xdrproc_t,
++ caddr_t);
++ int (*svc_ah_unwrap)(struct SVCAUTH *, XDR *, xdrproc_t,
++ caddr_t);
++ int (*svc_ah_destroy)(struct SVCAUTH *);
+ } *svc_ah_ops;
+ caddr_t svc_ah_private;
+ } SVCAUTH;
+
+-#define SVCAUTH_DESTROY(cred) ((*(cred)->svc_ah_ops->svc_ah_destroy)())
+-#define svcauth_destroy(cred) ((*(cred)->svc_ah_ops->svc_ah_destroy)())
++#define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \
++ ((*((auth)->svc_ah_ops->svc_ah_wrap))(auth, xdrs, xfunc, xwhere))
++#define SVCAUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \
++ ((*((auth)->svc_ah_ops->svc_ah_unwrap))(auth, xdrs, xfunc, xwhere))
++#define SVCAUTH_DESTROY(auth) \
++ ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth))
+
+ /*
+ * Server side authenticator
diff --git a/core/libtirpc/libtirpc-fix-segfault-0.2.2.patch b/core/libtirpc/libtirpc-fix-segfault-0.2.2.patch
new file mode 100644
index 000000000..8a04c16de
--- /dev/null
+++ b/core/libtirpc/libtirpc-fix-segfault-0.2.2.patch
@@ -0,0 +1,28 @@
+diff -up libtirpc-0.2.2/src/svc_dg.c.orig libtirpc-0.2.2/src/svc_dg.c
+--- libtirpc-0.2.2/src/svc_dg.c.orig 2011-07-19 15:02:41.087631000 -0400
++++ libtirpc-0.2.2/src/svc_dg.c 2011-07-19 15:04:43.154243000 -0400
+@@ -254,8 +254,8 @@ svc_dg_reply(xprt, msg)
+ XDR_SETPOS(xdrs, 0);
+ msg->rm_xid = su->su_xid;
+ if (xdr_replymsg(xdrs, msg) &&
+- (!has_args ||
+- (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) {
++ (!has_args || (xprt->xp_auth &&
++ SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) {
+ struct msghdr *msg = &su->su_msghdr;
+ struct iovec iov;
+
+diff -up libtirpc-0.2.2/src/svc_vc.c.orig libtirpc-0.2.2/src/svc_vc.c
+--- libtirpc-0.2.2/src/svc_vc.c.orig 2011-07-19 15:05:28.577588000 -0400
++++ libtirpc-0.2.2/src/svc_vc.c 2011-07-19 15:05:40.058928000 -0400
+@@ -698,8 +698,8 @@ svc_vc_reply(xprt, msg)
+ msg->rm_xid = cd->x_id;
+ rstat = FALSE;
+ if (xdr_replymsg(xdrs, msg) &&
+- (!has_args ||
+- (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) {
++ (!has_args || (xprt->xp_auth &&
++ SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) {
+ rstat = TRUE;
+ }
+ (void)xdrrec_endofrecord(xdrs, TRUE);
diff --git a/core/libtool/PKGBUILD b/core/libtool/PKGBUILD
new file mode 100644
index 000000000..dd52c6771
--- /dev/null
+++ b/core/libtool/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 141370 2011-10-30 06:46:45Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuilt with each new gcc version
+
+pkgname=('libtool' 'libltdl')
+pkgver=2.4.2
+pkgrel=2
+pkgdesc="A generic library support script"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+options=('!libtool')
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.xz{,.sig}
+ nopic.patch)
+md5sums=('2ec8997e0c07249eb4cbd072417d70fe'
+ '1e6ba57420c82c663c85e745d11c7eed'
+ '46443cf0e3e1b4e4891812af73385615')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ [ "$CARCH" = "mips64el" ] && patch -Np1 -i "${srcdir}/nopic.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make check
+}
+
+package_libtool() {
+ depends=('sh' "libltdl=$pkgver" 'tar' 'gcc=4.6.2')
+ groups=('base-devel')
+ install=libtool.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ make DESTDIR=${pkgdir} install-binSCRIPTS install-man install-info \
+ install-data-local
+ rm -rf ${pkgdir}/usr/share/libtool/libltdl/
+}
+
+package_libltdl() {
+ pkgdesc="A system independent dlopen wrapper for GNU libtool"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make DESTDIR=${pkgdir} install-libLTLIBRARIES install-includeHEADERS \
+ install-ltdlincludeHEADERS install-data-local
+ rm -rf ${pkgdir}/usr/share/{aclocal,libtool/config}
+}
diff --git a/core/libtool/libtool.install b/core/libtool/libtool.install
new file mode 100644
index 000000000..73cf56422
--- /dev/null
+++ b/core/libtool/libtool.install
@@ -0,0 +1,20 @@
+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
+}
diff --git a/core/libtool/nopic.patch b/core/libtool/nopic.patch
new file mode 100644
index 000000000..43a712685
--- /dev/null
+++ b/core/libtool/nopic.patch
@@ -0,0 +1,13 @@
+Index: libtool-2.2.6a/tests/demo-nopic.test
+===================================================================
+--- libtool-2.2.6a.orig/tests/demo-nopic.test 2008-11-18 21:11:29.000000000 +0000
++++ libtool-2.2.6a/tests/demo-nopic.test 2008-11-18 21:12:41.000000000 +0000
+@@ -26,7 +26,7 @@
+ . tests/defs || exit 1
+
+ case "$host" in
+-hppa*|x86_64*|s390*)
++hppa*|x86_64*|s390*|mips*|arm*)
+ func_skip "$host doesn't like non-PIC shared libs"
+ ;;
+ *-solaris*|*-sunos*)
diff --git a/core/libusb-compat/PKGBUILD b/core/libusb-compat/PKGBUILD
new file mode 100644
index 000000000..ff8b34a8b
--- /dev/null
+++ b/core/libusb-compat/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142817 2011-11-15 17:24:12Z andrea $
+# Maintainer:
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=libusb-compat
+pkgver=0.1.3
+pkgrel=2
+pkgdesc="Library to enable user space application programs to communicate with USB devices"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libusb' 'sh')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=("http://downloads.sourceforge.net/${pkgname%-*}/${pkgname}-${pkgver%.*}/$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..c7ab438b6
--- /dev/null
+++ b/core/libusb/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142115 2011-11-05 10:15:17Z tpowa $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libusb
+pkgver=1.0.8
+pkgrel=2
+depends=('glibc')
+pkgdesc="Library to enable user space application programs to communicate with USB devices."
+arch=(i686 x86_64 'mips64el')
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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..8202e1853
--- /dev/null
+++ b/core/lilo/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 134681 2011-08-07 15:40:03Z tpowa $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=lilo
+pkgver=23.2
+pkgrel=3
+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/sources/${pkgname}-${pkgver}.tar.gz"
+ 'lilo.conf')
+md5sums=('51b9b9db665d3b8724919e3d46054d12'
+ 'ca2d8cd9b63f11444861939b42df29c1')
+
+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..9d42a2333
--- /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/vmlinuz-linux
+ label=arch
+ root=/dev/hda3
+ initrd=/boot/initramfs-linux.img
+ read-only
+
+image=/boot/vmlinuz-linux
+ label=arch-fallback
+ root=/dev/hda3
+ initrd=/boot/initramfs-linux-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..dd21b968a
--- /dev/null
+++ b/core/links/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 143535 2011-11-26 00:22:27Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=links
+pkgver=2.4
+pkgrel=1
+pkgdesc="A text WWW browser, similar to Lynx"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://links.twibright.com/"
+license=('GPL')
+depends=('bzip2' 'zlib' 'openssl' 'gpm')
+makedepends=('libtiff' 'libpng' 'libxt')
+optdepends=('libx11: for using xlinks' 'libtiff: for using xlinks' 'libpng: for using xlinks')
+provides=('links-g')
+conflicts=('links-g')
+replaces=('links-g')
+source=(http://links.twibright.com/download/${pkgname}-${pkgver}.tar.bz2 links.desktop)
+sha1sums=('c09fcb03874b1d0586f582f73833bb2f4c9ed7ac'
+ 'f600e27c2a71184444f7dd07a10230aa44463a02')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ (cd intl; ./gen-intl; ./synclang)
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
+ --enable-graphics --with-x --with-fb
+ make
+ mv links xlinks
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
+ --disable-graphics --without-x --without-fb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 xlinks "${pkgdir}/usr/bin/xlinks"
+ ln -s links.1.gz "${pkgdir}/usr/share/man/man1/xlinks.1.gz"
+
+ install -D -m644 "${srcdir}/links.desktop" "${pkgdir}/usr/share/applications/links.desktop"
+ install -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm "${pkgdir}/usr/share/pixmaps/"
+
+ install -d "${pkgdir}/usr/share/doc/links/calibration"
+ install -m644 doc/links_cal/* "${pkgdir}/usr/share/doc/links/calibration/"
+}
diff --git a/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..9ed3709f6
--- /dev/null
+++ b/core/linux-api-headers/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 144852 2011-12-08 12:17:11Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=3.1.4
+_basever=3.1
+pkgrel=1
+pkgdesc="Kernel headers sanitized for use in userspace"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/libc"
+license=('GPL2')
+provides=("kernel-headers=${pkgver}")
+conflicts=('kernel-headers')
+replaces=('kernel-headers')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basever}-libre/linux-${_basever}-libre.tar.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basever}-libre-${pkgver}-libre.xz")
+md5sums=('d73df15ab1d36fe3c102755d8f42117f'
+ 'ad965eeb168f19c536722ede6e22983b')
+
+build() {
+ cd ${srcdir}/linux-${_basever}
+ [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${_basever}-libre-${pkgver}-libre
+
+ 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..5134874b1
--- /dev/null
+++ b/core/linux-atm/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142964 2011-11-19 08:22:13Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Surain Mallawa Arachchi <mas@crc32.net>
+
+pkgname=linux-atm
+pkgver=2.5.2
+pkgrel=1
+pkgdesc="Drivers and tools to support ATM networking under Linux."
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glibc')
+url="http://linux-atm.sourceforge.net/"
+license=(GPL)
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ man-pages.patch)
+options=(!libtool !makeflags)
+md5sums=('d49499368c3cf15f73a05d9bce8824a8'
+ '181390736336cdb615ae32f1ae5acfa6')
+
+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..4d31f5f17
--- /dev/null
+++ b/core/logrotate/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 139123 2011-09-30 02:57:48Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=logrotate
+pkgver=3.8.1
+pkgrel=1.1
+pkgdesc="Rotates system logs automatically"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://fedorahosted.org/logrotate/"
+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-3.8.1-noasprintf.patch
+ logrotate.conf
+ logrotate.cron.daily)
+md5sums=('bd2e20d8dc644291b08f9215397d28a5'
+ 'fc8e4e15211d8aefd431d0e2e96223c4'
+ '462a5f364717461537eb2ae6394ad23e'
+ '8e23d5d4cc29b1e055b24df87e355cdc')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ patch -p1 -i "$srcdir"/logrotate-3.8.1-noasprintf.patch
+
+ 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
+}
+
+check() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make test
+}
+
+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-3.8.1-noasprintf.patch b/core/logrotate/logrotate-3.8.1-noasprintf.patch
new file mode 100644
index 000000000..be0c08062
--- /dev/null
+++ b/core/logrotate/logrotate-3.8.1-noasprintf.patch
@@ -0,0 +1,53 @@
+--- logrotate-3.8.0.orig/config.c 2011-06-21 04:12:02.000000000 -0400
++++ logrotate-3.8.0/config.c 2011-07-12 13:47:36.274319050 -0400
+@@ -41,39 +41,6 @@
+ #include "asprintf.c"
+ #endif
+
+-#if !defined(asprintf)
+-#include <stdarg.h>
+-
+-int asprintf(char **string_ptr, const char *format, ...)
+-{
+- va_list arg;
+- char *str;
+- int size;
+- int rv;
+-
+- va_start(arg, format);
+- size = vsnprintf(NULL, 0, format, arg);
+- size++;
+- va_start(arg, format);
+- str = malloc(size);
+- if (str == NULL) {
+- va_end(arg);
+- /*
+- * Strictly speaking, GNU asprintf doesn't do this,
+- * but the caller isn't checking the return value.
+- */
+- fprintf(stderr, "failed to allocate memory\\n");
+- exit(1);
+- }
+- rv = vsnprintf(str, size, format, arg);
+- va_end(arg);
+-
+- *string_ptr = str;
+- return (rv);
+-}
+-
+-#endif
+-
+ #if !defined(strndup)
+ char *strndup(const char *s, size_t n)
+ {
+--- logrotate-3.8.0.orig/logrotate.h 2011-06-21 04:12:02.000000000 -0400
++++ logrotate-3.8.0/logrotate.h 2011-07-12 13:47:38.949285608 -0400
+@@ -66,8 +66,5 @@ extern int numLogs;
+ extern int debug;
+
+ int readAllConfigPaths(const char **paths);
+-#if !defined(asprintf)
+-int asprintf(char **string_ptr, const char *format, ...);
+-#endif
+
+ #endif
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/11-dm-initramfs.rules b/core/lvm2/11-dm-initramfs.rules
new file mode 100644
index 000000000..d2c167324
--- /dev/null
+++ b/core/lvm2/11-dm-initramfs.rules
@@ -0,0 +1,3 @@
+# needed with new udev/mkinitcpio and as implemented in dracut:
+# <http://git.kernel.org/?p=boot/dracut/dracut.git;a=commitdiff;h=12b9736228f2b34c15a9cb63be79cf7b6e865b54>
+SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist"
diff --git a/core/lvm2/PKGBUILD b/core/lvm2/PKGBUILD
new file mode 100644
index 000000000..f736cc8ac
--- /dev/null
+++ b/core/lvm2/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 136115 2011-08-23 03:22:03Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgbase=lvm2
+pkgname=('lvm2' 'device-mapper')
+pkgver=2.02.88
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceware.org/lvm2/"
+license=('GPL2' 'LGPL2.1')
+groups=('base')
+source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${pkgver}.tgz
+ lvm2_install
+ lvm2_hook
+ 11-dm-initramfs.rules)
+md5sums=('321429cd1b1526a29cf6d75018b1e4bb'
+ 'dcb82506d732cc7b10159a89b579dba8'
+ '8d613b84a175cd85f752a75198e40e15'
+ '69e40679cd8b3658bfc619e48baae125')
+sha1sums=('05a4fb09cb5e3d680ad1b268c941968853fb1979'
+ '7f108b2f2056eb050fc898bf5190ecf9145aed8a'
+ 'a0e0513c2efb183006e57e595d93ce18be297928'
+ 'f6a554eea9557c3c236df2943bb6e7e723945c41')
+
+build() {
+ cd "${srcdir}/LVM2.${pkgver}"
+ 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.${pkgver}"
+ make DESTDIR="${pkgdir}" install_device-mapper
+ # extra udev rule for device-mapper in initramfs
+ install -D -m644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/lib/initcpio/udev/11-dm-initramfs.rules"
+}
+
+package_lvm2() {
+ pkgdesc="Logical Volume Manager 2 utilities"
+ depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline')
+ conflicts=('lvm' 'mkinitcpio<0.7')
+ backup=('etc/lvm/lvm.conf')
+ options=('!makeflags')
+
+ cd "${srcdir}/LVM2.${pkgver}"
+ make DESTDIR="${pkgdir}" install_lvm2
+ # install applib
+ make -C liblvm DESTDIR="${pkgdir}" install
+ # /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..874b91d06
--- /dev/null
+++ b/core/lvm2/lvm2_hook
@@ -0,0 +1,25 @@
+# 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
+ mkdir /dev/mapper
+ 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..."
+ [ -d /etc/lvm ] && /sbin/lvm vgscan --sysinit
+ 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..94175b523
--- /dev/null
+++ b/core/lvm2/lvm2_install
@@ -0,0 +1,29 @@
+# vim: set ft=sh:
+
+build()
+{
+ MODULES=" dm-mod dm-snapshot dm-mirror"
+ BINARIES=""
+ FILES=""
+ SCRIPT="lvm2"
+
+ 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"
+ add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.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..7b56fe632
--- /dev/null
+++ b/core/lzo2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 136471 2011-08-30 06:25:43Z tpowa $
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=lzo2
+pkgver=2.06
+pkgrel=1
+pkgdesc="Portable lossless data compression library"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('95380bd4081f85ef08c5209f4107e9f8')
+
+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..749937e1a
--- /dev/null
+++ b/core/m4/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 142068 2011-11-04 23:36:00Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=m4
+pkgver=1.4.16
+pkgrel=2.1
+pkgdesc="The GNU macro processor"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig}
+ m4-1.4.16-readlink-einval.patch)
+md5sums=('7548ec061a1ba993790159764f522d0e'
+ 'eebe5c94e74e7551e2e30c5844f1b653'
+ 'cea138fa9b568d06e46269611cec8dd0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/m4-1.4.16-readlink-einval.patch
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make prefix=${pkgdir}/usr install
+}
diff --git a/core/m4/m4-1.4.16-readlink-einval.patch b/core/m4/m4-1.4.16-readlink-einval.patch
new file mode 100644
index 000000000..6a987510d
--- /dev/null
+++ b/core/m4/m4-1.4.16-readlink-einval.patch
@@ -0,0 +1,12 @@
+diff -up m4-1.4.16/tests/test-readlink.h.orig m4-1.4.16/tests/test-readlink.h
+--- m4-1.4.16/tests/test-readlink.h.orig 2011-09-19 12:44:58.745546826 +0200
++++ m4-1.4.16/tests/test-readlink.h 2011-09-19 12:46:00.079548410 +0200
+@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char con
+ ASSERT (errno == ENOENT);
+ errno = 0;
+ ASSERT (func ("", buf, sizeof buf) == -1);
+- ASSERT (errno == ENOENT);
++ ASSERT (errno == ENOENT || errno == EINVAL);
+ errno = 0;
+ ASSERT (func (".", buf, sizeof buf) == -1);
+ ASSERT (errno == EINVAL);
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..4106f80fa
--- /dev/null
+++ b/core/make/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 138005 2011-09-14 05:05:13Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=make
+pkgver=3.82
+pkgrel=4
+pkgdesc="GNU make utility to maintain groups of programs"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make-3.82-makeflags.patch)
+md5sums=('1a11100f3c63fcf5753818e59d63088f'
+ 'c8f496b22191f9fb9420ab14c1a19a47'
+ '662e6450e19a5acdaa5c9fcb8ad78dea'
+ '7d01a99f389d8f08dec93ed479071ee4'
+ 'bc12ad4d0c6e6c0e72d9fb61054f446b')
+
+
+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
+
+ # https://savannah.gnu.org/support/index.php?107487
+ # https://savannah.gnu.org/bugs/?33873
+ patch -Np0 -i $srcdir/make-3.82-makeflags.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/make/bug30612.patch b/core/make/bug30612.patch
new file mode 100644
index 000000000..fb843bcd9
--- /dev/null
+++ b/core/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/core/make/bug30723.patch b/core/make/bug30723.patch
new file mode 100644
index 000000000..84e7ebe7a
--- /dev/null
+++ b/core/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/core/make/make-3.82-makeflags.patch b/core/make/make-3.82-makeflags.patch
new file mode 100644
index 000000000..3cba3c402
--- /dev/null
+++ b/core/make/make-3.82-makeflags.patch
@@ -0,0 +1,36 @@
+Index: main.c
+===================================================================
+RCS file: /sources/make/make/main.c,v
+retrieving revision 1.246
+diff -u -r1.246 main.c
+--- main.c 29 Aug 2010 23:05:27 -0000 1.246
++++ main.c 27 Jul 2011 22:03:12 -0000
+@@ -2091,10 +2095,16 @@
+
+ /* Reset makeflags in case they were changed. */
+ {
++ if (master_job_slots)
++ {
++ assert (job_slots == default_job_slots);
++ job_slots = master_job_slots;
++ }
+ const char *pv = define_makeflags (1, 1);
+ char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1);
+ sprintf (p, "MAKEFLAGS=%s", pv);
+ putenv (allocated_variable_expand (p));
++ job_slots = default_job_slots;
+ }
+
+ if (ISDB (DB_BASIC))
+@@ -2825,9 +2852,11 @@
+ && (*(unsigned int *) cs->value_ptr ==
+ *(unsigned int *) cs->noarg_value))
+ ADD_FLAG ("", 0); /* Optional value omitted; see below. */
++#if 0
+ else if (cs->c == 'j')
+ /* Special case for `-j'. */
+ ADD_FLAG ("1", 1);
++#endif
+ else
+ {
+ char *buf = alloca (30);
diff --git a/core/make/make-3.82-sort-blank.patch b/core/make/make-3.82-sort-blank.patch
new file mode 100644
index 000000000..2e73f5b7c
--- /dev/null
+++ b/core/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/core/make/make.install b/core/make/make.install
new file mode 100644
index 000000000..6cf8b0dc4
--- /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/1361_1360.diff b/core/man-db/1361_1360.diff
new file mode 100644
index 000000000..c93856980
--- /dev/null
+++ b/core/man-db/1361_1360.diff
@@ -0,0 +1,25 @@
+=== modified file 'src/straycats.c'
+--- src/straycats.c 2011-01-10 20:08:22 +0000
++++ src/straycats.c 2011-06-04 06:34:51 +0000
+@@ -177,6 +177,7 @@
+ char *lang, *page_encoding;
+ char *mandir_base;
+ pipecmd *col_cmd;
++ char *col_locale;
+ char *fullpath;
+
+ /* we have a straycat. Need to filter it and get
+@@ -226,6 +227,12 @@
+ col_cmd = pipecmd_new_argstr
+ (get_def_user ("col", COL));
+ pipecmd_arg (col_cmd, "-bx");
++ col_locale = find_charset_locale ("UTF-8");
++ if (col_locale) {
++ pipecmd_setenv (col_cmd, "LC_CTYPE",
++ col_locale);
++ free (col_locale);
++ }
+ pipeline_command (decomp, col_cmd);
+
+ fullpath = canonicalize_file_name (catdir);
+
diff --git a/core/man-db/PKGBUILD b/core/man-db/PKGBUILD
new file mode 100644
index 000000000..c2cbd3f21
--- /dev/null
+++ b/core/man-db/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 143802 2011-11-29 13:32:56Z stephane $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+
+pkgname=man-db
+pkgver=2.6.0.2
+pkgrel=3
+pkgdesc="A utility for reading man pages"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nongnu.org/man-db/"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=( 'bash' 'gdbm' 'zlib' 'groff' 'libpipeline')
+optdepends=('less' 'gzip')
+backup=('etc/man_db.conf'
+ 'etc/cron.daily/man-db')
+conflicts=('man')
+provides=('man')
+replaces=('man')
+install=${pkgname}.install
+source=(http://savannah.nongnu.org/download/man-db/$pkgname-$pkgver.tar.gz
+ 1361_1360.diff
+ #http://launchpad.net/man-db/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
+ convert-mans man-db.cron.daily)
+options=('!libtool')
+md5sums=('2b41c96efec032d2b74ccbf2e401f93e'
+ '08b76b1f924c5493a280b79fc0aebde4'
+ '2b7662a7d5b33fe91f9f3e034361a2f6'
+ 'd30c39ae47560304471b5461719e0f03')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # https://bugs.archlinux.org/task/18722
+ patch -Np0 -i $srcdir/1361_1360.diff
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --with-db=gdbm --disable-setuid --enable-mandirs=GNU \
+ --with-sections="1 n l 8 3 0 2 5 4 9 6 7"
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # part of groff pkg
+ rm -f ${pkgdir}/usr/bin/zsoelim
+
+ # script from LFS to convert manpages, see
+ # http://www.linuxfromscratch.org/lfs/view/6.4/chapter06/man-db.html
+ install -D -m755 ${srcdir}/convert-mans ${pkgdir}/usr/bin/convert-mans
+
+ #install whatis cron script
+ install -D -m744 ${srcdir}/man-db.cron.daily ${pkgdir}/etc/cron.daily/man-db
+}
+
diff --git a/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..f6f0f27a6
--- /dev/null
+++ b/core/man-db/man-db.install
@@ -0,0 +1,22 @@
+post_install() {
+ echo "it's recommended to create an initial"
+ echo "database running as root:"
+ echo "\"/usr/bin/mandb --quiet\""
+}
+
+post_upgrade() {
+ if [ "`vercmp $2 2.5.3-2`" -lt 0 ]; then
+ echo "systemuser \"man\" is no more required"
+ echo "run \"userdel man\". please also"
+ echo "chown root:root /var/cache/man"
+ fi
+ # force database rebuild to get rid off badly imported pages
+ if [ "`vercmp $2 2.6.0.2`" -lt 0 ]; then
+ echo "(re)building database..."
+ mandb -c --quiet
+ fi
+}
+
+post_remove() {
+ rm -rf /var/cache/man
+}
diff --git a/core/mdadm/PKGBUILD b/core/mdadm/PKGBUILD
new file mode 100644
index 000000000..d793695f0
--- /dev/null
+++ b/core/mdadm/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 138138 2011-09-17 10:36:09Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+pkgname=mdadm
+pkgver=3.2.2
+pkgrel=4
+pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://www.cse.unsw.edu.au/~neilb/source/mdadm/"
+groups=('base')
+conflicts=('mkinitcpio<0.7')
+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
+ mdadm_udev_install
+ disable-werror.patch
+ linux-3.0.patch)
+install=mdadm.install
+replaces=('raidtools')
+md5sums=('12ee2fbf3beddb60601fb7a4c4905651'
+ '6df172c8f77b280018cf87eb3d313f29'
+ '00cbed931db4f15b6ce49e3e7d433966'
+ '9b01e96b6c3c218fb61628c9281fe688'
+ 'c8c0713f5c7da51822ee6f3911473a1c'
+ 'cd258e1bf430c02a25f40b4329df9f57'
+ '4ad87b74a4bc9a34621280abe0e0c3e4'
+ 'c499b3edbf2c400c8a1984e18c7ce7fa')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np0 -i ../disable-werror.patch
+ patch -Np1 -i ../linux-3.0.patch
+ make CXFLAGS="$CFLAGS"
+ # build static mdassemble for Arch's initramfs
+ make MDASSEMBLE_AUTO=1 mdassemble
+
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make INSTALL=/bin/install DESTDIR=$pkgdir install
+ install -D -m755 mdassemble $pkgdir/sbin/mdassemble
+ 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
+ install -D -m644 ../mdadm_udev_install $pkgdir/lib/initcpio/install/mdadm_udev
+ # symlink for backward compatibility
+ ln -sf /lib/initcpio/hooks/mdadm $pkgdir/lib/initcpio/hooks/raid
+}
diff --git a/core/mdadm/disable-werror.patch b/core/mdadm/disable-werror.patch
new file mode 100644
index 000000000..50a33f19d
--- /dev/null
+++ b/core/mdadm/disable-werror.patch
@@ -0,0 +1,11 @@
+--- Makefile.old 2011-06-17 09:38:03.269238332 +0200
++++ Makefile 2011-06-17 09:38:14.122398837 +0200
+@@ -42,7 +42,7 @@
+
+ CC = $(CROSS_COMPILE)gcc
+ CXFLAGS = -ggdb
+-CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
++CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
+ ifdef WARN_UNUSED
+ CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O
+ endif
diff --git a/core/mdadm/linux-3.0.patch b/core/mdadm/linux-3.0.patch
new file mode 100644
index 000000000..cd9d5473c
--- /dev/null
+++ b/core/mdadm/linux-3.0.patch
@@ -0,0 +1,45 @@
+From f161d047eed634b3380262767f955eb888502e88 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Fri, 17 Jun 2011 22:49:24 +1000
+Subject: [PATCH 1/1] util: correctly parse shorter linux version numbers.
+
+The next version of Linux might be 3.0. If it is, get_linux_version
+will fail.
+So make it more robust.
+
+Reported-by: Namhyung Kim <namhyung@gmail.com>
+Reported-by: Milan Broz <mbroz@redhat.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ util.c | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/util.c b/util.c
+index 10bbe56..55d171a 100644
+--- a/util.c
++++ b/util.c
+@@ -146,16 +146,16 @@ int get_linux_version()
+ {
+ struct utsname name;
+ char *cp;
+- int a,b,c;
++ int a = 0, b = 0,c = 0;
+ if (uname(&name) <0)
+ return -1;
+
+ cp = name.release;
+ a = strtoul(cp, &cp, 10);
+- if (*cp != '.') return -1;
+- b = strtoul(cp+1, &cp, 10);
+- if (*cp != '.') return -1;
+- c = strtoul(cp+1, NULL, 10);
++ if (*cp == '.')
++ b = strtoul(cp+1, &cp, 10);
++ if (*cp == '.')
++ c = strtoul(cp+1, &cp, 10);
+
+ return (a*1000000)+(b*1000)+c;
+ }
+--
+1.7.2.3
+
diff --git a/core/mdadm/mdadm b/core/mdadm/mdadm
new file mode 100755
index 000000000..e196f3642
--- /dev/null
+++ b/core/mdadm/mdadm
@@ -0,0 +1,37 @@
+#!/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
+ 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..7b2dc1ad1
--- /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
+}
diff --git a/core/mdadm/mdadm_install b/core/mdadm/mdadm_install
new file mode 100644
index 000000000..b53258676
--- /dev/null
+++ b/core/mdadm/mdadm_install
@@ -0,0 +1,45 @@
+# vim: set ft=sh:
+
+build()
+{
+ 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"
+}
+
+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/mdadm/mdadm_udev_install b/core/mdadm/mdadm_udev_install
new file mode 100644
index 000000000..9fc161624
--- /dev/null
+++ b/core/mdadm/mdadm_udev_install
@@ -0,0 +1,23 @@
+# vim: set ft=sh:
+
+build()
+{
+ MODULES=" $(checked_modules "drivers/md/*" | grep -v "dm-") "
+ BINARIES=""
+ FILES=""
+ SCRIPT=""
+ # 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/mdadm"
+ add_file "/lib/udev/rules.d/64-md-raid.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook loads raid arrays with udev.
+HELPEOF
+}
diff --git a/core/mkinitcpio-busybox/PKGBUILD b/core/mkinitcpio-busybox/PKGBUILD
new file mode 100644
index 000000000..22980acea
--- /dev/null
+++ b/core/mkinitcpio-busybox/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 141112 2011-10-24 09:59:21Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=mkinitcpio-busybox
+pkgver=1.19.2
+pkgrel=1.1
+pkgdesc="base initramfs tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.busybox.net/"
+license=('GPL')
+depends=('glibc')
+options=('!buildflags')
+source=("http://busybox.net/downloads/busybox-$pkgver.tar.bz2"
+ 'config')
+sha256sums=('ea7ec9b6df70b8c528f4a2b6300e9913431c7223308fb08dfafa7508d75a0cb9'
+ '21ae2cd21e33ba1ef9500a9b14273579fc554bf995cfd7907fb3fe94fc162cf8')
+
+build() {
+ cd "$srcdir/busybox-$pkgver"
+
+ case $CARCH in
+ mips64el)
+ local safeflags='loongson2f -O2 -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -Os -pipe -fno-strict-aliasing' ;;
+ *)
+ local safeflags="${CARCH/_/-} -mtune=generic -Os -pipe -fno-strict-aliasing" ;;
+ esac
+
+ sed 's|^\(CONFIG_EXTRA_CFLAGS\)=.*|\1="-march='"$safeflags"'"|' \
+ "$srcdir/config" > .config
+
+ make
+}
+
+package() {
+ install -Dm755 "$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..86160a203
--- /dev/null
+++ b/core/mkinitcpio-busybox/config
@@ -0,0 +1,1013 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.19.2
+# Sun Oct 16 15:24:19 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_UTMP is not set
+# CONFIG_FEATURE_WTMP 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_FEATURE_SYSTEMD is not set
+# CONFIG_FEATURE_RTMINMAX is not set
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=0
+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_REVERSE_SEARCH 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_FEATURE_SKIP_ROOTFS=y
+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_ID is not set
+# CONFIG_GROUPS is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=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_WHO is not set
+# CONFIG_USERS 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_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+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=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 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=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+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=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+# CONFIG_TEE is not set
+# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
+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_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
+
+#
+# Common options for md5sum, sha1sum, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# 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_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_REGEX_SEARCH is not set
+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_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_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=y
+# 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
+# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP 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_FEATURE_BLKID_TYPE 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 is not set
+# 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_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_ASK_TERMINAL is not set
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_SETSERIAL is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+# CONFIG_UBIMKVOL is not set
+# CONFIG_UBIRMVOL is not set
+# CONFIG_UBIRSVOL is not set
+# CONFIG_UBIUPDATEVOL 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_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_NAMEIF is not set
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+# CONFIG_NBDCLIENT is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_WHOIS 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_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_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_FEATURE_UDHCPD_BASE_IP_ON_MAC 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_FEATURE_UDHCP_8021Q 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_NMETER is not set
+# CONFIG_PMAP is not set
+# CONFIG_POWERTOP is not set
+# CONFIG_PSTREE is not set
+# CONFIG_PWDX is not set
+# CONFIG_SMEMCAP is not set
+CONFIG_UPTIME=y
+# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
+CONFIG_FREE=y
+# CONFIG_FUSER is not set
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+# CONFIG_KILLALL5 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_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_IDLE_TIMEOUT is not set
+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
+# CONFIG_FEATURE_SH_HISTFILESIZE 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_CFG 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-nfs-utils/PKGBUILD b/core/mkinitcpio-nfs-utils/PKGBUILD
new file mode 100644
index 000000000..69b494888
--- /dev/null
+++ b/core/mkinitcpio-nfs-utils/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 138224 2011-09-19 12:04:53Z pierre $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=mkinitcpio-nfs-utils
+pkgver=0.2
+pkgrel=2
+pkgdesc="ipconfig and nfsmount tools for NFS root support in mkinitcpio"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/mkinitcpio/PKGBUILD b/core/mkinitcpio/PKGBUILD
new file mode 100644
index 000000000..faed61e50
--- /dev/null
+++ b/core/mkinitcpio/PKGBUILD
@@ -0,0 +1,30 @@
+pkgname=mkinitcpio
+pkgver=0.7.5
+pkgrel=1
+pkgdesc="Modular initramfs image creation utility"
+arch=('mips64el')
+url="http://www.archlinux.org/"
+license=('GPL')
+depends=('mkinitcpio-busybox>=1.16.1-2' 'module-init-tools' 'util-linux>=2.19' 'libarchive' 'coreutils'
+ 'bash' 'findutils' 'sed' 'grep' 'filesystem>=2011.10-1' 'udev>=174-1' 'file' 'gzip')
+optdepends=('xz: Use lzma or xz compression for the initramfs image'
+ 'bzip2: Use bzip2 compression for the initramfs image'
+ 'lzop: Use lzo compression for the initramfs image'
+ 'mkinitcpio-nfs-utils: Support for root filesystem on NFS')
+replaces=('mkinitrd' 'mkinitramfs' 'klibc' 'klibc-extras' 'klibc-kbd'
+ 'klibc-module-init-tools' 'klibc-udev')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'patch.patch')
+backup=(etc/mkinitcpio.conf)
+sha256sums=('3210e27fe689a021996d902c117b9c49dd9463c4424a2b3e2c428a4e4f31bff9'
+ 'abf6bb9d692838cc2f97f12f0901f0209dbf6f437f9590accd26dbcfc48f1b16')
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch install/base ../patch.patch
+
+ make DESTDIR="$pkgdir" install
+}
+sha256sums=('3210e27fe689a021996d902c117b9c49dd9463c4424a2b3e2c428a4e4f31bff9'
+ 'bb6517e0497cc43aea1287e43b0be2892b7af74add5eca3f3740b091f997729e')
diff --git a/core/mkinitcpio/patch.patch b/core/mkinitcpio/patch.patch
new file mode 100644
index 000000000..62dadac32
--- /dev/null
+++ b/core/mkinitcpio/patch.patch
@@ -0,0 +1,11 @@
+--- install/base 2011-10-22 12:37:45.000000000 -0300
++++ install/base.orig 2011-11-03 19:54:45.574991740 -0300
+@@ -1,7 +1,7 @@
+ #!/bin/bash
+
+ build() {
+- for dir in new_root proc sys dev run usr/{bin,sbin}; do
++ for dir in new_root proc sys dev run usr/{bin,sbin} lib32; do
+ add_dir "/$dir"
+ done
+
diff --git a/core/mlocate/PKGBUILD b/core/mlocate/PKGBUILD
new file mode 100644
index 000000000..818bae57c
--- /dev/null
+++ b/core/mlocate/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 142070 2011-11-04 23:36:03Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: lydgate
+
+pkgname=mlocate
+pkgver=0.24
+pkgrel=2
+pkgdesc="Faster merging drop-in for slocate"
+arch=('i686' 'x86_64' 'mips64el')
+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=('a9c221e5bc489a2ed710c943990137bd'
+ 'c374ff223f2e07b5e602ba22359f2335'
+ 'cde5da81bebad2de556ef2e43d895e13')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i '/^groupname /s/mlocate/locate/' Makefile.in
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib
+ make
+
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ 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..1e3b467f9
--- /dev/null
+++ b/core/module-init-tools/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 144465 2011-12-06 10:57:39Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=module-init-tools
+pkgver=3.16
+pkgrel=3
+pkgdesc="Utilities needed by Linux systems for managing loadable kernel modules"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://modules.wiki.kernel.org"
+license=('GPL')
+depends=('glibc')
+makedepends=('docbook2x')
+backup=('etc/modprobe.d/modprobe.conf'
+ 'etc/depmod.d/depmod.conf')
+source=("http://www.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.bz2"
+ modprobe.conf
+ depmod.conf
+ docfix.patch)
+md5sums=('bc44832c6e41707b8447e2847d2019f5'
+ '325657db471b3190f685e5a89c9b90e3'
+ '4b8cbcbc54b9029c99fd730e257d4436'
+ '4320d19902ded43bed55c804b065cdc7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fix headers in SGML manpage sources and an XML typo
+ patch -Np0 < "$srcdir/docfix.patch"
+
+ ./configure --prefix=/usr --exec-prefix=/ --enable-zlib
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR=$pkgdir install
+
+ # extra modprobe.d and depmod.d conf dirs
+ install -dm755 "$pkgdir/lib/modprobe.d" "$pkgdir/etc/depmod.d"
+
+ # Install custom depmod config to allow searching extramodules/
+ install -Dm644 "$srcdir/depmod.conf" "$pkgdir/etc/depmod.d/depmod.conf"
+
+ # Install our custom (empty) modprobe.conf
+ install -Dm644 "$srcdir/modprobe.conf" "$pkgdir/etc/modprobe.d/modprobe.conf"
+}
diff --git a/core/module-init-tools/depmod.conf b/core/module-init-tools/depmod.conf
new file mode 100644
index 000000000..3feb67b05
--- /dev/null
+++ b/core/module-init-tools/depmod.conf
@@ -0,0 +1,5 @@
+#
+# /etc/depmod.d/depmod.conf
+#
+
+search updates extramodules built-in
diff --git a/core/module-init-tools/docfix.patch b/core/module-init-tools/docfix.patch
new file mode 100644
index 000000000..0151ca3f1
--- /dev/null
+++ b/core/module-init-tools/docfix.patch
@@ -0,0 +1,90 @@
+--- doc/depmod.conf.sgml.orig 2011-06-25 10:07:15.897805024 -0400
++++ doc/depmod.conf.sgml 2011-06-25 10:07:48.810805020 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/depmod.sgml.orig 2011-06-25 10:07:15.898805024 -0400
++++ doc/depmod.sgml 2011-06-25 10:07:56.636805021 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+@@ -52,7 +52,7 @@
+ <arg><option>-n</option></arg>
+ <arg><option>-v</option></arg>
+ <arg><option>-P <replaceable>prefix</replaceable></option></arg>
+- <arg><option>-w</option><arg>
++ <arg><option>-w</option></arg>
+ <arg><option><replaceable>version</replaceable></option></arg>
+ <arg rep='repeat'><option><replaceable>filename</replaceable></option></arg>
+ </cmdsynopsis>
+--- doc/insmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
++++ doc/insmod.sgml 2011-06-25 10:07:59.228805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/lsmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
++++ doc/lsmod.sgml 2011-06-25 10:08:04.804805020 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modinfo.sgml.orig 2011-06-25 10:07:15.900805024 -0400
++++ doc/modinfo.sgml 2011-06-25 10:08:07.630805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modprobe.conf.sgml.orig 2011-06-25 10:07:15.901805024 -0400
++++ doc/modprobe.conf.sgml 2011-06-25 10:08:10.173805018 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modprobe.sgml.orig 2011-06-25 10:07:15.902805024 -0400
++++ doc/modprobe.sgml 2011-06-25 10:08:13.623805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modules.dep.sgml.orig 2011-06-25 10:07:15.903805024 -0400
++++ doc/modules.dep.sgml 2011-06-25 10:08:19.323805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/rmmod.sgml.orig 2011-06-25 10:07:15.904805024 -0400
++++ doc/rmmod.sgml 2011-06-25 10:08:27.691805017 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
diff --git a/core/module-init-tools/modprobe.conf b/core/module-init-tools/modprobe.conf
new file mode 100644
index 000000000..551bdfbdf
--- /dev/null
+++ b/core/module-init-tools/modprobe.conf
@@ -0,0 +1,3 @@
+#
+# /etc/modprobe.d/modprobe.conf
+#
diff --git a/core/mpfr/PKGBUILD b/core/mpfr/PKGBUILD
new file mode 100644
index 000000000..f51d9e2a0
--- /dev/null
+++ b/core/mpfr/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 142421 2011-11-09 09:27:32Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=mpfr
+_pkgver=3.1.0
+_patchlevel=p3
+pkgver=${_pkgver}.${_patchlevel}
+pkgrel=1
+pkgdesc="Multiple-precision floating-point library"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.mpfr.org/"
+license=('LGPL')
+depends=('gmp>=5.0')
+options=('!libtool')
+install=mpfr.install
+source=(http://www.mpfr.org/mpfr-current/mpfr-${_pkgver}.tar.xz{,.asc}
+ mpfr-${_pkgver}.${_patchlevel}.patch)
+md5sums=('6e495841bb026481567006cec0f821c3'
+ '293374ee4b01527f8f7889fdfa9016f8'
+ 'd65858ccddbea968d6580124320fb6a0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ patch -Np1 -i $srcdir/mpfr-${_pkgver}.${_patchlevel}.patch
+ ./configure --prefix=/usr --enable-thread-safe --enable-shared
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/mpfr/mpfr-3.1.0.p3.patch b/core/mpfr/mpfr-3.1.0.p3.patch
new file mode 100644
index 000000000..16d944047
--- /dev/null
+++ b/core/mpfr/mpfr-3.1.0.p3.patch
@@ -0,0 +1,393 @@
+diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
+--- mpfr-3.1.0-a/PATCHES 2011-10-05 21:39:57.000000000 +0000
++++ mpfr-3.1.0-b/PATCHES 2011-10-05 21:39:57.000000000 +0000
+@@ -0,0 +1 @@
++mpfr_unlikely
+diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
+--- mpfr-3.1.0-a/VERSION 2011-10-03 08:17:15.000000000 +0000
++++ mpfr-3.1.0-b/VERSION 2011-10-05 21:39:57.000000000 +0000
+@@ -1 +1 @@
+-3.1.0
++3.1.0-p1
+diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h
+--- mpfr-3.1.0-a/src/mpfr-impl.h 2011-10-03 08:17:09.000000000 +0000
++++ mpfr-3.1.0-b/src/mpfr-impl.h 2011-10-05 21:39:57.000000000 +0000
+@@ -988,10 +988,11 @@
+ ******************************************************/
+
+ /* Theses macros help the compiler to determine if a test is
+- * likely or unlikely. */
++ likely or unlikely. The !! is necessary in case x is larger
++ than a long. */
+ #if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0)
+ # define MPFR_LIKELY(x) (__builtin_expect(!!(x),1))
+-# define MPFR_UNLIKELY(x) (__builtin_expect((x),0))
++# define MPFR_UNLIKELY(x) (__builtin_expect(!!(x),0))
+ #else
+ # define MPFR_LIKELY(x) (x)
+ # define MPFR_UNLIKELY(x) (x)
+diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
+--- mpfr-3.1.0-a/src/mpfr.h 2011-10-03 08:17:09.000000000 +0000
++++ mpfr-3.1.0-b/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 1
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.1.0"
++#define MPFR_VERSION_STRING "3.1.0-p1"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
+--- mpfr-3.1.0-a/src/version.c 2011-10-03 08:17:09.000000000 +0000
++++ mpfr-3.1.0-b/src/version.c 2011-10-05 21:39:57.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.1.0";
++ return "3.1.0-p1";
+ }
+diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
+--- mpfr-3.1.0-a/PATCHES 2011-10-14 10:43:32.000000000 +0000
++++ mpfr-3.1.0-b/PATCHES 2011-10-14 10:43:32.000000000 +0000
+@@ -0,0 +1 @@
++lib-search-path
+diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
+--- mpfr-3.1.0-a/VERSION 2011-10-05 21:39:57.000000000 +0000
++++ mpfr-3.1.0-b/VERSION 2011-10-14 10:43:32.000000000 +0000
+@@ -1 +1 @@
+-3.1.0-p1
++3.1.0-p2
+diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
+--- mpfr-3.1.0-a/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000
++++ mpfr-3.1.0-b/src/mpfr.h 2011-10-14 10:43:32.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 1
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.1.0-p1"
++#define MPFR_VERSION_STRING "3.1.0-p2"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
+--- mpfr-3.1.0-a/src/version.c 2011-10-05 21:39:57.000000000 +0000
++++ mpfr-3.1.0-b/src/version.c 2011-10-14 10:43:32.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.1.0-p1";
++ return "3.1.0-p2";
+ }
+diff -Naurd mpfr-3.1.0-a/tests/Makefile.am mpfr-3.1.0-b/tests/Makefile.am
+--- mpfr-3.1.0-a/tests/Makefile.am 2011-10-03 08:17:14.000000000 +0000
++++ mpfr-3.1.0-b/tests/Makefile.am 2011-10-03 08:17:14.000000000 +0000
+@@ -65,8 +65,24 @@
+ TESTS = $(check_PROGRAMS)
+ TESTS_ENVIRONMENT = MPFR_QUIET=1 $(VALGRIND)
+
+-# Option to prevent libtool from generating wrapper scripts for the tests.
++# The -no-install option prevents libtool from generating wrapper scripts
++# for the tests.
+ # This is useful to easily run the test scripts under valgrind or gdb.
+ # See discussion http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28033
+ # http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28140 in particular.
+-AM_LDFLAGS = -no-install
++#
++# The -L$(top_builddir)/src/.libs option is necessary for some platforms,
++# such as HP-UX, when --with-gmp or --with-gmp-lib is used and an old MPFR
++# library is already installed in the corresponding lib directory: its
++# purpose is to make sure that the local .libs comes first in the library
++# search path (otherwise the tests are linked against the old MPFR library
++# by the LINK command -- see the generated Makefile). See:
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00042.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00043.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00044.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00066.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00065.html
++# and
++# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9728
++#
++AM_LDFLAGS = -no-install -L$(top_builddir)/src/.libs
+diff -Naurd mpfr-3.1.0-a/tests/Makefile.in mpfr-3.1.0-b/tests/Makefile.in
+--- mpfr-3.1.0-a/tests/Makefile.in 2011-10-03 08:17:35.000000000 +0000
++++ mpfr-3.1.0-b/tests/Makefile.in 2011-10-03 08:17:35.000000000 +0000
+@@ -1124,11 +1124,27 @@
+ TESTS = $(check_PROGRAMS)
+ TESTS_ENVIRONMENT = MPFR_QUIET=1 $(VALGRIND)
+
+-# Option to prevent libtool from generating wrapper scripts for the tests.
++# The -no-install option prevents libtool from generating wrapper scripts
++# for the tests.
+ # This is useful to easily run the test scripts under valgrind or gdb.
+ # See discussion http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28033
+ # http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28140 in particular.
+-AM_LDFLAGS = -no-install
++#
++# The -L$(top_builddir)/src/.libs option is necessary for some platforms,
++# such as HP-UX, when --with-gmp or --with-gmp-lib is used and an old MPFR
++# library is already installed in the corresponding lib directory: its
++# purpose is to make sure that the local .libs comes first in the library
++# search path (otherwise the tests are linked against the old MPFR library
++# by the LINK command -- see the generated Makefile). See:
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00042.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00043.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00044.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00066.html
++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00065.html
++# and
++# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9728
++#
++AM_LDFLAGS = -no-install -L$(top_builddir)/src/.libs
+ all: all-am
+
+ .SUFFIXES:
+diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
+--- mpfr-3.1.0-a/PATCHES 2011-11-03 15:15:11.000000000 +0000
++++ mpfr-3.1.0-b/PATCHES 2011-11-03 15:15:11.000000000 +0000
+@@ -0,0 +1 @@
++vasprintf
+diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
+--- mpfr-3.1.0-a/VERSION 2011-10-14 10:43:32.000000000 +0000
++++ mpfr-3.1.0-b/VERSION 2011-11-03 15:15:11.000000000 +0000
+@@ -1 +1 @@
+-3.1.0-p2
++3.1.0-p3
+diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
+--- mpfr-3.1.0-a/src/mpfr.h 2011-10-14 10:43:32.000000000 +0000
++++ mpfr-3.1.0-b/src/mpfr.h 2011-11-03 15:15:11.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 1
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.1.0-p2"
++#define MPFR_VERSION_STRING "3.1.0-p3"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.1.0-a/src/vasprintf.c mpfr-3.1.0-b/src/vasprintf.c
+--- mpfr-3.1.0-a/src/vasprintf.c 2011-10-03 08:17:09.000000000 +0000
++++ mpfr-3.1.0-b/src/vasprintf.c 2011-11-03 15:15:11.000000000 +0000
+@@ -1178,7 +1178,7 @@
+ mpfr_exp_t exp;
+ char * str;
+ const int spec_g = (spec.spec == 'g' || spec.spec == 'G');
+- const int keep_trailing_zeros = spec_g && spec.alt;
++ const int keep_trailing_zeros = !spec_g || spec.alt;
+
+ /* WARNING: an empty precision field is forbidden (it means precision = 6
+ and it should have been changed to 6 before the function call) */
+@@ -1356,7 +1356,7 @@
+ else
+ /* 1 <= |p| */
+ {
+- size_t nsd; /* Number of significant digits */
++ size_t str_len;
+
+ /* Determine the position of the most significant decimal digit. */
+ exp = floor_log10 (p);
+@@ -1365,12 +1365,10 @@
+ /* P is too large to print all its integral part digits */
+ return -1;
+
+- np->ip_size = exp + 1;
+-
+- nsd = spec.prec + np->ip_size;
+ if (dec_info == NULL)
+- {
+- str = mpfr_get_str (NULL, &exp, 10, nsd, p, spec.rnd_mode);
++ { /* this case occurs with mpfr_printf ("%.0RUf", x) with x=9.5 */
++ str =
++ mpfr_get_str (NULL, &exp, 10, spec.prec+exp+1, p, spec.rnd_mode);
+ register_string (np->sl, str);
+ }
+ else
+@@ -1379,81 +1377,60 @@
+ str = dec_info->str;
+ }
+ np->ip_ptr = MPFR_IS_NEG (p) ? ++str : str; /* skip sign */
++ str_len = strlen (str);
++
++ /* integral part */
++ if (exp > str_len)
++ /* mpfr_get_str gives no trailing zero when p is rounded up to the next
++ power of 10 (p integer, so no fractional part) */
++ {
++ np->ip_trailing_zeros = exp - str_len;
++ np->ip_size = str_len;
++ }
++ else
++ np->ip_size = exp;
+
+ if (spec.group)
+ /* thousands separator in integral part */
+ np->thousands_sep = MPFR_THOUSANDS_SEPARATOR;
+
+- if (nsd == 0 || (spec_g && !spec.alt))
+- /* compute how much non-zero digits in integral and fractional
+- parts */
++ /* fractional part */
++ str += np->ip_size;
++ str_len -= np->ip_size;
++ if (!keep_trailing_zeros)
++ /* remove trailing zeros, if any */
+ {
+- size_t str_len;
+- str_len = strlen (str); /* note: the sign has been skipped */
+-
+- if (exp > str_len)
+- /* mpfr_get_str doesn't give the trailing zeros when p is a
+- multiple of 10 (p integer, so no fractional part) */
+- {
+- np->ip_trailing_zeros = exp - str_len;
+- np->ip_size = str_len;
+- if (spec.alt)
+- np->point = MPFR_DECIMAL_POINT;
+- }
+- else
+- /* str may contain some digits which are in fractional part */
++ char *ptr = str + str_len - 1; /* pointer to the last digit of
++ str */
++ while ((*ptr == '0') && (str_len != 0))
+ {
+- char *ptr;
+-
+- ptr = str + str_len - 1; /* points to the end of str */
+- str_len -= np->ip_size; /* number of digits in fractional
+- part */
+-
+- if (!keep_trailing_zeros)
+- /* remove trailing zeros, if any */
+- {
+- while ((*ptr == '0') && (str_len != 0))
+- {
+- --ptr;
+- --str_len;
+- }
+- }
+-
+- if (str_len > INT_MAX)
+- /* too many digits in fractional part */
+- return -1;
+-
+- if (str_len != 0)
+- /* some digits in fractional part */
+- {
+- np->point = MPFR_DECIMAL_POINT;
+- np->fp_ptr = str + np->ip_size;
+- np->fp_size = str_len;
+- }
++ --ptr;
++ --str_len;
+ }
+ }
+- else
+- /* spec.prec digits in fractional part */
++
++ if (str_len > 0)
++ /* some nonzero digits in fractional part */
+ {
+- if (np->ip_size == exp - 1)
+- /* the absolute value of the number has been rounded up to a power
+- of ten.
+- Insert an additional zero in integral part and put the rest of
+- them in fractional part. */
+- np->ip_trailing_zeros = 1;
++ if (str_len > INT_MAX)
++ /* too many digits in fractional part */
++ return -1;
+
+- if (spec.prec != 0)
+- {
+- MPFR_ASSERTD (np->ip_size + np->ip_trailing_zeros == exp);
+- MPFR_ASSERTD (np->ip_size + spec.prec == nsd);
++ np->point = MPFR_DECIMAL_POINT;
++ np->fp_ptr = str;
++ np->fp_size = str_len;
++ }
+
+- np->point = MPFR_DECIMAL_POINT;
+- np->fp_ptr = str + np->ip_size;
+- np->fp_size = spec.prec;
+- }
+- else if (spec.alt)
+- np->point = MPFR_DECIMAL_POINT;
++ if (keep_trailing_zeros && str_len < spec.prec)
++ /* add missing trailing zeros */
++ {
++ np->point = MPFR_DECIMAL_POINT;
++ np->fp_trailing_zeros = spec.prec - np->fp_size;
+ }
++
++ if (spec.alt)
++ /* add decimal point even if no digits follow it */
++ np->point = MPFR_DECIMAL_POINT;
+ }
+
+ return 0;
+diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
+--- mpfr-3.1.0-a/src/version.c 2011-10-14 10:43:32.000000000 +0000
++++ mpfr-3.1.0-b/src/version.c 2011-11-03 15:15:11.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.1.0-p2";
++ return "3.1.0-p3";
+ }
+diff -Naurd mpfr-3.1.0-a/tests/tsprintf.c mpfr-3.1.0-b/tests/tsprintf.c
+--- mpfr-3.1.0-a/tests/tsprintf.c 2011-10-03 08:17:14.000000000 +0000
++++ mpfr-3.1.0-b/tests/tsprintf.c 2011-11-03 15:15:11.000000000 +0000
+@@ -475,6 +475,18 @@
+ check_sprintf ("-1.", "%- #0.1RG", x);
+
+ /* precision zero */
++ mpfr_set_d (x, 9.5, MPFR_RNDN);
++ check_sprintf ("9", "%.0RDf", x);
++ check_sprintf ("10", "%.0RUf", x);
++
++ mpfr_set_d (x, 19.5, MPFR_RNDN);
++ check_sprintf ("19", "%.0RDf", x);
++ check_sprintf ("20", "%.0RUf", x);
++
++ mpfr_set_d (x, 99.5, MPFR_RNDN);
++ check_sprintf ("99", "%.0RDf", x);
++ check_sprintf ("100", "%.0RUf", x);
++
+ mpfr_set_d (x, -9.5, MPFR_RNDN);
+ check_sprintf ("-10", "%.0RDf", x);
+ check_sprintf ("-10", "%.0RYf", x);
+@@ -1078,6 +1090,23 @@
+ mpfr_clear (x);
+ }
+
++static void
++bug20111102 (void)
++{
++ mpfr_t t;
++ char s[100];
++
++ mpfr_init2 (t, 84);
++ mpfr_set_str (t, "999.99999999999999999999", 10, MPFR_RNDN);
++ mpfr_sprintf (s, "%.20RNg", t);
++ if (strcmp (s, "1000") != 0)
++ {
++ printf ("Error in bug20111102, expected 1000, got %s\n", s);
++ exit (1);
++ }
++ mpfr_clear (t);
++}
++
+ /* In particular, the following test makes sure that the rounding
+ * for %Ra and %Rb is not done on the MPFR number itself (as it
+ * would overflow). Note: it has been reported on comp.std.c that
+@@ -1161,6 +1190,7 @@
+ locale = setlocale (LC_ALL, "C");
+ #endif
+
++ bug20111102 ();
+ native_types ();
+ hexadecimal ();
+ binary ();
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..08eb2d3e7
--- /dev/null
+++ b/core/nano/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142207 2011-11-06 08:47:48Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Judd <judd@archlinux.org>
+
+pkgname=nano
+pkgver=2.2.6
+pkgrel=2.1
+pkgdesc="Pico editor clone with enhancements"
+arch=('i686' 'x86_64' 'mips64el')
+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..4c816ce0b
--- /dev/null
+++ b/core/ncurses/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 142072 2011-11-04 23:36:06Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=ncurses
+pkgver=5.9
+pkgrel=2.1
+pkgdesc="System V Release 4.0 curses emulation library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/ncurses/"
+license=('MIT')
+depends=('glibc')
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig})
+md5sums=('8cb9c412e5f2d96bc6f459aa8c6282a1'
+ '014ffdbbfec6d41a9a89d6cbe6434638')
+
+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/net-tools/PKGBUILD b/core/net-tools/PKGBUILD
new file mode 100644
index 000000000..fd9b0d216
--- /dev/null
+++ b/core/net-tools/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142384 2011-11-08 22:05:28Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=net-tools
+pkgver=1.60.20110819cvs
+pkgrel=3.1
+pkgdesc="Configuration tools for Linux networking"
+arch=(i686 x86_64 'mips64el')
+license=('GPL2')
+url="http://www.tazenda.demon.co.uk/phil/net-tools"
+depends=('glibc')
+
+# http://www.tazenda.demon.co.uk/phil/$pkgname/$pkgname-$pkgver.tar.bz2
+# use cvs checkout instead
+source=(ftp://ftp.archlinux.org/other/net-tools/net-tools-1.60.20110819cvs.tar.bz2
+ net-tools-1.60-miiioctl.patch
+ net-tools-1.60-nameif_strncpy.patch)
+options=(!makeflags)
+install=net-tools.install
+sha1sums=('02946449191ff279f9f0f7fd7bc65ae21059a2bf'
+ '654a96bc6575efb4a2e04b49de45d448d240eb6e'
+ '7888000d8fe867e58b5b00fe2bcf6c3041d716b4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i ../net-tools-1.60-miiioctl.patch
+ patch -Np1 -i ${srcdir}/net-tools-1.60-nameif_strncpy.patch
+ yes "" | make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make BASEDIR=$pkgdir update
+
+ # the following is provided by yp-tools
+ rm "${pkgdir}"/bin/{nis,yp}domainname
+ rm "${pkgdir}"/usr/share/man/man1/{nis,yp}domainname.1
+
+ # hostname is provided by inetutils
+ rm "${pkgdir}"/bin/{hostname,dnsdomainname,domainname}
+ rm -rf "${pkgdir}"/usr/share/man/man1
+}
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..6c7f0693d
--- /dev/null
+++ b/core/net-tools/net-tools-1.60-miiioctl.patch
@@ -0,0 +1,17 @@
+--- net-tools-1.60.20110819cvs/include/mii.h 2011-08-19 10:14:00.743873299 +0200
++++ net-tools-1.60.20110819cvs/include/mii.h.new 2011-08-19 10:28:26.500524160 +0200
+@@ -14,11 +14,9 @@
+ /* network interface ioctl's for MII commands */
+ #ifndef SIOCGMIIPHY
+ #warning "SIOCGMIIPHY is not defined by your kernel source"
+-#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.install b/core/net-tools/net-tools.install
new file mode 100644
index 000000000..9eee9e51b
--- /dev/null
+++ b/core/net-tools/net-tools.install
@@ -0,0 +1,12 @@
+post_upgrade() {
+ if [ "$(vercmp $2 1.60-16)" -lt 0 ]; then
+ echo "hostname and {,yp,nis}domainname has moved:"
+ echo "----------"
+ echo "hostname is now in coreutils"
+ echo "domainname is now in yp-tools"
+ echo "their functionality might have changed slightly"
+ echo ""
+ echo "dnsdomainname remains in net-tools"
+ echo "----------"
+ fi
+}
diff --git a/core/net-tools/net-tools.patch b/core/net-tools/net-tools.patch
new file mode 100644
index 000000000..8af2d2159
--- /dev/null
+++ b/core/net-tools/net-tools.patch
@@ -0,0 +1,30 @@
+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/nfs-utils/PKGBUILD b/core/nfs-utils/PKGBUILD
new file mode 100644
index 000000000..4ec7c926d
--- /dev/null
+++ b/core/nfs-utils/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 139845 2011-10-05 07:58:34Z tpowa $
+# 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.5
+pkgrel=1.1
+pkgdesc="Support programs for Network File Systems"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://nfs.sourceforge.net'
+license=('GPL')
+backup=(etc/{exports,idmapd.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf})
+depends=('glibc' 'e2fsprogs' 'rpcbind' 'libtirpc>=0.2.1' 'librpcsecgss>=0.19-2' 'nfsidmap' 'libevent>=2.0.10' 'libgssglue' 'device-mapper')
+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.4-mtab-sym.patch
+ nfs-utils-1.1.4-no-exec.patch)
+install=nfs-utils.install
+md5sums=('8395ac770720b83c5c469f88306d7765'
+ 'dd0d65fc6e8f422fa12520813098264b'
+ 'f73f197a16b02c3e248488ec35c4cf43'
+ 'e619f18354ff958ed624d05d08853d8f'
+ '2bf71def3263325643a09458635520f0'
+ 'ff585faf410a62c4333a027c50b56bae'
+ 'eb4f4027fab6fc1201f1ca04f5954c76'
+ 'e9144277a89a620d9bc80413158a7d27'
+ '7674106eaaa4c149bccd4f05fe3604e9'
+ '4f4827dfc93008dfadd0a530ad0872b2')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ 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
+
+ ./configure --prefix=/usr --enable-nfsv3 --enable-nfsv4 --enable-gss \
+ --without-tcp-wrappers --with-statedir=/var/lib/nfs \
+ --enable-ipv6 --sysconfdir=/etc --enable-libmount-mount
+
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir install
+
+ # support python2 (FS#25120)
+ sed -i '1s/python$/python2/' "$pkgdir"/usr/sbin/{nfsiostat,mountstats}
+
+ # 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/"etc/exports.d
+ 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/kernel-3.0-segfault.patch b/core/nfs-utils/kernel-3.0-segfault.patch
new file mode 100644
index 000000000..3dba94a05
--- /dev/null
+++ b/core/nfs-utils/kernel-3.0-segfault.patch
@@ -0,0 +1,53 @@
+mount.nfs segfaults if kernel version number does not contain
+at least 3 components delimited with a dot.
+
+Avoid this by matching up to three unsigned integers inialised
+to zero, separated by dots.
+
+A version that does not start with an integer is probably a future
+version where the versioning evolved to another scheme.
+Return UINT_MAX which is guaranteed to be higher than existing
+versions. This would also make it possible to easily identify
+versions that do not start with an integer.
+
+Signed-off-by: Luk Claes <luk@...>
+---
+ utils/mount/version.h | 16 +++++++++-------
+ 1 files changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/utils/mount/version.h b/utils/mount/version.h
+index af61a6f..531cf68 100644
+--- a/utils/mount/version.h
++++ b/utils/mount/version.h
+@@ -23,8 +23,8 @@
+ #ifndef _NFS_UTILS_MOUNT_VERSION_H
+ #define _NFS_UTILS_MOUNT_VERSION_H
+
+-#include <stdlib.h>
+-#include <string.h>
++#include <stdio.h>
++#include <limits.h>
+
+ #include <sys/utsname.h>
+
+@@ -37,14 +37,16 @@ static inline unsigned int MAKE_VERSION(unsigned int p, unsigned int q,
+ static inline unsigned int linux_version_code(void)
+ {
+ struct utsname my_utsname;
+- unsigned int p, q, r;
++ unsigned int p, q = 0, r = 0;
+
++ /* UINT_MAX as backward compatibility code should not be run */
+ if (uname(&my_utsname))
+- return 0;
++ return UINT_MAX;
+
+- p = (unsigned int)atoi(strtok(my_utsname.release, "."));
+- q = (unsigned int)atoi(strtok(NULL, "."));
+- r = (unsigned int)atoi(strtok(NULL, "."));
++ /* UINT_MAX as future versions might not start with an integer */
++ if (sscanf(my_utsname.release, "%u.%u.%u", &p, &q, &r) < 1)
++ return UINT_MAX;
++
+ return MAKE_VERSION(p, q, r);
+ }
diff --git a/core/nfs-utils/nfs-common b/core/nfs-utils/nfs-common
new file mode 100644
index 000000000..7b16b4b3c
--- /dev/null
+++ b/core/nfs-utils/nfs-common
@@ -0,0 +1,315 @@
+#!/bin/bash
+
+daemon_name=nfs-common
+
+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_daemon rpcbind && { echo -n "Start rpcbind first." >&2; stat_die; }
+ 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..6aa609d8c
--- /dev/null
+++ b/core/nfs-utils/nfs-server
@@ -0,0 +1,299 @@
+#!/bin/bash
+
+daemon_name=nfs-server
+
+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_daemon nfs-common && { echo -n "Start nfs-common first." >&2; stat_die; }
+ 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..4054d6b88
--- /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 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..5d73b6e35
--- /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/bash -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 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..08a78b077
--- /dev/null
+++ b/core/nfsidmap/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 136619 2011-08-31 07:19:40Z tpowa $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=nfsidmap
+pkgver=0.24
+pkgrel=3
+pkgdesc="Library to help mapping IDs, mainly for NFSv4"
+arch=('i686' 'x86_64' 'mips64el')
+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
+
+ # 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..75f0f8f89
--- /dev/null
+++ b/core/nilfs-utils/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 122457 2011-05-04 07:52:42Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=nilfs-utils
+pkgver=2.0.23
+pkgrel=1
+pkgdesc="A log-structured file system supporting continuous snapshotting (userspace utils)"
+arch=('i686' 'x86_64' 'mips64el')
+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=('7f7e835d02e14642e8b7b32a36b7fab0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --libdir=/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install LDCONFIG=/bin/true
+}
diff --git a/core/openldap/PKGBUILD b/core/openldap/PKGBUILD
new file mode 100644
index 000000000..60c53c295
--- /dev/null
+++ b/core/openldap/PKGBUILD
@@ -0,0 +1,96 @@
+# $Id: PKGBUILD 142181 2011-11-05 20:47:37Z eric $
+# Maintainer:
+
+pkgbase=openldap
+pkgname=('libldap' 'openldap')
+pkgver=2.4.26
+pkgrel=5.1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.openldap.org/"
+license=('custom')
+makedepends=('libfetch' 'libltdl' 'libsasl' 'groff')
+source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
+ slapd slapd.default ntlm.patch)
+md5sums=('f36f3086031dd56ae94f722ffae8df5e'
+ '40fdbdd6c343019cbadf4eb26c6189f2'
+ '6be69f6b7e522cb64cce8703da81ed32'
+ '4258ddbef923d1f29f2843bc050f8c56')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -Np1 -i "${srcdir}"/ntlm.patch
+ sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in
+ sed -i 's|#define LDAPI_SOCK LDAP_RUNDIR LDAP_DIRSEP "run" LDAP_DIRSEP "ldapi"|#define LDAPI_SOCK LDAP_DIRSEP "run" LDAP_DIRSEP "openldap" LDAP_DIRSEP "ldapi"|' include/ldap_defaults.h
+ sed -i 's|%LOCALSTATEDIR%/run|/run/openldap|' servers/slapd/slapd.conf
+ sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in
+
+ LDFLAGS="$LDFLAGS -L\"${pkgdir}\"/libldap/usr/lib"
+ ./configure --prefix=/usr --mandir=/usr/share/man --libexecdir=/usr/lib \
+ --sysconfdir=/etc --localstatedir=/var/lib/openldap \
+ --enable-ipv6 --enable-syslog --enable-local \
+ --enable-bdb --enable-hdb \
+ --enable-crypt --enable-dynamic \
+ --with-threads --disable-wrappers \
+ --enable-spasswd --with-cyrus-sasl \
+ --enable-overlays=mod --enable-modules=yes
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ make test
+}
+
+package_libldap() {
+ pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
+ depends=('libsasl' 'libfetch')
+ backup=('etc/openldap/ldap.conf')
+ options=('!libtool')
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ for dir in include libraries doc/man/man3 ; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ install -Dm644 doc/man/man5/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 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_openldap() {
+ pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
+ depends=("libldap>=${pkgver}" 'libltdl')
+ backup=('etc/openldap/slapd.conf' 'etc/conf.d/slapd')
+ options=('!libtool' 'emptydirs')
+ install=openldap.install
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ for dir in clients servers doc/man/man{1,5,8} ; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ rm "${pkgdir}"/usr/share/man/man5/ldap.conf.5
+ rm -r "${pkgdir}"/run
+
+# get rid of duplicate default conf files
+ rm "${pkgdir}"/etc/openldap/*.default
+
+ ln -s ../lib/slapd "${pkgdir}"/usr/sbin/slapd
+
+ chown root:439 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
+ chmod 640 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
+
+ install -dm700 -o 439 -g 439 "${pkgdir}"/var/lib/openldap
+ install -dm700 -o 439 -g 439 "${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 -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/openldap/ntlm.patch b/core/openldap/ntlm.patch
new file mode 100644
index 000000000..6804b610d
--- /dev/null
+++ b/core/openldap/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 ldif.c fetch.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 ldif.lo fetch.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 ldif.c fetch.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 ldif.lo fetch.lo
+
+ LDAP_INCDIR= ../../include
diff --git a/core/openldap/openldap.install b/core/openldap/openldap.install
new file mode 100644
index 000000000..cf3cb9f25
--- /dev/null
+++ b/core/openldap/openldap.install
@@ -0,0 +1,20 @@
+post_install(){
+ groupadd -g 439 ldap &>/dev/null
+ useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
+ chown -R ldap:ldap var/lib/openldap &>/dev/null
+}
+
+post_upgrade(){
+ getent group ldap >/dev/null 2>&1 || groupadd -g 439 ldap &>/dev/null
+ getent passwd ldap >/dev/null 2>&1 || useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
+ chown -R ldap:ldap var/lib/openldap &>/dev/null
+}
+
+post_remove(){
+ if getent passwd ldap >/dev/null 2>&1; then
+ userdel ldap
+ fi
+ if getent group ldap >/dev/null 2>&1; then
+ groupdel ldap
+ fi
+}
diff --git a/core/openldap/slapd b/core/openldap/slapd
new file mode 100755
index 000000000..4f212da66
--- /dev/null
+++ b/core/openldap/slapd
@@ -0,0 +1,49 @@
+#!/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"
+ [ ! -d /run/openldap ] && install -d -m755 -o ldap -g ldap /run/openldap
+ if [ -z "$PID" ]; then
+ if [ -z "$SLAPD_SERVICES" ]; then
+ /usr/sbin/slapd -u ldap -g ldap $SLAPD_OPTIONS
+ else
+ /usr/sbin/slapd -u ldap -g ldap -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 /run/openldap/slapd.pid
+ rm -f /run/openldap/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/core/openldap/slapd.default b/core/openldap/slapd.default
new file mode 100644
index 000000000..72ae2a6a7
--- /dev/null
+++ b/core/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/core/openssh/PKGBUILD b/core/openssh/PKGBUILD
new file mode 100644
index 000000000..9b97d4c04
--- /dev/null
+++ b/core/openssh/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 143647 2011-11-28 00:51:52Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=openssh
+pkgver=5.9p1
+pkgrel=5
+pkgdesc='Free version of the SSH connectivity tools'
+arch=('i686' 'x86_64' 'mips64el')
+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=('krb5' 'openssl' 'libedit')
+optdepends=('x11-ssh-askpass: input passphrase in X without a terminal')
+source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}.tar.gz"
+ 'sshd.confd'
+ 'sshd.pam'
+ 'sshd')
+sha1sums=('ac4e0055421e9543f0af5da607a72cf5922dcc56'
+ 'ec102deb69cad7d14f406289d2fc11fee6eddbdd'
+ '3413909fd45a28701c92e6e5b59c6b65346ddb0f'
+ '21fa88de6cc1c7912e71655f50896ba17991a1c2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ssh \
+ --sysconfdir=/etc/ssh \
+ --with-privsep-user=nobody \
+ --with-md5-passwords \
+ --with-pam \
+ --with-mantype=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 \
+ -e '/^#ChallengeResponseAuthentication yes$/c ChallengeResponseAuthentication no' \
+ -e '/^#UsePAM no$/c UsePAM yes' \
+ -i "${pkgdir}"/etc/ssh/sshd_config
+}
diff --git a/core/openssh/sshd b/core/openssh/sshd
new file mode 100755
index 000000000..1d68fb877
--- /dev/null
+++ b/core/openssh/sshd
@@ -0,0 +1,45 @@
+#!/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'
+ /usr/bin/ssh-keygen -A
+ [[ -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..c7b91cdfb
--- /dev/null
+++ b/core/openssh/sshd.pam
@@ -0,0 +1,12 @@
+#%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
+-session optional pam_ck_connector.so nox11
+-session optional pam_systemd.so
diff --git a/core/openssl/PKGBUILD b/core/openssl/PKGBUILD
new file mode 100644
index 000000000..e5c5da68a
--- /dev/null
+++ b/core/openssl/PKGBUILD
@@ -0,0 +1,88 @@
+# $Id: PKGBUILD 137334 2011-09-07 08:58:53Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=openssl
+_ver=1.0.0e
+# 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' 'mips64el')
+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'
+ 'gnu-linux-mips64el-gcc.patch'
+ 'ca-dir.patch')
+md5sums=('7040b89c4c58c7a1016c0dfa6e821c86'
+ '5bbc0655bda2af95bc8eb568963ce8ba'
+ 'dc78d3d06baffc16217519242ce92478'
+ 'd7115f0cc44df346d7b68c681819f94b'
+ '3bf51be3a1bbd262be46dc619f92aa90')
+
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('imake')
+
+# 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
+
+ patch -p0 -i $srcdir/gnu-linux-mips64el-gcc.patch
+
+ case "${CARCH}" in
+ 'x86_64')
+ openssltarget='linux-x86_64' ;;
+ 'i686')
+ openssltarget='linux-elf' ;;
+ 'mips64el')
+# ./config
+ openssltarget='gnu-linux-mips64el-gcc' ;;
+ # openssltarget='linux-generic32' ;;
+ esac
+
+ # mark stack as non-executable: http://bugs.archlinux.org/task/12434
+ if [ "$CARCH" = "mips64el" ]; then
+ ./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
+ shared zlib enable-md2 \
+ "${openssltarget}" -Wa,--noexecstack "${CFLAGS}"
+ else
+ ./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
+ shared zlib enable-md2 \
+ "${openssltarget}" \
+ -Wa,--noexecstack "${CFLAGS}" "${LDFLAGS}"
+
+ fi
+
+ make depend
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$_ver
+ # 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..d90a8a570
--- /dev/null
+++ b/core/openvpn/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 135525 2011-08-14 20:37:18Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=openvpn
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)"
+arch=(i686 x86_64 'mips64el')
+url="http://openvpn.net/index.php/open-source.html"
+depends=('openssl' 'lzo2' 'iproute2')
+license=('custom')
+backup=(usr/share/openvpn/easy-rsa/vars
+ usr/share/openvpn/easy-rsa/openssl-1.0.0.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=('500bee5449b29906150569aaf2eb2730'
+ '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 \
+ --enable-iproute2
+ 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
+ cd -
+ done
+ # Install contrib
+ install -d -m755 $pkgdir/usr/share/openvpn/contrib
+ cp -r contrib $pkgdir/usr/share/openvpn
+ # Install easy-rsa
+ cd $srcdir/$pkgname-$pkgver
+ make -C easy-rsa/2.0 install DESTDIR=$pkgdir PREFIX=usr/share/openvpn/easy-rsa
+ rm -f ${pkgdir}/usr/share/openvpn/easy-rsa/openssl-0.9.?.cnf
+ # 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/pacman.conf.mips64el b/core/pacman/pacman.conf.mips64el
new file mode 100644
index 000000000..09a5c8d5a
--- /dev/null
+++ b/core/pacman/pacman.conf.mips64el
@@ -0,0 +1,86 @@
+#
+# /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 = mips64el
+
+# 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.
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+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/pam/PKGBUILD b/core/pam/PKGBUILD
new file mode 100644
index 000000000..778b58e6e
--- /dev/null
+++ b/core/pam/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 141297 2011-10-28 10:57:26Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=pam
+pkgver=1.1.5
+pkgrel=1.1
+pkgdesc="PAM (Pluggable Authentication Modules) library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.kernel.org/pub/linux/libs/pam/"
+depends=('glibc' 'db' 'cracklib' 'libtirpc')
+makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('flex' '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=(https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-$pkgver.tar.bz2
+ #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=('927ee5585bdec5256c75117e9348aa47'
+ '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
+}
+md5sums=('927ee5585bdec5256c75117e9348aa47'
+ 'e2788389a6c59224110a45fcff30e02b'
+ '6e6c8719e5989d976a14610f340bd33a')
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..e66b9163b
--- /dev/null
+++ b/core/patch/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142074 2011-11-04 23:36:08Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=patch
+pkgver=2.6.1
+pkgrel=3.1
+pkgdesc="A utility to apply patch files to original sources"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/patch/patch.html"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc')
+makedepends=('ed')
+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{,.sig}
+ patch-2.6.1-get-arg.patch)
+md5sums=('d758eb96d3f75047efc004a720d33daf'
+ 'f7953f3e472fae5118815e6138372e22'
+ '45cd5709adbbcdcb3ab95dc43559c07c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Fixed argument type for --get
+ # see https://bugzilla.redhat.com/show_bug.cgi?id=553624
+ patch -Np1 -i $srcdir/patch-2.6.1-get-arg.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+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..28017b729
--- /dev/null
+++ b/core/pciutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142117 2011-11-05 10:16:08Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pciutils
+pkgver=3.1.8
+pkgrel=1
+pkgdesc="PCI bus configuration space access library and tools"
+arch=(i686 x86_64 'mips64el')
+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
+ ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/${pkgname}-${pkgver}.tar.gz)
+md5sums=('79312f138311d29291c7d44d624cd37e')
+
+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/core/pcmciautils/PKGBUILD b/core/pcmciautils/PKGBUILD
new file mode 100644
index 000000000..6c165e745
--- /dev/null
+++ b/core/pcmciautils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 134400 2011-08-03 16:55:02Z tomegun $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pcmciautils
+pkgver=018
+pkgrel=1
+pkgdesc="Utilities for inserting and removing PCMCIA cards"
+arch=(i686 x86_64 'mips64el')
+url="http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html"
+license=('GPL')
+groups=('base')
+# sysfsutils will not be required in the next release
+depends=('udev' 'sysfsutils')
+conflicts=('pcmcia-cs')
+source=(http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmciautils-${pkgver}.tar.bz2)
+options=(!makeflags)
+
+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
+}
+md5sums=('5d85669b3440baa4532363da6caaf1b4')
diff --git a/core/pcre/PKGBUILD b/core/pcre/PKGBUILD
new file mode 100644
index 000000000..d828db0a9
--- /dev/null
+++ b/core/pcre/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 145006 2011-12-13 23:40:35Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=pcre
+pkgver=8.21
+pkgrel=1
+pkgdesc="A library that implements Perl 5-style regular expressions"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig})
+md5sums=('0a7b592bea64b7aa7f4011fc7171a730'
+ '4768871445dff956e620a9e902b4db55')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+ ./configure --prefix=/usr --enable-jit \
+ --enable-utf8 --enable-unicode-properties
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make check
+}
+
+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/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch b/core/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
new file mode 100644
index 000000000..1404460df
--- /dev/null
+++ b/core/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
@@ -0,0 +1,83 @@
+From bb249b0b26c2e79a6f55355ef94889070f07fd21 Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni@debian.org>
+Date: Thu, 28 Apr 2011 09:18:54 +0300
+Subject: [PATCH] Append CFLAGS and LDFLAGS to their Config.pm counterparts in
+ EU::CBuilder
+
+Since ExtUtils::CBuilder 0.27_04 (bleadperl commit 06e8058f27e4),
+CFLAGS and LDFLAGS from the environment have overridden the Config.pm
+ccflags and ldflags settings. This can cause binary incompatibilities
+between the core Perl and extensions built with EU::CBuilder.
+
+Append to the Config.pm values rather than overriding them.
+---
+ .../lib/ExtUtils/CBuilder/Base.pm | 6 +++-
+ dist/ExtUtils-CBuilder/t/04-base.t | 25 +++++++++++++++++++-
+ 2 files changed, 28 insertions(+), 3 deletions(-)
+
+diff --git a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
+index b572312..2255c51 100644
+--- a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
++++ b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
+@@ -40,11 +40,13 @@ sub new {
+ $self->{config}{$k} = $v unless exists $self->{config}{$k};
+ }
+ $self->{config}{cc} = $ENV{CC} if defined $ENV{CC};
+- $self->{config}{ccflags} = $ENV{CFLAGS} if defined $ENV{CFLAGS};
++ $self->{config}{ccflags} = join(" ", $self->{config}{ccflags}, $ENV{CFLAGS})
++ if defined $ENV{CFLAGS};
+ $self->{config}{cxx} = $ENV{CXX} if defined $ENV{CXX};
+ $self->{config}{cxxflags} = $ENV{CXXFLAGS} if defined $ENV{CXXFLAGS};
+ $self->{config}{ld} = $ENV{LD} if defined $ENV{LD};
+- $self->{config}{ldflags} = $ENV{LDFLAGS} if defined $ENV{LDFLAGS};
++ $self->{config}{ldflags} = join(" ", $self->{config}{ldflags}, $ENV{LDFLAGS})
++ if defined $ENV{LDFLAGS};
+
+ unless ( exists $self->{config}{cxx} ) {
+ my ($ccpath, $ccbase, $ccsfx ) = fileparse($self->{config}{cc}, qr/\.[^.]*/);
+diff --git a/dist/ExtUtils-CBuilder/t/04-base.t b/dist/ExtUtils-CBuilder/t/04-base.t
+index c3bf6b5..1bb15aa 100644
+--- a/dist/ExtUtils-CBuilder/t/04-base.t
++++ b/dist/ExtUtils-CBuilder/t/04-base.t
+@@ -1,7 +1,7 @@
+ #! perl -w
+
+ use strict;
+-use Test::More tests => 50;
++use Test::More tests => 64;
+ use Config;
+ use Cwd;
+ use File::Path qw( mkpath );
+@@ -326,6 +326,29 @@ is_deeply( $mksymlists_args,
+ "_prepare_mksymlists_args(): got expected arguments for Mksymlists",
+ );
+
++my %testvars = (
++ CFLAGS => 'ccflags',
++ LDFLAGS => 'ldflags',
++);
++
++while (my ($VAR, $var) = each %testvars) {
++ local $ENV{$VAR};
++ $base = ExtUtils::CBuilder::Base->new( quiet => 1 );
++ ok( $base, "ExtUtils::CBuilder::Base->new() returned true value" );
++ isa_ok( $base, 'ExtUtils::CBuilder::Base' );
++ like($base->{config}{$var}, qr/\Q$Config{$var}/,
++ "honours $var from Config.pm");
++
++ $ENV{$VAR} = "-foo -bar";
++ $base = ExtUtils::CBuilder::Base->new( quiet => 1 );
++ ok( $base, "ExtUtils::CBuilder::Base->new() returned true value" );
++ isa_ok( $base, 'ExtUtils::CBuilder::Base' );
++ like($base->{config}{$var}, qr/\Q$ENV{$VAR}/,
++ "honours $VAR from the environment");
++ like($base->{config}{$var}, qr/\Q$Config{$var}/,
++ "doesn't override $var from Config.pm with $VAR from the environment");
++}
++
+ #####
+
+ for ($source_file, $object_file, $lib_file) {
+--
+1.7.4.4
+
diff --git a/core/perl/ChangeLog b/core/perl/ChangeLog
new file mode 100644
index 000000000..9add39e20
--- /dev/null
+++ b/core/perl/ChangeLog
@@ -0,0 +1,66 @@
+2011-06-22 Angel Velasquez <angvp@archlinux.org>
+ * Added a patch for ExtUtils doesnt overwrite CFLAGS and LDFLAGS
+ * Fixed #FS22197, FS#22441, FS#24767
+ * Rebuilt perl 5.14.1-2 against db 5.2.28
+
+2011-06-16 Angel Velasquez <angvp@archlinux.org>
+ * Fixed #FS24660
+ * Rebuilt against db 5.2.28
+
+2011-05-16 Angel Velasquez <angvp@archlinux.org>
+ * perl 5.14.0
+ * Removed patch for h2ph warning from 5.12.3
+ * Removed provides array, you can use corelist -v 5.14.0 to know the
+ modules included with the perl core, through Module::CoreList (thx j3nnn1
+ for the tip)
+
+2010-11-07 kevin <kevin@archlinux.org>
+
+ * perl 5.12.2-1
+ - Using /usr/bin/*_perl for script directories
+
+2010-11-06 kevin <kevin@archlinux.org>
+
+ - Removed otherlibdirs directive from Configure
+ - Removed /usr/*/perl5/site_perl/5.10.1 from INC
+ - Finally removed legacy dirs /usr/lib/perl5/current and
+ /usr/lib/perl5/site_perl/current from @INC
+
+2010-05-23 kevin <kevin@archlinux.org>
+
+ * perl 5.12.1-2
+ - Francois updated the provides array.
+
+2010-05-23 kevin <kevin@archlinux.org>
+
+ * perl 5.12.1-1
+
+2010-05-16 kevin <kevin@archlinux.org>
+
+ * perl 5.12.0-2
+
+2010-05-12 kevin <kevin@archlinux.org>
+
+ - FS#19411. Removed the for loop in perlbin.sh which didn't work on zsh.
+ This makes the loop variables unnecessary so the script no longer
+ pollutes the user's environment.
+ - FS#19427. Added /usr/*/perl5/site_perl/5.10.1 to otherlibdirs to support
+ user built modules.
+
+2010-05-09 kevin <kevin@archlinux.org>
+
+ * perl 5.12.0-1
+ - Modified perlbin.sh to only add existing dirs to PATH. Fixes FS#17402,
+ path points to non-existant directories
+
+2010-05-07 kevin <kevin@archlinux.org>
+
+ - Added this changelog.
+ - Added -Dinc_version_list=none to fix FS#19136, double entry in @INC.
+ This removes the duplicates and versioned directory entries.
+ - Change scriptdirs to /usr/lib/perl5/{core,vendor,site}_perl/bin to fix
+ Fix FS#13808, binaries don't follow FHS.
+ - Stopped using versioned directories in sitelib and sitearch.
+
+
+# vim: set ft=changelog ts=4 sw=4 et:
diff --git a/core/perl/PKGBUILD b/core/perl/PKGBUILD
new file mode 100644
index 000000000..e655d49a1
--- /dev/null
+++ b/core/perl/PKGBUILD
@@ -0,0 +1,119 @@
+# $Id: PKGBUILD 143804 2011-11-29 13:33:00Z stephane $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: kevin <kevin.archlinux.org>
+# Contributor: judd <jvinet.zeroflux.org>
+# Contributor: francois <francois.archlinux.org>
+pkgname=perl
+pkgver=5.14.2
+pkgrel=4
+pkgdesc="A highly capable, feature-rich programming language"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'PerlArtistic')
+url="http://www.perl.org"
+groups=('base')
+depends=('gdbm' 'db' 'coreutils' 'glibc' 'sh')
+changelog=ChangeLog
+source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2
+perlbin.sh
+perlbin.csh
+provides.pl
+0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch)
+install=perl.install
+options=('!makeflags' '!purge')
+md5sums=('04a4c5d3c1f9f19d77daff8e8cd19a26'
+ '5ed2542fdb9a60682f215bd33701e61a'
+ '1f0cbbee783e8a6d32f01be5118e0d5e'
+ '31fc0b5bb4935414394c5cfbec2cb8e5'
+ 'c25d86206d649046538c3daab7874564')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ # for x86_64
+ arch_opts="-Dcccdlflags='-fPIC'"
+ else
+ # for i686
+ arch_opts=""
+ fi
+
+ # remove rpath FS#27173
+ sed -i 's#xxx="-Wl,-rpath,$shrpdir"##' Configure
+
+ ./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
+ -Dprefix=/usr -Dinstallprefix=${pkgdir}/usr -Dvendorprefix=/usr \
+ -Dprivlib=/usr/share/perl5/core_perl \
+ -Darchlib=/usr/lib/perl5/core_perl \
+ -Dsitelib=/usr/share/perl5/site_perl \
+ -Dsitearch=/usr/lib/perl5/site_perl \
+ -Dvendorlib=/usr/share/perl5/vendor_perl \
+ -Dvendorarch=/usr/lib/perl5/vendor_perl \
+ -Dscriptdir=/usr/bin/core_perl \
+ -Dsitescript=/usr/bin/site_perl \
+ -Dvendorscript=/usr/bin/vendor_perl \
+ -Dinc_version_list=none \
+ -Dman1ext=1perl -Dman3ext=3perl ${arch_opts} \
+ -Dlddlflags="-shared ${LDFLAGS}" -Dldflags="${LDFLAGS}"
+ patch -Np1 -i $srcdir/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make test
+}
+
+package() {
+ # hack to work around makepkg running the subshell in check_sanity()
+ new_provides=($(cd "$srcdir/perl-$pkgver"; LD_PRELOAD=./libperl.so ./perl -Ilib "$srcdir/provides.pl" .))
+ provides=(${new_provides[@]})
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make install
+
+ ### Perl Settings ###
+ # Change man page extensions for site and vendor module builds.
+ # Use archlinux email address instead of my own.
+ sed -e '/^man1ext=/ s/1perl/1p/' -e '/^man3ext=/ s/3perl/3pm/' \
+ -e "/^cf_email=/ s/'.*'/'kevin@archlinux.org'/" \
+ -e "/^perladmin=/ s/'.*'/'kevin@archlinux.org'/" \
+ -i ${pkgdir}/usr/lib/perl5/core_perl/Config_heavy.pl
+
+ ### CPAN Settings ###
+ # Set CPAN default config to use the site directories.
+ sed -e '/(makepl_arg =>/ s/""/"INSTALLDIRS=site"/' \
+ -e '/(mbuildpl_arg =>/ s/""/"installdirs=site"/' \
+ -i ${pkgdir}/usr/share/perl5/core_perl/CPAN/FirstTime.pm
+
+ ### CPANPLUS Settings ###
+ # Set CPANPLUS default config to use the site directories.
+ sed -e "/{'makemakerflags'}/ s/'';/'INSTALLDIRS=site';/" \
+ -e "/{'buildflags'}/ s/'';/'installdirs=site';/" \
+ -i ${pkgdir}/usr/share/perl5/core_perl/CPANPLUS/Config.pm
+
+ # Profile script to set paths to perl scripts.
+ install -D -m755 ${srcdir}/perlbin.sh \
+ ${pkgdir}/etc/profile.d/perlbin.sh
+ # Profile script to set paths to perl scripts on csh. (FS#22441)
+ install -D -m755 ${srcdir}/perlbin.csh \
+ ${pkgdir}/etc/profile.d/perlbin.csh
+
+ (cd ${pkgdir}/usr/bin; mv perl${pkgver} perl)
+ (cd ${pkgdir}/usr/bin/core_perl; ln -sf c2ph pstruct; ln -sf s2p psed)
+ grep -Rl "${pkgdir}" ${pkgdir}/usr | \
+ xargs sed -i "s^${pkgdir}^^g"
+
+ # Remove all pod files *except* those under /usr/share/perl5/core_perl/pod/
+ # (FS#16488)
+ rm -f $pkgdir/usr/share/perl5/core_perl/*.pod
+ for d in $pkgdir/usr/share/perl5/core_perl/*; do
+ if [ -d $d -a $(basename $d) != "pod" ]; then
+ find $d -name *.pod -delete
+ fi
+ done
+ find $pkgdir/usr/lib -name *.pod -delete
+ find $pkgdir -name .packlist -delete
+ # Add /usr/lib/perl5/core_perl/CORE/ to standard library path (FS#24660)
+ install -dv ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/perl5/core_perl/CORE" > ${pkgdir}/etc/ld.so.conf.d/perl.conf
+}
diff --git a/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..a355c5bbe
--- /dev/null
+++ b/core/perl/perl.install
@@ -0,0 +1,10 @@
+# arg 1: the new package version
+post_install() {
+ for ver in 5.8.{0,1,2,3,4,5,6,7,8}; do
+ [ -h usr/lib/perl5/$ver ] && rm usr/lib/perl5/$ver
+ [ -h usr/lib/perl5/site_perl/$ver ] && rm usr/lib/perl5/site_perl/$ver
+ [ -h usr/bin/perl$ver ] && rm usr/bin/perl$ver
+ done
+ return 0
+}
+
diff --git a/core/perl/perlbin.csh b/core/perl/perlbin.csh
new file mode 100644
index 000000000..535f0b18d
--- /dev/null
+++ b/core/perl/perlbin.csh
@@ -0,0 +1,15 @@
+# Set path to perl scriptdirs if they exist
+# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
+# Added /usr/bin/*_perl dirs for scripts
+# Remove /usr/lib/perl5/*_perl/bin in next release
+
+[ -d /usr/bin/site_perl ] && setenv PATH ${PATH}:/usr/bin/site_perl
+[ -d /usr/lib/perl5/site_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/site_perl/bin
+
+[ -d /usr/bin/vendor_perl ] && setenv PATH ${PATH}:/usr/bin/vendor_perl
+[ -d /usr/lib/perl5/vendor_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/vendor_perl/bin
+
+[ -d /usr/bin/core_perl ] && setenv PATH ${PATH}:/usr/bin/core_perl
+
+# If you have modules in non-standard directories you can add them here.
+#export PERLLIB=dir1:dir2
diff --git a/core/perl/perlbin.sh b/core/perl/perlbin.sh
new file mode 100755
index 000000000..20f830436
--- /dev/null
+++ b/core/perl/perlbin.sh
@@ -0,0 +1,18 @@
+# Set path to perl scriptdirs if they exist
+# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
+# Added /usr/bin/*_perl dirs for scripts
+# Remove /usr/lib/perl5/*_perl/bin in next release
+
+[ -d /usr/bin/site_perl ] && PATH=$PATH:/usr/bin/site_perl
+[ -d /usr/lib/perl5/site_perl/bin ] && PATH=$PATH:/usr/lib/perl5/site_perl/bin
+
+[ -d /usr/bin/vendor_perl ] && PATH=$PATH:/usr/bin/vendor_perl
+[ -d /usr/lib/perl5/vendor_perl/bin ] && PATH=$PATH:/usr/lib/perl5/vendor_perl/bin
+
+[ -d /usr/bin/core_perl ] && PATH=$PATH:/usr/bin/core_perl
+
+export PATH
+
+# If you have modules in non-standard directories you can add them here.
+#export PERLLIB=dir1:dir2
+
diff --git a/core/perl/provides.pl b/core/perl/provides.pl
new file mode 100644
index 000000000..3bf369577
--- /dev/null
+++ b/core/perl/provides.pl
@@ -0,0 +1,286 @@
+# provides.pl
+##
+# Script for printing out a provides list of every CPAN distribution
+# that is bundled with perl.
+#
+# Justin Davis <jrcd83@gmail.com>
+
+use warnings 'FATAL' => 'all';
+use strict;
+
+package Common;
+
+sub evalver
+{
+ my ($path, $mod) = @_;
+ $mod ||= "";
+
+ open my $fh, '<', $path or die "open $path: $!";
+
+ while (<$fh>) {
+ next unless /\s*(?:\$${mod}::|\$)VERSION\s*=\s*(.+)/;
+ my $ver = eval $1;
+ return $ver unless $@;
+ warn qq{$path:$. bad version string "$ver"\n};
+ }
+
+ close $fh;
+ return undef;
+}
+
+#-----------------------------------------------------------------------------
+
+package Dists;
+
+sub maindistfile
+{
+ my ($dist, $dir) = @_;
+
+ # libpath is the modern style, installing modules under lib/
+ # with dirs matching the name components.
+ my $libpath = join q{/}, 'lib', split /-/, "${dist}.pm";
+
+ # dumbpath is an old style where there's no subdirs and just
+ # a .pm file.
+ my $dumbpath = $dist;
+ $dumbpath =~ s/\A.+-//;
+ $dumbpath .= ".pm";
+
+ my @paths = ($libpath, $dumbpath);
+ # Some modules (with simple names like XSLoader, lib, etc) are
+ # generated by Makefile.PL. Search through their generating code.
+ push @paths, "${dist}_pm.PL" if $dist =~ tr/-/-/ == 0;
+
+ for my $path (map { "$dir/$_" } @paths) { return $path if -f $path; }
+ return undef;
+}
+
+sub module_ver
+{
+ my ($dist, $dir) = @_;
+
+ my $path = maindistfile($dist, $dir) or return undef;
+
+ my $mod = $dist;
+ $mod =~ s/-/::/g;
+ my $ver = Common::evalver($path, $mod);
+ unless ($ver) {
+ warn "failed to find version in module file for $dist\n";
+ return undef;
+ }
+
+ return $ver;
+}
+
+sub changelog_ver
+{
+ my ($dist, $dir) = @_;
+
+ my $path;
+ for my $tmp (glob "$dir/{Changes,ChangeLog}") {
+ if (-f $tmp) { $path = $tmp; last; }
+ }
+ return undef unless $path;
+
+ open my $fh, '<', $path or die "open: $!";
+ while (<$fh>) {
+ return $1 if /\A\s*(?:$dist[ \t]*)?([0-9._]+)/;
+ return $1 if /\A\s*version\s+([0-9._]+)/i;
+ }
+ close $fh;
+
+ return undef;
+}
+
+# for some reason podlators has a VERSION file with perl code in it
+sub verfile_ver
+{
+ my ($dist, $dir) = @_;
+
+ my $path = "$dir/VERSION";
+ return undef unless -f $path; # no warning, only podlaters has it
+
+ return Common::evalver($path);
+}
+
+# scans a directory full of nicely separated dist. directories.
+sub scan_distroot
+{
+ my ($distroot) = @_;
+ opendir my $cpand, "$distroot" or die "failed to open $distroot";
+ my @dists = grep { !/^\./ && -d "$distroot/$_" } readdir $cpand;
+ closedir $cpand;
+
+ my @found;
+ for my $dist (@dists) {
+ my $distdir = "$distroot/$dist";
+ my $ver = (module_ver($dist, $distdir)
+ || changelog_ver($dist, $distdir)
+ || verfile_ver($dist, $distdir));
+
+ if ($ver) { push @found, [ $dist, $ver ]; }
+ else { warn "failed to find version for $dist\n"; }
+ }
+ return @found;
+}
+
+sub find
+{
+ my ($srcdir) = @_;
+ return map { scan_distroot($_) } glob "$srcdir/{cpan,dist}";
+}
+
+#-----------------------------------------------------------------------------
+
+package Modules;
+
+use HTTP::Tiny qw();
+use File::Find qw();
+use File::stat;
+
+*findfile = *File::Find::find;
+
+sub cpan_provider
+{
+ my ($module) = @_;
+ my $url = "http://cpanmetadb.appspot.com/v1.0/package/$module";
+ my $http = HTTP::Tiny->new;
+ my $resp = $http->get($url);
+ return undef unless $resp->{'success'};
+
+ my ($cpanpath) = $resp->{'content'} =~ /^distfile: (.*)$/m
+ or return undef;
+
+ my $dist = $cpanpath;
+ $dist =~ s{\A.+/}{}; # remove author directory
+ $dist =~ s{-[^-]+\z}{}; # remove version and extension
+ return ($dist eq 'perl' ? undef : $dist);
+}
+
+sub find
+{
+ my ($srcdir) = @_;
+ my $libdir = "$srcdir/lib/";
+ die "failed to find $libdir directory" unless -d $libdir;
+
+ # Find only the module files that have not changed since perl
+ # was extracted. We don't want the files perl just recently
+ # installed into lib/. We processed those already.
+ my @modfiles;
+ my $finder = sub {
+ return unless /[.]pm\z/;
+ push @modfiles, $_;
+ };
+ findfile({ 'no_chdir' => 1, 'wanted' => $finder }, $libdir);
+
+ # First we have to find what the oldest ctime actually is.
+ my $oldest = time;
+ @modfiles = map {
+ my $modfile = $_;
+ my $ctime = (stat $modfile)->ctime;
+ $oldest = $ctime if $ctime < $oldest;
+ [ $modfile, $ctime ]; # save ctime for later
+ } @modfiles;
+
+ # Then we filter out any file that was created more than a
+ # few seconds after that. Process the rest.
+ my @mods;
+ for my $modfile (@modfiles) {
+ my ($mod, $ctime) = @$modfile;
+ next if $ctime - $oldest > 5; # ignore newer files
+
+ my $path = $mod;
+ $mod =~ s{[.]pm\z}{};
+ $mod =~ s{\A$libdir}{};
+ $mod =~ s{/}{::}g;
+
+ my $ver = Common::evalver($path) || q{};
+ push @mods, [ $mod, $ver ];
+ }
+
+ # Convert modules names to the dist names who provide them.
+ my %seen;
+ my @dists;
+ for my $modref (@mods) {
+ my ($mod, $ver) = @$modref;
+ my $dist = cpan_provider($mod) or next; # filter out core modules
+ next if $seen{$dist}++; # avoid duplicate dists
+ push @dists, [ $dist, $ver ];
+ }
+ return @dists;
+}
+
+#-----------------------------------------------------------------------------
+
+package Dist2Pkg;
+
+sub name
+{
+ my ($name) = @_;
+ my $orig = $name;
+
+ # Package names should be lowercase and consist of alphanumeric
+ # characters only (and hyphens!)...
+ $name =~ tr/A-Z/a-z/;
+ $name =~ tr/_+/-/; # _ and +'s converted to - (ie Tabbed-Text+Wrap)
+ $name =~ tr/-a-z0-9+//cd; # Delete all other chars.
+ $name =~ tr/-/-/s;
+
+ # Delete leading or trailing hyphens...
+ $name =~ s/\A-|-\z//g;
+
+ die qq{Dist. name '$orig' completely violates packaging standards}
+ unless $name;
+
+ return "perl-$name";
+}
+
+sub version
+{
+ my ($version) = @_;
+
+ # Package versions should be numbers and decimal points only...
+ $version =~ tr/-/./;
+ $version =~ tr/_0-9.-//cd;
+
+ # Remove developer versions because pacman has no special logic
+ # to compare them to regular versions like perl does.
+ $version =~ s/_[^_]+\z//;
+
+ $version =~ tr/_//d; # delete other underscores
+ $version =~ tr/././s; # only one period at a time
+ $version =~ s/\A[.]|[.]\z//g; # shouldn't start or stop with a period
+
+ return $version;
+}
+
+#-----------------------------------------------------------------------------
+
+package main;
+
+my %CPANNAME = ('List-Util' => 'Scalar-List-Utils',
+ 'Text-Tabs' => 'Text-Tabs+Wrap',
+ 'Cwd' => 'PathTools');
+
+my $perldir = shift or die "Usage: $0 [path to perl source directory]\n";
+die "$perldir is not a valid directory." unless -d $perldir;
+
+my @dists = (Dists::find($perldir), Modules::find($perldir));
+for my $dist (@dists) {
+ my $name = $dist->[0];
+ $dist->[0] = $CPANNAME{$name} if exists $CPANNAME{$name};
+}
+
+my @pkgs = map {
+ my ($name, $ver) = @$_;
+ $name = Dist2Pkg::name($name);
+ $ver = Dist2Pkg::version($ver);
+ [ $name, $ver ];
+} @dists;
+
+@pkgs = sort { $a->[0] cmp $b->[0] } @pkgs;
+
+for my $pkg (@pkgs) {
+ my ($name, $ver) = @$pkg;
+ print "$name=$ver\n";
+}
diff --git a/core/pkg-config/PKGBUILD b/core/pkg-config/PKGBUILD
new file mode 100644
index 000000000..ed96f3380
--- /dev/null
+++ b/core/pkg-config/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142076 2011-11-04 23:36:11Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=pkg-config
+pkgver=0.26
+pkgrel=2.1
+pkgdesc="A system for managing library compile/link flags"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('47525c26a9ba7ba14bf85e01509a7234')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Use system popt
+ ./configure --prefix=/usr --with-installed-popt
+
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+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..09ec1ca1a
--- /dev/null
+++ b/core/popt/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 142191 2011-11-06 02:28:05Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: 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=4
+pkgdesc="A commandline option parser"
+arch=('i686' 'x86_64' 'mips64el')
+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..57cb47e14
--- /dev/null
+++ b/core/ppl/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 135914 2011-08-20 07:14:11Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: ezzetabi <ezzetabi at gawab dot com>
+
+pkgname=ppl
+pkgver=0.11.2
+pkgrel=2
+pkgdesc="A modern library for convex polyhedra and other numerical abstractions."
+arch=('i686' 'x86_64' 'mips64el')
+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
+ # Workaround madd.d making a SIGILL on a NaN.
+ [ "$CARCH" == "mips64el" ] && {
+ CFLAGS=${CFLAGS/-march=loongson2f/-march=mips3 -mtune=loongson2f}
+ CXXFLAGS=${CXXFLAGS/-march=loongson2f/-march=mips3 -mtune=loongson2f}
+ }
+ ./configure --prefix=/usr --enable-interfaces="c,cxx"
+ make
+}
+
+check() {
+ cd $srcdir/ppl-$pkgver
+ 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..e9e6d7c32
--- /dev/null
+++ b/core/ppp/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 142987 2011-11-19 20:10:23Z thomas $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgname=ppp
+pkgver=2.4.5
+pkgrel=3
+pkgdesc="A daemon which implements the Point-to-Point Protocol for dial-up networking"
+arch=(i686 x86_64 'mips64el')
+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..1040e8ba9
--- /dev/null
+++ b/core/pptpclient/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142906 2011-11-18 07:42:07Z pierre $
+# Maintainer: Daniel Isenmann <daniel @ archlinux.org>
+# Contributor: Mark Nikkel <mnikkel@gmail.com>
+
+pkgname=pptpclient
+pkgver=1.7.2
+pkgrel=4
+pkgdesc="Client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP."
+arch=('i686' 'x86_64' 'mips64el')
+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..45fa85e68
--- /dev/null
+++ b/core/procinfo-ng/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142353 2011-11-08 18:37:45Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+pkgname=procinfo-ng
+pkgver=2.0.304
+pkgrel=3
+pkgdesc="Displays useful information from /proc"
+arch=('i686' 'x86_64' 'mips64el')
+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/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ ftp://ftp.archlinux.org/other/procinfo-ng/procinfo-18.tar.gz)
+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..99d7884a7
--- /dev/null
+++ b/core/procps/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 132740 2011-07-25 18:18:22Z foutrelis $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=procps
+pkgver=3.2.8
+pkgrel=4
+pkgdesc="Utilities for monitoring your system and processes on your system"
+arch=('i686' 'x86_64' 'mips64el')
+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-top-manpage.patch
+ procps-3.2.7-free-hlmem.patch
+ procps-3.2.7-ps-man-fmt.patch
+ procps-3.2.7-longcmd.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-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
+ procps-3.2.8-kernel3-uts.patch)
+sha1sums=('a0c86790569dec26b5d9037e8868ca907acc9829'
+ '9b9a314010d042b5aa487893c06f361531525e6a'
+ 'bdd627f602ed2e38994d49309de0edbd90b41aff'
+ '16737700b22eec8f4e8d16bce099f4b1662501e2'
+ 'da1b9e61f8df4a8e23a7032b245dd99e32e2c01c'
+ 'ba9ad9f0bde3e84484b5a0238e53534438e924be'
+ '1a656d8094be41e019b2a9598b07c8a3d47f9de3'
+ '9944224ed2f5bd7d7fb505127bd71d6f01d88373'
+ '954026785a9e6c90d796e93563fcea2a693691e8'
+ '8582cd15346fa939f3fd01081620de0ffc617335'
+ '80e31310da53baf095e905d94485324932e433df'
+ '15fe886a2b4bed5885e6d457954e1145d1dcd2a2'
+ 'bce21809ee0cb917ddf5b0c0bf2a91ea50feb0c6'
+ '1be00d71e8e16ff2d656e5dd1f9988f2f3c0d5a0'
+ '52068a433535ec3d5d974141be3d6d3b6a41725a'
+ '3a8f1ba912112d7520becb28746e97b11d9b0c86'
+ '3a4908ed8dbc936e39cb9094af8098ef9e656581'
+ '09b1f6a3f9691b9f1432549a7a74a90ee5cfbdde'
+ '926b92913201f21c45d48436c0902cffc059ce27'
+ '171d5352940200c209e0c2d43c17f01c02173a66'
+ 'e2b2917e5462bd0aa3cb1b62942dbe8e8e81c16b')
+
+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
+ patch -p1 < ../procps-3.2.8-kernel3-uts.patch
+ sed -i "s:\$(lib64):lib:" Makefile
+ make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
+}
+
+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-kernel3-uts.patch b/core/procps/procps-3.2.8-kernel3-uts.patch
new file mode 100644
index 000000000..a72ae59e3
--- /dev/null
+++ b/core/procps/procps-3.2.8-kernel3-uts.patch
@@ -0,0 +1,20 @@
+diff -Naur procps-3.2.8-20110302git.orig/proc/version.c procps-3.2.8-20110302git/proc/version.c
+--- procps-3.2.8-20110302git.orig/proc/version.c 2011-06-10 17:00:33.000000000 +0200
++++ procps-3.2.8-20110302git/proc/version.c 2011-06-10 17:20:17.000000000 +0200
+@@ -38,10 +38,15 @@
+ void init_Linux_version(void) {
+ static struct utsname uts;
+ int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */
++ int version_string_depth;
+
+ if (uname(&uts) == -1) /* failure implies impending death */
+ exit(1);
+- if (sscanf(uts.release, "%d.%d.%d", &x, &y, &z) < 3)
++
++ version_string_depth = sscanf(uts.release, "%d.%d.%d", &x, &y, &z);
++
++ if ((version_string_depth < 2) || /* Non-standard for all known kernels */
++ ((version_string_depth < 3) && (x < 3))) /* Non-standard for 2.x.x kernels */
+ fprintf(stderr, /* *very* unlikely to happen by accident */
+ "Non-standard uts for running kernel:\n"
+ "release %s=%d.%d.%d gives version code %d\n",
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/PKGBUILD b/core/psmisc/PKGBUILD
new file mode 100644
index 000000000..4afc63462
--- /dev/null
+++ b/core/psmisc/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 128514 2011-06-24 07:34:22Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=psmisc
+pkgver=22.14
+pkgrel=1
+pkgdesc="Miscellaneous procfs tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://psmisc.sourceforge.net/index.html"
+license=('GPL')
+groups=('base')
+depends=('glibc' 'ncurses')
+source=(http://downloads.sourceforge.net/psmisc/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ba3f4e971895c92bba7770d81c981503')
+sha1sums=('dc6fc0ec131c11796d01512bbd80089719b04a66')
+
+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..e86d50fcb
--- /dev/null
+++ b/core/readline/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 143254 2011-11-24 01:36:28Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=readline
+_basever=6.2
+_patchlevel=002 #prepare for some patches
+pkgver=$_basever.$_patchlevel
+pkgrel=1
+pkgdesc="GNU readline library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tiswww.case.edu/php/chet/readline/rltop.html"
+license=('GPL')
+depends=('glibc' 'ncurses')
+backup=('etc/inputrc')
+options=('!emptydirs')
+install=readline.install
+source=(http://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
+ 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){,.sig})
+ done
+fi
+md5sums=('67948acb2ca081f23359d0256e9a271c'
+ '928f7d248320a65e43c2dc427e99582b'
+ '58d54966c1191db45973cb3191ac621a'
+ '83287d52a482f790dfb30ec0a8746669'
+ '8e6a51e2e0e6e45a82752e3692c111ac'
+ '0665020ea118e8434bd145fb71f452cc'
+ '285361ca6d48c51ae2428157e174e812')
+
+build() {
+ cd ${srcdir}/${pkgname}-$_basever
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ msg "applying patch readline${_basever//./}-$(printf "%03d" $p)"
+ patch -Np0 -i $srcdir/readline${_basever//./}-$(printf "%03d" $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..06b646f23
--- /dev/null
+++ b/core/readline/readline.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(history.info readline.info rluserman.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/reiserfsprogs/PKGBUILD b/core/reiserfsprogs/PKGBUILD
new file mode 100644
index 000000000..769a72908
--- /dev/null
+++ b/core/reiserfsprogs/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142934 2011-11-18 14:00:58Z pierre $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=reiserfsprogs
+pkgver=3.6.21
+pkgrel=4
+pkgdesc="Reiserfs utilities"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kernel.org/"
+license=('GPL')
+groups=('base')
+depends=('util-linux-ng')
+source=("ftp://ftp.archlinux.org/other/reiserfsprogs/reiserfsprogs-${pkgver}.tar.bz2")
+md5sums=('0639cefac8f8150536cfa7531c2aa2d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sbindir=/sbin
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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..040eef5b6
--- /dev/null
+++ b/core/rfkill/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142840 2011-11-16 20:25:37Z dan $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=rfkill
+pkgver=0.4
+pkgrel=3
+pkgdesc="A tool for enabling and disabling wireless devices"
+arch=('i686' 'x86_64' 'mips64el')
+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/rpcbind/PKGBUILD b/core/rpcbind/PKGBUILD
new file mode 100644
index 000000000..7ddf7799e
--- /dev/null
+++ b/core/rpcbind/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 142757 2011-11-14 20:23:15Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=rpcbind
+pkgver=0.2.0
+pkgrel=5
+pkgdesc="portmap replacement which supports RPC over various protocols"
+arch=(i686 x86_64 'mips64el')
+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
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+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..792ecf9c2
--- /dev/null
+++ b/core/run-parts/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 142725 2011-11-13 21:03:15Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=run-parts
+pkgver=4.0.4
+pkgrel=1
+pkgdesc='run scripts or programs in a directory'
+arch=('i686' 'x86_64' 'mips64el')
+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")
+sha256sums=('9a14722c7422c6d16f30c80b74201d9c803beeef2bb4c004964d0979eaa1232f')
+
+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
+ for l in po4a/*/run-parts.8; do
+ install -D -m644 ${l} $pkgdir/usr/share/man/${l:5:2}/man8/run-parts.8
+ done
+}
diff --git a/core/sdparm/PKGBUILD b/core/sdparm/PKGBUILD
new file mode 100644
index 000000000..b1497971a
--- /dev/null
+++ b/core/sdparm/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142819 2011-11-15 17:24:15Z andrea $
+# Maintainer:
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: grimi@poczta.fm
+
+pkgname=sdparm
+pkgver=1.06
+pkgrel=2
+pkgdesc="An utility similar to hdparm but for SCSI devices"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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..b83f77aaf
--- /dev/null
+++ b/core/sed/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142078 2011-11-04 23:36:15Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=sed
+pkgver=4.2.1
+pkgrel=4.1
+pkgdesc="GNU stream editor"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig})
+md5sums=('f0fd4d7da574d4707e442285fd2d3b86'
+ '91871b227dbf0916e019ba1fb0fbfdf3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+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/LICENSE b/core/shadow/LICENSE
new file mode 100644
index 000000000..c5ab15a56
--- /dev/null
+++ b/core/shadow/LICENSE
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 1990 - 1994, Julianne Frances Haugh
+ * Copyright (c) 1996 - 2000, Marek Michałkiewicz
+ * Copyright (c) 2001 - 2006, Tomasz Kłoczko
+ * Copyright (c) 2007 - 2009, Nicolas François
+ * 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 copyright holders or contributors may not 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
+ * HOLDERS 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/core/shadow/PKGBUILD b/core/shadow/PKGBUILD
new file mode 100644
index 000000000..e46251076
--- /dev/null
+++ b/core/shadow/PKGBUILD
@@ -0,0 +1,107 @@
+# $Id: PKGBUILD 144463 2011-12-06 10:57:36Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=shadow
+pkgver=4.1.4.3
+pkgrel=5
+pkgdesc="Password and account management tool suite with support for shadow files and PAM"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://pkg-shadow.alioth.debian.org/'
+license=('BSD')
+groups=('base')
+depends=('bash' 'pam' 'acl')
+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
+#http://pkg-shadow.alioth.debian.org/releases/shadow-$pkgver.tar.bz2
+# shadow 4.1.4.3 is just shadow 4.1.4.2 with shadow_CVE-2011-0721.patch applied
+source=(ftp://ftp.archlinux.org/other/shadow/shadow_4.1.4.2+svn3283.orig.tar.gz
+ adduser chgpasswd chpasswd defaults.pam login login.defs newusers
+ passwd shadow.cron.daily useradd.defaults LICENSE
+ xstrdup.patch shadow_CVE-2011-0721.patch shadow-strncpy-usage.patch
+ shadow-add-missing-include.patch)
+sha1sums=('8b704b8f07718e329205f23d457c3121c0f3679e'
+ '78ec184a499f9708adcfcf0b7a3b22a60bf39f91'
+ '4ad0e059406a305c8640ed30d93c2a1f62c2f4ad'
+ '12427b1ca92a9b85ca8202239f0d9f50198b818f'
+ '0e56fed7fc93572c6bf0d8f3b099166558bb46f1'
+ '895aad07c192b288b457e19dd7b8c55841b4ad22'
+ 'e5cab2118ecb1e61874cde842d7d04d1003f35cb'
+ '12427b1ca92a9b85ca8202239f0d9f50198b818f'
+ '611be25d91c3f8f307c7fe2485d5f781e5dee75f'
+ '5d83ba7e11c765c951867cbe00b0ae7ff57148fa'
+ '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'
+ '33a6cf1e44a1410e5c9726c89e5de68b78f5f922'
+ '6010fffeed1fc6673ad9875492e1193b1a847b53'
+ '6bfe6528391eb38d338beacedd620407877b637d'
+ '9db9e62ad173f31e1039121c0124cf60826ffd7e'
+ '0697a21f7519de30821da7772677035652df4ad2')
+
+build() {
+ cd "$srcdir/$pkgname-4.1.4.2+svn3283"
+
+ #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 -p1 -i "$srcdir/xstrdup.patch"
+ patch -p1 -i "$srcdir/shadow_CVE-2011-0721.patch"
+ patch -p1 -i "$srcdir/shadow-strncpy-usage.patch"
+ patch -p1 -i "$srcdir/shadow-add-missing-include.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-4.1.4.2+svn3283"
+ make DESTDIR="$pkgdir" install
+
+ # license
+ install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE"
+
+ # 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 - custom
+ 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 "$pkgdir/bin/su"
+ find "$pkgdir/usr/share/man" -name 'su.1' -delete
+}
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/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..5d447985a
--- /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 sha512 shadow
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..b8555f89c
--- /dev/null
+++ b/core/shadow/login
@@ -0,0 +1,21 @@
+#%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 sha512 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
+-session optional pam_systemd.so
diff --git a/core/shadow/login.defs b/core/shadow/login.defs
new file mode 100644
index 000000000..2500ee447
--- /dev/null
+++ b/core/shadow/login.defs
@@ -0,0 +1,197 @@
+#
+# /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
+
+#
+# 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..5d447985a
--- /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 sha512 shadow
diff --git a/core/shadow/passwd b/core/shadow/passwd
new file mode 100644
index 000000000..ab56da496
--- /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 sha512 shadow use_authtok
+password required pam_unix.so sha512 shadow nullok
diff --git a/core/shadow/shadow-add-missing-include.patch b/core/shadow/shadow-add-missing-include.patch
new file mode 100644
index 000000000..5c9e946ef
--- /dev/null
+++ b/core/shadow/shadow-add-missing-include.patch
@@ -0,0 +1,11 @@
+diff -Naur shadow-4.1.4.2+svn3283/libmisc/copydir.c shadow-4.1.4.2+svn3283.new/libmisc/copydir.c
+--- shadow-4.1.4.2+svn3283/libmisc/copydir.c 2010-09-05 11:35:26.000000000 -0400
++++ shadow-4.1.4.2+svn3283.new/libmisc/copydir.c 2011-06-26 01:26:52.000000000 -0400
+@@ -34,6 +34,7 @@
+
+ #ident "$Id: copydir.c 3283 2010-09-05 15:34:42Z nekral-guest $"
+
++#include <stdarg.h>
+ #include <assert.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
diff --git a/core/shadow/shadow-strncpy-usage.patch b/core/shadow/shadow-strncpy-usage.patch
new file mode 100644
index 000000000..46df74ace
--- /dev/null
+++ b/core/shadow/shadow-strncpy-usage.patch
@@ -0,0 +1,27 @@
+diff -ur shadow-4.1.4.3.orig/src/login.c shadow-4.1.4.3/src/login.c
+--- shadow-4.1.4.3.orig/src/login.c 2011-03-05 22:17:10.032524948 -0800
++++ shadow-4.1.4.3/src/login.c 2011-03-05 22:17:59.154342059 -0800
+@@ -748,8 +748,9 @@
+ sizeof (loginprompt),
+ _("%s login: "), hostn);
+ } else {
++ loginprompt[sizeof (loginprompt) - 1] = '\0';
+ strncpy (loginprompt, _("login: "),
+- sizeof (loginprompt));
++ sizeof (loginprompt) - 1);
+ }
+
+ retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
+diff -ur shadow-4.1.4.3.orig/src/usermod.c shadow-4.1.4.3/src/usermod.c
+--- shadow-4.1.4.3.orig/src/usermod.c 2011-03-05 22:17:10.029191265 -0800
++++ shadow-4.1.4.3/src/usermod.c 2011-03-05 22:18:42.665576968 -0800
+@@ -182,7 +182,8 @@
+ struct tm *tp;
+
+ if ((negativ != NULL) && (date < 0)) {
+- strncpy (buf, negativ, maxsize);
++ buf[maxsize - 1] = '\0';
++ strncpy (buf, negativ, maxsize - 1);
+ } else {
+ time_t t = (time_t) date;
+ tp = gmtime (&t);
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..e990bfe39
--- /dev/null
+++ b/core/shadow/shadow.install
@@ -0,0 +1,9 @@
+post_upgrade() {
+ grpck -r >/dev/null 2>&1
+ if [ $? -eq 2 ]; then
+ printf '%s\n' \
+ "==> Warning: /etc/group or /etc/gshadow are inconsistant." \
+ " Run 'grpck' to correct this."
+ fi
+ return 0
+}
diff --git a/core/shadow/shadow_CVE-2011-0721.patch b/core/shadow/shadow_CVE-2011-0721.patch
new file mode 100644
index 000000000..eb9ad80a2
--- /dev/null
+++ b/core/shadow/shadow_CVE-2011-0721.patch
@@ -0,0 +1,57 @@
+Goal: Input sanitization for chfn and chsh
+
+Fixes: CVE-2011-0721
+
+Status wrt upstream: Already applied upstream (4.1.4.3)
+
+--- a/src/chfn.c
++++ b/src/chfn.c
+@@ -551,14 +551,14 @@
+ static void check_fields (void)
+ {
+ int err;
+- err = valid_field (fullnm, ":,=");
++ err = valid_field (fullnm, ":,=\n");
+ if (err > 0) {
+ fprintf (stderr, _("%s: name with non-ASCII characters: '%s'\n"), Prog, fullnm);
+ } else if (err < 0) {
+ fprintf (stderr, _("%s: invalid name: '%s'\n"), Prog, fullnm);
+ fail_exit (E_NOPERM);
+ }
+- err = valid_field (roomno, ":,=");
++ err = valid_field (roomno, ":,=\n");
+ if (err > 0) {
+ fprintf (stderr, _("%s: room number with non-ASCII characters: '%s'\n"), Prog, roomno);
+ } else if (err < 0) {
+@@ -566,17 +566,17 @@
+ Prog, roomno);
+ fail_exit (E_NOPERM);
+ }
+- if (valid_field (workph, ":,=") != 0) {
++ if (valid_field (workph, ":,=\n") != 0) {
+ fprintf (stderr, _("%s: invalid work phone: '%s'\n"),
+ Prog, workph);
+ fail_exit (E_NOPERM);
+ }
+- if (valid_field (homeph, ":,=") != 0) {
++ if (valid_field (homeph, ":,=\n") != 0) {
+ fprintf (stderr, _("%s: invalid home phone: '%s'\n"),
+ Prog, homeph);
+ fail_exit (E_NOPERM);
+ }
+- err = valid_field (slop, ":");
++ err = valid_field (slop, ":\n");
+ if (err > 0) {
+ fprintf (stderr, _("%s: '%s' contains non-ASCII characters\n"), Prog, slop);
+ } else if (err < 0) {
+--- a/src/chsh.
++++ b/src/chsh.c
+@@ -528,7 +528,7 @@
+ * users are restricted to using the shells in /etc/shells.
+ * The shell must be executable by the user.
+ */
+- if (valid_field (loginsh, ":,=") != 0) {
++ if (valid_field (loginsh, ":,=\n") != 0) {
+ fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog, loginsh);
+ fail_exit (1);
+ }
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..46322c125
--- /dev/null
+++ b/core/sqlite3/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 142094 2011-11-05 09:05:38Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase="sqlite3"
+pkgname=('sqlite3' 'sqlite3-tcl')
+_amalgamationver=3070900
+_amalgamationver2=${_amalgamationver/00/}
+_docver=${_amalgamationver} #3070700
+pkgver=${_amalgamationver2//0/.}
+pkgrel=1.1
+pkgdesc="A C library that implements an SQL database engine"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://www.sqlite.org/"
+makedepends=('tcl' 'readline>=6.0.00')
+source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
+ http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
+ license.txt)
+options=('!libtool' '!emptydirs')
+md5sums=('dce303524736fe89a76b8ed29d566352'
+ 'c1cdbc5544034d9012e421e75a5e4890')
+
+build() {
+ 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-autoconf-$_amalgamationver/tea
+ ./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-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-autoconf-$_amalgamationver/tea
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/sqlite3/PKGBUILD.mips64el b/core/sqlite3/PKGBUILD.mips64el
new file mode 100644
index 000000000..98f925d56
--- /dev/null
+++ b/core/sqlite3/PKGBUILD.mips64el
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 130058 2011-07-01 19:36:29Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase="sqlite3"
+pkgname=('sqlite3' 'sqlite3-tcl')
+_amalgamationver=3070701
+_amalgamationver2=${_amalgamationver/00/}
+_docver=${_amalgamationver} #3070700
+pkgver=${_amalgamationver2//0/.}
+pkgrel=1
+pkgdesc="A C library that implements an SQL database engine"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://www.sqlite.org/"
+makedepends=('tcl' 'readline>=6.0.00')
+source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
+ http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
+ license.txt)
+options=('!libtool' '!emptydirs')
+md5sums=('554026fe7fac47b1cf61c18d5fe43419'
+ 'c1cdbc5544034d9012e421e75a5e4890')
+
+build() {
+ 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-autoconf-$_amalgamationver/tea
+ ./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-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-autoconf-$_amalgamationver/tea
+ make DESTDIR=${pkgdir} install
+}
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..a78fcaeb9
--- /dev/null
+++ b/core/sudo/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 141376 2011-10-30 06:48:48Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sudo
+_ver=1.8.3p1
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=1.1
+pkgdesc="Give certain users the ability to run some commands as root"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.sudo.ws/sudo/"
+license=('custom')
+depends=('glibc' 'pam')
+backup=('etc/sudoers' 'etc/pam.d/sudo')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.sudo.ws/pub/sudo/$pkgname-$_ver.tar.gz{,.sig}
+ sudo.pam)
+md5sums=('7becc572fa97f94cf721a2ee8299c45b'
+ 'b0726a25694fb2cdd5e1c146eb024e9c'
+ '4e7ad4ec8f2fe6a40e12bcb2c0b256e3')
+
+build() {
+ cd "$srcdir/$pkgname-$_ver"
+
+ ./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/sysfsutils/PKGBUILD b/core/sysfsutils/PKGBUILD
new file mode 100644
index 000000000..0d725bfb3
--- /dev/null
+++ b/core/sysfsutils/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 142543 2011-11-11 21:17:05Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=sysfsutils
+pkgver=2.1.0
+pkgrel=7
+pkgdesc="System Utilities Based on Sysfs"
+arch=(i686 x86_64 'mips64el')
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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/.arch b/core/syslinux/.arch
new file mode 100644
index 000000000..9fe4d07f7
--- /dev/null
+++ b/core/syslinux/.arch
@@ -0,0 +1 @@
+mips64el=false
diff --git a/core/syslinux/PKGBUILD b/core/syslinux/PKGBUILD
new file mode 100644
index 000000000..53eb06d0b
--- /dev/null
+++ b/core/syslinux/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 144967 2011-12-12 09:45:24Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=syslinux
+pkgver=4.05
+pkgrel=1
+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)
+md5sums=('82299242418385da1274c9479a778cb2'
+ '1528c376e43f0eaccaa80d8ad1bc13b4'
+ '4dc27d8ab3802f8e50f3dda28168ce6d'
+ 'b5b4953c0a5a01cd16441402f6321765')
+
+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 mk/syslinux.mk
+ 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..2b86ab828
--- /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
+@@ -54,7 +54,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 \
+- diag 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..02127d21d
--- /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 ../vmlinuz-linux
+ APPEND root=/dev/sda3 ro
+ INITRD ../initramfs-linux.img
+
+LABEL archfallback
+ MENU LABEL Arch Linux Fallback
+ LINUX ../vmlinuz-linux
+ APPEND root=/dev/sda3 ro
+ INITRD ../initramfs-linux-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..50da829b6
--- /dev/null
+++ b/core/syslog-ng/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 143678 2011-11-28 11:05:29Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=syslog-ng
+pkgver=3.3.3
+pkgrel=1
+pkgdesc="Next-generation syslogd with advanced networking and filtering capabilities"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+groups=('base')
+url="http://www.balabit.com/network-security/syslog-ng/"
+depends=('glib2' 'eventlog' 'openssl' 'libcap' 'awk')
+makedepends=('flex' 'pkg-config')
+optdepends=('logrotate: for rotating log files')
+provides=('logger')
+options=('!libtool')
+backup=('etc/syslog-ng/modules.conf' 'etc/syslog-ng/scl.conf' \
+ 'etc/syslog-ng/syslog-ng.conf' 'etc/logrotate.d/syslog-ng')
+source=("http://www.balabit.com/downloads/files/syslog-ng/sources/$pkgver/source/${pkgname}_$pkgver.tar.gz"
+ syslog-ng.conf
+ syslog-ng.logrotate
+ syslog-ng.rc)
+sha1sums=('e2ec8ba4bde24809630a7675bf5d97f00be467f8'
+ '98074e0facfc6ef036202662cc86d04b38a2c142'
+ '949128fe3d7f77a7aab99048061f885bc758000c'
+ 'a6ad26912b5bcbe1b47b003309945d733613b98f')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc/syslog-ng \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var/lib/syslog-ng \
+ --with-pidfile-dir=/run \
+ --disable-spoof-source \
+ --enable-systemd \
+ --with-systemdsystemunitdir=/lib/systemd/system
+
+ make
+}
+
+package() {
+ make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
+
+ install -dm755 "$pkgdir/var/lib/syslog-ng" "$pkgdir/etc/syslog-ng/patterndb.d"
+ install -Dm644 "$srcdir/syslog-ng.conf" "$pkgdir/etc/syslog-ng/syslog-ng.conf"
+ install -Dm644 "$srcdir/syslog-ng.logrotate" "$pkgdir/etc/logrotate.d/syslog-ng"
+ install -Dm755 "$srcdir/syslog-ng.rc" "$pkgdir/etc/rc.d/syslog-ng"
+}
diff --git a/core/syslog-ng/syslog-ng.conf b/core/syslog-ng/syslog-ng.conf
new file mode 100644
index 000000000..8f86eac2f
--- /dev/null
+++ b/core/syslog-ng/syslog-ng.conf
@@ -0,0 +1,92 @@
+@version: 3.3
+#
+# /etc/syslog-ng/syslog-ng.conf
+#
+
+options {
+ stats_freq (0);
+ flush_lines (0);
+ time_reopen (10);
+ log_fifo_size (10000);
+ chain_hostnames (off);
+ use_dns (no);
+ use_fqdn (no);
+ create_dirs (no);
+ keep_hostname (yes);
+ perm(0640);
+ group("log");
+};
+
+source src {
+ unix-dgram("/dev/log");
+ internal();
+ file("/proc/kmsg");
+};
+
+destination d_authlog { file("/var/log/auth.log"); };
+destination d_syslog { file("/var/log/syslog.log"); };
+destination d_cron { file("/var/log/crond.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kernel { file("/var/log/kernel.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_news { file("/var/log/news.log"); };
+destination d_ppp { file("/var/log/ppp.log"); };
+destination d_debug { file("/var/log/debug.log"); };
+destination d_messages { file("/var/log/messages.log"); };
+destination d_errors { file("/var/log/errors.log"); };
+destination d_everything { file("/var/log/everything.log"); };
+destination d_iptables { file("/var/log/iptables.log"); };
+destination d_acpid { file("/var/log/acpid.log"); };
+destination d_console { usertty("root"); };
+
+# Log everything to tty12
+destination console_all { file("/dev/tty12"); };
+
+filter f_auth { facility(auth); };
+filter f_authpriv { facility(auth, authpriv); };
+filter f_syslog { program(syslog-ng); };
+filter f_cron { facility(cron); };
+filter f_daemon { facility(daemon); };
+filter f_kernel { facility(kern) and not filter(f_iptables); };
+filter f_lpr { facility(lpr); };
+filter f_mail { facility(mail); };
+filter f_news { facility(news); };
+filter f_user { facility(user); };
+filter f_uucp { facility(uucp); };
+filter f_ppp { facility(local2); };
+filter f_debug { not facility(auth, authpriv, news, mail); };
+filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news, cron) and not program(syslog-ng) and not filter(f_iptables); };
+filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };
+filter f_emergency { level(emerg); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_crit { level(crit); };
+filter f_err { level(err); };
+filter f_iptables { match("IN=" value("MESSAGE")) and match("OUT=" value("MESSAGE")); };
+filter f_acpid { program("acpid"); };
+
+log { source(src); filter(f_acpid); destination(d_acpid); };
+log { source(src); filter(f_authpriv); destination(d_authlog); };
+log { source(src); filter(f_syslog); destination(d_syslog); };
+log { source(src); filter(f_cron); destination(d_cron); };
+log { source(src); filter(f_daemon); destination(d_daemon); };
+log { source(src); filter(f_kernel); destination(d_kernel); };
+log { source(src); filter(f_lpr); destination(d_lpr); };
+log { source(src); filter(f_mail); destination(d_mail); };
+log { source(src); filter(f_news); destination(d_news); };
+log { source(src); filter(f_ppp); destination(d_ppp); };
+log { source(src); filter(f_user); destination(d_user); };
+log { source(src); filter(f_uucp); destination(d_uucp); };
+#log { source(src); filter(f_debug); destination(d_debug); };
+log { source(src); filter(f_messages); destination(d_messages); };
+log { source(src); filter(f_err); destination(d_errors); };
+log { source(src); filter(f_emergency); destination(d_console); };
+log { source(src); filter(f_everything); destination(d_everything); };
+log { source(src); filter(f_iptables); destination(d_iptables); };
+
+# Log everything to tty12
+#log { source(src); destination(console_all); };
diff --git a/core/syslog-ng/syslog-ng.logrotate b/core/syslog-ng/syslog-ng.logrotate
new file mode 100644
index 000000000..3509f2970
--- /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 /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..516b03da3
--- /dev/null
+++ b/core/syslog-ng/syslog-ng.rc
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+checkconfig() {
+ if ! syslog-ng -s -f /etc/syslog-ng/syslog-ng.conf; then
+ stat_fail
+ exit 1
+ fi
+}
+
+pidfile=/run/syslog-ng.pid
+if [[ -r $pidfile ]]; then
+ read -r PID < "$pidfile"
+ if [[ $PID && ! -d /proc/$PID ]]; then
+ # stale pidfile
+ unset PID
+ rm -f "$pidfile"
+ fi
+fi
+
+case $1 in
+ start)
+ stat_busy "Starting Syslog-NG"
+ checkconfig
+ if [[ -z $PID ]] && /usr/sbin/syslog-ng; then
+ add_daemon syslog-ng
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Syslog-NG"
+ if [[ $PID ]] && kill $PID &>/dev/null; then
+ rm_daemon syslog-ng
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ reload)
+ stat_busy "Reloading Syslog-NG configuration and re-opening log files"
+ if [[ -z $PID ]]; then
+ stat_fail
+ else
+ checkconfig
+ if kill -HUP $PID &>/dev/null; then
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload}"
+esac
diff --git a/core/sysvinit/PKGBUILD b/core/sysvinit/PKGBUILD
new file mode 100644
index 000000000..b521d1895
--- /dev/null
+++ b/core/sysvinit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137779 2011-09-10 22:03:10Z tomegun $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=sysvinit
+pkgver=2.88
+pkgrel=3.1
+pkgdesc="Linux System V Init"
+arch=('i686' 'x86_64' 'mips64el')
+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
+
+ # mountpoint is now provided by util-linux instead
+ cd "${pkgdir}"
+ rm bin/mountpoint
+ rm usr/share/man/man1/mountpoint.1
+}
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..ffd5cb336
--- /dev/null
+++ b/core/tar/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142080 2011-11-04 23:36:17Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=tar
+pkgver=1.26
+pkgrel=2
+pkgdesc="Utility used to store, backup, and transport files"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig}
+ tar.1)
+md5sums=('0ced6f20b9fa1bea588005b5ad4b52c1'
+ '6618d5fe7785e138c27d7d6a24e998b2'
+ 'e97e7343f4e23724b4c48bca2f033e38')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/tar --bindir=/bin
+ make
+}
+
+check() {
+ cd ${srcdir}/$pkgname-$pkgver
+ 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..75bbcd38c
--- /dev/null
+++ b/core/tar/tar.1
@@ -0,0 +1,367 @@
+.\" generated by script on Fri Aug 19 16:19:30 2011
+.Dd Aug 19, 2011
+.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 \-full\-time
+print file time to its full resolution
+.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 times 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.
+.It Ev TAR_LONGLINK_100
+.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/texinfo/PKGBUILD b/core/texinfo/PKGBUILD
new file mode 100644
index 000000000..d4463347d
--- /dev/null
+++ b/core/texinfo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 145004 2011-12-13 23:40:32Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=texinfo
+pkgver=4.13a
+pkgrel=7
+pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file"
+arch=('i686' 'x86_64' 'mips64el')
+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{,.sig}
+ texinfo-4.13a-data_types.patch)
+md5sums=('71ba711519209b5fb583fed2b3d86fcb'
+ 'db2ca82c831684cd7cef181234017c46'
+ 'd8574782ff7def1e2dc5c291dbeaec18')
+
+build() {
+ cd ${srcdir}/${pkgname}-4.13
+ patch -Np1 -i $srcdir/texinfo-4.13a-data_types.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-4.13
+ make DESTDIR=${pkgdir} install
+
+ # fix this here as it prevents 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-4.13a-data_types.patch b/core/texinfo/texinfo-4.13a-data_types.patch
new file mode 100644
index 000000000..2a87c2146
--- /dev/null
+++ b/core/texinfo/texinfo-4.13a-data_types.patch
@@ -0,0 +1,32 @@
+diff -up texinfo-4.13/info/window.c_old texinfo-4.13/info/window.c
+--- texinfo-4.13/info/window.c_old 2009-08-04 13:46:15.000000000 +0200
++++ texinfo-4.13/info/window.c 2009-08-04 13:47:29.000000000 +0200
+@@ -1581,7 +1581,7 @@ process_node_text (WINDOW *win, char *st
+ const char *carried_over_ptr;
+ size_t carried_over_len, carried_over_count;
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
++ size_t cur_len = mb_len (mbi_cur (iter));
+ int replen;
+ int delim = 0;
+ int rc;
+@@ -1754,7 +1754,7 @@ clean_manpage (char *manpage)
+ mbi_advance (iter))
+ {
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
++ size_t cur_len = mb_len (mbi_cur (iter));
+
+ if (cur_len == 1)
+ {
+@@ -1852,8 +1852,8 @@ window_scan_line (WINDOW *win, int line,
+ mbi_advance (iter))
+ {
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
+- int replen;
++ size_t cur_len = mb_len (mbi_cur (iter));
++ size_t replen;
+
+ if (cur_ptr >= endp)
+ break;
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..a1b8601c0
--- /dev/null
+++ b/core/tzdata/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 141939 2011-11-03 11:23:47Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=tzdata
+pkgver=2011n
+pkgrel=1
+_tzcode=2011i
+_tzdata=2011n
+pkgdesc="Sources for time zone and daylight saving time data"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.twinsun.com/tz/tz-link.htm"
+license=('GPL')
+depends=()
+makedepends=()
+optdepends=('bash: required by tzselect')
+options=('!emptydirs')
+source=(ftp://elsie.nci.nih.gov/pub/tzcode${_tzcode}.tar.gz \
+ ftp://munnari.oz.au/pub/${pkgname}${_tzdata}.tar.gz
+ #ftp://elsie.nci.nih.gov/pub/${pkgname}${_tzdata}.tar.gz \
+ Makefile.patch)
+md5sums=('cf7f4335b7c8682899fa2814e711c1b2'
+ '20dbfb28efa008ddbf6dd34601ea40fa'
+ 'a64ed97d1fc03c66ee8612c0d9f40507')
+
+build() {
+ cd ${srcdir}
+
+ tar -xf tzcode${_tzcode}.tar.gz
+ tar -xf ${pkgname}${_tzdata}.tar.gz
+
+ patch -Np1 -i "${srcdir}/Makefile.patch"
+
+ make
+}
+
+check() {
+ cd ${srcdir}
+ make -k check # || /bin/true
+}
+
+package() {
+ cd ${srcdir}
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}/usr/share/zoneinfo/localtime"
+}
diff --git a/core/udev/81-arch.rules b/core/udev/81-arch.rules
new file mode 100644
index 000000000..6bdf4e249
--- /dev/null
+++ b/core/udev/81-arch.rules
@@ -0,0 +1,9 @@
+# do not edit this file, it will be overwritten on update
+# this file is going away in the near future
+
+# this might belong in <http://aur.archlinux.org/packages.php?ID=22698>
+# see also /usr/src/*/Documentation/laptops/sonypi.txt
+KERNEL=="sonypi", MODE="0666"
+
+# this might belong in <https://aur.archlinux.org/packages.php?ID=18393>
+KERNEL=="legousbtower*", MODE="0666"
diff --git a/core/udev/PKGBUILD b/core/udev/PKGBUILD
new file mode 100644
index 000000000..1e290da16
--- /dev/null
+++ b/core/udev/PKGBUILD
@@ -0,0 +1,106 @@
+# $Id: PKGBUILD 142408 2011-11-09 04:55:56Z tomegun $
+# Maintainer: Tom Gundersen <teg@jklm.no>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+
+pkgbase="udev"
+pkgname=('udev' 'udev-compat')
+pkgver=175
+pkgrel=1.1
+arch=(i686 x86_64 mips64el)
+url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
+license=('GPL')
+groups=('base')
+options=(!makeflags !libtool)
+makedepends=('gobject-introspection' 'gperf')
+#source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.bz2
+source=(http://people.freedesktop.org/~kay/udev/$pkgbase-$pkgver.tar.bz2
+ 81-arch.rules)
+
+build() {
+ cd $srcdir/$pkgbase-$pkgver
+
+ if [ "$CARCH" = "mips64el" ]; then
+ msg "Remove -Wl,--gc-sections"
+ sed -i "/--gc-sections/d" Makefile.*
+ fi
+
+ ./configure --sysconfdir=/etc\
+ --with-rootlibdir=/lib\
+ --libexecdir=/lib/udev\
+ --sbindir=/sbin\
+ --with-systemdsystemunitdir=/lib/systemd/system\
+ --disable-rule-generator\
+ --enable-udev_acl
+
+ make
+}
+
+package_udev() {
+ pkgdesc="The userspace dev tools (udev)"
+ depends=('util-linux' 'libusb-compat' 'glib2' 'module-init-tools' 'pciutils')
+ install=udev.install
+ backup=(etc/udev/udev.conf)
+ conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07')
+ replaces=('devfsd')
+
+ cd $srcdir/$pkgbase-$pkgver
+ make DESTDIR=${pkgdir} install
+ # Install our rule for permissions and symlinks
+ install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules
+
+ # create framebuffer blacklist
+ mkdir -p $pkgdir/lib/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/lib/modprobe.d/framebuffer_blacklist.conf
+
+ # /dev/loop0 is created for convenience, to autoload the module if necessary
+ # may be obsoleted by https://lkml.org/lkml/2011/7/30/111
+ mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0
+ chgrp disk ${pkgdir}/lib/udev/devices/loop0
+
+ # udevd moved, symlink to make life easy for restarting udevd manually
+ ln -s /lib/udev/udevd ${pkgdir}/sbin/udevd
+
+ # 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/$pkgbase-$pkgver
+ install -d -m755 ${pkgdir}/lib/${pkgbase}/rules.d
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
+ # create static devices in /lib/udev/devices/
+ mkdir -p ${pkgdir}/lib/udev/devices/{pts,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/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
+}
+md5sums=('2fc9c1efcbde98e3d73ffee7a77aea47'
+ '3da2bb9891592f9438a07bd641465531')
diff --git a/core/udev/udev.install b/core/udev/udev.install
new file mode 100644
index 000000000..2cc8caaa0
--- /dev/null
+++ b/core/udev/udev.install
@@ -0,0 +1,62 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 174)" -lt 0 ]; then
+ echo "ATTENTION UDEV:"
+ echo "----------"
+ if [ "$(vercmp $2 168)" -lt 0 ]; then
+ echo "Kernel 2.6.32 or newer is now required."
+ echo " --"
+ echo "OSS emulation modules are not loaded by default, add to rc.conf if needed."
+ echo " --"
+ echo "Arch specific cd symlinks are now no longer created."
+ echo " --"
+ echo "cd and net persistent rules will no longer be autogenerated,"
+ echo "see <https://wiki.archlinux.org/index.php/Udev> for details."
+ echo " --"
+ echo "Errors are now logged (possibly to the console) by default."
+ echo " --"
+ fi
+ if [ "$(vercmp $2 171)" -lt 0 ]; then
+ echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and"
+ echo "blacklisting in MODULES no longer works."
+ echo "See 'man modprobe.conf' for a replacement to blacklisting."
+ echo "To disable a module mod1 on the kernel command line, use"
+ echo "mod1.disable=1"
+ echo "or"
+ echo "modprobe.blacklist=mod1"
+ echo " --"
+ echo "The following modules are no longer unconditionally loaded:"
+ echo " pcspkr irtty-sir analog lp ppdev ide-generic"
+ echo "Add them to MODULES in rc.conf if you need them."
+ echo " --"
+ fi
+ if [ "$(vercmp $2 172)" -lt 0 ]; then
+ echo "Support for non-devtmpfs self-compiled kernels have been moved to udev-compat."
+ echo " --"
+ echo "Blacklisting of framebuffer devices has moved from /etc/modprobe.d to"
+ echo "/lib/modprobe.d. Any customizations shoud be done to the file in /etc, as it"
+ echo "takes precedence."
+ echo " --"
+ echo "kbd and rtc devices are no longer world readable."
+ echo " --"
+ echo "rtc is no longer in the audio group and fb devices are no longer in"
+ echo "the video group, as permissions and ownership of fb devices are controlled"
+ echo "by X."
+ echo " --"
+ fi
+ echo "We now use upstream rules for assigning devices to the 'disk', 'optical',"
+ echo "'scanner' and 'video' groups. Beware of any changes."
+ echo " --"
+ echo "We no longer create symlinks from /dev/<dev> to /dev/<dev>0."
+ echo " --"
+ echo "For security reasons, we no longer add devices to the 'storage' group. Use"
+ echo "udisks and friends, or add custom rules to /etc/udev.d/rules/, if you want"
+ echo "this functionality back."
+ echo " --"
+ echo "We no longer create the static nodes on install needed for an initrd-less and"
+ echo "devtmpfs-less boot, this only affects fresh installs."
+ echo "---------------"
+ fi
+}
diff --git a/core/usbutils/PKGBUILD b/core/usbutils/PKGBUILD
new file mode 100644
index 000000000..3fe65e8c4
--- /dev/null
+++ b/core/usbutils/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 136054 2011-08-22 06:28:37Z tpowa $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Curtis Campbell <curtisjamescampbell@hotmail.com>
+pkgname=usbutils
+pkgver=004
+pkgrel=1
+_usb_ids_date=2011.08.17
+pkgdesc="USB Device Utilities"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+groups=('base')
+makedepends=('wget')
+depends=('glibc' 'libusb')
+optdepends=('python2: for lsusb.py usage'
+ 'coreutils: for lsusb.py usage')
+url="http://linux-usb.sourceforge.net/"
+source=(http://www.kernel.org/pub/linux/utils/usb/$pkgname/$pkgname-$pkgver.tar.gz
+ fix-python2.patch
+ usb.ids-${_usb_ids_date}) # from http://linux-usb.sourceforge.net/usb.ids
+md5sums=('481e1de453bcabbd5f43125bb4df2ab7'
+ '45766196895b4cc50b53cd56e1bbf3d1'
+ 'f04c301b5363ef618f0ec776deff3117')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ rm usb.ids
+ cp $srcdir/usb.ids-${_usb_ids_date} usb.ids
+ # patch lsusb.py to use correct usb.ids file and python2 interpreter
+ patch -Np1 -i $srcdir/fix-python2.patch
+ ./configure --prefix=/usr --datadir=/usr/share/hwdata --disable-zlib
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # fix pkgconfig file
+ install -dm755 $pkgdir/usr/lib
+ mv $pkgdir/usr/share/pkgconfig $pkgdir/usr/lib/
+}
+md5sums=('481e1de453bcabbd5f43125bb4df2ab7'
+ '45766196895b4cc50b53cd56e1bbf3d1'
+ 'f04c301b5363ef618f0ec776deff3117')
diff --git a/core/usbutils/fix-python2.patch b/core/usbutils/fix-python2.patch
new file mode 100644
index 000000000..7e2875e99
--- /dev/null
+++ b/core/usbutils/fix-python2.patch
@@ -0,0 +1,17 @@
+--- usbutils-002/lsusb.py 2010-12-16 01:07:09.000000000 +0100
++++ usbutils-002/lsusb.py 2011-04-09 22:43:59.043828595 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ # lsusb.py
+ # Displays your USB devices in reasonable form.
+ # (c) Kurt Garloff <garloff@suse.de>, 2/2009, GPL v2 or v3.
+@@ -16,7 +16,7 @@
+ warnsort = False
+
+ prefix = "/sys/bus/usb/devices/"
+-usbids = "/usr/share/usb.ids"
++usbids = "/usr/share/hwdata/usb.ids"
+
+ esc = chr(27)
+ norm = esc + "[0;0m"
diff --git a/core/usbutils/usb.ids-2011.08.17 b/core/usbutils/usb.ids-2011.08.17
new file mode 100644
index 000000000..a194ddaec
--- /dev/null
+++ b/core/usbutils/usb.ids-2011.08.17
@@ -0,0 +1,16529 @@
+#
+# List of USB ID's
+#
+# Maintained by Stephen J. Gowdy <linux.usb.ids@gmail.com>
+# If you have any new entries, please submit them via
+# http://www.linux-usb.org/usb-ids.html
+# or send entries as patches (diff -u old new) in the
+# body of your email (a bot will attempt to deal with it).
+# The latest version can be obtained from
+# http://www.linux-usb.org/usb.ids
+#
+# Version: 2011.08.10
+# Date: 2011-08-10 20:34:03
+#
+
+# Vendors, devices and interfaces. Please keep sorted.
+
+# Syntax:
+# vendor vendor_name
+# device device_name <-- single tab
+# interface interface_name <-- two tabs
+
+0001 Fry's Electronics
+ 142b Arbiter Systems, Inc.
+0002 Ingram
+0003 Club Mac
+0004 Nebraska Furniture Mart
+0053 Planex
+ 5301 GW-US54ZGL 802.11bg
+0079 DragonRise Inc.
+ 0006 Generic USB Joystick
+ 0011 Gamepad
+0105 Trust International B.V.
+ 145f NW-3100 802.11b/g 54Mbps Wireless Network Adapter [zd1211]
+0145 Unknown
+ 0112 Card Reader
+0204 Chipsbank Microelectronics Co., Ltd
+ 6025 CBM2080 Flash drive controller
+ 6026 CBM1180 Flash drive controller
+0218 Hangzhou Worlde
+ 0301 MIDI Port
+02ad HUMAX Co., Ltd.
+ 138c PVR Mass Storage
+0300 MM300 eBook Reader
+0324 OCZ Technology Inc
+ bc06 OCZ ATV USB 2.0 Flash Drive
+ bc08 OCZ Rally2/ATV USB 2.0 Flash Drive
+0325 OCZ Technology Inc
+ ac02 ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive
+0386 LTS
+ 0001 PSX for USB Converter
+03da Bernd Walter Computer Technology
+ 0002 HD44780 LCD interface
+03e8 EndPoints, Inc.
+ 0004 SE401 Webcam
+ 0008 101 Ethernet [klsi]
+ 0015 ATAPI Enclosure
+ 2123 SiPix StyleCam Deluxe
+ 8004 Aox 99001
+03e9 Thesys Microelectronics
+03ea Data Broadcasting Corp.
+03eb Atmel Corp.
+ 0902 4-Port Hub
+ 2002 Mass Storage Device
+ 2015 at90usbkey sample firmware (HID keyboard)
+ 2018 at90usbkey sample firmware (CDC ACM)
+ 2019 stk525 sample firmware (microphone)
+ 201c at90usbkey sample firmware (HID mouse)
+ 201d at90usbkey sample firmware (HID generic)
+ 2022 at90usbkey sample firmware (composite device)
+ 2040 LUFA Test PID
+ 2041 LUFA Mouse Demo Application
+ 2042 LUFA Keyboard Demo Application
+ 2043 LUFA Joystick Demo Application
+ 2044 LUFA CDC Demo Application
+ 2045 LUFA Mass Storage Demo Application
+ 2046 LUFA Audio Output Demo Application
+ 2047 LUFA Audio Input Demo Application
+ 2048 LUFA MIDI Demo Application
+ 2049 Stripe Snoop Magnetic Stripe Reader
+ 204a LUFA CDC Class Bootloader
+ 204b LUFA USB to Serial Adapter Project
+ 204c LUFA RNDIS Demo Application
+ 204d LUFA Combined Mouse and Keyboard Demo Application
+ 204e LUFA Dual CDC Demo Application
+ 204f LUFA Generic HID Demo Application
+ 2060 Benito Programmer Project
+ 2061 LUFA Combined Mass Storage and Keyboard Demo Application
+ 2062 LUFA Combined CDC and Mouse Demo Application
+ 2063 LUFA Datalogger Device
+ 2064 Interfaceless Control-Only LUFA Devices
+ 2065 LUFA Test and Measurement Demo Application
+ 2066 LUFA Multiple Report HID Demo
+ 2068 LUFA Virtual Serial/Mass Storage Demo
+ 2069 LUFA Webserver Project
+ 2103 JTAG ICE mkII
+ 2104 AVR ISP mkII
+ 2105 AVRONE!
+ 2106 STK600 development board
+ 2107 AVR Dragon
+ 210d XPLAIN evaluation kit (CDC ACM)
+ 2122 XMEGA-A1 Explained evaluation kit
+ 2310 EVK11xx evaluation board
+ 2ffb at90usb AVR DFU bootloader
+ 2ffd at89c5130/c5131 DFU bootloader
+ 2fff at89c5132/c51snd1c DFU bootloader
+ 3301 at43301 4-Port Hub
+ 3312 4-Port Hub
+ 4102 AirVast W-Buddie WN210
+ 5601 at76c510 Prism-II 802.11b Access Point
+ 5603 Cisco 7920 WiFi IP Phone
+ 6124 at91sam SAMBA bootloader
+ 7603 D-Link DWL-120 802.11b Wireless Adapter [Atmel at76c503a]
+ 7604 at76c503a 802.11b Adapter
+ 7605 at76c503a 802.11b Adapter
+ 7606 at76c505 802.11b Adapter
+ 7611 at76c510 rfmd2948 802.11b Access Point
+ 7613 WL-1130 USB
+ 7614 AT76c505a Wireless Adapter
+ 7615 AT76C505AMX Wireless Adapter
+ 7617 AT76C505AS Wireless Adapter
+ 7800 Mini Album
+ ff07 Tux Droid fish dongle
+03ec Iwatsu America, Inc.
+03ed Mitel Corp.
+03ee Mitsumi
+ 0000 CD-R/RW Drive
+ 2501 eHome Infrared Receiver
+ 2502 eHome Infrared Receiver
+ 5609 Japanese Keyboard
+ 641f WIF-0402C Bluetooth Adapter
+ 6438 Bluetooth Device
+ 6440 WML-C52APR Bluetooth Adapter
+ 6901 SmartDisk FDD
+ 6902 Floppy Disk Drive
+ 7500 CD-R/RW
+ ffff Dongle with BlueCore in DFU mode
+03f0 Hewlett-Packard
+ 0004 DeskJet 895c
+ 0011 OfficeJet G55
+ 0012 DeskJet 1125C Printer Port
+ 0024 KU-0316 Keyboard
+ 002a LaserJet P1102
+ 0101 ScanJet 4100c
+ 0102 PhotoSmart S20
+ 0104 DeskJet 880c/970c
+ 0105 ScanJet 4200c
+ 0107 CD-Writer Plus
+ 010c Multimedia Keyboard Hub
+ 0111 G55xi Printer/Scanner/Copier
+ 0117 LaserJet 3200
+ 011c hn210w 802.11b Adapter
+ 011d Integrated Bluetooth Module
+ 0121 HP49g+ Calculator
+ 0122 HID Internet Keyboard
+ 0201 ScanJet 6200c
+ 0202 PhotoSmart S20
+ 0204 DeskJet 815c
+ 0205 ScanJet 3300c
+ 0207 CD-Writer Plus 8200e
+ 020c Multimedia Keyboard
+ 0211 OfficeJet G85
+ 0212 DeskJet 1220C
+ 0217 LaserJet 2200
+ 0218 APOLLO P2500/2600
+ 0304 DeskJet 810c/812c
+ 0305 ScanJet 4300c
+ 0307 CD-Writer+ CD-4e
+ 0311 OfficeJet G85xi
+ 0312 Color Inkjet CP1700
+ 0314 designjet 30/130 series
+ 0317 LaserJet 1200
+ 0324 SK-2885 keyboard
+ 0401 ScanJet 5200c
+ 0404 DeskJet 830c/832c
+ 0405 ScanJet 3400cse
+ 0411 OfficeJet G95
+ 0412 Printing Support
+ 0417 LaserJet 1200 series
+ 0423 HS-COMBO
+ 0504 DeskJet 885c
+ 0505 ScanJet 2100c
+ 0507 DVD+RW
+ 050c 5219 Wireless Keyboard
+ 0511 OfficeJet K60
+ 0512 DeckJet 450
+ 0517 LaserJet 1000
+ 051d Wireless (Bluetooth + WLAN) Interface [Integrated Module]
+ 0601 ScanJet 6300c
+ 0604 DeskJet 840c
+ 0605 ScanJet 2200c
+ 0611 OfficeJet K60xi
+ 0612 business inkjet 3000
+ 0624 Bluetooth Dongle
+ 0701 ScanJet 5300c/5370c
+ 0704 DeskJet 825c
+ 0705 ScanJet 4400c
+ 0711 OfficeJet K80
+ 0712 DeskJet 1180c
+ 0714 Printing Support
+ 0801 ScanJet 7400c
+ 0804 DeskJet 816c
+ 0805 HP4470C
+ 0811 OfficeJet K80xi
+ 0817 LaserJet 3300
+ 0901 ScanJet 2300c
+ 0904 DeskJet 845c
+ 0912 Printing Support
+ 0917 LaserJet 3330
+ 0924 Modular Smartcard Keyboard
+ 0a01 ScanJet 2400c
+ 0a17 color LaserJet 3700
+ 0b01 ScanJet 82x0C
+ 0b0c Wireless Keyboard and Optical Mouse receiver
+ 0b17 LaserJet 2300d
+ 0c17 LaserJet 1010
+ 0c24 Bluetooth Dongle
+ 0d12 OfficeJet 9100 series
+ 0d17 LaserJet 1012
+ 0e17 LaserJet 1015
+ 0f0c Wireless Keyboard and Optical Mouse receiver
+ 0f11 OfficeJet V40
+ 0f12 Printing Support
+ 0f17 LaserJet 1150
+ 1001 Photo Scanner 1000
+ 1002 PhotoSmart 140 series
+ 1004 DeskJet 970c/970cse
+ 1005 ScanJet 5400c
+ 1011 OfficeJet V40xi
+ 1016 Jornada 548 / iPAQ HW6515 Pocket PC
+ 1017 LaserJet 1300
+ 1024 Smart Card Keyboard
+ 1027 Virtual keyboard and mouse
+ 1102 PhotoSmart 240 series
+ 1104 DeskJet 959c
+ 1105 ScanJet 5470c/5490c
+ 1111 OfficeJet v60
+ 1116 Jornada 568 Pocket PC
+ 1117 LaserJet 1300n
+ 1151 PSC-750xi Printer/Scanner/Copier
+ 1202 PhotoSmart 320 series
+ 1204 DeskJet 930c
+ 1205 ScanJet 4500C/5550C
+ 1211 OfficeJet v60xi
+ 1217 LaserJet 2300L
+ 1302 PhotoSmart 370 series
+ 1305 ScanJet 4570c
+ 1311 OfficeJet V30
+ 1312 DeskJet 460
+ 1317 LaserJet 1005
+ 1405 ScanJet 3670
+ 1411 PSC 750
+ 1424 f2105 Monitor Hub
+ 1502 PhotoSmart 420 series
+ 1504 DeskJet 920c
+ 150c Mood Lighting (Microchip Technology Inc.)
+ 1511 PSC 750xi
+ 1512 Printing Support
+ 1517 color LaserJet 3500
+ 1524 Smart Card Keyboard - KR
+ 1602 PhotoSmart 330 series
+ 1604 DeskJet 940c
+ 1605 ScanJet 5530C PhotoSmart
+ 1611 psc 780
+ 1617 LaserJet 3015
+ 161d Wireless Rechargeable Optical Mouse (HID)
+ 1624 Smart Card Keyboard - JP
+ 1702 PhotoSmart 380 series
+ 1704 DeskJet 948C
+ 1705 ScanJet 5590
+ 1711 psc 780xi
+ 1712 Printing Support
+ 1717 LaserJet 3020
+ 171d Wireless (Bluetooth + WLAN) Interface [Integrated Module]
+ 1801 Inkjet P-2000U
+ 1802 PhotoSmart 470 series
+ 1804 DeskJet 916C
+ 1805 ScanJet 7650
+ 1811 PSC 720
+ 1812 OfficeJet Pro K550
+ 1817 LaserJet 3030
+ 181d integrated module with Bluetooth 2.0 wireless technology.
+ 1902 PhotoSmart A430 series
+ 1904 DeskJet 3820
+ 1911 OfficeJet V45
+ 1917 LaserJet 3380
+ 1a02 PhotoSmart A510 series
+ 1a11 OfficeJet 5100 series
+ 1a17 color LaserJet 4650
+ 1b02 PhotoSmart A610 series
+ 1b04 DeskJet 3810
+ 1b05 ScanJet 4850C/4890C
+ 1b07 Premium Starter Webcam
+ 1c02 PhotoSmart A710 series
+ 1c17 Color LaserJet 2550l
+ 1d02 PhotoSmart A310 series
+ 1d17 LaserJet 1320
+ 1e02 PhotoSmart A320 Printer series
+ 1e11 PSC-950
+ 1e17 LaserJet 1160 series
+ 1f02 PhotoSmart A440 Printer series
+ 1f11 PSC 920
+ 1f12 OfficeJet Pro K5300
+ 1f17 color LaserJet 5550
+ 1f1d un2400 Gobi Wireless Modem
+ 2001 Floppy
+ 2002 Hub
+ 2004 DeskJet 640c
+ 2005 ScanJet 3570c
+ 2012 OfficeJet Pro K5400
+ 201d un2400 Gobi Wireless Modem (QDL mode)
+ 2102 PhotoSmart 7345
+ 2104 DeskJet 630c
+ 2112 OfficeJet Pro L7500
+ 211d Sierra MC5725 [ev2210]
+ 2202 PhotoSmart 7600 series
+ 2205 ScanJet 3500c
+ 2212 OfficeJet Pro L7600
+ 2217 color LaserJet 9500 MFP
+ 2302 PhotoSmart 7600 series
+ 2304 DeskJet 656c
+ 2305 ScanJet 3970c
+ 2311 OfficeJet d series
+ 2312 OfficeJet Pro L7700
+ 2317 LaserJet 4350
+ 2402 PhotoSmart 7700 series
+ 2404 Deskjet F2280 series
+ 2405 ScanJet 4070 PhotoSmart
+ 2417 LaserJet 4250
+ 241d Gobi 2000 Wireless Modem (QDL mode)
+ 2424 LP1965 19" Monitor Hub
+ 2502 PhotoSmart 7700 series
+ 2504 DeskJet F4200 series
+ 2505 ScanJet 3770
+ 2512 OfficeJet Pro L7300
+ 2517 LaserJet 2410
+ 251d Gobi 2000 Wireless Modem
+ 2524 LP3065 30" Monitor Hub
+ 2602 PhotoSmart A520 series
+ 2605 ScanJet 3800c
+ 2611 OfficeJet 7100 series
+ 2617 Color LaserJet 2820 series
+ 2624 Pole Display (HP522 2 x 20 Line Display)
+ 2702 PhotoSmart A620 series
+ 2704 DeskJet 915
+ 2717 Color LaserJet 2830
+ 2811 PSC-2100
+ 2817 Color LaserJet 2840
+ 2902 PhotoSmart A820 series
+ 2911 PSC 2200
+ 2917 LaserJet 2420
+ 2a11 PSC 2150 series
+ 2a17 LaserJet 2430
+ 2b11 PSC 2170 series
+ 2b17 LaserJet 1020
+ 2c12 Officejet J4680
+ 2c17 LaserJet 1022
+ 2c24 Logitech M-UAL-96 Mouse
+ 2d11 OfficeJet 6110
+ 2d17 Printing Support
+ 2e11 PSC 1000
+ 2e17 LaserJet 2600n
+ 2e24 LP2275w Monitor Hub
+ 2f11 PSC 1200
+ 2f17 EWS 2605dn
+ 2f24 LP2475w Monitor Hub
+ 3002 PhotoSmart P1000
+ 3004 DeskJet 980c
+ 3005 ScanJet 4670v
+ 3011 PSC 1100 series
+ 3017 Printing Support
+ 3102 PhotoSmart P1100 Printer w/ Card Reader
+ 3104 DeskJet 960c
+ 3111 OfficeJet 4100 series
+ 3117 EWS 2605dtn
+ 311d Atheros AR9285 Malbec Bluetooth Adapter
+ 3202 PhotoSmart 1215
+ 3207 4 GB flash drive
+ 3211 OfficeJet 4105 series
+ 3217 LaserJet 3050
+ 3302 PhotoSmart 1218
+ 3304 DeskJet 990c
+ 3312 OfficeJet J6410
+ 3317 LaserJet 3052
+ 3402 PhotoSmart 1115
+ 3404 DeskJet 6122
+ 3417 LaserJet 3055
+ 3502 PhotoSmart 230
+ 3504 DeskJet 6127c
+ 3511 PSC 2300
+ 3517 LaserJet 3390
+ 3602 PhotoSmart 1315
+ 3611 PSC 2410 PhotoSmart
+ 3617 Color LaserJet 2605
+ 3711 PSC 2500
+ 3717 EWS UPD
+ 3724 Webcam
+ 3802 PhotoSmart 100
+ 3817 LaserJet P2015 series
+ 3902 PhotoSmart 130
+ 3a02 PhotoSmart 7150
+ 3a11 OfficeJet 5500 series
+ 3a17 Printing Support
+ 3b02 PhotoSmart 7150~
+ 3b11 PSC 1300 series
+ 3b17 LaserJet M1005 MFP
+ 3c02 PhotoSmart 7350
+ 3c11 PSC 1358
+ 3c17 EWS UPD
+ 3d02 PhotoSmart 7350~
+ 3d11 OfficeJet 4215
+ 3d17 LaserJet P1005
+ 3e02 PhotoSmart 7550
+ 3e17 LaserJet P1006
+ 3f02 PhotoSmart 7550~
+ 3f11 PSC-1315/PSC-1317
+ 4002 PhotoSmart 635/715/720/735/935 (storage)
+ 4004 cp1160
+ 4102 PhotoSmart 618
+ 4105 ScanJet 4370
+ 4111 OfficeJet 7200 series
+ 4117 LaserJet 1018
+ 4202 PhotoSmart 812
+ 4205 ScanJet G3010
+ 4211 OfficeJet 7300 series
+ 4217 EWS CM1015
+ 4302 PhotoSmart 850 (ptp)
+ 4305 ScanJet G3110
+ 4311 OfficeJet 7400 series
+ 4317 Color LaserJet CM1017
+ 4402 PhotoSmart 935 (ptp)
+ 4417 EWS UPD
+ 4502 PhotoSmart 945 (PTP mode)
+ 4505 ScanJet G4010
+ 4511 PhotoSmart 2600
+ 4512 E709n [Officejet 6500 Wireless]
+ 4517 EWS UPD
+ 4605 ScanJet G4050
+ 4611 PhotoSmart 2700
+ 4717 Color LaserJet CP1215
+ 4811 PSC 1600
+ 4911 PSC 2350
+ 4b11 OfficeJet 6200
+ 4c11 PSC 1500 series
+ 4c17 EWS UPD
+ 4d11 PSC 1400
+ 4d17 EWS UPD
+ 4e11 PhotoSmart 2570 series
+ 4f11 OfficeJet 5600 (USBHUB)
+ 5004 DeskJet 995c
+ 5011 PhotoSmart 3100 series
+ 5017 EWS UPD
+ 5111 PhotoSmart 3200 series
+ 5211 PhotoSmart 3300 series
+ 5311 OfficeJet 6300
+ 5312 Officejet Pro 8500A
+ 5411 OfficeJet 4300
+ 5511 DeskJet F300 series
+ 5611 PhotoSmart C3180
+ 5617 LaserJet M1120 MFP
+ 5711 PhotoSmart C4100 series
+ 5717 LaserJet M1120n MFP
+ 5811 PhotoSmart C5100 series
+ 5817 LaserJet M1319f MFP
+ 5911 PhotoSmart C6180
+ 5a11 PhotoSmart C7100 series
+ 5b11 OfficeJet J2100 series
+ 5c11 PhotoSmart C4200 Printer series
+ 5d11 PhotoSmart C5200 series
+ 5e11 PhotoSmart D7400 series
+ 6004 DeskJet 5550
+ 6102 Hewlett Packard Digital Camera
+ 6104 DeskJet 5650c
+ 6117 color LaserJet 3550
+ 6202 PhotoSmart 215
+ 6204 DeskJet 5150c
+ 6217 Color LaserJet 4700
+ 6302 PhotoSmart 318/612
+ 6317 Color LaserJet 4730mfp
+ 6402 PhotoSmart 715 (ptp)
+ 6411 PhotoSmart C8100 series
+ 6417 LaserJet 5200
+ 6502 PhotoSmart 120 (ptp)
+ 6511 PhotoSmart C7200 series
+ 6602 PhotoSmart 320
+ 6611 PhotoSmart C4380 series
+ 6617 LaserJet 5200L
+ 6702 PhotoSmart 720 (ptp)
+ 6717 Color LaserJet 3000
+ 6802 PhotoSmart 620 (ptp)
+ 6811 PhotoSmart D5300 series
+ 6817 Color LaserJet 3800
+ 6911 PhotoSmart D7200 series
+ 6917 Color LaserJet 3600
+ 6a02 PhotoSmart 735 (ptp)
+ 6a11 PhotoSmart C6200 series
+ 6a17 LaserJet 4240
+ 6b02 PhotoSmart R707 (PTP mode)
+ 6b11 Photosmart C4500 series
+ 6c17 Color LaserJet 4610
+ 6f17 Color LaserJet CP6015 series
+ 7004 DeskJet 3320c
+ 7102 PhotoSmart 635 (PTP mode)
+ 7104 DeskJet 3420c
+ 7117 CM8060 Color MFP with Edgeline Technology
+ 7202 PhotoSmart 43x (ptp)
+ 7204 DeskJet 36xx
+ 7217 LaserJet M5035 MFP
+ 7302 PhotoSmart M307 (PTP mode)
+ 7304 DeskJet 35xx
+ 7311 Photosmart Premium C309
+ 7317 LaserJet P3005
+ 7404 Printing Support
+ 7417 LaserJet M4345 MFP
+ 7504 Printing Support
+ 7517 LaserJet M3035 MFP
+ 7604 DeskJet 3940
+ 7611 DeskJet F2492 All-in-One
+ 7617 LaserJet P3004
+ 7702 PhotoSmart R817 (PTP mode)
+ 7704 DeskJet D4100
+ 7717 CM8050 Color MFP with Edgeline Technology
+ 7804 DeskJet D1360
+ 7817 Color LaserJet CP3505
+ 7917 LaserJet M5025 MFP
+ 7a02 PhotoSmart M415 (PTP mode)
+ 7a04 DeskJet D2460
+ 7a17 LaserJet M3027 MFP
+ 7b02 PhotoSmart M23 (PTP mode)
+ 7b17 Color LaserJet CP4005
+ 7c17 Color LaserJet CM6040 series
+ 7d04 DeskJet F2100 Printer series
+ 7d17 Color LaserJet CM4730 MFP
+ 7e04 DeskJet F4100 Printer series
+ 8017 LaserJet P4515
+ 8104 Printing Support
+ 8117 LaserJet P4015
+ 811c Ethernet HN210E
+ 8204 Printing Support
+ 8207 FHA-3510 2.4GHz Wireless Optical Mobile Mouse
+ 8217 LaserJet P4014
+ 8317 LaserJet M9050 MFP
+ 8404 DeskJet 6800 series
+ 8417 LaserJet M9040 MFP
+ 8504 DeskJet 6600 series
+ 8604 DeskJet 5440
+ 8704 DeskJet 5940
+ 8804 DeskJet 6980 series
+ 8904 DeskJet 6940 series
+ 8c07 Digital Stereo Headset
+ 8c11 Deskjet F4500 series
+ 9002 PhotoSmart M437
+ 9102 PhotoSmart M537
+ 9302 PhotoSmart R930 series
+ 9402 PhotoSmart R837
+ 9502 PhotoSmart R840 series
+ 9602 PhotoSmart M730 series
+ 9702 PhotoSmart R740 series
+ 9802 PhotoSmart Mz60 series
+ 9902 PhotoSmart M630 series
+ 9a02 PhotoSmart E330 series
+ 9b02 PhotoSmart M540 series
+ 9c02 PhotoSmart M440 series
+ a004 DeskJet 5850c
+ b002 PhotoSmart 7200 series
+ b102 PhotoSmart 7200 series
+ b116 Webcam
+ b202 PhotoSmart 7600 series
+ b302 PhotoSmart 7600 series
+ b402 PhotoSmart 7700 series
+ b502 PhotoSmart 7700 series
+ b602 PhotoSmart 7900 series
+ b702 PhotoSmart 7900 series
+ b802 PhotoSmart 7400 series
+ b902 PhotoSmart 7800 series
+ ba02 PhotoSmart 8100 series
+ bb02 PhotoSmart 8400 series
+ bc02 PhotoSmart 8700 series
+ bd02 PhotoSmart Pro B9100 series
+ bef4 NEC Picty760
+ c002 PhotoSmart 7800 series
+ c102 PhotoSmart 8000 series
+ c202 PhotoSmart 8200 series
+ c302 DeskJet D2300
+ c402 PhotoSmart D5100 series
+ c502 PhotoSmart D6100 series
+ c602 PhotoSmart D7100 series
+ c702 PhotoSmart D7300 series
+ c802 PhotoSmart D5060 Printer
+ d104 Bluetooth Dongle
+ efbe NEC Picty900
+ f0be NEC Picty920
+ f1be NEC Picty800
+03f1 Genoa Technology
+03f2 Oak Technology, Inc.
+03f3 Adaptec, Inc.
+ 0020 AWN-8020 WLAN
+ 0080 AVC-1100 Audio Capture
+ 0083 AVC-2200 Device
+ 0087 AVC-2210 Loader
+ 0088 AVC-2210 Device
+ 008b AVC-2310 Loader
+ 008c AVC-2310 Device
+ 0094 eHome Infrared Receiver
+ 009b AVC-1410 GameBridge TV NTSC
+ 2000 USBXchange
+ 2001 USBXchange Adapter
+ 2002 USB2-Xchange
+ 2003 USB2-Xchange Adapter
+ adcc Composite Device Support
+03f4 Diebold, Inc.
+03f5 Siemens Electromechanical
+03f8 Epson Imaging Technology Center
+03f9 KeyTronic Corp.
+ 0100 Keyboard
+ 0101 Keyboard
+ 0102 Keyboard Mouse
+03fb OPTi, Inc.
+03fc Elitegroup Computer Systems
+03fd Xilinx, Inc.
+03fe Farallon Comunications
+0400 National Semiconductor Corp.
+ 05dc Rigol Technologies DS1000USB Oscilloscope
+ 0807 Bluetooth Dongle
+ 080a Bluetooth Device
+ 09c4 Rigol Technologies DG1022 Arbitrary Waveform Generator
+ 1000 Mustek BearPaw 1200 Scanner
+ 1001 Mustek BearPaw 2400 Scanner
+ 1237 Hub
+ a000 Smart Display Reference Device
+ c359 Logitech Harmony (Boot loader mode)
+ c35b Printing Support
+ c55d Rigol Technologies DS5000USB Oscilloscope
+0401 National Registry, Inc.
+0402 ALi Corp.
+ 5462 M5462 IDE Controller
+ 5602 M5602 Video Camera Controller
+ 5603 M5603 Video Camera Controller
+ 5606 M5606 Video Camera Controller [UVC]
+ 5621 M5621 High-Speed IDE Controller
+ 5623 M5623 Scanner Controller
+ 5627 Welland ME-740PS USB2 3.5" Power Saving Enclosure
+ 5632 M5632 Host-to-Host Link
+ 5635 M5635 Flash Card Reader
+ 5636 USB 2.0 Storage Device
+ 5637 M5637 IDE Controller
+ 5661 M5661 MP3 player
+ 5667 M5667 MP3 player
+ 9665 Gateway Webcam
+0403 Future Technology Devices International, Ltd
+ 0000 H4SMK 7 Port Hub
+ 0232 Serial Converter
+ 1060 JTAG adapter
+ 6001 FT232 USB-Serial (UART) IC
+ 6007 Serial Converter
+ 6008 Serial Converter
+ 6009 Serial Converter
+ 6010 FT2232C Dual USB-UART/FIFO IC
+ 6011 FT4232H Quad HS USB-UART/FIFO IC
+ 6014 FT232H Single HS USB-UART/FIFO IC
+ 8040 4 Port Hub
+ 8070 7 Port Hub
+ 8370 7 Port Hub
+ 8371 PS/2 Keyboard And Mouse
+ 8372 FT8U100AX Serial Port
+ bcd8 Stellaris Development Board
+ bcd9 Stellaris Evaluation Board
+ c630 lcd2usb interface
+ c631 i2c-tiny-usb interface
+ c632 xu1541 c64 floppy drive interface
+ c633 TinyCrypt dongle
+ c634 glcd2usb interface
+ c7d0 RR-CirKits LocoBuffer-USB
+ c8b8 Alpermann+Velte MTD TCU
+ c8b9 Alpermann+Velte MTD TCU 1HE
+ c8ba Alpermann+Velte Rubidium H1
+ c8bb Alpermann+Velte Rubidium H3
+ c8bc Alpermann+Velte Rubidium S1
+ c8bd Alpermann+Velte Rubidium T1
+ c8be Alpermann+Velte Rubidium D1
+ cc48 product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi
+ cc49 product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru
+ cc4a product FTDI TACTRIX_OPENPORT_13U 0xcc4a OpenPort 1.3 Universal
+ d010 SCS PTC-IIusb
+ d011 SCS Position-Tracker/TNC
+ d012 SCS DRAGON 1
+ d013 SCS DRAGON 1
+ d6f8 UNI Black BOX
+ d9a9 Actisense USG-1 NMEA Serial Gateway
+ d9aa Actisense NGT-1 NMEA2000 PC Interface
+ e0d0 Total Phase Aardvark I2C/SPI Host Adapter
+ e521 EVER Sinline XL Series UPS
+ e6c8 PYRAMID Computer GmbH LCD
+ e700 Elster Unicom III Optical Probe
+ e888 Expert ISDN Control USB
+ e889 USB-RS232 OptoBridge
+ e88a Expert mouseCLOCK USB II
+ e88b Precision Clock MSF USB
+ e88c Expert mouseCLOCK USB II HBG
+ ea90 Eclo 1-Wire Adapter
+ ed71 HAMEG HO870 Serial Port
+ ed72 HAMEG HO720 Serial Port
+ ed73 HAMEG HO730 Serial Port
+ ed74 HAMEG HO820 Serial Port
+ ef10 FT1245BL
+ f070 Serial Converter 422/485 [Vardaan VEUSB422R3]
+ f1a0 Asix PRESTO Programmer
+ f208 Papenmeier Braille-Display
+ f3c0 4N-GALAXY Serial Converter
+ f680 Suunto Sports Instrument
+ f758 GW Instek GDS-8x0 Oscilloscope
+ f850 USB-UIRT (Universal Infrared Receiver+Transmitter)
+ f918 Ant8 Logic Probe
+ fa00 Matrix Orbital USB Serial
+ fa01 Matrix Orbital MX2 or MX3
+ fa02 Matrix Orbital MX4 or MX5
+ fa03 Matrix Orbital VK/LK202 Family
+ fa04 Matrix Orbital VK/LK204 Family
+ fc08 Crystalfontz CFA-632 USB LCD
+ fc09 Crystalfontz CFA-634 USB LCD
+ fc0b Crystalfontz CFA-633 USB LCD
+ fc0c Crystalfontz CFA-631 USB LCD
+ fc0d Crystalfontz CFA-635 USB LCD
+ fc82 SEMC DSS-20/DSS-25 SyncStation
+ fd48 ShipModul MiniPlex-4xUSB NMEA Multiplexer
+ fd49 ShipModul MiniPlex-4xUSB-AIS NMEA Multiplexer
+ ff08 ToolHouse LoopBack Adapter
+ ff18 Logbook Bus
+ ff19 Logbook Bus
+ ff1a Logbook Bus
+ ff1b Logbook Bus
+ ff1c Logbook Bus
+ ff1d Logbook Bus
+ ff1e Logbook Bus
+ ff1f Logbook Bus
+0404 NCR Corp.
+ 0202 78XX Scanner
+ 0203 78XX Scanner - Embedded System
+ 0310 K590 Printer, Self-Service
+ 0311 7167 Printer, Receipt/Slip
+ 0312 7197 Printer Receipt
+ 0320 5932-USB Keyboard
+ 0321 5953-USB Dynakey
+ 0322 5932-USB Enhanced Keyboard
+ 0323 5932-USB Enhanced Keyboard, Flash-Recovery/Download
+ 0324 5953-USB Enhanced Dynakey
+ 0325 5953-USB Enhanced Dynakey Flash-Recovery/Download
+ 0328 K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages)
+ 0329 K018: USB-MSR JIS 2-Track MSR: POS Standard
+ 032a K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode
+ 032b K016/K018: USB-MSR Flash-Recovery/Download
+0405 Synopsys, Inc.
+0406 Fujitsu-ICL Computers
+0407 Fujitsu Personal Systems, Inc.
+0408 Quanta Computer, Inc.
+ 0103 FV TouchCam N1 (Audio)
+ 030c HP Webcam
+ 03b2 HP Webcam
+ 1030 FV TouchCam N1 (Video)
+ 3000 Optical dual-touch panel
+ 3001 Optical Touch Screen
+0409 NEC Corp.
+ 0011 PC98 Series Layout Keyboard Mouse
+ 0012 ATerm IT75DSU ISDN TA
+ 0014 Japanese Keyboard
+ 0019 109 Japanese Keyboard with Bus-Powered Hub
+ 001a PC98 Series Layout Keyboard with Bus-Powered Hub
+ 0025 Mini Keyboard with Bus-Powered Hub
+ 0027 MultiSync Monitor
+ 002c Clik!-USB Drive
+ 0034 109 Japanese Keyboard with One-touch start buttons
+ 003f Wireless Keyboard with One-touch start buttons
+ 0040 Floppy
+ 004e SuperScript 1400 Series
+ 004f Wireless Keyboard with One-touch start buttons
+ 0058 HighSpeed Hub
+ 0059 HighSpeed Hub
+ 005a HighSpeed Hub
+ 006a Conceptronic USB Harddisk Box
+ 0081 SuperScript 1400 Series
+ 0082 SuperScript 1400 Series
+ 0094 Japanese Keyboard with One-touch start buttons
+ 0095 Japanese Keyboard
+ 00a9 AtermIT21L 128K Support Standard
+ 00aa AtermITX72 128K Support Standard
+ 00ab AtermITX62 128K Support Standard
+ 00ac AtermIT42 128K Support Standard
+ 00ae INSMATEV70G-MAX Standard
+ 00af AtermITX70 128K Support Standard
+ 00b0 AtermITX80 128K Support Standard
+ 00b2 AtermITX80D 128K Support Standard
+ 00c0 Wireless Remocon
+ 00f7 Smart Display PK-SD10
+ 011d e228 Mobile Phone
+ 0203 HID Audio Controls
+ 021d Aterm WL54SU2 802.11g Wireless Adapter [Atheros AR5523]
+ 0248 Aterm PA-WL54GU
+ 0249 Aterm WL300NU-G
+ 02b4 Aterm WL300NU-AG
+ 02b6 Aterm WL300NU-GS 802.11n Wireless Adapter
+ 55aa Hub
+ 55ab Hub [iMac/iTouch kbd]
+ 8010 Intellibase Hub
+ 8011 Intellibase Hub
+ efbe P!cty 900 [HP DJ]
+ f0be P!cty 920 [HP DJ 812c]
+040a Kodak Co.
+ 0001 DVC-323
+ 0002 DVC-325
+ 0100 DC-220
+ 0110 DC-260
+ 0111 DC-265
+ 0112 DC-290
+ 0120 DC-240
+ 0121 DC-240 (PTP firmware)
+ 0130 DC-280
+ 0131 DC-5000
+ 0132 DC-3400
+ 0140 DC-4800
+ 0160 DC4800
+ 0170 DX3900
+ 0200 Digital Camera
+ 0300 EZ-200
+ 0400 MC3
+ 0402 Digital Camera
+ 0403 Z7590
+ 0500 DX3500
+ 0510 DX3600
+ 0525 DX3215
+ 0530 DX3700
+ 0535 EasyShare CX4230 Camera
+ 0540 LS420
+ 0550 DX4900
+ 0555 DX4330
+ 0560 CX4200
+ 0565 CX4210
+ 0566 CX4300
+ 0567 LS753
+ 0568 LS443
+ 0569 LS663
+ 0570 DX6340
+ 0571 CX6330
+ 0572 DX6440
+ 0573 CX6230
+ 0574 CX6200
+ 0575 DX6490
+ 0576 DX4530
+ 0577 DX7630
+ 0578 CX7300/CX7310
+ 0579 CX7220
+ 057a CX7330
+ 057b CX7430
+ 057c CX7530
+ 057d DX7440
+ 057e C300
+ 057f DX7590
+ 0580 Z730
+ 0581 Digital Camera
+ 0582 Digital Camera
+ 0583 Digital Camera
+ 0584 CX6445
+ 0585 Digital Camera
+ 0586 CX7525
+ 0587 Digital Camera
+ 0588 Digital Camera
+ 0589 EasyShare C360
+ 058a C310
+ 058b Digital Camera
+ 058c C330
+ 058d C340
+ 058e V530
+ 058f V550
+ 0590 Digital Camera
+ 0591 Digital Camera
+ 0592 Digital Camera
+ 0593 Digital Camera
+ 0594 Digital Camera
+ 0595 Digital Camera
+ 0596 Digital Camera
+ 0597 Digital Camera
+ 0598 Digital Camera
+ 0599 Digital Camera
+ 059a Digital Camera
+ 059b Digital Camera
+ 059c Digital Camera
+ 059d Digital Camera
+ 059e Digital Camera
+ 059f Digital Camera
+ 05a0 Digital Camera
+ 05a1 Digital Camera
+ 05a2 Digital Camera
+ 05a3 Digital Camera
+ 05a4 Digital Camera
+ 05a5 Digital Camera
+ 05a6 Digital Camera
+ 05a7 Digital Camera
+ 05a8 Digital Camera
+ 05a9 Digital Camera
+ 05aa Digital Camera
+ 05ab Digital Camera
+ 05ac Digital Camera
+ 05ad Digital Camera
+ 05ae Digital Camera
+ 05af Digital Camera
+ 05b0 Digital Camera
+ 05b1 Digital Camera
+ 05b2 Digital Camera
+ 05b3 EasyShare Z710 Camera
+ 05b4 Digital Camera
+ 05b5 Digital Camera
+ 05b6 Digital Camera
+ 05b7 Digital Camera
+ 05b8 Digital Camera
+ 05b9 Digital Camera
+ 05ba Digital Camera
+ 05bb Digital Camera
+ 05bc Digital Camera
+ 05bd Digital Camera
+ 05be Digital Camera
+ 05bf Digital Camera
+ 05c0 Digital Camera
+ 05c1 Digital Camera
+ 05c2 Digital Camera
+ 05c3 Digital Camera
+ 05c4 Digital Camera
+ 05c5 Digital Camera
+ 05c8 EASYSHARE Z1485 IS Digital Camera
+ 05d3 EasyShare M320 Camera
+ 05d4 EasyShare C180 Digital Camera
+ 1001 EasyShare SV811 Digital Picture Frame
+ 4000 InkJet Color Printer
+ 4109 EasyShare Printer Dock Series 3
+ 410d EasyShare G600 Printer Dock
+ 5010 Wireless Adapter
+ 5012 DBT-220 Bluetooth Adapter
+ 6001 i30
+ 6002 i40
+ 6003 i50
+ 6004 i60
+ 6005 i80
+040b Weltrend Semiconductor
+ 6510 Weltrend Bar Code Reader
+ 6520 XBOX Xploder
+ 6533 Speed-Link Competition Pro
+040c VTech Computers, Ltd
+040d VIA Technologies, Inc.
+ 3184 VNT VT6656 USB-802.11 Wireless LAN Adapter
+ 6205 USB 2.0 Card Reader
+040e MCCI
+040f Echo Speech Corp.
+0411 BUFFALO INC. (formerly MelCo., Inc.)
+ 0001 LUA-TX Ethernet [pegasus]
+ 0005 LUA-TX Ethernet
+ 0006 WLI-USB-L11 Wireless LAN Adapter
+ 0009 LUA2-TX Ethernet
+ 000b WLI-USB-L11G-WR Wireless LAN Adapter
+ 000d WLI-USB-L11G Wireless LAN Adapter
+ 0012 LUA-KTX Ethernet
+ 0013 USB2-IDE Adapter
+ 0016 WLI-USB-S11 802.11b Adapter
+ 0018 USB2-IDE Adapter
+ 001c USB-IDE Bridge: DUB-PxxG
+ 0027 WLI-USB-KS11G 802.11b Adapter
+ 003d LUA-U2-KTX Ethernet
+ 0044 WLI-USB-KB11 Wireless LAN Adapter
+ 004b WLI-USB-G54 802.11g Adapter [Broadcom 4320 USB]
+ 004d WLI-USB-B11 Wireless LAN Adapter
+ 0050 WLI2-USB2-G54 Wireless LAN Adapter
+ 005e WLI-U2-KG54-YB WLAN
+ 0065 Python2 WDM Encoder
+ 0066 WLI-U2-KG54 WLAN
+ 0067 WLI-U2-KG54-AI WLAN
+ 0089 Buffalo RUF-C/U2 Flash Drive
+ 008b Nintendo Wi-Fi
+ 0091 WLI-U2-KAMG54 Wireless LAN Adapter
+ 0092 WLI-U2-KAMG54 Bootloader
+ 0097 WLI-U2-KG54-BB
+ 00a9 WLI-U2-AMG54HP Wireless LAN Adapter
+ 00aa WLI-U2-AMG54HP Bootloader
+ 00b3 PC-OP-RS1 RemoteStation
+ 00bc WLI-U2-KG125S 802.11g Adapter [Broadcom 4320 USB]
+ 00ca 802.11n Network Adapter
+ 00cb WLI-U2-G300N 802.11n Adapter
+ 00d8 WLI-U2-SG54HP
+ 00d9 WLI-U2-G54HP
+ 00da WLI-U2-KG54L 802.11bg [ZyDAS ZD1211B]
+ 00e8 WLI-UC-G300N Wireless LAN Adapter [Ralink RT2870]
+ 012e WLI-UC-AG300N Wireless LAN Adapter
+ 0148 WLI-UC-G300HP Wireless LAN Adapter
+ 0150 WLP-UC-AG300 Wireless LAN Adapter
+ 0157 External Hard Drive HD-PEU2
+ 0158 WLI-UC-GNHP Wireless LAN Adapter
+ 015d WLI-UC-GN Wireless LAN Adapter [Ralink RT3070]
+ 016f WLI-UC-G301N Wireless LAN Adapter
+ 017f Sony UWA-BR100 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]
+ 019e WLI-UC-GNP Wireless LAN Adapter
+ 01a1 MiniStation Metro
+ 01a2 WLI-UC-GNM Wireless LAN Adapter
+0412 Award Software International
+0413 Leadtek Research, Inc.
+ 1310 WinFast TV - NTSC + FM
+ 1311 WinFast TV - NTSC + MTS + FM
+ 1312 WinFast TV - PAL BG + FM
+ 1313 WinFast TV - PAL BG+TXT + FM
+ 1314 WinFast TV Audio - PHP PAL I
+ 1315 WinFast TV Audio - PHP PAL I+TXT
+ 1316 WinFast TV Audio - PHP PAL DK
+ 1317 WinFast TV Audio - PHP PAL DK+TXT
+ 1318 WinFast TV - PAL I/DK + FM
+ 1319 WinFast TV - PAL N + FM
+ 131a WinFast TV Audio - PHP SECAM LL
+ 131b WinFast TV Audio - PHP SECAM LL+TXT
+ 131c WinFast TV Audio - PHP SECAM DK
+ 131d WinFast TV - SECAM DK + TXT + FM
+ 131e WinFast TV - NTSC Japan + FM
+ 1320 WinFast TV - NTSC
+ 1321 WinFast TV - NTSC + MTS
+ 1322 WinFast TV - PAL BG
+ 1323 WinFast TV - PAL BG+TXT
+ 1324 WinFast TV Audio - PHP PAL I
+ 1325 WinFast TV Audio - PHP PAL I+TXT
+ 1326 WinFast TV Audio - PHP PAL DK
+ 1327 WinFast TV Audio - PHP PAL DK+TXT
+ 1328 WinFast TV - PAL I/DK
+ 1329 WinFast TV - PAL N
+ 132a WinFast TV Audio - PHP SECAM LL
+ 132b WinFast TV Audio - PHP SECAM LL+TXT
+ 132c WinFast TV Audio - PHP SECAM DK
+ 132d WinFast TV - SECAM DK + TXT
+ 132e WinFast TV - NTSC Japan
+ 6023 EMP Audio Device
+ 6024 WinFast PalmTop/Novo TV Video
+ 6025 WinFast DTV Dongle (cold state)
+ 6026 WinFast DTV Dongle (warm state)
+ 6029 WinFast DTV Dongle Gold
+ 6125 WinFast DTV Dongle
+ 6126 WinFast DTV Dongle BDA Driver
+ 6f00 WinFast DTV Dongle (STK7700P based)
+0414 Giga-Byte Technology Co., Ltd
+0416 Winbond Electronics Corp.
+ 0035 W89C35 802.11bg WLAN Adapter
+ 0101 Hub
+ 0961 AVL Flash Card Reader
+ 3810 Smart Card Controller
+ 3811 Generic Controller - Single interface
+ 3812 Smart Card Controller_2Interface
+ 3813 Panel Display
+ 5518 4-Port Hub
+ 551a PC Sync Keypad
+ 551b PC Async Keypad
+ 551c Sync Tenkey
+ 551d Async Tenkey
+ 551e Keyboard
+ 551f Keyboard w/ Sys and Media
+ 5521 Keyboard
+ 6481 16-bit Scanner
+ 7721 Memory Stick Reader/Writer
+ 7722 Memory Stick Reader/Writer
+ 7723 SD Card Reader
+0417 Symbios Logic
+0418 AST Research
+0419 Samsung Info. Systems America, Inc.
+ 0001 IrDA Remote Controller / Creative Cordless Mouse
+ 0600 Desktop Wireless 6000
+ 3001 Xerox P1202 Laser Printer
+ 3003 Olivetti PG L12L
+ 3201 Docuprint P8ex
+ 3404 SCX-5x12 series
+ 3406 MFP 830 series
+ 3407 ML-912
+ 3601 InkJet Color Printer
+ 3602 InkJet Color Printer
+ 4602 Remote NDIS Network Device
+ 8001 Hub
+ 8002 SyncMaster HID Monitor Control
+ aa03 SDAS-3 MP3 Player
+041a Phoenix Technologies, Ltd
+041b d'TV
+041d S3, Inc.
+041e Creative Technology, Ltd
+ 1002 Nomad II
+ 1003 Blaster GamePad Cobra
+ 1050 GamePad Cobra
+ 1053 Mouse Gamer HD7600L
+ 200c MuVo V100
+ 2020 Zen X-Fi 2
+ 2029 ZiiO
+ 2801 Prodikeys PC-MIDI multifunction keyboard
+ 3000 SoundBlaster Extigy
+ 3002 SB External Composite Device
+ 3010 SoundBlaster MP3+
+ 3014 SB External Composite Device
+ 3015 Sound Blaster Digital Music LX
+ 3020 SoundBlaster Audigy 2 NX
+ 3030 SB External Composite Device
+ 3040 SoundBlaster Live! 24-bit External SB0490
+ 3060 Sound Blaster Audigy 2 ZS External
+ 3061 SoundBlaster Audigy 2 ZS Video Editor
+ 3090 Sound Blaster Digital Music SX
+ 30d3 Sound Blaster Play!
+ 3f00 E-Mu Xboard 25 MIDI Controller
+ 3f02 E-Mu 0202
+ 3f04 E-Mu 0404
+ 3f07 E-Mu Xmidi 1x1
+ 4003 VideoBlaster Webcam Go Plus [W9967CF]
+ 4004 Nomad II MG
+ 4005 Webcam Blaster Go ES
+ 4007 Go Mini
+ 400a PC-Cam 300
+ 400b PC-Cam 600
+ 400c Webcam 5 [pwc]
+ 400d Webcam PD1001
+ 400f PC-CAM 550 (Composite)
+ 4011 Webcam PRO eX
+ 4012 PC-CAM350
+ 4013 PC-Cam 750
+ 4015 CardCam Value
+ 4016 CardCam
+ 4017 Webcam Mobile [PD1090]
+ 4018 Webcam Vista [PD1100]
+ 4019 Audio Device
+ 401a Webcam Vista [PD1100]
+ 401c Webcam NX [PD1110]
+ 401d Webcam NX Ultra
+ 401e Webcam NX Pro
+ 401f Webcam Notebook [PD1171]
+ 4020 Webcam NX
+ 4021 Webcam NX Ultra
+ 4022 Webcam NX Pro
+ 4028 Vista Plus cam [VF0090]
+ 4029 Webcam Live!
+ 402f DC-CAM 3000Z
+ 4034 Webcam Instant
+ 4035 Webcam Instant
+ 4036 Webcam Live!/Live! Pro
+ 4037 Webcam Live!
+ 4038 ORITE CCD Webcam [PC370R]
+ 4039 Webcam Live! Effects
+ 403a Webcam NX Pro 2
+ 403b Creative Webcam Vista [VF0010]
+ 403c Webcam Live! Ultra
+ 403d Webcam Notebook Ultra
+ 403e Webcam Vista Plus
+ 4041 Webcam Live! Motion
+ 4043 Vibra Plus Webcam
+ 4045 Live! Cam Voice
+ 4049 Live! Cam Voice
+ 4051 Live! Cam Notebook Pro [VF0250]
+ 4052 Live! Cam Vista IM
+ 4053 Live! Cam Video IM
+ 4054 Live! Cam Video IM
+ 4055 Live! Cam Video IM Pro
+ 4056 Live! Cam Video IM Pro
+ 4057 Live! Cam Optia
+ 4058 Live! Cam Optia AF
+ 4061 Live! Cam Notebook Pro [VF0400]
+ 4063 Live! Cam Video IM Pro
+ 4068 Live! Cam Notebook [VF0470]
+ 406c Live! Cam Sync [VF0520]
+ 4083 Live! Cam Socialize [VF0640]
+ 4100 Nomad Jukebox 2
+ 4101 Nomad Jukebox 3
+ 4102 NOMAD MuVo^2
+ 4106 Nomad MuVo
+ 4107 NOMAD MuVo
+ 4108 Nomad Jukebox Zen
+ 4109 Nomad Jukebox Zen NX
+ 410b Nomad Jukebox Zen USB 2.0
+ 410c Nomad MuVo NX
+ 410f NOMAD MuVo^2 (Flash)
+ 4110 Nomad Jukebox Zen Xtra
+ 4111 Dell Digital Jukebox
+ 4116 MuVo^2
+ 4117 Nomad MuVo TX
+ 411b Zen Touch
+ 411c Nomad MuVo USB 2.0
+ 411d Zen
+ 411e Zen Micro
+ 4120 Nomad MuVo TX FM
+ 4123 Zen Portable Media Center
+ 4124 MuVo^2 FM (uHDD)
+ 4126 Dell DJ (2nd gen)
+ 4127 Dell DJ
+ 4128 NOMAD Jukebox Zen Xtra (mtp)
+ 412b MuVo N200 with FM radio
+ 412f Dell Digital Jukebox 2.Gen
+ 4130 Zen Micro (mtp)
+ 4131 Zen Touch (mtp)
+ 4133 Mass Storage Device
+ 4134 Zen Neeon
+ 4136 Zen Sleek
+ 4137 Zen Sleek (mtp)
+ 4139 Zen Nano Plus
+ 413c Zen MicroPhoto
+ 4150 Zen V (MTP)
+ 4151 Zen Vision:M (mtp)
+ 4152 Zen V Plus
+ 4153 Zen Vision W
+ 4155 Zen Stone plus
+ 4157 Zen (MTP)
+ 500f Broadband Blaster 8012U-V
+ 5015 TECOM Bluetooth Device
+ ffff Webcam Live! Ultra
+041f LCS Telegraphics
+0420 Chips and Technologies
+ 1307 Celly SIM Card Reader
+0421 Nokia Mobile Phones
+ 0001 E61i (PC Suite mode)
+ 0018 6288 GSM Smartphone
+ 0019 6288 GSM Smartphone (imaging mode)
+ 001a 6288 GSM Smartphone (file transfer mode)
+ 0024 5610 XpressMusic (Storage mode)
+ 0025 5610 XpressMusic (PC Suite mode)
+ 0028 5610 XpressMusic (Imaging mode)
+ 002d 6120 Phone (Mass storage mode)
+ 002e 6120 Phone (Media-Player mode)
+ 002f 6120 Phone (PC-Suite mode)
+ 0042 E51 (PC Suite mode)
+ 0064 3109c GSM Phone
+ 006b 5310 Xpress Music (PC Suite mode)
+ 006c 5310 Xpress music (Storage mode)
+ 006d N95 (Storage mode)
+ 006e N95 (Multimedia mode)
+ 006f N95 (Printing mode)
+ 0070 N95 (PC Suite mode)
+ 0096 N810 Internet Tablet
+ 00aa E71 (Mass storage mode)
+ 00ab E71 (PC Suite mode)
+ 00e4 E71 (Media transfer mode)
+ 0103 ADL Flashing Engine AVALON Parent
+ 0104 ADL Re-Flashing Engine Parent
+ 0105 Nokia Firmware Upgrade Mode
+ 0106 ROM Parent
+ 0154 5800 XpressMusic (PC Suite mode)
+ 0155 5800 XpressMusic (Multimedia mode)
+ 0156 5800 XpressMusic (Storage mode)
+ 0157 5800 XpressMusic (Imaging mode)
+ 0199 6700 Classic (msc)
+ 019a 6700 Classic (PC Suite)
+ 019b 6700 Classic (mtp)
+ 01b0 6303 classic Phone (PC Suite mode)
+ 01b1 6303 classic Phone (Mass storage mode)
+ 01b2 6303 classic Phone (Printing and media mode)
+ 01c7 N900 (Storage Mode)
+ 01c8 N900 (PC-Suite Mode)
+ 0228 5530 XpressMusic
+ 026a N97 (mass storage)
+ 026b N97 (Multimedia)
+ 026c N97 (PC Suite)
+ 026d N97 (Pictures)
+ 0295 660i/6600i Slide Phone (Mass Storage)
+ 0297 660i/6600i Slide Phone (Still Image)
+ 02e1 5230 (Storage mode)
+ 02e2 5230 (Multimedia mode)
+ 02e3 5230 (PC-Suite mode)
+ 02e4 5230 (Imaging mode)
+ 03a4 C5 (Storage mode)
+ 0400 7600 Phone Parent
+ 0401 6650 GSM Phone
+ 0402 6255 Phone Parent
+ 0404 5510
+ 0405 9500 GSM Communicator
+ 0407 Music Player HDR-1(tm)
+ 040b N-Gage GSM Phone
+ 040d 6620 Phone Parent
+ 040e 6651 Phone Parent
+ 040f 6230 GSM Phone
+ 0410 6630 Imaging Smartphone
+ 0411 7610 Phone Parent
+ 0413 6260 Phone Parent
+ 0414 7370
+ 0415 9300 GSM Smartphone
+ 0416 6170 Phone Parent
+ 0417 7270 Phone Parent
+ 0418 E70 (PC Suite mode)
+ 0419 E60 (PC Suite mode)
+ 041a 9500 GSM Communicator (RNDIS)
+ 041b 9300 GSM Smartphone (RNDIS)
+ 041c 7710 Phone Parent
+ 041d 6670 Phone Parent
+ 041e 6680
+ 041f 6235 Phone Parent
+ 0421 3230 Phone Parent
+ 0422 6681 Phone Parent
+ 0423 6682 Phone Parent
+ 0428 6230i Modem
+ 0429 6230i MultiMedia Card
+ 0431 770 Internet Tablet
+ 0432 N90 Phone Parent
+ 0435 E70 (IP Passthrough/RNDIS mode)
+ 0436 E60 (IP Passthrough/RNDIS mode)
+ 0437 6265 Phone Parent
+ 043a N70 USB Phone Parent
+ 043b 3155 Phone Parent
+ 043c 6155 Phone Parent
+ 043d 6270 Phone Parent
+ 0443 N70 Phone Parent
+ 0444 N91
+ 044c NM850iG Phone Parent
+ 044d E61 (PC Suite mode)
+ 044e E61 (Data Exchange mode)
+ 044f E61 (IP Passthrough/RNDIS mode)
+ 0453 9300 Phone Parent
+ 0456 6111 Phone Parent
+ 0457 6111 Phone (Printing mode)
+ 045a 6280 Phone Parent
+ 045d 6282 Phone Parent
+ 046e 6110 Navigator
+ 0471 6110 Navigator
+ 0485 MTP Device
+ 04b9 5300
+ 04c3 N800 Internet Tablet
+ 04ce E90 Communicator (PC Suite mode)
+ 04cf E90 Communicator (Storage mode)
+ 04f0 Nokia N95 (PC Suite mode)
+ 04f9 6300 (PC Suite mode)
+ 0508 E65 (PC Suite mode)
+ 0509 E65 (Storage mode)
+ 0600 Digital Pen SU-1B
+ 0610 CS-15 (Internet Stick 3G modem)
+ 0800 Connectivity Cable DKU-5
+ 0801 Data Cable DKU-6
+ 0802 CA-42 Phone Parent
+0422 ADI Systems, Inc.
+0423 Computer Access Technology Corp.
+ 000a NetMate Ethernet
+ 000c NetMate2 Ethernet
+ 000d USB Chief Analyzer
+ 0100 Generic Universal Protocol Analyzer
+ 0101 UPA USBTracer
+ 0200 Generic 10K Universal Protocol Analyzer
+ 020a PETracer ML
+ 0300 Generic Universal Protocol Analyzer
+ 0301 2500H Tracer Trainer
+ 030a PETracer x1
+ 1237 Andromeda Hub
+0424 Standard Microsystems Corp.
+ 0001 Integrated Hub
+ 0acd Sitecom Internal Multi Memory reader/writer MD-005
+ 0fdc Floppy
+ 10cd Sitecom Internal Multi Memory reader/writer MD-005
+ 2020 USB Hub
+ 20cd Sitecom Internal Multi Memory reader/writer MD-005
+ 20fc 6-in-1 Card Reader
+ 2228 9-in-2 Card Reader
+ 223a 8-in-1 Card Reader
+ 2503 USB 2.0 Hub
+ 2504 USB 2.0 Hub
+ 2512 USB 2.0 Hub
+ 2514 USB 2.0 Hub
+ 2517 Hub
+ 2524 USB MultiSwitch Hub
+ 2602 USB 2.0 Hub
+ 2640 USB 2.0 Hub
+ 4060 Ultra Fast Media Reader
+ 4064 Ultra Fast Media Reader
+0425 Motorola Semiconductors HK, Ltd
+ 0101 G-Tech Wireless Mouse & Keyboard
+ f102 G-Tech U+P Wireless Mouse
+0426 Integrated Device Technology, Inc.
+ 0426 WDM Driver
+0427 Motorola Electronics Taiwan, Ltd
+0428 Advanced Gravis Computer Tech, Ltd
+ 4001 GamePad Pro
+0429 Cirrus Logic
+042a Ericsson Austrian, AG
+042b Intel Corp.
+ 9316 8x931Hx Customer Hub
+042c Innovative Semiconductors, Inc.
+042d Micronics
+042e Acer, Inc.
+ 0380 MP3 Player
+042f Molex, Inc.
+0430 Sun Microsystems, Inc.
+ 0002 109 Keyboard
+ 0005 Type 6 Keyboard
+ 000a 109 Japanese Keyboard
+ 000b 109 Japanese Keyboard
+ 0082 109 Japanese Keyboard
+ 0083 109 Japanese Keyboard
+ 00a2 Type 7 Keyboard
+ 0100 3-button Mouse
+ 100e 24.1" LCD Monitor v4 / FID-638 Mouse
+ 36ba Bus Powered Hub
+ cdab Raritan KVM dongle
+0431 Itac Systems, Inc.
+ 0100 Mouse-Trak 3-button Track Ball
+0432 Unisys Corp.
+0433 Alps Electric, Inc.
+ 1101 IBM Game Controller
+ abab Keyboard
+0434 Samsung Info. Systems America, Inc.
+0435 Hyundai Electronics America
+0436 Taugagreining HF
+ 0005 CameraMate (DPCM_USB)
+0437 Framatome Connectors USA
+0438 Advanced Micro Devices, Inc.
+0439 Voice Technologies Group
+043d Lexmark International, Inc.
+ 0001 Laser Printer
+ 0002 Optra E310 Printer
+ 0003 Laser Printer
+ 0004 Laser Printer
+ 0005 Laser Printer
+ 0006 Laser Printer
+ 0007 Laser Printer
+ 0008 Inkjet Color Printer
+ 0009 Optra S2450 Printer
+ 000a Laser Printer
+ 000b Inkjet Color Printer
+ 000c Optra E312 Printer
+ 000d Laser Printer
+ 000e Laser Printer
+ 000f Laser Printer
+ 0010 Laser Printer
+ 0011 Laser Printer
+ 0012 Inkjet Color Printer
+ 0013 Inkjet Color Printer
+ 0014 InkJet Color Printer
+ 0015 InkJet Color Printer
+ 0016 Z12 Color Jetprinter
+ 0017 Z32 printer
+ 0018 Z52 Printer
+ 0019 Forms Printer
+ 001a Z65 Printer
+ 001b InkJet Photo Printer
+ 001c Kodak Personal Picture Maker 200 Printer
+ 001d InkJet Color Printer
+ 001e InkJet Photo Printer
+ 001f Kodak Personal Picture Maker 200 Card Reader
+ 0020 Z51 Printer
+ 0021 Z33 Printer
+ 0022 InkJet Color Printer
+ 0023 Laser Printer
+ 0024 Laser Printer
+ 0025 InkJet Color Printer
+ 0026 InkJet Color Printer
+ 0027 InkJet Color Printer
+ 0028 InkJet Color Printer
+ 0029 Scan Print Copy
+ 002a Scan Print Copy
+ 002b Scan Print Copy
+ 002c Scan Print Copy
+ 002d X70/X73 Scan/Print/Copy
+ 002e Scan Print Copy
+ 002f Scan Print Copy
+ 0030 Scan Print Copy
+ 0031 Scan Print Copy
+ 0032 Scan Print Copy
+ 0033 Scan Print Copy
+ 0034 Scan Print Copy
+ 0035 Scan Print Copy
+ 0036 Scan Print Copy
+ 0037 Scan Print Copy
+ 0038 Scan Print Copy
+ 0039 Scan Print Copy
+ 003a Scan Print Copy
+ 003b Scan Print Copy
+ 003c Scan Print Copy
+ 003d X83 Scan/Print/Copy
+ 003e Scan Print Copy
+ 003f Scan Print Copy
+ 0040 Scan Print Copy
+ 0041 Scan Print Copy
+ 0042 Scan Print Copy
+ 0043 Scan Print Copy
+ 0044 Scan Print Copy
+ 0045 Scan Print Copy
+ 0046 Scan Print Copy
+ 0047 Scan Print Copy
+ 0048 Scan Print Copy
+ 0049 Scan Print Copy
+ 004a Scan Print Copy
+ 004b Scan Print Copy
+ 004c Scan Print Copy
+ 004d Laser Printer
+ 004e Laser Printer
+ 004f InkJet Color Printer
+ 0050 InkJet Color Printer
+ 0051 Laser Printer
+ 0052 Laser Printer
+ 0053 InkJet Color Printer
+ 0054 InkJet Color Printer
+ 0057 Z35 Printer
+ 0058 Laser Printer
+ 005a X63
+ 005c InkJet Color Printer
+ 0060 X74/X75 Scanner
+ 0061 X74 Hub
+ 0065 X5130
+ 0069 X74/X75 Printer
+ 006d X125
+ 006e C510
+ 0072 X6170 Printer
+ 0073 InkJet Color Printer
+ 0078 InkJet Color Printer
+ 0079 InkJet Color Printer
+ 007a Generic Hub
+ 007b InkJet Color Printer
+ 007c Lexmark X1110/X1130/X1140/X1150/X1170/X1180/X1185
+ 007d Photo 3150
+ 008a 4200 series
+ 008b InkJet Color Printer
+ 008c to CF/SM/SD/MS Card Reader
+ 008e InkJet Color Printer
+ 008f X422
+ 0093 X5250
+ 0095 E220 Printer
+ 0096 2200 series
+ 0097 P6250
+ 0098 7100 series
+ 009e P910 series Human Interface Device
+ 009f InkJet Color Printer
+ 00a9 IBM Infoprint 1410 MFP
+ 00ab InkJet Color Printer
+ 00b2 3300 series
+ 00b8 7300 series
+ 00b9 8300 series
+ 00ba InkJet Color Printer
+ 00bb 2300 series
+ 00bd Printing Support
+ 00be Printing Support
+ 00bf Printing Support
+ 00c0 6300 series
+ 00c1 4300 series
+ 00c7 Printing Support
+ 00c8 Printing Support
+ 00c9 Printing Support
+ 00cb Printing Support
+ 00cc E120(n)
+ 00d0 9300 series
+ 00d3 X340 Scanner
+ 00d4 X342n Scanner
+ 00d5 Printing Support
+ 00d6 X340 Scanner
+ 00e8 X642e
+ 00e9 2400 series
+ 00f6 3400 series
+ 00f7 InkJet Color Printer
+ 00ff InkJet Color Printer
+ 010b 2500 series
+ 010d 3500-4500 series
+ 010f 6500 series
+ 0142 X3650 (Printer, Scanner, Copier)
+ 4303 Xerox WorkCentre Pro 412
+043e LG Electronics USA, Inc.
+ 3001 AN-WF100 802.11abgn Wireless Adapter [Broadcom BCM4323]
+ 42bd Flatron 795FT Plus Monitor
+ 4a4d Flatron 915FT Plus Monitor
+ 7001 MF-PD100 Soul Digital MP3 Player
+ 7013 MP3 Player
+ 8484 LPC-U30 Webcam II
+ 8585 LPC-UC35 Webcam
+ 8888 Electronics VCS Camera II(LPC-U20)
+ 9800 Remote Control Receiver_iMON
+ 9803 eHome Infrared Receiver
+ 9804 DMB Receiver Control
+ 9c01 LGE Sync
+043f RadiSys Corp.
+0440 Eizo Nanao Corp.
+0441 Winbond Systems Lab.
+ 1456 Hub
+0442 Ericsson, Inc.
+ abba Bluetooth Device
+0443 Gateway, Inc.
+ 000e Multimedia Keyboard
+ 002e Millennium Keyboard
+0445 Lucent Technologies, Inc.
+0446 NMB Technologies Corp.
+ 6781 Keyboard with PS/2 Mouse Port
+ 6782 Keyboard
+0447 Momentum Microsystems
+044a Shamrock Tech. Co., Ltd
+044b WSI
+044c CCL/ITRI
+044d Siemens Nixdorf AG
+044e Alps Electric Co., Ltd
+ 1104 Japanese Keyboard
+ 2002 MD-5500 Printer
+ 2014 Bluetooth Device
+ 3001 UGTZ4 Bluetooth
+ 3002 Bluetooth Device
+ 3003 Bluetooth Device
+ 3004 Bluetooth Adapter
+ 3005 Integrated Bluetooth Device
+ 3006 Bluetooth Adapter
+ 3007 Bluetooth Controller (ALPS/UGX)
+ 300c Bluetooth Controller (ALPS/UGPZ6)
+ 300d Bluetooth Controller (ALPS/UGPZ6)
+ 3010 Bluetooth Adapter
+ 3017 BCM2046 Bluetooth Device
+ ffff Compaq Bluetooth Multiport Module
+044f ThrustMaster, Inc.
+ 0400 HOTAS Cougar
+ a003 Rage 3D Game Pad
+ a01b PK-GP301 Driving Wheel
+ a0a0 Top Gun Joystick
+ a0a1 Top Gun Joystick (rev2)
+ a0a3 Fusion Digital GamePad
+ a201 PK-GP201 PlayStick
+ b10a T.16000M Joystick
+ b203 360 Modena Pro Wheel
+ b300 Firestorm Dual Power
+ b304 Firestorm Dual Power
+ b307 vibrating Upad
+ b30b Wireless VibrationPad
+ b323 Dual Trigger 3-in-1 (PC Mode)
+ b324 Dual Trigger 3-in-1 (PS3 Mode)
+ b603 force feedback Wheel
+ b605 force feedback Racing Wheel
+ b651 Ferrari GT Rumble Force Wheel
+ b653 RGT Force Feedback Clutch Racing Wheel
+ b654 Ferrari GT Force Feedback Wheel
+ b700 Tacticalboard
+0450 DFI, Inc.
+0451 Texas Instruments, Inc.
+ 1234 Bluetooth Device
+ 1428 Hub
+ 1446 TUSB2040/2070 Hub
+ 16a6 BM-USBD1 BlueRobin RF heart rate sensor receiver
+ 2036 TUSB2036 Hub
+ 2046 TUSB2046 Hub
+ 2077 TUSB2077 Hub
+ 3410 TUSB3410 Microcontroller
+ 3f00 OMAP1610
+ 3f02 SMC WSKP100 Wi-Fi Phone
+ 5409 Frontier Labs NEX IA+ Digital Audio Player
+ 6000 AU5 ADSL Modem (pre-reenum)
+ 6001 AU5 ADSL Modem
+ 6060 RNDIS/BeWAN ADSL2+
+ 6070 RNDIS/BeWAN ADSL2+
+ 625f TUSB6250 ATA Bridge
+ dbc0 Device Bay Controller
+ e001 GraphLink
+ e003 TI-84 Plus Calculator
+ e004 TI-89 Titanium Calculator
+ e008 TI-84 Plus Silver Calculator
+ f430 MSP-FET430UIF JTAG Tool
+ f432 eZ430 Development Tool
+ ffff Bluetooth Device
+0452 Mitsubishi Electronics America, Inc.
+ 0021 HID Monitor Controls
+ 0050 Diamond Pro 900u CRT Monitor
+ 0051 Integrated Hub
+0453 CMD Technology
+ 6781 NMB Keyboard
+ 6783 Chicony Composite Keyboard
+0454 Vobis Microcomputer AG
+0455 Telematics International, Inc.
+0456 Analog Devices, Inc.
+ f000 FT2232 JTAG ICE [gnICE]
+ f001 FT2232H Hi-Speed JTAG ICE [gnICE+]
+0457 Silicon Integrated Systems Corp.
+ 0150 Super Talent 1GB Flash Drive
+ 0151 Super Flash 1GB / GXT 64MB Flash Drive
+ 0162 SiS162 usb Wireless LAN Adapter
+ 0163 802.11 Wireless LAN Adapter
+ 5401 Wireless Adapter RO80211GS-USB
+0458 KYE Systems Corp. (Mouse Systems)
+ 0001 Mouse
+ 0002 Genius NetMouse Pro
+ 0003 Genius NetScroll+
+ 0006 Easy Mouse+ USB(USB\Vid_0458&Pid;_0006) Mouse
+ 000b NetMouse Wheel(P+U)
+ 000c TACOMA Fingerprint V1.06.01
+ 000e VideoCAM Web
+ 0013 TACOMA Fingerprint Mouse V1.06.01
+ 001a Genius WebScroll+
+ 0036 Pocket Mouse LE
+ 0039 NetScroll+ Superior
+ 003a NetScroll+ Mini Traveler / Genius NetScroll 120
+ 004c Slimstar Pro Keyboard
+ 0056 Ergo 300 Mouse
+ 0057 Enhanced Gaming Device
+ 0059 Enhanced Laser Device
+ 005a Enhanced Device
+ 005b Enhanced Device
+ 005c Enhanced Laser Gaming Device
+ 005d Enhanced Device
+ 0061 Bluetooth Dongle
+ 0072 Navigator 335
+ 0083 Bluetooth Dongle
+ 0087 Ergo 525V Laser Mouse
+ 0100 EasyPen Tablet
+ 0101 CueCat
+ 011b NetScroll T220
+ 1001 Joystick
+ 1002 Game Pad
+ 1003 Genius VideoCam
+ 1004 Flight2000 F-23 Joystick
+ 100a Aashima Technology Trust Sight Fighter Vibration Feedback Joystick
+ 2001 ColorPage-Vivid Pro Scanner
+ 2004 ColorPage-HR6 V1 Scanner
+ 2005 ColorPage-HR6/Vivid3
+ 2007 ColorPage-HR6 V2 Scanner
+ 2008 ColorPage-HR6 V2 Scanner
+ 2009 ColorPage-HR6A Scanner
+ 2011 ColorPage-Vivid3x Scanner
+ 2012 Plustek Scanner
+ 2013 ColorPage-HR7 Scanner
+ 2014 ColorPage-Vivid4
+ 2015 ColorPage-HR7LE Scanner
+ 2016 ColorPage-HR6X Scanner
+ 2017 ColorPage-Vivid3xe
+ 2018 ColorPage-HR7X
+ 2019 ColorPage-HR6X Slim
+ 201a ColorPage-Vivid4xe
+ 201b ColorPage-Vivid4x
+ 201c ColorPage-HR8
+ 201d ColorPage-Vivid 1200 X
+ 201e ColorPage-Slim 1200
+ 201f ColorPage-Vivid 1200 XE
+ 2020 ColorPage-Slim 1200 USB2
+ 2021 ColorPage-SF600
+ 3017 SPEED WHEEL 3 Vibration
+ 3018 Wireless 2.4Ghz Game Pad
+ 3019 10-Button USB Joystick with Vibration
+ 301a MaxFire G-12U Vibration
+ 301d Genius MaxFire MiniPad
+ 400f Genius TVGo DVB-T02Q MCE
+ 4012 TVGo DVB-T03
+ 5003 G-pen 560 Tablet
+ 5004 G-pen Tablet
+ 6001 GF3000F Ethernet Adapter
+ 7004 VideoCAM Express V2
+ 7006 Dsc 1.3 Smart Camera Device
+ 7007 VideoCAM Web
+ 7009 G-Shot G312 Still Camera Device
+ 700c VideoCAM Web V3
+ 700d G-Shot G511 Composite Device
+ 700f VideoCAM Web
+ 7012 WebCAM USB2.0
+ 7014 VideoCAM Live V3
+ 701c G-Shot G512 Still Camera
+ 7020 Sim 321C
+ 7025 Eye 311Q Camera
+ 7029 Genius Look 320s (SN9C201 + HV7131R)
+ 702f Genius Slim 322
+ 7035 i-Look 325T Camera
+ 7045 Genius Look 1320 V2
+ 704c Genius i-Look 1321
+ 704d Slim 1322AF
+ 7055 Slim 2020AF camera
+ 705a Asus USB2.0 Webcam
+ 705c Genius iSlim 1300AF
+ 7079 FaceCam 2025R
+0459 Adobe Systems, Inc.
+045a SONICblue, Inc.
+ 07da Supra Express 56K modem
+ 0b4a SupraMax 2890 56K Modem [Lucent Atlas]
+ 0b68 SupraMax 56K Modem
+ 5001 Rio 600 MP3 Player
+ 5002 Rio 800 MP3 Player
+ 5003 Nike Psa/Play MP3 Player
+ 5005 Rio S10 MP3 Player
+ 5006 Rio S50 MP3 Player
+ 5007 Rio S35 MP3 Player
+ 5008 Rio 900 MP3 Player
+ 5009 Rio S30 MP3 Player
+ 500d Fuse MP3 Player
+ 500e Chiba MP3 Player
+ 500f Cali MP3 Player
+ 5010 Rio S11 MP3 Player
+ 501c Virgin MPF-1000
+ 501d Rio Fuse
+ 501e Rio Chiba
+ 501f Rio Cali
+ 503f Cali256 MP3 Player
+ 5202 Rio Riot MP3 Player
+ 5210 Rio Karma Music Player
+ 5220 Rio Nitrus MP3 Player
+ 5221 Rio Eigen
+045b Hitachi, Ltd
+045d Nortel Networks, Ltd
+045e Microsoft Corp.
+ 0007 SideWinder Game Pad
+ 0008 SideWinder Precision Pro
+ 0009 IntelliMouse
+ 000b Natural Keyboard Elite
+ 000e SideWinder® Freestyle Pro
+ 0014 Digital Sound System 80
+ 001a SideWinder Precision Racing Wheel
+ 001b SideWinder Force Feedback 2 Joystick
+ 001c Internet Keyboard Pro
+ 001d Natural Keyboard Pro
+ 001e IntelliMouse Explorer
+ 0023 Trackball Optical
+ 0024 Trackball Explorer
+ 0025 IntelliEye Mouse
+ 0026 SideWinder GamePad Pro
+ 0027 SideWinder PnP GamePad
+ 0028 SideWinder Dual Strike
+ 0029 IntelliMouse Optical
+ 002b Internet Keyboard Pro
+ 002d Internet Keyboard
+ 002f Integrated Hub
+ 0033 Sidewinder Strategic Commander
+ 0034 SideWinder Force Feedback Wheel
+ 0038 SideWinder Precision 2
+ 0039 IntelliMouse Optical
+ 003b SideWinder Game Voice
+ 003c SideWinder Joystick
+ 0040 Wheel Mouse Optical
+ 0047 IntelliMouse Explorer 3.0
+ 0048 Office Keyboard 1.0A
+ 0053 Optical Mouse
+ 0059 Wireless IntelliMouse Explorer
+ 005c Office Keyboard (106/109)
+ 005f Wireless MultiMedia Keyboard
+ 0061 Wireless MultiMedia Keyboard (106/109)
+ 0063 Wireless Natural MultiMedia Keyboard
+ 0065 Wireless Natural MultiMedia Keyboard (106/109)
+ 006a Wireless Optical Mouse (IntelliPoint)
+ 006d eHome Remote Control Keyboard keys
+ 006e MN-510 802.11b Wireless Adapter [Intersil ISL3873B]
+ 006f Smart Display Reference Device
+ 0070 Wireless MultiMedia Keyboard
+ 0071 Wireless MultiMedia Keyboard (106/109)
+ 0072 Wireless Natural MultiMedia Keyboard
+ 0073 Wireless Natural MultiMedia Keyboard (106/109)
+ 0079 IXI Ogo CT-17 handheld device
+ 007a 10/100 USB NIC
+ 007d Notebook Optical Mouse
+ 007e Wireless Transceiver for Bluetooth
+ 0080 Digital Media Pro Keyboard
+ 0083 Basic Optical Mouse
+ 0084 Basic Optical Mouse
+ 008a Wireless Keyboard and Mouse
+ 008b Dual Receiver Wireless Mouse (IntelliPoint)
+ 008c Wireless Intellimouse Explorer 2.0
+ 0095 IntelliMouse Explorer 4.0 (IntelliPoint)
+ 009c Wireless Transceiver for Bluetooth 2.0
+ 009d Wireless Optical Desktop 3.0
+ 00a0 eHome Infrared Receiver
+ 00b0 Digital Media Pro Keyboard
+ 00b9 Wireless Optical Mouse 3.0
+ 00bb Fingerprint Reader
+ 00bc Fingerprint Reader
+ 00bd Fingerprint Reader
+ 00c2 MN-710 802.11g Wireless Adapter [Intersil ISL3886]
+ 00c9 MTP Device
+ 00ca Fingerprint Reader
+ 00cb Basic Optical Mouse v2.0
+ 00ce Generic PPC Flash device
+ 00d1 Optical Mouse with Tilt Wheel
+ 00da eHome Infrared Receiver
+ 00db Natural Ergonomic Keyboard 4000 V1.0
+ 00dd Comfort Curve Keyboard 2000 V1.0
+ 00e1 Wireless Laser Mouse 6000 Reciever
+ 00f4 LifeCam VX-6000 (SN9C20x + OV9650)
+ 00f5 LifeCam VX-3000
+ 00f6 Comfort Optical Mouse 1000
+ 00f7 LifeCam VX-1000
+ 00f8 LifeCam NX-6000
+ 00f9 Wireless Desktop Receiver 3.1
+ 0202 Xbox Controller
+ 0280 XBox Device
+ 0283 Xbox Communicator
+ 0284 Xbox DVD Playback Kit
+ 0285 Xbox Controller S
+ 0288 Xbox Controller S Hub
+ 0289 Xbox Controller S
+ 028b Xbox360 DVD Emulator
+ 028d Xbox360 Memory Unit 64MB
+ 028e Xbox360 Controller
+ 028f Xbox360 Wireless Controller
+ 0290 Xbox360 Performance Pipe (PIX)
+ 0291 Xbox 360 Wireless Receiver for Windows
+ 0292 Xbox360 Wireless Networking Adapter
+ 029c Xbox360 HD-DVD Drive
+ 029d Xbox360 HD-DVD Drive
+ 029e Xbox360 HD-DVD Memory Unit
+ 02a0 Xbox360 Big Button IR
+ 02a8 Xbox360 Wireless N Networking Adapter [Atheros AR7010+AR9280]
+ 02ad Xbox NUI Audio
+ 02ae Xbox NUI Camera
+ 02b0 Xbox NUI Motor
+ 0400 Windows Powered Pocket PC 2002
+ 0401 Windows Powered Pocket PC 2002
+ 0402 Windows Powered Pocket PC 2002
+ 0403 Windows Powered Pocket PC 2002
+ 0404 Windows Powered Pocket PC 2002
+ 0405 Windows Powered Pocket PC 2002
+ 0406 Windows Powered Pocket PC 2002
+ 0407 Windows Powered Pocket PC 2002
+ 0408 Windows Powered Pocket PC 2002
+ 0409 Windows Powered Pocket PC 2002
+ 040a Windows Powered Pocket PC 2002
+ 040b Windows Powered Pocket PC 2002
+ 040c Windows Powered Pocket PC 2002
+ 040d Windows Powered Pocket PC 2002
+ 040e Windows Powered Pocket PC 2002
+ 040f Windows Powered Pocket PC 2002
+ 0410 Windows Powered Pocket PC 2002
+ 0411 Windows Powered Pocket PC 2002
+ 0412 Windows Powered Pocket PC 2002
+ 0413 Windows Powered Pocket PC 2002
+ 0414 Windows Powered Pocket PC 2002
+ 0415 Windows Powered Pocket PC 2002
+ 0416 Windows Powered Pocket PC 2002
+ 0417 Windows Powered Pocket PC 2002
+ 0432 Windows Powered Pocket PC 2003
+ 0433 Windows Powered Pocket PC 2003
+ 0434 Windows Powered Pocket PC 2003
+ 0435 Windows Powered Pocket PC 2003
+ 0436 Windows Powered Pocket PC 2003
+ 0437 Windows Powered Pocket PC 2003
+ 0438 Windows Powered Pocket PC 2003
+ 0439 Windows Powered Pocket PC 2003
+ 043a Windows Powered Pocket PC 2003
+ 043b Windows Powered Pocket PC 2003
+ 043c Windows Powered Pocket PC 2003
+ 043d Becker Traffic Assist Highspeed 7934
+ 043e Windows Powered Pocket PC 2003
+ 043f Windows Powered Pocket PC 2003
+ 0440 Windows Powered Pocket PC 2003
+ 0441 Windows Powered Pocket PC 2003
+ 0442 Windows Powered Pocket PC 2003
+ 0443 Windows Powered Pocket PC 2003
+ 0444 Windows Powered Pocket PC 2003
+ 0445 Windows Powered Pocket PC 2003
+ 0446 Windows Powered Pocket PC 2003
+ 0447 Windows Powered Pocket PC 2003
+ 0448 Windows Powered Pocket PC 2003
+ 0449 Windows Powered Pocket PC 2003
+ 044a Windows Powered Pocket PC 2003
+ 044b Windows Powered Pocket PC 2003
+ 044c Windows Powered Pocket PC 2003
+ 044d Windows Powered Pocket PC 2003
+ 044e Windows Powered Pocket PC 2003
+ 044f Windows Powered Pocket PC 2003
+ 0450 Windows Powered Pocket PC 2003
+ 0451 Windows Powered Pocket PC 2003
+ 0452 Windows Powered Pocket PC 2003
+ 0453 Windows Powered Pocket PC 2003
+ 0454 Windows Powered Pocket PC 2003
+ 0455 Windows Powered Pocket PC 2003
+ 0456 Windows Powered Pocket PC 2003
+ 0457 Windows Powered Pocket PC 2003
+ 0458 Windows Powered Pocket PC 2003
+ 0459 Windows Powered Pocket PC 2003
+ 045a Windows Powered Pocket PC 2003
+ 045b Windows Powered Pocket PC 2003
+ 045c Windows Powered Pocket PC 2003
+ 045d Windows Powered Pocket PC 2003
+ 045e Windows Powered Pocket PC 2003
+ 045f Windows Powered Pocket PC 2003
+ 0460 Windows Powered Pocket PC 2003
+ 0461 Windows Powered Pocket PC 2003
+ 0462 Windows Powered Pocket PC 2003
+ 0463 Windows Powered Pocket PC 2003
+ 0464 Windows Powered Pocket PC 2003
+ 0465 Windows Powered Pocket PC 2003
+ 0466 Windows Powered Pocket PC 2003
+ 0467 Windows Powered Pocket PC 2003
+ 0468 Windows Powered Pocket PC 2003
+ 0469 Windows Powered Pocket PC 2003
+ 046a Windows Powered Pocket PC 2003
+ 046b Windows Powered Pocket PC 2003
+ 046c Windows Powered Pocket PC 2003
+ 046d Windows Powered Pocket PC 2003
+ 046e Windows Powered Pocket PC 2003
+ 046f Windows Powered Pocket PC 2003
+ 0470 Windows Powered Pocket PC 2003
+ 0471 Windows Powered Pocket PC 2003
+ 0472 Windows Powered Pocket PC 2003
+ 0473 Windows Powered Pocket PC 2003
+ 0474 Windows Powered Pocket PC 2003
+ 0475 Windows Powered Pocket PC 2003
+ 0476 Windows Powered Pocket PC 2003
+ 0477 Windows Powered Pocket PC 2003
+ 0478 Windows Powered Pocket PC 2003
+ 0479 Windows Powered Pocket PC 2003
+ 047a Windows Powered Pocket PC 2003
+ 047b Windows Powered Pocket PC 2003
+ 04c8 Windows Powered Smartphone 2002
+ 04c9 Windows Powered Smartphone 2002
+ 04ca Windows Powered Smartphone 2002
+ 04cb Windows Powered Smartphone 2002
+ 04cc Windows Powered Smartphone 2002
+ 04cd Windows Powered Smartphone 2002
+ 04ce Windows Powered Smartphone 2002
+ 04d7 Windows Powered Smartphone 2003
+ 04d8 Windows Powered Smartphone 2003
+ 04d9 Windows Powered Smartphone 2003
+ 04da Windows Powered Smartphone 2003
+ 04db Windows Powered Smartphone 2003
+ 04dc Windows Powered Smartphone 2003
+ 04dd Windows Powered Smartphone 2003
+ 04de Windows Powered Smartphone 2003
+ 04df Windows Powered Smartphone 2003
+ 04e0 Windows Powered Smartphone 2003
+ 04e1 Windows Powered Smartphone 2003
+ 04e2 Windows Powered Smartphone 2003
+ 04e3 Windows Powered Smartphone 2003
+ 04e4 Windows Powered Smartphone 2003
+ 04e5 Windows Powered Smartphone 2003
+ 04e6 Windows Powered Smartphone 2003
+ 04e7 Windows Powered Smartphone 2003
+ 04e8 Windows Powered Smartphone 2003
+ 04e9 Windows Powered Smartphone 2003
+ 04ea Windows Powered Smartphone 2003
+ 04ec Windows Phone (Zune)
+ 063e Zune HD Media Player
+ 0640 KIN Phone
+ 0641 KIN Phone
+ 0642 KIN Phone
+ 0707 Wireless Laser Mouse 8000
+ 0708 Transceiver v 3.0 for Bluetooth
+ 070a Charon Bluetooth Dongle (DFU)
+ 0710 Zune Media Player
+ 0713 Wireless Presenter Mouse 8000
+ 0719 Xbox 360 Wireless Adapter
+ 071f Mouse/Keyboard 2.4GHz Transceiver V2.0
+ 0721 LifeCam NX-3000 (UVC-compliant)
+ 0723 LifeCam VX-7000 (UVC-compliant)
+ 0734 Wireless Optical Desktop 700
+ 0737 Compact Optical Mouse 500
+ 0745 Nano Transceiver v1.0 for Bluetooth
+ 0750 Wired Keyboard 600
+ 075d LifeCam Cinema
+ 0768 Sidewinder X4
+ 076d LifeCam HD-5000
+ 930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board
+ fff8 Keyboard
+ ffff Windows CE Mass Storage
+0460 Ace Cad Enterprise Co., Ltd
+ 0004 Tablet (5x3.75)
+ 0006 LCD Tablet (12x9)
+ 0008 Tablet (3x2.25)
+0461 Primax Electronics, Ltd
+ 0300 G2-300 Scanner
+ 0301 G2E-300 Scanner
+ 0302 G2-300 #2 Scanner
+ 0303 G2E-300 #2 Scanner
+ 0340 Colorado 9600 Scanner
+ 0341 Colorado 600u Scanner
+ 0345 Visioneer 6200 Scanner
+ 0346 Memorex Maxx 6136u Scanner
+ 0347 Primascan Colorado 2600u/Visioneer 4400 Scanner
+ 0360 Colorado 19200 Scanner
+ 0361 Colorado 1200u Scanner
+ 0363 VistaScan Astra 3600(ENG)
+ 0364 LG Electronics Scanworks 600U Scanner
+ 0365 VistaScan Astra 3600(ENG)
+ 0366 6400
+ 0367 VistaScan Astra 3600(ENG)
+ 0371 Visioneer Onetouch 8920 Scanner
+ 0374 UMAX Astra 2500
+ 0375 VistaScan Astra 3600(ENG)
+ 0377 Medion MD 5345 Scanner
+ 0378 VistaScan Astra 3600(ENG)
+ 037b Medion MD 6190 Scanner
+ 037c VistaScan Astra 3600(ENG)
+ 0380 G2-600 Scanner
+ 0381 ReadyScan 636i Scanner
+ 0382 G2-600 #2 Scanner
+ 0383 G2E-600 Scanner
+ 038a UMAX Astra 3000/3600
+ 038b Xerox 2400 Onetouch
+ 038c UMAX Astra 4100
+ 0392 Medion/Lifetec/Tevion/Cytron MD 6190
+ 03a8 9420M
+ 0813 IBM UltraPort Camera
+ 0815 Micro Innovations IC200 Webcam
+ 0819 Fujifilm IX-30 Camera [webcam mode]
+ 081a Fujifilm IX-30 Camera [storage mode]
+ 081c Elitegroup ECS-C11 Camera
+ 081d Elitegroup ECS-C11 Storage
+ 0a00 Micro Innovations Web Cam 320
+ 4d01 Comfort Keyboard
+ 4d02 Mouse-in-a-Box
+ 4d03 Kensington Mouse-in-a-box
+ 4d04 Mouse
+ 4d06 Balless Mouse (HID)
+ 4d15 Dell Optical Mouse
+ 4d17 Optical Mouse
+ 4d2a PoPo Elixir Mouse (HID)
+ 4d2b Wireless Laser Mini Mouse (HID)
+ 4d2c PoPo Mini Pointer Mouse (HID)
+ 4d2e Optical Mobile Mouse (HID)
+ 4d51 0Y357C PMX-MMOCZUL (B) [Dell Laser Mouse]
+ 4d75 Rocketfish RF-FLBTAD Bluetooth Adapter
+ 4de7 webcam
+0463 MGE UPS Systems
+ 0001 UPS
+ ffff UPS
+0464 AMP/Tycoelectronics Corp.
+0467 AT&T Paradyne
+0468 Wieson Technologies Co., Ltd
+046a Cherry GmbH
+ 0001 My3000 Keyboard
+ 0003 My3000 Hub
+ 0004 CyBoard Keyboard
+ 0005 XX33 SmartCard Reader Keyboard
+ 0008 Wireless Keyboard and Mouse
+ 0010 SmartBoard XX44
+ 0011 G83 (RS 6000) Keyboard
+ 0021 CyMotion Expert Combo
+ 0023 CyMotion Master Linux Keyboard
+ 0027 CyMotion Master Solar Keyboard
+ 002a Wireless Mouse & Keyboard
+ 002d SmartTerminal XX44
+ 003e SmartTerminal ST-2xxx
+ 0080 eHealth Terminal ST 1503
+ 0081 eHealth Keyboard G87 1504
+ 0106 R-300 Wireless Mouse Receiver
+046b American Megatrends, Inc.
+ 0001 Keyboard
+ 0101 PS/2 Keyboard, Mouse & Joystick Ports
+ 0301 USB 1.0 Hub
+ 0500 Serial & Parallel Ports
+046c Toshiba Corp., Digital Media Equipment
+046d Logitech, Inc.
+ 0082 Acer Aspire 5672 Webcam
+ 0200 WingMan Extreme Joystick
+ 0203 M2452 Keyboard
+ 0301 M4848 Mouse
+ 0401 HP PageScan
+ 0402 NEC PageScan
+ 040f Logitech/Storm PageScan
+ 0430 Mic (Cordless)
+ 0801 QuickCam Home
+ 0802 Webcam C200
+ 0804 Webcam C250
+ 0805 Webcam C300
+ 0807 Webcam B500
+ 0808 Webcam C600
+ 0809 Webcam Pro 9000
+ 080a Portable Webcam C905
+ 080f Webcam C120
+ 0810 QuickCam Pro
+ 0819 Webcam C210
+ 081b Webcam C310
+ 0820 QuickCam VC
+ 0821 HD Webcam C910
+ 0825 Webcam C270
+ 0828 HD Webcam B990
+ 0830 QuickClip
+ 0840 QuickCam Express
+ 0850 QuickCam Web
+ 0870 QuickCam Express
+ 0890 QuickCam Traveler
+ 0892 OrbiCam
+ 0894 CrystalCam
+ 0895 QuickCam for Dell Notebooks
+ 0896 OrbiCam
+ 0897 QuickCam for Dell Notebooks
+ 0899 QuickCam for Dell Notebooks
+ 089d QuickCam E2500 series
+ 08a0 QuickCam IM
+ 08a1 QuickCam IM with sound
+ 08a2 Labtec Webcam Pro
+ 08a3 QuickCam QuickCam Chat
+ 08a6 QuickCam IM
+ 08a7 QuickCam Image
+ 08a9 Notebook Deluxe
+ 08aa Labtec Notebooks
+ 08ac QuickCam Cool
+ 08ad QuickCam Communicate STX
+ 08ae QuickCam for Notebooks
+ 08af QuickCam Easy/Cool
+ 08b0 QuickCam 3000 Pro [pwc]
+ 08b1 QuickCam Notebook Pro
+ 08b2 QuickCam Pro 4000
+ 08b3 QuickCam Zoom
+ 08b4 QuickCam Zoom
+ 08b5 QuickCam Sphere
+ 08b9 QuickCam IM
+ 08bd Microphone (Pro 4000)
+ 08c0 QuickCam Pro 3000
+ 08c1 QuickCam Fusion
+ 08c2 QuickCam PTZ
+ 08c3 Camera (Notebooks Pro)
+ 08c5 QuickCam Pro 5000
+ 08c6 QuickCam for DELL Notebooks
+ 08c7 QuickCam OEM Cisco VT Camera II
+ 08c9 QuickCam Ultra Vision
+ 08ca Mic (Fusion)
+ 08cb Mic (Notebooks Pro)
+ 08cc Mic (PTZ)
+ 08ce QuickCam Pro 5000
+ 08cf QuickCam UpdateMe
+ 08d0 QuickCam Express
+ 08d7 QuickCam Communicate STX
+ 08d8 QuickCam for Notebook Deluxe
+ 08d9 QuickCam IM/Connect
+ 08da QuickCam Messanger
+ 08dd QuickCam for Notebooks
+ 08e0 QuickCam Express
+ 08e1 Labtec Webcam
+ 08f0 QuickCam Messenger
+ 08f1 QuickCam Express
+ 08f2 Microphone (Messenger)
+ 08f3 QuickCam Express
+ 08f4 Labtec Webcam
+ 08f5 QuickCam Messenger Communicate
+ 08f6 QuickCam Messenger Plus
+ 0900 ClickSmart 310
+ 0901 ClickSmart 510
+ 0903 ClickSmart 820
+ 0905 ClickSmart 820
+ 0910 QuickCam Cordless
+ 0920 QuickCam Express
+ 0921 Labtec Webcam
+ 0922 QuickCam Live
+ 0928 QuickCam Express
+ 0929 Labtec Webcam Pro
+ 092a QuickCam for Notebooks
+ 092b Labtec Webcam Plus
+ 092c QuickCam Chat
+ 092d QuickCam Express / Go
+ 092e QuickCam Chat
+ 092f QuickCam Express Plus
+ 0950 Pocket Camera
+ 0960 ClickSmart 420
+ 0970 Pocket750
+ 0990 QuickCam Pro 9000
+ 0991 QuickCam Pro for Notebooks
+ 0992 QuickCam Communicate Deluxe
+ 0994 QuickCam Orbit/Sphere AF
+ 09a1 QuickCam Communicate MP/S5500
+ 09a2 QuickCam Communicate Deluxe/S7500
+ 09a4 QuickCam E 3500
+ 09a5 Quickcam 3000 For Business
+ 09a6 QuickCam Vision Pro
+ 09b0 Acer OrbiCam
+ 09b2 Fujitsu Webcam
+ 09c0 QuickCam for Dell Notebooks Mic
+ 09c1 QuickCam Deluxe for Notebooks
+ 0a01 USB Headset
+ 0a02 Premium Stereo USB Headset 350
+ 0a03 Logitech USB Microphone
+ 0a04 V20 portable speakers (USB powered)
+ 0a07 Z-10 Speakers
+ 0a0b ClearChat Pro USB
+ 0a0c Clear Chat Comfort USB Headset
+ 0a13 Z-5 Speakers
+ 0a17 G330 Headset
+ 0b02 BT Mini-Receiver (HID proxy mode)
+ 8801 Video Camera
+ b305 BT Mini-Receiver
+ bfe4 Premium Optical Wheel Mouse
+ c000 N43 [Pilot Mouse]
+ c001 N48/M-BB48 [FirstMouse Plus]
+ c002 M-BA47 [MouseMan Plus]
+ c003 MouseMan
+ c004 WingMan Gaming Mouse
+ c005 WingMan Gaming Wheel Mouse
+ c00b MouseMan Wheel
+ c00c Optical Wheel Mouse
+ c00d MouseMan Wheel+
+ c00e M-BJ58/M-BJ69 Optical Wheel Mouse
+ c00f MouseMan Traveler/Mobile
+ c011 Optical MouseMan
+ c012 Mouseman Dual Optical
+ c014 Corded Workstation Mouse
+ c015 Corded Workstation Mouse
+ c016 Optical Wheel Mouse
+ c018 Optical Wheel Mouse
+ c019 Optical Tilt Wheel Mouse
+ c01a M-BQ85 Optical Wheel Mouse
+ c01b MX310 Optical Mouse
+ c01c Optical Mouse
+ c01d MX510 Optical Mouse
+ c01e MX518 Optical Mouse
+ c024 MX300 Optical Mouse
+ c025 MX500 Optical Mouse
+ c030 iFeel Mouse
+ c031 iFeel Mouse+
+ c032 MouseMan iFeel
+ c033 iFeel MouseMan+
+ c034 MouseMan Optical
+ c035 Mouse
+ c036 Mouse
+ c037 Mouse
+ c038 Mouse
+ c03d M-BT96a Pilot Optical Mouse
+ c03e Premium Optical Wheel Mouse (M-BT58)
+ c03f M-BT85 [UltraX Optical Mouse]
+ c040 Corded Tilt-Wheel Mouse
+ c041 G5 Laser Mouse
+ c042 G3 Laser Mouse
+ c043 MX320/MX400 Laser Mouse
+ c044 LX3 Optical Mouse
+ c045 Optical Mouse
+ c046 RX1000 Laser Mouse
+ c047 Laser Mouse
+ c048 G9 Laser Mouse
+ c049 G5 Laser Mouse
+ c050 RX 250 Optical Mouse
+ c051 G3 (MX518) Optical Mouse
+ c053 Laser Mouse
+ c058 M115 Mouse
+ c05a Optical Mouse M90
+ c05d Optical Mouse
+ c061 RX1500 Laser Mouse
+ c062 LS1 Laser Mouse, corded
+ c063 DELL Laser Mouse
+ c068 G500 Laser Mouse
+ c101 UltraX Media Remote
+ c110 Harmony 885 Remote
+ c11f Harmony 900 Remote
+ c122 Harmony 700 Remote
+ c201 WingMan Extreme Joystick with Throttle
+ c202 WingMan Formula
+ c207 WingMan Extreme Digital 3D
+ c208 WingMan Gamepad Extreme
+ c209 WingMan Gamepad
+ c20a WingMan RumblePad
+ c20b WingMan Action Pad
+ c20c WingMan Precision
+ c20d WingMan Attack 2
+ c20e WingMan Formula GP
+ c211 iTouch Cordless Reciever
+ c212 WingMan Extreme Digital 3D
+ c213 J-UH16 (Freedom 2.4 Cordless Joystick)
+ c214 ATK3 (Attack III Joystick)
+ c215 Extreme 3D Pro
+ c216 Dual Action Gamepad
+ c218 Logitech RumblePad 2 USB
+ c219 Cordless RumblePad 2
+ c21a Precision Gamepad
+ c21c G13 Advanced Gameboard
+ c21d F310 Gamepad [XInput Mode]
+ c21f F710 Wireless Gamepad [XInput Mode]
+ c221 G11/G15 Keyboard / Keyboard
+ c222 G15 Keyboard / LCD
+ c223 G11/G15 Keyboard / USB Hub
+ c225 G11/G15 Keyboard / G keys
+ c226 G15 Refresh Keyboard
+ c227 G15 Refresh Keyboard
+ c22d G510 Gaming Keyboard
+ c22e G510 Gaming Keyboard onboard audio
+ c281 WingMan Force
+ c283 WingMan Force 3D
+ c285 WingMan Strike Force 3D
+ c286 Force 3D Pro
+ c287 Flight System G940
+ c291 WingMan Formula Force
+ c293 WingMan Formula Force GP
+ c294 Driving Force
+ c295 Momo Force Steering Wheel
+ c298 Driving Force Pro
+ c299 G25 Racing Wheel
+ c29b G27 Racing Wheel
+ c29c Speed Force Wireless Wheel for Wii
+ c2a0 Wingman Force Feedback Mouse
+ c2a1 WingMan Force Feedback Mouse
+ c301 iTouch Keyboard
+ c302 iTouch Pro Keyboard
+ c303 iTouch Keyboard
+ c305 Internet Keyboard
+ c307 Internet Keyboard
+ c308 Internet Navigator Keyboard
+ c309 Internet Keyboard
+ c30a iTouch Composite
+ c30b NetPlay Keyboard
+ c30c Internet Keys (X)
+ c30d Internet Keys
+ c30e UltraX Keyboard (Y-BL49)
+ c30f Logicool HID-Compliant Keyboard (106 key)
+ c311 Y-UF49 [Internet Pro Keyboard]
+ c312 DeLuxe 250 Keyboard
+ c313 Internet 350 Keyboard
+ c315 Classic New Touch Keyboard
+ c316 HID-Compliant Keyboard
+ c317 Wave Corded Keyboard
+ c318 Illuminated Keyboard
+ c31a Comfort Wave 450
+ c31b Compact Keyboard K300
+ c31c Keyboard K120 for Business
+ c401 TrackMan Marble Wheel
+ c402 Marble Mouse (2-button)
+ c403 Turbo TrackMan Marble FX
+ c404 TrackMan Wheel
+ c408 Marble Mouse (4-button)
+ c501 Cordless Mouse Receiver
+ c502 Cordless Mouse & iTouch Keys
+ c503 Cordless Mouse+Keyboard Receiver
+ c504 Cordless Mouse+Keyboard Receiver
+ c505 Cordless Mouse+Keyboard Receiver
+ c506 MX700 Cordless Mouse Receiver
+ c508 Cordless Trackball
+ c509 Cordless Keyboard & Mouse
+ c50a Cordless Mouse
+ c50b Cordless Desktop Optical
+ c50c Cordless Desktop S510
+ c50d Cordless Mouse
+ c50e Cordless Mouse Receiver
+ c510 Cordless Mouse
+ c512 LX-700 Cordless Desktop Receiver
+ c513 MX3000 Cordless Desktop Receiver
+ c514 Cordless Mouse
+ c515 Cordless 2.4 GHz Presenter Presentation remote control
+ c517 LX710 Cordless Desktop Laser
+ c518 MX610 Laser Cordless Mouse
+ c51a MX Revolution/G7 Cordless Mouse
+ c51b V220 Cordless Optical Mouse for Notebooks
+ c521 Cordless Mouse Receiver
+ c525 MX Revolution Cordless Mouse
+ c526 Nano Receiver
+ c529 diNovo Keyboard for notebooks
+ c52b Unifying Receiver
+ c52f Wireless Mouse M305
+ c623 3Dconnexion Space Traveller 3D Mouse
+ c625 3Dconnexion Space Pilot 3D Mouse
+ c626 3Dconnexion Space Navigator 3D Mouse
+ c627 3Dconnexion Space Explorer 3D Mouse
+ c702 Cordless Presenter
+ c703 Elite Keyboard Y-RP20 + Mouse MX900 (Bluetooth)
+ c704 diNovo Wireless Desktop
+ c705 MX900 Bluetooth Wireless Hub (C-UJ16A)
+ c707 Bluetooth wireless hub
+ c708 Bluetooth wireless hub
+ c709 BT Mini-Receiver (HCI mode)
+ c70a MX5000 Cordless Desktop
+ c70b BT Mini-Receiver (HID proxy mode)
+ c70c BT Mini-Receiver (HID proxy mode)
+ c70d Bluetooth wireless hub
+ c70e MX1000 Bluetooth Laser Mouse
+ c70f Bluetooth wireless hub
+ c712 Bluetooth wireless hub
+ c714 diNovo Edge Keyboard
+ c715 Bluetooth wireless hub
+ c71a Bluetooth wireless hub
+ c71d Bluetooth wireless hub
+ c71f diNovo Mini Wireless Keyboard
+ c720 Bluetooth wireless hub
+ ca03 MOMO Racing
+ ca04 Formula Vibration Feedback Wheel
+ cab1 Cordless Keyboard for Wii HID Receiver
+ d001 QuickCam Pro
+046e Behavior Tech. Computer Corp.
+ 0100 Keyboard
+ 3001 Mass Storage Device
+ 3002 Mass Storage Device
+ 3003 Mass Storage Device
+ 3005 Mass Storage Device
+ 3008 Mass Storage Device
+ 5250 KeyMaestro Multimedia Keyboard
+ 5273 KeyMaestro Multimedia Keyboard
+ 52e6 Cordless Mouse
+ 5308 KeyMaestro Keyboard
+ 5408 KeyMaestro Multimedia Keyboard/Hub
+ 5500 Portable Keyboard 86+9 keys (Model 6100C US)
+ 5720 Smart Card Reader
+ 6782 BTC 7932 mouse+keyboard
+046f Crystal Semiconductor
+0471 Philips (or NXP)
+ 0101 DSS350 Digital Speaker System
+ 0104 DSS330 Digital Speaker System [uda1321]
+ 0105 UDA1321
+ 014f GoGear SA9200
+ 0160 MP3 Player
+ 0161 MP3 Player
+ 0163 GoGear SA1100
+ 0164 GoGear SA1110/02
+ 0165 GoGear SA1330
+ 0201 Hub
+ 0222 Creative Nomad Jukebox
+ 0302 PCA645VC Webcam [pwc]
+ 0303 PCA646VC Webcam [pwc]
+ 0304 Askey VC010 Webcam [pwc]
+ 0307 PCVC675K Webcam [pwc]
+ 0308 PCVC680K Webcam [pwc]
+ 030b PC VGA Camera (Vesta Fun)
+ 030c PCVC690K Webcam [pwc]
+ 0310 PCVC730K Webcam [pwc]
+ 0311 PCVC740K ToUcam Pro [pwc]
+ 0312 PCVC750K Webcam [pwc]
+ 0314 DMVC 1000K
+ 0316 DMVC 2000K Video Capture
+ 0321 FunCam
+ 0322 DMVC1300K PC Camera
+ 0325 SPC 200NC PC Camera
+ 0326 SPC 300NC PC Camera
+ 0327 Webcam SPC 6000 NC (Webcam w/ mic)
+ 0328 SPC 700NC PC Camera
+ 0329 SPC 900NC PC Camera / ORITE CCD Webcam(PC370R)
+ 032d SPC 210NC PC Camera
+ 032e SPC 315NC PC Camera
+ 0330 SPC 710NC PC Camera
+ 0331 SPC 1300NC PC Camera
+ 0332 SPC 1000NC PC Camera
+ 0333 SPC 620NC PC Camera
+ 0334 SPC 520/525NC PC Camera
+ 0401 Semiconductors CICT Keyboard
+ 0402 PS/2 Mouse on Semiconductors CICT Keyboard
+ 0406 15 inch Detachable Monitor
+ 0407 10 inch Mobile Monitor
+ 0408 SG3WA1/74 802.11b WLAN Adapter [Atmel AT76C503A]
+ 0471 Digital Speaker System
+ 0601 OVU1020 IR Dongle (Kbd+Mouse)
+ 0602 ATI Remote Wonder II Input Device
+ 0603 ATI Remote Wonder II Controller
+ 0608 eHome Infrared Receiver
+ 060a TSU9600 Remote Control
+ 060c Consumer Infrared Transceiver (HP)
+ 060d Consumer Infrared Transceiver (SRM5100)
+ 060e RF Dongle
+ 060f Consumer Infrared Transceiver
+ 0613 Infrared Transceiver
+ 0617 IEEE802.15.4 RF Dongle
+ 0619 TSU9400 Remote Control
+ 0666 Hantek DDS-3005 Arbitrary Waveform Generator
+ 0700 Semiconductors CICT Hub
+ 0701 150P1 TFT Display
+ 0809 AVNET Bluetooth Device
+ 0811 JR24 CDRW
+ 0814 DCCX38/P data cable
+ 0815 eHome Infrared Receiver
+ 0844 SA2111/02 1GB Flash Audio Player
+ 084a GoGear SA3125
+ 084e GoGear SA60xx (mtp)
+ 0888 Hantek DDS-3005 Arbitrary Waveform Generator
+ 1103 Digital Speaker System
+ 1120 Creative Rhomba MP3 player
+ 1125 Nike psa[128max Player
+ 1137 HDD065 MP3 player
+ 1201 Arima Bluetooth Device
+ 1230 Wireless Adapter 11g
+ 1232 SNU6500 Wireless Adapter
+ 1233 Wireless Adapter Bootloader Download
+ 1236 SNU5600 802.11bg
+ 1237 TalkTalk SNU5630NS/05 802.11bg
+ 1552 ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit
+ 1801 Diva MP3 player
+ 200a Wireless Network Adapter
+ 200f 802.11n Wireless Adapter
+ 2021 SDE3273FC/97 2.5" SATA HDD Enclosure [INIC-1608L]
+ 2022 GoGear SA52XX
+ 2034 Webcam SPC530NC
+ 2036 Webcam SPC1030NC
+ 203f TSU9200 Remote Control
+ 2046 TSU9800 Remote Control
+ 204e GoGear RaGa (SA1942/02)
+ 205e TSU9300 Remote Control
+ 2070 GoGear Mix
+ 2076 GoGear Aria
+ 2079 GoGear Opus
+ 2088 MCE IR Receiver with ALS- Spinel plus for ASUS
+ 262c SPC230NC Webcam
+ 485d Senselock SenseIV v2.x
+ df55 LPCXpresso LPC-Link
+0472 Chicony Electronics Co., Ltd
+ 0065 PFU-65 Keyboard [Chicony]
+ b086 Asus USB2.0 Webcam
+ b091 Webcam
+0473 Sanyo Information Business Co., Ltd
+0474 Sanyo Electric Co., Ltd
+ 0110 Digital Voice Recorder R200
+ 0217 Xacti J2
+ 022f C5 Digital Media Camera (mass storage mode)
+ 0230 C5 Digital Media Camera (PictBridge mode)
+ 0231 C5 Digital Media Camera (PC control mode)
+ 0401 Optical Drive
+ 0701 SCP-4900 Cellphone
+ 071f Usb Com Port Enumerator
+ 0722 W33SA Camera
+0475 Relisys/Teco Information System
+ 0100 NEC Petiscan
+ 0103 Eclipse 1200U/Episode
+ 0210 Scorpio Ultra 3
+0476 AESP
+0477 Seagate Technology, Inc.
+0478 Connectix Corp.
+ 0001 QuickCam
+ 0002 QuickClip
+ 0003 QuickCam Pro
+0479 Advanced Peripheral Laboratories
+047a Semtech Corp.
+ 0004 ScreenCoder UR7HCTS2-USB
+047b Silitek Corp.
+ 0001 Keyboard
+ 0002 Keyboard and Mouse
+ 0011 SK-1688U Keyboard
+ 00f9 SK-1789u Keyboard
+ 0101 BlueTooth Keyboard and Mouse
+ 020b SK-3105 SmartCard Reader
+ 050e Internet Compact Keyboard
+ 1000 Trust Office Scan USB 19200
+ 1002 HP ScanJet 4300c Parallel Port
+047c Dell Computer Corp.
+047d Kensington
+ 1001 Mouse*in*a*Box
+ 1002 Expert Mouse Pro
+ 1003 Orbit TrackBall
+ 1004 MouseWorks
+ 1005 TurboBall
+ 1006 TurboRing
+ 1009 Orbit TrackBall for Mac
+ 1012 PocketMouse
+ 1013 Mouse*in*a*Box Optical Pro
+ 1014 Expert Mouse Pro Wireless
+ 1015 Expert Mouse
+ 1016 ADB/USB Orbit
+ 1018 Studio Mouse
+ 101d Mouse*in*a*Box Optical Pro
+ 101e Studio Mouse Wireless
+ 101f PocketMouse Pro
+ 1020 Expert Mouse Trackball
+ 1021 Expert Mouse Wireless
+ 1022 Orbit Optical
+ 1023 Pocket Mouse Pro Wireless
+ 1024 PocketMouse
+ 1025 Mouse*in*a*Box Optical Elite Wireless
+ 1026 Pocket Mouse Pro
+ 1027 StudioMouse
+ 1028 StudioMouse Wireless
+ 1029 Mouse*in*a*Box Optical Elite
+ 102a Mouse*in*a*Box Optical
+ 102b PocketMouse
+ 102c Iridio
+ 102d Pilot Optical
+ 102e Pilot Optical Pro
+ 102f Pilot Optical Pro Wireless
+ 1043 Ci65m Wireless Notebook Optical Mouse
+ 104a PilotMouse Mini Retractable
+ 105d PocketMouse Bluetooth
+ 105e Bluetooth EDR Dongle
+ 1061 PocketMouse Grip
+ 1062 PocketMouse Max
+ 1063 PocketMouse Max Wireless
+ 1064 PocketMouse 2.0 Wireless
+ 1065 PocketMouse 2.0
+ 1066 PocketMouse Max Glow
+ 1067 ValueMouse
+ 1068 ValueOpt White
+ 1069 ValueOpt Black
+ 106a PilotMouse Laser Wireless Mini
+ 106b PilotMouse Laser - 3 Button
+ 106c PilotMouse Laser - Gaming
+ 106d PilotMouse Laser - Wired
+ 106e PilotMouse Micro Laser
+ 1070 ValueOpt Travel
+ 1071 ValueOpt RF TX
+ 1072 PocketMouse Colour
+ 1073 PilotMouse Laser - 6 Button
+ 1074 PilotMouse Laser Wireless Mini
+ 1075 SlimBlade Presenter Media Mouse
+ 1076 SlimBlade Media Mouse
+ 1077 SlimBlade Presenter Mouse
+ 1152 Bluetooth EDR Dongle
+ 2002 Optical Elite Wireless
+ 2010 Wireless Presentation Remote
+ 2012 Wireless Presenter with Laser Pointer
+ 2021 PilotBoard Wireless
+ 2030 PilotBoard Wireless
+ 2034 SlimBlade Media Notebook Set
+ 2041 SlimBlade Trackball
+ 4003 Gravis Xterminator Digital Gamepad
+ 4005 Gravis Eliminator GamePad Pro
+ 4006 Gravis Eliminator AfterShock
+ 4007 Gravis Xterminator Force
+ 4008 Gravis Destroyer TiltPad
+ 5001 Cabo I Camera
+ 5002 VideoCam CABO II
+ 5003 VideoCam
+047e Agere Systems, Inc. (Lucent)
+ 0300 ORiNOCO Card
+ 1001 USS720 Parallel Port
+ 2892 Systems Soft Modem
+ bad1 Lucent 56k Modem
+ f101 Atlas Modem
+047f Plantronics, Inc.
+ 0101 Bulk Driver
+ 0301 Bulk Driver
+ 0ca1 USB DSP v4 Audio Interface
+ 4254 BUA-100 Bluetooth Adapter
+0480 Toshiba America Info. Systems, Inc.
+ 0001 InTouch Module
+ 0004 InTouch Module
+ 0011 InTouch Module
+ 0014 InTouch Module
+0481 Zenith Data Systems
+0482 Kyocera Corp.
+ 000e FS-1020D Printer
+ 0100 Finecam S3x
+ 0101 Finecam S4
+ 0103 Finecam S5
+ 0105 Finecam L3
+ 0106 Finecam
+ 0107 Digital Camera Device
+ 0108 Digital Camera Device
+ 0203 AH-K3001V
+ 0204 iBurst Terminal
+0483 SGS Thomson Microelectronics
+ 0137 BeWAN ADSL USB ST (blue or green)
+ 0138 Unicorn II (ST70138B + MTC-20174TQ chipset)
+ 1307 Cytronix 6in1 Card Reader
+ 163d Cool Icam Digi-MP3
+ 2015 TouchChip Fingerprint Reader
+ 2016 Fingerprint Reader
+ 2017 Biometric Smart Card Reader
+ 2018 BioSimKey
+ 2302 Portable Flash Device (PFD)
+ 3744 STLINK Pseudo disk
+ 3748 ST-LINK/V2
+ 4810 ISDN adapter
+ 481d BT Digital Access adapter
+ 5000 ST Micro/Ergenic ERG BT-002 Bluetooth Adapter
+ 5001 ST Micro Bluetooth Device
+ 5721 Hantek DDS-3X25 Arbitrary Waveform Generator
+ 7270 ST Micro Serial Bridge
+ 7554 56k SoftModem
+ df11 STM Device in DFU Mode
+ ff10 Swann ST56 Modem
+0484 Specialix
+0485 Nokia Monitors
+0486 ASUS Computers, Inc.
+ 0185 EeePC T91MT HID Touch Panel
+0487 Stewart Connector
+0488 Cirque Corp.
+0489 Foxconn / Hon Hai
+ 0502 SmartMedia Card Reader Firmware Loader
+ 0503 SmartMedia Card Reader
+ d00c Rollei Compactline (Storage Mode)
+ d00e Rollei Compactline (Video Mode)
+ e000 T-Com TC 300
+ e003 Pirelli DP-L10
+ e00f Foxconn T77H114 BCM2070 [Single-Chip Bluetooth 2.1 + EDR Adapter]
+ e016 Ubee PXU1900 WiMAX Adapter [Beceem BCSM250]
+ e02c Atheros AR5BBU12 Bluetooth Device
+048a S-MOS Systems, Inc.
+048c Alps Electric Ireland, Ltd
+048d Integrated Technology Express, Inc.
+ 9009 Zolid HD DVD Maker
+ 9135 Zolid Mini DVB-T Stick
+048f Eicon Tech.
+0490 United Microelectronics Corp.
+0491 Capetronic
+ 0003 Taxan Monitor Control
+0492 Samsung SemiConductor, Inc.
+ 0140 MP3 player
+ 0141 MP3 Player
+0493 MAG Technology Co., Ltd
+0495 ESS Technology, Inc.
+0496 Micron Electronics
+0497 Smile International
+ c001 Camera Device
+0498 Capetronic (Kaohsiung) Corp.
+0499 Yamaha Corp.
+ 1000 UX256 MIDI I/F
+ 1001 MU1000
+ 1002 MU2000
+ 1003 MU500
+ 1004 UW500
+ 1005 MOTIF6
+ 1006 MOTIF7
+ 1007 MOTIF8
+ 1008 UX96 MIDI I/F
+ 1009 UX16 MIDI I/F
+ 100a EOS BX
+ 100c UC-MX
+ 100d UC-KX
+ 100e S08
+ 100f CLP-150
+ 1010 CLP-170
+ 1011 P-250
+ 1012 TYROS
+ 1013 PF-500
+ 1014 S90
+ 1015 MOTIF-R
+ 1016 MDP-5
+ 1017 CVP-204
+ 1018 CVP-206
+ 1019 CVP-208
+ 101a CVP-210
+ 101b PSR-1100
+ 101c PSR-2100
+ 101d CLP-175
+ 101e PSR-K1
+ 101f EZ-J24
+ 1020 EZ-250i
+ 1021 MOTIF ES 6
+ 1022 MOTIF ES 7
+ 1023 MOTIF ES 8
+ 1024 CVP-301
+ 1025 CVP-303
+ 1026 CVP-305
+ 1027 CVP-307
+ 1028 CVP-309
+ 1029 CVP-309GP
+ 102a PSR-1500
+ 102b PSR-3000
+ 102e ELS-01/01C
+ 1030 PSR-295/293
+ 1031 DGX-205/203
+ 1032 DGX-305
+ 1033 DGX-505
+ 1037 PSR-E403
+ 103c MOTIF-RACK ES
+ 1054 S90XS Keyboard/Music Synthesizer
+ 2000 DGP-7
+ 2001 DGP-5
+ 3001 YST-MS55D USB Speaker
+ 3003 YST-M45D USB Speaker
+ 4000 NetVolante RTA54i Broadband&ISDN Router
+ 4001 NetVolante RTW65b Broadband Wireless Router
+ 4002 NetVolante RTW65i Broadband&ISDN Wireless Router
+ 4004 NetVolante RTA55i Broadband VoIP Router
+ 5000 CS1D
+ 5001 DSP1D
+ 5002 DME32
+ 5003 DM2000
+ 5004 02R96
+ 5005 ACU16-C
+ 5006 NHB32-C
+ 5007 DM1000
+ 5008 01V96
+ 5009 SPX2000
+ 500a PM5D
+ 500b DME64N
+ 500c DME24N
+ 6001 CRW2200UX Lightspeed 2 External CD-RW Drive
+ 7000 DTX
+ 7010 UB99
+049a Gandalf Technologies, Ltd
+049b Curtis Computer Products
+049c Acer Advanced Labs, Inc.
+ 0002 Keyboard (???)
+049d VLSI Technology
+049f Compaq Computer Corp.
+ 0002 InkJet Color Printer
+ 0003 iPAQ PocketPC
+ 000e Internet Keyboard
+ 0012 InkJet Color Printer
+ 0018 PA-1/PA-2 MP3 Player
+ 0019 InkJet Color Printer
+ 001a S4 100 Scanner
+ 001e IJ650 Inkjet Printer
+ 001f WL215 Adapter
+ 0021 S200 Scanner
+ 0027 Bluetooth Multiport Module by Compaq
+ 002a 1400P Inkjet Printer
+ 002b A3000
+ 002c Lexmark X125
+ 0032 802.11b Adapter [ipaq h5400]
+ 0033 Wireless LAN MultiPort W100 [Intersil PRISM 2.5]
+ 0036 Bluetooth Multiport Module
+ 0051 KU-0133 Easy Access Interner Keyboard
+ 0076 Wireless LAN MultiPort W200
+ 0080 GPRS Multiport
+ 0086 Bluetooth Device
+ 504a Personal Jukebox PJB100
+ 505a Linux-USB "CDC Subset" Device, or Itsy (experimental)
+ 8511 iPAQ Networking 10/100 Ethernet [pegasus2]
+04a0 Digital Equipment Corp.
+04a1 SystemSoft Corp.
+ fff0 Telex Composite Device
+04a2 FirePower Systems
+04a3 Trident Microsystems, Inc.
+04a4 Hitachi, Ltd
+ 0004 DVD-CAM DZ-MV100A Camcorder
+ 001e DVDCAM USB HS Interface
+04a5 Acer Peripherals Inc. (now BenQ Corp.)
+ 0001 Keyboard
+ 0002 API Ergo K/B
+ 0003 API Generic K/B Mouse
+ 12a6 AcerScan C310U
+ 1a20 Prisa 310U
+ 1a2a Prisa 620U
+ 2022 Prisa 320U/340U
+ 2040 Prisa 620UT
+ 205e ScanPrisa 640BU
+ 2060 Prisa 620U+/640U
+ 207e Prisa 640BU
+ 209e ScanPrisa 640BT
+ 20ae S2W 3000U
+ 20b0 S2W 3300U/4300U
+ 20be Prisa 640BT
+ 20c0 Prisa 1240UT
+ 20de S2W 4300U+
+ 20f8 Benq 5000
+ 20fc Benq 5000
+ 20fe SW2 5300U
+ 2137 Benq 5150/5250
+ 2202 Benq 7400UT
+ 2311 Benq 5560
+ 3003 Benq Webcam
+ 3008 Benq 1500
+ 300a Benq 3410
+ 300c Benq 1016
+ 3019 Benq DC C40
+ 4000 P30 Composite Device
+ 4013 BenQ-Siemens EF82/SL91
+ 4044 BenQ-Siemens SF71
+ 4045 BenQ-Siemens E81
+ 4048 BenQ M7
+ 6001 Mass Storage Device
+ 6002 Mass Storage Device
+ 6003 ATA/ATAPI Adapter
+ 6004 Mass Storage Device
+ 6005 Mass Storage Device
+ 6006 Mass Storage Device
+ 6007 Mass Storage Device
+ 6008 Mass Storage Device
+ 6009 Mass Storage Device
+ 600a Mass Storage Device
+ 600b Mass Storage Device
+ 600c Mass Storage Device
+ 600d Mass Storage Device
+ 600e Mass Storage Device
+ 600f Mass Storage Device
+ 6010 Mass Storage Device
+ 6011 Mass Storage Device
+ 6012 Mass Storage Device
+ 6013 Mass Storage Device
+ 6014 Mass Storage Device
+ 6015 Mass Storage Device
+ 6125 MP3 Player
+ 6180 MP3 Player
+ 6200 MP3 Player
+ 7500 Hi-Speed Mass Storage Device
+ 9000 AWL300 Wireless Adapter
+ 9001 AWL400 Wireless Adapter
+ 9213 Kbd Hub
+04a6 Nokia Display Products
+ 00b9 Audio
+ 0180 Hub Type P
+ 0181 HID Monitor Controls
+04a7 Visioneer
+ 0100 StrobePro
+ 0101 Strobe Pro Scanner (1.01)
+ 0102 StrobePro Scanner
+ 0211 OneTouch 7600 Scanner
+ 0221 OneTouch 5300 Scanner
+ 0223 OneTouch 8200
+ 0224 OneTouch 4800 USB/Microtek Scanport 3000
+ 0225 VistaScan Astra 3600(ENG)
+ 0226 OneTouch 5300 USB
+ 0229 OneTouch 7100
+ 022a OneTouch 6600
+ 022c OneTouch 9000/9020
+ 0231 6100 Scanner
+ 0311 6200 EPP/USB Scanner
+ 0321 OneTouch 8100 EPP/USB Scanner
+ 0331 OneTouch 8600 EPP/USB Scanner
+ 0341 6400
+ 0361 VistaScan Astra 3600(ENG)
+ 0362 OneTouch 9320
+ 0371 OneTouch 8700/8920
+ 0380 OneTouch 7700
+ 0382 Photo Port 7700
+ 0390 9650
+ 03a0 Xerox 4800 One Touch
+ 0410 OneTouch Pro 8800/8820
+ 0421 9450 USB
+ 0423 9750 Scanner
+ 0424 Strobe XP 450
+ 0425 Strobe XP 100
+ 0426 Strobe XP 200
+ 0427 Strobe XP 100
+ 0444 OneTouch 7300
+ 0445 CardReader 100
+ 0446 Xerox DocuMate 510
+ 0447 XEROX DocuMate 520
+ 0448 XEROX DocuMate 250
+ 0449 Xerox DocuMate 252
+ 044a Xerox 6400
+ 044c Xerox DocuMate 262
+ 0474 Strobe XP 300
+ 0475 Xerox DocuMate 272
+ 0478 Strobe XP 220
+ 0479 Strobe XP 470
+ 047a 9450
+ 047b 9650
+ 047d 9420
+ 0480 9520
+ 048f Strobe XP 470
+ 0491 Strobe XP 450
+ 0493 9750
+ 0494 Strobe XP 120
+ 0497 Patriot 430
+ 0498 Patriot 680
+ 0499 Patriot 780
+ 049b Strobe XP 100
+ 04a0 7400
+ 04ac Xerox Travel Scanner 100
+04a8 Multivideo Labs, Inc.
+ 0101 Hub
+ 0303 Peripheral Switch
+ 0404 Peripheral Switch
+04a9 Canon, Inc.
+ 1005 BJ Printer Hub
+ 1035 PD Printer Storage
+ 1050 BJC-8200
+ 1051 BJC-3000 Color Printer
+ 1052 BJC-6100
+ 1053 BJC-6200
+ 1054 BJC-6500
+ 1055 BJC-85
+ 1056 BJC-2110 Color Printer
+ 1057 LR1
+ 105a BJC-55
+ 105b S600 Printer
+ 105c S400
+ 105d S450 Printer
+ 105e S800
+ 1062 S500 Printer
+ 1063 S4500
+ 1064 S300 Printer
+ 1065 S100
+ 1066 S630
+ 1067 S900
+ 1068 S9000
+ 1069 S820
+ 106a S200 Printer
+ 106b S520 Printer
+ 106d S750 Printer
+ 106e S820D
+ 1070 S530D
+ 1072 I850 Printer
+ 1073 I550 Printer
+ 1074 S330 Printer
+ 1076 i70
+ 1077 i950
+ 107a S830D
+ 107b i320
+ 107c i470D
+ 107d i9100
+ 107e i450
+ 107f i860
+ 1082 i350
+ 1084 i250
+ 1085 i255
+ 1086 i560
+ 1088 i965
+ 108a i455
+ 108b i900D
+ 108c i475D
+ 108d PIXMA iP2000
+ 108f i80
+ 1090 i9900 Photo Printer
+ 1091 PIXMA iP1500
+ 1093 PIXMA iP4000
+ 1094 PIXMA iP3000x Printer
+ 1095 PIXMA iP6000D
+ 1097 PIXMA iP5000
+ 1098 PIXMA iP1000
+ 1099 PIXMA iP8500
+ 109c PIXMA iP4000R
+ 109d iP90
+ 10a0 PIXMA iP1600 Printer
+ 10a2 iP4200
+ 10a4 iP5200R
+ 10a5 iP5200
+ 10a7 iP6210D
+ 10a8 iP6220D
+ 10a9 iP6600D
+ 10b6 PIXMA iP4300 Printer
+ 10c2 PIXMA iP1800 Printer
+ 10c4 Pixma iP4500 Printer
+ 1404 W6400PG
+ 1405 W8400PG
+ 150f BIJ2350 PCL
+ 1510 BIJ1350 PCL
+ 1512 BIJ1350D PCL
+ 1601 DR-2080C Scanner
+ 1607 DR-6080 Scanner
+ 1700 PIXMA MP110 Scanner
+ 1701 PIXMA MP130 Scanner
+ 1702 MP410 Composite
+ 1703 MP430 Composite
+ 1704 MP330 Composite
+ 1706 PIXMA MP750 Scanner
+ 1707 PIXMA MP780 Scanner
+ 1708 PIXMA MP760 Scanner
+ 1709 PIXMA MP150 Scanner
+ 170a PIXMA MP170 Scanner
+ 170b PIXMA MP450 Scanner
+ 170c PIXMA MP500 Scanner
+ 170d PIXMA MP800 Scanner
+ 170e MP800R
+ 1710 MP950
+ 1712 MP530
+ 1713 PIXMA MP830 Scanner
+ 1714 MP160
+ 1715 MP180 Storage
+ 1716 MP460 Composite
+ 1717 MP510
+ 1718 MP600 Storage
+ 171a MP810 Storage
+ 171b MP960
+ 1721 MP210 ser
+ 1723 MP470 ser
+ 1725 MP610 ser
+ 1726 MP970 ser
+ 1727 MX300 ser
+ 1728 MX310 ser
+ 1729 MX700 ser
+ 172b MP140 ser
+ 173e MP560
+ 173f Pixma MP640 Multifunction device
+ 1748 Pixma MG5150
+ 1900 CanoScan LiDE 90
+ 1901 CanoScan 8800F
+ 1904 CanoScan LiDE 100
+ 1905 CanoScan LiDE 200
+ 1906 CanoScan 5600F
+ 1907 CanoScan LiDE 700F
+ 1909 CanoScan LiDE 110
+ 190a CanoScan LiDE 210
+ 2200 CanoScan LiDE 25
+ 2201 CanoScan FB320U
+ 2202 CanoScan FB620U
+ 2204 CanoScan FB630U
+ 2205 CanoScan FB1210U
+ 2206 CanoScan N650U/N656U
+ 2207 CanoScan 1220U
+ 2208 CanoScan D660U
+ 220a CanoScan D2400UF
+ 220b CanoScan D646U
+ 220c CanoScan D1250U2
+ 220d CanoScan N670U/N676U/LiDE 20
+ 220e CanoScan N1240U/LiDE 30
+ 220f CanoScan 8000F
+ 2210 CanoScan 9900F
+ 2212 CanoScan 5000F
+ 2213 CanoScan LiDE 50/LiDE 35/LiDE 40
+ 2214 CanoScan LiDE 80
+ 2215 CanoScan 3000/3000F/3000ex
+ 2216 CanoScan 3200F
+ 2217 CanoScan 5200F
+ 2219 CanoScan 9950F
+ 221b CanoScan 4200F
+ 221c CanoScan LiDE 60
+ 221e CanoScan 8400F
+ 221f CanoScan LiDE 500F
+ 2220 CanoScan LIDE 25
+ 2224 CanoScan LiDE 600F
+ 2225 CanoScan LiDE 70
+ 2228 CanoScan 4400F
+ 2602 MultiPASS C555
+ 2603 MultiPASS C755
+ 260a CAPT Printer
+ 260e LBP-2000
+ 2610 MPC600F
+ 2611 SmartBase MPC400
+ 2612 MultiPASS C855
+ 2617 CAPT Printer
+ 261a iR1600
+ 261b iR1610
+ 261c iC2300
+ 261f MPC200 Printer
+ 2621 iR2000
+ 2622 iR2010
+ 2623 FAX-B180C
+ 2629 FAXPHONE L75
+ 262b LaserShot LBP-1120 Printer
+ 262d iR C3200
+ 262f MultiPASS MP730
+ 2630 MultiPASS MP700
+ 2631 LASER CLASS 700
+ 2632 FAX-L2000
+ 2635 MPC190
+ 2637 iR C6800
+ 2638 iR C3100
+ 263c Smartbase MP360
+ 263d MP370
+ 263e MP390 FAX
+ 263f MP375
+ 2646 MF5530 Scanner Device V1.9.1
+ 2647 MF5550 Composite
+ 264d PIXMA MP710
+ 264e MF5630
+ 264f MF5650 (FAX)
+ 2650 iR 6800C EUR
+ 2651 iR 3100C EUR
+ 2655 FP-L170/MF350/L380/L398
+ 2659 MF8100
+ 265b CAPT Printer
+ 265c iR C3220
+ 265d MF5730
+ 265e MF5750
+ 265f MF5770
+ 2660 MF3110
+ 2663 iR3570/iR4570
+ 2664 iR2270/iR2870
+ 2665 iR C2620
+ 2666 iR C5800
+ 2667 iR85PLUS
+ 2669 iR105PLUS
+ 266a CAPT Device
+ 266b iR8070
+ 266c iR9070
+ 266d iR 5800C EUR
+ 266e CAPT Device
+ 266f iR2230
+ 2670 iR3530
+ 2671 iR5570/iR6570
+ 2672 iR C3170
+ 2673 iR 3170C EUR
+ 2674 L120
+ 2675 iR2830
+ 2676 CAPT Device
+ 2677 iR C2570
+ 2678 iR 2570C EUR
+ 2679 CAPT Device
+ 267a iR2016
+ 267b iR2020
+ 267d MF7100 series
+ 2684 MF3200 series
+ 2686 MF6500 series
+ 2687 iR4530
+ 2688 LBP3460
+ 268c iR C6870
+ 268d iR 6870C EUR
+ 268e iR C5870
+ 268f iR 5870C EUR
+ 2691 iR7105
+ 26a3 MF4100 series
+ 26b0 MF4600 series
+ 26b4 MF4010 series
+ 26b5 MF4200 series
+ 3041 PowerShot S10
+ 3042 CanoScan FS4000US Film Scanner
+ 3043 PowerShot S20
+ 3044 EOS D30
+ 3045 PowerShot S100
+ 3046 IXY Digital
+ 3047 Digital IXUS
+ 3048 PowerShot G1
+ 3049 PowerShot Pro90 IS
+ 304a CP-10
+ 304b IXY Digital 300
+ 304c PowerShot S300
+ 304d Digital IXUS 300
+ 304e PowerShot A20
+ 304f PowerShot A10
+ 3050 PowerShot unknown 1
+ 3051 PowerShot S110
+ 3052 Digital IXUS V
+ 3055 PowerShot G2
+ 3056 PowerShot S40
+ 3057 PowerShot S30
+ 3058 PowerShot A40
+ 3059 PowerShot A30
+ 305b ZR45MC Digital Camcorder
+ 305c PowerShot unknown 2
+ 3060 EOS D60
+ 3061 PowerShot A100
+ 3062 PowerShot A200
+ 3063 CP-100
+ 3065 PowerShot S200
+ 3066 Digital IXUS 330
+ 3067 MV550i Digital Video Camera
+ 3069 PowerShot G3
+ 306a Digital unknown 3
+ 306b MVX2i Digital Video Camera
+ 306c PowerShot S45
+ 306d PowerShot S45 PtP Mode
+ 306e PowerShot G3 (normal mode)
+ 306f PowerShot G3 (ptp)
+ 3070 PowerShot S230
+ 3071 PowerShot S230 (ptp)
+ 3072 PowerShot SD100 / Digital IXUS II (ptp)
+ 3073 PowerShot A70 (ptp)
+ 3074 PowerShot A60 (ptp)
+ 3075 IXUS 400 Camera
+ 3076 PowerShot A300
+ 3077 PowerShot S50
+ 3078 ZR70MC Digital Camcorder
+ 307a MV650i (normal mode)
+ 307b MV630i Digital Video Camera
+ 307c MV630i (normal mode)
+ 307d CP-300
+ 307f Optura 20
+ 3080 MVX150i (normal mode) / Optura 20 (normal mode)
+ 3081 Optura 10
+ 3082 MVX100i / Optura 10
+ 3083 EOS 10D
+ 3084 EOS 300D / EOS Digital Rebel
+ 3085 PowerShot G5
+ 3087 Elura 50 (PTP mode)
+ 3088 Elura 50 (normal mode)
+ 308d MVX3i
+ 308e FV M1 (normal mode) / MVX 3i (normal mode) / Optura Xi (normal mode)
+ 3093 Optura 300
+ 3096 IXY DV M2 (normal mode) / MVX 10i (normal mode)
+ 3099 EOS 300D (ptp)
+ 309a PowerShot A80
+ 309b Digital IXUS (ptp)
+ 309c PowerShot S1 IS
+ 309d Camera
+ 309f Camera
+ 30a0 Camera
+ 30a1 Camera
+ 30a2 Camera
+ 30a8 Elura 60E/Optura 40 (ptp)
+ 30a9 MVX25i (normal mode) / Optura 40 (normal mode)
+ 30b1 PowerShot S70 (normal mode) / PowerShot S70 (PTP mode)
+ 30b2 PowerShot S60 (normal mode) / PowerShot S60 (PTP mode)
+ 30b3 PowerShot G6 (normal mode) / PowerShot G6 (PTP mode)
+ 30b4 PowerShot S500
+ 30b5 PowerShot A75
+ 30b6 Digital IXUS II2 / Digital IXUS II2 (PTP mode) / PowerShot SD110 (PTP mode) / PowerShot SD110 Digital ELPH
+ 30b7 PowerShot A400 / PowerShot A400 (PTP mode)
+ 30b8 PowerShot A310 / PowerShot A310 (PTP mode)
+ 30b9 Powershot A85
+ 30ba PowerShot S410 Digital Elph
+ 30bb PowerShot A95
+ 30bd CP-220
+ 30be CP-330
+ 30bf Digital IXUS 40
+ 30c0 Digital IXUS 30 (PTP mode) / PowerShot SD200 (PTP mode)
+ 30c1 Digital IXUS 50 (normal mode) / IXY Digital 55 (normal mode) / PowerShot A520 (PTP mode) / PowerShot SD400 (normal mode)
+ 30c2 PowerShot A510 (normal mode) / PowerShot A510 (PTP mode)
+ 30c4 Digital IXUS i5 (normal mode) / IXY Digital L2 (normal mode) / PowerShot SD20 (normal mode)
+ 30ea EOS 1D Mark II (PTP mode)
+ 30eb EOS 20D
+ 30ec EOS 20D (ptp)
+ 30ee EOS 350D
+ 30ef EOS 350D (ptp)
+ 30f0 PowerShot S2 IS (PTP mode)
+ 30f2 Digital IXUS 700 (normal mode) / Digital IXUS 700 (PTP mode) / IXY Digital 600 (normal mode) / PowerShot SD500 (normal mode) / PowerShot SD500 (PTP mode)
+ 30f6 SELPHY CP400
+ 30f8 Powershot A430
+ 30f9 PowerShot A410 (PTP mode)
+ 30fc PowerShot A620 (PTP mode)
+ 30fd PowerShot A610 (normal mode)/PowerShot A610 (PTP mode)
+ 30fe Digital IXUS 65 (PTP mode)/PowerShot SD630 (PTP mode)
+ 30ff Digital IXUS 55 (PTP mode)/PowerShot SD450 (PTP mode)
+ 310b SELPHY CP600
+ 310e Digital IXUS 50 (PTP mode)
+ 3110 EOS Digital Rebel XTi
+ 3116 Digital IXUS 750 (PTP mode)
+ 3117 PowerShot A700
+ 312d Elura 100
+ 3138 PowerShot A710 IS
+ 3147 EOS 1Ds Mark III
+ 3155 PowerShot A450
+ 315a PowerShot G9
+ 315d PowerShot A720
+ 3160 Digital IXUS 860 IS
+ 3175 IXY Digital 25 IS
+ 3176 PowerShot A590
+ 317a Powershot A470
+ 3184 Digital IXUS 80 IS (PTP mode)
+ 319a EOS 7D
+ 31bc PowerShot D10
+ 31c0 PowerShot SX200 IS
+ 31e5 Digital IXUS 200 IS
+ 31ee SELPHY ES40
+ 31f3 PowerShot Digital ELPH SD1400 IS
+ 31ff Digital IXUS 55
+04aa DaeWoo Telecom, Ltd
+04ab Chromatic Research
+04ac Micro Audiometrics Corp.
+04ad Dooin Electronics
+ 2501 Bluetooth Device
+04af Winnov L.P.
+04b0 Nikon Corp.
+ 0102 Coolpix 990
+ 0103 Coolpix 880
+ 0104 Coolpix 995
+ 0106 Coolpix 775
+ 0107 Coolpix 5000
+ 0108 Coolpix 2500
+ 0109 Coolpix 2500 (ptp)
+ 010a Coolpix 4500
+ 010b Coolpix 4500 (ptp)
+ 010d Coolpix 5700 (ptp)
+ 010e Coolpix 4300 (storage)
+ 010f Coolpix 4300 (ptp)
+ 0110 Coolpix 3500 (Sierra Mode)
+ 0111 Coolpix 3500 (ptp)
+ 0112 Coolpix 885 (ptp)
+ 0113 Coolpix 5000 (ptp)
+ 0114 Coolpix 3100 (storage)
+ 0115 Coolpix 3100 (ptp)
+ 0117 Coolpix 2100 (ptp)
+ 0119 Coolpix 5400 (ptp)
+ 011d Coolpix 3700 (ptp)
+ 0121 Coolpix 3200 (ptp)
+ 0122 Coolpix 2200 (ptp)
+ 0124 Coolpix 8400 (mass storage mode)
+ 0125 Coolpix 8400 (ptp)
+ 0126 Coolpix 8800
+ 0129 Coolpix 4800 (ptp)
+ 012c Coolpix 4100 (storage)
+ 012d Coolpix 4100 (ptp)
+ 012e Coolpix 5600 (ptp)
+ 0130 Coolpix 4600 (ptp)
+ 0135 Coolpix 5900 (ptp)
+ 0136 Coolpix 7900 (storage)
+ 0137 Coolpix 7900 (ptp)
+ 013a Coolpix 100 (storage)
+ 013b Coolpix 100 (ptp)
+ 0141 Coolpix P2 (storage)
+ 0142 Coolpix P2 (ptp)
+ 0163 Coolpix P5100 (ptp)
+ 0169 Coolpix P50 (ptp)
+ 0202 Coolpix SQ (ptp)
+ 0203 Coolpix 4200 (mass storage mode)
+ 0204 Coolpix 4200 (ptp)
+ 0205 Coolpix 5200 (storage)
+ 0206 Coolpix 5200 (ptp)
+ 0301 Coolpix 2000 (storage)
+ 0302 Coolpix 2000 (ptp)
+ 0317 Coolpix L20 (ptp)
+ 0402 DSC D100 (ptp)
+ 0403 D2H (mass storage mode)
+ 0404 D2H SLR (ptp)
+ 0405 D70 (mass storage mode)
+ 0406 DSC D70 (ptp)
+ 0408 D2X SLR (ptp)
+ 0409 D50 digital camera
+ 040a D50 (ptp)
+ 040c D2Hs
+ 040e DSC D70s (ptp)
+ 040f D200 (mass storage mode)
+ 0410 D200 (ptp)
+ 0413 D40 (mass storage mode)
+ 0422 D700 (ptp)
+ 0425 D300S
+ 0f03 PD-10 Wireless Printer Adapter
+ 4000 Coolscan LS 40 ED
+ 4001 LS 50 ED/Coolscan V ED
+ 4002 Super Coolscan LS-5000 ED
+04b1 Pan International
+04b3 IBM Corp.
+ 3003 Rapid Access III Keyboard
+ 3004 Media Access Pro Keyboard
+ 300a Rapid Access IIIe Keyboard
+ 3016 UltraNav Keyboard Hub
+ 3018 UltraNav Keyboard
+ 301b SK-8815 Keyboard
+ 301c Enhanced Performance Keyboard
+ 3020 Enhanced Performance Keyboard
+ 3100 NetVista Mouse
+ 3103 ScrollPoint Pro Mouse
+ 3104 ScrollPoint Wireless Mouse
+ 3105 ScrollPoint Optical (HID)
+ 3107 ThinkPad 800dpi Optical Travel Mouse
+ 3108 800dpi Optical Mouse w/ Scroll Point
+ 3109 Optical ScrollPoint Pro Mouse
+ 310b Red Wheel Mouse
+ 310c Wheel Mouse
+ 4427 Portable CD ROM
+ 4482 Serial Converter
+ 4485 Serial Converter
+ 4525 Double sided CRT
+ 4550 NVRAM (128 KB)
+ 4554 Cash Drawer
+ 4580 Hub w/ NVRAM
+ 4581 4800-2xx Hub w/ Cash Drawer
+ 4604 Keyboard w/ Card Reader
+ 4671 4820 LCD w/ MSR/KB
+04b4 Cypress Semiconductor Corp.
+ 0000 Dacal DC-101 CD Library
+ 0001 Mouse
+ 0002 CY7C63x0x Thermometer
+ 0033 Mouse
+ 0100 Cino FuzzyScan F760-B
+ 0101 Keyboard/Hub
+ 0102 Keyboard with APM
+ 0130 MyIRC Remote Receiver
+ 0306 Telephone Receiver
+ 0407 Optical Skype Mouse
+ 0bad MetaGeek Wi-Spy
+ 1002 CY7C63001 R100 FM Radio
+ 1006 Human Interface Device
+ 2050 hub
+ 2830 Opera1 DVB-S (cold state)
+ 4381 SCAPS USC-1 Scanner Controller
+ 4611 Storage Adapter FX2 (CY)
+ 4616 Flash Disk (TPP)
+ 5201 Combi Keyboard-Hub (Hub)
+ 5202 Combi Keyboard-Hub (Keyboard)
+ 5500 HID->COM RS232 Adapter
+ 6370 ViewMate Desktop Mouse CC2201
+ 6560 CY7C65640 USB-2.0 "TetraHub"
+ 6830 CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI
+ 6831 Storage Adapter ISD-300LP (CY)
+ 7417 Wireless PC Lock/Ultra Mouse
+ 8329 USB To keyboard/Mouse Converter
+ 8613 CY7C68013 EZ-USB FX2 USB 2.0 Development Kit
+ 8614 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 861f Anysee E30 USB 2.0 DVB-T Receiver
+ bca1 Barcode Reader
+ cc04 Centor USB RACIA-ALVAR USB PORT
+ cc06 Centor-P RACIA-ALVAR USB PORT
+ d5d5 CY7C63x0x Zoltrix Z-Boxer GamePad
+ de61 Barcode Reader
+ de64 Barcode Reader
+ f000 CY30700 Licorice evaluation board
+ f111 CY8CKIT-002 PSoC MiniProg3 Rev A Program and debug kit
+ f115 PSoC FirstTouch Programmer
+04b5 ROHM LSI Systems USA, LLC
+ 3064 Hantek DSO-3064
+04b6 Hint Corp.
+04b7 Compal Electronics, Inc.
+04b8 Seiko Epson Corp.
+ 0001 Stylus Color 740 / Photo 750
+ 0002 ISD Smart Cable for Mac
+ 0003 ISD Smart Cable
+ 0004 Printer
+ 0005 Printer
+ 0006 Printer
+ 0007 Printer
+ 0101 Perfection 636
+ 0102 GT-2200
+ 0103 Perfection 610
+ 0104 Perfection 1200
+ 0105 StylusScan 2000
+ 0106 Stylus Scan 2500
+ 0107 Expression 1600U
+ 0109 Expression 1640 XL
+ 010a Perfection 1640SU
+ 010b Perfection 1240
+ 010c Perfection 640
+ 010e Perfection 1680
+ 010f Perfection 1250
+ 0110 Perfection 1650
+ 0112 Perfection 2450
+ 0114 Perfection 660
+ 0116 Perfection 3170 (GT-9400)
+ 0118 Perfection 4180 (GF-F600)
+ 0119 Perfection 4490 Photo
+ 011a 1000 ICS
+ 011b Perfection 2400 Photo
+ 011c Perfection 3200
+ 011d Perfection 1260 Photo
+ 011e Perfection 1660 Photo
+ 011f Perfection 1670
+ 0120 Perfection 1270 scanner
+ 0121 Perfection 2480/2580 Photo [GT-F500]
+ 0122 Perfection 3590 scanner
+ 0126 GT-15000 (ES-7000)
+ 0128 Perfection 4870 (GT-X700)
+ 0129 Expression 10000XL (ES-10000G)
+ 012a Perfection 4990 Photo scanner
+ 012b GT-2500 (ES-H300)
+ 012c Perfection V700 Photo (GT-X900)
+ 012d Perfection V10/V100 (GT-S600/F650)
+ 012f Perfection V350 (GT-F700)
+ 0130 Perfection V500 (GT-X770)
+ 0131 Perfection V300
+ 0136 GT-S80 (ES-D400)
+ 0137 GT-S50 (ES-D200)
+ 0202 Receipt Printer M129C
+ 0401 CP 800 Digital Camera
+ 0402 PhotoPC 850z
+ 0403 PhotoPC 3000z
+ 0509 JVC PIX-MC10
+ 0601 Stylus Photo 875DC Card Reader
+ 0602 Stylus Photo 895 Card Reader
+ 0801 Stylus CX5200/CX5400/CX6600
+ 0802 Stylus CX3200
+ 0803 Printer (Composite Device)
+ 0804 Storage Device
+ 0805 Stylus CX6400
+ 0806 Stylus Photo RX600/610
+ 0807 Stylus Photo RX500/510
+ 0808 Stylus CX5200
+ 0809 Storage Device
+ 080a Storage Device
+ 080c ME100
+ 080d Stylus CX4500/4600
+ 080e CX-3500/3600/3650 MFP
+ 080f Stylus Photo RX425 scanner
+ 0810 Stylus Photo RX700 (PM-A900)
+ 0811 Stylus Photo RX620 all-in-one
+ 0812 MFP Composite Device
+ 0813 Stylus CX6500/6600
+ 0814 (PM-A700)
+ 0815 AcuLaser CX11 (LP-A500)
+ 0816 Printer (Composite Device)
+ 0817 (LP-M5500)
+ 0818 Stylus CX3700/CX3800/DX3800
+ 0819 Stylus CX4700/CX4800/DX4800 (PX-A750)
+ 081a Stylus Photo RX520/RX530 (PM-A750)
+ 081b MFP Composite Device
+ 081c Stylus Photo RX640/RX650 (PM-A890)
+ 081d (PM-A950)
+ 081e MFP Composite Device
+ 081f Stylus CX7700/7800
+ 0820 CX4200 MP scanner
+ 0821 MFP Composite Device
+ 0822 Storage Device
+ 0823 MFP Composite Device
+ 0824 Storage Device
+ 0825 MFP Composite Device
+ 0826 Storage Device
+ 0827 Stylus Photo RX560/580/590 (PM-A820)
+ 0828 (PM-A970)
+ 0829 (PM-T990)
+ 082a (PM-A920)
+ 082b Stylus DX5050
+ 082c Storage Device
+ 082d Storage Device
+ 082e 0x082e DX-60x0 MFP scanner
+ 082f Stylus DX4050
+ 0830 Stylus CX2800/CX2900/ME200
+ 0831 MFP Composite Device
+ 0832 MFP Composite Device
+ 0833 (LP-M5600)
+ 0834 MFP Composite Device
+ 0835 AcuLaser CX21
+ 0836 MFP Composite Device
+ 0837 MFP Composite Device
+ 0838 CX7300/CX7400/DX7400
+ 0839 CX8300/CX8400/DX8400
+ 083a CX9300F/CX9400Fax/DX9400F
+ 083b MFP Composite Device
+ 083c MFP Composite Device
+ 083d MFP Composite Device
+ 083e MFP Composite Device
+ 083f Stylus DX4450
+ 0849 Stylus SX205
+ 084d Stylus SX115
+ 0851 Stylus SX410
+ 0856 Stylus SX515W
+ 085c Stylus SX125
+04b9 Rainbow Technologies, Inc.
+ 0300 SafeNet USB SuperPro/UltraPro
+ 1000 iKey 1000 Token
+ 1001 iKey 1200 Token
+ 1002 iKey Token
+ 1003 iKey Token
+ 1004 iKey Token
+ 1005 iKey Token
+ 1006 iKey Token
+ 1200 iKey 2000 Token
+ 1201 iKey Token
+ 1202 iKey 2032 Token
+ 1203 iKey Token
+ 1204 iKey Token
+ 1205 iKey Token
+ 1206 iKey 4000 Token
+ 1300 iKey 3000 Token
+ 1301 iKey 3000
+ 1302 iKey Token
+ 1303 iKey Token
+ 1304 iKey Token
+ 1305 iKey Token
+ 1306 iKey Token
+04ba Toucan Systems, Ltd
+04bb I-O Data Device, Inc.
+ 0101 USB2-IDE/ATAPI Bridge Adapter
+ 0201 USB2-IDE/ATAPI Bridge Adapter
+ 0204 DVD Multi-plus unit iU-CD2
+ 0206 DVD Multi-plus unit DVR-UEH8
+ 0301 Storage Device
+ 0314 USB-SSMRW SD-card
+ 0319 USB2-IDE/ATAPI Bridge Adapter
+ 031a USB2-IDE/ATAPI Bridge Adapter
+ 031b USB2-IDE/ATAPI Bridge Adapter
+ 031e USB-SDRW SD-card
+ 0502 Nogatech Live! (BT)
+ 0528 GV-USB Video Capture
+ 0901 USB ETT
+ 0904 ET/TX Ethernet [pegasus]
+ 0913 ET/TX-S Ethernet [pegasus2]
+ 0919 USB WN-B11
+ 0922 IOData AirPort WN-B11/USBS 802.11b
+ 0930 ETG-US2
+ 0937 WN-WAG/USL Wireless LAN Adapter
+ 0938 WN-G54/USL Wireless LAN Adapter
+ 093b WN-GDN/USB
+ 093f WNGDNUS2 802.11n
+ 0944 WHG-AGDN/US Wireless LAN Adapter
+ 0945 WN-GDN/US3 Wireless LAN Adapter
+ 0947 WN-G150U Wireless LAN Adapter
+ 0948 WN-G300U Wireless LAN Adapter
+ 0a03 Serial USB-RSAQ1
+ 0a07 USB2-iCN Adapter
+ 0a08 USB2-iCN Adapter
+ 0c01 FM-10 Pro Disk
+04bd Toshiba Electronics Taiwan Corp.
+04be Telia Research AB
+04bf TDK Corp.
+ 0100 MediaReader CF
+ 0115 USB-PDC Adapter UPA9664
+ 0116 USB-cdmaOne Adapter UCA1464
+ 0117 USB-PHS Adapter UHA6400
+ 0118 USB-PHS Adapter UPA6400
+ 0135 MediaReader Dual
+ 0202 73S1121F Smart Card Reader-
+ 0309 Bluetooth USB dongle
+ 030a IBM Bluetooth Ultraport Module
+ 030b Bluetooth Device
+ 030c Ultraport Bluetooth Device
+ 0310 Integrated Bluetooth
+ 0311 Integrated Bluetooth Device
+ 0317 Bluetooth UltraPort Module from IBM
+ 0318 IBM Integrated Bluetooth
+ 0319 Bluetooth Adapter
+ 0320 Bluetooth Adapter
+ 0321 Bluetooth Device
+ 0a28 INDI AV-IN Device
+04c1 U.S. Robotics (3Com)
+ 0020 56K Voice Pro
+ 0022 56K Voice Pro
+ 007e ISDN TA
+ 0082 OfficeConnect Analog Modem
+ 008f Pro ISDN TA
+ 0097 OfficeConnect Analog
+ 009d HomeConnect Webcam [vicam]
+ 00a9 ISDN Pro TA-U
+ 00b9 HomeConnect IDSL Modem
+ 3021 56k Voice FaxModem Pro
+04c2 Methode Electronics Far East PTE, Ltd
+04c3 Maxi Switch, Inc.
+ 1102 Mouse
+ 2102 Mouse
+04c4 Lockheed Martin Energy Research
+04c5 Fujitsu, Ltd
+ 1029 fi-4010c Scanner
+ 1033 fi-4110CU
+ 1041 fi-4120c Scanner
+ 1042 fi-4220c Scanner
+ 105b AH-F401U Air H device
+ 1096 fi-5110EOX
+ 1097 fi-5110C
+ 10ae fi-4120C2
+ 10af fi-4220C2
+ 10e0 fi-5120c Scanner
+ 10e1 fi-5220C
+ 10e7 fi-5900C
+ 10fe S500
+04c6 Toshiba America Electronic Components
+04c7 Micro Macro Technologies
+04c8 Konica Corp.
+ 0720 Digital Color Camera
+ 0721 e-miniD Camera
+ 0722 e-mini
+ 0723 KD-200Z Camera
+ 0726 KD-310Z Camera
+ 0728 Revio C2 Mass Storage Device
+ 0729 Revio C2 Digital Camera
+ 072c Revio KD20M
+ 072d Revio KD410Z
+04ca Lite-On Technology Corp.
+ 1766 HID Monitor Controls
+ 9304 Hub
+04cb Fuji Photo Film Co., Ltd
+ 0100 FinePix 30i/40i/50i, A101/201, 1300/2200, 1400/2400/2600/2800/4500/4700/4800/4900/6800/6900 Zoom
+ 0103 FinePix NX-500/NX-700 printer
+ 0104 FinePix A101, 2600/2800/4800/6800 Zoom (PC CAM)
+ 0108 FinePix F601 Zoom (DSC)
+ 0109 FinePix F601 Zoom (PC CAM)
+ 010a FinePix S602 (Pro) Zoom (DSC)
+ 010b FinePix S602 (Pro) Zoom (PC CAM)
+ 010d FinePix Digital Camera 020531
+ 010e FinePix F402 Zoom (DSC)
+ 010f FinePix F402 Zoom (PC CAM)
+ 0110 FinePix M603 Zoom (DSC)
+ 0111 FinePix M603 Zoom (PC CAM)
+ 0112 FinePix A202, A200 Zoom (DSC)
+ 0113 FinePix A202, A200 Zoom (PC CAM)
+ 0114 FinePix F401 Zoom (DSC)
+ 0115 FinePix F401 Zoom (PC CAM)
+ 0116 FinePix A203 Zoom (DSC)
+ 0117 FinePix A203 Zoom (PC CAM)
+ 0118 FinePix A303 Zoom (DSC)
+ 0119 FinePix A303 Zoom (PC CAM)
+ 011a FinePix S304/3800 Zoom (DSC)
+ 011b FinePix S304/3800 Zoom (PC CAM)
+ 011c FinePix A204/2650 Zoom (DSC)
+ 011d FinePix A204/2650 Zoom (PC CAM)
+ 0120 FinePix F700 Zoom (DSC)
+ 0121 FinePix F700 Zoom (PC CAM)
+ 0122 FinePix F410 Zoom (DSC)
+ 0123 FinePix F410 Zoom (PC CAM)
+ 0124 FinePix A310 Zoom (DSC)
+ 0125 FinePix A310 Zoom (PC CAM)
+ 0126 FinePix A210 Zoom (DSC)
+ 0127 FinePix A210 Zoom (PC CAM)
+ 0128 FinePix A205(S) Zoom (DSC)
+ 0129 FinePix A205(S) Zoom (PC CAM)
+ 012a FinePix F610 Zoom (DSC)
+ 012b FinePix Digital Camera 030513
+ 012c FinePix S7000 Zoom (DSC)
+ 012d FinePix S7000 Zoom (PC CAM)
+ 012f FinePix Digital Camera 030731
+ 0130 FinePix S5000 Zoom (DSC)
+ 0131 FinePix S5000 Zoom (PC CAM)
+ 013b FinePix Digital Camera 030722
+ 013c FinePix S3000 Zoom (DSC)
+ 013d FinePix S3000 Zoom (PC CAM)
+ 013e FinePix F420 Zoom (DSC)
+ 013f FinePix F420 Zoom (PC CAM)
+ 0142 FinePix S7000 Zoom (PTP)
+ 0148 FinePix A330 Zoom (DSC)
+ 0149 FinePix A330 Zoom (UVC)
+ 014a FinePix A330 Zoom (PTP)
+ 014b FinePix A340 Zoom (DSC)
+ 014c FinePix A340 Zoom (UVC)
+ 0159 FinePix F710 Zoom (DSC)
+ 0165 FinePix S3500 Zoom (DSC)
+ 0168 FinePix E500 Zoom (DSC)
+ 0169 FinePix E500 Zoom (UVC)
+ 016b FinePix E510 Zoom (DSC)
+ 016c FinePix E510 Zoom (PC CAM)
+ 016e FinePix S5500 Zoom (DSC)
+ 016f FinePix S5500 Zoom (UVC)
+ 0171 FinePix E550 Zoom (DSC)
+ 0172 FinePix E550 Zoom (UVC)
+ 0177 FinePix F10 (DSC)
+ 0179 Finepix F10 (PTP)
+ 0186 FinePix S5200/S5600 Zoom (DSC)
+ 0188 FinePix S5200/S5600 Zoom (PTP)
+ 018e FinePix S9500 Zoom (DSC)
+ 018f FinePix S9500 Zoom (PTP)
+ 0192 FinePix E900 Zoom (DSC)
+ 0193 FinePix E900 Zoom (PTP)
+ 019b FinePix F30 (PTP)
+ 01af FinePix A700 (PTP)
+ 01bf FinePix F6000fd/S6500fd Zoom (PTP)
+ 01c0 FinePix F20 (PTP)
+ 01c1 FinePix F31fd (PTP)
+ 01c4 FinePix S5700 Zoom (PTP)
+ 01c5 FinePix F40fd (PTP)
+ 01c6 FinePix A820 Zoom (PTP)
+ 01d2 FinePix A800 Zoom (PTP)
+ 01d3 FinePix A920 (PTP)
+ 01d4 FinePix F50fd (PTP)
+ 01d5 FinePix F47 (PTP)
+ 01f7 FinePix J250 (PTP)
+ 01fd A160
+ 023e FinePix AX300
+04cc ST-Ericsson
+ 1122 Hub
+ 1520 USB 2.0 Hub (Avocent KVM)
+ 1521 USB 2.0 Hub
+ 1a62 GW Instek GSP-830 Spectrum Analyzer (HID)
+ 2323 Ux500 serial debug port
+ 2533 NFC device (PN533)
+ 8116 Camera
+04cd Tatung Co. Of America
+04ce ScanLogic Corp.
+ 0002 SL11R-IDE IDE Bridge
+ 0100 USB2PRN Printer Class
+ 0300 Phantom 336CX - C3 scanner
+ 04ce SL11DEMO, VID: 0x4ce, PID: 0x4ce
+ 07d1 SL11R, VID: 0x4ce, PID: 0x07D1
+04cf Myson Century, Inc.
+ 0800 MTP800 Mass Storage Device
+ 8810 CS8810 Mass Storage Device
+ 8811 CS8811 Mass Storage Device
+ 8813 CS8813 Mass Storage Device
+ 8818 USB2.0 to ATAPI Bridge Controller
+ 8819 USB 2.0 SD/MMC Reader
+ 9920 CS8819A2-114 Mass Storage Device
+04d0 Digi International
+04d1 ITT Canon
+04d2 Altec Lansing Technologies
+ 0070 ADA70 Speakers
+ 0305 Non-Compliant Audio Device
+ 0311 ADA-310 Speakers
+ 2060 Claritel-i750 - vp
+ ff05 ADA-305 Speakers
+ ff47 Lansing HID Audio Controls
+ ff49 Lansing HID Audio Controls
+04d3 VidUS, Inc.
+04d4 LSI Logic, Inc.
+04d5 Forte Technologies, Inc.
+04d6 Mentor Graphics
+04d7 Oki Semiconductor
+ 1be4 Bluetooth Device
+04d8 Microchip Technology, Inc.
+ 0002 PicoLCD 20x2
+ 0003 PICkit 2 Microcontroller Programmer
+ 000a CDC RS-232 Emulation Demo
+ 000b PIC18F2550 (32K Flashable 10 Channel, 10 Bit A/D USB Microcontroller)
+ 0032 PICkit1
+ 0033 PICkit2
+ 0036 PICkit Serial Analyzer
+ 00e0 PIC32 Starter Board
+ 0a04 AGP LIN Serial Analyzer
+ 8000 In-Circuit Debugger
+ 8001 ICD2 in-circuit debugger
+ 8101 PIC24F Starter Kit
+ 900a PICkit3
+ c001 PicoLCD 20x4
+ fbba DiscFerret Magnetic Disc Analyser (bootloader mode)
+ fbbb DiscFerret Magnetic Disc Analyser (active mode)
+ fc92 Open Bench Logic Sniffer
+ ffef PICoPLC [APStech]
+04d9 Holtek Semiconductor, Inc.
+ 0022 Portable Keyboard
+ 048e Optical Mouse
+ 0499 Optical Mouse
+ 1203 Keyboard
+ 1400 PS/2 keyboard + mouse controller
+ 1503 Shortboard Lefty
+ 1603 Keyboard
+ 2221 Keyboard
+04da Panasonic (Matsushita)
+ 0901 LS-120 Camera
+ 0912 SDR-S10
+ 0b01 CD-R/RW Drive
+ 0b03 SuperDisk 240MB
+ 0d01 CD-R Drive KXL-840AN
+ 0d09 CD-R Drive KXL-RW32AN
+ 0d0a CD-R Drive KXL-CB20AN
+ 0d0d CDRCB03
+ 0d0e DVD-ROM & CD-R/RW
+ 0f40 Printer
+ 1500 MFSUSB Driver
+ 1800 DY-WL10 802.11abgn Adapter [Broadcom BCM4323]
+ 1b00 MultiMediaCard
+ 2121 EB-VS6
+ 2316 DVC Mass Storage Device
+ 2317 DVC USB-SERIAL Driver for WinXP
+ 2318 NV-GS11/230/250 (webcam mode)
+ 2319 NV-GS15 (webcam mode)
+ 231a NV-GS11/230/250 (DV mode)
+ 231d DVC Web Camera Device
+ 231e DVC DV Stream Device
+ 2372 Lumix Camera
+ 2374 DMC-FZ18/FZ20
+ 2451 HDC-SD9
+ 2497 HDC-TM700
+ 250c Gobi Wireless Modem (QDL mode)
+ 250d Gobi Wireless Modem
+ 3904 N5HBZ0000055 802.11abgn Wireless Adapter [Atheros AR7010]
+ 3c04 JT-P100MR-20 [ePassport Reader]
+04db Hypertec Pty, Ltd
+04dc Huan Hsin Holdings, Ltd
+04dd Sharp Corp.
+ 13a6 MFC2000
+ 6006 AL-1216
+ 6007 AL-1045
+ 6008 AL-1255
+ 6009 AL-1530CS
+ 600a AL-1540CS
+ 600b AL-1456
+ 600c AL-1555
+ 600d AL-1225
+ 600e AL-1551CS
+ 600f AR-122E
+ 6010 AR-152E
+ 6011 AR-157E
+ 6012 SN-1045
+ 6013 SN-1255
+ 6014 SN-1456
+ 6015 SN-1555
+ 6016 AR-153E
+ 6017 AR-122E N
+ 6018 AR-153E N
+ 6019 AR-152E N
+ 601a AR-157E N
+ 601b AL-1217
+ 601c AL-1226
+ 601d AR-123E
+ 6021 IS01
+ 7002 DVC Ver.1.0
+ 7004 VE-CG40U Digital Still Camera
+ 7005 VE-CG30 Digital Still Camera
+ 7007 VL-Z7S Digital Camcorder
+ 8004 Zaurus SL-5000D/SL-5500 PDA
+ 8005 Zaurus A-300
+ 8006 Zaurus SL-B500/SL-5600 PDA
+ 8007 Zaurus C-700 PDA
+ 9014 IM-DR80 Portable NetMD Player
+ 9031 Zaurus C-750/C-760/C-860/SL-C3000 PDA
+ 9032 Zaurus SL-6000
+ 903a GSM GPRS
+ 9050 Zaurus C-860 PDA
+ 9056 Viewcam Z
+ 9073 AM-900
+ 9074 GSM GPRS
+ 90a9 Sharp Composite
+ 90d0 USB-to-Serial Comm. Port
+ 90f2 Sharp 3G GSM USB Control
+ 9120 WS004SH
+ 9122 WS007SH
+ 9123 W-ZERO3 ES Smartphone
+ 91a3 922SH Internet Machine
+04de MindShare, Inc.
+04df Interlink Electronics
+04e1 Iiyama North America, Inc.
+ 0201 Monitor Hub
+04e2 Exar Corp.
+04e3 Zilog, Inc.
+04e4 ACC Microelectronics
+04e5 Promise Technology
+04e6 SCM Microsystems, Inc.
+ 0001 E-USB ATA Bridge
+ 0002 eUSCSI SCSI Bridge
+ 0003 eUSB SmartMedia Card Reader
+ 0005 eUSB SmartMedia/CompactFlash Card Reader
+ 0006 eUSB SmartMedia Card Reader
+ 0007 Hifd
+ 0009 eUSB ATA/ATAPI Adapter
+ 000a eUSB CompactFlash Adapter
+ 000b eUSCSI Bridge
+ 000c eUSCSI Bridge
+ 000d Dazzle MS
+ 0012 Dazzle SD/MMC
+ 0101 eUSB ATA Bridge (Sony Spressa USB CDRW)
+ 0311 Dazzle DM-CF
+ 0312 Dazzle DM-SD/MMC
+ 0313 Dazzle SM
+ 0314 Dazzle MS
+ 0322 e-Film Reader-5
+ 0325 eUSB ORCA Quad Reader
+ 0327 Digital Media Reader
+ 03fe DMHS2 DFU Adapter
+ 0406 eUSB SmartDM Reader
+ 04e6 eUSB DFU Adapter
+ 04e7 STCII DFU Adapter
+ 04e8 eUSBDM DFU Adapter
+ 04e9 DM-E DFU Adapter
+ 0500 Veridicom 5thSense Fingerprint Sensor and eUSB SmartCard
+ 0701 DCS200 Loader Device
+ 0702 DVD Creation Station 200
+ 0703 DVC100 Loader Device
+ 0704 Digital Video Creator 100
+ 1001 SCR300 Smart Card Reader
+ 1010 USBAT-2 CompactFlash Card Reader
+ 1014 e-Film Reader-3
+ 1020 USBAT ATA/ATAPI Adapter
+ 2007 RSA SecurID ComboReader
+ 2009 Citibank Smart Card Reader
+ 200a Reflex v.2 Smart Card Reader
+ 200d STR391 Reader
+ 5111 SCR331-DI SmartCard Reader
+ 5113 SCR333 SmartCard Reader
+ 5114 SCR331-DI SmartCard Reader
+ 5115 SCR335 SmartCard Reader
+ 5116 SCR331-LC1 / SCR3310 SmartCard Reader
+ 5117 SCR3320 - Smart Card Reader
+ 5118 Expresscard SIM Card Reader
+ 5119 SCR3340 - ExpressCard54 Smart Card Reader
+ 511b SmartCard Reader
+ 511d SCR3311 Smart Card Reader
+ 5120 SCR331-DI SmartCard Reader
+ 5121 SDI010 Smart Card Reader
+ 5151 SCR338 Keyboard Smart Card Reader
+ 5292 SCL011 RFID reader
+ 5410 SCR35xx Smart Card Reader
+ e000 SCRx31 Reader
+ e001 SCR331 SmartCard Reader
+ e003 SPR532 PinPad SmartCard Reader
+04e7 Elo TouchSystems
+ 0001 TouchScreen
+ 0002 Touchmonitor Interface 2600 Rev 2
+ 0004 4000U CarrollTouch® Touchmonitor Interface
+ 0007 2500U IntelliTouch® Touchmonitor Interface
+ 0008 3000U AccuTouch® Touchmonitor Interface
+ 0009 4000U CarrollTouch® Touchmonitor Interface
+ 0020 Touchscreen Interface (2700)
+ 0021 Touchmonitor Interface
+ 0030 4500U CarrollTouch® Touchmonitor Interface
+ 0032 Touchmonitor Interface
+ 0033 Touchmonitor Interface
+ 0041 5010 Surface Capacitive Touchmonitor Interface
+ 0042 Touchmonitor Interface
+ 0050 2216 AccuTouch® Touchmonitor Interface
+ 0071 Touchmonitor Interface
+ 0072 Touchmonitor Interface
+ 0081 Touchmonitor Interface
+ 0082 Touchmonitor Interface
+ 00ff Touchmonitor Interface
+04e8 Samsung Electronics Co., Ltd
+ 0100 Kingston Flash Drive (128MB)
+ 0110 Connect3D Flash Drive
+ 0111 Connect3D Flash Drive
+ 1003 MP3 Player and Recorder
+ 1006 SDC-200Z
+ 1f06 HX-MU064DA portable harddisk
+ 2018 WIS09ABGN LinkStick Wireless LAN Adapter
+ 2035 Digital Photo Frame Mass Storage
+ 2036 Digital Photo Frame Mini Monitor
+ 3004 ML-4600
+ 3005 Docuprint P1210
+ 3008 ML-6060 laser printer
+ 300c ML-1210 Printer
+ 300e Laser Printer
+ 3104 ML-3550N
+ 3210 ML-5200A Laser Printer
+ 3226 Laser Printer
+ 3228 Laser Printer
+ 322a Laser Printer
+ 322c Laser Printer
+ 3230 ML-1440
+ 3232 Laser Printer
+ 3236 ML-1450
+ 3238 ML-1430
+ 323a ML-1710 Printer
+ 323b Phaser 3130
+ 323c Laser Printer
+ 323d Phaser 3120
+ 323e Laser Printer
+ 3240 Laser Printer
+ 3242 ML-1510 Laser Printer
+ 3248 Color Laser Printer
+ 324a Laser Printer
+ 324c ML-1740 Printer
+ 324d Phaser 3121
+ 3256 ML-1520 Laser Printer
+ 325b Xerox Phaser 3117 Laser Printer
+ 325f Phaser 3425 Laser Printer
+ 3260 CLP-510 Color Laser Printer
+ 3268 ML-1610 Mono Laser Printer
+ 326c ML-2010P Mono Laser Printer
+ 3276 ML-3050/ML-3051 Laser Printer
+ 328e CLP-310 Color Laser Printer
+ 3296 ML-2580N Mono Laser Printer
+ 3297 ML-191x/ML-252x Laser Printer
+ 3409 SCX-4216F Scanner
+ 340c SCX-5x15 series
+ 340d SCX-6x20 series
+ 340e MFP 560 series
+ 340f Printing Support
+ 3412 SCX-4x20 series
+ 3413 SCX-4100 Scanner
+ 3415 Composite Device
+ 3419 Composite Device
+ 341a Printing Support
+ 341b SCX-4200 series
+ 341c Composite Device
+ 341d Composite Device
+ 341f Composite Device
+ 3420 Composite Device
+ 3426 SCX-4500 Laser Printer
+ 3605 InkJet Color Printer
+ 3606 InkJet Color Printer
+ 3609 InkJet Color Printer
+ 3902 InkJet Color Printer
+ 3903 Xerox WorkCentre XK50cx
+ 390f InkJet Color Printer
+ 3911 SCX-1020 series
+ 4005 GT-S8000 Jet (msc)
+ 4f1f GT-S8000 Jet (mtp)
+ 5000 YP-MF series
+ 5001 YP-100
+ 5002 YP-30
+ 5003 YP-700
+ 5004 YP-30
+ 5005 YP-300
+ 5006 YP-750
+ 500d MP3 Player
+ 5010 Yepp YP-35
+ 5011 YP-780
+ 5013 YP-60
+ 5015 yepp upgrade
+ 501b MP3 Player
+ 5021 Yepp YP-ST5
+ 5026 YP-MT6V
+ 5027 YP-T7
+ 502b YP-F1
+ 5032 YP-J70
+ 503b YP-U1 MP3 Player
+ 503d YP-T7F
+ 5041 YP-Z5
+ 5050 YP-U2 MP3 Player
+ 5051 YP-F2R
+ 5055 YP-T9
+ 507d YP-U3 (mtp)
+ 507f YP-T9J
+ 5080 Yepp YP-K3 (msc)
+ 5081 Yepp YP-K3 (mtp)
+ 5082 YP-P2 (msc)
+ 5083 YP-P2 (mtp)
+ 508a YP-T10
+ 508b YP-S5 MP3 Player
+ 508c YP-S5
+ 5090 YP-S3 (msc)
+ 5091 YP-S3 (mtp)
+ 5092 YP-U4 (msc)
+ 5093 YP-U4 (mtp)
+ 5095 YP-S2
+ 510f YP-R1
+ 5119 Yepp YP-P3
+ 511c YP-Q2
+ 5121 YP-U5
+ 5123 Yepp YP-M1
+ 5a00 YP-NEU
+ 5a01 YP-NDU
+ 5a03 Yepp MP3 Player
+ 5a04 YP-800
+ 5a08 YP-90
+ 5a0f Meizu M6 MiniPlayer
+ 5b01 Memory Stick Reader/Writer
+ 5b02 Memory Stick Reader/Writer
+ 5b03 Memory Stick Reader/Writer
+ 5b04 Memory Stick Reader/Writer
+ 5b05 Memory Stick Reader/Writer
+ 5b11 SEW-2001u Card
+ 5f00 NEXiO Sync
+ 5f01 NEXiO Sync
+ 5f02 NEXiO Sync
+ 5f03 NEXiO Sync
+ 5f04 NEXiO Sync
+ 6032 G2 Portable hard drive
+ 6601 Mobile Phone
+ 6602 Galaxy
+ 6603 Galaxy
+ 6611 MITs Sync
+ 6613 MITs Sync
+ 6615 MITs Sync
+ 6617 MITs Sync
+ 6619 MITs Sync
+ 661b MITs Sync
+ 661e Handheld
+ 6620 Handheld
+ 6622 Handheld
+ 6624 Handheld
+ 662e MITs Sync
+ 6630 MITs Sync
+ 6632 MITs Sync
+ 663e D900e Phone
+ 663f SGH-E720/SGH-E840
+ 6640 Usb Modem Enumerator
+ 6702 X830
+ 6708 U600 Phone
+ 6709 U600
+ 6734 Juke
+ 6759 D900e Media Player
+ 675a D900e Mass Storage
+ 675b D900e Camera
+ 6772 Standalone LTE device (Trial)
+ 6795 S5230
+ 6802 Standalone HSPA device
+ 6806 Composite LTE device (Trial)
+ 6807 Composite HSPA device
+ 681c Galaxy Portal/Spica/S
+ 681d Galaxy Portal/Spica Android Phone
+ 684e Wave (GT-S8500)
+ 6875 GT-B3710 Standalone LTE device (Commercial)
+ 6876 GT-B3710 LTE Modem
+ 6877 Galaxy S
+ 6888 GT-B3730 Composite LTE device (Commercial)
+ 6889 GT-B3730 Composite LTE device (Commercial)
+ 689a LTE Storage Driver [CMC2xx]
+ 689e GT-S5670 [Galaxy Fit]
+ 7011 SEW-2003U Card
+ 7021 Bluetooth Device
+ 7061 eHome Infrared Receiver
+ 7080 Anycall SCH-W580
+ 7081 Human Interface Device
+ 8001 Handheld
+ e020 SERI E02 SCOM 6200 UMTS Phone
+ e021 SERI E02 SCOM 6200 Virtual UARTs
+ e022 SERI E02 SCOM 6200 Flash Load Disk
+ ff30 SG_iMON
+04e9 PC-Tel, Inc.
+04ea Brooktree Corp.
+04eb Northstar Systems, Inc.
+ e004 eHome Infrared Transceiver
+04ec Tokyo Electron Device, Ltd
+04ed Annabooks
+04ef Pacific Electronic International, Inc.
+04f0 Daewoo Electronics Co., Ltd
+04f1 Victor Company of Japan, Ltd
+ 0001 GC-QX3 Digital Still Camera
+ 0004 GR-DVL815U Digital Video Camera
+ 0006 DV Camera Storage
+ 0008 GZ-MG30AA/MC500E Digital Video Camera
+ 0009 GR-DX25EK Digital Video Camera
+ 000a GR-D72 Digital Video Camera
+ 1001 GC-A50 Camera Device
+ 3008 MP-PRX1 Ethernet
+ 3009 MP-XP7250 WLAN Adapter
+04f2 Chicony Electronics Co., Ltd
+ 0001 KU-8933 Keyboard
+ 0002 NT68P81 Keyboard
+ 0110 KU-2971 Keyboard
+ 0111 KU-9908 Keyboard
+ 0112 KU-8933 Keyboard with PS/2 Mouse port
+ 0116 KU-2971/KU-0325 Keyboard
+ 0220 Wireless HID Receiver
+ 0402 Genius LuxeMate i200 Keyboard
+ 0403 KU-0420 keyboard
+ 0418 KU-0418 Tactical Pad
+ 0760 Acer KU-0760 Keyboard
+ 0860 2.4G Multimedia Wireless Kit
+ a001 E-Video DC-100 Camera
+ a120 ORITE CCD Webcam(PC370R)
+ a121 ORITE CCD Webcam(PC370R)
+ a122 ORITE CCD Webcam(PC370R)
+ a123 ORITE CCD Webcam(PC370R)
+ a124 ORITE CCD Webcam(PC370R)
+ a128 PC Camera (SN9C202 + OV7663 + EEPROM)
+ a133 Gateway Webcam
+ a136 LabTec Webcam 5500
+ a204 DSC WIA Device (1300)
+ a208 DSC WIA Device (2320)
+ a209 Labtec DC-2320
+ a20a DSC WIA Device (3310)
+ a20c DSC WIA Device (3320)
+ a210 Audio Device
+ b008 USB 2.0 Camera
+ b009 Integrated Camera
+ b010 Integrated Camera
+ b012 1.3 MPixel UVC Webcam
+ b013 USB 2.0 Camera
+ b015 VGA 24fps UVC Webcam
+ b016 VGA 30fps UVC Webcam
+ b018 2M UVC Webcam
+ b021 ViewSonic 1.3M, USB2.0 Webcam
+ b022 Gateway USB 2.0 Webcam
+ b023 Gateway USB 2.0 Webcam
+ b024 USB 2.0 Webcam
+ b025 Camera
+ b027 Gateway USB 2.0 Webcam
+ b028 VGA UVC Webcam
+ b029 1.3M UVC Webcam
+ b036 Asus Integrated 0.3M UVC Webcam
+ b044 Acer CrystalEye Webcam
+ b057 integrated USB webcam
+ b071 2.0M UVC Webcam / CNF7129
+ b091 Webcam
+ b104 CNF7069 Webcam
+ b107 CNF7070 Webcam
+ b14c CNF8050 Webcam
+ b175 4-Port Hub
+ b1aa Webcam-101
+ b1b4 Lenovo Integrated Camera
+ b1cf Lenovo Integrated Camera
+04f3 Elan Microelectronics Corp.
+ 0210 AM-400 Hama Optical Mouse
+ 0212 Laser Mouse
+ 0214 Lynx M9 Optical Mouse
+ 0230 3D Optical Mouse
+ 02f4 2.4G Cordless Mouse
+04f4 Harting Elektronik, Inc.
+04f5 Fujitsu-ICL Systems, Inc.
+04f6 Norand Corp.
+04f7 Newnex Technology Corp.
+04f8 FuturePlus Systems
+04f9 Brother Industries, Ltd
+ 0002 HL-1050 Laser Printer
+ 0005 Printer
+ 0006 HL-1240 Laser Printer
+ 0007 HL-1250 Laser Printer
+ 0008 HL-1270 Laser Printer
+ 0009 Printer
+ 000a P2500 series
+ 000b Printer
+ 000c Printer
+ 000d HL-1440 Laser Printer
+ 000e HL-1450 series
+ 000f HL-1470N series
+ 0010 Printer
+ 0011 Printer
+ 0012 Printer
+ 0013 Printer
+ 0014 Printer
+ 0015 Printer
+ 0016 Printer
+ 0017 Printer
+ 0018 Printer
+ 001a HL-1430 Laser Printer
+ 001c Printer
+ 001e Printer
+ 0020 HL-5130 series
+ 0021 HL-5140 series
+ 0022 HL-5150D series
+ 0023 HL-5170DN series
+ 0024 Printer
+ 0025 Printer
+ 0027 HL-2030 Laser Printer
+ 0028 Printer
+ 0029 Printer
+ 002a HL-52x0 series
+ 002b HL-5250DN Printer
+ 002c Printer
+ 002d Printer
+ 0100 MFC8600/9650 series
+ 0101 MFC9600/9870 series
+ 0102 MFC9750/1200 series
+ 0104 MFC-8300J
+ 0105 MFC-9600J
+ 0106 MFC-7300C
+ 0107 MFC-7400C
+ 0108 MFC-9200C
+ 0109 MFC-830
+ 010a MFC-840
+ 010b MFC-860
+ 010c MFC-7400J
+ 010d MFC-9200J
+ 010e MFC3100C Scanner
+ 010f MFC 5100C
+ 0110 MFC4800 Scanner
+ 0111 MFC 6800
+ 0112 DCP1000 Port(FaxModem)
+ 0113 MFC-8500
+ 0114 MFC9700 Port(FaxModem)
+ 0115 MFC9800 Scanner
+ 0116 DCP1400 Scanner
+ 0119 MFC-9660
+ 011b MFC-9880
+ 011c MFC-9760
+ 011d MFC-9070
+ 011e MFC-9180
+ 011f MFC-9160
+ 0120 MFC580 Port(FaxModem)
+ 0121 MFC-590
+ 0122 MFC-5100J
+ 0129 Imagistics 2500 (MFC-8640D clone)
+ 012f FAX-4750e
+ 0132 MFC-5200C RemovableDisk
+ 0135 MFC-100 Scanner
+ 0136 MFC-150CL Scanner
+ 013c MFC-890 Port
+ 013d MFC-5200J Printer
+ 013e MFC-4420C RemovableDisk
+ 013f MFC-4820C RemovableDisk
+ 0140 DCP-8020
+ 0141 DCP-8025D
+ 0142 MFC-8420
+ 0143 MFC-8820D
+ 0144 DCP-4020C RemovableDisk
+ 0146 MFC-3220C
+ 0147 FAX-1820C Printer
+ 0148 MFC-3320CN Printer
+ 0149 FAX-1920CN Printer
+ 014a MFC-3420C
+ 014b MFC-3820CN
+ 014d FAX-1815C Printer
+ 014e MFC-8820J
+ 0150 MFC-8220 Port(FaxModem)
+ 0151 MFC-8210J
+ 0157 MFC-3420J Printer
+ 0158 MFC-3820JN Port(FaxModem)
+ 015d MFC Composite Device
+ 015e DCP-8045D
+ 015f MFC-8440
+ 0160 MFC-8840D
+ 0161 MFC-210C
+ 0162 MFC-420CN Remote Setup Port
+ 0163 MFC-410CN RemovableDisk
+ 0165 MFC-620CN
+ 0166 MFC-610CLN RemovableDisk
+ 0168 MFC-620CLN
+ 0169 DCP-110C RemovableDisk
+ 016b DCP-310CN RemovableDisk
+ 016c FAX-2440C Printer
+ 016d MFC-5440CN
+ 016e MFC-5840CN Remote Setup Port
+ 0170 FAX-1840C Printer
+ 0171 FAX-1835C Printer
+ 0172 FAX-1940CN Printer
+ 0173 MFC-3240C Remote Setup Port
+ 0174 MFC-3340CN RemovableDisk
+ 017b Imagistics sx2100
+ 0180 MFC-7420
+ 0181 MFC-7820N Port(FaxModem)
+ 0182 Composite Device
+ 0183 DCP-7020
+ 0184 DCP-7025 Printer
+ 0185 MFC-7220 Printer
+ 0186 Composite Device
+ 0187 FAX-2820 Printer
+ 0188 FAX-2920 Printer
+ 018a MFC-9420CN
+ 018c DCP-115C
+ 018d DCP-116C
+ 018e DCP-117C
+ 018f DCP-118C
+ 0190 DCP-120C
+ 0191 DCP-315CN
+ 0192 DCP-340CW
+ 0193 MFC-215C
+ 0194 MFC-425CN
+ 0195 MFC-820CW Remote Setup Port
+ 0196 MFC-820CN Remote Setup Port
+ 0197 MFC-640CW
+ 019a MFC-840CLN Remote Setup Port
+ 01a2 MFC-8640D
+ 01a3 Composite Device
+ 01a4 DCP-8065DN Printer
+ 01a5 MFC-8460N Port(FaxModem)
+ 01a6 MFC-8860DN Port(FaxModem)
+ 01a7 MFC-8870DW Printer
+ 01a8 DCP-130C
+ 01a9 DCP-330C
+ 01aa DCP-540CN
+ 01ab MFC-240C
+ 01ae DCP-750CW RemovableDisk
+ 01af MFC-440CN
+ 01b0 MFC-660CN
+ 01b1 MFC-665CW Remote Setup Port
+ 01b2 MFC-845CW Remote Setup Port
+ 01b4 MFC-460CN Remote Setup Port
+ 01b5 MFC-630CD
+ 01b6 MFC-850CDN
+ 01b7 MFC-5460CN Remote Setup Port
+ 01b8 MFC-5860CN
+ 01ba MFC-3360C
+ 01bd MFC-8660DN
+ 01be DCP-750CN RemovableDisk
+ 01bf MFC-860CDN Remote Setup Port
+ 01c0 DCP-128C
+ 01c1 DCP-129C
+ 01c2 DCP-131C
+ 01c3 DCP-329C
+ 01c4 DCP-331C
+ 01c5 MFC-239C
+ 01ca MFC-9440CN Remote Setup Port
+ 01ce DCP-135C
+ 01cf DCP-150C
+ 01d0 DCP-350C
+ 01d1 DCP-560CN
+ 01d4 MFC-230C
+ 01d5 MFC-235C
+ 01d6 MFC-260C
+ 01df DCP-155C
+ 01e0 MFC-265C
+ 01e1 DCP-153C
+ 01e2 DCP-157C
+ 01e3 DCP-353C
+ 01e4 DCP-357C
+ 01e7 MFC-7340
+ 01e9 DCP-7040
+ 01ea DCP-7030
+ 01eb MFC-7320
+ 01f4 MFC-5890CN
+ 1000 Printer
+ 1002 Printer
+ 2002 PTUSB Printing
+ 2004 PT-2300/2310 p-Touch Laber Printer
+ 2015 QL-500 P-touch label printer
+ 2016 QL-550 P-touch label printer
+ 201a PT-18R P-touch label printer
+ 2027 QL-560 P-Touch Label Printer
+ 2100 Card Reader Writer
+04fa Dallas Semiconductor
+ 2490 DS1490F 2-in-1 Fob, 1-Wire adapter
+ 4201 DS4201 Audio DAC
+04fb Biostar Microtech International Corp.
+04fc Sunplus Technology Co., Ltd
+ 0003 CM1092 Optical Scroller Mouse
+ 0005 USB OpticalWheel Mouse
+ 0013 ViewMate Desktop Mouse CC2201
+ 0015 ViewMate Desktop Mouse CC2201
+ 00d3 00052486 / Laser Mouse M1052 [hama]
+ 0171 SPCA1527A/SPCA1528 SD card camera (Mass Storage mode)
+ 0232 Fingerprint
+ 0538 Wireless Optical Mouse 2.4G [Bright]
+ 0561 Flexcam 100
+ 05d8 Wireless keyboard/mouse
+ 0c15 SPIF215A SATA bridge
+ 0c25 SATALink SPIF225A
+ 1528 SPCA1527A/SPCA1528 SD card camera (webcam mode)
+ 1533 Mass Storage
+ 2080 ASUS Webcam
+ 500c CA500C Digital Camera
+ 504a Aiptek Mini PenCam 1.3
+ 504b Aiptek Mega PockerCam 1.3/Maxell MaxPocket LE 1.3
+ 5330 Digitrex 2110
+ 5331 Vivitar Vivicam 10
+ 5360 Sunplus Generic Digital Camera
+ 5720 Card Reader Driver
+ 7333 Finet Technology Palmpix DC-85
+ 757a Aiptek, MP315 MP3 Player
+ ffff PureDigital Ritz Disposable
+04fd Soliton Systems, K.K.
+ 0003 Smart Card Reader II
+04fe PFU, Ltd
+04ff E-CMOS Corp.
+0500 Siam United Hi-Tech
+ 0001 DART Keyboard Mouse
+ 0002 DART-2 Keyboard
+0501 Fujikura DDK, Ltd
+0502 Acer, Inc.
+ 0001 Handheld
+ 0736 Handheld
+ 15b1 PDA n311
+ 1631 c10 Series
+ 1632 c20 Series
+ 16e1 n10 Handheld Sync
+ 16e2 n20 Pocket PC Sync
+ 16e3 n30 Handheld Sync
+ 3202 Liquid
+ 3203 Liquid (Debug mode)
+ 3341 Iconia tablet A500
+ d001 Divio NW801/DVC-V6+ Digital Camera
+0503 Hitachi America, Ltd
+0504 Hayes Microcomputer Products
+0506 3Com Corp.
+ 009d HomeConnect Camera
+ 00a0 3CREB96 Bluetooth Adapter
+ 00a1 Bluetooth Device
+ 00a2 Bluetooth Device
+ 00df 3Com Home Connect lite
+ 0100 HomeConnect ADSL Modem Driver
+ 03e8 3C19250 Ethernet [klsi]
+ 0a01 3CRSHEW696 Wireless Adapter
+ 0a11 3CRWE254G72 802.11g Adapter
+ 11f8 HomeConnect 3C460
+ 2922 HomeConnect Cable Modem External with
+ 3021 U.S.Robotics 56000 Voice FaxModem Pro
+ 4601 3C460B 10/100 Ethernet Adapter
+ f002 3CP4218 ADSL Modem (pre-init)
+ f003 3CP4218 ADSL Modem
+ f100 3CP4218 ADSL Modem (pre-init)
+0507 Hosiden Corp.
+ 0011 Konami ParaParaParadise Controller
+0508 Clarion Co., Ltd
+0509 Aztech Systems, Ltd
+ 0801 ADSL Modem
+ 0802 ADSL Modem (RFC1483)
+ 0806 DSL Modem
+ 080f Binatone ADSL500 Modem Network Interface
+ 0812 Pirelli ADSL Modem Network Interface
+050a Cinch Connectors
+050b Cable System International
+050c InnoMedia, Inc.
+050d Belkin Components
+ 0004 Direct Connect
+ 0012 F8T012 Bluetooth Adapter
+ 0013 F8T013 Bluetooth Adapter
+ 0017 B8T017 Bluetooth+EDR 2.1
+ 003a Universal Media Reader
+ 0050 F5D6050 802.11b Wireless Adapter v2000 [Atmel at76c503a]
+ 0081 F8T001v2 Bluetooth
+ 0083 Bluetooth Device
+ 0084 F8T003v2 Bluetooth
+ 0102 Flip KVM
+ 0103 F5U103 Serial Adapter [etek]
+ 0106 VideoBus II Adapter, Video
+ 0108 F1DE108B KVM
+ 0109 F5U109/F5U409 PDA Adapter
+ 0115 SCSI Adapter
+ 0119 F5U120-PC Dual PS/2 Ports / F5U118-UNV ADB Adapter
+ 0121 F5D5050 100Mbps Ethernet
+ 0122 Ethernet Adapter
+ 0131 Bluetooth Device with trace filter
+ 016a Bluetooth Mini Dongle
+ 0201 Peripheral Switch
+ 0208 USBView II Video Adapter [nt1004]
+ 0210 F5U228 Hi-Speed USB 2.0 DVD Creator
+ 0211 F5U211 USB 2.0 15-in-1 Media Reader & Writer
+ 0224 F5U224 USB 2.0 4-Port Hub
+ 0234 F5U234 USB 2.0 4-Port Hub
+ 0237 F5U237 USB 2.0 7-Port Hub
+ 0240 F5U240 USB 2.0 CF Card Reader
+ 0249 USB 2 Flash Media Device
+ 0257 F5U257 Serial
+ 0304 FSU304 USB 2.0 - 4 Ports Hub
+ 0409 F5U409 Serial
+ 0551 F6C550-AVR UPS
+ 0706 2-N-1 USB 2.0 7-Port Hub (Lower half)
+ 0802 Nostromo n40 Gamepad
+ 0803 Nostromo 1745 GamePad
+ 0805 Nostromo N50 GamePad
+ 0815 Nostromo n52 HID SpeedPad Mouse Wheel
+ 0826 ErgoFit Wireless Optical Mouse (HID)
+ 0980 HID UPS Battery
+ 1102 F7D1102 N150/Surf Micro Wireless Adapter v1000 [Realtek RTL8188CE-VAU]
+ 1202 F5U120-PC Parallel Printer Port
+ 1203 F5U120-PC Serial Port
+ 2103 F7D2102 802.11n N300 Micro Wireless Adapter v3000 [Realtek RTL8192CU]
+ 258a F5U258 Host to Host cable
+ 3101 F1DF102U/F1DG102U Flip Hub
+ 3201 F1DF102U/F1DG102U Flip KVM
+ 4050 ZD1211B
+ 5055 F5D5055 Gigabit Network Adapter [AX88xxx]
+ 6051 F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201]
+ 615a F7D4101 / F9L1101 802.11abgn Wireless Adapter [Broadcom BCM4323]
+ 7050 F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887]
+ 7051 F5D7051 802.11g Adapter v1000 [Broadcom 4320 USB]
+ 705a F5D7050 Wireless G Adapter v3000 [Ralink RT2571W]
+ 705b Wireless G Adapter
+ 705c F5D7050 Wireless G Adapter v4000 [Zydas ZD1211B]
+ 705e F5D7050 Wireless G Adapter v5000 [Realtek RTL8187B]
+ 706a 2-N-1 USB 2.0 7-Port Hub (Lower half)
+ 8053 F5D8053 N Wireless USB Adapter v1000/v4000 [Ralink RT2870]
+ 805c F5D8053 N Wireless Adapter v3000 [Ralink RT2870]
+ 805e F5D8053 N Wireless USB Adapter v5000 [Realtek RTL8192U]
+ 815c F5D8053 N Wireless USB Adapter v3000 [Ralink RT2870]
+ 815f F5D8053 N Wireless USB Adapter v6000 [Realtek RTL8192SU]
+ 825a F5D8055 N+ Wireless Adapter v1000 [Ralink RT2870]
+ 825b F5D8055 N+ Wireless Adapter v2000 [Ralink RT3070]
+ 845a F7D2101 802.11n Surf & Share Wireless Adapter v1000 [Realtek RTL8192SU]
+ 905b F5D9050 Wireless G+ MIMO Network Adapter v3000 [Ralink RT2573]
+ 905c F5D9050 Wireless G+ MIMO Network Adapter v4000 [Ralink RT2573]
+ 935a F6D4050 N150 Enhanced Wireless Network Adapter v1000 [Ralink RT2870]
+ 935b F6D4050 N150 Enhanced Wireless Network Adapter v2000 [Ralink RT3070]
+ 945a F7D1101 Basic Wireless USB Adapter v1000 [Realtek RTL8188SU]
+050e Neon Technology, Inc.
+050f KC Technology, Inc.
+ 0001 Hub
+ 0003 KC82C160S Hub
+ 0180 KC-180 IrDA Dongle
+ 0190 KC2190 USB Host-to-Host cable
+0510 Sejin Electron, Inc.
+ 0001 Keyboard
+ 1000 Keyboard with PS/2 Mouse Port
+ e001 Mouse
+0511 N'Able (DataBook) Technologies, Inc.
+0512 Hualon Microelectronics Corp.
+0513 digital-X, Inc.
+0514 FCI Electronics
+0515 ACTC
+0516 Longwell Electronics
+0517 Butterfly Communications
+0518 EzKEY Corp.
+ 0001 USB to PS2 Adaptor v1.09
+ 0002 EZ-9900C Keyboard
+0519 Star Micronics Co., Ltd
+ 0003 TSP100ECO/TSP100II
+ c002 Xlive Bluetooth XBM-100S MP3 Player
+051a WYSE Technology
+ a005 Smart Display Version 9973
+051b Silicon Graphics
+051c Shuttle, Inc.
+ 0005 VFD Module
+ c001 eHome Infrared Receiver
+ c002 eHome Infrared Receiver
+051d American Power Conversion
+ 0001 UPS
+ 0002 Uninterruptible Power Supply
+ 0003 UPS
+051e Scientific Atlanta, Inc.
+051f IO Systems (Elite Electronics), Inc.
+0520 Taiwan Semiconductor Manufacturing Co.
+0521 Airborn Connectors
+0522 Advanced Connectek, Inc.
+0523 ATEN GmbH
+0524 Sola Electronics
+0525 Netchip Technology, Inc.
+ 100d RFMD Bluetooth Device
+ 1080 NET1080 USB-USB Bridge
+ 1265 File-backed Storage Gadget
+ a140 USB Clik! 40
+ a141 (OME) PocketZip 40 MP3 Player Driver
+ a220 GVC Bluetooth Wireless Adapter
+ a4a0 Linux-USB "Gadget Zero"
+ a4a1 Linux-USB Ethernet Gadget
+ a4a2 Linux-USB Ethernet/RNDIS Gadget
+ a4a3 Linux-USB user-mode isochronous source/sink
+ a4a4 Linux-USB user-mode bulk source/sink
+ a4a5 Linux-USB File Storage Gadget
+ a4a6 Linux-USB Serial Gadget
+ a4a7 Linux-USB Serial Gadget (CDC ACM mode)
+ a4a8 Linux-USB Printer Gadget
+ a4a9 Linux-USB OBEX Gadget
+ a4aa Linux-USB CDC Composite Gadge (Ethernet and ACM)
+0526 Temic MHS S.A.
+0527 ALTRA
+0528 ATI Technologies, Inc.
+ 7561 TV Wonder
+ 7562 TV Wonder, Edition (FN5)
+ 7563 TV Wonder, Edition (FI)
+ 7564 TV Wonder, Edition (FQ)
+ 7565 TV Wonder, Edition (NTSC+)
+ 7566 TV Wonder, Edition (FN5)
+ 7567 TV Wonder, Edition (FI)
+ 7568 TV Wonder, Edition (FQ)
+ 7569 Live! Pro (A)
+ 756a Live! Pro Audio (O)
+0529 Aladdin Knowledge Systems
+ 0001 HASP v0.06
+ 030b eToken R1 v3.1.3.x
+ 0313 eToken R1 v3.2.3.x
+ 031b eToken R1 v3.3.3.x
+ 0323 eToken R1 v3.4.3.x
+ 0412 eToken R2 v2.2.4.x
+ 041a eToken R2 v2.2.4.x
+ 0422 eToken R2 v2.4.4.x
+ 042a eToken R2 v2.5.4.x
+ 050c eToken Pro v4.1.5.x
+ 0514 eToken Pro v4.2.5.4
+ 0600 eToken Pro 64k (4.2)
+052a Crescent Heart Software
+052b Tekom Technologies, Inc.
+ 0102 Ca508A HP1020 Camera v.1.3.1.6
+ 0801 Yakumo MegaImage 37
+ 1512 Yakumo MegaImage IV
+ 1513 Aosta CX100 Webcam
+ 1514 Aosta CX100 Webcam Storage
+ 1905 Yakumo MegaImage 47
+ 1911 Yakumo MegaImage 47 SL
+ 2202 WDM Still Image Capture
+ 2203 Sound Vision Stream Driver
+ 3a06 DigiLife DDV-5120A
+ d001 P35U Camera Capture
+052c Canon Information Systems, Inc.
+052d Avid Electronics Corp.
+052e Standard Microsystems Corp.
+052f Unicore Software, Inc.
+0530 American Microsystems, Inc.
+0531 Wacom Technology Corp.
+0532 Systech Corp.
+0533 Alcatel Mobile Phones
+0534 Motorola, Inc.
+0535 LIH TZU Electric Co., Ltd
+0536 Hand Held Products (Welch Allyn, Inc.)
+ 01a0 PDT
+0537 Inventec Corp.
+0538 Caldera International, Inc. (SCO)
+0539 Shyh Shiun Terminals Co., Ltd
+053a PrehKeyTec GmbH
+ 0b00 Hub
+053b Global Village Communication
+053c Institut of Microelectronic & Mechatronic Systems
+053d Silicon Architect
+053e Mobility Electronics
+053f Synopsys, Inc.
+0540 UniAccess AB
+ 0101 Panache Surf ISDN TA
+0541 Sirf Technology, Inc.
+0543 ViewSonic Corp.
+ 00fe G773 Monitor Hub
+ 00ff P815 Monitor Hub
+ 0bf2 airpanel V150 Wireless Smart Display
+ 0bf3 airpanel V110 Wireless Smart Display
+ 0ed9 Color Pocket PC V35
+ 0f01 airsync Wi-Fi Wireless Adapter
+ 1527 Color Pocket PC V36
+ 1529 Color Pocket PC V37
+ 152b Color Pocket PC V38
+ 152e Pocket PC
+ 1921 Communicator Pocket PC
+ 1922 Smartphone
+ 1923 Pocket PC V30
+ 1a11 Wireless 802.11g Adapter
+ 1e60 TA310 - ATSC/NTSC/PAL Driver(PCM4)
+ 4153 ViewSonic G773 Control (?)
+0544 Cristie Electronics, Ltd
+0545 Xirlink, Inc.
+ 7333 Trution Web Camera
+ 8002 IBM NetCamera
+ 8009 Veo PC Camera
+ 800c Veo Stingray
+ 800d Veo PC Camera
+ 8080 IBM C-It Webcam
+ 808a Veo PC Camera
+ 808b Veo Stingray
+ 808d Veo PC Camera
+ 810a Veo Advanced Connect Webcam
+ 810b Veo PC Camera
+ 810c Veo PC Camera
+ 8135 Veo Mobile/Advanced Web Camera
+ 813a Veo PC Camera
+ 813b Veo PC Camera
+ 813c Veo Mobile/Advanced Web Camera
+ 8333 Veo Stingray/Connect Web Camera
+ 888c eVision 123 digital camera
+ 888d eVision 123 digital camera
+0546 Polaroid Corp.
+ 0daf PDC 2300Z
+ 1bed PDC 1320 Camera
+ 3097 PDC 310
+ 3155 PDC 3070 Camera
+ 3187 Digital Camera
+ 3191 Ion 80 Camera
+ 3273 PDC 2030 Camera
+ 3304 a500 Digital Camera
+ dccf Sound Vision Stream Driver
+0547 Anchor Chips, Inc.
+ 0001 ICSI Bluetooth Device
+ 1002 Python2 WDM Encoder
+ 2131 AN2131 EZUSB Microcontroller
+ 2235 AN2235 EZUSB-FX Microcontroller
+ 2710 EZ-Link Loader (EZLNKLDR.SYS)
+ 2720 AN2720 USB-USB Bridge
+ 2727 Xircom PGUNET USB-USB Bridge
+ 2750 EZ-Link (EZLNKUSB.SYS)
+ 2810 Cypress ATAPI Bridge
+ 7777 Bluetooth Device
+ 9999 AN2131 uninitialized (?)
+0548 Tyan Computer Corp.
+ 1005 EZ Cart II GameBoy Flash Programmer
+0549 Pixera Corp.
+054a Fujitsu Microelectronics, Inc.
+054b New Media Corp.
+054c Sony Corp.
+ 0001 HUB
+ 0002 Standard HUB
+ 0010 DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera
+ 0014 Nogatech USBVision (SY)
+ 0022 Storage Adapter V2 (TPP)
+ 0023 CD Writer
+ 0024 Mavica CD-1000 Camera
+ 0025 NW-MS7 Walkman MemoryStick Reader
+ 002b Portable USB Harddrive V2
+ 002c USB Floppy Disk Drive
+ 002d MSAC-US1 MemoryStick Reader
+ 002e Sony HandyCam MemoryStick Reader
+ 0030 Storage Adapter V2 (TPP)
+ 0032 MemoryStick MSC-U01 Reader
+ 0035 Network Walkman (E)
+ 0036 Net MD
+ 0037 MG Memory Stick Reader/Writer
+ 0038 Clie PEG-S300/D PalmOS PDA
+ 0039 Network Walkman (MS)
+ 003c VAIO-MX LCD Control
+ 0045 Digital Imaging Video
+ 0046 Network Walkman
+ 004a Memory Stick Hi-Fi System
+ 004b Memory Stick Reader/Writer
+ 004e DSC-xxx (ptp)
+ 0056 MG Memory Stick Reader/Writer
+ 0058 Clie PEG-N7x0C PalmOS PDA Mass Storage
+ 0066 Clie PEG-N7x0C/PEG-T425 PalmOS PDA Serial
+ 0067 CMR-PC3 Webcam
+ 0069 Memorystick MSC-U03 Reader
+ 006c FeliCa S310 [PaSoRi]
+ 006d Clie PEG-T425 PDA Mass Storage
+ 006f Network Walkman (EV)
+ 0073 Storage CRX1750U
+ 0075 Net MD
+ 0076 Storage Adapter ACR-U20
+ 007c Net MD
+ 007f IC Recorder (MS)
+ 0080 Net MD
+ 0081 Net MD
+ 0084 Net MD
+ 0085 Net MD
+ 0086 Net MD
+ 008b Micro Vault 64M Mass Storage
+ 0095 Sony Clie s360
+ 0099 Clie NR70 PDA Mass Storage
+ 009a Clie NR70 PDA Serial
+ 00ab Visual Communication Camera (PCGA-UVC10)
+ 00af DPP-EX Series Digital Photo Printer
+ 00bf IC Recorder (S)
+ 00c0 Handycam DCR-30
+ 00c6 Net MD
+ 00c7 Net MD
+ 00c8 MZ-N710 Minidisc Walkman
+ 00c9 Net MD
+ 00ca MZ-DN430 Minidisc Walkman
+ 00cb MSAC-US20 Memory Stick Reader
+ 00da Sony Clie nx60
+ 00e8 Network Walkman (MS)
+ 00e9 Handheld
+ 00eb Net MD
+ 0101 Net MD
+ 0103 IC Recorder (ST)
+ 0105 Micro Vault Hub
+ 0107 VCC-U01 Visual Communication Camera
+ 0110 Digital Imaging Video
+ 0113 Net MD
+ 0116 IC Recorder (P)
+ 0144 Clie PEG-TH55 PDA
+ 0147 Visual Communication Camera (PCGA-UVC11)
+ 014c Aiwa AM-NX9 Net MD Music Recorder MDLP
+ 014d Memory Stick Reader/Writer
+ 0154 Eyetoy Audio Device
+ 015f IC Recorder (BM)
+ 0169 Clie PEG-TJ35 PDA Serial
+ 016a Clie PEG-TJ35 PDA Mass Storage
+ 016b Mobile HDD
+ 016d IC Recorder (SX)
+ 016e DPP-EX50 Digital Photo Printer
+ 0171 Fingerprint Sensor 3500
+ 017e Net MD
+ 017f Hi-MD WALKMAN
+ 0180 Net MD
+ 0181 Hi-MD WALKMAN
+ 0182 Net MD
+ 0183 Hi-MD WALKMAN
+ 0184 Net MD
+ 0185 Hi-MD WALKMAN
+ 0186 Net MD
+ 0187 Hi-MD MZ-NH600 WALKMAN
+ 0188 Net MD
+ 018a Net MD
+ 018b Hi-MD SOUND GATE
+ 019e Micro Vault 1.0G Mass Storage
+ 01ad ATRAC HDD PA
+ 01bb FeliCa S320 [PaSoRi]
+ 01bd MRW62E Multi-Card Reader/Writer
+ 01c3 NW-E55 Network Walkman
+ 01c6 MEMORY P-AUDIO
+ 01c7 Printing Support
+ 01c8 PSP Type A
+ 01c9 PSP Type B
+ 01d0 DVD+RW External Drive DRU-700A
+ 01d5 IC RECORDER
+ 01de VRD-VC10 [Video Capture]
+ 01e9 Net MD
+ 01ea Hi-MD WALKMAN
+ 01ee IC RECORDER
+ 01fa Sony IC Recorder (P)
+ 01fb NW-E405 Network Walkman
+ 020f Device
+ 0210 ATRAC HDD PA
+ 0219 Net MD
+ 021a Hi-MD WALKMAN
+ 021b Net MD
+ 021c Hi-MD WALKMAN
+ 021d Net MD
+ 0227 Printing Support
+ 022c Net MD
+ 022d Hi-MD AUDIO
+ 0233 ATRAC HDD PA
+ 0236 Mobile HDD
+ 023b DVD+RW External Drive DRU-800UL
+ 023c Net MD
+ 023d Hi-MD WALKMAN
+ 0243 MicroVault Flash Drive
+ 024b Vaio VGX Mouse
+ 0257 IFU-WLM2 USB Wireless LAN Module (Wireless Mode)
+ 0258 IFU-WLM2 USB Wireless LAN Module (Memory Mode)
+ 0259 IC RECORDER
+ 0267 Tachikoma Device
+ 0268 Batoh Device / PlayStation 3 Controller
+ 0269 HDD WALKMAN
+ 026a HDD WALKMAN
+ 0271 IC Recorder (P)
+ 027c NETWORK WALKMAN
+ 027e SONY Communicator
+ 027f IC RECORDER
+ 0286 Net MD
+ 0287 Hi-MD WALKMAN
+ 0290 VGP-UVC100 Visual Communication Camera
+ 029b PRS-500 eBook reader
+ 02a5 MicroVault Flash Drive
+ 02af Handycam DCR-DVD306E
+ 02c4 Device
+ 02d1 DVD RW
+ 02d2 PSP Slim
+ 02e1 FeliCa S330 [PaSoRi]
+ 02ea PlayStation 3 Memory Card Adaptor
+ 02f9 DSC-H9
+ 0317 WALKMAN
+ 031a Walkman NWD-B103F
+ 031e PRS-300/PRS-505 eBook reader
+ 033e DSC-W120
+ 0346 Handycam DCR-SR55E
+ 0348 HandyCam HDR-TG3E
+ 0382 Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1)
+ 03bc Webbie HD - MHS-CM1
+ 03d3 DR-BT100CX
+ 03d5 PlayStation Move motion controller
+ 03fc WALKMAN [NWZ-E345]
+ 03fd Walkman NWZ-E443
+ 0440 DSC-H55
+ 0485 MHS-PM5 HD camcorder
+ 04cb WALKMAN NWZ-E354
+ 1000 Wireless Buzz! Receiver
+054d Try Corp.
+054e Proside Corp.
+054f WYSE Technology Taiwan
+0550 Fuji Xerox Co., Ltd
+ 0002 InkJet Color Printer
+ 0004 InkJet Color Printer
+ 0005 InkJet Color Printer
+0551 CompuTrend Systems, Inc.
+0552 Philips Monitors
+0553 STMicroelectronics Imaging Division (VLSI Vision)
+ 0001 TerraCAM
+ 0002 CPiA Webcam
+ 0100 STV0672 Camera
+ 0140 Video Camera
+ 0150 CDE CAM 100
+ 0151 Digital Blue QX5 Microscope
+ 0200 Dual-mode Camera0
+ 0201 Dual-mode Camera1
+ 0202 Aiptek PenCam 1
+ 0674 Multi-mode Camera
+ 0679 NMS Video Camera (Webcam)
+ 1002 Che-ez! Splash
+0554 Dictaphone Corp.
+0555 ANAM S&T Co., Ltd
+0556 Asahi Kasei Microsystems Co., Ltd
+ 0001 AK5370 I/F A/D Converter
+0557 ATEN International Co., Ltd
+ 2001 UC-1284 Printer Port
+ 2002 10Mbps Ethernet [klsi]
+ 2004 UC-100KM PS/2 Mouse and Keyboard adapter
+ 2006 UC-1284B Printer Port
+ 2007 UC-110T 100Mbps Ethernet [pegasus]
+ 2008 UC-232A Serial Port [pl2303]
+ 2009 UC-210T Ethernet
+ 2011 UC-2324 4xSerial Ports [mos7840]
+ 2202 CS124U Miniview II KVM Switch
+ 2213 CS682 2-Port USB 2.0 DVI KVM Switch
+ 2404 4-port switch
+ 2600 IDE Bridge
+ 2701 CE700A KVM Extender
+ 4000 DSB-650 10Mbps Ethernet [klsi]
+ 7000 Hub
+ 7820 UC-2322 2xSerial Ports [mos7820]
+0558 Truevision, Inc.
+ 1009 GW Instek GDS-1000 Oscilloscope
+ 100a GW Instek GDS-1000A Oscilloscope
+ 2009 GW Instek GDS-2000 Oscilloscope
+0559 Cadence Design Systems, Inc.
+055a Kenwood USA
+055b KnowledgeTek, Inc.
+055c Proton Electronic Ind.
+055d Samsung Electro-Mechanics Co.
+ 0001 Keyboard
+ 0bb1 Bluetooth Device
+ 1030 Optical Wheel Mouse (OMS3CB/OMGB30)
+ 1031 Optical Wheel Mouse (OMA3CB/OMGI30)
+ 1040 Mouse HID Device
+ 1050 E-Mail Optical Wheel Mouse (OMS3CE)
+ 1080 Optical Wheel Mouse (OMS3CH)
+ 2020 Floppy Disk Drive
+ 6780 Keyboard V1
+ 6781 Keyboard Mouse
+ 8001 E.M. Hub
+ 9000 AnyCam [pwc]
+ 9001 MPC-C30 AnyCam Premium for Notebooks [pwc]
+ a000 SWL-2100U
+ a010 WLAN Adapter(SWL-2300)
+ a011 Boot Device
+ a012 WLAN Adapter(SWL-2300)
+ a013 WLAN Adapter(SWL-2350)
+ a230 Boot Device
+ b000 11Mbps WLAN Mini Adapter
+ b230 Netopia 802.11b WLAN Adapter
+ b231 LG Wireless LAN 11b Adapter
+055e CTX Opto-Electronics Corp.
+055f Mustek Systems, Inc.
+ 0001 ScanExpress 1200 CU
+ 0002 ScanExpress 600 CU
+ 0003 ScanExpress 1200 USB
+ 0006 ScanExpress 1200 UB
+ 0007 ScanExpress 1200 USB Plus
+ 0008 ScanExpress 1200 CU Plus
+ 0010 BearPaw 1200F
+ 0210 ScanExpress A3 USB
+ 0218 BearPaw 2400 TA
+ 0219 BearPaw 2400 TA Plus
+ 021a BearPaw 2448 TA Plus
+ 021b BearPaw 1200 CU Plus
+ 021c BearPaw 1200 CU Plus
+ 021d BearPaw 2400 CU Plus
+ 021e BearPaw 1200 TA/CS
+ 021f SNAPSCAN e22
+ 0400 BearPaw 2400 TA Pro
+ 0401 P 3600 A3 Pro
+ 0408 BearPaw 2448 CU Pro
+ 0409 BearPaw 2448 TA Pro
+ 040b ScanExpress A3 USB 1200 PRO
+ 0873 ScanExpress 600 USB
+ 1000 BearPaw 4800 TA Pro
+ a350 gSmart 350 Camera
+ a800 MDC 800 Camera
+ b500 MDC 3000 Camera
+ c005 PC CAM 300A
+ c200 gSmart 300
+ c211 Kowa Bs888e Microcamera
+ c220 gSmart mini
+ c230 Digicam 330K
+ c232 MDC3500 Camera
+ c360 DV 4000 Camera
+ c420 gSmart mini 2 Camera
+ c430 gSmart LCD 2 Camera
+ c440 DV 3000 Camera
+ c520 gSmart mini 3 Camera
+ c530 gSmart LCD 2 Camera
+ c540 gSmart D30 Camera
+ c630 MDC 4000 Camera
+ c631 MDC 4000 Camera
+ c650 MDC 5500Z Camera
+ d001 WCam 300
+ d003 WCam 300A
+ d004 WCam 300AN
+0560 Interface Corp.
+0561 Oasis Design, Inc.
+0562 Telex Communications, Inc.
+ 0001 Enhanced Microphone
+ 0002 Telex Microphone
+0563 Immersion Corp.
+0564 Kodak Digital Product Center, Japan Ltd. (formerly Chinon Industries Inc.)
+0565 Peracom Networks, Inc.
+ 0001 Serial Port [etek]
+ 0002 Enet Ethernet [klsi]
+ 0003 @Home Networks Ethernet [klsi]
+ 0005 Enet2 Ethernet [klsi]
+ 0041 Peracom Remote NDIS Ethernet Adapter
+0566 Monterey International Corp.
+ 0110 ViewMate Desktop Mouse CC2201
+ 1001 ViewMate Desktop Mouse CC2201
+ 1002 ViewMate Desktop Mouse CC2201
+ 1003 ViewMate Desktop Mouse CC2201
+ 1004 ViewMate Desktop Mouse CC2201
+ 1005 ViewMate Desktop Mouse CC2201
+ 1006 ViewMate Desktop Mouse CC2201
+ 1007 ViewMate Desktop Mouse CC2201
+ 2800 MIC K/B
+ 2801 MIC K/B Mouse
+ 2802 Kbd Hub
+ 3004 Genius KB-29E
+0567 Xyratex International, Ltd
+0568 Quartz Ingenierie
+0569 SegaSoft
+056a Wacom Co., Ltd
+ 0000 PenPartner
+ 0001 PenPartner 4x5
+ 0002 PenPartner 6x8
+ 0003 Cintiq Partner
+ 0010 Graphire
+ 0011 Graphire 2 4x5
+ 0012 Graphire 2 5x7
+ 0013 Graphire 3 4x5
+ 0014 Graphire 3 6x8
+ 0015 Graphire 4 4x5
+ 0016 Graphire 4 6x8
+ 0017 Bamboo Fun 4x5
+ 0018 Bamboo Fun 6x8
+ 0019 Bamboo One Medium
+ 0020 Intuos 4x5
+ 0021 Intuos 6x8
+ 0022 Intuos 9x12
+ 0023 Intuos 12x12
+ 0024 Intuos 12x18
+ 0030 PL400
+ 0031 PL500
+ 0032 PL600
+ 0033 PL600SX
+ 0034 PL550
+ 0035 PL800
+ 0037 PL700
+ 0038 PL510
+ 0039 DTU-710
+ 003f Cintiq 21UX
+ 0041 Intuos2 4x5
+ 0042 Intuos2 6x8
+ 0043 Intuos2 9x12
+ 0044 Intuos2 12x12
+ 0045 Intuos2 12x18
+ 0047 Intuos2 6x8
+ 0060 Volito
+ 0061 PenStation2
+ 0062 Volito2 4x5
+ 0063 Volito2 2x3
+ 0064 PenPartner2
+ 0065 Bamboo
+ 0069 Bamboo One
+ 0081 Graphire Wireless 6x8
+ 0090 TPC90
+ 0093 TPC93
+ 009a TPC9A
+ 00b0 Intuos3 4x5
+ 00b1 Intuos3 6x18
+ 00b2 Intuos3 9x12
+ 00b3 Intuos3 12x12
+ 00b4 Intuos3 12x19
+ 00b5 Intuos3 6x11 (PTZ-631W)
+ 00b7 Intuos3 4x6
+ 00b8 Intuos4 4x6
+ 00b9 Intuos4 6x9
+ 00ba Intuos4 8x13
+ 00bb Intuos4 12x19
+ 00c0 DTF-521
+ 00c4 DTF-720
+ 00c5 Cintiq 20WSX
+ 00c6 Cintiq 12WX
+ 00c7 DTU-1931
+ 00d1 Bamboo Pen & Touch (CTH-460-DE)
+ 00d3 Bamboo Fun (CTH-661)
+ 00db Bamboo Fun (CTH-661SE-NL)
+ 0400 PenPartner 4x5
+ 4850 PenPartner 6x8
+056b Decicon, Inc.
+056c eTEK Labs
+ 0006 KwikLink Host-Host Connector
+ 8007 Kwik232 Serial Port
+ 8100 KwikLink Host-Host Connector
+ 8101 KwikLink USB-USB Bridge
+056d EIZO Corp.
+ 0000 Hub
+ 0001 Monitor
+ 0002 HID Monitor Controls
+ 0003 Device Bay Controller
+056e Elecom Co., Ltd
+ 0002 29UO Mouse
+ 200c LD-USB/TX
+ 4002 Laneed 100Mbps Ethernet LD-USB/TX [pegasus]
+ 4005 LD-USBL/TX
+ 400b LD-USB/TX
+ 4010 LD-USB20
+ 5003 UC-SGT
+ 5004 UC-SGT
+ 6008 Flash Disk
+ abc1 LD-USB/TX
+056f Korea Data Systems Co., Ltd
+ cd00 CDM-751 CD organizer
+0570 Epson America
+0571 Interex, Inc.
+ 0002 echoFX InterView Lite
+0572 Conexant Systems (Rockwell), Inc.
+ 0001 Ezcam II Webcam
+ 0002 Ezcam II Webcam
+ 0040 Wondereye CP-115 Webcam
+ 0041 Webcam Notebook
+ 0042 Webcam Notebook
+ 1232 V.90 modem
+ 1234 Typhoon Redfun Modem V90 56k
+ 1252 HCF V90 Data Fax Voice Modem
+ 1253 Zoom V.92 Faxmodem
+ 1300 SoftK56 Data Fax Voice CARP
+ 1301 Modem Enumerator
+ 2000 SoftGate 802.11 Adapter
+ 2002 SoftGate 802.11 Adapter
+ 8390 WinFast PalmTop/Novo TV Video
+ 8392 WinFast PalmTop/Novo TV Video
+ cafe AccessRunner ADSL Modem
+ cb00 ADSL Modem
+ cb01 ADSL Modem
+ cb06 StarModem Network Interface
+0573 Zoran Co. Personal Media Division (Nogatech)
+ 0003 USBGear USBG-V1
+ 0400 D-Link V100
+ 0600 Dazzle USBVision (1006)
+ 1300 leadtek USBVision (1006)
+ 2000 X10 va10a Wireless Camera
+ 2001 Dazzle EmMe (2001)
+ 2101 Zoran Co. PMD (Nogatech) AV-grabber Manhattan
+ 2d00 Osprey 50
+ 2d01 Hauppauge USB-Live Model 600
+ 3000 Dazzle MicroCam (NTSC)
+ 3001 Dazzle MicroCam (PAL)
+ 4000 Nogatech TV! (NTSC)
+ 4001 Nogatech TV! (PAL)
+ 4002 Nogatech TV! (PAL-I-)
+ 4003 Nogatech TV! (MF-)
+ 4008 Nogatech TV! (NTSC) (T)
+ 4009 Nogatech TV! (PAL) (T)
+ 4010 Nogatech TV! (NTSC) (A)
+ 4100 USB-TV FM (NTSC)
+ 4110 PNY USB-TV (NTSC) FM
+ 4400 Nogatech TV! Pro (NTSC)
+ 4401 Nogatech TV! Pro (PAL)
+ 4450 PixelView PlayTv-USB PRO (PAL) FM
+ 4451 Nogatech TV! Pro (PAL+)
+ 4452 Nogatech TV! Pro (PAL-I+)
+ 4500 Nogatech TV! Pro (NTSC)
+ 4501 Nogatech TV! Pro (PAL)
+ 4550 ZTV ZT-721 2.4GHz A/V Receiver
+ 4551 Dazzle TV! Pro Audio (P+)
+ 4d00 Hauppauge WinTV-USB USA
+ 4d01 Hauppauge WinTV-USB
+ 4d02 Hauppauge WinTV-USB UK
+ 4d03 Hauppauge WinTV-USB France
+ 4d04 Hauppauge WinTV (PAL D/K)
+ 4d10 Hauppauge WinTV-USB with FM USA radio
+ 4d11 Hauppauge WinTV-USB (PAL) with FM radio
+ 4d12 Hauppauge WinTV-USB UK with FM Radio
+ 4d14 Hauppauge WinTV (PAL D/K FM)
+ 4d20 Hauppauge WinTV-USB II (PAL) with FM radio
+ 4d21 Hauppauge WinTV-USB II (PAL)
+ 4d22 Hauppauge WinTV-USB II (PAL) Model 566
+ 4d23 Hauppauge WinTV-USB France 4D23
+ 4d24 Hauppauge WinTV Pro (PAL D/K)
+ 4d25 Hauppauge WinTV-USB Model 40209 rev B234
+ 4d26 Hauppauge WinTV-USB Model 40209 rev B243
+ 4d27 Hauppauge WinTV-USB Model 40204 Rev B281
+ 4d28 Hauppauge WinTV-USB Model 40204 rev B283
+ 4d29 Hauppauge WinTV-USB Model 40205 rev B298
+ 4d2a Hauppague WinTV-USB Model 602 Rev B285
+ 4d2b Hauppague WinTV-USB Model 602 Rev B282
+ 4d2c Hauppauge WinTV Pro (PAL/SECAM)
+ 4d30 Hauppauge WinTV-USB FM Model 40211 Rev B123
+ 4d31 Hauppauge WinTV-USB III (PAL) with FM radio Model 568
+ 4d32 Hauppauge WinTV-USB III (PAL) FM Model 573
+ 4d34 Hauppauge WinTV Pro (PAL D/K FM)
+ 4d35 Hauppauge WinTV-USB III (PAL) FM Model 597
+ 4d36 Hauppauge WinTV Pro (PAL B/G FM)
+ 4d37 Hauppauge WinTV-USB Model 40219 rev E189
+ 4d38 Hauppauge WinTV Pro (NTSC FM)
+0574 City University of Hong Kong
+0575 Philips Creative Display Solutions
+0576 BAFO/Quality Computer Accessories
+0577 ELSA
+0578 Intrinsix Corp.
+0579 GVC Corp.
+057a Samsung Electronics America
+057b Y-E Data, Inc.
+ 0000 FlashBuster-U Floppy
+ 0001 Tri-Media Reader Floppy
+ 0006 Tri-Media Reader Card Reader
+ 0010 Memory Stick Reader Writer
+ 0020 HEXA Media Drive 6-in-1 Card Reader Writer
+ 0030 Memory Card Viewer (TV)
+057c AVM GmbH
+ 0b00 ISDN-Controller B1 Family
+ 0c00 ISDN-Controller FRITZ!Card
+ 1000 ISDN-Controller FRITZ!Card v2.0
+ 1900 ISDN-Controller FRITZ!Card v2.1
+ 2000 ISDN-Connector FRITZ!X
+ 2200 BlueFRITZ!
+ 2300 Teledat X130 DSL
+ 2800 ISDN-Connector TA
+ 3200 Teledat X130 DSL
+ 3500 FRITZ!Card DSL SL
+ 3701 FRITZ!Box SL
+ 3702 FRITZ!Box
+ 3800 BlueFRITZ! Bluetooth Stick
+ 3a00 FRITZ!Box Fon
+ 3c00 FRITZ!Box WLAN
+ 3d00 Fritz!Box
+ 3e01 FRITZ!Box (Annex A)
+ 4001 FRITZ!Box Fon (Annex A)
+ 4101 FRITZ!Box WLAN (Annex A)
+ 4201 FRITZ!Box Fon WLAN (Annex A)
+ 4601 Eumex 5520PC (WinXP/2000)
+ 4602 Eumex 400 (WinXP/2000)
+ 4701 AVM FRITZ!Box Fon ata
+ 5401 Eumex 300 IP
+ 5601 AVM Fritz!WLAN [Texas Instruments TNETW1450]
+ 6201 AVM Fritz!WLAN v1.1 [Texas Instruments TNETW1450]
+ 62ff AVM Fritz!WLAN USB (in CD-ROM-mode)
+ 8401 AVM Fritz!WLAN N [Atheros AR9001U]
+ 8402 AVM Fritz!WLAN N 2.4 [Atheros AR9001U]
+ 84ff AVM Fritz!WLAN USB N (in CD-ROM-mode)
+057d Shark Multimedia, Inc.
+057e Nintendo Co., Ltd
+ 0305 Broadcom BCM2045A Bluetooth Radio [Nintendo Wii]
+ 0306 Wii Remote Controller RVL-003
+057f QuickShot, Ltd
+ 6238 USB StrikePad
+0580 Denron, Inc.
+0581 Racal Data Group
+0582 Roland Corp.
+ 0000 UA-100
+ 0002 UM-4/MPU-64 MIDI Interface
+ 0003 SoundCanvas SC-8850
+ 0004 U-8
+ 0005 Edirol UM-2 MIDI Adapter
+ 0007 SoundCanvas SC-8820
+ 0008 PC-300
+ 0009 Edirol UM-1SX MIDI Adapter
+ 000b SK-500
+ 000c SC-D70
+ 0010 EDIROL UA-5
+ 0011 Edirol UA-5 Sound Capture
+ 0012 XV-5050
+ 0013 XV-5050
+ 0014 EDIROL UM-880 MIDI I/F (native)
+ 0015 EDIROL UM-880 MIDI I/F (generic)
+ 0016 EDIROL SD-90
+ 0017 EDIROL SD-90
+ 0018 UA-1A
+ 001b MMP-2
+ 001c MMP-2
+ 001d V-SYNTH
+ 001e V-SYNTH
+ 0023 EDIROL UM-550
+ 0024 EDIROL UM-550
+ 0025 EDIROL UA-20
+ 0026 EDIROL UA-20
+ 0027 EDIROL SD-20
+ 0028 EDIROL SD-20
+ 0029 EDIROL SD-80
+ 002a EDIROL SD-80
+ 002b EDIROL UA-700
+ 002c EDIROL UA-700
+ 002d XV-2020 Synthesizer
+ 002e XV-2020 Synthesizer
+ 002f VariOS
+ 0030 VariOS
+ 0033 EDIROL PCR
+ 0034 EDIROL PCR
+ 0037 Digital Piano
+ 0038 Digital Piano
+ 003b BOSS GS-10
+ 003c BOSS GS-10
+ 0040 GI-20
+ 0041 GI-20
+ 0042 RS-70
+ 0043 RS-70
+ 0044 EDIROL UA-1000
+ 0047 EDIROL UR-80 WAVE
+ 0048 EDIROL UR-80 MIDI
+ 0049 EDIROL UR-80 WAVE
+ 004a EDIROL UR-80 MIDI
+ 004b EDIROL M-100FX
+ 004c EDIROL PCR-A WAVE
+ 004d EDIROL PCR-A MIDI
+ 004e EDIROL PCR-A WAVE
+ 004f EDIROL PCR-A MIDI
+ 0050 EDIROL UA-3FX
+ 0052 EDIROL UM-1SX
+ 0054 Digital Piano
+ 0060 EXR Series
+ 0064 EDIROL PCR-1 WAVE
+ 0065 EDIROL PCR-1 MIDI
+ 0066 EDIROL PCR-1 WAVE
+ 0067 EDIROL PCR-1 MIDI
+ 006a SP-606
+ 006b SP-606
+ 006d FANTOM-X
+ 006e FANTOM-X
+ 0073 EDIROL UA-25
+ 0074 EDIROL UA-25
+ 0075 BOSS DR-880
+ 0076 BOSS DR-880
+ 007a RD
+ 007b RD
+ 007d EDIROL UA-101
+ 0080 G-70
+ 0081 G-70
+ 008b EDIROL PC-50
+ 008c EDIROL PC-50
+ 008d EDIROL UA-101 USB1
+ 0092 EDIROL PC-80 WAVE
+ 0093 EDIROL PC-80 MIDI
+ 0096 EDIROL UA-1EX
+ 009a EDIROL UM-3EX
+ 009d EDIROL UM-1
+ 00a2 Digital Piano
+ 00a3 EDIROL UA-4FX
+ 00a6 Juno-G
+ 00ad SH-201
+ 00c4 EDIROL M-16DX
+ 00db BOSS GT-10 Guitar Effects Processor
+ 00de Fantom-G7
+ 00e6 EDIROL UA-25EX (Advanced mode)
+ 00e7 EDIROL UA-25EX
+ 010f A-PRO
+ 0110 A-PRO
+0583 Padix Co., Ltd (Rockfire)
+ 0001 4 Axis 12 button +POV
+ 0002 4 Axis 12 button +POV
+ 2030 RM-203 USB Nest [mode 1]
+ 2031 RM-203 USB Nest [mode 2]
+ 2032 RM-203 USB Nest [mode 3]
+ 2033 RM-203 USB Nest [mode 4]
+ 2050 PX-205 PSX Bridge
+ 205f PSX/USB converter
+ 206f USB, 2-axis 8-button gamepad
+ 3050 QF-305u Gamepad
+ 3379 Rockfire X-Force
+ 337f Rockfire USB RacingStar Vibra
+ 509f USB,4-Axis,12-Button with POV
+ 5259 Rockfire USB SkyShuttle Vibra
+ 525f USB Vibration Pad
+ 5308 USB Wireless VibrationPad
+ 5359 Rockfire USB SkyShuttle Pro
+ 535f USB,real VibrationPad
+ 5659 Rockfire USB SkyShuttle Vibra
+ 565f USB VibrationPad
+ 6009 Revenger
+ 600f USB,GameBoard II
+ 6258 USB, 4-axis, 6-button joystick w/view finder
+ 6889 Windstorm Pro
+ 688f QF-688uv Windstorm Pro Joystick
+ 7070 QF-707u Bazooka Joystick
+ a000 MaxFire G-08XU Gamepad
+ a015 4-Axis,16-Button with POV
+ a019 USB, Vibration ,4-axis, 8-button joystick w/view finder
+ a020 USB,4-Axis,10-Button with POV
+ a021 USB,4-Axis,12-Button with POV
+ a022 USB,4-Axis,14-Button with POV
+ a023 USB,4-Axis,16-Button with POV
+ a024 4axis,12button vibrition audio gamepad
+ a025 4axis,12button vibrition audio gamepad
+ a130 USB Wireless 2.4GHz Gamepad
+ a131 USB Wireless 2.4GHz Joystick
+ a132 USB Wireless 2.4GHz Wheelpad
+ a133 USB Wireless 2.4GHz Wheel&Gamepad
+ a202 ForceFeedbackWheel
+ a209 MetalStrike FF
+ b000 USB,4-Axis,12-Button with POV
+ b001 USB,4-Axis,12-Button with POV
+ b002 Vibration,12-Button USB Wheel
+ b005 USB,12-Button Wheel
+ b008 USB Wireless 2.4GHz Wheel
+ b009 USB,12-Button Wheel
+ b00a PSX/USB converter
+ b00b PSX/USB converter
+ b00c PSX/USB converter
+ b00d PSX/USB converter
+ b00e 4-Axis,12-Button with POV
+ b00f USB,5-Axis,10-Button with POV
+ b010 MetalStrike Pro
+ b012 Wireless MetalStrike
+ b013 USB,Wiress 2.4GHZ Joystick
+ b016 USB,5-Axis,10-Button with POV
+ b018 TW6 Wheel
+ ff60 USB Wireless VibrationPad
+0584 RATOC System, Inc.
+ 0008 Fujifilm MemoryCard ReaderWriter
+ 0220 U2SCX SCSI Converter
+ b000 REX-USB60
+0585 FlashPoint Technology, Inc.
+ 0001 Digital Camera
+ 0002 Digital Camera
+ 0003 Digital Camera
+ 0004 Digital Camera
+ 0005 Digital Camera
+ 0006 Digital Camera
+ 0007 Digital Camera
+ 0008 Digital Camera
+ 0009 Digital Camera
+ 000a Digital Camera
+ 000b Digital Camera
+ 000c Digital Camera
+ 000d Digital Camera
+ 000e Digital Camera
+ 000f Digital Camera
+0586 ZyXEL Communications Corp.
+ 0025 802.11b/g/n USB Wireless Network Adapter
+ 0102 omni.net II ISDN TA
+ 1000 Omni NET Modem / ISDN TA
+ 1500 Omni 56K Plus
+ 2011 Scorpion-980N keyboard
+ 3304 LAN Modem
+ 3309 ADSL Modem Prestige 600 series
+ 330a ADSL Modem Interface
+ 330e USB Broadband ADSL Modem Rev 1.10
+ 3400 ZyAIR B-220 IEEE 802.11b Adapter
+ 3401 ZyAIR G-220 802.11bg
+ 3402 ZyAIR G-220F 802.11bg
+ 3407 G-200 v2 802.11bg
+ 3409 AG-225H 802.11bg
+ 340a M-202 802.11bg
+ 340f G-220 v2 802.11bg
+ 3410 ZyAIR G-202 802.11bg
+ 3412 802.11bg
+ 3413 ZyAIR AG-225H v2 802.11bg
+ 3415 G-210H 802.11g Wireless Adapter
+ 3416 NWD-210N 802.11b/g/n-draft wireless adapter
+ 3417 NWD271N 802.11n Wireless Adapter [Atheros AR9001U-(2)NG]
+ 3418 NWD211AN 802.11abgn Wireless Adapter [Ralink RT2870]
+ 341a NWD-270N Wireless N-lite USB Adapter
+ 341f NWD2205 802.11n Wireless N Adapter [Realtek RTL8192CU]
+0587 America Kotobuki Electronics Industries, Inc.
+0588 Sapien Design
+0589 Victron
+058a Nohau Corp.
+058b Infineon Technologies
+058c In Focus Systems
+ 0007 Flash
+ 0008 LP130
+ 000a LP530
+ 0010 Projector
+ 0011 Projector
+ 0012 Projector
+ 0013 Projector
+ 0014 Projector
+ 0015 Projector
+ 0016 Projector
+ 0017 Projector
+ 0018 Projector
+ 0019 Projector
+ 001a Projector
+ 001b Projector
+ 001c Projector
+ 001d Projector
+ 001e Projector
+ 001f Projector
+058d Micrel Semiconductor
+058e Tripath Technology, Inc.
+058f Alcor Micro Corp.
+ 1234 Flash Drive
+ 2412 SCard R/W CSR-145
+ 2802 Monterey Keyboard
+ 5492 Hub
+ 6232 Hi-Speed 16-in-1 Flash Card Reader/Writer
+ 6254 USB Hub
+ 6331 SD/MMC/MS Card Reader
+ 6332 Multi-Function Card Reader
+ 6335 SD/MMC Card Reader
+ 6360 Multimedia Card Reader
+ 6361 Multimedia Card Reader
+ 6362 Flash Card Reader/Writer
+ 6366 Multi Flash Reader
+ 6377 Multimedia Card Reader
+ 6386 Memory Card
+ 6387 Transcend JetFlash Flash Drive
+ 6390 USB 2.0-IDE bridge
+ 9213 MacAlly Kbd Hub
+ 9215 AU9814 Hub
+ 9254 Hub
+ 9310 Mass Storage (UID4/5A & UID7A)
+ 9320 Micro Storage Driver for Win98
+ 9321 Micro Storage Driver for Win98
+ 9330 SD Reader
+ 9331 Micro Storage Driver for Win98
+ 9340 Delkin eFilm Reader-32
+ 9350 Delkin eFilm Reader-32
+ 9360 8-in-1 Media Card Reader
+ 9361 Multimedia Card Reader
+ 9368 Multimedia Card Reader
+ 9380 Flash Drive
+ 9382 Acer/Sweex Flash drive
+ 9384 qdi U2Disk T209M
+ 9410 Keyboard
+ 9472 Keyboard Hub
+ 9510 ChunghwaTL USB02 Smartcard Reader
+ 9520 EMV Certified Smart Card Reader
+ 9720 USB-Serial Adapter
+0590 Omron Corp.
+ 0004 Cable Modem
+ 000b MR56SVS
+ 0028 HJ-720IT Pedometer / Blood Pressure Monitor HEM-7080IT-E
+0591 Questra Consulting
+0592 Powerware Corp.
+ 0002 UPS (X-Slot)
+0593 Incite
+0594 Princeton Graphic Systems
+0595 Zoran Microelectronics, Ltd
+ 1001 Digitrex DSC-1300/DSC-2100 (mass storage mode)
+ 2002 DIGITAL STILL CAMERA 6M 4X
+ 4343 Digital Camera EX-20 DSC
+0596 MicroTouch Systems, Inc.
+ 0001 Touchscreen
+ 0002 Touch Screen Controller
+ 0500 PCT Multitouch HID Controller
+0597 Trisignal Communications
+0598 Niigata Canotec Co., Inc.
+0599 Brilliance Semiconductor, Inc.
+059a Spectrum Signal Processing, Inc.
+059b Iomega Corp.
+ 0001 Zip 100 (Type 1)
+ 000b Zip 100 (Type 2)
+ 0021 Win98 Disk Controller
+ 0030 Zip 250 (Ver 1)
+ 0031 Zip 100 (Type 3)
+ 0032 Zip 250 (Ver 2)
+ 0034 Zip 100 Driver
+ 0037 Zip 750 MB
+ 0040 SCSI Bridge
+ 0042 Rev 70 GB
+ 0050 Zip CD 650 Writer
+ 0053 CDRW55292EXT CD-RW External Drive
+ 0057 Mass Storage Device
+ 005d Mass Storage Device
+ 005f CDRW64892EXT3-C CD-RW 52x24x52x External Drive
+ 0060 PCMCIA PocketZip Dock
+ 0061 Varo PocketZip 40 MP3 Player
+ 006d HipZip MP3 Player
+ 007c Ultra Max USB/1394
+ 007e Mini 256MB/512MB Flash Drive [IOM2D5]
+ 00db FotoShow Zip 250 Driver
+ 0150 Mass Storage Device
+ 015d Super DVD Writer
+ 0173 Hi-Speed USB-to-IDE Bridge Controller
+ 0174 Hi-Speed USB-to-IDE Bridge Controller
+ 0176 Hi-Speed USB-to-IDE Bridge Controller
+ 0177 Hi-Speed USB-to-IDE Bridge Controller
+ 0178 Hi-Speed USB-to-IDE Bridge Controller
+ 0179 Hi-Speed USB-to-IDE Bridge Controller
+ 017a HDD
+ 017b HDD/1394A
+ 017c HDD/1394B
+ 0251 Optical
+ 0252 Optical
+ 027a LPHD250-U [Portable Hard Drive Silver Series 250 Go]
+ 0470 Prestige Portable Hard Drive
+ 047a Select Portable Hard Drive
+ 0579 eGo Portable Hard Drive
+ 1052 DVD+RW External Drive
+059c A-Trend Technology Co., Ltd
+059d Advanced Input Devices
+059e Intelligent Instrumentation
+059f LaCie, Ltd
+ 0201 StudioDrive USB2
+ 0202 StudioDrive USB2
+ 0203 StudioDrive USB2
+ 0211 PocketDrive
+ 0212 PocketDrive
+ 0213 PocketDrive USB2
+ 0323 LaCie d2 Drive USB2
+ 0421 Big Disk G465
+ 0641 Mobile Hard Drive
+ 1010 Desktop Hard Drive
+ 1019 Desktop Hard Drive
+ 1021 Little Disk
+ 1027 iamaKey V2
+ 102a Rikiki Hard Drive
+ 1049 rikiki Harddrive
+ a601 HardDrive
+ a602 CD R/W
+05a0 Vetronix Corp.
+05a1 USC Corp.
+05a2 Fuji Film Microdevices Co., Ltd
+05a3 ARC International
+ 8388 Marvell 88W8388 802.11a/b/g WLAN
+05a4 Ortek Technology, Inc.
+ 2000 WKB-2000 Wireless Keyboard with Touchpad
+ 9720 Keyboard Mouse
+ 9722 Keyboard
+ 9731 MCK-600W/MCK-800USB Keyboard
+ 9783 Wireless Keypad
+05a5 Sampo Technology Corp.
+05a6 Cisco Systems, Inc.
+ 0001 CVA124 Cable Voice Adapter (WDM)
+ 0002 CVA122 Cable Voice Adapter (WDM)
+ 0003 CVA124E Cable Voice Adapter (WDM)
+ 0004 CVA122E Cable Voice Adapter (WDM)
+05a7 Bose Corp.
+05a8 Spacetec IMC Corp.
+05a9 OmniVision Technologies, Inc.
+ 0511 OV511 Webcam
+ 0518 OV518 Webcam
+ 0519 OV519 Microphone
+ 1550 VEHO Filmscanner
+ 2640 OV2640 Webcam
+ 2643 Monitor Webcam
+ 264b Monitor Webcam
+ 2800 SuperCAM
+ 4519 Webcam Classic
+ 7670 OV7670 Webcam
+ 8519 OV519 Webcam
+ a511 OV511+ Webcam
+ a518 D-Link DSB-C310 Webcam
+05aa Utilux South China, Ltd
+05ab In-System Design
+ 0002 Parallel Port
+ 0030 Storage Adapter V2 (TPP)
+ 0031 ATA Bridge
+ 0060 USB 2.0 ATA Bridge
+ 0061 Storage Adapter V3 (TPP-I)
+ 0101 Storage Adapter (TPP)
+ 0130 Compact Flash and Microdrive Reader (TPP)
+ 0200 USS725 ATA Bridge
+ 0201 Storage Adapter (TPP)
+ 0202 ATA Bridge
+ 0300 Portable Hard Drive (TPP)
+ 0301 Portable Hard Drive V2
+ 0350 Portable Hard Drive (TPP)
+ 0351 Portable Hard Drive V2
+ 081a ATA Bridge
+ 0cda ATA Bridge for CD-R/RW
+ 1001 BAYI Printer Class Support
+ 5700 Storage Adapter V2 (TPP)
+ 5701 USB Storage Adapter V2
+ 5901 Smart Board (TPP)
+ 5a01 ATI Storage Adapter (TPP)
+ 5d01 DataBook Adapter (TPP)
+05ac Apple, Inc.
+ 0201 USB Keyboard [Alps or Logitech, M2452]
+ 0202 Keyboard [ALPS]
+ 0205 Extended Keyboard [Mitsumi]
+ 0206 Extended Keyboard [Mitsumi]
+ 020b Pro Keyboard [Mitsumi, A1048/US layout]
+ 020c Extended Keyboard [Mitsumi]
+ 020d Pro Keyboard [Mitsumi, A1048/JIS layout]
+ 020e Internal Keyboard/Trackpad (ANSI)
+ 020f Internal Keyboard/Trackpad (ISO)
+ 0214 Internal Keyboard/Trackpad (ANSI)
+ 0215 Internal Keyboard/Trackpad (ISO)
+ 0216 Internal Keyboard/Trackpad (JIS)
+ 0217 Internal Keyboard/Trackpad (ANSI)
+ 0218 Internal Keyboard/Trackpad (ISO)
+ 0219 Internal Keyboard/Trackpad (JIS)
+ 021a Internal Keyboard/Trackpad (ANSI)
+ 021b Internal Keyboard/Trackpad (ISO)
+ 021c Internal Keyboard/Trackpad (JIS)
+ 021d Aluminum Mini Keyboard (ANSI)
+ 021e Aluminum Mini Keyboard (ISO)
+ 021f Aluminum Mini Keyboard (JIS)
+ 0220 Aluminum Keyboard (ANSI)
+ 0221 Aluminum Keyboard (ISO)
+ 0222 Aluminum Keyboard (JIS)
+ 0223 Internal Keyboard/Trackpad (ANSI)
+ 0224 Internal Keyboard/Trackpad (ISO)
+ 0225 Internal Keyboard/Trackpad (JIS)
+ 0229 Internal Keyboard/Trackpad (MacBook Pro) (ANSI)
+ 022a Internal Keyboard/Trackpad (MacBook Pro) (ISO)
+ 022b Internal Keyboard/Trackpad (MacBook Pro) (JIS)
+ 0230 Internal Keyboard/Trackpad (MacBook Pro 4,1) (ANSI)
+ 0231 Internal Keyboard/Trackpad (MacBook Pro 4,1) (ISO)
+ 0232 Internal Keyboard/Trackpad (MacBook Pro 4,1) (JIS)
+ 0236 Internal Keyboard/Trackpad (ANSI)
+ 0237 Internal Keyboard/Trackpad (ISO)
+ 0238 Internal Keyboard/Trackpad (JIS)
+ 0301 USB Mouse [Mitsumi, M4848]
+ 0302 Optical Mouse [Fujitsu]
+ 0304 Optical USB Mouse [Mitsumi]
+ 0306 Optical USB Mouse [Fujitsu]
+ 030a Internal Trackpad
+ 030b Internal Trackpad
+ 030e Wireless Trackpad [Magic Trackpad]
+ 1000 Bluetooth HCI MacBookPro (HID mode)
+ 1001 Keyboard Hub [ALPS]
+ 1002 Extended Keyboard Hub [Mitsumi]
+ 1003 Hub in Pro Keyboard [Mitsumi, A1048]
+ 1006 Hub in Aluminum Keyboard
+ 1101 Speakers
+ 1201 3G iPod
+ 1202 iPod 2G
+ 1203 iPod 4.Gen Grayscale 40G
+ 1204 iPod [Photo]
+ 1205 iPod Mini 1.Gen/2.Gen
+ 1206 iPod '06'
+ 1207 iPod '07'
+ 1208 iPod '08'
+ 1209 iPod Video
+ 120a iPod Nano
+ 1223 iPod Classic/Nano 3.Gen (DFU mode)
+ 1224 iPod Nano 3.Gen (DFU mode)
+ 1225 iPod Nano 4.Gen (DFU mode)
+ 1227 Mobile Device (DFU Mode)
+ 1231 iPod Nano 5.Gen (DFU mode)
+ 1240 iPod Nano 2.Gen (DFU mode)
+ 1242 iPod Nano 3.Gen (WTF mode)
+ 1243 iPod Nano 4.Gen (WTF mode)
+ 1245 iPod Classic 3.Gen (WTF mode)
+ 1246 iPod Nano 5.Gen (WTF mode)
+ 1255 iPod Nano 4.Gen (DFU mode)
+ 1260 iPod Nano 2.Gen
+ 1261 iPod Classic
+ 1262 iPod Nano 3.Gen
+ 1263 iPod Nano 4.Gen
+ 1265 iPod Nano 5.Gen
+ 1266 iPod Nano 6.Gen
+ 1281 Apple Mobile Device [Recovery Mode]
+ 1290 iPhone
+ 1291 iPod Touch 1.Gen
+ 1292 iPhone 3G
+ 1293 iPod Touch 2.Gen
+ 1294 iPhone 3GS
+ 1296 iPod Touch 3.Gen (8GB)
+ 1297 iPhone 4
+ 1299 iPod Touch 3.Gen
+ 129a iPad
+ 129e iPod Touch 4.Gen
+ 129f iPad 2
+ 1300 iPod Shuffle
+ 1301 iPod Shuffle 2.Gen
+ 1302 iPod Shuffle 3.Gen
+ 1303 iPod Shuffle 4.Gen
+ 1401 Modem
+ 8202 HCF V.90 Data/Fax Modem
+ 8203 Bluetooth HCI
+ 8204 Bluetooth HCI [Bluetooth 2.0 + EDR, built-in]
+ 8205 Bluetooth HCI
+ 8206 Bluetooth HCI
+ 820f Bluetooth HCI
+ 8215 Bluetooth USB Host Controller
+ 8216 Bluetooth USB Host Controller
+ 8217 Bluetooth USB Host Controller
+ 8218 Bluetooth Host Controller
+ 8240 IR Receiver [built-in]
+ 8241 IR Receiver [built-in]
+ 8242 IR Receiver [built-in]
+ 8300 Built-in iSight (no firmware loaded)
+ 8403 Internal Memory Card Reader
+ 8501 Built-in iSight [Micron]
+ 8502 Built-in iSight
+ 8505 Built-in iSight
+ 8507 Built-in iSight
+ 911c Hub in A1082 [Cinema HD Display 23"]
+ 912f Hub in 30" Cinema Display
+ 921c A1082 [Cinema HD Display 23"]
+ 9221 30" Cinema Display
+ ffff Bluetooth in DFU mode - Driver
+05ad Y.C. Cable U.S.A., Inc.
+05ae Synopsys, Inc.
+05af Jing-Mold Enterprise Co., Ltd
+ 0809 Wireless Keyboard and Mouse
+ 0821 IDE to
+ 3062 Cordless Keyboard
+ 9167 KB 9151B - 678
+ 9267 KB 9251B - 678 Mouse
+05b0 Fountain Technologies, Inc.
+05b1 First International Computer, Inc.
+ 1389 Bluetooth Wireless Adapter
+05b4 LG Semicon Co., Ltd
+ 4857 M-Any DAH-210
+ 6001 Digisette DUO-MP3 AR-100
+05b5 Dialogic Corp.
+05b6 Proxima Corp.
+05b7 Medianix Semiconductor, Inc.
+05b8 Agiler, Inc.
+ 3002 Scroll Mouse
+05b9 Philips Research Laboratories
+05ba DigitalPersona, Inc.
+ 0007 Fingerprint Reader
+ 0008 Fingerprint Reader
+ 000a Fingerprint Reader
+05bb Grey Cell Systems
+05bc 3G Green Green Globe Co., Ltd
+ 0004 Trackball
+05bd RAFI GmbH & Co. KG
+05be Tyco Electronics (Raychem)
+05bf S & S Research
+05c0 Keil Software
+05c1 Kawasaki Microelectronics, Inc.
+05c2 Media Phonics (Suisse) S.A.
+05c5 Digi International, Inc.
+ 0002 AccelePort USB 2
+ 0004 AccelePort USB 4
+ 0008 AccelePort USB 8
+05c6 Qualcomm, Inc.
+ 0114 Select RW-200 CDMA Wireless Modem
+ 1000 Mass Storage Device
+ 3100 CDMA Wireless Modem/Phone
+ 3196 CDMA Wireless Modem
+ 3197 CDMA Wireless Modem/Phone
+ 6000 Siemens SG75
+ 6503 AnyData APE-540H
+ 6613 Onda H600/N501HS ZTE MF330
+ 9000 SIMCom SIM5218 modem
+ 9001 Gobi Wireless Modem
+ 9002 Gobi Wireless Modem
+ 9008 Gobi Wireless Modem (QDL mode)
+ 9201 Gobi Wireless Modem (QDL mode)
+ 9202 Gobi Wireless Modem
+ 9203 Gobi Wireless Modem
+ 9211 Acer Gobi Wireless Modem (QDL mode)
+ 9212 Acer Gobi Wireless Modem
+ 9214 Acer Gobi 2000 Wireless Modem (QDL mode)
+ 9215 Acer Gobi 2000 Wireless Modem
+ 9221 Gobi Wireless Modem (QDL mode)
+ 9222 Gobi Wireless Modem
+ 9224 Sony Gobi 2000 Wireless Modem (QDL mode)
+ 9225 Sony Gobi 2000 Wireless Modem
+ 9231 Gobi Wireless Modem (QDL mode)
+ 9234 Top Global Gobi 2000 Wireless Modem (QDL mode)
+ 9235 Top Global Gobi 2000 Wireless Modem
+ 9244 Samsung Gobi 2000 Wireless Modem (QDL mode)
+ 9245 Samsung Gobi 2000 Wireless Modem
+ 9264 Asus Gobi 2000 Wireless Modem (QDL mode)
+ 9265 Asus Gobi 2000 Wireless Modem
+ 9274 iRex Technologies Gobi 2000 Wireless Modem (QDL mode)
+ 9275 iRex Technologies Gobi 2000 Wireless Modem
+05c7 Qtronix Corp.
+ 0113 PC Line Mouse
+ 1001 Lynx Mouse
+ 2001 Keyboard
+ 2011 SCorpius Keyboard
+ 6001 Ten-Keypad
+05c8 Cheng Uei Precision Industry Co., Ltd (Foxlink)
+ 0103 FO13FF-65 PC-CAM
+ 0403 Webcam
+05c9 Semtech Corp.
+05ca Ricoh Co., Ltd
+ 0101 RDC-5300 Camera
+ 0325 Caplio GX (ptp)
+ 032d Caplio GX 8 (ptp)
+ 032f Caplio R3 (ptp)
+ 03a1 IS200e
+ 0403 Printing Support
+ 0405 Type 101
+ 0406 Type 102
+ 1803 V5 camera [R5U870]
+ 1810 Pavilion Webcam [R5U870]
+ 1812 Pavilion Webcam
+ 1814 HD Webcam
+ 1830 Visual Communication Camera VGP-VCC2 [R5U870]
+ 1832 Visual Communication Camera VGP-VCC3 [R5U870]
+ 1833 Visual Communication Camera VGP-VCC2 [R5U870]
+ 1834 Visual Communication Camera VGP-VCC2 [R5U870]
+ 1835 Visual Communication Camera VGP-VCC5 [R5U870]
+ 1836 Visual Communication Camera VGP-VCC4 [R5U870]
+ 1837 Visual Communication Camera VGP-VCC4 [R5U870]
+ 1839 Visual Communication Camera VGP-VCC6 [R5U870]
+ 183a Visual Communication Camera VGP-VCC7 [R5U870]
+ 183b Visual Communication Camera VGP-VCC8 [R5U870]
+ 183d Sony Vaio Integrated Webcam
+ 183e Visual Communication Camera VGP-VCC9 [R5U870]
+ 1841 Fujitsu F01/ Lifebook U810 [R5U870]
+ 1870 Webcam 1000
+ 18b0 Sony Vaio Integrated Webcam
+ 18b1 Sony Vaio Integrated Webcam
+ 18b3 Sony Vaio Integrated Webcam
+ 2201 RDC-7 Camera
+ 2202 Caplio RR30
+ 2203 Caplio 300G
+ 2204 Caplio G3
+ 2205 Caplio RR30 / Medion MD 6126 Camera
+ 2206 Konica DG-3Z
+ 2207 Caplio Pro G3
+ 2208 Caplio G4
+ 2209 Caplio 400G wide
+ 220a KONICA MINOLTA DG-4Wide
+ 220b Caplio RX
+ 220c Caplio GX
+ 220d Caplio R1/RZ1
+ 220e Sea & Sea 5000G
+ 220f Rollei dr5 / Rollei dr5 (PTP mode)
+ 2211 Caplio R1S
+ 2212 Caplio R1v Camera
+ 2213 Caplio R2
+ 2214 Caplio GX 8
+ 2215 DSC 725
+ 2216 Caplio R3
+ 2222 RDC-i500
+05cb PowerVision Technologies, Inc.
+ 1483 PV8630 interface (scanners, webcams)
+05cc ELSA AG
+ 2100 MicroLink ISDN Office
+ 2219 MicroLink ISDN
+ 2265 MicroLink 56k
+ 2267 MicroLink 56k (V.250)
+ 2280 MicroLink 56k Fun
+ 3000 Micolink USB2Ethernet [pegasus]
+ 3100 AirLancer USB-11
+ 3363 MicroLink ADSL Fun
+05cd Silicom, Ltd
+05ce sci-worx GmbH
+05cf Sung Forn Co., Ltd
+05d0 GE Medical Systems Lunar
+05d1 Brainboxes, Ltd
+ 0003 Bluetooth Adapter BL-554
+05d2 Wave Systems Corp.
+05d3 Tohoku Ricoh Co., Ltd
+05d5 Super Gate Technology Co., Ltd
+05d6 Philips Semiconductors, CICT
+05d7 Thomas & Betts Corp.
+ 0099 10Mbps Ethernet [klsi]
+05d8 Ultima Electronics Corp.
+ 4001 Artec Ultima 2000
+ 4002 Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner
+ 4003 Artec E+ 48U
+ 4004 Artec E+ Pro
+ 4005 MEM48U
+ 4006 TRUST EASY WEBSCAN 19200
+ 4007 TRUST 240H EASY WEBSCAN GOLD
+ 4008 Trust Easy Webscan 19200
+ 4009 Umax Astraslim
+ 4013 IT Scan 1200
+ 8105 Artec T1 USB TVBOX (cold)
+ 8106 Artec T1 USB TVBOX (warm)
+ 8107 Artec T1 USB TVBOX with AN2235 (cold)
+ 8108 Artec T1 USB TVBOX with AN2235 (warm)
+ 8109 Artec T1 USB2.0 TVBOX (cold
+05d9 Axiohm Transaction Solutions
+ a225 A225 Printer
+ a758 A758 Printer
+ a794 A794 Printer
+05da Microtek International, Inc.
+ 0091 ScanMaker X6u
+ 0093 ScanMaker V6USL
+ 0094 Phantom 336CX/C3
+ 0099 ScanMaker X6/X6U
+ 009a Phantom C6
+ 00a0 Phantom 336CX/C3 (#2)
+ 00a3 ScanMaker V6USL
+ 00ac ScanMaker V6UL
+ 00b6 ScanMaker V6UPL
+ 00ef ScanMaker V6UPL
+ 1006 Jenoptik JD350 entrance
+ 1011 NHJ Che-ez! Kiss Digital Camera
+ 1018 Digital Dream Enigma 1.3
+ 1020 Digital Dream l'espion xtra
+ 1025 Take-it Still Camera Device
+ 1026 Take-it
+ 1043 Take-It 1300 DSC Bulk Driver
+ 1045 Take-it D1
+ 1047 Take-it Camera Composite Device
+ 1048 Take-it Q3
+ 1049 3M Still Camera Device
+ 1051 Camcorder Series
+ 1052 Mass Storage Device
+ 1053 Take-it DV Composite Device
+ 1054 Mass Storage Device
+ 1055 Digital Camera Series(536)
+ 1056 Mass Storage Device
+ 1057 Take-it DSC Camera Device(536)
+ 1058 Mass Storage Device
+ 1059 Camcorder DSC Series
+ 1060 Microtek Take-it MV500
+ 2007 ArtixScan DI 1210
+ 200c 1394_USB2 Scanner
+ 200e ArtixScan DI 810
+ 2017 UF ICE Scanner
+ 201c 4800 Scanner
+ 201d ArtixScan DI 1610
+ 201f 4800 Scanner-ICE
+ 202e ArtixScan DI 2020
+ 208b ScanMaker 6800
+ 208f ArtixScan DI 2010
+ 209e ScanMaker 4700LP
+ 20a7 ScanMaker 5600
+ 20b0 ScanMaker X12USL
+ 20b1 ScanMaker 8700
+ 20b4 ScanMaker 4700
+ 20bd ScanMaker 5700
+ 20c9 ScanMaker 6700
+ 20d2 Microtek ArtixScan 1800f
+ 20d6 PS4000
+ 20de ScanMaker 9800XL
+ 20e0 ScanMaker 9700XL
+ 20ed ScanMaker 4700
+ 20ee Micortek ScanMaker X12USL
+ 3008 Scanner
+ 300a 4800 ICE Scanner
+ 300b 4800 Scanner
+ 300f MiniScan C5
+ 3020 4800dpi Scanner
+ 3021 1200dpi Scanner
+ 3022 Scanner 4800dpi
+ 3023 USB1200II Scanner
+ 30c1 USB600 Scanner
+ 30ce ScanMaker 3800
+ 30cf ScanMaker 4800
+ 30d4 USB1200 Scanner
+ 30d8 Scanner
+ 30d9 USB2400 Scanner
+ 30e4 ScanMaker 4100
+ 30e5 USB3200 Scanner
+ 30e6 ScanMaker i320
+ 40b3 ScanMaker 3600
+ 40b8 ScanMaker 3700
+ 40c7 ScanMaker 4600
+ 40ca ScanMaker 3600
+ 40cb ScanMaker 3700
+ 40dd ScanMaker 3750i
+ 40ff ScanMaker 3600
+ 5003 Goya
+ 5013 3200 Scanner
+ 80a3 ScanMaker V6USL (#2)
+ 80ac ScanMaker V6UL/SpicyU
+05db Sun Corp. (Suntac?)
+ 0003 SUNTAC U-Cable type D2
+ 0005 SUNTAC U-Cable type P1
+ 0009 SUNTAC Slipper U
+ 000a SUNTAC Ir-Trinity
+ 000b SUNTAC U-Cable type A3
+ 0011 SUNTAC U-Cable type A4
+05dc Lexar Media, Inc.
+ 0001 jumpSHOT CompactFlash Reader
+ 0002 JumpShot
+ 0003 JumpShot
+ 0080 Jumpdrive Secure 64MB
+ 0081 RBC Compact Flash Drive
+ 00a7 JumpDrive Impact
+ 0100 JumpDrive PRO
+ 0200 JumpDrive 2.0 Pro
+ 0300 Jumpdrive Geysr
+ 0301 JumpDrive Classic
+ 0302 JD Micro
+ 0303 JD Micro Pro
+ 0304 JD Secure II
+ 0310 JumpDrive
+ 0311 JumpDrive Classic
+ 0312 JD Micro
+ 0313 JD Micro Pro
+ 0320 JumpDrive
+ 0321 JD Micro
+ 0322 JD Micro Pro
+ 0323 UFC
+ 0330 JumpDrive Expression
+ 0340 JumpDrive TAD
+ 0350 Express Card
+ 0400 UFDC
+ 0401 UFDC
+ 0403 Locked B Device
+ 0405 Locked C Device
+ 0407 Locked D Device
+ 0409 Locked E Device
+ 040b Locked F Device
+ 040d Locked G Device
+ 040f Locked H Device
+ 0410 JumpDrive
+ 0411 JumpDrive
+ 0413 Locked J Device
+ 0415 Locked K Device
+ 0417 Locked L Device
+ 0419 Locked M Device
+ 041b Locked N Device
+ 041d Locked O Device
+ 041f Locked P Device
+ 0420 JumpDrive
+ 0421 JumpDrive
+ 0423 Locked R Device
+ 0425 Locked S Device
+ 0427 Locked T Device
+ 0429 Locked U Device
+ 042b Locked V Device
+ 042d Locked W Device
+ 042f Locked X Device
+ 0431 Locked Y Device
+ 0433 Locked Z Device
+ 4d02 MP3 Player
+ 4d12 MP3 Player
+ 4d30 MP3 Player
+ a300 JumpDrive2
+ a400 JumpDrive trade; Pro 40-501
+ a410 JumpDrive 128MB/256MB
+ a411 JumpDrive Traveler
+ a420 JumpDrive Pro
+ a421 JumpDrive Pro II
+ a422 JumpDrive Micro Pro
+ a430 JumpDrive Secure
+ a431 JumpDrive Secure II
+ a432 JumpDrive Classic
+ a440 JumpDrive Lightning
+ a450 JumpDrive TouchGuard
+ a460 JD Mercury
+ a501 JumpDrive Classic
+ a510 JumpDrive Sport
+ a530 JumpDrive Expression
+ a531 JumpDrive Secure II
+ a560 JumpDrive FireFly
+ a701 JumpDrive FireFly
+ a731 JumpDrive FireFly
+ a790 JumpDrive 2GB
+ b002 USB CF Reader
+ b018 Multi-Card Reader
+ b047 SDHC Reader [RW047-7000]
+05dd Delta Electronics, Inc.
+ ff31 AWU-120
+ ff32 FriendlyNET AeroLAN AL2011
+ ff35 PCW 100 - Wireless 802.11b Adapter
+ ff91 2Wire PC Port Phoneline 10Mbps Adapter
+05df Silicon Vision, Inc.
+05e0 Symbol Technologies
+ 0700 Bar Code Scanner (CS1504)
+ 0800 Spectrum24 Wireless LAN Adapter
+ 1200 DS6608 Bar Code Scanner
+ 1900 SNAPI Imaging Device
+ 2000 MC3090 Rugged Mobile Computer
+ 200d MC70 Rugged Mobile Computer
+05e1 Syntek Semiconductor Co., Ltd
+ 0100 802.11g + Bluetooth Wireless Adapter
+ 0408 STK1160 Video Capture Device
+ 0500 DC-112X Webcam
+ 0501 DC-1125 Webcam
+ 0890 STK011 Camera
+ 0892 STK013 Camera
+ 0895 STK016 Camera
+ 0896 STK017 Camera
+05e2 ElecVision, Inc.
+05e3 Genesys Logic, Inc.
+ 000a Keyboard with PS/2 Port
+ 000b Mouse
+ 0100 Nintendo Game Boy Advance SP
+ 0120 Pacific Image Electronics PrimeFilm 1800u slide/negative scanner
+ 0131 CF/SM Reader/Writer
+ 0142 Multiple Slides Scanner-3600
+ 0143 Multiple Frames Film Scanner-36series
+ 0180 Plustek Scanner
+ 0182 Wize Media 1000
+ 0189 ScanJet 4600 series
+ 018a Xerox 6400
+ 0300 GLUSB98PT Parallel Port
+ 0301 USB2LPT Cable Release2
+ 0406 Hub
+ 0501 GL620USB Host-Host interface
+ 0502 GL620USB-A GeneLink USB-USB Bridge
+ 0503 Webcam
+ 0504 HID Keyboard Filter
+ 0604 USB 1.1 Hub
+ 0605 USB 2.0 Hub [ednet]
+ 0606 USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
+ 0608 USB-2.0 4-Port HUB
+ 0660 USB 2.0 Hub
+ 0700 SIIG US2256 CompactFlash Card Reader
+ 0701 USB 2.0 IDE Adapter
+ 0702 USB 2.0 IDE Adapter [GL811E]
+ 0703 Card Reader
+ 0704 Card Reader
+ 0705 Card Reader
+ 0706 Card Reader
+ 0707 Card Reader
+ 0708 Card Reader
+ 0709 Card Reader
+ 070a Pen Flash
+ 070b DMHS1B Rev 3 DFU Adapter
+ 070e USB 2.0 Card Reader
+ 070f Pen Flash
+ 0710 USB 2.0 33-in-1 Card Reader
+ 0711 Card Reader
+ 0712 Delkin Mass Storage Device
+ 0715 USB 2.0 microSD Reader
+ 0716 USB 2.0 Multislot Card Reader/Writer
+ 0717 All-in-1 Card Reader
+ 0718 IDE/SATA Adapter
+ 0723 GL827L SD/MMC/MS Flash Card Reader
+ 0760 USB 2.0 Card Reader/Writer
+ 0761 Genesys Mass Storage Device
+ 0780 USBFS DFU Adapter
+ 07a0 Pen Flash
+ 0880 Wasp (SL-6612)
+ 0927 Card Reader
+ 1205 Afilias Optical Mouse H3003 / Trust Optical USB MultiColour Mouse MI-2330
+ a700 Pen Flash
+ f102 VX7012 TV Box
+ f103 VX7012 TV Box
+ f104 VX7012 TV Box
+ fd21 3M TL20 Temperature Logger
+ fe00 Razer Mouse
+05e4 Red Wing Corp.
+05e5 Fuji Electric Co., Ltd
+05e6 Keithley Instruments
+05e8 ICC, Inc.
+05e9 Kawasaki LSI
+ 0008 KL5KUSB101B Ethernet [klsi]
+ 0009 Sony 10Mbps Ethernet [pegasus]
+ 000c USB-to-RS-232
+ 000d USB-to-RS-232
+ 0014 RS-232 J104
+ 0040 Ethernet Adapter
+ 2008 Ethernet Adapter
+05eb FFC, Ltd
+05ec COM21, Inc.
+05ee Cytechinfo Inc.
+05ef AVB, Inc. [anko?]
+ 020a Top Shot Pegasus Joystick
+ 8884 Mag Turbo Force Wheel
+ 8888 Top Shot Force Feedback Racing Wheel
+05f0 Canopus Co., Ltd
+ 0101 DA-Port DAC
+05f1 Compass Communications
+05f2 Dexin Corp., Ltd
+ 0010 AQ Mouse
+05f3 PI Engineering, Inc.
+ 0007 Kinesis Advantage PRO MPC/USB Keyboard
+ 0081 Kinesis Integrated Hub
+ 00ff VEC Footpedal
+ 020b PS2 Adapter
+ 0232 X-Keys Switch Interface, Programming Mode
+ 0261 X-Keys Switch Interface, SPLAT Mode
+ 0264 X-Keys Switch Interface, Composite Mode
+05f5 Unixtar Technology, Inc.
+05f6 AOC International
+05f7 RFC Distribution(s) PTE, Ltd
+05f9 PSC Scanning, Inc.
+ 2602 Datalogic Magellan 1100i Barcode Scanner
+05fa Siemens Telecommunications Systems, Ltd
+ 3301 Keyboard with PS/2 Mouse Port
+ 3302 Keyboard
+ 3303 Keyboard with PS/2 Mouse Port
+05fc Harman Multimedia
+ 7849 Harman/Kardon SoundSticks
+05fd InterAct, Inc.
+ 0239 SV-239 HammerHead Digital
+ 0251 Raider Pro
+ 0253 ProPad 8 Digital
+ 0286 SV-286 Cyclone Digital
+ 107a PowerPad Pro X-Box pad
+ 262a 3dfx HammerHead FX
+ 262f HammerHead Fx
+ daae Game Shark
+05fe Chic Technology Corp.
+ 0001 Mouse
+ 0003 Cypress USB Mouse
+ 0005 Viewmaster 4D Browser Mouse
+ 0007 Twinhead Mouse
+ 0009 Inland Pro 4500/5000 Mouse
+ 0011 Browser Mouse
+ 0014 Gamepad
+ 1010 Optical Wireless
+05ff LeCroy Corp.
+0600 Barco Display Systems
+0601 Jazz Hipster Corp.
+ 0003 Internet Security Co., Ltd. SecureKey
+0602 Vista Imaging, Inc.
+ 1001 ViCam Webcam
+0603 Novatek Microelectronics Corp.
+ 00f1 Keyboard
+ 6871 Mouse
+0604 Jean Co., Ltd
+0605 Anchor C&C Co., Ltd
+0606 Royal Information Electronics Co., Ltd
+0607 Bridge Information Co., Ltd
+0608 Genrad Ads
+0609 SMK Manufacturing, Inc.
+ 031d eHome Infrared Receiver
+ 0322 eHome Infrared Receiver
+ 0334 eHome Infrared Receiver
+ ff12 SMK Bluetooth Device
+060a Worthington Data Solutions, Inc.
+060b Solid Year
+ 0001 MacAlly Keyboard
+ 0230 KSK-8003 UX Keyboard
+ 1006 Japanese Keyboard - 260U
+ 2101 Keyboard
+ 2231 KSK-6001 UELX Keyboard
+ 5811 ACK-571U Wireless Keyboard
+ 5903 Japanese Keyboard - 595U
+ 6001 SolidTek USB 2p HUB
+ 6002 SolidTek USB Keyboard
+ 6003 Japanese Keyboard - 600HM
+ a001 Maxwell Compact Pc PM3
+060c EEH Datalink GmbH
+060d Auctor Corp.
+060e Transmonde Technologies, Inc.
+060f Joinsoon Electronics Mfg. Co., Ltd
+0610 Costar Electronics, Inc.
+0611 Totoku Electric Co., Ltd
+0613 TransAct Technologies, Inc.
+0614 Bio-Rad Laboratories
+0615 Quabbin Wire & Cable Co., Inc.
+0616 Future Techno Designs PVT, Ltd
+0617 Swiss Federal Insitute of Technology
+0618 MacAlly
+ 0101 Mouse
+0619 Seiko Instruments, Inc.
+ 0101 SLP-100 Driver
+ 0102 SLP-200 Driver
+ 0103 SLP-100N Driver
+ 0104 SLP-200N Driver
+ 0105 SLP-240 Driver
+ 0501 SLP-440 Driver
+ 0502 SLP-450 Driver
+061a Veridicom International, Inc.
+ 0110 5thSense Fingerprint Sensor
+ 0200 FPS200 Fingerprint Sensor
+ 8200 VKI-A Fingerprint Sensor/Flash Storage (dumb)
+ 9200 VKI-B Fingerprint Sensor/Flash Storage (smart)
+061b Promptus Communications, Inc.
+061c Act Labs, Ltd
+061d Quatech, Inc.
+061e Nissei Electric Co.
+ 0001 nissei 128DE-USB -
+ 0010 nissei 128DE-PNA -
+0620 Alaris, Inc.
+ 0004 QuickVideo weeCam
+ 0007 QuickVideo weeCam
+ 000a QuickVideo weeCam
+ 000b QuickVideo weeCam
+0621 ODU-Steckverbindungssysteme GmbH & Co. KG
+0622 Iotech, Inc.
+0623 Littelfuse, Inc.
+0624 Avocent Corp.
+ 0294 Dell 03R874 KVM dongle
+0625 TiMedia Technology Co., Ltd
+0626 Nippon Systems Development Co., Ltd
+0627 Adomax Technology Co., Ltd
+0628 Tasking Software, Inc.
+0629 Zida Technologies, Ltd
+062a Creative Labs
+ 0000 Optical mouse
+ 0001 Notebook Optical Mouse
+ 0102 Wireless Keyboard/Mouse Combo [MK1152WC]
+ 0201 Defender Office Keyboard (K7310) S Zodiak KM-9010
+ 0252 Emerge Uni-retractable Laser Mouse
+ 9003 VoIP Conference Hub (A16GH)
+ 9004 USR9602 USB Internet Mini Phone
+062b Greatlink Electronics Taiwan, Ltd
+062c Institute for Information Industry
+062d Taiwan Tai-Hao Enterprises Co., Ltd
+062e Mainsuper Enterprises Co., Ltd
+062f Sin Sheng Terminal & Machine, Inc.
+0631 JUJO Electronics Corp.
+0633 Cyrix Corp.
+0634 Micron Technology, Inc.
+ 0655 Embedded Mass Storage Drive [RealSSD]
+0635 Methode Electronics, Inc.
+0636 Sierra Imaging, Inc.
+ 0003 Vivicam 35Xx
+0638 Avision, Inc.
+ 0268 iVina 1200U Scanner
+ 026a Minolta Dimage Scan Dual II
+ 0a10 iVina FB1600/UMAX Astra 4500
+ 0a13 AV600U
+ 0a16 SC-215
+ 0a30 UMAX Astra 6700 Scanner
+ 0a41 Avision AM3000/MF3000 Series
+ 0f01 fi-4010CU
+ 4004 Minolta Dimage Scan Elite II
+0639 Chrontel, Inc.
+063a Techwin Corp.
+063b Taugagreining HF
+063c Yamaichi Electronics Co., Ltd (Sakura)
+063d Fong Kai Industrial Co., Ltd
+063e RealMedia Technology, Inc.
+063f New Technology Cable, Ltd
+0640 Hitex Development Tools
+ 0026 LPC-Stick
+0641 Woods Industries, Inc.
+0642 VIA Medical Corp.
+0644 TEAC Corp.
+ 0000 Floppy
+ 0200 All-In-One Multi-Card Reader CA200/B/S
+ 1000 CD-ROM Drive
+ 800d TASCAM Portastudio DP-01FX
+ 800e TASCAM US-122L
+ 8021 TASCAM US-122mkII
+ d001 CD-R/RW Unit
+ d002 CD-R/RW Unit
+ d010 CD-RW/DVD Unit
+0645 Who? Vision Systems, Inc.
+0646 UMAX
+0647 Acton Research Corp.
+ 0100 ARC SpectraPro UV/VIS/IR Monochromator/Spectrograph
+ 0101 ARC AM-VM Mono Airpath/Vacuum Monochromator/Spectrograph
+ 0102 ARC Inspectrum Mono
+ 0103 ARC Filterwheel
+ 03e9 Inspectrum 128x1024 F VIS Spectrograph
+ 03ea Inspectrum 256x1024 F VIS Spectrograph
+ 03eb Inspectrum 128x1024 B VIS Spectrograph
+ 03ec Inspectrum 256x1024 B VIS Spectrograph
+0648 Inside Out Networks
+0649 Weli Science Co., Ltd
+064b Analog Devices, Inc. (White Mountain DSP)
+ 0165 Blackfin 535 [ADZS HPUSB ICE]
+064c Ji-Haw Industrial Co., Ltd
+064d TriTech Microelectronics, Ltd
+064e Suyin Corp.
+ a100 Acer OrbiCam
+ a101 Acer CrystalEye Webcam
+ a102 Acer/Lenovo Webcam [CN0316]
+ a103 Acer/HP Integrated Webcam [CN0314]
+ a110 HP Webcam
+ a136 Asus Integrated Webcam [CN031B]
+ a219 1.3M WebCam (notebook emachines E730, Acer sub-brand)
+ c107 HP webcam [dv6-1190en]
+ d101 Acer CrystalEye Webcam
+ e201 Lenovo Integrated Webcam
+ e203 Lenovo Integrated Webcam
+ f102 Lenovo Integrated Webcam [R5U877]
+ f103 Lenovo Integrated Webcam [R5U877]
+064f WIBU-Systems AG
+ 03e9 Propellerhead Record Ignition Key
+ 03f2 CmStick/M (article no. 1010)
+ 03f3 CmStick/M (article no. 1011)
+ 0bd7 BOX/U
+ 0bd8 BOX/RU
+0650 Dynapro Systems
+0651 Likom Technology Sdn. Bhd.
+0652 Stargate Solutions, Inc.
+0653 CNF, Inc.
+0654 Granite Microsystems, Inc.
+ 0005 Device Bay Controller
+ 0006 Hub
+ 0007 Device Bay Controller
+ 0016 Hub
+0655 Space Shuttle Hi-Tech Co., Ltd
+0656 Glory Mark Electronic, Ltd
+0657 Tekcon Electronics Corp.
+0658 Sigma Designs, Inc.
+0659 Aethra
+065a Optoelectronics Co., Ltd
+ 0001 Barcode scanner
+065b Tracewell Systems
+065e Silicon Graphics
+065f Good Way Technology Co., Ltd & GWC technology Inc.
+0660 TSAY-E (BVI) International, Inc.
+0661 Hamamatsu Photonics K.K.
+0662 Kansai Electric Co., Ltd
+0663 Topmax Electronic Co., Ltd
+ 0103 CobraPad
+0664 ET&T Technology Co., Ltd.
+ 0301 Groovy Technology Corp. GTouch Touch Screen
+ 0302 Groovy Technology Corp. GTouch Touch Screen
+ 0303 Groovy Technology Corp. GTouch Touch Screen
+ 0304 Groovy Technology Corp. GTouch Touch Screen
+ 0305 Groovy Technology Corp. GTouch Touch Screen
+ 0306 Groovy Technology Corp. GTouch Touch Screen
+ 0307 Groovy Technology Corp. GTouch Touch Screen
+ 0309 Groovy Technology Corp. GTouch Touch Screen
+0665 Cypress Semiconductor
+ 5161 USB to Serial
+0667 Aiwa Co., Ltd
+ 0fa1 TD-U8000 Tape Drive
+0668 WordWand
+0669 Oce' Printing Systems GmbH
+066a Total Technologies, Ltd
+066b Linksys, Inc.
+ 0105 SCM eUSB SmartMedia Card Reader
+ 010a Melco MCR-U2 SmartMedia / CompactFlash Reader
+ 200c USB10TX
+ 2202 USB10TX Ethernet [pegasus]
+ 2203 USB100TX Ethernet [pegasus]
+ 2204 USB100TX HomePNA Ethernet [pegasus]
+ 2206 USB Ethernet [pegasus]
+ 2207 HomeLink Phoneline 10M Network Adapter
+ 2211 WUSB11 802.11b Adapter
+ 2212 WUSB11v2.5 802.11b Adapter
+ 2213 WUSB12v1.1 802.11b Adapter
+ 2219 Instant Wireless Network Adapter
+ 400b USB10TX
+066d Entrega, Inc.
+066e Acer Semiconductor America, Inc.
+066f SigmaTel, Inc.
+ 003b MP3 Player
+ 003e MP3 Player
+ 003f MP3 Player
+ 0040 MP3 Player
+ 0041 MP3 Player
+ 0042 MP3 Player
+ 0043 MP3 Player
+ 004b A-Max PA11 MP3 Player
+ 3400 STMP3400 D-Major MP3 Player
+ 3410 STMP3410 D-Major MP3 Player
+ 3500 Player Recovery Device
+ 4200 STIr4200 IrDA Bridge
+ 4210 STIr4210 IrDA Bridge
+ 8000 MSCN MP3 Player
+ 8001 SigmaTel MSCN Audio Player
+ 8004 MSCNMMC MP3 Player
+ 8008 i-Bead 100 MP3 Player
+ 8020 MP3 Player
+ 8034 MP3 Player
+ 8036 MP3 Player
+ 8038 MP3 Player
+ 8056 MP3 Player
+ 8060 MP3 Player
+ 8066 MP3 Player
+ 807e MP3 Player
+ 8092 MP3 Player
+ 8096 MP3 Player
+ 809a MP3 Player
+ 80aa MP3 Player
+ 80ac MP3 Player
+ 80b8 MP3 Player
+ 80ba MP3 Player
+ 80bc MP3 Player
+ 80bf MP3 Player
+ 80c5 MP3 Player
+ 80c8 MP3 Player
+ 80ca MP3 Player
+ 80cc MP3 Player
+ 8104 MP3 Player
+ 8106 MP3 Player
+ 8108 MP3 Player
+ 810a MP3 Player
+ 810c MP3 Player
+ 8122 MP3 Player
+ 8124 MP3 Player
+ 8126 MP3 Player
+ 8128 MP3 Player
+ 8134 MP3 Player
+ 8136 MP3 Player
+ 8138 MP3 Player
+ 813a MP3 Player
+ 813e MP3 Player
+ 8140 MP3 Player
+ 8142 MP3 Player
+ 8144 MP3 Player
+ 8146 MP3 Player
+ 8148 MP3 Player
+ 814c MP3 Player
+ 8201 MP3 Player
+ 8202 Jens of Sweden / I-BEAD 150M/150H MP3 player
+ 8203 MP3 Player
+ 8204 MP3 Player
+ 8205 MP3 Player
+ 8206 Digital MP3 Music Player
+ 8207 MP3 Player
+ 8208 MP3 Player
+ 8209 MP3 Player
+ 820a MP3 Player
+ 820b MP3 Player
+ 820c MP3 Player
+ 820d MP3 Player
+ 820e MP3 Player
+ 820f MP3 Player
+ 8210 MP3 Player
+ 8211 MP3 Player
+ 8212 MP3 Player
+ 8213 MP3 Player
+ 8214 MP3 Player
+ 8215 MP3 Player
+ 8216 MP3 Player
+ 8217 MP3 Player
+ 8218 MP3 Player
+ 8219 MP3 Player
+ 821a MP3 Player
+ 821b MP3 Player
+ 821c MP3 Player
+ 821d MP3 Player
+ 821e MP3 Player
+ 821f MP3 Player
+ 8220 MP3 Player
+ 8221 MP3 Player
+ 8222 MP3 Player
+ 8223 MP3 Player
+ 8224 MP3 Player
+ 8225 MP3 Player
+ 8226 MP3 Player
+ 8227 MP3 Player
+ 8228 MP3 Player
+ 8229 MP3 Player
+ 8230 MP3 Player
+ 829c MP3 Player
+ 82e0 MP3 Player
+ 835d MP3 Player
+ 9000 MP3 Player
+ 9001 MP3 Player
+ 9002 MP3 Player
+0670 Sequel Imaging
+ 0001 Calibrator
+ 0005 Enable Cable
+0672 Labtec, Inc.
+ 1041 LCS1040 Speaker System
+ 5000 SpaceBall 4000 FLX
+0673 HCL
+ 5000 Keyboard
+0674 Key Mouse Electronic Enterprise Co., Ltd
+0675 DrayTek Corp.
+ 0110 Vigor 128 ISDN TA
+ 0530 Vigor530 IEEE 802.11G Adapter (ISL3880+NET2280)
+ 0550 Vigor550
+ 1688 miniVigor 128 ISDN TA
+ 6694 USB ISDN TA
+0676 Teles AG
+0677 Aiwa Co., Ltd
+ 07d5 TM-ED1285(USB)
+ 0fa1 TD-U8000 Tape Drive
+0678 ACard Technology Corp.
+067b Prolific Technology, Inc.
+ 0000 PL2301 USB-USB Bridge
+ 0001 PL2302 USB-USB Bridge
+ 0307 Motorola Serial Adapter
+ 04bb PL2303 Serial (IODATA USB-RSAQ2)
+ 0610 Onext EG210U MODEM
+ 0611 AlDiga AL-11U Quad-band GSM/GPRS/EDGE modem
+ 2303 PL2303 Serial Port
+ 2305 PL2305 Parallel Port
+ 2306 Raylink Bridge Controller
+ 2307 PL2307 USB-ATAPI4 Bridge
+ 2313 FITEL PHS U Cable Adaptor
+ 2315 Flash Disk Embedded Hub
+ 2316 Flash Disk Security Device
+ 2317 Mass Storage Device
+ 2501 PL2501 USB-USB Bridge (USB 2.0)
+ 2507 PL2507 Hi-speed USB to IDE bridge controller
+ 2515 Flash Disk Embedded Hub
+ 2517 Flash Disk Mass Storage Device
+ 25a1 PL25A1 Host-Host Bridge
+ 3400 Hi-Speed Flash Disk with TruePrint AES3400
+ 3500 Hi-Speed Flash Disk with TruePrint AES3500
+ 3507 PL3507 ATAPI6 Bridge
+ aaa0 Prolific Pharos
+ aaa2 PL2303 Serial Adapter (IODATA USB-RSAQ3)
+067c Efficient Networks, Inc.
+ 1001 Siemens SpeedStream 100MBps Ethernet
+ 1022 Siemens SpeedStream 1022 802.11b Adapter
+ 1023 SpeedStream Wireless
+ 4020 SpeedStream 4020 ATM/ADSL Installer
+ 4031 Efficient ADSL Modem
+ 4032 SpeedStream 4031 ATM/ADSL Installer
+ 4033 SpeedStream 4031 ATM/ADSL Installer
+ 4060 Alcatel Speedstream 4060 ADSL Modem
+ 4062 Efficient Networks 4060 Loader
+ 5667 Efficient Networks Virtual Bus for ADSL Modem
+ c031 SpeedStream 4031 ATM/ADSL Installer
+ c032 SpeedStream 4031 ATM/ADSL Installer
+ c033 SpeedStream 4031 ATM/ADSL Installer
+ c060 SpeedStream 4060 Miniport ATM/ADSL Adapter
+ d667 Efficient Networks Virtual Bus for ADSL Modem
+ e240 Speedstream Ethernet Adapter E240
+ e540 Speedstream Ethernet Adapter E240
+067d Hohner Corp.
+067e Intermec Technologies Corp.
+ 0801 HID Keyboard, Barcode scanner
+ 0803 VCP, Barcode scanner
+ 0805 VCP + UVC, Barcode scanner
+ 1001 Mobile Computer
+067f Virata, Ltd
+ 4552 DSL-200 ADSL Modem
+ 6542 DSL Modem
+ 6549 DSL Modem
+ 7541 DSL Modem
+0680 Realtek Semiconductor Corp., CPP Div. (Avance Logic)
+ 0002 Arowana Optical Wheel Mouse MSOP-01
+0681 Siemens Information and Communication Products
+ 0001 Dect Base
+ 0002 Gigaset 3075 Passive ISDN
+ 0005 ID-Mouse with Fingerprint Reader
+ 0012 I-Gate 802.11b Adapter
+ 001b WLL013
+ 001d Hipath 1000
+ 0022 Gigaset SX353 ISDN
+ 0026 DECT Data - Gigaset M34
+ 002b A-100-I ADSL Modem
+ 002e ADSL Router_S-141
+ 0034 GSM module MC35/ES75 USB Modem
+ 3c06 54g USB Network Adapter
+0682 Victor Company of Japan, Ltd
+0684 Actiontec Electronics, Inc.
+0686 Minolta Co., Ltd
+ 2001 PagePro 4110W
+ 2004 PagePro 1200W
+ 2005 Magicolor 2300 DL
+ 3001 PagePro 4100
+ 3005 PagePro 1250E
+ 3006 PagePro 1250W
+ 3009 Magicolor 2300W
+ 300b PagePro 1350W
+ 300c PagePro 1300W
+ 302e Develop D 1650iD PCL
+ 3034 Develop D 2050iD PCL
+ 4001 Dimage 2300
+ 4003 Dimage 2330 Zoom Camera
+ 4004 Scan Elite II
+ 4005 Minolta DiMAGE E201 Mass Storage Device
+ 4006 Dimage 7 Camera
+ 4007 Dimage S304 Camera
+ 4008 Dimage 5 Camera
+ 4009 Dimage X Camera
+ 400a Dimage S404 Camera
+ 400b Dimage 7i Camera
+ 400c Dimage F100 Camera
+ 400d Scan Dual III
+ 400e Dimage 5400
+ 400f Dimage 7Hi Camera
+ 4010 Dimage Xi Camera
+ 4011 Dimage F300 Camera
+ 4012 Dimage F200 Camera
+ 4014 Dimage S414 Camera
+ 4015 Dimage XT Camera [storage]
+ 4016 Dimage XT Camera [remote mode]
+ 4017 Dimage E223
+ 4018 Dimage Z1 Camera
+ 4019 Dimage A1 Camera [remote mode]
+ 401a Dimage A1 Camera [storage]
+ 401c Dimage X20 Camera
+ 401e Dimage E323 Camera
+068a Pertech, Inc.
+068b Potrans International, Inc.
+068e CH Products, Inc.
+ 00d3 OEM 3 axis 5 button joystick
+ 00e2 HFX OEM Joystick
+ 00f1 Pro Throttle
+ 00f2 Flight Sim Pedals
+ 00f3 Fighterstick
+ 00f4 Combatstick
+ 00fa Flight Sim Pedals
+ 00ff Flight Sim Yoke
+ 0500 GameStick 3D
+ 0501 CH Pro Pedals
+ 0504 F-16 Combat Stick
+0690 Golden Bridge Electech, Inc.
+0693 Hagiwara Sys-Com Co., Ltd
+ 0002 FlashGate SmartMedia Card Reader
+ 0003 FlashGate CompactFlash Card Reader
+ 0005 FlashGate
+ 0006 SM PCCard R/W and SPD
+ 0007 FlashGate ME (Authenticated)
+ 000a SDCard/MMC Reader/Writer
+0694 Lego Group
+ 0001 Mindstorms Tower
+ 0002 Mindstorms NXT
+0698 Chuntex (CTX)
+ 1786 1300ex Monitor
+ 2003 CTX M730V built in Camera
+ 9999 VLxxxx Monitor+Hub
+0699 Tektronix, Inc.
+069a Askey Computer Corp.
+ 0001 VC010 Webcam [pwc]
+ 0303 Cable Modem
+ 0311 ADSL Router Remote NDIS Device
+ 0318 Remote NDIS Device
+ 0319 220V Remote NDIS Device
+ 0320 IEEE 802.11b Wireless LAN Card
+ 0321 Dynalink WLL013 / Compex WLU11A 802.11b Adapter
+ 0402 Scientific Atlanta WebSTAR 100 & 200 series Cable Modem
+ 0811 BT Virtual Bus for Helium
+ 0821 BT Voyager 1010 802.11b Adapter
+ 4402 Scientific Atlanta WebSTAR 2000 series Cable Modem
+ 4403 Scientific Atlanta WebSTAR 300 series Cable Modem
+ 4501 Scientific-Atlanta WebSTAR 2000 series Cable Modem
+069b Thomson, Inc.
+ 0704 DCM245 Cable Modem
+ 0705 THG540K Cable Modem
+ 070c MP3 Player
+ 070d MP3 Player
+ 070e MP3 Player
+ 070f RCA Lyra RD1071 MP3 Player
+ 0731 Lyra M200E256
+ 0761 RCA H100A
+ 0778 PEARL USB Device
+ 2220 RCA Kazoo RD1000 MP3 Player
+ 300a RCA Lyra MP3 Player
+ 3012 MP3 Player
+ 3013 MP3 Player
+ 5557 RCA CDS6300
+069d Hughes Network Systems (HNS)
+ 0001 Satellite Receiver Device
+ 0002 Satellite Device
+069e Welcat Inc.
+ 0005 Marx CryptoBox v1.2
+069f Allied Data Technologies BV
+ 0010 Tornado Speakerphone FaxModem 56.0
+ 0011 Tornado Speakerphone FaxModem 56.0
+ 1000 ADT VvBus for CopperJet
+ 1004 CopperJet 821 RouterPlus
+06a2 Topro Technology, Inc.
+ 0033 USB Mouse
+06a3 Saitek PLC
+ 0006 Cyborg Gold Joystick
+ 0109 P880 Pad
+ 0160 ST290 Pro
+ 0200 Xbox Adrenalin Hub
+ 0241 Xbox Adrenalin Gamepad
+ 0255 X52 Flight Controller
+ 040b P990 Dual Analog Pad
+ 040c P2900 Wireless Pad
+ 0422 ST90 Joystick
+ 0460 ST290 Pro Flight Stick
+ 0463 ST290
+ 0464 Cyborg Evo
+ 0471 Cyborg Graphite Stick
+ 0501 R100 Sports Wheel
+ 0502 ST200 Stick
+ 0506 R220 Digital Wheel
+ 051e Cyborg Digital II Stick
+ 052d P750 Gamepad
+ 053c X45 Flight Controller
+ 053f X36F Flightstick
+ 056c P2000 Tilt Pad
+ 056f P2000 Tilt Pad
+ 05d2 PC Dash 2
+ 075c X52 Flight Controller
+ 0762 Saitek X52 Pro Flight Control System
+ 0805 R440 Force Wheel
+ 1003 GM2 Action Pad
+ 1009 Action Pad
+ 100a SP550 Pad and Joystick Combo
+ 100b SP550 Pad
+ 1509 P3000 Wireless Pad
+ 1589 P3000 Wireless Pad
+ 2541 X45 Flight Controller
+ 3509 P3000 RF GamePad
+ 353e Cyborg Evo Wireless
+ 3589 P3000 Wireless Pad
+ 35be Cyborg Evo
+ 5509 P3000 Wireless Pad
+ 8000 Gamers' Keyboard
+ 801e Cyborg 3D Digital Stick II
+ 8020 Eclipse Keyboard
+ 8021 Eclipse II Keyboard
+ 802d P750 Pad
+ 803f X36 Flight Controller
+ 806f P2000 Tilt Pad
+ 80c0 Pro Gamer Command Unit
+ 80c1 Cyborg Command Pad Unit
+ a502 Gaming Mouse
+ f518 P3200 Rumble Force Game Pad
+ ff04 R440 Force Wheel
+ ff0c Cyborg Force Rumble Pad
+ ff0d P2600 Rumble Force Pad
+ ff12 Cyborg 3D Force Stick
+ ff17 ST 330 Rumble Force Stick
+ ff52 Cyborg 3D Rumble Force Joystick
+ ffb5 Cyborg Evo Force Joystick
+06a4 Xiamen Doowell Electron Co., Ltd
+06a5 Divio
+ 0000 Typhoon Webcam 100k [nw8000]
+ d001 ProLink DS3303u Webcam
+ d800 Chicony TwinkleCam
+ d820 Wize Media 1000
+06a7 MicroStore, Inc.
+06a8 Topaz Systems, Inc.
+ 0042 SignatureGem 1X5 Pad
+ 0043 SignatureGem 1X5-HID Pad
+06a9 Westell
+ 0005 WireSpeed Dual Connect Modem
+ 0006 WireSpeed Dual Connect Modem
+ 000a WireSpeed Dual Connect Modem
+ 000b WireSpeed Dual Connect Modem
+ 000e A90-211WG-01 802.11g Adapter [Intersil ISL3887]
+06aa Sysgration, Ltd
+06ac Fujitsu Laboratories of America, Inc.
+06ad Greatland Electronics Taiwan, Ltd
+06ae Professional Multimedia Testing Centre
+06af Harting, Inc. of North America
+06b8 Pixela Corp.
+06b9 Alcatel Telecom
+ 0120 SpeedTouch 120g 802.11g Wireless Adapter [Intersil ISL3886]
+ 0121 SpeedTouch 121g Wireless Dongle
+ 2001 SPEED TOUCH Card
+ 4061 SpeedTouch ISDN or ADSL Modem
+ a5a5 DynaMiTe Modem
+06ba Smooth Cord & Connector Co., Ltd
+06bb EDA, Inc.
+06bc Oki Data Corp.
+ 000b Okipage 14ex Printer
+ 0a91 B2500MFP (printer+scanner)
+ 3801 B6100 Laser Printer
+06bd AGFA-Gevaert NV
+ 0001 SnapScan 1212U
+ 0002 SnapScan 1236U
+ 0100 SnapScan Touch
+ 0101 SNAPSCAN ELITE
+ 0200 ScanMaker 8700
+ 02bf DUOSCAN f40
+ 0400 CL30
+ 0401 Mass Storage
+ 0403 ePhoto CL18 Camera
+ 0404 ePhoto CL20 Camera
+ 2061 SnapScan 1212U (?)
+ 208d Snapscan e40
+ 208f SnapScan e50
+ 2091 SnapScan e20
+ 2093 SnapScan e10
+ 2095 SnapScan e25
+ 2097 SnapScan e26
+ 20fd SnapScan e52
+ 20ff SnapScan e42
+06be AME Optimedia Technology Co., Ltd
+ 0800 Optimedia Camera
+ 1005 Dazzle DPVM! (1005)
+ d001 P35U Camera Capture
+06bf Leoco Corp.
+06c2 Phidgets Inc. (formerly GLAB)
+ 0030 PhidgetRFID
+ 0038 4-Motor PhidgetServo v3.0
+ 0039 1-Motor PhidgetServo v3.0
+ 003a 8-Motor PhidgetAvancedServo
+ 0040 PhidgetInterface Kit 0-0-4
+ 0044 PhidgetInterface Kit 0-16-16
+ 0045 PhidgetInterface Kit 8-8-8
+ 0048 PhidgetStepper (Under Development)
+ 0049 PhidgetTextLED Ver 1.0
+ 004a PhidgetLED Ver 1.0
+ 004b PhidgetEncoder Ver 1.0
+ 0051 PhidgetInterface Kit 0-5-7 (Custom)
+ 0052 PhidgetTextLCD
+ 0053 PhidgetInterfaceKit 0-8-8
+ 0058 PhidgetMotorControl Ver 1.0
+ 0070 PhidgetTemperatureSensor Ver 1.0
+ 0071 PhidgetAccelerometer Ver 1.0
+ 0072 PhidgetWeightSensor Ver 1.0
+ 0073 PhidgetHumiditySensor
+ 0074 PhidgetPHSensor
+ 0075 PhidgetGyroscope
+06c4 Bizlink International Corp.
+06c5 Hagenuk, GmbH
+06c6 Infowave Software, Inc.
+06c8 SIIG, Inc.
+06c9 Taxan (Europe), Ltd
+ 0005 Monitor Control
+ 0007 Monitor Control
+ 0009 Monitor Control
+06ca Newer Technology, Inc.
+06cb Synaptics, Inc.
+ 0001 HID Device
+ 0002 HID Device
+ 0003 HID Device
+ 0005 Touchpad/FPS
+ 0006 HID Device
+ 0007 HID Device
+ 0008 HID Device
+ 0009 Composite TouchPad and TrackPoint
+ 000e HID Device
+ 0010 Composite Human Interface Device
+ 0013 Human Interface Device
+06cc Terayon Communication Systems
+ 0101 Cable Modem
+ 0102 Cable Modem
+ 0103 Cable Modem
+ 0104 Cable Modem
+ 0304 Cable Modem
+06cd Keyspan
+ 0101 USA-28 PDA [no firmware]
+ 0102 USA-28X PDA [no firmware]
+ 0103 USA-19 PDA [no firmware]
+ 0104 PDA [prerenum]
+ 0105 USA-18X PDA [no firmware]
+ 0106 USA-19W PDA [no firmware]
+ 0107 USA-19 PDA
+ 0108 USA-19W PDA
+ 0109 USA-49W serial adapter [no firmware]
+ 010a USA-49W serial adapter
+ 010b USA-19Qi serial adapter [no firmware]
+ 010c USA-19Qi serial adapter
+ 010d USA-19Q serial Adapter (no firmware)
+ 010e USA-19Q serial Adapter
+ 010f USA-28 PDA
+ 0110 USA-28Xb PDA
+ 0111 USA-18 serial Adapter
+ 0112 USA-18X PDA
+ 0113 USA-28Xb PDA [no firmware]
+ 0114 USA-28Xa PDA [no firmware]
+ 0115 USA-28Xa PDA
+ 0116 USA-18XA serial Adapter (no firmware)
+ 0117 USA-18XA serial Adapter
+ 0118 USA-19QW PDA [no firmware]
+ 0119 USA-19QW PDA
+ 011a USA-49Wlc serial adapter [no firmware]
+ 011b MPR Serial Preloader (MPRQI)
+ 011c MPR Serial (MPRQI)
+ 011d MPR Serial Preloader (MPRQ)
+ 011e MPR Serial (MPRQ)
+ 0121 USA-19hs serial adapter
+ 012a USA-49Wlc serial adapter
+ 0201 UIA-10 Digital Media Remote [Cypress AN2131SC]
+ 0202 UIA-11 Digital Media Remote
+06cf SpheronVR AG
+ 1010 PanoCam 10
+ 1012 PanoCam 12/12X
+06d0 LapLink, Inc.
+ 0622 LapLink Gold USB-USB Bridge [net1080]
+06d1 Daewoo Electronics Co., Ltd
+06d3 Mitsubishi Electric Corp.
+ 0380 CP8000D Port
+ 0381 CP770D Port
+ 0385 CP900D Port
+ 0387 CP980D Port
+ 038b CP3020D Port
+ 038c CP900DW(ID) Port
+ 0393 CP9500D/DW Port
+ 0394 CP9000D/DW Port
+ 03a1 CP9550D/DW Port
+06d4 Cisco Systems
+06d5 Toshiba
+ 4000 Japanese Keyboard
+06d6 Aashima Technology B.V.
+ 0025 Gamepad
+ 0026 Predator TH 400 Gamepad
+ 002d Trust PowerC@m 350FT
+ 002e Trust PowerC@m 350FS
+ 0030 Trust 710 LCD POWERC@M ZOOM - MSD
+ 0031 Trust 610/710 LCD POWERC@M ZOOM
+ 003a Trust PowerC@m 770Z (mass storage mode)
+ 003b Trust PowerC@m 770Z (webcam mode)
+ 003c Trust 910z PowerC@m
+ 003f Trust 735S POWERC@M ZOOM, WDM DSC Bulk Driver
+ 0050 Trust 738AV LCD PV Digital Camera
+ 0062 TRUST 782AV LCD P. V. Video Capture
+ 0066 TRUST Digital PCTV and Movie Editor
+ 0067 Trust 350FS POWERC@M FLASH
+ 006b TRUST AUDIO VIDEO EDITOR
+06d7 Network Computing Devices (NCD)
+06d8 Technical Marketing Research, Inc.
+06da Phoenixtec Power Co., Ltd
+ 0002 UPS
+ 0003 1300VA UPS
+06db Paradyne
+06dc Foxlink Image Technology Co., Ltd
+ 0012 Scan 1200c Scanner
+ 0014 Prolink Winscan Pro 2448U
+06de Heisei Electronics Co., Ltd
+06e0 Multi-Tech Systems, Inc.
+ f101 MT5634ZBA-USB MultiModemUSB (old firmware)
+ f103 MT5634MU MultiMobileUSB
+ f104 MT5634ZBA-USB MultiModemUSB (new firmware)
+ f107 MT5634ZBA-USB-V92 MultiModemUSB
+06e1 ADS Technologies, Inc.
+ 0008 UBS-10BT Ethernet [klsi]
+ 0009 UBS-10BT Ethernet
+ 0833 Mass Storage Device
+ a155 FM Radio Receiver/Instant FM Music (RDX-155-EF)
+ a160 Instant Video-To-Go RDX-160 (no firmware)
+ a161 Instant Video-To-Go RDX-160
+ a190 Instand VCD Capture
+ a191 Instant VideoXpress
+ a337 Mini DigitalTV
+ a701 DVD Xpress
+ b337 Mini DigitalTV
+ b701 DVD Xpress B
+06e4 Alcatel Microelectronics
+06e6 Tiger Jet Network, Inc.
+ 0200 Internet Phone
+ 0201 Internet Phone
+ 0202 Composite Device
+ 0203 Internet Phone
+ 0210 Composite Device
+ 0211 Internet Phone
+ 0212 Internet Phone
+ 031c Internet Phone
+ 031d Internet Phone
+ 031e Internet Phone
+ 3200 Composite Device
+ 3201 Internet Phone
+ 3202 Composite Device
+ 3203 Composite Device
+ 7200 Composite Device
+ 7210 Composite Device
+ 7250 Composite Device
+ 825c Internet Phone
+ 831c Internet Phone
+ 831d Composite Device
+ 831e Composite Device
+ b200 Composite Device
+ b201 Composite Device
+ b202 Internet Phone
+ b210 Internet Phone
+ b211 Composite Device
+ b212 Composite Device
+ b250 Composite Device
+ b251 Internet Phone
+ b252 Internet Phone
+ c200 Internet Phone
+ c201 Internet Phone
+ c202 Composite Device
+ c203 Internet Phone
+ c210 Personal PhoneGateway
+ c211 Personal PhoneGateway
+ c212 Personal PhoneGateway
+ c213 PPG Device
+ c25c Composite Device
+ c290 PPG Device
+ c291 PPG Device
+ c292 PPG Device
+ c293 Personal PhoneGateway
+ c31c Composite Device
+ c39c Personal PhoneGateway
+ c39d PPG Device
+ c39e PPG Device
+ c39f PPG Device
+ c700 Internet Phone
+ c701 Internet Phone
+ c702 Composite Device
+ c703 Internet Phone
+ c710 VoIP Combo Device
+ c711 VoIP Combo
+ c712 VoIP Combo Device
+ c713 VoIP Combo Device
+ cf00 Composite Device
+ cf01 Internet Phone
+ cf02 Internet Phone
+ cf03 Composite Device
+ d210 Personal PhoneGateway
+ d211 PPG Device
+ d212 PPG Device
+ d213 Personal PhoneGateway
+ d700 Composite Device
+ d701 Composite Device
+ d702 Internet Phone
+ d703 Composite Device
+ d710 VoIP Combo
+ d711 VoIP Combo Device
+ d712 VoIP Combo
+ d713 VoIP Combo
+ df00 Composite Device
+ df01 Composite Device
+ df02 Internet Phone
+ df03 Internet Phone
+ f200 Internet Phone
+ f201 Internet Phone
+ f202 Composite Device
+ f203 Composite Device
+ f210 Internet Phone
+ f250 Composite Device
+ f252 Internet Phone
+ f310 Internet Phone
+ f350 Composite Device
+06ea Sirius Technologies
+ 0001 NetCom Roadster II 56k
+ 0002 Roadster II 56k
+06eb PC Expert Tech. Co., Ltd
+06ef I.A.C. Geometrische Ingenieurs B.V.
+06f0 T.N.C Industrial Co., Ltd
+ de01 DualCam Video Camera
+ de02 DualCam Still Camera
+06f1 Opcode Systems, Inc.
+ a011 SonicPort
+ a021 SonicPort Optical
+06f2 Emine Technology Co.
+ 0011 KVM Switch Keyboard
+06f6 Wintrend Technology Co., Ltd
+06f7 Wailly Technology Ltd
+ 0003 USB->Din 4 Adaptor
+06f8 Guillemot Corp.
+ 3002 Hercules Blog Webcam
+ 3004 Hercules Classic Silver
+ 3005 Hercules Dualpix Exchange
+ 3007 Hercules Dualpix Chat and Show
+ a300 Dual Analog Leader GamePad
+ b000 Hercules DJ Console
+ c000 Hercules Muse Pocket
+ d002 Hercules DJ Console
+ e000 HWGUSB2-54 WLAN
+ e010 HWGUSB2-54-LB
+ e020 HWGUSB2-54V2-AP
+ e031 Hercules HWNUm-300 Wireless N mini [Realtek RTL8191SU]
+ e032 HWGUm-54 [Hercules Wireless G Ultra Mini Key]
+ e033 Hercules HWNUp-150 802.11n Wireless N Pico [Realtek RTL8188CUS]
+06f9 ASYST electronic d.o.o.
+06fa HSD S.r.L
+06fc Motorola Semiconductor Products Sector
+06fd Boston Acoustics
+ 0101 Audio Device
+ 0102 Audio Device
+ 0201 2-piece Audio Device
+06fe Gallant Computer, Inc.
+0701 Supercomal Wire & Cable SDN. BHD.
+0703 Bvtech Industry, Inc.
+0705 NKK Corp.
+0706 Ariel Corp.
+0707 Standard Microsystems Corp.
+ 0100 2202 Ethernet [klsi]
+ 0200 2202 Ethernet [pegasus]
+ 0201 EZ Connect USB Ethernet
+ ee04 SMCWUSB32 802.11b Wireless LAN Card
+ ee06 SMC2862W-G v1 EZ Connect 802.11g Adapter [Intersil ISL3886]
+ ee13 SMC2862W-G v2 EZ Connect 802.11g Adapter [Intersil ISL3887]
+0708 Putercom Co., Ltd
+ 047e USB-1284 BRIDGE
+0709 Silicon Systems, Ltd (SSL)
+070a Oki Electric Industry Co., Ltd
+ 4002 Bluetooth Device
+ 4003 Bluetooth Device
+070d Comoss Electronic Co., Ltd
+070e Excel Cell Electronic Co., Ltd
+0710 Connect Tech, Inc.
+ 0001 WhiteHeat (fake ID)
+ 8001 WhiteHeat
+0711 Magic Control Technology Corp.
+ 0100 Hub
+ 0180 IRXpress Infrared Device
+ 0181 IRXpress Infrared Device
+ 0200 BAY-3U1S1P Serial Port
+ 0210 MCT1S Serial Port
+ 0230 MCT-232 Serial Port
+ 0231 PS/2 Mouse Port
+ 0232 Serial On Port
+ 0240 PS/2 to USB Converter
+ 0300 BAY-3U1S1P Parallel Port
+ 0302 Parallel Port
+ 0900 SVGA Adapter
+ 5001 Trigger UV-002BD[Startech USBVGAE]
+0713 Interval Research Corp.
+0714 NewMotion, Inc.
+ 0003 ADB to USB convertor
+0717 ZNK Corp.
+0718 Imation Corp.
+ 0002 SuperDisk 120MB
+ 0003 SuperDisk 120MB (Authenticated)
+ 0060 Flash Drive
+ 0061 Flash Drive
+ 0062 Flash Drive
+ 0063 Swivel Flash Drive
+ 0064 Flash Drive
+ 0065 Flash Drive
+ 0066 Flash Drive
+ 0067 Flash Drive
+ 0068 Flash Drive
+ 0084 Flash Drive Mini
+ 0582 Revo Flash Drive
+ d000 Disc Stakka CD/DVD Manager
+0719 Tremon Enterprises Co., Ltd
+071b Domain Technologies, Inc.
+ 0002 DTI-56362-USB Digital Interface Unit
+ 0101 Audio4-USB DSP Data Acquisition Unit
+ 0201 Audio4-5410 DSP Data Acquisition Unit
+ 0301 SB-USB JTAG Emulator
+ 3203 Rockchip Media Player
+ 32bb Music Mediatouch
+071c Xionics Document Technologies, Inc.
+071d Eicon Networks Corp.
+ 1000 Diva ISDN TA
+ 1003 Diva
+ 2000 Teledat Surf
+071e Ariston Technologies
+0723 Centillium Communications Corp.
+ 0002 Palladia 300/400 Adsl Modem
+0726 Vanguard International Semiconductor-America
+0729 Amitm
+ 1000 USC-1000 Serial Port
+072e Sunix Co., Ltd
+072f Advanced Card Systems, Ltd
+ 0001 AC1030-based SmartCard Reader
+ 0008 ACR 80 Smart Card Reader
+ 1000 PLDT Drive
+ 1001 PLDT Drive
+ 8002 AET63 BioTRUSTKey
+ 8003 ACR120
+ 8103 ACR120
+ 9000 ACR38 AC1038-based Smart Card Reader
+ 90cc ACR38 SmartCard Reader
+ 90cf ACR38 SAM Smart Card Reader
+ 90d0 PertoSmart EMV - Card Reader
+0731 Susteen, Inc.
+ 0528 SonyEricsson DCU-11 Cable
+0732 Goldfull Electronics & Telecommunications Corp.
+0733 ViewQuest Technologies, Inc.
+ 0101 Digital Video Camera
+ 0110 VQ110 Video Camera
+ 0401 CS330 Webcam
+ 0402 M-318B Webcam
+ 0430 Intel Pro Share Webcam
+ 0630 VQ630 Dual Mode Digital Camera(Bulk)
+ 0631 Hercules Dualpix
+ 0780 Smart Cam Deluxe(composite)
+ 1310 Epsilon 1.3/Jenoptik JD C1.3/UMAX AstraPix 470
+ 1311 Digital Dream Epsilon 1.3
+ 1314 Mercury 2.1MEG Deluxe Classic Cam
+ 2211 Jenoptik jdc 21 LCD Camera
+ 2221 Mercury Digital Pro 3.1p
+ 3261 Concord 3045 spca536a Camera
+ 3281 Cyberpix S550V
+0734 Lasat Communications A/S
+ 0001 560V Modem
+ 0002 Lasat 560V Modem
+ 043a DVS Audio
+ 043b 3DeMon USB Capture
+0735 Asuscom Network
+ 2100 ISDN Adapter
+ 2101 ISDN Adapter
+ 6694 ISDNlink 128K
+ c541 ISDN TA 280
+0736 Lorom Industrial Co., Ltd
+0738 Mad Catz, Inc.
+ 4507 XBox Device
+ 4516 XBox Device
+ 4520 XBox Device
+ 4526 XBox Device
+ 4536 XBox Device
+ 4540 XBox Device
+ 4556 XBox Device
+ 4566 XBox Device
+ 4576 XBox Device
+ 4586 XBox Device
+ 4588 XBox Device
+ 8818 Street Fighter IV Arcade FightStick (PS3)
+073a Chaplet Systems, Inc.
+073b Suncom Technologies
+073c Industrial Electronic Engineers, Inc.
+ 0305 Pole Display (PC305-3415 2 x 20 Line Display)
+ 0322 Pole Display (PC322-3415 2 x 20 Line Display)
+ 0324 Pole Display (LB324-USB 4 x 20 Line Display)
+ 0330 Pole Display (P330-3415 2 x 20 Line Display)
+ 0424 Pole Display (SP324-4415 4 x 20 Line Display)
+ 0450 Pole Display (L450-USB Graphic Line Display)
+ 0505 Pole Display (SPC505-3415 2 x 20 Line Display)
+ 0522 Pole Display (SPC522-3415 2 x 20 Line Display)
+ 0624 Pole Display (SP324-3415 4 x 20 Line Display)
+073d Eutron S.p.a.
+ 0005 Crypto Token
+ 0007 CryptoIdentity CCID
+ 0025 SmartKey 3
+ 0c00 Pocket Reader
+ 0d00 StarSign Bio Token 3.0 EU
+073e NEC, Inc.
+ 0301 Game Pad
+0745 Syntech Information Co., Ltd
+0746 Onkyo Corp.
+ 5500 SE-U55 Audio Device
+0747 Labway Corp.
+0748 Strong Man Enterprise Co., Ltd
+0749 EVer Electronics Corp.
+074a Ming Fortune Industry Co., Ltd
+074b Polestar Tech. Corp.
+074c C-C-C Group PLC
+074d Micronas GmbH
+ 3553 Composite USB-Device
+ 3554 Composite USB-Device
+ 3556 Composite USB-Device
+074e Digital Stream Corp.
+ 0001 PS/2 Adapter
+ 0002 PS/2 Adapter
+0755 Aureal Semiconductor
+0757 Network Technologies, Inc.
+075b Sophisticated Circuits, Inc.
+ 0001 Kick-off! Watchdog
+0763 Midiman
+ 0115 O2 / KeyRig 25
+ 0117 Trigger Finger
+ 0119 MidAir
+ 0150 M-Audio Uno
+ 0160 M-Audio 1x1
+ 0192 M-Audio Keystation 88es
+ 0193 ProKeys 88
+ 0194 ProKeys 88sx
+ 0195 Oxygen 8 v2
+ 0196 Oxygen 49
+ 0197 Oxygen 61
+ 0198 Axiom 25
+ 0199 Axiom 49
+ 019a Axiom 61
+ 019b KeyRig 49
+ 019c KeyStudio
+ 1001 MidiSport 2x2
+ 1002 MidiSport 2x2
+ 1003 MidiSport 2x2
+ 1010 MidiSport 1x1
+ 1011 MidiSport 1x1
+ 1014 M-Audio Keystation Loader
+ 1015 M-Audio Keystation
+ 1020 Midisport 4x4
+ 1021 MidiSport 4x4
+ 1030 Midisport 8x8
+ 1031 MidiSport 8x8/s Loader
+ 1033 MidiSport 8x8/s
+ 1040 M-Audio MidiSport 2x4 Loader
+ 1041 M-Audio MidiSport 2x4
+ 1110 MidiSport 1x1
+ 2001 M Audio Quattro
+ 2002 M Audio Duo
+ 2003 M Audio AudioPhile
+ 2004 M-Audio MobilePre
+ 2006 M-Audio Transit
+ 2007 M-Audio Sonica Theater
+ 2008 M-Audio Ozone
+ 200d M-Audio OmniStudio
+ 200f M-Audio MobilePre
+ 2010 M-Audio Fast Track
+ 2012 M-Audio Fast Track Pro
+ 2013 M-Audio JamLab
+ 2015 M-Audio RunTime DFU
+ 2016 M-Audio RunTime DFU
+ 2019 M-Audio Ozone Academic
+ 201a M-Audio Micro
+ 201b M-Audio RunTime DFU
+ 201d M-Audio Producer
+ 2080 M-Audio RunTime DFU
+ 2081 M-Audio RunTime DFU / Fast Track Ultra 8R
+ 2803 M-Audio Audiophile DFU
+ 2804 M-Audio MobilePre DFU
+ 2806 M-Audio Transit DFU
+ 2815 M-Audio DFU
+ 2816 M-Audio DFU
+ 281b M-Audio DFU
+ 2880 M-Audio DFU
+ 2881 M-Audio DFU
+0764 Cyber Power System, Inc.
+ 0005 Cyber Power UPS
+ 0501 CP1500 AVR UPS
+0765 X-Rite, Inc.
+ d094 X-Rite DTP94 [Quato Silver Haze Pro]
+0766 Jess-Link Products Co., Ltd
+ 0204 TopSpeed Cyberlink Remote Control
+0767 Tokheim Corp.
+0768 Camtel Technology Corp.
+ 0006 Camtel Technology USB TV Genie Pro FM Model TVB330
+ 0023 eHome Infrared Receiver
+0769 Surecom Technology Corp.
+ 11f2 EP-9001-g 802.11g 54M WLAN Adapter
+ 11f3 RT2570
+ 11f7 802.11g 54M WLAN Adapter
+ 31f3 RT2573
+076a Smart Technology Enablers, Inc.
+076b OmniKey AG
+ 0596 CardMan 2020
+ 1021 CardMan 1021
+ 1221 CardMan 1221
+ 1784 CardMan 6020
+ 3021 CardMan 3121
+ 3610 CardMan 3620
+ 3621 CardMan 3621
+ 3821 CardMan 3821
+ 4321 CardMan 4321
+ 5121 CardMan 5121
+ 5125 CardMan 5125
+ 6622 CardMan 6121
+ a011 CCID Smart Card Reader Keyboard
+ a021 CCID Smart Card Reader
+ a022 CardMan Smart@Link
+ c000 CardMan 3x21 CS
+ c001 CardMan 5121 CS
+076c Partner Tech
+076d Denso Corp.
+076e Kuan Tech Enterprise Co., Ltd
+076f Jhen Vei Electronic Co., Ltd
+0770 Welch Allyn, Inc - Medical Division
+0771 Observator Instruments BV
+ 4455 OMC45III
+ ae0f OMC45III
+0774 AmTRAN Technology Co., Ltd
+0775 Longshine Electronics Corp.
+0776 Inalways Corp.
+0777 Comda Enterprise Corp.
+0778 Volex, Inc.
+0779 Fairchild Semiconductor
+077a Sankyo Seiki Mfg. Co., Ltd
+077b Linksys
+ 08be BEFCMU10 v4 Cable Modem
+ 2219 WUSB11 V2.6 802.11b Adapter
+ 2226 USB200M 100baseTX Adapter
+ 2227 Network Everywhere NWU11B
+077c Forward Electronics Co., Ltd
+ 0005 NEC Keyboard
+077d Griffin Technology
+ 0223 IMic Audio In/Out
+ 0405 iMate, ADB Adapter
+ 0410 PowerMate
+ 041a PowerWave
+ 04aa SoundKnob
+ 07af iMic
+ 1016 AirClick
+ 627a Radio SHARK
+077f Well Excellent & Most Corp.
+0780 Sagem Monetel GmbH
+ 1202 ORGA 900 Smart Card Terminal Virtual Com Port
+ 1302 ORGA 6000 Smart Card Terminal Virtual Com Port
+ 1303 ORGA 6000 Smart Card Terminal USB RNDIS
+ df55 ORGA 900/6000 Smart Card Terminal DFU
+0781 SanDisk Corp.
+ 0001 SDDR-05a ImageMate CompactFlash Reader
+ 0002 SDDR-31 ImageMate II CompactFlash Reader
+ 0005 SDDR-05b (CF II) ImageMate CompactFlash Reader
+ 0100 ImageMate SDDR-12
+ 0200 SDDR-09 (SSFDC) ImageMate SmartMedia Reader [eusb]
+ 0400 SecureMate SD/MMC Reader
+ 0621 SDDR-86 Imagemate 6-in-1 Reader
+ 0720 Sansa C200 series in recovery mode
+ 0729 Sansa E200 series in recovery mode
+ 0810 SDDR-75 ImageMate CF-SM Reader
+ 0830 ImageMate CF/MMC/SD Reader
+ 1234 Cruzer Mini Flash Drive
+ 5150 SDCZ2 Cruzer Mini Flash Drive (thin)
+ 5151 Cruzer Micro Flash Drive
+ 5153 Cruzer Flash Drive
+ 5402 U3 Cruzer Micro
+ 5406 Cruzer Micro U3
+ 5408 Cruzer Titanium U3
+ 540e Cruzer Contour Flash Drive
+ 5530 Cruzer
+ 5567 Cruzer Blade
+ 5e10 Encrypted
+ 6100 Ultra II SD Plus 2GB
+ 7100 Cruzer Mini
+ 7101 Pen Flash
+ 7102 Cruzer Mini
+ 7103 Cruzer Mini
+ 7104 Cruzer Micro Mini 256MB Flash Drive
+ 7105 Cruzer Mini
+ 7106 Cruzer Mini
+ 7112 Cruzer Micro 128MB Flash Drive
+ 7113 Cruzer Micro 256MB Flash Drive
+ 7114 Cruzer Mini
+ 7115 Cruzer Mini
+ 7301 Sansa e100 series (mtp)
+ 7302 Sansa e100 series (msc)
+ 7400 Sansa M200 series (mtp)
+ 7401 Sansa M200 series (msc)
+ 7420 Sansa E200 series (mtp)
+ 7421 Sansa E200 Series (msc)
+ 7422 Sansa E200 series v2 (mtp)
+ 7423 Sansa E200 series v2 (msc)
+ 7430 Sansa M200 series
+ 7431 Sansa M200 series V4 (msc)
+ 7432 Sansa Clip (mtp)
+ 7433 Sansa Clip (msc)
+ 7434 Sansa Clip V2 (mtp)
+ 7435 Sansa Clip V2 (msc)
+ 7450 Sansa C250
+ 7451 Sansa C240
+ 7460 Sansa Express
+ 7480 Sansa Connect
+ 7481 Sansa Connect (in recovery mode)
+ 74b0 Sansa View (msc)
+ 74b1 Sansa View (mtp)
+ 74c0 Sansa Fuze (mtp)
+ 74c1 Sansa Fuze (msc)
+ 74c2 Sansa Fuze V2 (mtp)
+ 74c3 Sansa Fuze V2 (msc)
+ 74d0 Sansa Clip+ (mtp)
+ 74d1 Sansa Clip+ (msc)
+ 8181 Pen Flash
+ 8183 Hi-Speed Mass Storage Device
+ 8185 SDCZ2 Cruzer Mini Flash Drive (older, thick)
+ 8888 Card Reader
+ 8889 SDDR-88 Imagemate 8-in-1 Reader
+ 8919 Card Reader
+ 8989 ImageMate 12-in-1 Reader
+ 9191 ImageMate CF
+ 9219 Card Reader
+ 9292 ImageMate CF Reader/Writer
+ 9393 ImageMate SD-MMC
+ 9595 ImageMate xD-SM
+ 9797 ImageMate MS-PRO
+ 9919 Card Reader
+ 9999 SDDR-99 5-in-1 Reader
+ a7e8 SDDR-113 MicroMate SDHC Reader
+ b2b3 SDDR-103 MobileMate SD+ Reader
+ b4b5 SDDR-89 V4 ImageMate 12-in-1 Reader
+0782 Trackerball
+0783 C3PO
+ 0003 LTC31 SmartCard Reader
+ 0006 LTC31v2
+ 0009 KBR36
+ 0010 LTC32
+0784 Vivitar, Inc.
+ 0100 Vivicam 2655
+ 1310 Vivicam 3305
+ 1688 Vivicam 3665
+ 1689 Gateway DC-M42/Labtec DC-505/Vivitar Vivicam 3705
+ 2620 AOL Photocam Plus
+ 2888 Polaroid DC700
+ 3330 Nytec ND-3200 Camera
+ 4300 Traveler D1
+ 5260 Werlisa Sport PX 100 / JVC GC-A33 Camera
+ 5300 Pretec dc530
+0785 NTT-ME
+ 0001 MN128mini-V ISDN TA
+ 0003 MN128mini-J ISDN TA
+0789 Logitec Corp.
+ 0026 LHD Device
+ 0033 DVD Multi-plus unit LDR-H443SU2
+ 0063 LDR Device
+ 0064 LDR-R Device
+ 00b3 DVD Multi-plus unit LDR-H443U2
+ 010c Realtek RTL8187 Wireless 802.11g 54Mbps Network Adapter
+ 0162 LAN-WN22/U2 Wireless LAN Adapter
+ 0163 LAN-WN12/U2 Wireless LAN Adapter
+ 0164 LAN-W150/U2M Wireless LAN Adapter
+ 0166 LAN-W300N/U2 Wireless LAN Adapter
+ 0168 LAN-W150N/U2 Wireless LAN Adapter
+078b Happ Controls, Inc.
+ 0010 Driving UGCI
+ 0020 Flying UGCI
+ 0030 Fighting UGCI
+078c GTCO/CalComp
+ 0090 Tablet Adapter
+ 0100 Tablet Adapter
+ 0200 Tablet Adapter
+ 0300 Tablet Adapter
+ 0400 Digitizer (Whiteboard)
+078e Brincom, Inc.
+0790 Pro-Image Manufacturing Co., Ltd
+0791 Copartner Wire and Cable Mfg. Corp.
+0792 Axis Communications AB
+0793 Wha Yu Industrial Co., Ltd
+0794 ABL Electronics Corp.
+0795 RealChip, Inc.
+0796 Certicom Corp.
+0797 Grandtech Semiconductor Corp.
+ 6801 Flatbed Scanner
+ 6802 InkJet Color Printer
+ 8001 SmartCam
+ 801a Typhoon StyloCam
+ 801c Meade Binoculars/Camera
+ 8901 ScanHex SX-35a
+ 8909 ScanHex SX-35b
+ 8911 ScanHex SX-35c
+0798 Optelec
+ 0001 Braille Voyager
+0799 Altera
+ 7651 Programming Unit
+079b Sagem
+ 0027 USB-Serial Controller
+ 002f Mobile
+ 0030 Mobile Communication Device
+ 0042 Mobile
+ 004a XG-760A 802.11bg
+ 004b Wi-Fi 11g adapter
+ 0056 Agfa AP1100 Photo Printer
+ 005d Mobile Mass Storage
+ 0062 XG-76NA 802.11bg
+ 0078 Laser Pro Monochrome MFP
+079d Alfadata Computer Corp.
+ 0201 GamePort Adapter
+07a1 Digicom S.p.A.
+ d952 Palladio USB V.92 Modem
+07a2 National Technical Systems
+07a3 Onnto Corp.
+07a4 Be, Inc.
+07a6 ADMtek, Inc.
+ 07c2 AN986A Ethernet
+ 0986 AN986 Pegasus Ethernet
+ 8266 Infineon WildCard-USB Wireless LAN Adapter
+ 8511 ADM8511 Pegasus II Ethernet
+ 8513 AN8513 Ethernet
+ 8515 AN8515 Ethernet
+07aa Corega K.K.
+ 0001 Ether USB-T Ethernet [klsi]
+ 0004 FEther USB-TX Ethernet [pegasus]
+ 000c WirelessLAN USB-11
+ 000d FEther USB-TXS
+ 0011 Wireless LAN USB-11 mini
+ 0012 Stick-11 802.11b Adapter
+ 0017 FEther USB2-TX
+ 0018 Wireless LAN USB-11 mini 2
+ 001a ULUSB-11 Key
+ 001c CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887]
+ 002f CG-WLUSB2GNL
+ 003c CG-WLUSB2GNL
+ 003f CG-WLUSB300AGN
+ 0041 CG-WLUSB300GNS
+ 0042 CG-WLUSB300GNM
+ 0043 CG-WLUSB300N rev A2 [Realtek RTL8192U]
+ 0047 CG-WLUSBNM
+ 0051 CG-WLUSB300NM
+ 7613 Stick-11 V2 802.11b Adapter
+ 9601 FEther USB-TXC
+07ab Freecom Technologies
+ fc01 IDE bridge
+ fc02 Cable II USB-2
+ fc03 USB2-IDE IDE bridge
+ fcd6 Freecom HD Classic
+ fcf6 DataBar 512 MB
+ fcf8 Freecom Classic SL Network Drive
+ fcfe Hard Drive 80GB
+07af Microtech
+ 0004 SCSI-DB25 SCSI Bridge [shuttle]
+ 0005 SCSI-HD50 SCSI Bridge [shuttle]
+ 0006 CameraMate SmartMedia and CompactFlash Card Reader [eusb/shuttle]
+ fc01 Freecom USB-IDE
+07b0 Trust Technologies
+ 0001 ISDN TA
+ 0002 ISDN TA128 Plus
+ 0003 ISDN TA128 Deluxe
+ 0005 ISDN TA128 SE
+ 0006 ISDN TA128 CE
+ 0007 ISDN TA
+ 0008 ISDN TA
+07b1 IMP, Inc.
+07b2 Motorola BCS, Inc.
+ 0100 SURFboard Voice over IP Cable Modem
+ 0900 SURFboard Gateway
+ 0950 SURFboard SBG950 Gateway
+ 1000 SURFboard SBG1000 Gateway
+ 4100 SurfBoard SB4100 Cable Modem
+ 4200 SurfBoard SB4200 Cable Modem
+ 4210 SurfBoard 4210 Cable Modem
+ 4220 SURFboard SB4220 Cable Modem
+ 4500 CG4500 Communications Gateway
+ 450b CG4501 Communications Gateway
+ 450e CG4500E Communications Gateway
+ 5100 SurfBoard SB5100 Cable Modem
+ 5101 SurfBoard SB5101 Cable Modem
+ 5120 SurfBoard SB5120 Cable Modem (RNDIS)
+ 5121 Surfboard 5121 Cable Modem
+ 7030 WU830G 802.11bg Wireless Adapter [Envara WiND512]
+07b3 Plustek, Inc.
+ 0001 OpticPro 1212U Scanner
+ 0003 Scanner
+ 0010 OpticPro U12 Scanner
+ 0011 OpticPro U24 Scanner
+ 0013 OpticPro UT12 Scanner
+ 0014 Scanner
+ 0015 OpticPro U24 Scanner
+ 0017 OpticPro UT12/16/24 Scanner
+ 0204 Scanner
+ 0400 OpticPro 1248U Scanner
+ 0401 OpticPro 1248U Scanner #2
+ 0403 OpticPro U16B Scanner
+ 0404 Scanner
+ 0405 A8 Namecard-s Controller
+ 0406 A8 Namecard-D Controller
+ 0410 Scanner
+ 0412 Scanner
+ 0413 OpticSlim 1200 Scanner
+ 0601 OpticPro ST24 Scanner
+ 0800 OpticPro ST48 Scanner
+ 0906 OpticBook 3600 Scanner
+ 0a06 TVcam VD100
+ 0b00 SmartPhoto F50
+ 0c03 OpticPro ST64+ Scanner
+ 0c04 Optic Film 7200i scanner
+ 0c0c PL806
+ 0c26 OpticBook 4600 Scanner
+ 0c2b Mobile Office D428 Scanner
+07b4 Olympus Optical Co., Ltd
+ 0100 Camedia C-2100/C-3000 Ultra Zoom Camera
+ 0102 Camedia E-10/C-220/C-50 Camera
+ 0105 Camedia C-310Z/C-700/C-750UZ/C-755/C-765UZ/C-3040/C-4000/C-5050Z/D-560/C-3020Z Zoom Camera
+ 0109 C-370Z/C-500Z/D-535Z/X-450
+ 010a MAUSB-10 xD and SmartMedia Card Reader
+ 0112 MAUSB-100 xD Card Reader
+ 0113 Mju 500
+ 0114 C-350Z Camera
+ 0118 Digital Camera
+ 0184 P-S100 port
+ 0203 Digital Voice Recorder DW-90
+ 0206 Digital Voice Recorder DS-330
+ 0207 Digital Voice Recorder & Camera W-10
+ 0209 Digital Voice Recorder DM-20
+ 020d Digital Voice Recorder VN-240PC
+ 0280 m:robe 100
+07b5 Mega World International, Ltd
+ 0017 Joystick
+ 0213 Thrustmaster Firestorm Digital 3 Gamepad
+ 0312 Gamepad
+ 9902 GamePad
+07b6 Marubun Corp.
+07b7 TIME Interconnect, Ltd
+07b8 AboCom Systems Inc
+ 110c XX1
+ 1201 IEEE 802.11b Adapter
+ 200c XX2
+ 2573 Wireless LAN Card
+ 2770 802.11n/b/g Mini Wireless LAN USB2.0 Adapter
+ 2870 802.11n/b/g Wireless LAN USB2.0 Adapter
+ 3070 802.11n/b/g Mini Wireless LAN USB2.0 Adapter
+ 3071 802.11n/b/g Mini Wireless LAN USB2.0 Adapter
+ 3072 802.11n/b/g Mini Wireless LAN USB2.0 Adapter
+ 4000 DU-E10 Ethernet [klsi]
+ 4002 DU-E100 Ethernet [pegasus]
+ 4003 1/10/100 Ethernet Adapter
+ 4004 XX4
+ 4007 XX5
+ 400b XX6
+ 400c XX7
+ 401a RTL8151
+ 4102 USB 1.1 10/100M Fast Ethernet Adapter
+ 4104 XX9
+ 420a UF200 Ethernet
+ 5301 GW-US54ZGL 802.11bg
+ 6001 802.11bg
+ a001 WUG2200 802.11g Wireless Adapter [Envara WiND512]
+ abc1 DU-E10 Ethernet [pegasus]
+ b000 BWU613
+ b02a AboCom Bluetooth Device
+ b02b Bluetooth dongle
+ b02c BCM92045DG-Flash with trace filter
+ b02d BCM92045DG-Flash with trace filter
+ b02e BCM92045DG-Flash with trace filter
+ b030 BCM92045DG-Flash with trace filter
+ b031 BCM92045DG-Flash with trace filter
+ b032 BCM92045DG-Flash with trace filter
+ b033 BCM92045DG-Flash with trace filter
+ b21a WUG2400 802.11g Wireless Adapter [Texas Instruments TNETW1450]
+ b21b HWU54DM
+ b21c RT2573
+ b21d RT2573
+ b21e RT2573
+ b21f WUG2700
+ d011 MP3 Player
+ e001 Mass Storage Device
+ e002 Mass Storage Device
+ e003 Mass Storage Device
+ e004 Mass Storage Device
+ e005 Mass Storage Device
+ e006 Mass Storage Device
+ e007 Mass Storage Device
+ e008 Mass Storage Device
+ e009 Mass Storage Device
+ e00a Mass Storage Device
+ e4f0 Card Reader Driver
+ f101 DSB-560 Modem [atlas]
+07bc Canon Computer Systems, Inc.
+07bd Webgear, Inc.
+07be Veridicom
+07c0 Code Mercenaries Hard- und Software GmbH
+ 1121 The Claw
+ 1500 IO-Warrior 40
+ 1501 IO-Warrior 24
+ 1502 IO-Warrior 48
+ 1503 IO-Warrior 28
+ 1511 IO-Warrior 24 Power Vampire
+ 1512 IO-Warrior 24 Power Vampire
+07c1 Keisokugiken
+ 0068 HKS-0200 USBDAQ
+07c4 Datafab Systems, Inc.
+ 0102 USB to LS120
+ 0103 USB to IDE
+ 1234 USB to ATAPI
+ a000 CompactFlash Card Reader
+ a001 CompactFlash & SmartMedia Card Reader [eusb]
+ a002 Disk Drive
+ a003 Datafab-based Reader
+ a004 USB to MMC Class Drive
+ a005 CompactFlash & SmartMedia Card Reader
+ a006 SmartMedia Card Reader
+ a007 Memory Stick Class Drive
+ a103 MDSM-B reader
+ a107 USB to Memory Stick (LC1) Drive
+ a109 LC1 CompactFlash & SmartMedia Card Reader
+ a10b USB to CF+MS(LC1)
+ a200 DF-UT-06 Hama MMC/SD Reader
+ a400 CompactFlash & Microdrive Reader
+ a600 Card Reader
+ ad01 Mass Storage Device
+ ae01 Mass Storage Device
+ af01 Mass Storage Device
+ b000 USB to CF(LC1)
+ b001 USB to CF+PCMCIA
+ b004 MMC/SD Reader
+ b006 USB to PCMCIA
+ b00a USB to CF+SD Drive(LC1)
+ b00b USB to Memory Stick(LC1)
+07c5 APG Cash Drawer
+07c6 ShareWave, Inc.
+ 0002 Bodega Wireless Access Point
+ 0003 Bodega Wireless Network Adapter
+07c7 Powertech Industrial Co., Ltd
+07c8 B.U.G., Inc.
+ 0202 MN128-SOHO PAL
+07c9 Allied Telesyn International
+ b100 AT-USB100
+07ca AVerMedia Technologies, Inc.
+ 0002 AVerTV PVR USB/EZMaker Pro Device
+ 0026 AVerTV
+ 0337 A867 DVB-T dongle
+ 1228 MPEG-2 Capture Device (M038)
+ 1830 AVerTV Volar Video Capture (H830)
+ 850a AverTV Volar Black HD (A850)
+ 850b AverTV Red HD+ (A850T)
+ a309 AVerTV DVB-T (A309)
+ a801 AVerTV DVB-T (A800)
+ a815 AVerTV DVB-T Volar X (A815)
+ a867 AVerTV DVB-T (A867)
+ b800 MR800 FM Radio
+ e880 MPEG-2 Capture Device (E880)
+ e882 MPEG-2 Capture Device (E882)
+07cb Kingmax Technology, Inc.
+07cc Carry Computer Eng., Co., Ltd
+ 0000 CF Card Reader
+ 0001 Reader (UICSE)
+ 0002 Reader (UIS)
+ 0003 SM Card Reader
+ 0004 SM/CF/PCMCIA Card Reader
+ 0005 Reader (UISA2SE)
+ 0006 SM/CF/PCMCIA Card Reader
+ 0007 Reader (UISA6SE)
+ 000c SM/CF Card Reader
+ 000d SM/CF Card Reader
+ 000e Reader (UISDA)
+ 000f Reader (UICLIK)
+ 0010 Reader (UISMA)
+ 0012 Reader (UISC6SE-FLASH)
+ 0014 Litronic Fortezza Reader
+ 0030 Mass Storage (UISDMC12S)
+ 0040 Mass Storage (UISDMC13S)
+ 0100 Reader (UID)
+ 0101 Reader (UIM)
+ 0102 Reader (UISDMA)
+ 0103 Reader (UISDMC)
+ 0104 Reader (UISDM)
+ 0200 6-in-1 Card Reader
+ 0201 Mass Storage (UISDMC1S & UISDMC3S)
+ 0202 Mass Storage (UISDMC5S)
+ 0203 Mass Storage (UISMC5S)
+ 0204 Mass Storage (UIM4/5S & UIM7S)
+ 0205 Mass Storage (UIS4/5S & UIS7S)
+ 0206 Mass Storage (UISDMC10S & UISDMC11S)
+ 0207 Mass Storage (UPIDMA)
+ 0208 Mass Storage (UCFC II)
+ 0210 Mass Storage (UPIXXA)
+ 0213 Mass Storage (UPIDA)
+ 0214 Mass Storage (UPIMA)
+ 0215 Mass Storage (UPISA)
+ 0217 Mass Storage (UPISDMA)
+ 0223 Mass Storage (UCIDA)
+ 0224 Mass Storage (UCIMA)
+ 0225 Mass Storage (UIS7S)
+ 0227 Mass Storage (UCIDMA)
+ 0234 Mass Storage (UIM7S)
+ 0235 Mass Storage (UIS4S-S)
+ 0237 Velper (UISDMC4S)
+ 0300 6-in-1 Card Reader
+ 0301 6-in-1 Card Reader
+ 0303 Mass Storage (UID10W)
+ 0304 Mass Storage (UIM10W)
+ 0305 Mass Storage (UIS10W)
+ 0308 Mass Storage (UIC10W)
+ 0309 Mass Storage (UISC3W)
+ 0310 Mass Storage (UISDMA2W)
+ 0311 Mass Storage (UISDMC14W)
+ 0320 Mass Storage (UISDMC4W)
+ 0321 Mass Storage (UISDMC37W)
+ 0330 WINTERREADER Reader
+ 0350 9-in-1 Card Reader
+ 0500 Mass Storage
+ 0501 Mass Storage
+07cd Elektor
+ 0001 USBuart Serial Port
+07cf Casio Computer Co., Ltd
+ 1001 QV-8000SX/5700/3000EX Digicam; Exilim EX-M20
+ 1003 Exilim EX-S500
+ 1004 Exilim EX-Z120
+ 1011 USB-CASIO PC CAMERA
+ 1116 EXILIM EX-Z19
+ 1133 Exilim EX-Z350 Digital Camera (mass storage mode)
+ 1233 Exilim EX-Z350 Digital Camera (PictBridge mode)
+ 2002 E-125 Cassiopeia Pocket PC
+ 3801 WMP-1 MP3-Watch
+ 4001 Label Printer KL-P1000
+ 4007 CW50 Device
+ 4104 Cw75 Device
+ 4107 CW-L300 Device
+ 4500 LV-20 Digital Camera
+ 6801 PL-40R
+ 6802 MIDI Keyboard
+07d0 Dazzle
+ 0001 Digital Video Creator I
+ 0002 Global Village VideoFX Grabber
+ 0003 Fusion Model DVC-50 Rev 1 (NTSC)
+ 0004 DVC-800 (PAL) Grabber
+ 0005 Fusion Video and Audio Ports
+ 0006 DVC 150 Loader Device
+ 0007 DVC 150
+ 0327 Fusion Digital Media Reader
+ 1001 DM-FLEX DFU Adapter
+ 1002 DMHS2 DFU Adapter
+ 1102 CF Reader/Writer
+ 1103 SD Reader/Writer
+ 1104 SM Reader/Writer
+ 1105 MS Reader/Writer
+ 1106 xD/SM Reader/Writer
+ 1202 MultiSlot Reader/Writer
+ 2000 FX2 DFU Adapter
+ 2001 eUSB CompactFlash Reader
+ 4100 Kingsun SF-620 Infrared Adapter
+ 4101 Connectivity Cable (CA-42 clone)
+ 4959 Kingsun KS-959 Infrared Adapter
+07d1 D-Link System
+ 13ec VvBus for Helium 2xx
+ 13ed VvBus for Helium 2xx
+ 13f1 DSL-302G Modem
+ 13f2 DSL-502G Router
+ 3300 DWA-130 802.11n Wireless N Adapter(rev.E) [Realtek RTL8192SU]
+ 3302 DWA-130 802.11n Wireless N Adapter(rev.C2) [Realtek RTL8192SU]
+ 3303 DWA-131 802.11n Wireless N Nano Adapter(rev.A1) [Realtek RTL8192SU]
+ 3a07 WUA-2340 RangeBooster G Adapter(rev.A) [Atheros AR5523]
+ 3a08 WUA-2340 RangeBooster G Adapter(rev.A) (no firmware) [Atheros AR5523]
+ 3a09 DWA-160 802.11abgn Xtreme N Dual Band Adapter(rev.A2) [Atheros AR9170+AR9104]
+ 3a0d DWA-120 802.11g Wireless 108G Adapter [Atheros AR5523]
+ 3a0f DWA-130 802.11n Wireless N Adapter(rev.D) [Atheros AR9001U-(2)NG]
+ 3a10 DWA-126 802.11n Wireless Adapter [Atheros AR9271]
+ 3b01 AirPlus G DWL-G122 Wireless Adapter(rev.D) [Marvell 88W8338+88W8010]
+ 3b10 RangeBooster N Adapter
+ 3b11 DWA-130 802.11n Wireless N Adapter(rev.A1) [Marvell W8360USB]
+ 3c03 AirPlus G DWL-G122 Wireless Adapter(rev.C1) [Ralink RT73]
+ 3c04 WUA-1340
+ 3c05 EH103 Wireless G Adapter
+ 3c07 Wireless G DWA-110 Adapter
+ 3c09 DWA-140 RangeBooster N Adapter(rev.B1) [Ralink RT2870]
+ 3c0a DWA-140 RangeBooster N Adapter(rev.B2) [Ralink RT2870]
+ 3c0b DWA-110 Wireless G USB Adapter(rev.B)
+ 3c0d DWA-125 Wireless N 150 Adapter(rev.A1) [Ralink RT3070]
+ 3c0e WUA-2340 RangeBooster G Adapter(rev.B) [Ralink RT2070]
+ 3c0f AirPlus G DWL-G122 Wireless Adapter(rev.E) [Ralink RT2870]
+ 3c10 DWA-160 802.11abgn Xtreme N Dual Band Adapter(rev.A1) [Atheros AR9170+AR9104]
+ 3c11 DWA-160 Xtreme N Dual Band USB Adapter(rev.B) [Ralink RT2870]
+ 3c13 DWA-130 802.11n Wireless N Adapter(rev.B) [Ralink RT2870]
+ 3c15 DWA-140 RangeBooster N Adapter(rev.B3) [Ralink RT2870]
+ 3c16 DWA-125 Wireless N 150 Adapter(rev.A2) [Ralink RT3070]
+ 3e02 DWM-156 3.75G HSUPA Adapter
+ 5100 Remote NDIS Device
+ a800 DWM-152 3.75G HSUPA Adapter
+ f101 DBT-122 Bluetooth
+ fc01 DBT-120 Bluetooth Adapter
+07d2 Aptio Products, Inc.
+07d3 Cyberdata Corp.
+07d5 Radiant Systems
+07d7 GCC Technologies, Inc.
+07da Arasan Chip Systems
+07de Diamond Multimedia
+ 2820 VC500 Video Capture Dongle
+07df David Electronics Co., Ltd
+07e1 Ambient Technologies, Inc.
+ 5201 V.90 Modem
+07e2 Elmeg GmbH & Co., Ltd
+07e3 Planex Communications, Inc.
+07e4 Movado Enterprise Co., Ltd
+ 0967 SCard R/W CSR-145
+ 0968 SCard R/W CSR-145
+07e5 QPS, Inc.
+ 05c2 IDE-to-USB2.0 PCA
+ 5c01 Que! CDRW
+07e6 Allied Cable Corp.
+07e7 Mirvo Toys, Inc.
+07e8 Labsystems
+07ea Iwatsu Electric Co., Ltd
+07eb Double-H Technology Co., Ltd
+07ec Taiyo Electric Wire & Cable Co., Ltd
+07ee Torex Retail (formerly Logware)
+ 0002 Cash Drawer I/F
+07ef STSN
+ 0001 Internet Access Device
+07f2 Microcomputer Applications, Inc.
+ 0001 KEYLOK II
+07f6 Circuit Assembly Corp.
+07f7 Century Corp.
+ 0005 ScanLogic/Century Corporation uATA
+ 011e Century USB Disk Enclosure
+07f9 Dotop Technology, Inc.
+07fa DrayTek Corp.
+ 0778 miniVigor 128 ISDN TA
+ 1012 BeWAN ADSL USB ST (grey)
+ 1196 BWIFI-USB54AR 802.11bg
+ a904 BeWAN ADSL
+ a905 BeWAN ADSL ST
+07fd Mark of the Unicorn
+ 0000 FastLane MIDI Interface
+ 0001 FastLane Quad MIDI Interface
+ 0002 MOTU Audio for 64 bit
+07ff Unknown
+ 00ff Portable Hard Drive
+0801 Mag-Tek
+ 0001 Mini Swipe Reader (Keyboard Emulation)
+ 0002 Mini Swipe Reader
+0802 Mako Technologies, LLC
+0803 Zoom Telephonics, Inc.
+ 1300 V92 Faxmodem
+ 4310 Wireless-G
+ 5241 Cable Modem
+ 5551 DSL Modem
+ 9700 2986L FaxModem
+ 9800 Cable Modem
+ a312 Wireless-G
+0809 Genicom Technology, Inc.
+080a Evermuch Technology Co., Ltd
+080b Cross Match Technologies
+ 0002 Fingerprint Scanner (After ReNumeration)
+ 0010 300LC Series Fingerprint Scanner (Before ReNumeration)
+080c Datalogic S.p.A.
+ 0300 Gryphon D120 Barcode Scanner
+ 0400 Gryphon D120 Barcode Scanner
+ 0500 Gryphon D120 Barcode Scanner
+ 0600 Gryphon M100 Barcode Scanner
+080d Teco Image Systems Co., Ltd
+ 0102 Hercules Scan@home 48
+ 0104 3.2Slim
+ 0110 UMAX AstraSlim 1200 Scanner
+0810 Personal Communication Systems, Inc.
+ 0001 Dual PSX Adaptor
+ 0002 Dual PCS Adaptor
+0813 Mattel, Inc.
+ 0001 Intel Play QX3 Microscope
+ 0002 Dual Mode Camera Plus
+0819 eLicenser
+ 0101 License Management and Copy Protection
+081a MG Logic
+ 1000 Duo Pen Tablet
+081b Indigita Corp.
+ 0600 Storage Adapter
+ 0601 Storage Adapter
+081c Mipsys
+081e AlphaSmart, Inc.
+ df00 Handheld
+0822 Reudo Corp.
+ 2001 IRXpress Infrared Device
+0825 GC Protronics
+0826 Data Transit
+0827 BroadLogic, Inc.
+0828 Sato Corp.
+0829 DirecTV Broadband, Inc. (Telocity)
+082d Handspring
+ 0100 Visor
+ 0200 Treo
+ 0300 Treo 600
+ 0400 Handheld
+ 0500 Handheld
+ 0600 Handheld
+0830 Palm, Inc.
+ 0001 m500
+ 0002 m505
+ 0003 m515
+ 0004 Handheld
+ 0005 Handheld
+ 0006 Handheld
+ 0010 Handheld
+ 0011 Handheld
+ 0012 Handheld
+ 0013 Handheld
+ 0014 Handheld
+ 0020 i705
+ 0021 Handheld
+ 0022 Handheld
+ 0023 Handheld
+ 0024 Handheld
+ 0030 Handheld
+ 0031 Tungsten W
+ 0032 Handheld
+ 0033 Handheld
+ 0034 Handheld
+ 0040 m125
+ 0041 Handheld
+ 0042 Handheld
+ 0043 Handheld
+ 0044 Handheld
+ 0050 m130
+ 0051 Handheld
+ 0052 Handheld
+ 0053 Handheld
+ 0054 Handheld
+ 0060 Tungsten C/E/T/T2/T3 / Zire 71
+ 0061 Lifedrive / Treo 650/680 / Tunsten E2/T5/TX / Centro / Zire 21/31/72 / Z22
+ 0062 Handheld
+ 0063 Handheld
+ 0064 Handheld
+ 0070 Zire
+ 0071 Handheld
+ 0072 Handheld
+ 0080 Serial Adapter [for Palm III]
+ 0081 Handheld
+ 0082 Handheld
+ 00a0 Treo 800w
+ 0101 Pre
+0832 Kouwell Electronics Corp.
+ 5850 Cable
+0833 Sourcenext Corp.
+ 012e KeikaiDenwa 8 with charger
+ 039f KeikaiDenwa 8
+0835 Action Star Enterprise Co., Ltd
+0839 Samsung Techwin Co., Ltd
+ 0005 Digimax Camera
+ 0008 Digimax 230 Camera
+ 0009 Digimax 340
+ 000a Digimax 410
+ 000e Digimax 360
+ 0010 Digimax 300
+ 1003 Digimax 210SE
+ 1005 Digimax 220
+ 1009 Digimax V4
+ 1012 6500 Document Camera
+ 1058 S730 Camera
+ 1064 Digimax D830 Camera
+ 1542 Digimax 50 Duo
+ 3000 Digimax 35 MP3
+083a Accton Technology Corp.
+ 1046 10/100 Ethernet [pegasus]
+ 1060 HomeLine Adapter
+ 1f4d SMC8013WG Broadband Remote NDIS Device
+ 3046 10/100 Series Adapter
+ 3060 1/10/100 Adapter
+ 3501 2664W
+ 3502 WN3501D Wireless Adapter
+ 3503 T-Sinus 111 Wireless Adapter
+ 4501 T-Sinus 154data
+ 4502 Siemens S30853-S1016-R107 802.11g Wireless Adapter [Intersil ISL3886]
+ 4505 SMCWUSB-G 802.11bg
+ 4507 SMCWUSBT-G2 802.11g Wireless Adapter [Atheros AR5523]
+ 4521 Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887]
+ 5046 SpeedStream 10/100 Ethernet [pegasus]
+ 5501 Wireless Adapter 11g
+ 6500 Cable Modem
+ 6618 802.11n Wireless Adapter
+ 7511 Arcadyan 802.11N Wireless Adapter
+ 7512 Arcadyan 802.11N Wireless Adapter
+ 7522 Arcadyan 802.11N Wireless Adapter
+ 8522 Arcadyan 802.11N Wireless Adapter
+ 8541 WN4501F 802.11g Wireless Adapter [Intersil ISL3887]
+ a512 Arcadyan 802.11N Wireless Adapter
+ a618 SMCWUSBS-N EZ Connect N Draft 11n Wireless Adapter [Ralink RT2870]
+ a701 SMCWUSBS-N3 EZ Connect N Wireless Adapter [Ralink RT3070]
+ b004 CPWUE001 USB/Ethernet Adapter
+ b522 SMCWUSBS-N2 EZ Connect N Wireless Adapter [Ralink RT2870]
+ bb01 BlueExpert Bluetooth Device
+ c003 802.11b Wireless Adapter
+ c501 Zoom Wireless-G
+ c561 802.11a/g Wireless Adapter
+ d522 Speedport W 102 Stick IEEE 802.11n USB 2.0 Adapter
+ e501 ZD1211B
+ e503 Arcadyan WN4501 802.11b/g
+ e506 WUS-201 802.11bg
+ f501 802.11g Wireless Adapter
+ f502 802.11g Wireless Adapter
+ f522 Arcadyan WN7512 802.11n
+083f Global Village
+ b100 TelePort V.90 Fax/Modem
+0840 Argosy Research, Inc.
+ 0060 Storage Adapter Bridge Module
+0841 Rioport.com, Inc.
+ 0001 Rio 500
+0844 Welland Industrial Co., Ltd
+0846 NetGear, Inc.
+ 1001 EA101 10 Mbps 10BASE-T Ethernet [Kawasaki LSI KL5KLUSB101B]
+ 1002 Ethernet
+ 1020 FA101 Fast Ethernet USB 1.1
+ 1040 FA120 Fast Ethernet USB 2.0 [Asix AX88172 / AX8817x]
+ 4110 MA111(v1) 802.11b Wireless [Intersil Prism 3.0]
+ 4200 WG121(v1) 54 Mbps Wireless [Intersil ISL3886]
+ 4210 WG121(v2) 54 Mbps Wireless [Intersil ISL3886]
+ 4220 WG111(v1) 54 Mbps Wireless [Intersil ISL3886]
+ 4230 MA111(v2) 802.11b Wireless [SIS SIS 162]
+ 4240 WG111(v1) rev 2 54 Mbps Wireless [Intersil ISL3887]
+ 4250 WG111T 802.11g Wireless Adapter [Atheros AR5523]
+ 4260 WG111v3 54 Mbps Wireless [realtek RTL8187B]
+ 4300 WG111U Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX]
+ 4301 WG111U (no firmware) Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX]
+ 5f00 WPN111 802.11g Wireless Adapter [Atheros AR5523]
+ 6a00 WG111v2 54 Mbps Wireless [RealTek RTL8187L]
+ 7100 WN121T RangeMax Next Wireless-N [Marvell TopDog]
+ 9000 WN111(v1) RangeMax Next Wireless [Marvell 88W8362+88W8060]
+ 9001 WN111(v2) RangeMax Next Wireless [Atheros AR9170+AR9101]
+ 9010 WNDA3100v1 802.11abgn [Atheros AR9170+AR9104]
+ 9011 WNDA3100v2 802.11abgn [Broadcom BCM4323]
+ 9018 WNDA3200 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]
+ 9020 WNA3100(v1) Wireless-N 300 [Broadcom BCM43231]
+ 9030 WNA1100 Wireless-N 150 [Atheros AR9271]
+ 9040 WNA1000 Wireless-N 150 [Atheros AR9170+AR9101]
+ 9041 WNA1000M 802.11bgn [Realtek RTL8188CUS]
+ a001 PA101 10 Mbps HPNA Home Phoneline RJ-1
+084d Minton Optic Industry Co., Inc.
+ 0001 Jenoptik JD800i
+ 0003 S-Cam F5/D-Link DSC-350 Digital Camera
+ 0011 Argus DC3500 Digital Camera
+ 0014 Praktica DC 32
+ 0019 Praktica DPix3000
+ 0025 Praktica DC 60
+ 1001 ScanHex SX-35d
+084e KB Gear
+ 0001 JamCam Camera
+ 1001 Jam Studio Tablet
+ 1002 Pablo Tablet
+084f Empeg
+ 0001 Empeg-Car Mark I/II Player
+0850 Fast Point Technologies, Inc.
+0851 Macronix International Co., Ltd
+ 1542 SiPix Blink
+ 1543 Maxell WS30 Slim Digital Camera, or Pandigital PI8004W01 digital photo frame
+ a168 MXIC
+0852 CSEM
+0853 Topre Corporation
+ 0100 HHKB Professional
+0854 ActiveWire, Inc.
+ 0100 I/O Board
+ 0101 I/O Board, rev1
+0856 B&B Electronics
+ ac01 uLinks USOTL4 RS422/485 Adapter
+0858 Hitachi Maxell, Ltd
+ 3102 Bluetooth Device
+ ffff Maxell module with BlueCore in DFU mode
+0859 Minolta Systems Laboratory, Inc.
+085a Xircom
+ 0001 Portstation Dual Serial Port
+ 0003 Portstation Paraller Port
+ 0008 Ethernet
+ 0009 Ethernet
+ 000b Portstation Dual PS/2 Port
+ 0021 1 port to Serial Converter
+ 0022 Parallel Port
+ 0023 2 port to Serial Converter
+ 0024 Parallel Port
+ 0027 1 port to Serial Converter
+ 0028 PortGear to SCSI Converter
+ 0032 PortStation SCSI Module
+ 003c Bluetooth Adapter
+ 0299 Colorvision, Inc. Monitor Spyder
+ 8021 1 port to Serial
+ 8023 2 port to Serial
+ 8027 PGSDB9 Serial Port
+085c ColorVision, Inc.
+ 0200 Monitor Spyder
+0862 Teletrol Systems, Inc.
+0863 Filanet Corp.
+0864 NetGear, Inc.
+ 4100 MA101 802.11b Adapter
+ 4102 MA101 802.11b Adapter
+0867 Data Translation, Inc.
+ 9812 ECON Data acquisition unit
+ 9816 DT9816 ECON data acquisition module
+ 9836 DT9836 data acquisition card
+086a Emagic Soft- und Hardware GmbH
+ 0001 Unitor8
+ 0002 AMT8
+ 0003 MT4
+086c DeTeWe - Deutsche Telephonwerke AG & Co.
+ 1001 Eumex 504PC ISDN TA
+ 1002 Eumex 504PC (FlashLoad)
+ 1003 TA33 ISDN TA
+ 1004 TA33 (FlashLoad)
+ 1005 Eumex 604PC HomeNet
+ 1006 Eumex 604PC HomeNet (FlashLoad)
+ 1007 Eumex 704PC DSL
+ 1008 Eumex 704PC DSL (FlashLoad)
+ 1009 Eumex 724PC DSL
+ 100a Eumex 724PC DSL (FlashLoad)
+ 100b OpenCom 30
+ 100c OpenCom 30 (FlashLoad)
+ 100d BeeTel Home 100
+ 100e BeeTel Home 100 (FlashLoad)
+ 1011 USB2DECT
+ 1012 USB2DECT (FlashLoad)
+ 1013 Eumex 704PC LAN
+ 1014 Eumex 704PC LAN (FlashLoad)
+ 1019 Eumex 504 SE
+ 101a Eumex 504 SE (Flash-Mode)
+ 1021 OpenCom 40
+ 1022 OpenCom 40 (FlashLoad)
+ 1023 OpenCom 45
+ 1024 OpenCom 45 (FlashLoad)
+ 1025 Sinus 61 data
+ 1029 dect BOX
+ 102c Eumex 604PC HomeNet [FlashLoad]
+ 1030 Eumex 704PC DSL [FlashLoad]
+ 1032 OpenCom 40 [FlashLoad]
+ 1033 OpenCom 30 plus
+ 1034 OpenCom 30 plus (FlashLoad)
+ 1041 Eumex 220PC
+ 1042 Eumex 220PC (FlashMode)
+ 1055 Eumex 220 Version 2 ISDN TA
+ 1056 Eumex 220 Version 2 ISDN TA (Flash-Mode)
+ 2000 OpenCom 1000
+086e System TALKS, Inc.
+ 1920 SGC-X2UL
+086f MEC IMEX, Inc.
+0870 Metricom
+ 0001 Ricochet GS
+0871 SanDisk, Inc.
+ 0001 SDDR-01 Compact Flash Reader
+ 0002 SDDR-31 Compact Flash Reader
+ 0005 SDDR-05 Compact Flash Reader
+0873 Xpeed, Inc.
+0874 A-Tec Subsystem, Inc.
+0879 Comtrol Corp.
+087c Adesso/Kbtek America, Inc.
+087d Jaton Corp.
+ 5704 Ethernet
+087e Fujitsu Computer Products of America
+087f Virtual IP Group, Inc.
+0880 APT Technologies, Inc.
+0883 Recording Industry Association of America (RIAA)
+0885 Boca Research, Inc.
+0886 XAC Automation Corp.
+ 0630 Intel PC Camera CS630
+0887 Hannstar Electronics Corp.
+088b MassWorks, Inc.
+ 4944 MassWorks ID-75 TouchScreen
+088c Swecoin AB
+ 2030 Ticket Printer TTP 2030
+088e iLok
+ 5036 Portable secure storage for software licenses
+0892 DioGraphy, Inc.
+ 0101 Smartdio Reader/Writer
+0897 Lauterbach
+ 0002 Power Debug/Power Debug II
+089c United Technologies Research Cntr.
+089d Icron Technologies Corp.
+089e NST Co., Ltd
+089f Primex Aerospace Co.
+08a5 e9, Inc.
+08a8 Andrea Electronics
+08ae Macally (Mace Group, Inc.)
+08b4 Sorenson Vision, Inc.
+08b7 NATSU
+ 0001 Playstation adapter
+08b8 J. Gordon Electronic Design, Inc.
+ 01f4 USBSIMM1
+08b9 RadioShack Corp. (Tandy)
+08bb Texas Instruments Japan
+ 2702 Speakers
+ 2900 PCM2900 Audio Codec
+ 2901 PCM2901 Audio Codec
+ 2902 PCM2902 Audio Codec
+ 2904 PCM2904 Audio Codec
+ 2910 PCM2912 Audio Codec
+08bd Citizen Watch Co., Ltd
+ 0208 CLP-521 Label Printer
+ 1100 X1-USB Floppy
+08c3 Precise Biometrics
+ 0001 100 SC
+ 0002 100 A
+ 0003 100 SC BioKeyboard
+ 0006 100 A BioKeyboard
+ 0100 100 MC ISP
+ 0101 100 MC FingerPrint and SmartCard Reader
+ 0300 100 AX
+ 0400 100 SC
+ 0401 150 MC
+ 0402 200 MC FingerPrint and SmartCard Reader
+ 0404 100 SC Upgrade
+ 0405 150 MC Upgrade
+ 0406 100 MC Upgrade
+08c4 Proxim, Inc.
+ 0100 Skyline 802.11b Wireless Adapter
+ 02f2 Farallon Home Phoneline Adapter
+08c7 Key Nice Enterprise Co., Ltd
+08c8 2Wire, Inc.
+08c9 Nippon Telegraph and Telephone Corp.
+08ca Aiptek International, Inc.
+ 0001 Tablet
+ 0010 Tablet
+ 0020 APT-6000U Tablet
+ 0021 APT-2 Tablet
+ 0022 Tablet
+ 0023 Tablet
+ 0024 Tablet
+ 0100 Pen Drive
+ 0102 DualCam
+ 0103 Pocket DV Digital Camera
+ 0104 Pocket DVII
+ 0105 Mega DV(Disk)
+ 0106 Pocket DV3100+
+ 0107 Pocket DV3100
+ 0109 Nisis DV4 Digital Camera
+ 010a Trust 738AV LCD PV Mass Storage
+ 0111 PenCam VGA Plus
+ 2008 Mini PenCam 2
+ 2010 Pocket CAM 3 Mega (webcam)
+ 2011 Pocket CAM 3 Mega (storage)
+ 2016 PocketCam 2 Mega
+ 2018 Pencam SD 2M
+ 2020 Slim 3000F
+ 2022 Slim 3200
+ 2024 Pocket DV3500
+ 2028 Pocket Cam4M
+ 2040 Pocket DV4100M
+ 2042 Pocket DV5100M Composite Device
+ 2043 Pocket DV5100M (Disk)
+ 2060 Pocket DV5300
+08cd Jue Hsun Ind. Corp.
+08ce Long Well Electronics Corp.
+08cf Productivity Enhancement Products
+08d1 smartBridges, Inc.
+ 0001 smartNIC Ethernet [catc]
+ 0003 smartNIC 2 PnP Ethernet
+08d3 Virtual Ink
+08d4 Fujitsu Siemens Computers
+ 0009 SCR SmartCard Reader
+08d8 IXXAT Automation GmbH
+ 0002 USB-to-CAN compact
+ 0003 USB-to-CAN II
+ 0100 USB-to-CAN
+08d9 Increment P Corp.
+08dd Billionton Systems, Inc.
+ 0112 Wireless LAN Adapter
+ 0113 Wireless LAN Adapter
+ 0986 USB-100N Ethernet [pegasus]
+ 0987 USBLP-100 HomePNA Ethernet [pegasus]
+ 0988 USBEL-100 Ethernet [pegasus]
+ 1986 10/100 LAN Adapter
+ 2103 DVB-T TV-Tuner Card-R
+ 8511 USBE-100 Ethernet [pegasus2]
+ 90ff USB2AR Ethernet
+08de ???
+ 7a01 802.11b Adapter
+08df Spyrus, Inc.
+ 0001 Rosetta Token V1
+ 0002 Rosetta Token V2
+ 0003 Rosetta Token V3
+ 0a00 Lynks Interface
+08e3 Olitec, Inc.
+ 0002 USB-RS232 Bridge
+ 0100 Interface ADSL
+ 0101 Interface ADSL
+ 0102 ADSL
+ 0301 RNIS
+08e4 Pioneer Corp.
+08e5 Litronic
+08e6 Gemplus
+ 0001 GemPC-Touch 430
+ 0430 GemPC430 SmartCard Reader
+ 0432 GemPC432 SmartCard Reader
+ 0435 GemPC435 SmartCard Reader
+ 0437 GemPC433 SL SmartCard Reader
+ 1359 UA SECURE STORAGE TOKEN
+ 2202 Gem e-Seal Pro Token
+ 3437 GemPC Twin SmartCard Reader
+ 3438 GemPC Key SmartCard Reader
+ 3478 PinPad Smart Card Reader
+ 4433 GemPC433-Swap
+ 5501 GemProx-PU Contactless Smart Card Reader
+ ace0 UA HYBRID TOKEN
+08e7 Pan-International Wire & Cable
+08e8 Integrated Memory Logic
+08e9 Extended Systems, Inc.
+ 0100 XTNDAccess IrDA Dongle
+08ea Ericsson, Inc., Blue Ridge Labs
+ 00c9 ADSL Modem HM120dp Loader
+ 00ca ADSL WAN Modem HM120dp
+ 00ce HM230d Virtual Bus for Helium
+ abba USB Driver for Bluetooth Wireless Technology
+ abbb Bluetooth Device in DFU State
+08ec M-Systems Flash Disk Pioneers
+ 0001 TravelDrive 2C
+ 0002 TravelDrive 2C
+ 0005 TravelDrive 2C
+ 0008 TravelDrive 2C
+ 0010 DiskOnKey
+ 0011 DiskOnKey
+ 0012 TravelDrive 2C
+ 0014 TravelDrive 2C
+ 0015 Kingston DataTraveler ELITE
+ 0016 Kingston DataTraveler U3
+ 0020 TravelDrive
+ 0021 TravelDrive
+ 0022 TravelDrive
+ 0023 TravelDrive
+ 0024 TravelDrive
+ 0025 TravelDrive
+ 0026 TravelDrive
+ 0027 TravelDrive
+ 0028 TravelDrive
+ 0029 TravelDrive
+ 0030 TravelDrive
+ 0822 TravelDrive 2C
+ 0832 Hi-Speed Mass Storage Device
+ 0834 M-Disk 220
+ 0998 Kingston Data Traveler2.0 Disk Driver
+ 0999 Kingston Data Traveler2.0 Disk Driver
+ 1000 TravelDrive 2C
+ 2000 TravelDrive 2C
+ 2038 TravelDrive
+ 2039 TravelDrive
+ 204a TravelDrive
+ 204b TravelDrive
+08ed MediaTek Inc.
+ 0002 CECT M800 memory card
+08ee CCSI/Hesso
+08f0 Corex Technologies
+08f1 CTI Electronics Corp.
+08f2 Gotop Information Inc.
+ 007f Super Q2 Tablet
+08f5 SysTec Co., Ltd
+08f6 Logic 3 International, Ltd
+08f7 Vernier
+ 0001 LabPro
+ 0002 EasyTemp/Go!Temp
+ 0003 Go!Link
+ 0004 Go!Motion
+08f8 Keen Top International Enterprise Co., Ltd
+08f9 Wipro Technologies
+08fa Caere
+08fb Socket Communications
+08fc Sicon Cable Technology Co., Ltd
+08fd Digianswer A/S
+ 0001 Bluetooth Device
+08ff AuthenTec, Inc.
+ 1600 AES1600
+ 1610 AES1600
+ 2500 AES2501
+ 2501 AES2501
+ 2502 AES2501
+ 2503 AES2501
+ 2504 AES2501
+ 2505 AES2501
+ 2506 AES2501
+ 2507 AES2501
+ 2508 AES2501
+ 2509 AES2501
+ 250a AES2501
+ 250b AES2501
+ 250c AES2501
+ 250d AES2501
+ 250e AES2501
+ 250f AES2501
+ 2510 AES2510
+ 2580 AES2501 Fingerprint Sensor
+ 2588 AES2501
+ 2589 AES2501
+ 258a AES2501
+ 258b AES2501
+ 258c AES2501
+ 258d AES2501
+ 258e AES2501
+ 258f AES2501
+ 2810 AES2810
+ 3400 AES3400 TruePrint Sensor
+ 3401 AES3400 Sensor
+ 3402 AES3400 Sensor
+ 3403 AES3400 Sensor
+ 3404 AES3400 TruePrint Sensor
+ 3405 AES3400 TruePrint Sensor
+ 3406 AES3400 TruePrint Sensor
+ 3407 AES3400 TruePrint Sensor
+ 4902 BioMV with TruePrint AES3500
+ 4903 BioMV with TruePrint AES3400
+ 5500 AES4000
+ 5501 AES4000 TruePrint Sensor
+ 5503 AES4000 TruePrint Sensor
+ 5505 AES4000 TruePrint Sensor
+ 5507 AES4000 TruePrint Sensor
+ 55ff AES4000 TruePrint Sensor.
+ 5700 AES3500 Fingerprint Reader
+ 5701 AES3500 TruePrint Sensor
+ 5702 AES3500 TruePrint Sensor
+ 5703 AES3500 TruePrint Sensor
+ 5704 AES3500-BZ TruePrint Sensor
+ 5705 AES3500-BZ TruePrint Sensor
+ 5706 AES3500-BZ TruePrint Sensor
+ 5707 AES3500-BZ TruePrint Sensor
+ 5710 AES3500 TruePrint Sensor
+ 5711 AES3500 TruePrint Sensor
+ 5712 AES3500 TruePrint Sensor
+ 5713 AES3500 TruePrint Sensor
+ 5714 AES3500-BZ TruePrint Sensor
+ 5715 AES3500-BZ TruePrint Sensor
+ 5716 AES3500-BZ TruePrint Sensor
+ 5717 AES3500-BZ TruePrint Sensor
+ 5730 AES3500 TruePrint Sensor
+ 5731 AES3500 TruePrint Sensor
+ 5732 AES3500 TruePrint Sensor
+ 5733 AES3500 TruePrint Sensor
+ 5734 AES3500-BZ TruePrint Sensor
+ 5735 AES3500-BZ TruePrint Sensor
+ 5736 AES3500-BZ TruePrint Sensor
+ 5737 AES3500-BZ TruePrint Sensor
+ afe3 FingerLoc Sensor Module (Anchor)
+ afe4 FingerLoc Sensor Module (Anchor)
+ afe5 FingerLoc Sensor Module (Anchor)
+ afe6 FingerLoc Sensor Module (Anchor)
+ fffd AES2510 Sensor (USB Emulator)
+ ffff Sensor (Emulator)
+0900 Pinnacle Systems, Inc.
+0901 VST Technologies
+ 0001 Hard Drive Adapter (TPP)
+ 0002 SigmaDrive Adapter (TPP)
+0906 Faraday Technology Corp.
+0908 ShenZhen SANZHAI Technology Co.,Ltd
+ 2701 Spy Pen VGA
+0909 Audio-Technica Corp.
+090a Trumpion Microelectronics, Inc.
+ 1001 T33520 Flash Card Controller
+ 1100 Comotron C3310 MP3 player
+ 1200 MP3 player
+ 1540 Digitex Container Flash Disk
+090b Neurosmith
+090c Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.)
+ 0371 Silicon Motion SM371 Camera
+ 0373 Silicon Motion Camera
+ 037a Silicon Motion Camera
+ 037b Silicon Motion Camera
+ 1000 64MB QDI U2 DISK
+ 1132 5-in-1 Card Reader
+ 337b Silicon Motion Camera
+ 3710 Silicon Motion Camera
+ 3720 Silicon Motion Camera
+ 37c0 Silicon Motion Camera
+ 6000 SD/SDHC Card Reader (SG365 / FlexiDrive XC+)
+ 6200 microSD card reader
+ 837b Silicon Motion Camera
+ 937b Silicon Motion Camera
+ b370 Silicon Motion SM370 Camera
+ b371 Silicon Motion SM371 Camera
+090d Multiport Computer Vertriebs GmbH
+090e Shining Technology, Inc.
+090f Fujitsu Devices, Inc.
+0910 Alation Systems, Inc.
+0911 Philips Speech Processing
+ 149a SpeechMike II Pro Plus LFH5276
+ 2512 SpeechMike Pro
+0912 Voquette, Inc.
+0915 GlobeSpan, Inc.
+ 0001 DSL Modem
+ 0002 ADSL ATM Modem
+ 0005 LAN Modem
+ 2000 802.11 Adapter
+ 2002 802.11 Adapter
+ 8000 ADSL LAN Modem
+ 8005 DSL-302G Modem
+ 8101 ADSL WAN Modem
+ 8102 DSL-200 ADSL Modem
+ 8103 DSL-200 ADSL Modem
+ 8104 DSL-200 Modem
+ 8400 DSL Modem
+ 8401 DSL Modem
+ 8402 DSL Modem
+ 8500 DSL Modem
+ 8501 DSL Modem
+0917 SmartDisk Corp.
+ 0001 eFilm Reader-11 SM/CF
+ 0002 eFilm Reader-11 SM
+ 0003 eFilm Reader-11 CF
+ 0200 FireFly
+ 0201 FireLite
+ 0202 STORAGE ADAPTER (FirePower)
+ 0204 FlashTrax Storage
+ 0205 STORAGE ADAPTER (CrossFire)
+ 0206 FireFly 20G HDD
+ 0207 FireLite
+ 020f STORAGE ADAPTER (FireLite)
+ da01 eFilm Reader-11 Test
+ ffff eFilm Reader-11 (Class/PDR)
+0919 Tiger Electronics
+ 0100 Fast Flicks Digital Camera
+091e Garmin International
+ 0003 GPS (various models)
+ 0004 iQue 3600
+ 0200 Data Card Programmer (install)
+ 1200 Data Card Programmer
+ 21a5 etrex Cx (msc)
+ 2271 Edge 605/705
+ 2295 Colorado 300
+ 22b6 eTrex Vista HCx (Mass Storage mode)
+ 2353 Nüvi 205T
+ 2535 Edge 800
+0920 Echelon Co.
+ 7500 Network Interface
+0921 GoHubs, Inc.
+ 1001 GoCOM232 Serial
+0922 Dymo-CoStar Corp.
+ 0007 LabelWriter 330
+ 0009 LabelWriter 310
+ 001a LabelWriter 400 Turbo
+ 0020 LabelWriter 450
+0923 IC Media Corp.
+ 010f SIIG MobileCam
+0924 Xerox
+ 23dd DocuPrint M760 (X760_USB)
+ 3ce8 Phaser 3428 Printer
+ 3d5b Phaser 6115MFP TWAIN Scanner
+ 420f WorkCentre PE220 Series
+ 421f M20 Scanner
+ 423b Printing Support
+ ffef WorkCenter M15
+ fffb DocuPrint M750 (X750_USB)
+0925 Lakeview Research
+ 0005 Gamtec.,Ltd SmartJoy PLUS Adapter
+ 8101 Phidgets, Inc., 1-Motor PhidgetServo v2.0
+ 8104 Phidgets, Inc., 4-Motor PhidgetServo v2.0
+ 8800 WiseGroup Ltd, MP-8800 Quad Joypad
+ 8866 WiseGroup Ltd, MP-8866 Dual Joypad
+0927 Summus, Ltd
+0928 Oxford Semiconductor, Ltd
+0929 American Biometric Co.
+092a Toshiba Information & Industrial Sys. And Services
+092b Sena Technologies, Inc.
+092f Northern Embedded Science/CAVNEX
+ 0004 JTAG-4
+ 0005 JTAG-5
+0930 Toshiba Corp.
+ 0009 Gigabeat F/X (HDD audio player)
+ 000c Gigabeat F (mtp)
+ 0010 Gigabeat S (mtp)
+ 0301 PCX1100U Cable Modem (WDM)
+ 0302 PCX2000 Cable Modem (WDM)
+ 0305 Cable Modem PCX3000
+ 0307 Cable Modem PCX2500
+ 0308 PCX2200 Cable Modem (WDM)
+ 0309 PCX5000 Cable Modem (WDM)
+ 030b Cable Modem PCX2600
+ 0501 Bluetooth Controller
+ 0502 Integrated Bluetooth
+ 0503 Bluetooth Controller
+ 0505 Integrated Bluetooth
+ 0506 Integrated Bluetooth
+ 0507 Bluetooth Adapter
+ 0508 Integrated Bluetooth HCI
+ 0509 BT EDR Dongle
+ 0706 PocketPC e740
+ 0707 Pocket PC e330 Series
+ 0708 Pocket PC e350 Series
+ 0709 Pocket PC e750 Series
+ 070a Pocket PC e400 Series
+ 070b Pocket PC e800 Series
+ 0a07 WLM-10U1 802.11abgn Wireless Adapter [Ralink RT3572]
+ 0b05 PX1220E-1G25 External hard drive
+ 0b09 PX1396E-3T01 External hard drive
+ 1300 Wireless Broadband (CDMA EV-DO) SM-Bus Minicard Status Port
+ 1301 Wireless Broadband (CDMA EV-DO) Minicard Status Port
+ 1302 Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port
+ 1303 Wireless Broadband (3G HSDPA) Minicard Status Port
+ 1308 Broadband (3G HSDPA) SM-Bus Minicard Diagnostics Port
+ 130b F3507g Mobile Broadband Module
+ 130c F3607gw Mobile Broadband Module
+ 1311 F3607gw v2 Mobile Broadband Module
+ 642f TravelDrive
+ 6506 TravelDrive 2C
+ 6507 TravelDrive 2C
+ 6508 TravelDrive 2C
+ 6509 TravelDrive 2C
+ 6510 TravelDrive 2C
+ 6517 TravelDrive 2C
+ 6518 TravelDrive 2C
+ 6519 Kingston DataTraveler 2.0 USB Stick
+ 651a TravelDrive 2C
+ 651b TravelDrive 2C
+ 651c TravelDrive 2C
+ 651d TravelDrive 2C
+ 651e TravelDrive 2C
+ 651f TravelDrive 2C
+ 6520 TravelDrive 2C
+ 6521 TravelDrive 2C
+ 6522 TravelDrive 2C
+ 6523 TravelDrive
+ 6524 TravelDrive
+ 6525 TravelDrive
+ 6526 TravelDrive
+ 6527 TravelDrive
+ 6528 TravelDrive
+ 6529 TravelDrive
+ 652a TravelDrive
+ 652b TravelDrive
+ 652c TravelDrive
+ 652d TravelDrive
+ 652f TravelDrive
+ 6530 TravelDrive
+ 6531 TravelDrive
+ 6532 256M Stick
+ 6533 512M Stick
+ 6534 TravelDrive
+ 653c Kingston DataTraveler 2.0 Stick (512M)
+ 653d Kingston DataTraveler 2.0 Stick (1GB)
+ 653e Flash Memory
+ 6540 TransMemory Flash Memory
+ 6544 Kingston DataTraveler 2.0 Stick (2GB)
+ 6545 Kingston DataTraveler 102 Flash Drive / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick
+0931 Harmonic Data Systems, Ltd
+0932 Crescentec Corp.
+ 0300 VideoAdvantage
+ 0302 Syntek DC-112X
+ 0320 VideoAdvantage
+ 0482 USB2.0 TVBOX
+ 1100 DC-1100 Video Enhamcement Device
+ 1112 Veo Web Camera
+ a311 Video Enhancement Device
+0933 Quantum Corp.
+0934 Netcom Systems
+0936 NuTesla
+ 0030 Composite Device, Mass Storage Device (Flash Drive) amd HID
+ 003c Rhythmedics HID Bootloader
+0939 Lumberg, Inc.
+093a Pixart Imaging, Inc.
+ 0007 CMOS 100K-R Rev. 1.90
+ 010e Digital camera, CD302N/Elta Medi@ digi-cam/HE-501A
+ 010f Argus DC-1610/DC-1620/Emprex PCD3600/Philips P44417B keychain camera/Precision Mini,Model HA513A/Vivitar Vivicam 55
+ 020f Bullet Line Photo Viewer
+ 050f Mars-Semi Pc-Camera
+ 2460 Q-TEC WEBCAM 100
+ 2468 SoC PC-Camera
+ 2470 SoC PC-Camera
+ 2471 SoC PC-Camera
+ 2500 USB Optical Mouse
+ 2510 Optical Mouse
+ 2600 Typhoon Easycam USB 330K (newer)/Typhoon Easycam USB 2.0 VGA 1.3M/Sansun SN-508
+ 2601 SPC 610NC Laptop Camera
+ 2603 PAC7312 Camera
+ 2608 PAC7311 Trust WB-3300p
+ 260e PAC7311 Gigaware VGA PC Camera:Trust WB-3350p:SIGMA cam 2350
+ 260f PAC7311 SnakeCam
+ 2621 PAC731x Trust Webcam
+ 2624 Webcam
+093b Plextor Corp.
+ 0010 Storage Adapter
+ 0011 PlexWriter 40/12/40U
+ 0041 PX-708A DVD RW
+ 0042 PX-712UF DVD RW
+ a002 ConvertX M402U XLOADER
+ a003 ConvertX AV100U A/V Capture Audio
+ a004 ConvertX TV402U XLOADER
+ a005 ConvertX TV100U A/V Capture
+ a102 ConvertX M402U A/V Capture
+ a104 ConvertX PX-TV402U/NA
+093c Intrepid Control Systems, Inc.
+ 0601 ValueCAN
+ 0701 NeoVI Blue vehicle bus interface
+093d InnoSync, Inc.
+093e J.S.T. Mfg. Co., Ltd
+093f Olympia Telecom Vertriebs GmbH
+0940 Japan Storage Battery Co., Ltd
+0941 Photobit Corp.
+0942 i2Go.com, LLC
+0943 HCL Technologies India Private, Ltd
+0944 KORG, Inc.
+ 0001 PXR4 4-Track Digital Recorder
+ 0020 KAOSS Pad KP3 Dynamic Effect/Sampler
+ 010d nanoKEY MIDI keyboard
+ 010e nanoPAD pad controller
+ 010f nanoKONTROL studio controller
+ 0f03 K-Series K61P MIDI studio controller
+0945 Pasco Scientific
+0948 Kronauer music in digital
+ 0301 USB Pro (24/48)
+ 0302 USB Pro (24/96 playback)
+ 0303 USB Pro (24/96 record)
+ 0304 USB Pro (16/48)
+ 1105 USB One
+094b Linkup Systems Corp.
+ 0001 neonode N2
+094d Cable Television Laboratories
+094f Yano
+ 0101 U640MO-03
+ 05fc METALWEAR-HDD
+0951 Kingston Technology
+ 0008 Ethernet
+ 000a KNU101TX 100baseTX Ethernet
+ 1600 DataTraveler II Pen Drive
+ 1601 DataTraveler II+ Pen Drive
+ 1602 DataTraveler Mini
+ 1603 DataTraveler 1GB/2GB Pen Drive
+ 1607 DataTraveler 100
+ 1613 DataTraveler DT101C Flash Drive
+ 1616 Kingston DataTraveler Locker (4GB)
+ 1624 DataTraveler G2 4GB Pen Drive
+ 1625 DataTraveler 101 II
+ 162a DataTraveler 112 4GB Pen Drive
+ 1643 DataTraveler G3 4GB
+0954 RPM Systems Corp.
+0955 NVidia Corp.
+0956 BSquare Corp.
+0957 Agilent Technologies, Inc.
+ 0200 E-Video DC-350 Camera
+ 0202 E-Video DC-350 Camera
+0958 CompuLink Research, Inc.
+0959 Cologne Chip AG
+ 2bd0 Intelligent ISDN (Ver. 3.60.04)
+095a Portsmith
+ 3003 Express Ethernet
+095b Medialogic Corp.
+095c K-Tec Electronics
+095d Polycom, Inc.
+ 0001 Polycom ViaVideo
+0967 Acer (??)
+ 0204 WarpLink 802.11b Adapter
+0968 Catalyst Enterprises, Inc.
+096e Feitian Technologies, Inc.
+ 0802 ePass2000 (G&D STARCOS SPK 2.4)
+0971 Gretag-Macbeth AG
+ 2003 Eye-One display
+ 2005 Huey
+ 2007 ColorMunki
+0973 Schlumberger
+ 0001 e-gate Smart Card
+0974 Datagraphix, a business unit of Anacomp
+0975 OL'E Communications, Inc.
+0976 Adirondack Wire & Cable
+0977 Lightsurf Technologies
+0978 Beckhoff GmbH
+0979 Jeilin Technology Corp., Ltd
+ 0224 JL2005A Toy Camera
+ 0226 JL2005A Toy Camera
+ 0227 JL2005B/C/D Toy Camera
+097a Minds At Work LLC
+ 0001 Digital Wallet
+097b Knudsen Engineering, Ltd
+097c Marunix Co., Ltd
+097d Rosun Technologies, Inc.
+097f Barun Electronics Co., Ltd
+0981 Oak Technology, Ltd
+0984 Apricorn
+ 0200 Hard Drive Storage (TPP)
+0985 cab Produkttechnik GmbH & Co KG
+ 0045 Mach4/200 Label Printer
+ 00a3 A3/200 or A3/300 Label Printer
+0986 Matsushita Electric Works, Ltd.
+098c Vitana Corp.
+098d INDesign
+098e Integrated Intellectual Property, Inc.
+098f Kenwood TMI Corp.
+0993 Gemstar eBook Group, Ltd
+ 0001 REB1100 eBook Reader
+ 0002 eBook
+0996 Integrated Telecom Express, Inc.
+099a Zippy Technology Corp.
+ 0638 Sanwa Supply Inc. Small Keyboard
+ 610c EL-610 Super Mini Electron luminescent Keyboard
+ 7160 Hyper Slim Keyboard
+09a3 PairGain Technologies
+09a4 Contech Research, Inc.
+09a5 VCON Telecommunications
+09a6 Poinchips
+ 8001 Mass Storage Device
+09a7 Data Transmission Network Corp.
+09a8 Lin Shiung Enterprise Co., Ltd
+09a9 Smart Card Technologies Co., Ltd
+09aa Intersil Corp.
+ 1000 Prism GT 802.11b/g Adapter
+ 3642 Prism 2.x 802.11b Adapter
+09ab Japan Cash Machine Co., Ltd.
+09ae Tripp Lite
+09b2 Franklin Electronic Publishers, Inc.
+ 0001 eBookman Palm Computer
+09b3 Altius Solutions, Inc.
+09b4 MDS Telephone Systems
+09b5 Celltrix Technology Co., Ltd
+09bc Grundig
+ 0002 MPaxx MP150 MP3 Player
+09be MySmart.Com
+ 0001 MySmartPad
+09bf Auerswald GmbH & Co. KG
+ 00c0 COMpact 2104 ISDN PBX
+ 00db COMpact 4410/2206 ISDN ISDN
+ 00f1 COMfort System Telephones
+09c0 Genpix Electronics, LLC
+ 0202 8PSK DVB-S tuner
+ 0203 Skywalker-1 DVB-S tuner
+ 0204 Skywalker-CW3K DVB-S tuner
+ 0205 Skywalker-CW3K DVB-S tuner
+ 0206 Skywalker-2 DVB-S tuner
+09c1 Arris Interactive LLC
+ 1337 TOUCHSTONE DEVICE
+09c2 Nisca Corp.
+09c3 ActivCard, Inc.
+ 0007 Reader V2
+ 0008 ZFG-9800-AC SmartCard Reader
+ 0014 ActivIdentity ActivKey SIM USB Token
+09c4 ACTiSYS Corp.
+ 0011 ACT-IR2000U IrDA Dongle
+09c5 Memory Corp.
+09cc Workbit Corp.
+ 0404 BAFO USB-ATA/ATAPI Bridge Controller
+09cd Psion Dacom Home Networks, Ltd
+ 2001 Psion WaveFinder DAB radio receiver
+09ce City Electronics, Ltd
+09cf Electronics Testing Center, Taiwan
+09d1 NeoMagic, Inc.
+09d2 Vreelin Engineering, Inc.
+09d3 Com One
+ 0001 ISDN TA
+09d7 Novatel Wireless
+ 0100 NovAtel FlexPack GPS receiver
+09d9 KRF Tech, Ltd
+09da A4 Tech Co., Ltd
+ 0006 Optical Mouse WOP-35 / Trust 450L Optical Mouse
+ 000a Port Mouse
+ 0018 Trust Human Interface Device
+ 001a Wireless Mouse & RXM-15 Receiver
+ 002a Wireless Optical Mouse NB-30
+ 022b Wireless Mouse (Battery Free)
+ 024f RF Receiver and G6-20D Wireless Optical Mouse
+ 032b Wireless Mouse (Battery Free)
+ 8090 X-718BK Oscar Optical Gaming Mouse
+ 9090 XL-750BK Laser Mouse
+09db Measurement Computing Corp.
+ 0075 MiniLab 1008
+ 0076 PMD-1024
+ 007a PMD-1208LS
+ 0081 USB-1616FS
+ 0082 USB-1208FS
+ 0088 USB-1616FS internal hub
+09dc Aimex Corp.
+09dd Fellowes, Inc.
+09df Addonics Technologies Corp.
+09e1 Intellon Corp.
+ 5121 MicroLink dLAN
+09e5 Jo-Dan International, Inc.
+09e6 Silutia, Inc.
+09e7 Real 3D, Inc.
+09e8 AKAI Professional M.I. Corp.
+ 0062 MPD16 MIDI Pad Controller Unit
+ 006d EWI electronic wind instrument
+ 0071 MPK25 MIDI Keyboard
+ 0076 LPK25 MIDI Keyboard
+09e9 Chen-Source, Inc.
+09eb IM Networks, Inc.
+ 4331 iRhythm Tuner Remote
+09ef Xitel
+ 0101 MD-Port DG2 MiniDisc Interface
+09f3 GoFlight, Inc.
+ 0018 GF-46 Multi-Mode Display Module
+ 0028 RP-48 Combination Pushbutton-Rotary Module
+ 0048 LGTII - Landing Gear and Trim Control Module
+ 0064 MCPPro - Airliner Mode Control Panel (Autopilot)
+ 0300 EFIS - Electronic Flight Information System
+09f5 AresCom
+ 0168 Network Adapter
+ 0188 LAN Adapter
+ 0850 Adapter
+09f6 RocketChips, Inc.
+09f7 Edu-Science (H.K.), Ltd
+09f8 SoftConnex Technologies, Inc.
+09f9 Bay Associates
+09fa Mtek Vision
+09fb Altera
+ 6001 Blaster
+09ff Gain Technology Corp.
+0a00 Liquid Audio
+0a01 ViA, Inc.
+0a07 Ontrak Control Systems Inc.
+ 0064 ADU100 Data Acquisition Interface
+ 0078 ADU120 Data Acquisition Interface
+ 0082 ADU130 Data Acquisition Interface
+ 00c8 ADU200 Relay I/O Interface
+ 00d0 ADU208 Relay I/O Interface
+ 00da ADU218 Solid-State Relay I/O Interface
+0a0b Cybex Computer Products Co.
+0a11 Xentec, Inc.
+0a12 Cambridge Silicon Radio, Ltd
+ 0001 Bluetooth Dongle (HCI mode)
+ 0002 Frontline Test Equipment Bluetooth Device
+ 0003 Nanosira
+ 0004 Nanosira WHQL Reference Radio
+ 0005 Nanosira-Multimedia
+ 0006 Nanosira-Multimedia WHQL Reference Radio
+ 0007 Nanosira3-ROM
+ 0008 Nanosira3-ROM
+ 0009 Nanosira4-EDR WHQL Reference Radio
+ 000a Nanosira4-EDR-ROM
+ 000b Nanosira5-ROM
+ 0043 Bluetooth Device
+ 0100 Casira with BlueCore2-External Module
+ 0101 Casira with BlueCore2-Flash Module
+ 0102 Casira with BlueCore3-Multimedia Module
+ 0103 Casira with BlueCore3-Flash Module
+ 0104 Casira with BlueCore4-External Module
+ 0105 Casira with BlueCore4-Multimedia Module
+ 1000 Bluetooth Dongle (HID proxy mode)
+ 1010 Bluetooth Device
+ 1011 Bluetooth Device
+ 1012 Bluetooth Device
+ ffff USB Bluetooth Device in DFU State
+0a13 Telebyte, Inc.
+0a14 Spacelabs Medical, Inc.
+0a15 Scalar Corp.
+0a16 Trek Technology (S) PTE, Ltd
+ 1111 ThumbDrive
+ 8888 IBM USB Memory Key
+ 9988 Trek2000 TD-G2
+0a17 Pentax Corp.
+ 0004 Optio 330
+ 0006 Optio S
+ 0007 Optio 550
+ 0009 Optio 33WR
+ 000a Optio 555
+ 000c Optio 43WR (mass storage mode)
+ 000d Optio 43WR
+ 0015 Optio S40/S5i
+ 003b Optio 50 (mass storage mode)
+ 003d Optio S55
+ 0043 *ist DL
+ 0047 Optio S60
+ 0052 Optio 60 Digital Camera
+ 006e K10D
+ 0070 K100D
+ 0093 K200D
+ 00a7 Optio E50
+ 1001 EI2000 Camera powered by Digita!
+0a18 Heidelberger Druckmaschinen AG
+0a19 Hua Geng Technologies, Inc.
+0a21 Medtronic Physio Control Corp.
+ 8001 MMT-7305WW [Medtronic Minimed CareLink]
+0a22 Century Semiconductor USA, Inc.
+0a27 Datacard Group
+ 0102 SP35
+0a2c AK-Modul-Bus Computer GmbH
+ 0008 GPIO Ports
+0a34 TG3 Electronics, Inc.
+ 0101 TG82tp
+ 0110 Deck 82-key backlit keyboard
+0a35 Radikal Technologies
+ 002a SAC - Software Assigned Controller
+ 008a SAC Hub
+0a39 Gilat Satellite Networks, Ltd
+0a3a PentaMedia Co., Ltd
+ 0163 KN-W510U 1.0 Wireless LAN Adapter
+0a3c NTT DoCoMo, Inc.
+0a3d Varo Vision
+0a3f Swissonic AG
+0a43 Boca Systems, Inc.
+0a46 Davicom Semiconductor, Inc.
+ 0268 ST268
+ 6688 ZT6688 Fast Ethernet Adapter
+ 8515 ADMtek ADM8515 NIC
+ 9000 DM9000E Fast Ethernet Adapter
+ 9601 DM9601 Fast Ethernet Adapter
+0a47 Hirose Electric
+0a48 I/O Interconnect
+ 3233 Multimedia Card Reader
+ 3239 Multimedia Card Reader
+ 3258 Dane Elec zMate SD Reader
+ 3259 Dane Elec zMate CF Reader
+ 5000 MediaGear xD-SM
+ 500a Mass Storage Device
+ 500f Mass Storage Device
+ 5010 Mass Storage Device
+ 5011 Mass Storage Device
+ 5014 Mass Storage Device
+ 5020 Mass Storage Device
+ 5021 Mass Storage Device
+ 5022 Mass Storage Device
+ 5023 Mass Storage Device
+ 5024 Mass Storage Device
+ 5025 Mass Storage Device
+0a4b Fujitsu Media Devices, Ltd
+0a4c Computex Co., Ltd
+ 15d9 OPTICAL MOUSE
+0a4d Evolution Electronics, Ltd
+ 0064 MK-225 Driver
+ 0065 MK-225C Driver
+ 0066 MK-225C Driver
+ 0067 MK-425C Driver
+ 0078 MK-37 Driver
+ 0079 MK-37C Driver
+ 007a MK-37C Driver
+ 008c TerraTec MIDI MASTER
+ 008d MK-249C Driver
+ 008e MK-249C MIDI Keyboard
+ 008f MK-449C Driver
+ 0090 Keystation 49e Driver
+ 0091 Keystation 61es Driver
+ 00a0 MK-361 Driver
+ 00a1 MK-361C Driver
+ 00a2 MK-361C Driver
+ 00a3 MK-461C MIDI Keyboard
+ 00b5 Keystation Pro 88 Driver
+ 00d2 E-Keys Driver
+ 00f0 UC-16 Driver
+ 00f1 X-Session Driver
+ 00f5 UC-33e MIDI Controller
+0a4e Steinberg Soft-und Hardware GmbH
+0a4f Litton Systems, Inc.
+0a50 Mimaki Engineering Co., Ltd
+0a51 Sony Electronics, Inc.
+0a52 Jebsee Electronics Co., Ltd
+0a53 Portable Peripheral Co., Ltd
+ 1000 Scanner
+ 2000 Q-Scan A6 Scanner
+ 2001 Q-Scan A6 Scanner
+ 2013 Media Drive A6 Scanner
+ 2014 Media Drive A6 Scanner
+ 2015 BizCardReader 600C
+ 2016 BizCardReader 600C
+ 202a Scanshell-CSSN
+ 3000 Q-Scan A8 Scanner
+ 3002 Q-Scan A8 Reader
+ 3015 BizCardReader 300G
+ 302a LM9832 - PA570 Mini Business Card Scanner [Targus]
+ 5001 BizCardReader 900C
+0a5a Electronics For Imaging, Inc.
+0a5b EAsics NV
+0a5c Broadcom Corp.
+ 0201 iLine10(tm) Network Adapter
+ 2000 Bluetooth Device
+ 2001 Bluetooth Device
+ 2009 Bluetooth Controller
+ 200a BCM2035 Bluetooth dongle
+ 200f Bluetooth Controller
+ 201d Bluetooth Device
+ 201e IBM Integrated Bluetooth IV
+ 2020 Bluetooth dongle
+ 2033 BCM2033 Bluetooth
+ 2035 BCM2035 Bluetooth
+ 2038 Blutonium Device
+ 2039 Bluetooth Device
+ 2045 Bluetooth Controller
+ 2046 Bluetooth Device
+ 2047 Bluetooth Device
+ 205e Bluetooth Device
+ 2100 Bluetooth 2.0+eDR dongle
+ 2101 Bluetooth Controller
+ 2102 ANYCOM Blue USB-200/250
+ 2110 Bluetooth Controller
+ 2111 ANYCOM Blue USB-UHE 200/250
+ 2120 2045 Bluetooth 2.0 USB-UHE Device with trace filter
+ 2121 BCM2210 Bluetooth
+ 2122 Bluetooth 2.0+EDR dongle
+ 2123 Bluetooth dongle
+ 2130 2045 Bluetooth 2.0 USB-UHE Device with trace filter
+ 2131 2045 Bluetooth 2.0 Device with trace filter
+ 2145 Bluetooth with Enhanced Data Rate II
+ 2148 BCM92046DG-CL1ROM Bluetooth 2.1 Adapter
+ 2150 BCM2046 Bluetooth Device
+ 2151 Bluetooth
+ 217f Bluetooth Controller
+ 219b Bluetooth 2.1 Device
+ 21b1 HP Bluetooth Module
+ 21b4 BCM2070 Bluetooth 2.1 + EDR
+ 21b9 BCM2070 Bluetooth 2.1 + EDR
+ 21ba BCM2070 Bluetooth 2.1 + EDR
+ 21bb BCM2070 Bluetooth 2.1 + EDR
+ 21bc BCM2070 Bluetooth 2.1 + EDR
+ 21bd BCM2070 Bluetooth 2.1 + EDR
+ 22be BCM2070 Bluetooth 3.0 + HS
+ 4500 BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
+ 4502 Keyboard (Boot Interface Subclass)
+ 4503 Mouse (Boot Interface Subclass)
+ 5800 BCM5880 Secure Applications Processor
+ 5801 BCM5880 Secure Applications Processor with fingerprint swipe sensor
+ 5802 BCM5880 Secure Applications Processor with fingerprint touch sensor
+ 5803 BCM5880 Secure Applications Processor with secure keyboard
+ 6300 Pirelli Remote NDIS Device
+ bd13 Arcadyan WN8522B [Broadcom BCM4323]
+ d11b Eminent EM4045 [Broadcom 4320 USB]
+0a5d Diatrend Corp.
+0a5f Zebra
+ 0009 LP2844 Printer
+ 0081 GK420t Label Printer
+ 008b HC100 wristbands Printer
+ 930a Printer
+0a62 MPMan
+ 0010 MPMan MP-F40 MP3 Player
+0a66 ClearCube Technology
+0a67 Medeli Electronics Co., Ltd
+0a68 Comaide Corp.
+0a69 Chroma ate, Inc.
+0a6b Green House Co., Ltd
+ 0001 Compact Flash R/W with MP3 player
+ 000f FlashDisk
+0a6c Integrated Circuit Systems, Inc.
+0a6d UPS Manufacturing
+0a6e Benwin
+0a6f Core Technology, Inc.
+ 0400 Xanboo
+0a70 International Game Technology
+0a71 VIPColor Technologies USA, Inc.
+ 0001 VP485 Printer
+0a72 Sanwa Denshi
+0a7d NSTL, Inc.
+0a7e Octagon Systems Corp.
+0a80 Rexon Technology Corp., Ltd
+0a81 Chesen Electronics Corp.
+ 0101 Keyboard
+ 0103 Keyboard
+ 0203 Mouse
+ 0205 PS/2 Keyboard+Mouse Adapter
+ 0701 USB Missile Launcher
+0a82 Syscan
+ 4600 TravelScan 460/464
+0a83 NextComm, Inc.
+0a84 Maui Innovative Peripherals
+0a85 Idexx Labs
+0a86 NITGen Co., Ltd
+0a8d Picturetel
+0a8e Japan Aviation Electronics Industry, Ltd
+ 2011 Filter Driver For JAE XMC R/W
+0a90 Candy Technology Co., Ltd
+0a91 Globlink Technology, Inc.
+ 3801 Targus PAKP003 Mouse
+0a92 EGO SYStems, Inc.
+ 0011 SYS WaveTerminal U2A
+ 0021 GIGAPort
+ 0031 GIGAPortAG
+ 0053 AudioTrak Optoplay
+ 0061 Waveterminal U24
+ 0071 MAYA EX7
+ 0091 Maya 44
+ 00b1 MAYA EX5
+ 1000 MIDI Mate
+ 1010 RoMI/O
+ 1020 M4U
+ 1030 M8U
+ 1090 KeyControl49
+ 10a0 KeyControl25
+0a93 C Technologies AB
+ 0002 C-Pen 10
+ 0005 MyPen Light
+ 000d Input Pen
+ 0010 C-Pen 20
+ 0a93 PayPen
+0a94 Intersense
+0aa3 Lava Computer Mfg., Inc.
+0aa4 Develco Elektronik
+0aa5 First International Digital
+ 0002 irock! 500 Series
+ 0801 MP3 Player
+0aa6 Perception Digital, Ltd
+ 0101 Hercules Jukebox
+ 1501 Store 'n' Go HD Drive
+0aa7 Wincor Nixdorf International GmbH
+ 0100 POS Keyboard, TA58P-USB
+ 0101 POS Keyboard, TA85P-USB
+ 0102 POS Keyboard, TA59-USB
+ 0103 POS Keyboard, TA60-USB
+ 0104 SNIkey Keyboard, SNIKey-KB-USB
+ 0200 Operator Display, BA63-USB
+ 0201 Operator Display, BA66-USB
+ 0202 Operator Display & Scanner, XiCheck-BA63
+ 0203 Operator Display & Scanner, XiCheck-BA66
+ 0204 Graphics Operator Display, BA63GV
+ 0300 POS Printer (printer class mode), TH210
+ 0301 POS Printer (native mode), TH210
+ 0302 POS Printer (printer class mode), TH220
+ 0303 POS Printer (native mode), TH220
+ 0304 POS Printer, TH230
+ 0305 Lottery Printer, XiPrintPlus
+ 0306 POS Printer (printer class mode), TH320
+ 0307 POS Printer (native mode), TH320
+ 0308 POS Printer (printer class mode), TH420
+ 0309 POS Printer (native mode), TH420
+ 030a POS Printer, TH200B
+ 0400 Lottery Scanner, Xiscan S
+ 0401 Lottery Scanner, Xiscan 3
+ 0402 Programmable Magnetic Swipe Card Reader, MSRP-USB
+ 0500 IDE Adapter
+ 0501 Hub Printer Interface
+ 0502 Hub SNIKey Keyboard
+ 4304 Banking Printer TP07
+ 4305 Banking Printer TP07c
+ 4500 WN Central Special Electronics
+0aa8 TriGem Computer, Inc.
+ 0060 TG 11Mbps WLAN Mini Adapter
+ 1001 DreamComboM4100
+ 3002 InkJet Color Printer
+ 8001 TG_iMON
+ 8002 TG_KLOSS
+ a001 TG_X2
+ a002 TGVFD_KLOSS
+ ffda iMON_VFD
+0aa9 Baromtec Co.
+ f01b Medion MD 6242 MP3 Player
+0aaa Japan CBM Corp.
+0aab Vision Shape Europe SA
+0aac iCompression, Inc.
+0aad Rohde & Schwarz GmbH & Co. KG
+0aae NEC infrontia Corp. (Nitsuko)
+0aaf Digitalway Co., Ltd
+0ab0 Arrow Strong Electronics Co., Ltd
+0ab1 FEIG ELECTRONIC GmbH
+ 0002 OBID RFID-Reader
+0aba Ellisys
+ 8001 Tracker 110 Protocol Analyzer
+ 8002 Explorer 200 Protocol Analyzer
+0abe Stereo-Link
+ 0101 SL1200 DAC
+0abf Diolan
+ 3370 I2C/SPI Adapter - U2C-12
+0ac3 Sanyo Semiconductor Company Micro
+0ac4 Leco Corp.
+0ac5 I & C Corp.
+0ac6 Singing Electrons, Inc.
+0ac7 Panwest Corp.
+0ac8 Z-Star Microelectronics Corp.
+ 0301 Web Camera
+ 0302 ZC0302 Webcam
+ 0321 Vimicro generic vc0321 Camera
+ 0323 Luxya WC-1200 USB 2.0 Webcam
+ 0328 A4Tech PK-130MG
+ 0336 Elecom UCAM-DLQ30
+ 301b ZC0301 Webcam
+ 303b ZC0303 Webcam
+ 305b ZC0305 Webcam
+ 307b USB 1.1 Webcam
+ 332d Vega USB 2.0 Camera
+ 3343 Sirius USB 2.0 Camera
+ 3420 Venus USB2.0 Camera
+ c001 Sony embedded vimicro Camera
+ c002 Visual Communication Camera VGP-VCC1
+ c302 Vega USB 2.0 Camera
+ c303 Saturn USB 2.0 Camera
+ c326 Namuga 1.3M Webcam
+ c33f Webcam
+0ac9 Micro Solutions, Inc.
+ 0000 Backpack CD-ReWriter
+ 0001 BACKPACK 2 Cable
+ 0010 BACKPACK
+ 0011 Backpack 40GB Hard Drive
+ 0110 BACKPACK
+ 0111 BackPack
+ 1234 BACKPACK
+0aca OPEN Networks Ltd
+ 1060 OPEN NT1 Plus II
+0acc Koga Electronics Co.
+0acd ID Tech
+ 0401 ID TECH Spectrum III Hybrid Smartcard Reader
+ 0630 ID TECH Spectrum III Mag-Only Insert Reader (SPT3-355 Series) USB-CDC
+0ace ZyDAS
+ 1201 ZD1201 802.11b
+ 1211 ZD1211 802.11g
+ 1215 ZD1211B 802.11g
+ 1221 ZD1221 802.11n
+ 1602 ZyXEL Omni FaxModem 56K
+ 1608 ZyXEL Omni FaxModem 56K UNO
+ 1611 ZyXEL Omni FaxModem 56K Plus
+ 2011 Virtual media for 802.11bg
+ 20ff Virtual media for 802.11bg
+ a211 ZD1211 802.11b/g Wireless Adapter
+ b215 802.11bg
+0acf Intoto, Inc.
+0ad0 Intellix Corp.
+0ad1 Remotec Technology, Ltd
+0ad2 Service & Quality Technology Co., Ltd
+0ada Data Encryption Systems Ltd.
+ 0005 DK2
+0ae3 Allion Computer, Inc.
+0ae4 Taito Corp.
+0ae7 Neodym Systems, Inc.
+0ae8 System Support Co., Ltd
+0ae9 North Shore Circuit Design L.L.P.
+0aea SciEssence, LLC
+0aeb TTP Communications, Ltd
+0aec Neodio Technologies Corp.
+ 2101 SmartMedia Card Reader
+ 2102 CompactFlash Card Reader
+ 2103 MMC/SD Card Reader
+ 2104 MemoryStick Card Reader
+ 2201 SmartMedia+CompactFlash Card Reader
+ 2202 SmartMedia+MMC/SD Card Reader
+ 2203 SmartMedia+MemoryStick Card Reader
+ 2204 CompactFlash+MMC/SD Card Reader
+ 2205 CompactFlash+MemoryStick Card Reader
+ 2206 MMC/SD+MemoryStick Card Reader
+ 2301 SmartMedia+CompactFlash+MMC/SD Card Reader
+ 2302 SmartMedia+CompactFlash+MemoryStick Card Reader
+ 2303 SmartMedia+MMC/SD+MemoryStick Card Reader
+ 2304 CompactFlash+MMC/SD+MemoryStick Card Reader
+ 3016 MMC/SD+Memory Stick Card Reader
+ 3050 ND3050 8-in-1 Card Reader
+ 3060 1.1 FS Card Reader
+ 3101 MMC/SD Card Reader
+ 3102 MemoryStick Card Reader
+ 3201 MMC/SD+MemoryStick Card Reader
+ 3216 HS Card Reader
+ 3260 7-in-1 Card Reader
+ 5010 ND5010 Card Reader
+0af0 Option
+ 5000 UMTS Card
+ 6000 GlobeTrotter 3G datacard
+ 6300 GT 3G Quad UMTS/GPRS Card
+ 6600 GlobeTrotter 3G+ datacard
+ 6711 GlobeTrotter Express 7.2 v2
+ 6971 Globetrotter HSDPA Modem
+ 7251 Globetrotter HSUPA Modem (aka iCON HSUPA E)
+ 7501 Globetrotter HSUPA Modem (icon 411 aka "Vodafone K3760")
+ 7601 Globetrotter MO40x 3G Modem (GTM 382)
+ 7701 Globetrotter HSUPA Modem (aka icon 451)
+0af6 Silver I Co., Ltd
+0af7 B2C2, Inc.
+ 0101 Digital TV USB Receiver (DVB-S/T/C / ATSC)
+0af9 Hama, Inc.
+ 0010 USB SightCam 100
+ 0011 Micro Innovations IC50C Webcam
+0afc Zaptronix Ltd
+0afd Tateno Dennou, Inc.
+0afe Cummins Engine Co.
+0aff Jump Zone Network Products, Inc.
+0b00 INGENICO
+0b05 ASUSTek Computer, Inc.
+ 1101 Mass Storage (UISDMC4S)
+ 1706 WL-167G v1 802.11g Adapter [Ralink RT2571]
+ 1707 WL-167G v1 802.11g Adapter [Ralink RT2571]
+ 1708 Mass Storage Device
+ 170b Mass Storage Device
+ 170c WL-159g 802.11bg
+ 170d 802.11b/g Wireless Network Adapter
+ 1712 BT-183 Bluetooth 2.0+EDR adapter
+ 1715 2045 Bluetooth 2.0 Device with trace filter
+ 1716 Bluetooth Device
+ 1717 WL169gE 802.11g Adapter [Broadcom 4320 USB]
+ 171b A9T wireless 802.11bg
+ 171c 802.11b/g Wireless Network Adapter
+ 171f My Cinema U3000 Mini [DiBcom DiB7700P]
+ 1723 WL-167G v2 802.11g Adapter [Ralink RT2571W]
+ 1724 RT2573
+ 1726 Laptop OLED Display
+ 172a ASUS 802.11n Network Adapter
+ 172b 802.11n Network Adapter
+ 1731 802.11n Network Adapter
+ 1732 802.11n Network Adapter
+ 1734 ASUS AF-200
+ 173c BT-183 Bluetooth 2.0
+ 173f My Cinema U3100 Mini
+ 1742 802.11n Network Adapter
+ 1743 Xonar U1 Audio Station
+ 1751 BT-253 Bluetooth Adapter
+ 175b Laptop OLED Display
+ 1760 802.11n Network Adapter
+ 1761 802.11n Network Adapter
+ 1774 Gobi Wireless Modem (QDL mode)
+ 1776 Gobi Wireless Modem
+ 1779 My Cinema U3100 Mini Plus [AF9035A]
+ 1784 USB-N13 802.11n Network Adapter [Ralink RT3072]
+ 1786 USB-N10 802.11n Network Adapter [Realtek RTL8192SU]
+ 1791 WL-167G v3 802.11n Adapter [Realtek RTL8188SU]
+ 6101 Cable Modem
+ 620a Remote NDIS Device
+ b700 Broadcom Bluetooth 2.1
+0b0b Datamax-O'Neil
+ 106e Datamax E-4304
+0b0c Todos AB
+ 0009 Todos Argos Mini II Smart Card Reader
+ 001e e.dentifier2 (ABN AMRO electronic banking card reader NL)
+ 002e C200 smartcard controller (Nordea card reader)
+ 003f Todos C400 smartcard controller (Handelsbanken card reader)
+ 0050 Argos Mini II Smart Card Reader (CCID)
+0b0d ProjectLab
+ 0000 CenturyCD
+0b0e GN Netcom
+0b0f AVID Technology
+0b10 Pcally
+0b11 I Tech Solutions Co., Ltd
+0b1e Electronic Warfare Assoc., Inc. (EWA)
+ 8007 Blackhawk USB560-BP JTAG Emulator
+0b1f Insyde Software Corp.
+0b20 TransDimension, Inc.
+0b21 Yokogawa Electric Corp.
+0b22 Japan System Development Co., Ltd
+0b23 Pan-Asia Electronics Co., Ltd
+0b24 Link Evolution Corp.
+0b27 Ritek Corp.
+0b28 Kenwood Corp.
+0b2c Village Center, Inc.
+0b30 PNY Technologies, Inc.
+ 0006 SM Media-Shuttle Card Reader
+0b33 Contour Design, Inc.
+ 0020 ShuttleXpress
+0b37 Hitachi ULSI Systems Co., Ltd
+0b38 Gear Head
+ 0003 Keyboard
+ 0010 107-Key Keyboard
+0b39 Omnidirectional Control Technology, Inc.
+ 0001 Composite USB PS2 Converter
+ 0109 USB TO Ethernet
+ 0421 Serial
+ 0801 USB-Parallel Bridge
+ 0901 OCT To Fast Ethernet Converter
+ 0c03 LAN DOCK Serial Converter
+0b3a IPaxess
+0b3b Tekram Technology Co., Ltd
+ 0163 TL-WN320G 1.0 WLAN Adapter
+ 1601 Allnet 0193 802.11b Adapter
+ 1602 ZyXEL ZyAIR B200 802.11b Adapter
+ 1612 AIR.Mate 2@net 802.11b Adapter
+ 1613 802.11b Wireless LAN Adapter
+ 1620 Allnet USB 2.0 Wireless Network Adapter
+ 1630 QuickWLAN 802.11bg
+ 5630 802.11bg
+ 6630 ZD1211
+0b3c Olivetti Techcenter
+ a010 Simple_Way Printer/Scanner/Copier
+ c000 Olicard 100
+ c700 Olicard 100 (Mass Storage mode)
+0b3e Kikusui Electronics Corp.
+0b41 Hal Corp.
+ 0011 Crossam2+USB IR commander
+0b43 Play.com, Inc.
+ 0003 PS2 Controller Converter
+0b47 Sportbug.com, Inc.
+0b48 TechnoTrend AG
+ 1003 Technotrend/Hauppauge USB-Nova
+ 1004 TT-PCline
+ 1005 Technotrend/Hauppauge USB-Nova
+ 1006 Technotrend/Hauppauge DEC3000-s
+ 1007 TT-micro plus Device
+ 1008 Technotrend/Hauppauge DEC2000-t
+ 1009 Technotrend/Hauppauge DEC2540-t
+ 3001 DVB-S receiver
+ 3002 DVB-C receiver
+ 3003 DVB-T receiver
+ 3004 TT TV-Stick
+ 3005 TT TV-Stick (8kB EEPROM)
+ 3006 TT-connect S-2400 DVB-S receiver
+ 3007 TT-connect S2-3600
+ 3008 TT-connect
+ 3009 TT-connect S-2400 DVB-S receiver (8kB EEPROM)
+ 300a TT-connect S2-3650 CI
+ 300b TT-connect C-3650 CI
+ 300c TT-connect T-3650 CI
+ 300d TT-connect CT-3650 CI
+ 300e TT-connect C-2400
+0b49 ASCII Corp.
+ 064f Trance Vibrator
+0b4b Pine Corp. Ltd.
+ 0100 D'music MP3 Player
+0b4d Graphtec America, Inc.
+ 110a Graphtec CC200-20
+0b4e Musical Electronics, Ltd
+ 6500 MP3 Player
+ 8028 MP3 Player
+ 8920 MP3 Player
+0b50 Dumpries Co., Ltd
+0b51 Comfort Keyboard Co.
+ 0020 Comfort Keyboard
+0b52 Colorado MicroDisplay, Inc.
+0b54 Sinbon Electronics Co., Ltd
+0b56 TYI Systems, Ltd
+0b57 Beijing HanwangTechnology Co., Ltd
+0b59 Lake Communications, Ltd
+0b5a Corel Corp.
+0b5f Green Electronics Co., Ltd
+0b60 Nsine, Ltd
+0b61 NEC Viewtechnology, Ltd
+0b62 Orange Micro, Inc.
+ 000b Bluetooth Device
+ 0059 iBOT2 Webcam
+0b63 ADLink Technology, Inc.
+0b64 Wonderful Wire Cable Co., Ltd
+0b65 Expert Magnetics Corp.
+0b69 CacheVision
+0b6a Maxim Integrated Products
+0b6f Nagano Japan Radio Co., Ltd
+0b70 PortalPlayer, Inc.
+ 00ba iRiver H10 20GB
+0b71 SHIN-EI Sangyo Co., Ltd
+0b72 Embedded Wireless Technology Co., Ltd
+0b73 Computone Corp.
+0b75 Roland DG Corp.
+0b79 Sunrise Telecom, Inc.
+0b7a Zeevo, Inc.
+ 07d0 Bluetooth Dongle
+0b7b Taiko Denki Co., Ltd
+0b7c ITRAN Communications, Ltd
+0b7d Astrodesign, Inc.
+0b81 id3 Semiconductors
+ 0001 Biothentic II smartcard reader with fingerprint sensor
+ 0002 DFU-Enabled Devices (DFU)
+ 0012 BioPAD biometric module (DFU + CDC)
+ 0102 Certis V1 fingerprint reader
+ 0103 Certis V2 fingerprint reader
+ 0200 CL1356T / CL1356T5 / CL1356A smartcard readers (CCID)
+ 0201 CL1356T / CL1356T5 / CL1356A smartcard readers (DFU + CCID)
+ 0220 CL1356A FFPJP smartcard reader (CCID + HID)
+ 0221 CL1356A smartcard reader (DFU + CCID + HID)
+0b84 Rextron Technology, Inc.
+0b85 Elkat Electronics, Sdn., Bhd.
+0b86 Exputer Systems, Inc.
+ 5100 XMC5100 Zippy Drive
+ 5110 XMC5110 Flash Drive
+ 5200 XMC5200 Zippy Drive
+ 5201 XMC5200 Zippy Drive
+ 5202 XMC5200 Zippy Drive
+ 5280 XMC5280 Storage Drive
+ fff0 ISP5200 Debugger
+0b87 Plus-One I & T, Inc.
+0b88 Sigma Koki Co., Ltd, Technology Center
+0b89 Advanced Digital Broadcast, Ltd
+0b8c SMART Technologies Inc.
+ 00c3 Sympodium ID350
+0b95 ASIX Electronics Corp.
+ 1720 10/100 Ethernet
+ 1780 AX88178
+ 7720 AX88772
+0b96 Sewon Telecom
+0b97 O2 Micro, Inc.
+ 7732 Smart Card Reader
+ 7761 Oz776 1.1 Hub
+ 7762 Oz776 SmartCard Reader
+ 7772 OZ776 CCID Smartcard Reader
+0b98 Playmates Toys, Inc.
+0b99 Audio International, Inc.
+0b9b Dipl.-Ing. Stefan Kunde
+ 4012 Reflex RC-controller Interface
+0b9d Softprotec Co.
+0b9f Chippo Technologies
+0baf U.S. Robotics
+ 00e5 USR6000
+ 00eb USR1120 802.11b Adapter
+ 00ec 56K Faxmodem
+ 00f1 SureConnect ADSL ATM Adapter
+ 00f2 SureConnect ADSL Loader
+ 00f5 SureConnect ADSL ATM Adapter
+ 00f6 SureConnect ADSL Loader
+ 00f7 SureConnect ADSL ATM Adapter
+ 00f8 SureConnect ADSL Loader
+ 00f9 SureConnect ADSL ATM Adapter
+ 00fa SureConnect ADSL Loader
+ 00fb SureConnect ADSL Ethernet/USB Router
+ 0111 USR5420 802.11g Adapter [Broadcom 4320 USB]
+ 0118 U5 802.11g Adapter
+ 011b Wireless MAXg Adapter [Broadcom 4320]
+ 0121 USR5423 802.11bg
+ 6112 FaxModem Model 5633
+0bb0 Concord Camera Corp.
+ 0100 Sound Vision Stream
+ 5007 3340z/Rollei DC3100
+0bb1 Infinilink Corp.
+0bb2 Ambit Microsystems Corp.
+ 0302 U10H010 802.11b Wireless Adapter [Intersil PRISM 3]
+ 6098 USB Cable Modem
+0bb3 Ofuji Technology
+0bb4 High Tech Computer Corp.
+ 00ce mmO2 XDA GSM/GPRS Pocket PC
+ 00cf SPV C500 Smart Phone
+ 0a01 PocketPC Sync
+ 0a02 Himalaya GSM/GPRS Pocket PC
+ 0a03 PocketPC Sync
+ 0a04 PocketPC Sync
+ 0a05 PocketPC Sync
+ 0a06 PocketPC Sync
+ 0a07 Magician PocketPC SmartPhone / O2 XDA
+ 0a08 PocketPC Sync
+ 0a09 PocketPC Sync
+ 0a0a PocketPC Sync
+ 0a0b PocketPC Sync
+ 0a0c PocketPC Sync
+ 0a0d PocketPC Sync
+ 0a0e PocketPC Sync
+ 0a0f PocketPC Sync
+ 0a10 PocketPC Sync
+ 0a11 PocketPC Sync
+ 0a12 PocketPC Sync
+ 0a13 PocketPC Sync
+ 0a14 PocketPC Sync
+ 0a15 PocketPC Sync
+ 0a16 PocketPC Sync
+ 0a17 PocketPC Sync
+ 0a18 PocketPC Sync
+ 0a19 PocketPC Sync
+ 0a1a PocketPC Sync
+ 0a1b PocketPC Sync
+ 0a1c PocketPC Sync
+ 0a1d PocketPC Sync
+ 0a1e PocketPC Sync
+ 0a1f PocketPC Sync
+ 0a20 PocketPC Sync
+ 0a21 PocketPC Sync
+ 0a22 PocketPC Sync
+ 0a23 PocketPC Sync
+ 0a24 PocketPC Sync
+ 0a25 PocketPC Sync
+ 0a26 PocketPC Sync
+ 0a27 PocketPC Sync
+ 0a28 PocketPC Sync
+ 0a29 PocketPC Sync
+ 0a2a PocketPC Sync
+ 0a2b PocketPC Sync
+ 0a2c PocketPC Sync
+ 0a2d PocketPC Sync
+ 0a2e PocketPC Sync
+ 0a2f PocketPC Sync
+ 0a30 PocketPC Sync
+ 0a31 PocketPC Sync
+ 0a32 PocketPC Sync
+ 0a33 PocketPC Sync
+ 0a34 PocketPC Sync
+ 0a35 PocketPC Sync
+ 0a36 PocketPC Sync
+ 0a37 PocketPC Sync
+ 0a38 PocketPC Sync
+ 0a39 PocketPC Sync
+ 0a3a PocketPC Sync
+ 0a3b PocketPC Sync
+ 0a3c PocketPC Sync
+ 0a3d PocketPC Sync
+ 0a3e PocketPC Sync
+ 0a3f PocketPC Sync
+ 0a40 PocketPC Sync
+ 0a41 PocketPC Sync
+ 0a42 PocketPC Sync
+ 0a43 PocketPC Sync
+ 0a44 PocketPC Sync
+ 0a45 PocketPC Sync
+ 0a46 PocketPC Sync
+ 0a47 PocketPC Sync
+ 0a48 PocketPC Sync
+ 0a49 PocketPC Sync
+ 0a4a PocketPC Sync
+ 0a4b PocketPC Sync
+ 0a4c PocketPC Sync
+ 0a4d PocketPC Sync
+ 0a4e PocketPC Sync
+ 0a4f PocketPC Sync
+ 0a50 HTC SmartPhone Sync
+ 0a51 SPV C400 / T-Mobile SDA GSM/GPRS Pocket PC
+ 0a52 SmartPhone Sync
+ 0a53 SmartPhone Sync
+ 0a54 SmartPhone Sync
+ 0a55 SmartPhone Sync
+ 0a56 SmartPhone Sync
+ 0a57 SmartPhone Sync
+ 0a58 SmartPhone Sync
+ 0a59 SmartPhone Sync
+ 0a5a SmartPhone Sync
+ 0a5b SmartPhone Sync
+ 0a5c SmartPhone Sync
+ 0a5d SmartPhone Sync
+ 0a5e SmartPhone Sync
+ 0a5f SmartPhone Sync
+ 0a60 SmartPhone Sync
+ 0a61 SmartPhone Sync
+ 0a62 SmartPhone Sync
+ 0a63 SmartPhone Sync
+ 0a64 SmartPhone Sync
+ 0a65 SmartPhone Sync
+ 0a66 SmartPhone Sync
+ 0a67 SmartPhone Sync
+ 0a68 SmartPhone Sync
+ 0a69 SmartPhone Sync
+ 0a6a SmartPhone Sync
+ 0a6b SmartPhone Sync
+ 0a6c SmartPhone Sync
+ 0a6d SmartPhone Sync
+ 0a6e SmartPhone Sync
+ 0a6f SmartPhone Sync
+ 0a70 SmartPhone Sync
+ 0a71 SmartPhone Sync
+ 0a72 SmartPhone Sync
+ 0a73 SmartPhone Sync
+ 0a74 SmartPhone Sync
+ 0a75 SmartPhone Sync
+ 0a76 SmartPhone Sync
+ 0a77 SmartPhone Sync
+ 0a78 SmartPhone Sync
+ 0a79 SmartPhone Sync
+ 0a7a SmartPhone Sync
+ 0a7b SmartPhone Sync
+ 0a7c SmartPhone Sync
+ 0a7d SmartPhone Sync
+ 0a7e SmartPhone Sync
+ 0a7f SmartPhone Sync
+ 0a80 SmartPhone Sync
+ 0a81 SmartPhone Sync
+ 0a82 SmartPhone Sync
+ 0a83 SmartPhone Sync
+ 0a84 SmartPhone Sync
+ 0a85 SmartPhone Sync
+ 0a86 SmartPhone Sync
+ 0a87 SmartPhone Sync
+ 0a88 SmartPhone Sync
+ 0a89 SmartPhone Sync
+ 0a8a SmartPhone Sync
+ 0a8b SmartPhone Sync
+ 0a8c SmartPhone Sync
+ 0a8d SmartPhone Sync
+ 0a8e SmartPhone Sync
+ 0a8f SmartPhone Sync
+ 0a90 SmartPhone Sync
+ 0a91 SmartPhone Sync
+ 0a92 SmartPhone Sync
+ 0a93 SmartPhone Sync
+ 0a94 SmartPhone Sync
+ 0a95 SmartPhone Sync
+ 0a96 SmartPhone Sync
+ 0a97 SmartPhone Sync
+ 0a98 SmartPhone Sync
+ 0a99 SmartPhone Sync
+ 0a9a SmartPhone Sync
+ 0a9b SmartPhone Sync
+ 0a9c SmartPhone Sync
+ 0a9d SmartPhone Sync
+ 0a9e SmartPhone Sync
+ 0a9f SmartPhone Sync
+ 0b03 Ozone Mobile Broadband
+ 0b04 Hermes / TyTN / T-Mobile MDA Vario II / O2 Xda Trion
+ 0b05 P3600
+ 0b06 Athena / Advantage x7500 / Dopod U1000 / T-Mobile AMEO
+ 0b0c Elf / Touch / P3450 / T-Mobile MDA Touch / O2 Xda Nova / Dopod S1
+ 0b1f Sony Ericsson XPERIA X1
+ 0b2f Rhodium
+ 0b51 Qtek 8310 mobile phone [Tornado Noble]
+ 0bce Vario MDA
+ 0c01 Dream / ADP1 / G1 / Magic / Tattoo
+ 0c02 Dream / ADP1 / G1 / Magic / Tattoo (Debug)
+ 0c13 Diamond
+ 0c1f Sony Ericsson XPERIA X1
+ 0c5f Snap
+ 0c87 Desire (debug)
+ 0c8d EVO 4G (debug)
+ 0c91 Vision
+ 0c94 Vision
+ 0c97 Legend
+ 0c99 Desire (debug)
+ 0c9e Incredible
+ 0ca2 Desire HD (debug mode)
+ 0ff8 Desire HD (Tethering Mode)
+ 0ff9 Desire / Desire HD / Hero (Charge Mode)
+ 0ffe Desire HD (modem mode)
+ 0fff Android Fastboot Bootloader
+0bb5 Murata Manufacturing Co., Ltd
+0bb6 Network Alchemy
+0bb7 Joytech Computer Co., Ltd
+0bb8 Hitachi Semiconductor and Devices Sales Co., Ltd
+0bb9 Eiger M&C Co., Ltd
+0bba ZAccess Systems
+0bbb General Meters Corp.
+0bbc Assistive Technology, Inc.
+0bbd System Connection, Inc.
+0bc0 Knilink Technology, Inc.
+0bc1 Fuw Yng Electronics Co., Ltd
+0bc2 Seagate RSS LLC
+ 2000 Storage Adapter V3 (TPP)
+ 2200 FreeAgent Go FW
+ 5021 FreeAgent GoFlex USB 2.0
+ 5031 FreeAgent GoFlex USB 3.0
+0bc3 IPWireless, Inc.
+ 0001 UMTS-TDD (TD-CDMA) modem
+0bc4 Microcube Corp.
+0bc5 JCN Co., Ltd
+0bc6 ExWAY, Inc.
+0bc7 X10 Wireless Technology, Inc.
+ 0001 ActiveHome (ACPI-compliant)
+ 0002 Firecracker Interface (ACPI-compliant)
+ 0003 VGA Video Sender (ACPI-compliant)
+ 0004 X10 Receiver
+ 0005 Wireless Transceiver (ACPI-compliant)
+ 0006 Wireless Transceiver (ACPI-compliant)
+ 0007 Wireless Transceiver (ACPI-compliant)
+ 0008 Wireless Transceiver (ACPI-compliant)
+ 0009 Wireless Transceiver (ACPI-compliant)
+ 000a Wireless Transceiver (ACPI-compliant)
+ 000b Transceiver (ACPI-compliant)
+ 000c Transceiver (ACPI-compliant)
+ 000d Transceiver (ACPI-compliant)
+ 000e Transceiver (ACPI-compliant)
+ 000f Transceiver (ACPI-compliant)
+0bc8 Telmax Communications
+0bc9 ECI Telecom, Ltd
+0bca Startek Engineering, Inc.
+0bcb Perfect Technic Enterprise Co., Ltd
+0bd7 Andrew Pargeter & Associates
+ a021 Amptek DP4 multichannel signal analyzer
+0bda Realtek Semiconductor Corp.
+ 0103 USB 2.0 Card Reader
+ 0104 Mass Storage Device
+ 0106 Mass Storage Device
+ 0107 Mass Storage Device
+ 0108 Mass Storage Device
+ 0111 Card Reader
+ 0113 Mass Storage Device
+ 0115 Mass Storage Device (Multicard Reader)
+ 0116 Mass Storage Device
+ 0117 Mass Storage Device
+ 0118 Mass Storage Device
+ 0138 Card reader
+ 0151 Mass Storage Device (Multicard Reader)
+ 0152 Mass Storage Device
+ 0153 Mass Storage Device
+ 0156 Mass Storage Device
+ 0157 Mass Storage Device
+ 0158 USB 2.0 multicard reader
+ 0159 Digital Media Card Reader
+ 0161 Mass Storage Device
+ 0168 Mass Storage Device
+ 0169 Mass Storage Device
+ 0171 Mass Storage Device
+ 0176 Mass Storage Device
+ 0178 Mass Storage Device
+ 2831 RTL2831U DVB-T
+ 2832 RTL2832U DVB-T
+ 8150 RTL8150 Fast Ethernet Adapter
+ 8151 RTL8151 Adapteon Business Mobile Networks BV
+ 8171 RTL8188SU 802.11n WLAN Adapter
+ 8172 RTL8191SU 802.11n WLAN Adapter
+ 8176 RTL8188CUS 802.11n WLAN
+ 8187 RTL8187 Wireless Adapter
+ 8189 RTL8187B Wireless 802.11g 54Mbps Network Adapter
+ 8192 RTL8192U 802.11n Wireless Adapter
+ 8197 RTL8187B Wireless Adapter
+ 8198 RTL8187B Wireless Adapter
+0bdb Ericsson Business Mobile Networks BV
+ 1000 BV Bluetooth Device
+ 1002 Bluetooth Device 1.2
+ 1049 C3607w Mobile Broadband Module
+ 1900 F3507g Mobile Broadband Module
+ 1902 F3507g v2 Mobile Broadband Module
+ 1904 F3607gw Mobile Broadband Module
+ 1905 F3607gw v2 Mobile Broadband Module
+ 1906 F3607gw v3 Mobile Broadband Module
+ 1909 F3307 v2 Mobile Broadband Module
+ 190a F3307 Mobile Broadband Module
+ 190b C3607w v2 Mobile Broadband Module
+0bdc Y Media Corp.
+0bdd Orange PCS
+0be2 Kanda Tsushin Kogyo Co., Ltd
+0be3 TOYO Corp.
+0be4 Elka International, Ltd
+0be5 DOME imaging systems, Inc.
+0be6 Dong Guan Humen Wonderful Wire Cable Factory
+0bed Silicon Labs
+ 1100 MEI (TM) Cashflow-SC Bill/Voucher Acceptor
+0bee LTK Industries, Ltd
+0bef Way2Call Communications
+0bf0 Pace Micro Technology PLC
+0bf1 Intracom S.A.
+ 0001 netMod Driver Ver 2.4.17 (CAPI)
+ 0002 netMod Driver Ver 2.4 (CAPI)
+ 0003 netMod Driver Ver 2.4 (CAPI)
+0bf2 Konexx
+0bf6 Addonics Technologies, Inc.
+ 0103 Storage Device
+ 1234 Storage Device
+ a000 Cable 205 (TPP)
+ a001 Cable 205
+ a002 IDE Bridge
+0bf7 Sunny Giken, Inc.
+0bf8 Fujitsu Siemens Computers
+ 1001 Fujitsu Pocket Loox 600 PDA
+ 1006 SmartCard Reader 2A
+ 1007 Connect2Air E-5400 802.11g Wireless Adapter
+ 1009 Connect2Air E-5400 D1700 802.11g Wireless Adapter [Intersil ISL3887]
+ 100f miniCard D2301 802.11bg Wireless Module [SiS 163U]
+0bfd Kvaser AB
+ 0004 USBcan II
+ 000b Leaf Light HS
+ 000e Leaf SemiPro HS
+0c04 MOTO Development Group, Inc.
+0c05 Appian Graphics
+0c06 Hasbro Games, Inc.
+0c07 Infinite Data Storage, Ltd
+0c08 Agate
+ 0378 Q 16MB Storage Device
+0c09 Comjet Information System
+ a5a5 Litto Version USB2.0
+0c0a Highpoint Technologies, Inc.
+0c0b Dura Micro, Inc. (Acomdata)
+ 27cb 6-in-1 Flash Reader and Writer
+ 27d7 Multi Memory reader/writer MD-005
+ 27da Multi Memory reader/writer MD-005
+ 27dc Multi Memory reader/writer MD-005
+ 27e7 3,5'' HDD case MD-231
+ 27ee 3,5'' HDD case MD-231
+ 2814 3,5'' HDD case MD-231
+ 2815 3,5'' HDD case MD-231
+ 281d 3,5'' HDD case MD-231
+ 5fab Storage Adaptor
+ a109 CF/SM Reader and Writer
+ a10c SD/MS Reader and Writer
+ b001 USB 2.0 Mass Storage IDE adapter
+ b004 MMC/SD Reader and Writer
+0c12 Zeroplus
+ 0005 PSX Vibration Feedback Converter
+ 0030 PSX Vibration Feedback Converter
+ 700e Logic Analyzer (LAP-C-16032)
+ 8801 Xbox Controller
+ 8802 Xbox Controller
+ 8809 Red Octane Ignition Xbox DDR Pad
+ 880a Pelican Eclipse PL-2023
+ 8810 Xbox Controller
+ 9902 VibraX
+0c15 Iris Graphics
+0c16 Gyration, Inc.
+ 0002 RF Technology Receiver
+ 0003 RF Technology Receiver
+ 0008 RF Technology Receiver
+ 0080 eHome Infrared Receiver
+ 0081 eHome Infrared Receiver
+0c17 Cyberboard A/S
+0c18 SynerTek Korea, Inc.
+0c19 cyberPIXIE, Inc.
+0c1a Silicon Motion, Inc.
+0c1b MIPS Technologies
+0c1c Hang Zhou Silan Electronics Co., Ltd
+0c22 Tally Printer Corp.
+0c23 Lernout + Hauspie
+0c24 Taiyo Yuden
+ 0001 Bluetooth Adaptor
+ 0002 Bluetooth Device2
+ 0005 Bluetooth Device(BC04-External)
+ 000b Bluetooth Device(BC04-External)
+ 000c Bluetooth Adaptor
+ 000e Bluetooth Device(BC04-External)
+ 000f Bluetooth Device (V2.0+EDR)
+ 0010 Bluetooth Device(BC04-External)
+ 0012 Bluetooth Device(BC04-External)
+ 0018 Bluetooth Device(BC04-External)
+ 0019 Bluetooth Device
+ 0c24 Bluetooth Device(SAMPLE)
+ ffff Bluetooth module with BlueCore in DFU mode
+0c25 Sampo Corp.
+ 0310 Scream Cam
+0c26 Prolific Technology Inc.
+ 0018 USB-Serial Controller [Icom Inc. OPC-478UC]
+0c27 RFIDeas, Inc
+ 3bfa pcProx Card Reader
+0c2e Metro
+ 0007 Metrologic MS7120 Barcode Scanner (IBM SurePOS mode)
+ 0200 Metrologic Scanner
+ 0204 Metrologic MS7120 Barcode Scanner (keyboard mode)
+ 0700 Metrologic MS7120 Barcode Scanner (uni-directional serial mode)
+ 0720 Metrologic MS7120 Barcode Scanner (bi-directional serial mode)
+0c35 Eagletron, Inc.
+0c36 E Ink Corp.
+0c37 e.Digital
+0c38 Der An Electric Wire & Cable Co., Ltd
+0c39 IFR
+0c3a Furui Precise Component (Kunshan) Co., Ltd
+0c3b Komatsu, Ltd
+0c3c Radius Co., Ltd
+0c3d Innocom, Inc.
+0c3e Nextcell, Inc.
+0c44 Motorola iDEN
+ 0021 iDEN P2k0 Device
+ 0022 iDEN P2k1 Device
+ 03a2 iDEN Smartphone
+ 41d9 i1 phone
+0c45 Microdia
+ 0011 EBUDDY
+ 1020 Mass Storage Reader
+ 1028 Mass Storage Reader
+ 1030 Mass Storage Reader
+ 1031 Sonix Mass Storage Device
+ 1032 Mass Storage Reader
+ 1033 Sonix Mass Storage Device
+ 1034 Mass Storage Reader
+ 1035 Mass Storage Reader
+ 1036 Mass Storage Reader
+ 1037 Sonix Mass Storage Device
+ 1050 CF Card Reader
+ 1058 HDD Reader
+ 1060 iFlash SM-Direct Card Reader
+ 1061 Mass Storage Reader
+ 1062 Mass Storage Reader
+ 1063 Sonix Mass Storage Device
+ 1064 Mass Storage Reader
+ 1065 Mass Storage Reader
+ 1066 Mass Storage Reader
+ 1067 Mass Storage Reader
+ 1158 A56AK
+ 184c VoIP Phone
+ 6001 Genius VideoCAM NB
+ 6005 Sweex Mini Webcam
+ 6007 VideoCAM Eye
+ 6009 VideoCAM ExpressII
+ 600d TwinkleCam USB camera
+ 6011 PC Camera (SN9C102)
+ 6019 PC Camera (SN9C102)
+ 6024 VideoCAM ExpressII
+ 6025 VideoCAM ExpressII
+ 6028 Typhoon Easycam USB 330K (older)
+ 6029 Triplex i-mini PC Camera
+ 602a Meade ETX-105EC Camera
+ 602b VideoCAM NB 300
+ 602c Clas Ohlson TWC-30XOP Webcam
+ 602d VideoCAM ExpressII
+ 602e VideoCAM Messenger
+ 6030 VideoCAM ExpressII
+ 603f VideoCAM ExpressII
+ 6040 CCD PC Camera (PC390A)
+ 606a CCD PC Camera (PC390A)
+ 607a CCD PC Camera (PC390A)
+ 607b Win2 PC Camera
+ 607c CCD PC Camera (PC390A)
+ 607e CCD PC Camera (PC390A)
+ 6080 Audio (Microphone)
+ 6082 VideoCAM Look
+ 6083 VideoCAM Look
+ 608c VideoCAM Look
+ 608e VideoCAM Look
+ 608f PC Camera (SN9C103 + OV7630)
+ 60a8 VideoCAM Look
+ 60aa VideoCAM Look
+ 60ab PC Camera
+ 60af VideoCAM Look
+ 60b0 Genius VideoCam Look
+ 60c0 PC Camera with Mic (SN9C105)
+ 60c8 Win2 PC Camera
+ 60cc PC Camera with Mic (SN9C105)
+ 60ec PC Camera with Mic (SN9C105)
+ 60ef Win2 PC Camera
+ 60fa PC Camera with Mic (SN9C105)
+ 60fb Composite Device
+ 60fc PC Camera with Mic (SN9C105)
+ 60fe Audio (Microphone)
+ 6108 Win2 PC Camera
+ 6122 PC Camera (SN9C110)
+ 6123 PC Camera (SN9C110)
+ 6128 PC Camera (SN9C325 + OM6802)
+ 612a PC Camera (SN9C325)
+ 612c PC Camera (SN9C110)
+ 612e PC Camera (SN9C110)
+ 612f PC Camera (SN9C110)
+ 6130 PC Camera (SN9C120)
+ 6138 Win2 PC Camera
+ 613a PC Camera (SN9C120)
+ 613b Win2 PC Camera
+ 613c PC Camera (SN9C120)
+ 613e PC Camera (SN9C120)
+ 6143 PC Camera (SN9C120 + SP80708)
+ 6240 PC Camera (SN9C201 + MI1300)
+ 6242 PC Camera (SN9C201 + MI1310)
+ 6243 PC Camera (SN9C201 + S5K4AAFX)
+ 6248 PC Camera (SN9C201 + OV9655)
+ 624b PC Camera (SN9C201 + CX1332)
+ 624c PC Camera (SN9C201 + MI1320)
+ 624e PC Camera (SN9C201 + SOI968)
+ 624f PC Camera (SN9C201 + OV9650)
+ 6251 PC Camera (SN9C201 + OV9650)
+ 6253 PC Camera (SN9C201 + OV9650)
+ 6260 PC Camera (SN9C201 + OV7670ISP)
+ 6262 PC Camera (SN9C201 + OM6802)
+ 6270 PC Camera (SN9C201 + MI0360/MT9V011 or MI0360SOC/MT9V111) U-CAM PC Camera NE878, Whitcom WHC017, ...
+ 627a PC Camera (SN9C201 + S5K53BEB)
+ 627b PC Camera (SN9C201 + OV7660)
+ 627c PC Camera (SN9C201 + HV7131R)
+ 627f PC Camera (SN9C201 + OV965x + EEPROM)
+ 6280 PC Camera with Microphone (SN9C202 + MI1300)
+ 6282 PC Camera with Microphone (SN9C202 + MI1310)
+ 6283 PC Camera with Microphone (SN9C202 + S5K4AAFX)
+ 6288 PC Camera with Microphone (SN9C202 + OV9655)
+ 628a PC Camera with Microphone (SN9C202 + ICM107)
+ 628b PC Camera with Microphone (SN9C202 + CX1332)
+ 628c PC Camera with Microphone (SN9C202 + MI1320)
+ 628e PC Camera with Microphone (SN9C202 + SOI968)
+ 628f PC Camera with Microphone (SN9C202 + OV9650)
+ 62a0 PC Camera with Microphone (SN9C202 + OV7670ISP)
+ 62a2 PC Camera with Microphone (SN9C202 + OM6802)
+ 62b0 PC Camera with Microphone (SN9C202 + MI0360/MT9V011 or MI0360SOC/MT9V111)
+ 62b3 PC Camera with Microphone (SN9C202 + OV9655)
+ 62ba PC Camera with Microphone (SN9C202 + S5K53BEB)
+ 62bb PC Camera with Microphone (SN9C202 + OV7660)
+ 62bc PC Camera with Microphone (SN9C202 + HV7131R)
+ 62be PC Camera with Microphone (SN9C202 + OV7663)
+ 62c0 Sonix USB 2.0 Camera
+ 62e0 MSI Starcam Racer
+ 6310 Sonix USB 2.0 Camera
+ 63e0 Sonix Integrated Webcam
+ 63f1 Integrated Webcam
+ 63f8 Sonix Integrated Webcam
+ 6409 Webcam
+ 6417 Integrated Webcam
+ 641d 1.3 MPixel Integrated Webcam
+ 6480 Sonix 1.3 MP Laptop Integrated Webcam
+ 8000 DC31VC
+ 8006 Dual Mode Camera (8006 VGA)
+ 800a Vivitar Vivicam3350B
+0c46 WaveRider Communications, Inc.
+0c4b Reiner SCT Kartensysteme GmbH
+ 0100 cyberJack e-com/pinpad
+ 0300 cyberJack pinpad(a)
+ 9102 cyberJack RFID basis contactless smartcard reader
+0c52 Sealevel Systems, Inc.
+ 2101 Serial Converter
+0c53 ViewPLUS, Inc.
+0c54 Glory, Ltd
+0c55 Spectrum Digital, Inc.
+ 0510 Spectrum Digital XDS510 JTAG Debugger
+ 0540 SPI540
+ 5416 TMS320C5416 DSK
+ 6416 TMS320C6416 DDB
+0c56 Billion Bright, Ltd
+0c57 Imaginative Design Operation Co., Ltd
+0c58 Vidar Systems Corp.
+0c59 Dong Guan Shinko Wire Co., Ltd
+0c5a TRS International Mfg., Inc.
+0c5e Xytronix Research & Design
+0c60 Apogee Electronics Corp.
+0c62 Chant Sincere Co., Ltd
+0c63 Toko, Inc.
+0c64 Signality System Engineering Co., Ltd
+0c65 Eminence Enterprise Co., Ltd
+0c66 Rexon Electronics Corp.
+0c67 Concept Telecom, Ltd
+0c70 MCT Elektronikladen
+ 0000 USB08 Development board
+0c72 PEAK System
+ 000c PCAN-USB
+0c74 Optronic Laboratories Inc.
+ 0002 OL 700-30 Goniometer
+0c76 JMTek, LLC.
+ 0001 Mass Storage Controller
+ 0002 Mass Storage Controller
+ 0003 USBdisk
+ 0004 Mass Storage Controller
+ 0005 Transcend Flash disk
+ 0006 Transcend JetFlash
+ 0007 Mass Storage Device
+ 1605 SSS Headphone Set
+ 1607 audio controller
+0c77 Sipix Group, Ltd
+ 1001 SiPix Web2
+ 1002 SiPix SC2100
+ 1010 SiPix Snap
+ 1011 SiPix Blink 2
+ 1015 SiPix CAMeleon
+0c78 Detto Corp.
+0c79 NuConnex Technologies Pte., Ltd
+0c7a Wing-Span Enterprise Co., Ltd
+0c86 NDA Technologies, Inc.
+0c88 Kyocera Wireless Corp.
+ 0021 Handheld
+ 17da Qualcomm Kyocera CDMA Technologies MSM
+0c89 Honda Tsushin Kogyo Co., Ltd
+0c8a Pathway Connectivity, Inc.
+0c8b Wavefly Corp.
+0c8c Coactive Networks
+0c8d Tempo
+0c8e Cesscom Co., Ltd
+ 6000 Luxian Series
+0c8f Applied Microsystems
+0c98 Berkshire Products, Inc.
+ 1140 USB PC Watchdog
+0c99 Innochips Co., Ltd
+0c9a Hanwool Robotics Corp.
+0c9b Jobin Yvon, Inc.
+0c9d SemTek
+ 0170 3873 Manual Insert card reader
+0ca2 Zyfer
+0ca3 Sega Corp.
+0ca4 ST&T Instrument Corp.
+0ca5 BAE Systems Canada, Inc.
+0ca6 Castles Technology Co., Ltd
+ 0010 EZUSB PC/SC Smart Card Reader
+ 0050 EZ220PU Reader Controller
+ 1077 Bludrive Family Smart Card Reader
+ 107e Reader Controller
+ 2010 myPad110 PC/SC Smart Card Reader
+ 3050 EZ710 Smart Card Reader
+0ca7 Information Systems Laboratories
+0cad Motorola CGISS
+ 9001 PowerPad Pocket PC Device
+0cae Ascom Business Systems, Ltd
+0caf Buslink
+ 2507 Hi-Speed USB-to-IDE Bridge Controller
+ 2515 Flash Disk Embedded Hub
+ 2516 Flash Disk Security Device
+ 2517 Flash Disk Mass Storage Device
+ 25c7 Hi-Speed USB-to-IDE Bridge Controller
+ 3a00 Hard Drive
+ 3a20 Mass Storage Device
+ 3acd Mass Storage Device
+0cb0 Flying Pig Systems
+0cb1 Innovonics, Inc.
+0cb6 Celestix Networks, Pte., Ltd
+0cb7 Singatron Enterprise Co., Ltd
+0cb8 Opticis Co., Ltd
+0cba Trust Electronic (Shanghai) Co., Ltd
+0cbb Shanghai Darong Electronics Co., Ltd
+0cbc Palmax Technology Co., Ltd
+ 0101 Pocket PC P6C
+ 0201 Personal Digital Assistant
+ 0301 Personal Digital Assistant P6M+
+ 0401 Pocket PC
+0cbd Pentel Co., Ltd (Electronics Equipment Div.)
+0cbe Keryx Technologies, Inc.
+0cbf Union Genius Computer Co., Ltd
+0cc0 Kuon Yi Industrial Corp.
+0cc1 Given Imaging, Ltd
+0cc2 Timex Corp.
+0cc3 Rimage Corp.
+0cc4 emsys GmbH
+0cc5 Sendo
+0cc6 Intermagic Corp.
+0cc7 Kontron Medical AG
+0cc8 Technotools Corp.
+0cc9 BroadMAX Technologies, Inc.
+0cca Amphenol
+0ccb SKNet Co., Ltd
+0ccc Domex Technology Corp.
+0ccd TerraTec Electronic GmbH
+ 0012 PHASE 26
+ 0013 PHASE 26
+ 0014 PHASE 26
+ 0015 Flash Update for TerraTec PHASE 26
+ 0021 Cameo Grabster 200
+ 0023 Mystify Claw
+ 0028 Aureon 5.1 MkII
+ 0032 MIDI HUBBLE
+ 0035 Miditech Play'n Roll
+ 0036 Cinergy 250 Audio
+ 0037 Cinergy 250 Audio
+ 0038 Cinergy T² DVB-T Receiver
+ 0039 Grabster AV 400
+ 003b Cinergy 400
+ 003c Grabster AV 250
+ 0042 Cinergy Hybrid T XS
+ 0043 Cinergy T XS
+ 004e Cinergy T XS
+ 004f Cinergy Analog XS
+ 0055 Cinergy T XE (Version 1, AF9005)
+ 005c Cinergy T²
+ 0069 Cinergy T XE (Version 2, AF9015)
+ 006b Cinergy HT PVR (EU)
+ 0072 Cinergy Hybrid T
+ 0077 Aureon Dual USB
+ 0078 Cinergy T XXS
+ 0086 Cinergy Hybrid XE
+ 0097 Cinergy T RC MKII
+ 00a5 Cinergy Hybrid Stick
+ 00a9 RTL2838 DVB-T COFDM Demodulator [TerraTec Cinergy T Stick Black]
+0cd4 Bang Olufsen
+ 0101 BeolinkPC2
+0cd5 LabJack Corporation
+ 0003 U3
+ 0009 UE9
+0cd7 NewChip S.r.l.
+0cd8 JS Digitech, Inc.
+ 2007 Smart Card Reader/JSTU-9700
+0cd9 Hitachi Shin Din Cable, Ltd
+0cde Z-Com
+ 0001 XI-750 802.11b Wireless Adapter [Atmel AT76C503A]
+ 0002 XI-725/726 Prism2.5 802.11b Adapter
+ 0003 Sagem 802.11b Dongle
+ 0004 Sagem 802.11b Dongle
+ 0005 XI-735 Prism3 802.11b Adapter
+ 0006 XG-300 802.11b Adapter
+ 0008 XG-703A 802.11g Wireless Adapter [Intersil ISL3887]
+ 0009 (ZD1211)IEEE 802.11b+g Adapter
+ 0011 ZD1211
+ 0012 AR5523
+ 0013 AR5523 driver (no firmware)
+ 0014 NB 802.11g Wireless LAN Adapter(3887A)
+ 0015 XG-705A 802.11g Wireless Adapter [Intersil ISL3887]
+ 0016 NB 802.11g Wireless LAN Adapter(3887A)
+ 0018 NB 802.11a/b/g Wireless LAN Adapter(3887A)
+ 001a 802.11bg
+ 001c 802.11b/g Wireless Network Adapter
+ 0020 AG-760A 802.11abg Wireless Adapter [ZyDAS ZD1211B]
+ 0022 802.11b/g/n Wireless Network Adapter
+ 0023 UB81 802.11bgn
+ 0025 802.11b/g/n USB Wireless Network Adapter
+ 0026 UB82 802.11abgn
+0ce5 Validation Technologies International
+ 0003 Matrix
+0ce9 pico Technology
+ 1001 PicoScope3204
+0cf1 e-Conn Electronic Co., Ltd
+0cf2 ENE Technology, Inc.
+ 6220 SD Card Reader (SG361)
+ 6225 SD card reader (UB6225)
+ 6250 SD card reader (UB6250)
+0cf3 Atheros Communications, Inc.
+ 0001 AR5523
+ 0002 AR5523 (no firmware)
+ 0003 AR5523
+ 0004 AR5523 (no firmware)
+ 0005 AR5523
+ 0006 AR5523 (no firmware)
+ 1001 Thomson TG121N [Atheros AR9001U-(2)NG]
+ 1002 TP-Link TL-WN821N v2 802.11n [Atheros AR9170]
+ 1006 TP-Link TL-WN322G v3 / TL-WN422G v2 802.11g [Atheros AR9271]
+ 1010 3Com 3CRUSBN275 802.11abgn Wireless Adapter [Atheros AR9170]
+ 20ff Virtual CD-ROM
+ 3000 AR3011 Bluetooth (no firmware)
+ 3005 AR3011 Bluetooth
+ 7015 TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287]
+ 9170 AR9170 802.11n
+ 9271 AR9271 802.11n
+ b002 Ubiquiti WiFiStation 802.11n [Atheros AR9271]
+ b003 Ubiquiti WiFiStationEXT 802.11n [Atheros AR9271]
+0cf4 Fomtex Corp.
+0cf5 Cellink Co., Ltd
+0cf6 Compucable Corp.
+0cf7 ishoni Networks
+0cf8 Clarisys, Inc.
+ 0750 Claritel-i750 - vp
+0cf9 Central System Research Co., Ltd
+0cfa Inviso, Inc.
+0cfc Minolta-QMS, Inc.
+ 2301 Magicolor 2300 DL
+ 2350 Magicolor 2350EN/3300
+ 3100 Magicolor 3100
+ 7300 Magicolor 5450/5550
+0cff SAFA MEDIA Co., Ltd.
+ 0320 SR-380N
+0d06 telos EDV Systementwicklung GmbH
+0d08 UTStarcom
+ 0602 DV007 [serial]
+ 0603 DV007 [storage]
+0d0b Contemporary Controls
+0d0c Astron Electronics Co., Ltd
+0d0d MKNet Corp.
+0d0e Hybrid Networks, Inc.
+0d0f Feng Shin Cable Co., Ltd
+0d10 Elastic Networks
+ 0001 StormPort (WDM)
+0d11 Maspro Denkoh Corp.
+0d12 Hansol Electronics, Inc.
+0d13 BMF Corp.
+0d14 Array Comm, Inc.
+0d15 OnStream b.v.
+0d16 Hi-Touch Imaging Technologies Co., Ltd
+ 0001 PhotoShuttle
+ 0002 Photo Printer 730 series
+ 0004 Photo Printer 63xPL/PS
+ 0100 Photo Printer 63xPL/PS
+ 0102 Photo Printer 64xPS
+ 0103 Photo Printer 730 series
+ 0104 Photo Printer 63xPL/PS
+ 0105 Photo Printer 64xPS
+ 0200 Photo Printer 64xDL
+0d17 NALTEC, Inc.
+0d18 coaXmedia
+0d19 Hank Connection Industrial Co., Ltd
+0d28 NXP
+ 0204 LPC1768
+0d32 Leo Hui Electric Wire & Cable Co., Ltd
+0d33 AirSpeak, Inc.
+0d34 Rearden Steel Technologies
+0d35 Dah Kun Co., Ltd
+0d3a Posiflex Technologies, Inc.
+0d3c Sri Cable Technology, Ltd
+0d3d Tangtop Technology Co., Ltd
+ 0001 HID Keyboard
+0d3e Fitcom, inc.
+0d3f MTS Systems Corp.
+0d40 Ascor, Inc.
+0d41 Ta Yun Terminals Industrial Co., Ltd
+0d42 Full Der Co., Ltd
+0d46 Kobil Systems GmbH
+ 2012 KAAN Standard Plus (Smartcard reader)
+ 3003 mIDentity Light / KAAN SIM III
+ 4000 mIDentity (mass storage)
+ 4001 mIDentity Basic/Classic (composite device)
+ 4081 mIDentity Basic/Classic (installationless)
+0d49 Maxtor
+ 3000 Drive
+ 3010 3000LE Drive
+ 3100 Hi-Speed USB-IDE Bridge Controller
+ 3200 Personal Storage 3200
+ 5000 5000XT Drive
+ 5010 5000LE Drive
+ 5020 Mobile Hard Disk Drive
+ 7000 OneTouch
+ 7010 OneTouch
+ 7410 Mobile Hard Disk Drive (1TB)
+ 7450 Basics Portable USB Device
+0d4a NF Corp.
+0d4b Grape Systems, Inc.
+0d4c Tedas AG
+0d4d Coherent, Inc.
+0d4e Agere Systems Netherland BV
+ 047a WLAN Card
+ 1000 Wireless Card Model 0801
+ 1001 Wireless Card Model 0802
+0d4f EADS Airbus France
+0d50 Cleware GmbH
+ 0011 USB-Temp2 Thermometer
+0d51 Volex (Asia) Pte., Ltd
+0d53 HMI Co., Ltd
+0d54 Holon Corp.
+0d55 ASKA Technologies, Inc.
+0d56 AVLAB Technology, Inc.
+0d57 Solomon Microtech, Ltd
+0d5c SMC Networks, Inc.
+ a001 SMC2662W (v1) EZ Connect 802.11b Wireless Adapter [Atmel AT76C503A]
+ a002 SMC2662W v2 / SMC2662W-AR / Belkin F5D6050 [Atmel at76c503a]
+0d5e Myacom, Ltd
+ 2346 BT Digital Access adapter
+0d5f CSI, Inc.
+0d60 IVL Technologies, Ltd
+0d61 Meilu Electronics (Shenzhen) Co., Ltd
+0d62 Darfon Electronics Corp.
+ 0003 Smartcard Reader
+ 0004 Filter Driver
+ 001c Benq X120 Internet Keyboard Pro
+ 0306 M530 Mouse
+ 0800 Magic Wheel
+ 2021 AM805 Keyboard
+ 2026 TECOM Bluetooth Device
+ 2050 Mouse
+ 2106 Dell L20U Multimedia Keyboard
+ a100 Optical Mouse
+0d63 Fritz Gegauf AG
+0d64 DXG Technology Corp.
+ 0105 Dual Mode Digital Camera 1.3M
+ 0107 Horus MT-409 Camera
+ 0108 Dual Mode Digital Camera
+ 0202 Dual Mode Video Camera Device
+ 0303 DXG-305V Camera
+ 1001 SiPix Stylecam/UMAX AstraPix 320s
+ 1002 Fashion Cam 01 Dual-Mode DSC (Video Camera)
+ 1003 Fashion Cam Dual-Mode DSC (Controller)
+ 1021 D-Link DSC 350F
+ 1208 Dual Mode Still Camera Device
+ 2208 Mass Storage
+ 3105 Dual Mode Digital Camera Disk
+ 3108 Digicam Mass Storage Device
+0d65 KMJP Co., Ltd
+0d66 TMT
+0d67 Advanet, Inc.
+0d68 Super Link Electronics Co., Ltd
+0d69 NSI
+0d6a Megapower International Corp.
+0d6b And-Or Logic
+0d70 Try Computer Co., Ltd
+0d71 Hirakawa Hewtech Corp.
+0d72 Winmate Communication, Inc.
+0d73 Hit's Communications, Inc.
+0d76 MFP Korea, Inc.
+0d77 Power Sentry/Newpoint
+0d78 Japan Distributor Corp.
+0d7a MARX Datentechnik GmbH
+0d7b Wellco Technology Co., Ltd
+0d7c Taiwan Line Tek Electronic Co., Ltd
+0d7d Phison Electronics Corp.
+ 0100 PS1001/1011/1006/1026 Flash Disk
+ 0110 Gigabyte FlexDrive
+ 0120 Disk Pro 64MB
+ 0124 GIGABYTE Disk
+ 0240 I/O-Magic/Transcend 6-in-1 Card Reader
+ 110e NEC uPD720121/130 USB-ATA/ATAPI Bridge
+ 1240 Apacer 6-in-1 Card Reader 2.0
+ 1270 Wolverine SixPac 6000
+ 1300 Flash Disk
+ 1320 PS2031 Flash Disk
+ 1400 Attache 256MB USB 2.0 Flash Drive
+ 1420 PS2044 Pen Drive
+ 1470 Vosonic X's-Drive II+ VP2160
+ 1620 USB Disk Pro
+ 1900 USB Thumb Drive
+0d7e American Computer & Digital Components
+ 2507 Hi-Speed USB-to-IDE Bridge Controller
+ 2517 Hi-Speed Mass Storage Device
+ 25c7 Hi-Speed USB-to-IDE Bridge Controller
+0d7f Essential Reality LLC
+ 0100 P5 Glove glove controller
+0d80 H.R. Silvine Electronics, Inc.
+0d81 TechnoVision
+0d83 Think Outside, Inc.
+0d87 Dolby Laboratories Inc.
+0d89 Oz Software
+0d8a King Jim Co., Ltd
+ 0101 TEPRA PRO
+0d8b Ascom Telecommunications, Ltd
+0d8c C-Media Electronics, Inc.
+ 0001 Audio Device
+ 0002 Composite Device
+ 0003 Sound Device
+ 0006 Storm HP-USB500 5.1 Headset
+ 000c Audio Adapter
+ 000d Composite Device
+ 000e Audio Adapter (Planet UP-100, Genius G-Talk)
+ 001f CM108 Audio Controller
+ 0102 CM106 Like Sound Device
+ 0103 CM102-A+/102S+ Audio Controller
+ 0104 CM103+ Audio Controller
+ 0105 CM108 Audio Controller
+ 0107 CM108 Audio Controller
+ 010f CM108 Audio Controller
+ 0115 CM108 Audio Controller
+ 0201 CM6501
+ 5000 Mass Storage Controller
+ 5200 Mass Storage Controller(0D8C,5200)
+ b213 USB Phone CM109 (aka CT2000,VPT1000)
+0d8d Promotion & Display Technology, Ltd
+ 0234 V-234 Composite Device
+ 0550 V-550 Composite Device
+ 0551 V-551 Composite Device
+ 0552 V-552 Composite Device
+ 0651 V-651 Composite Device
+ 0652 V-652 Composite Device
+ 0653 V-653 Composite Device
+ 0654 V-654 Composite Device
+ 0655 V-655 Composite Device
+ 0656 V-656 Composite Device
+ 0657 V-657 Composite Device
+ 0658 V-658 Composite Device
+ 0659 V-659 Composite Device
+ 0660 V-660 Composite Device
+ 0661 V-661 Composite Device
+ 0662 V-662 Composite Device
+ 0850 V-850 Composite Device
+ 0851 V-851 Composite Device
+ 0852 V-852 Composite Device
+ 0901 V-901 Composite Device
+ 0902 V-902 Composite Device
+ 0903 V-903 Composite Device
+ 4754 Voyager DMP Composite Device
+ bb00 Bloomberg Composite Device
+ bb01 Bloomberg Composite Device
+ bb02 Bloomberg Composite Device
+ bb03 Bloomberg Composite Device
+ bb04 Bloomberg Composite Device
+ bb05 Bloomberg Composite Device
+ fffe Global Tuner Composite Device
+ ffff Voyager DMP Composite Device
+0d8e Global Sun Technology, Inc.
+ 0163 802.11g 54 Mbps Wireless Dongle
+ 1621 802.11b Wireless Adapter
+ 3762 Cohiba 802.11g Wireless Mini adapter [Intersil ISL3887]
+ 3763 802.11g Wireless dongle
+ 7100 802.11b Adapter
+ 7110 WL-210 / WU210P 802.11b Wireless Adapter [Atmel AT76C503A]
+ 7605 TRENDnet TEW-224UB 802.11b Wireless Adapter [Atmel AT76C503A]
+ 7801 AR5523
+ 7802 AR5523 (no firmware)
+ 7811 AR5523
+ 7812 AR5523 (no firmware)
+ 7a01 PRISM25 802.11b Adapter
+0d8f Pitney Bowes
+0d90 Sure-Fire Electrical Corp.
+0d96 Skanhex Technology, Inc.
+ 0000 Jenoptik JD350 video
+ 3300 SX330z Camera
+ 4100 SX410z Camera
+ 4102 MD 9700 Camera
+ 4104 Jenoptik JD-4100z3s
+ 410a Medion 9801/Novatech SX-410z
+ 5200 SX-520z Camera
+0d97 Santa Barbara Instrument Group
+ 0001 SBIG Astronomy Camera (without firmware)
+ 0101 SBIG Astronomy Camera (with firmware)
+0d98 Mars Semiconductor Corp.
+ 0300 Avaya Wireless Card
+0d99 Trazer Technologies, Inc.
+0d9a RTX Telecom AS
+ 0001 Bluetooth Device
+0d9b Tat Shing Electrical Co.
+0d9c Chee Chen Hi-Technology Co., Ltd
+0d9d Sanwa Supply, Inc.
+0d9e Avaya
+ 0300 Wireless Card
+0d9f Powercom Co., Ltd
+ 0001 Uninterruptible Power Supply
+ 0002 Black Knight PRO / WOW Uninterruptible Power Supply (Cypress HID->COM RS232)
+ 00a2 Imperial Uninterruptible Power Supply (HID PDC)
+ 00a3 Smart King PRO Uninterruptible Power Supply (HID PDC)
+ 00a4 WOW Uninterruptible Power Supply (HID PDC)
+ 00a5 Vanguard Uninterruptible Power Supply (HID PDC)
+ 00a6 Black Knight PRO Uninterruptible Power Supply (HID PDC)
+0da0 Danger Research
+0da1 Suzhou Peter's Precise Industrial Co., Ltd
+0da2 Land Instruments International, Ltd
+0da3 Nippon Electro-Sensory Devices Corp.
+0da4 Polar Electro OY
+ 0001 Interface
+0da7 IOGear, Inc.
+0da8 softDSP Co., Ltd
+ 0001 SDS 200A Oscilloscope
+0dab Cubig Group
+ 0100 DVR/CVR-M140 MP3 Player
+0dad Westover Scientific
+0db0 Micro Star International
+ 1020 PC2PC WLAN Card
+ 1967 Bluetooth Dongle
+ 3801 Motorola Bluetooth 2.1+EDR Device
+ 4011 Medion Flash XL V2.0 Card Reader
+ 4600 802.11b/g Turbo Wireless Adapter
+ 5501 Mass Storage Device
+ 5502 Mass Storage Device
+ 5513 MP3 Player
+ 5515 MP3 Player
+ 5516 MP3 Player
+ 5580 Mega Sky 580 DVB-T Tuner [M902x]
+ 5581 Mega Sky 580 DVB-T Tuner [GL861]
+ 6823 UB11B/MS-6823 802.11b Wi-Fi adapter
+ 6826 IEEE 802.11g Wireless Network Adapter
+ 6855 Bluetooth Device
+ 6861 MSI-6861 802.11g WiFi adapter
+ 6865 RT2570
+ 6869 RT2570
+ 6874 RT2573
+ 6877 RT2573
+ 6881 Bluetooth Class I EDR Device
+ 688a Bluetooth Class I EDR Device
+ 6899 802.11bgn 1T1R Mini Card Wireless Adapter
+ 6970 MS-6970 BToes Bluetooth adapter
+ 697a Bluetooth Dongle
+ 6982 Medion Flash XL Card Reader
+ a861 RT2573
+ a874 RT2573
+ a970 Bluetooth dongle
+ a97a Bluetooth EDR Device
+ b970 Bluetooth EDR Device
+ b97a Bluetooth EDR Device
+0db1 Wen Te Electronics Co., Ltd
+0db2 Shian Hwi Plug Parts, Plastic Factory
+0db3 Tekram Technology Co., Ltd
+0db4 Chung Fu Chen Yeh Enterprise Corp.
+0db7 ELCON Systemtechnik
+ 0002 Goldpfeil P-LAN
+0dbc A&D Medical
+ 0003 AND Serial Cable [AND Smart Cable]
+0dbe Jiuh Shiuh Precision Industry Co., Ltd
+0dbf Jess-Link International
+ 0002 SmartDongle Security Key
+ 0200 HDD Storage Solution
+ 021b USB-2.0 IDE Adapter
+ 0300 Storage Adapter
+ 0333 Storage Adapter
+ 0707 ZIV Drive
+0dc0 G7 Solutions (formerly Great Notions)
+0dc1 Tamagawa Seiki Co., Ltd
+0dc3 Athena Smartcard Solutions, Inc.
+ 0801 ASEDrive III
+ 0802 ASEDrive IIIe
+ 1104 ASEDrive IIIe KB
+ 1701 ASEKey
+ 1702 ASEKey
+0dc4 Macpower Peripherals, Ltd
+ 0040 Mass Storage Device
+ 0041 Mass Storage Device
+ 0042 Mass Storage Device
+ 0101 Hi-Speed Mass Storage Device
+0dc5 SDK Co., Ltd
+0dc6 Precision Squared Technology Corp.
+ 2301 Wireless Touchpad Keyboard
+0dc7 First Cable Line, Inc.
+0dcd NetworkFab Corp.
+ 0001 Remote Interface Adapter
+ 0002 High Bandwidth Codec
+0dd0 Access Solutions
+ 1002 Triple Talk Speech Synthesizer
+0dd1 Contek Electronics Co., Ltd
+0dd2 Power Quotient International Co., Ltd
+ 0003 Mass Storage (P)
+0dd3 MediaQ
+0dd4 Custom Engineering SPA
+0dd5 California Micro Devices
+0dd7 Kocom Co., Ltd
+0dd8 Netac Technology Co., Ltd
+ 1060 USB-CF-Card
+ e007 OnlyDisk U222 Pendrive
+ f607 OnlyDisk U208 1G flash drive [U-SAFE]
+0dd9 HighSpeed Surfing
+0dda Integrated Circuit Solution, Inc.
+ 0001 Multi-Card Reader 6in1
+ 0002 Multi-Card Reader 7in1
+ 0003 Flash Disk
+ 0005 Internal Multi-Card Reader 6in1
+ 0008 SD single card reader
+ 0009 MS single card reader
+ 000a MS+SD Dual Card Reader
+ 000b SM single card reader
+ 0101 All-In-One Card Reader
+ 0102 All-In-One Card Reader
+ 0301 MP3 Player
+ 0302 Multi-Card MP3 Player
+ 1001 Multi-Flash Disk
+ 2001 Multi-Card Reader
+ 2002 Q018 default PID
+ 2003 Multi-Card Reader
+ 2005 Datalux DLX-1611 16in1 Card Reader
+ 2006 All-In-One Card Reader
+ 2007 USB to ATAPI bridge
+ 2008 All-In-One Card Reader
+ 2013 SD/MS Combo Card Reader
+ 2014 SD/MS Single Card Reader
+ 2023 card reader SD/MS DEMO board with ICSI brand name (MaskROM version)
+ 2024 card reader SD/MS DEMO board with Generic brand name (MaskROM version)
+ 2026 USB2.0 Card Reader
+ 2027 USB 2.0 Card Reader
+ 2315 UFD MP3 player (model 2)
+ 2318 UFD MP3 player (model 1)
+ 2321 UFD MP3 player
+0ddb Tamarack, Inc.
+0ddd Datelink Technology Co., Ltd
+0dde Ubicom, Inc.
+0de0 BD Consumer Healthcare
+0dea UTECH Electronic (D.G.) Co., Ltd.
+0ded Novasonics
+0dee Lifetime Memory Products
+ 4010 Storage Adapter
+0def Full Rise Electronic Co., Ltd
+0df4 NET&SYS
+ 0201 MNG-2005
+0df6 Sitecom Europe B.V.
+ 0001 C-Media VOIP Device
+ 0004 Bluetooth 2.0 Adapter 100m
+ 0007 Bluetooth 2.0 Adapter 10m
+ 000b Bluetooth 2.0 Adapter DFU
+ 000d WL-168 Wireless Network Adapter 54g
+ 0017 WL-182 Wireless-N Network USB Card
+ 0019 Bluetooth 2.0 adapter 10m CN-512v2 001
+ 001a Bluetooth 2.0 adapter 100m CN-521v2 001
+ 002b WL-188 Wireless Network 300N USB Adapter
+ 002c WL-301 Wireless Network 300N USB Adapter
+ 002d WL-302 Wireless Network 300N USB dongle
+ 0036 WL-603 Wireless Adapter
+ 0039 WL-315 Wireless-N USB Adapter
+ 003b WL-321 Wireless USB Gaming Adapter 300N
+ 003c WL-323 Wireless-N USB Adapter
+ 003d WL-324 Wireless USB Adapter 300N
+ 003e WL-343 Wireless USB Adapter 150N X1
+ 003f WL-608 Wireless USB Adapter 54g
+ 0040 WL-344 Wireless Adapter 300N X2 [Ralink RT3071]
+ 0041 WL-329 Wireless Dualband USB adapter 300N
+ 0042 WL-345 Wireless USB adapter 300N X3
+ 0045 WL-353 Wireless USB Adapter 150N Nano
+ 0047 WL-352v1 Wireless USB Adapter 300N 002
+ 0048 WL-349v1 Wireless Adapter 150N 002 [Ralink RT3070]
+ 004a WL-358v1 Wireless Micro USB Adapter 300N X3 002
+ 004b WL-349v3 Wireless Micro Adapter 150N X1 [Realtek RTL8192SU]
+ 004c WL-352 802.11n Adapter [Realtek RTL8191SU]
+ 0050 WL-349v4 Wireless Micro Adapter 150N X1 [Ralink RT3370]
+ 061c LN-028 Network USB 2.0 Adapter
+ 21f4 44 St Bluetooth Device
+ 2200 Sitecom bluetooth2.0 class 2 dongle CN-512
+ 2208 Sitecom bluetooth2.0 class 2 dongle CN-520
+ 2209 Sitecom bluetooth2.0 class 1 dongle CN-521
+ 9071 WL-113 rev 1 Wireless Network USB Adapter
+ 9075 WL-117 Hi-Speed USB Adapter
+ 90ac WL-172 Wireless Network USB Adapter 54g Turbo
+ 9712 WL-113 rev 2 Wireless Network USB Adapter
+0df7 Mobile Action Technology, Inc.
+ 0620 MA-620 Infrared Adapter
+ 0700 MA-700 Bluetooth Adapter
+ 0720 MA-720 Bluetooth Adapter
+ 0722 Bluetooth Dongle
+ 0730 MA-730/MA-730G Bluetooth Adapter
+ 0800 Data Cable
+ 0820 Data Cable
+ 0900 MA i-gotU Travel Logger GPS
+ 1800 Generic Card Reader
+ 1802 Card Reader
+0dfa Toyo Communication Equipment Co., Ltd
+0dfc GeneralTouch Technology Co., Ltd
+ 0001 Touchscreen
+0e03 Nippon Systemware Co., Ltd
+0e08 Winbest Technology Co., Ltd
+0e0b Amigo Technology Inc.
+ 9031 802.11n Wireless USB Card
+ 9041 802.11n Wireless USB Card
+0e0c Gesytec
+ 0101 LonUSB LonTalk Network Adapter
+0e0f VMware, Inc.
+ 0001 Device
+ 0002 Virtual USB Hub
+ 0003 Virtual Mouse
+ 0004 Virtual CCID
+ 0005 Virtual Mass Storage
+ 0006 Virtual Keyboard
+ f80a Smoker FX2
+0e16 JMTek, LLC
+0e17 Walex Electronic, Ltd
+0e1b Crewave
+0e20 Pegasus Technologies Ltd.
+ 0101 NoteTaker
+0e21 Cowon Systems, Inc.
+ 0300 iAudio CW200
+ 0400 MP3 Player
+ 0500 iAudio M3
+ 0510 iAudio X5, subpack USB port
+ 0513 iAudio X5, side USB port
+ 0520 iAudio M5, side USB port
+ 0601 iAudio G3
+ 0700 iAudio U3
+ 0751 iAudio 7
+ 0760 iAUDIO U5 / iAUDIO G2
+ 0800 Cowon D2 (UMS mode)
+ 0801 Cowon D2 (MTP mode)
+ 0910 iAUDIO 9
+ 0920 J3
+0e22 Symbian Ltd.
+0e23 Liou Yuane Enterprise Co., Ltd
+0e25 VinChip Systems, Inc.
+0e26 J-Phone East Co., Ltd
+0e30 HeartMath LLC
+0e34 Micro Computer Control Corp.
+0e35 3Pea Technologies, Inc.
+0e36 TiePie engineering
+ 0008 Handyscope HS3
+ 0009 Handyscope HS3 (br)
+ 000a Handyscope HS4
+ 000b Handyscope HS4 (br)
+ 000e Handyscope HS4-DIFF
+ 000f Handyscope HS4-DIFF (br)
+ 0010 Handyscope HS2
+ 0011 TiePieSCOPE HS805 (br)
+ 0012 TiePieSCOPE HS805
+ 0018 Handyprobe HP2
+ 0042 TiePieSCOPE HS801
+ 00fd USB To Parallel adapter
+ 00fe USB To Parallel adapter
+0e38 Stratitec, Inc.
+0e39 Smart Modular Technologies, Inc.
+ 0137 Bluetooth Device
+0e3a Neostar Technology Co., Ltd
+ 1100 CW-1100 Wireless Network Adapter
+0e3b Mansella, Ltd
+0e41 Line6, Inc.
+ 4147 TonePort GX
+ 4250 BassPODxt
+ 4252 BassPODxt Pro
+ 4642 BassPODxt Live
+ 4650 PODxt Live
+ 4750 GuitarPort
+ 5044 PODxt
+ 5050 PODxt Pro
+ 534d SeaMonkey
+0e44 Sun-Riseful Technology Co., Ltd.
+0e48 Julia Corp., Ltd
+ 0100 CardPro SmartCard Reader
+0e4a Shenzhen Bao Hing Electric Wire & Cable Mfr. Co.
+0e4c Radica Games, Ltd
+ 1097 Gamester Controller
+ 2390 Games Jtech Controller
+ 7288 funkey reader
+0e55 Speed Dragon Multimedia, Ltd
+ 110a Tanic S110-SG1 + ISSC IS1002N [Slow Infra-Red (SIR) & Bluetooth 1.2 (Class 2) Adapter]
+ 110b MS3303H USB-to-Serial Bridge
+0e56 Kingston Technology Company, Inc.
+ 6021 K-PEX 100
+0e5a Active Co., Ltd
+0e5b Union Power Information Industrial Co., Ltd
+0e5c Bitland Information Technology Co., Ltd
+ 6118 LCD Device
+ 6119 remote receive and control device
+ 6441 C-Media Sound Device
+0e5d Neltron Industrial Co., Ltd
+0e5e Conwise Technology Co., Ltd.
+ 6622 CW6622
+0e66 Hawking Technologies
+ 0001 HWUN1 Hi-Gain Wireless-300N Adapter w/ Upgradable Antenna [Ralink RT2870]
+ 0003 HWDN1 Hi-Gain Wireless-300N Dish Adapter [Ralink RT2870]
+ 0009 HWUN2 Hi-Gain Wireless-150N Adapter w/ Upgradable Antenna [Ralink RT2770]
+ 000b HWDN2 Hi-Gain Wireless-150N Dish Adapter [Ralink RT2770]
+ 0013 HWUN3 Hi-Gain Wireless-N Adapter [Ralink RT3070]
+ 0017 HAWNU1 Hi-Gain Wireless-150N Network Adapter with Range Amplifier [Ralink RT3070]
+ 0018 Wireless-N Network Adapter [Ralink RT2870]
+ 400b UF100 10/100 Network Adapter
+ 400c UF100 Ethernet [pegasus2]
+0e67 Fossil, Inc.
+ 0002 Wrist PDA
+0e6a Megawin Technology Co., Ltd
+ 0101 MA100 [USB-UART Bridge IC]
+ 6001 GEMBIRD Flexible keyboard KB-109F-B-DE
+0e6f Logic3
+ 0003 Freebird wireless Controller
+ 0005 Eclipse wireless Controller
+ 0006 Edge wireless Controller
+0e70 Tokyo Electronic Industry Co., Ltd
+0e72 Hsi-Chin Electronics Co., Ltd
+0e75 TVS Electronics, Ltd
+0e79 Archos, Inc.
+ 1106 Pocket Media Assistant - PMA400
+ 1204 Gmini XS 200
+ 1306 504 Portable Multimedia Player
+ 1330 5 Tablet
+ 1332 5 IMT
+ 1416 32 IT
+0e7b On-Tech Industry Co., Ltd
+0e7e Gmate, Inc.
+ 0001 Yopy 3000 PDA
+ 1001 YP3X00 PDA
+0e82 Ching Tai Electric Wire & Cable Co., Ltd
+0e83 Shin An Wire & Cable Co.
+0e8c Well Force Electronic Co., Ltd
+0e8d MediaTek Inc.
+ 0003 MT6227 phone
+ 0004 MT6227 phone
+0e8f GreenAsia Inc.
+ 0003 MaxFire Blaze2
+ 0012 USB Wireless 2.4GHz Gamepad
+ 0016 4 port USB 1.1 hub UH-174
+ 0020 USB to PS/2 Adapter
+ 0021 Multimedia Keyboard Controller
+ 0201 SmartJoy Frag Xpad/PS2 adaptor
+0e90 WiebeTech, LLC
+ 0100 Storage Adapter V1
+0e91 VTech Engineering Canada, Ltd
+0e92 C's Glory Enterprise Co., Ltd
+0e93 eM Technics Co., Ltd
+0e95 Future Technology Co., Ltd
+0e96 Aplux Communications, Ltd
+ c001 TRUST 380 USB2 SPACEC@M
+0e97 Fingerworks, Inc.
+ 0908 Composite HID (Keyboard and Mouse)
+0e98 Advanced Analogic Technologies, Inc.
+0e99 Parallel Dice Co., Ltd
+0e9a TA HSING Industries, Ltd
+0e9b ADTEC Corp.
+0e9c Streamzap, Inc.
+ 0000 Streamzap Remote Control
+0e9f Tamura Corp.
+0ea0 Ours Technology, Inc.
+ 2126 7-in-1 Card Reader
+ 2153 SD Card Reader Key
+ 2168 Transcend JetFlash 2.0 / Astone USB Drive
+ 6803 OTI-6803 Flash Disk
+ 6808 OTI-6808 Flash Disk
+ 6828 OTI-6828 Flash Disk
+0ea6 Nihon Computer Co., Ltd
+0ea7 MSL Enterprises Corp.
+0ea8 CenDyne, Inc.
+0ead Humax Co., Ltd
+0eb0 NovaTech
+ 9020 NovaTech NV-902W
+ 9021 RT2573
+0eb1 WIS Technologies, Inc.
+ 6666 WinFast WalkieTV TV Loader
+ 6668 WinFast WalkieTV TV Loader
+ 7007 WinFast WalkieTV WDM Capture
+0eb2 Y-S Electronic Co., Ltd
+0eb3 Saint Technology Corp.
+0eb7 Endor AG
+0ebe VWeb Corp.
+0ebf Omega Technology of Taiwan, Inc.
+0ec0 LHI Technology (China) Co., Ltd
+0ec1 Abit Computer Corp.
+0ec2 Sweetray Industrial, Ltd
+0ec3 Axell Co., Ltd
+0ec4 Ballracing Developments, Ltd
+0ec5 GT Information System Co., Ltd
+0ec6 InnoVISION Multimedia, Ltd
+0ec7 Theta Link Corp.
+ 1008 So., Show 301 Digital Camera
+0ecd Lite-On IT Corp.
+ 1400 CD\RW 40X
+ a100 LDW-411SX DVD/CD Rewritable Drive
+0ece TaiSol Electronics Co., Ltd
+0ecf Phogenix Imaging, LLC
+0ed1 WinMaxGroup
+ 6660 Flash Disk 64M-C
+ 6680 Flash Disk 64M-B
+ 7634 MP3 Player
+0ed2 Kyoto Micro Computer Co., Ltd
+0ed3 Wing-Tech Enterprise Co., Ltd
+0ed5 Fiberbyte
+ e000 USB-inSync Device
+ f000 Fiberbyte USB-inSync Device
+ f201 Fiberbyte USB-inSync DAQ-2500X
+0eda Noriake Itron Corp.
+0edf e-MDT Co., Ltd
+ 2060 FID irock! 100 Series
+0ee0 Shima Seiki Mfg., Ltd
+0ee1 Sarotech Co., Ltd
+0ee2 AMI Semiconductor, Inc.
+0ee3 ComTrue Technology Corp.
+ 1000 Image Tank 1.5
+0ee4 Sunrich Technology, Ltd
+0eee Digital Stream Technology, Inc.
+ 8810 Mass Storage Drive
+0eef D-WAV Scientific Co., Ltd
+ 0001 eGalax TouchScreen
+ 0002 Touchscreen Controller(Professional)
+0ef0 Hitachi Cable, Ltd
+0ef1 Aichi Micro Intelligent Corp.
+0ef2 I/O Magic Corp.
+0ef3 Lynn Products, Inc.
+0ef4 DSI Datotech
+0ef5 PointChips
+ 2202 Flash Disk
+ 2366 Flash Disk
+0ef6 Yield Microelectronics Corp.
+0ef7 SM Tech Co., Ltd (Tulip)
+0efd Oasis Semiconductor
+0efe Wem Technology, Inc.
+0f06 Visual Frontier Enterprise Co., Ltd
+0f08 CSL Wire & Plug (Shen Zhen) Co.
+0f0c CAS Corp.
+0f0d Hori Co., Ltd
+ 0011 Real Arcade Pro 3
+0f0e Energy Full Corp.
+0f11 LD Didactic GmbH
+ 1000 CASSY-S
+ 1010 Pocket-CASSY
+ 1020 Mobile-CASSY
+ 1080 Joule and Wattmeter
+ 1081 Digital Multimeter P
+ 1090 UMI P
+ 1100 X-Ray Apparatus
+ 1101 X-Ray Apparatus
+ 1200 VideoCom
+ 2000 COM3LAB
+ 2010 Terminal Adapter
+ 2020 Network Analyser
+ 2030 Converter Control Unit
+ 2040 Machine Test System
+0f12 Mars Engineering Corp.
+0f13 Acetek Technology Co., Ltd
+0f18 Finger Lakes Instrumentation
+ 0002 CCD
+ 0006 Focuser
+ 0007 Filter Wheel
+ 000a ProLine CCD
+ 000b Color Filter Wheel 4
+ 000c PDF2
+ 000d Guider
+0f19 Oracom Co., Ltd
+0f1b Onset Computer Corp.
+0f1c Funai Electric Co., Ltd
+0f1d Iwill Corp.
+0f21 IOI Technology Corp.
+0f22 Senior Industries, Inc.
+0f23 Leader Tech Manufacturer Co., Ltd
+0f24 Flex-P Industries, Snd., Bhd.
+0f2d ViPower, Inc.
+0f2e Geniality Maple Technology Co., Ltd
+0f2f Priva Design Services
+0f30 Jess Technology Co., Ltd
+ 001c PS3 Guitar Controller Dongle
+ 0110 Dual Analog Rumble Pad
+ 0111 Colour Rumble Pad
+ 0208 Xbox & PC Gamepad
+0f31 Chrysalis Development
+0f32 YFC-BonEagle Electric Co., Ltd
+0f37 Kokuyo Co., Ltd
+0f38 Nien-Yi Industrial Corp.
+0f3d Airprime, Incorporated
+ 0112 CDMA 1xEVDO PC Card, PC 5220
+0f41 RDC Semiconductor Co., Ltd
+0f42 Nital Consulting Services, Inc.
+0f44 Polhemus
+ ef11 Patriot (firmware not loaded)
+ ef12 Patriot
+ ff11 Liberty (firmware not loaded)
+ ff12 Liberty
+0f4b St. John Technology Co., Ltd
+0f4c WorldWide Cable Opto Corp.
+0f4d Microtune, Inc.
+ 1000 Bluetooth Dongle
+0f4e Freedom Scientific
+0f52 Wing Key Electrical Co., Ltd
+0f53 Dongguan White Horse Cable Factory, Ltd
+0f54 Kawai Musical Instruments Mfg. Co., Ltd
+0f55 AmbiCom, Inc.
+0f5c Prairiecomm, Inc.
+0f5d NewAge International, LLC
+ 9455 Compact Drive
+0f5f Key Technology Corp.
+0f60 NTK, Ltd
+0f61 Varian, Inc.
+0f62 Acrox Technologies Co., Ltd
+ 1001 Targus Mini Trackball Optical Mouse
+0f63 LeapFrog Enterprises
+ 0010 Leapster Explorer
+ 0500 Fly Fusion
+ 0600 Leap Port Turbo
+ 0700 POGO
+ 0800 Didj
+ 0900 TAGSchool
+ 0a00 Leapster 2
+ 0b00 Crammer
+ 0c00 Tag Jr
+ 0d00 My Pal Scout
+ 0e00 Tag32
+ 0f00 Tag64
+ 1000 Kiwi16
+ 1100 Leapster L2x
+ 1111 Fly Fusion
+ 1300 Didj UK/France (Leapster Advance)
+0f68 Kobe Steel, Ltd
+0f69 Dionex Corp.
+0f6a Vibren Technologies, Inc.
+0f6e INTELLIGENT SYSTEMS
+ 0100 GameBoy Color Emulator
+ 0201 GameBoy Advance Flash Gang Writer
+ 0202 GameBoy Advance Capture
+ 0300 Gamecube DOL Viewer
+ 0400 NDS Emulator
+ 0401 NDS UIC
+ 0402 NDS Writer
+ 0403 NDS Capture
+ 0404 NDS Emulator (Lite)
+0f73 DFI
+0f7c DQ Technology, Inc.
+0f7d NetBotz, Inc.
+0f7e Fluke Corp.
+0f88 VTech Holdings, Ltd
+ 3012 RT2570
+ 3014 ZD1211B
+0f8b Yazaki Corp.
+0f8c Young Generation International Corp.
+0f8d Uniwill Computer Corp.
+0f8e Kingnet Technology Co., Ltd
+0f8f Soma Networks
+0f97 CviLux Corp.
+0f98 CyberBank Corp.
+0f9c Hyun Won, Inc.
+ 0301 M-Any Premium DAH-610 MP3/WMA Player
+ 0332 mobiBLU DAH-1200 MP3/Ogg Player
+0f9e Lucent Technologies
+0fa3 Starconn Electronic Co., Ltd
+0fa4 ATL Technology
+0fa5 Sotec Co., Ltd
+0fa7 Epox Computer Co., Ltd
+0fa8 Logic Controls, Inc.
+0faf Winpoint Electronic Corp.
+0fb0 Haurtian Wire & Cable Co., Ltd
+0fb1 Inclose Design, Inc.
+0fb2 Juan-Chern Industrial Co., Ltd
+0fb8 Wistron Corp.
+ 0002 eHome Infrared Receiver
+0fb9 AACom Corp.
+0fba San Shing Electronics Co., Ltd
+0fbb Bitwise Systems, Inc.
+0fc1 Mitac Internatinal Corp.
+0fc2 Plug and Jack Industrial, Inc.
+0fc5 Delcom Engineering
+ 1222 I/O Development Board
+0fc6 Dataplus Supplies, Inc.
+0fca Research In Motion, Ltd.
+ 0001 Blackberry Handheld
+ 0004 Blackberry Handheld
+ 0006 Blackberry Pearl
+ 0008 Blackberry Pearl
+ 8001 Blackberry Handheld
+ 8004 Blackberry Handheld
+ 8007 Blackberry Handheld
+0fce Sony Ericsson Mobile Communications AB
+ 0076 W910i (Multimedia mode)
+ 00af V640i Phone [PTP Camera]
+ 00d4 C902 [MTP]
+ 00d9 C702 Phone
+ 0112 W995 Walkman Phone
+ 1010 WMC Modem
+ 10af V640i Phone [PictBridge]
+ 10d4 C902 Phone [PictBridge]
+ 2105 W715 Phone
+ 2137 Xperia X10 mini (USB debug)
+ 2138 Xperia X10 mini pro (Debug)
+ 2149 Xperia X8 (debug)
+ 3137 Xperia X10 mini
+ 3138 Xperia X10 mini pro
+ 3149 Xperia X8
+ 8004 9000 Phone [Mass Storage]
+ d008 V800-Vodafone 802SE Phone
+ d016 K750i Phone
+ d017 K608i Phone
+ d019 VDC EGPRS Modem
+ d025 520 WMC Data Modem
+ d028 W800i
+ d038 W850i Phone
+ d039 K800i (phone mode)
+ d041 K510i Phone
+ d042 W810i Phone
+ d043 V630i Phone
+ d046 K610i Phone
+ d065 W960i Phone (PC Suite)
+ d076 W910i (Phone mode)
+ d089 W580i Phone (mass storage)
+ d0af V640i Phone
+ d0cf MD300 Mobile Broadband Modem
+ d0d4 C902 Phone [Modem]
+ d0e1 MD400 Mobile Broadband Modem
+ d12e Xperia X10
+ e039 K800i (msc mode)
+ e042 W810i Phone
+ e043 V630i Phone [Mass Storage]
+ e075 K850i
+ e076 W910i (Mass storage)
+ e089 W580i Phone
+ e090 W200 Phone (Mass Storage)
+ e0a3 W660i
+ e0af V640i Phone [Mass Storage]
+ e0d4 C902 Phone [Mass Storage]
+ e0ef C905 Phone [Mass Storage]
+ e0f3 W595
+ e112 W995 Phone (Mass Storage)
+ e12e X10i Phone
+ e14f Xperia Arc
+0fcf Dynastream Innovations, Inc.
+0fd0 Tulip Computers B.V.
+0fd1 Giant Electronics Ltd.
+0fd4 Tenovis GmbH & Co., KG
+0fd5 Direct Access Technology, Inc.
+0fd9 Elgato Systems GmbH
+ 0011 EyeTV Diversity
+ 0018 EyeTV Hybrid
+ 0020 EyeTV DTT Deluxe
+ 0021 EyeTV DTT
+ 002a EyeTV Sat
+ 002c EyeTV DTT Deluxe v2
+ 0033 Video Capture
+ 0037 Video Capture v2
+0fdc Micro Plus
+0fe4 IN-Tech Electronics, Ltd
+0fe5 Greenconn (U.S.A.), Inc.
+0fe6 Kontron (Industrial Computer Source / ICS Advent)
+ 8101 DM9601 Fast Ethernet Adapter
+ 811e Parallel Adapter
+ 9700 DM9601 Fast Ethernet Adapter
+0fe9 DVICO
+ 4020 TViX M-6500
+ db00 FusionHDTV DVB-T (MT352+LgZ201) (uninitialized)
+ db01 FusionHDTV DVB-T (MT352+LgZ201) (initialized)
+ db10 FusionHDTV DVB-T (MT352+Thomson7579) (uninitialized)
+ db11 FusionHDTV DVB-T (MT352+Thomson7579) (initialized)
+ db78 FusionHDTV DVB-T Dual Digital 4 (ZL10353+xc2028/xc3028) (initialized)
+0fea United Computer Accessories
+0feb CRS Electronic Co., Ltd
+0fec UMC Electronics Co., Ltd
+0fed Access Co., Ltd
+0fee Xsido Corp.
+0fef MJ Research, Inc.
+0ff6 Core Valley Co., Ltd
+0ff7 CHI SHING Computer Accessories Co., Ltd
+0fff Aopen, Inc.
+1000 Speed Tech Corp.
+1001 Ritronics Components (S) Pte., Ltd
+1003 Sigma Corp.
+ 0003 SD14
+ 0100 Sigma SD10
+1004 LG Electronics, Inc.
+ 1fae U8120 3G Cellphone
+ 6000 KU330/KU990/VX4400/VX6000
+ 6005 T5100
+ 6018 GM360/GD510/GW520/KP501
+ 618e Ally/Optimus One/Vortex (debug mode)
+ 618f Ally/Optimus One
+ 61c6 Vortex (msc)
+ 6800 CDMA Modem
+ 7000 LG LDP-7024D(LD)USB
+ a400 Renoir (KC910)
+1005 Apacer Technology, Inc.
+ 1001 MP3 Player
+ 1004 MP3 Player
+ 1006 MP3 Player
+ b113 Handy Steno 2.0/HT203
+ b223 CD-RW + 6in1 Card Reader Digital Storage / Converter
+1006 iRiver, Ltd.
+ 3001 iHP-100
+ 3002 iHP-120/140 MP3 Player
+ 3003 H320/H340
+ 3004 H340 (mtp)
+1009 Emuzed, Inc.
+ 000e eHome Infrared Receiver
+ 0013 Angel MPEG Device
+ 0015 Lumanate Wave PAL SECAM DVBT Device
+ 0016 Lumanate Wave NTSC/ATSC Combo Device
+100a AV Chaseway, Ltd
+ 2402 MP3 Player
+ 2404 MP3 Player
+ 2405 MP3 Player
+ 2406 MP3 Player
+ a0c0 MP3 Player
+100b Chou Chin Industrial Co., Ltd
+100d Netopia, Inc.
+ 3342 Cayman 3352 DSL Modem
+ 3382 3380 Series Network Interface
+ 6072 DSL Modem
+ 9031 Motorola 802.11n Dualband USB Wireless Adapter
+ 9032 Motorola 802.11n 5G USB Wireless Adapter
+ cb01 Cayman 3341 Ethernet DSL Router
+1010 Fukuda Denshi Co., Ltd
+1011 Mobile Media Tech.
+ 0001 AccFast Mp3
+1012 SDKM Fibres, Wires & Cables Berhad
+1013 TST-Touchless Sensor Technology AG
+1014 Densitron Technologies PLC
+1015 Softronics Pty., Ltd
+1016 Xiamen Hung's Enterprise Co., Ltd
+1017 Speedy Industrial Supplies, Pte., Ltd
+1019 Elitegroup Computer Systems (ECS)
+ 0c55 Flash Reader, Desknote UCR-61S2B
+ 0f38 Infrared Receiver
+1020 Labtec
+ 0006 Wireless Keyboard
+ 000a Wireless Optical Mouse
+ 0106 Wireless Optical Mouse
+1022 Shinko Shoji Co., Ltd
+1025 Hyper-Paltek
+ 005e USB DVB-T device
+ 005f USB DVB-T device
+ 0300 MP3 Player
+ 0350 MP3 Player
+1026 Newly Corp.
+1027 Time Domain
+1028 Inovys Corp.
+1029 Atlantic Coast Telesys
+102a Ramos Technology Co., Ltd
+102b Infotronic America, Inc.
+102c Etoms Electronics Corp.
+ 6151 Q-Cam Sangha CIF
+ 6251 Q-Cam VGA
+102d Winic Corp.
+1031 Comax Technology, Inc.
+1032 C-One Technology Corp.
+1033 Nucam Corp.
+ 0068 3,5'' HDD case MD-231
+1038 Ideazon, Inc.
+ 0100 Zboard
+1039 devolo AG
+ 2140 dsl+ 1100 duo
+103d Stanton
+ 0100 ScratchAmp
+ 0101 ScratchAmp
+1043 iCreate Technologies Corp.
+ 160f Wireless Network Adapter
+ 4901 AV-836 Video Capture Device
+ 8006 Flash Disk 32-256 MB
+ 8012 Flash Disk 256 MB
+1044 Chu Yuen Enterprise Co., Ltd
+ 7001 Gigabyte U7000 DVB-T tuner
+ 7002 Gigabyte U8000 DVB-T tuner
+ 7004 Gigabyte U7100 DVB-T tuner
+ 7005 Gigabyte U7200 DVB-T tuner [AF9035]
+ 7006 Gigabyte U6000 DVB-T tuner [em2863]
+ 8001 GN-54G
+ 8002 GN-BR402W
+ 8003 GN-WLBM101
+ 8004 GN-WLBZ101 802.11b Adapter
+ 8005 GN-WLBZ201 802.11b Adapter
+ 8006 GN-WBZB-M 802.11b Adapter
+ 8007 GN-WBKG
+ 8008 GN-WB01GS
+ 800a GN-WI05GS
+ 800b GN-WB30N 802.11n WLAN Card
+ 800c GN-WB31N 802.11n USB WLAN Card
+ 800d GN-WB32L 802.11n USB WLAN Card
+1046 Winbond Electronics Corp. [hex]
+ 6694 Generic W6694 USB
+ 8901 Bluetooth Device
+ 9967 W9967CF/W9968CF Webcam IC
+1048 Targus Group International
+104b Mylex / Buslogic
+104c AMCO TEC International, Inc.
+104d Newport Corporation
+ 1003 Model-52 LED Light Source Power Supply and Driver
+104f WB Electronics
+ 0001 Infinity Phoenix
+ 0002 Smartmouse
+ 0003 FunProgrammer
+ 0004 Infinity Unlimited
+ 0006 Infinity Smart
+ 0007 Infinity Smart module
+ 0008 Infinity CryptoKey
+ 0009 RE-BL PlayStation 3 IR-to-Bluetooth converter
+1050 Yubico.com
+ 0010 Yubikey
+1053 Immanuel Electronics Co., Ltd
+1054 BMS International Beheer N.V.
+ 5004 DSL 7420 Loader
+ 5005 DSL 7420 LAN Modem
+1055 Complex Micro Interconnection Co., Ltd
+1056 Hsin Chen Ent Co., Ltd
+1057 ON Semiconductor
+1058 Western Digital Technologies, Inc.
+ 0200 Firewire USB Combo
+ 0400 External HDD
+ 0500 hub
+ 0702 Passport External HDD
+ 0704 Passport External HDD
+ 070a My Passport Essential SE
+ 071a My Passport 1TB
+ 0900 MyBook Essential External HDD
+ 0901 MyBook External HDD
+ 0903 My Book Premium Edition
+ 0910 MyBook Essential External HDD
+ 1001 External Hard Disk [Elements]
+ 1021 Elements 2TB
+ 1104 MyBook Mirror Edition External HDD
+ 1123 My Book 3.0
+1059 Giesecke & Devrient GmbH
+ 000b StarSign Bio Token 3.0
+105c Hong Ji Electric Wire & Cable (Dongguan) Co., Ltd
+105d Delkin Devices, Inc.
+105e Valence Semiconductor Design, Ltd
+105f Chin Shong Enterprise Co., Ltd
+1060 Easthome Industrial Co., Ltd
+1063 Motorola Electronics Taiwan, Ltd [hex]
+ 1555 MC141555 Hub
+ 4100 SB4100 USB Cable Modem
+1065 CCYU Technology
+ 0020 USB-DVR2 Dev Board
+ 2136 EasyDisk ED1064
+106a Loyal Legend, Ltd
+106c Curitel Communications, Inc.
+ 1101 CDMA 2000 1xRTT USB modem (HX-550C)
+ 1102 Packet Service
+ 1103 Packet Service Diagnostic Serial Port (WDM)
+ 1104 Packet Service Diagnostic Serial Port (WDM)
+ 1105 Composite Device
+ 1106 Packet Service Diagnostic Serial Port (WDM)
+ 1301 Composite Device
+ 1302 Packet Service Diagnostic Serial Port (WDM)
+ 1303 Packet Service
+ 1304 Packet Service
+ 1401 Composite Device
+ 1402 Packet Service
+ 1403 Packet Service Diagnostic Serial Port (WDM)
+ 1501 Packet Service
+ 1502 Packet Service Diagnostic Serial Port (WDM)
+ 1503 Packet Service
+ 1601 Packet Service
+ 1602 Packet Service Diagnostic Serial Port (WDM)
+ 1603 Packet Service
+ 2101 AudioVox 8900 Cell Phone
+ 2102 Packet Service
+ 2103 Packet Service Diagnostic Serial Port (WDM)
+ 2301 Packet Service
+ 2302 Packet Service Diagnostic Serial Port (WDM)
+ 2303 Packet Service
+ 2401 Packet Service Diagnostic Serial Port (WDM)
+ 2402 Packet Service
+ 2403 Packet Service Diagnostic Serial Port (WDM)
+ 2501 Packet Service
+ 2502 Packet Service Diagnostic Serial Port (WDM)
+ 2503 Packet Service
+ 2601 Packet Service
+ 2602 Packet Service Diagnostic Serial Port (WDM)
+ 2603 Packet Service
+ 3701 Broadband Wireless modem
+ 3702 Pantech PX-500
+ 3714 PANTECH USB MODEM [UM175]
+ 3eb4 Packet Service Diagnostic Serial Port (WDM)
+ 4101 Packet Service Diagnostic Serial Port (WDM)
+ 4102 Packet Service
+ 4301 Composite Device
+ 4302 Packet Service Diagnostic Serial Port (WDM)
+ 4401 Composite Device
+ 4402 Packet Service
+ 4501 Packet Service
+ 4502 Packet Service Diagnostic Serial Port (WDM)
+ 4601 Composite Device
+ 4602 Packet Service Diagnostic Serial Port (WDM)
+ 5101 Packet Service
+ 5102 Packet Service Diagnostic Serial Port (WDM)
+ 5301 Packet Service Diagnostic Serial Port (WDM)
+ 5302 Packet Service
+ 5401 Packet Service
+ 5402 Packet Service Diagnostic Serial Port (WDM)
+ 5501 Packet Service Diagnostic Serial Port (WDM)
+ 5502 Packet Service
+ 5601 Packet Service Diagnostic Serial Port (WDM)
+ 5602 Packet Service
+ 7101 Composite Device
+ 7102 Packet Service
+ a000 Packet Service
+ a001 Packet Service Diagnostic Serial Port (WDM)
+ c100 Packet Service
+ c200 Packet Service
+ c500 Packet Service Diagnostic Serial Port (WDM)
+ e200 Packet Service
+106d San Chieh Manufacturing, Ltd
+106e ConectL
+106f Money Controls
+1076 GCT Semiconductor, Inc.
+ 0031 Bluetooth Device
+ 0032 Bluetooth Device
+107b Gateway, Inc.
+ 3009 eHome Infrared Transceiver
+ 55b2 WBU-110 802.11b Wireless Adapter [Intersil PRISM 3]
+ 55f2 WGU-210 802.11g Adapter [Intersil ISL3886]
+107d Arlec Australia, Ltd
+107e Midoriya Electric Co., Ltd
+107f KidzMouse, Inc.
+1082 Shin-Etsukaken Co., Ltd
+1083 Canon Electronics, Inc.
+ 162c P-150 Scanner
+1084 Pantech Co., Ltd
+108a Chloride Power Protection
+108b Grand-tek Technology Co., Ltd
+108c Robert Bosch GmbH
+108e Lotes Co., Ltd.
+1099 Surface Optics Corp.
+109a DATASOFT Systems GmbH
+109f eSOL Co., Ltd
+ 3163 Trigem Mobile SmartDisplay84
+ 3164 Trigem Mobile SmartDisplay121
+10a0 Hirotech, Inc.
+10a3 Mitsubishi Materials Corp.
+10a9 SK Teletech Co., Ltd
+ 1102 Sky Love Actually IM-U460K
+ 1104 Sky Vega IM-A650S
+ 6021 SIRIUS alpha
+10aa Cables To Go
+10ab USI Co., Ltd
+ 1002 Bluetooth Device
+ 1003 BC02-EXT in DFU
+ 1005 Bluetooth Adptr
+ 1006 BC04-EXT in DFU
+ 10c5 Sony-Ericsson / Samsung DataCable
+10ac Honeywell, Inc.
+10ae Princeton Technology Corp.
+10af Liebert Corp.
+ 0000 UPS
+ 0001 PowerSure PSA UPS
+ 0002 PowerSure PST UPS
+ 0003 PowerSure PSP UPS
+ 0004 PowerSure PSI UPS
+ 0005 UPStation GXT 2U UPS
+ 0006 UPStation GXT UPS
+ 0007 Nfinity Power Systems UPS
+ 0008 PowerSure Interactive UPS
+10b5 Comodo (PLX?)
+ 9060 Test Board
+10b8 DiBcom
+ 0bb8 DiBcom USB DVB-T reference design (MOD300) (cold)
+ 0bb9 DiBcom USB DVB-T reference design (MOD300) (warm)
+ 0bc6 DiBcom USB2.0 DVB-T reference design (MOD3000P) (cold)
+ 0bc7 DiBcom USB2.0 DVB-T reference design (MOD3000P) (warm)
+10bb TM Technology, Inc.
+10bc Dinging Technology Co., Ltd
+10bd TMT Technology, Inc.
+ 1427 Ethernet
+10bf SmartHome
+ 0001 SmartHome PowerLinc
+10c4 Cygnal Integrated Products, Inc.
+ 0002 F32x USBXpress Device
+ 0003 CommandIR
+ 8044 USB Debug Adapter
+ 804e Software Bisque Paramount ME
+ 80a9 CP210x to UART Bridge Controller
+ 80ca ATM2400 Sensor Device
+ 818a Silicon Labs FM Radio Reference Design
+ 8461 Sangoma U100
+ ea60 CP210x Composite Device
+10c5 Sanei Electric, Inc.
+ 819a FM Radio
+10c6 Intec, Inc.
+10cb Eratech
+10cc GBM Connector Co., Ltd
+ 1101 MP3 Player
+10cd Kycon, Inc.
+10ce Silicon Labs
+ ea6a MobiData EDGE USB Modem
+10cf Velleman Components, Inc.
+ 2011 R-Engine MPEG2 encoder/decoder
+ 5500 8055 Experiment Interface Board (address=0)
+ 5501 8055 Experiment Interface Board (address=1)
+ 5502 8055 Experiment Interface Board (address=2)
+ 5503 8055 Experiment Interface Board (address=3)
+10d1 Hottinger Baldwin Measurement
+ 0101 USB-Module for Spider8, CP32
+ 0202 CP22 - Communication Processor
+ 0301 CP42 - Communication Processor
+10d4 Man Boon Manufactory, Ltd
+10d5 Uni Class Technology Co., Ltd
+ 5552 KVM Human Interface Composite Device (Keyboard/Mouse ports)
+ 55a2 2Port KVMSwitcher
+10d6 Actions Semiconductor Co., Ltd
+ 1000 MP3 Player
+ 1100 MPMan MP-Ki 128 MP3 Player/Recorder
+ 1101 D-Wave 2GB MP4 Player / AK1025 MP3/MP4 Player
+ 2200 Acer MP-120 MP3 player
+ 8888 ADFU Device
+ ff51 ADFU Device
+ ff61 MP4 Player
+ ff66 Craig 2GB MP3/Video Player
+10de Authenex, Inc.
+10df In-Win Development, Inc.
+ 0500 iAPP CR-e500 Card reader
+10e0 Post-Op Video, Inc.
+10e1 CablePlus, Ltd
+10e2 Nada Electronics, Ltd
+10ec Vast Technologies, Inc.
+10f0 Nexio Co., Ltd
+ 2002 iNexio Touchscreen controller
+10f1 Importek
+ 1a08 Internal Webcam
+ 1a1e Laptop Integrated Webcam 1.3M
+10f5 Turtle Beach
+ 0200 Audio Advantage Roadie
+10fb Pictos Technologies, Inc.
+10fd Anubis Electronics, Ltd
+ 7e50 FlyCam Usb 100
+ 804d Typhoon Webshot II Webcam [zc0301]
+ 8050 FlyCAM-USB 300 XP2
+ de00 WinFast WalkieTV WDM Capture Driver.
+1100 VirTouch, Ltd
+ 0001 VTPlayer VTP-1 Braille Mouse
+1101 EasyPass Industrial Co., Ltd
+ 0001 FSK Electronics Super GSM Reader
+1108 Brightcom Technologies, Ltd
+110a Moxa Technologies Co., Ltd.
+ 1250 UPort 1250 2-Port RS-232/422/485
+ 1251 UPort 1250I 2-Port RS-232/422/485 with Isolation
+ 1410 UPort 1410 4-Port RS-232
+ 1450 UPort 1450 4-Port RS-232/422/485
+ 1451 UPort 1450I 4-Port RS-232/422/485 with Isolation
+ 1613 UPort 1610-16 16-Port RS-232
+ 1618 UPort 1610-8 8-Port RS-232
+ 1653 UPort 1650-16 16-Port RS-232/422/485
+ 1658 UPort 1650-8 8-Port RS-232/422/485
+1110 Analog Devices Canada, Ltd (Allied Telesyn)
+ 5c01 Huawei MT-882 Remote NDIS Network Device
+ 6489 ADSL ETH/USB RTR
+ 9000 ADSL LAN Adapter
+ 9001 ADSL Loader
+ 900f AT-AR215 DSL Modem
+ 9010 AT-AR215 DSL Modem
+ 9021 ADSL WAN Adapter
+ 9022 ADSL Loader
+ 9023 ADSL WAN Adapter
+ 9024 ADSL Loader
+ 9031 ADSL LAN Adapter
+ 9032 ADSL Loader
+1111 Pandora International Ltd.
+ 8888 Evolution Device
+1112 YM ELECTRIC CO., Ltd
+1113 Medion AG
+ a0a2 Active Sync device
+111e VSO Electric Co., Ltd
+112a RedRat
+ 0001 RedRat3 IR Transceiver
+ 0005 RedRat3II IR Transceiver
+112e Master Hill Electric Wire and Cable Co., Ltd
+112f Cellon International, Inc.
+1130 Tenx Technology, Inc.
+ 0002 iBuddy
+ 6604 MCE IR-Receiver
+ 660c Foot Pedal/Thermometer
+ 6806 Keychain photo frame
+ f211 TP6911 Audio Headset
+1131 Integrated System Solution Corp.
+ 1001 KY-BT100 Bluetooth Adapter
+ 1002 Bluetooth Device
+ 1003 Bluetooth Device
+ 1004 Bluetooth Device
+1132 Toshiba Corp., Digital Media Equipment [hex]
+ 4331 PDR-M4/M5/M70 Digital Camera
+ 4332 PDR-M60 Digital Camera
+ 4333 PDR-M2300/PDR-M700
+ 4334 PDR-M65
+ 4335 PDR-M61
+ 4337 PDR-M11
+ 4338 PDR-M25
+1136 CTS Electronincs
+ 3131 CTS LS515
+113c Arin Tech Co., Ltd
+113d Mapower Electronics Co., Ltd
+1141 V One Multimedia, Pte., Ltd
+1142 CyberScan Technologies, Inc.
+1145 Japan Radio Company
+ 0001 AirH PHONE AH-J3001V/J3002V
+1146 Shimane SANYO Electric Co., Ltd.
+1147 Ever Great Electric Wire and Cable Co., Ltd
+114b Sphairon Access Systems GmbH
+ 0110 Turbolink UB801R WLAN Adapter
+ 0150 Turbolink UB801RE Wireless 802.11g 54Mbps Network Adapter [RTL8187]
+114c Tinius Olsen Testing Machine Co., Inc.
+114d Alpha Imaging Technology Corp.
+114f Wavecom
+115b Salix Technology Co., Ltd.
+1162 Secugen Corp.
+1163 DeLorme Publishing, Inc.
+ 0100 Earthmate GPS (orig)
+ 0200 Earthmate GPS (LT-20, LT-40)
+ 2020 Earthmate GPS (PN-40)
+1164 YUAN High-Tech Development Co., Ltd
+ 0300 ELSAVISION 460D
+ 0601 Analog TV Tuner
+ 0900 TigerBird BMP837 USB2.0 WDM Encoder
+ 0bc7 Digital TV Tuner
+ 521b MC521A mini Card ATSC Tuner
+ 6601 Digital TV Tuner Card [RTL2832U]
+1165 Telson Electronics Co., Ltd
+1166 Bantam Interactive Technologies
+1167 Salient Systems Corp.
+1168 BizConn International Corp.
+116e Gigastorage Corp.
+116f Silicon 10 Technology Corp.
+ 0005 Flash Card Reader
+ c108 Flash Card Reader
+ c109 Flash Card Reader
+1175 Shengyih Steel Mold Co., Ltd
+117d Santa Electronic, Inc.
+117e JNC, Inc.
+1182 Venture Corp., Ltd
+1183 Compaq Computer Corp. [hex] (Digital Dream ??)
+ 0001 DigitalDream l'espion XS
+ 19c7 ISDN TA
+ 4008 56k FaxModem
+ 504a PJB-100 Personal Jukebox
+1184 Kyocera Elco Corp.
+1188 Bloomberg L.P.
+1189 Acer Communications & Multimedia
+ 0893 EP-1427X-2 Ethernet Adapter
+118f You Yang Technology Co., Ltd
+1190 Tripace
+1191 Loyalty Founder Enterprise Co., Ltd
+1196 Yankee Robotics, LLC
+ 0010 Trifid Camera without code
+ 0011 Trifid Camera
+1197 Technoimagia Co., Ltd
+1198 StarShine Technology Corp.
+1199 Sierra Wireless, Inc.
+ 0019 AC595U
+ 0021 AC597E
+ 0024 MC5727 CDMA modem
+ 0110 Composite Device
+ 0112 CDMA 1xEVDO PC Card, AirCard 580
+ 0120 AC595U
+ 0218 MC5720 Wireless Modem
+ 6467 MP Series Network Adapter
+ 6468 MP Series Network Adapter
+ 6469 MP Series Network Adapter
+ 6802 MC8755 Device
+ 6803 MC8765 Device
+ 6804 MC8755 Device
+ 6805 MC8765 Device
+ 6812 MC8775 Device
+ 6820 AC875 Device
+ 6832 MC8780 Device
+ 6833 MC8781 Device
+ 683a MC8785 Device
+ 6850 AirCard 880 Device
+ 6851 AirCard 881 Device
+ 6852 AirCard 880E Device
+ 6853 AirCard 881E Device
+ 6854 AirCard 885 Device
+ 6856 ATT "USB Connect 881"
+ 6870 MC8780 Device
+ 6871 MC8781 Device
+ 6893 MC8777 Device
+ 9000 Gobi 2000 Wireless Modem (QDL mode)
+ 9001 Gobi 2000 Wireless Modem
+ 9002 Gobi 2000 Wireless Modem
+ 9003 Gobi 2000 Wireless Modem
+ 9004 Gobi 2000 Wireless Modem
+ 9005 Gobi 2000 Wireless Modem
+ 9006 Gobi 2000 Wireless Modem
+ 9007 Gobi 2000 Wireless Modem
+ 9008 Gobi 2000 Wireless Modem
+ 9009 Gobi 2000 Wireless Modem
+ 900a Gobi 2000 Wireless Modem
+119a ZHAN QI Technology Co., Ltd
+119b ruwido austria GmbH
+ 0400 Infrared Keyboard V2.01
+11a0 Chipcon AS
+ eb11 CC2400EB 2.0 ZigBee Sniffer
+11a3 Technovas Co., Ltd
+ 8031 MP3 Player
+ 8032 MP3 Player
+11aa GlobalMedia Group, LLC
+ 1518 iREZ K2
+11ab Exito Electronics Co., Ltd
+11b0 ATECH FLASH TECHNOLOGY
+11c5 Inmax
+ 0521 IMT-0521 Smartcard Reader
+11db Topfield Co., Ltd.
+ 1000 PVR
+ 1100 PVR
+11e6 K.I. Technology Co. Ltd.
+11f5 Siemens AG
+ 0001 SX1
+ 0003 Mobile phone USB cable
+ 0004 X75
+ 0005 SXG75/EF81
+ 0008 UMTS/HSDPA Data Card
+11f6 Prolific
+ 2001 Willcom WSIM
+11f7 Alcatel (?)
+ 02df TD10 Mobile phone USB cable
+1203 TSC Auto ID Technology Co., Ltd
+ 0140 TTP-245C
+1209 InterBiometrics
+ 1001 USB Hub
+ 1002 USB Relais
+ 1003 IBSecureCam-P
+ 1004 IBSecureCam-O
+ 1005 IBSecureCam-N
+120e Hudson Soft Co., Ltd
+120f Magellan
+ 5260 Triton Handheld GPS Receiver (300/400/500/1500/2000)
+1210 DigiTech
+ 001b RP155 Guitar Multi-Effects Processor
+ 001c RP255 Guitar Multi-Effects Processor
+121e Jungsoft Co., Ltd
+ 3403 Muzio JM250 Audio Player
+1223 SKYCABLE ENTERPRISE. CO., LTD.
+1230 Chipidea-Microelectronica, S.A.
+1233 Denver Electronics
+ 5677 FUSB200 mp3 player
+1234 Unknown
+ ed02 Emotiv EPOC Developer Headset Wireless Dongle
+1235 Novation EMS
+ 0001 ReMOTE Audio/XStation
+ 0002 Speedio
+ 0003 ReMOTE ZeRO SL
+ 4661 ReMOTE25
+1241 Belkin
+ 1111 Mouse
+ 1122 Typhoon Stream Optical Mouse USB+PS/2
+ 1155 PS2/USB Browser Combo Mouse
+ 1166 MI-2150 Trust Mouse
+ 1177 F8E842-DL Mouse
+ 1503 Keyboard
+ 1603 Keyboard
+124a AirVast
+ 168b PRISM3 WLAN Adapter
+ 4017 PC-Chips 802.11b Adapter
+124b Nyko (Honey Bee)
+ 4d01 Airflo EX Joystick
+124c MXI - Memory Experts International, Inc.
+ 3200 Stealth MXP 1GB
+125c Apogee Inc.
+ 0010 Alta series CCD
+125f A-DATA Technology Co., Ltd.
+ 312a Superior S102
+ a91a Portable HDD CH91
+ c81a Flash drive
+ c93a Flash drive
+1260 Standard Microsystems Corp.
+ ee22 SMC2862W-G v3 EZ Connect 802.11g Adapter [Intersil ISL3887]
+1264 Covidien Energy-based Devices
+1266 Pirelli Broadband Solutions
+ 6302 Fastweb DRG A226M ADSL Router
+1267 Logic3 / SpectraVideo plc
+ 0103 G-720 Keyboard
+ 0201 A4Tech SWOP-3 Mouse
+ a001 JP260 PC Game Pad
+ c002 Wireless Optical Mouse
+126c Aristocrat Technologies
+126d Bel Stewart
+126e Strobe Data, Inc.
+126f TwinMOS
+ 1325 Mobile Disk
+ 2168 Mobile Disk III
+ a006 G240 802.11bg
+1274 Ensoniq
+1275 Xaxero Marine Software Engineering, Ltd.
+ 0002 WeatherFax 2000 Demodulator
+ 0080 SkyEye Weather Satellite Receiver
+1278 Starlight Xpress
+ 0105 SXV-M5
+ 0107 SXV-M7
+ 0109 SXV-M9
+ 0110 SXVF-H16
+ 0115 SXVF-H5
+ 0119 SXV-H9
+ 0135 SXVF-H35
+ 0136 SXVF-H36
+ 0200 SXV interface for paraller MX cameras
+ 0305 SXV-M5C
+ 0307 SXV-M7C
+ 0319 SXV-H9C
+ 0325 SXV-M25C
+ 0326 SXVR-M26C
+ 0507 Lodestar autoguider
+ 0517 CoStar
+1283 zebris Medical GmbH
+ 0100 USB-RS232 Adaptor
+ 0110 CMS20
+ 0111 CMS 10
+ 0112 CMS 05
+ 0114 ARCUS digma PC-Interface
+ 0115 SAM Axioquick recorder
+ 0116 SAM Axioquick recorder
+ 0120 emed-X
+ 0121 emed-AT
+ 0130 PDM
+ 0150 CMS10GI (Golf)
+1286 Marvell Semiconductor, Inc.
+ 1fab 88W8338 [Libertas] 802.11g
+ 2001 88W8388 802.11a/b/g WLAN
+ 2006 88W8360 802.11n WLAN
+ 8001 BLOB boot loader firmware
+1291 Qualcomm Flarion Technologies, Inc. / Leadtek Research, Inc.
+ 0010 FDM 2xxx Flash-OFDM modem
+ 0011 LR7F06/LR7F14 Flash-OFDM modem
+1292 Innomedia
+ 0258 Creative Labs VoIP Blaster
+1293 Belkin Components [hex]
+ 0002 F5U002 Parallel Port [uss720]
+ 2101 104-key keyboard
+1294 RISO KAGAKU CORP.
+129b CyberTAN Technology
+ 160b Siemens S30853-S1031-R351 802.11g Wireless Adapter [Atheros AR5523]
+ 160c Siemens S30853-S1038-R351 802.11g Wireless Adapter [Atheros AR5523]
+ 1666 TG54USB 802.11bg
+ 1667 802.11bg
+ 1828 Gigaset USB Adapter 300
+12a7 Trendchip Technologies Corp.
+12ab Honey Bee Electronic International Ltd.
+12b8 Zhejiang Xinya Electronic Technology Co., Ltd.
+12ba Licensed by Sony Computer Entertainment America
+ 0100 RedOctane Guitar for PlayStation(R)3
+ 0120 RedOctane Drum Kit for PlayStation(R)3
+ 0200 Harmonix Guitar for PlayStation(R)3
+ 0210 Harmonix Drum Kit for PlayStation(R)3
+12c4 Autocue Group Ltd
+ 0006 Teleprompter Two-button Hand Control (v1)
+ 0008 Teleprompter Foot Control (v1)
+12d1 Huawei Technologies Co., Ltd.
+ 1001 E169/E620/E800 HSDPA Modem
+ 1003 E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
+ 1009 U120
+ 1010 ETS2252+ CDMA Fixed Wireless Terminal
+ 1037 Ideos
+ 1038 Ideos (debug mode)
+ 1406 E1750
+ 140b EC1260 Wireless Data Modem HSD USB Card
+ 1446 E1552 (HSPA modem)
+ 1501 Pulse
+ 1505 E398 LTE/UMTS/GSM Modem/Networkcard
+ 1506 E398 LTE/UMTS/GSM Modem/Networkcard
+ 1520 K3765 HSPA
+ 1521 K4505 HSPA+
+ 380b WiMAX USB modem(s)
+12d2 LINE TECH INDUSTRIAL CO., LTD.
+12d6 EMS Dr. Thomas Wuensche
+ 0444 CPC-USB/ARM7
+ 0888 CPC-USB/M16C
+12d7 BETTER WIRE FACTORY CO., LTD.
+12e6 Waldorf Music GmbH
+ 0013 Blofeld
+12ef Tapwave, Inc.
+ 0100 Tapwave Handheld [Tapwave Zodiac]
+12f5 Dynamic System Electronics Corp.
+12f7 Memorex Products, Inc.
+ 1a00 TD Classic 003B
+ 1e23 TravelDrive 2007 Flash Drive
+12fd AIN Comm. Technology Co., Ltd
+ 1001 AWU2000b 802.11b Stick
+12ff Fascinating Electronics, Inc.
+ 0101 Advanced RC Servo Controller
+1307 Transcend Information, Inc.
+ 0163 256MB/512MB/1GB Flash Drive
+ 0165 2GB/4GB Flash Drive
+ 0330 63-in-1 Multi-Card Reader/Writer
+ 0361 CR-75: 51-in-1 Card Reader/Writer
+ 1169 TS2GJF210 JetFlash 210 2GB
+ 1171 Fingerprint Reader
+1308 Shuttle, Inc.
+ 0003 VFD Module
+ c001 eHome Infrared Transceiver
+1310 Roper
+ 0001 Class 1 Bluetooth Dongle
+1312 ICS Electronics
+131d Natural Point
+ 0155 TrackIR 3 Pro Head Tracker
+ 0156 TrackIR 4 Pro Head Tracker
+132a Envara Inc.
+ 1502 WiND 802.11abg / 802.11bg WLAN
+132b Konica Minolta
+ 0000 Dimage A2 Camera
+ 0001 Minolta DiMAGE A2 (ptp)
+ 0003 Dimage Xg Camera
+ 0006 Dimage Z2 Camera
+ 0007 Minolta DiMAGE Z2 (PictBridge mode)
+ 0008 Dimage X21 Camera
+ 000a Dimage Scan Dual IV
+ 000b Dimage Z10 Camera
+ 000d Dimage X50 Camera [storage?]
+ 000f Dimage X50 Camera [p2p?]
+ 0010 Dimage G600 Camera
+ 0012 Dimage Scan Elite5400 2
+ 0013 Dimage X31 Camera
+ 0015 Dimage G530 Camera
+ 0017 Dimage Z3 Camera
+ 0018 Minolta DiMAGE Z3 (PictBridge mode)
+ 0019 Dimage A200 Camera
+ 0021 Dimage Z5 Camera
+ 0022 Minolta DiMAGE Z5 (PictBridge mode)
+ 002c Dynax 5D camera
+ 2001 Magicolor 2400w
+ 2004 Magicolor 5430DL
+ 2005 Magicolor 2430 DL
+ 2029 Magicolor 5440DL
+ 2030 PagePro 1350E(N)
+ 2033 PagePro 1400W
+ 2043 Magicolor 2530DL
+ 2045 Magicolor 2500W
+ 2049 Magicolor 2490MF
+1342 Mobility
+ 0200 EasiDock 200 Hub
+ 0201 EasiDock 200 Keyboard and Mouse Port
+ 0202 EasiDock 200 Serial Port
+ 0203 EasiDock 200 Printer Port
+ 0204 Ethernet
+ 0304 EasiDock Ethernet
+1345 Sino Lite Technology Corp.
+ 001c Xbox Controller Hub
+1347 Moravian Instruments
+ 0400 G2CCD USB 1.1 obsolete
+ 0401 G2CCD-S with Sony ICX285 CCD
+ 0402 G2CCD2
+ 0403 G2/G3CCD-I KAI CCD
+ 0404 G2/G3CCD-F KAF CCD
+ 0410 G1-0400 CCD
+ 0411 G1-0800 CCD
+ 0412 G1-0300 CCD
+ 0413 G1-2000 CCD
+ 0414 G1-1400 CCD
+1348 Katsuragawa Electric Co., Ltd.
+134c PanJit International Inc.
+ 0001 Touch Panel Controller
+ 0002 Touch Panel Controller
+ 0003 Touch Panel Controller
+ 0004 Touch Panel Controller
+134e Digby's Bitpile, Inc. DBA D Bit
+1357 P&E Microcomputer Systems
+ 0503 USB-ML-12 HCS08/HCS12 Multilink
+ 0504 DEMOJM
+1366 SEGGER
+ 0101 J-Link ARM
+136b STEC
+1370 Swissbit
+ 0323 Swissmemory cirrusWHITE
+ 6828 Victorinox Flash Drive
+1371 CNet Technology Inc.
+ 0001 CNUSB-611AR Wireless Adapter-G [AT76C503]
+ 0002 CNUSB-611AR Wireless Adapter-G [AT76C503] (FiberLine WL-240U)
+ 0013 CNUSB-611 Wireless Adapter [AT76C505]
+ 0014 CNUSB-611 Wireless Adapter [AT76C505] (FiberLine WL-240U)
+ 5743 CNUSB-611 (D) Wireless Adapter [AT76C503]
+ 9022 CWD-854 [RT2573]
+ 9032 CWD-854 rev F
+ 9401 CWD-854 Wireless 802.11g 54Mbps Network Adapter [RTL8187]
+1376 Vimtron Electronics Co., Ltd.
+137b SCAPS GmbH
+ 0002 SCAPS USC-2 Scanner Controller
+1385 Netgear, Inc
+ 4250 WG111T
+ 4251 WG111T (no firmware)
+ 5f00 WPN111 RangeMax(TM) Wireless USB 2.0 Adapter
+ 5f01 WPN111 (no firmware)
+ 6e00 WPNT121 802.11g 240Mbps Wireless Adapter [Airgo AGN300]
+138a Validity Sensors, Inc.
+ 0001 VFS101 Fingerprint Reader
+ 0005 VFS301 Fingerprint Reader
+ 0007 VFS451 Fingerprint Reader
+ 0008 VFS300 Fingerprint Reader
+ 0011 VFS5011 Fingerprint Reader
+138e Jungo LTD
+ 9000 Raisonance S.A. STM32 ARM evaluation board
+1390 TOMTOM B.V.
+ 0001 GO 520 T
+1391 IdealTEK, Inc.
+ 1000 URTC-1000
+1395 Sennheiser Communications
+ 3556 USB Headset
+1397 BEHRINGER International GmbH
+ 00bc BCF2000
+1398 Q-tec
+ 2103 USB 2.0 Storage Device
+13ad Baltech
+ 9999 Card reader
+13b0 PerkinElmer Optoelectronics
+ 000a Alesis Photon X25 MIDI Controller
+13b1 Linksys
+ 000a WUSB54G v2 802.11g Adapter [Intersil ISL3887]
+ 000b WUSB11 v4.0 802.11b Adapter [ALi M4301]
+ 000c WUSB54AG 802.11a/g Adapter [Intersil ISL3887]
+ 000d WUSB54G v4 802.11g Adapter [Ralink RT2500USB]
+ 000e WUSB54GS v1 802.11g Adapter [Broadcom 4320 USB]
+ 0011 WUSB54GP v4.0 802.11g Adapter [Ralink RT2500USB]
+ 0014 WUSB54GS v2 802.11g Adapter [Broadcom 4320 USB]
+ 0018 USB200M 10/100 Ethernet Adapter
+ 001a HU200TS Wireless Adapter
+ 001e WUSBF54G 802.11bg
+ 0020 WUSB54GC v1 802.11g Adapter [Ralink RT73]
+ 0022 WUSB54GX4 802.11g 240Mbps Wireless Adapter [Airgo AGN300]
+ 0023 WUSB54GR
+ 0024 WUSBF54G v1.1 802.11bg
+ 0026 WUSB54GSC v1 802.11g Adapter [Broadcom 4320 USB]
+ 002f AE1000 v1 802.11n [Ralink RT3572]
+ 0031 AM10 v1 802.11n [Ralink RT3072]
+ 13b1 WUSB200: Wireless-G Business Network Adapter with Rangebooster
+13b2 Alesis
+ 0030 Multimix 8
+13b3 Nippon Dics Co., Ltd.
+13ba Unknown
+ 0017 PS/2 Keyboard+Mouse Adapter
+13be Ricoh Printing Systems, Ltd.
+13ca JyeTai Precision Industrial Co., Ltd.
+13cf Wisair Ltd.
+ 1200 Olidata Wireless Multimedia Adapter
+13d0 Techsan Electronics Co., Ltd.
+ 2282 TechniSat DVB-PC TV Star 2
+13d1 A-Max Technology Macao Commercial Offshore Co. Ltd.
+ 7019 MD 82288
+ abe6 Wireless 802.11g 54Mbps Network Adapter [RTL8187]
+13d2 Shark Multimedia
+ 0400 Pocket Ethernet [klsi]
+13d3 IMC Networks
+ 3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold
+ 3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm
+ 3203 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3204 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3205 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3206 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3207 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3208 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 3209 DTV-DVB UDST7022BDA DVB-S Box(Without HID)
+ 3211 DTV-DVB Hybrid Analog/Capture / Pinnacle PCTV 310e
+ 3212 DTV-DVB UDTT704C - DVBT/NTSC/PAL Driver(PCM4)
+ 3213 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver (PCM4)
+ 3214 DTV-DVB UDTT704F -(MiniCard) DVBT/NTSC/PAL Driver(Without HID)
+ 3215 DTV-DVB UDAT7240 - ATSC/NTSC/PAL Driver(PCM4)
+ 3216 DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver
+ 3217 Digital-TV Receiver.
+ 3219 DTV-DVB UDTT7049 - DVB-T Driver(Without HID)
+ 3220 DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver
+ 3223 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3224 DNTV Live! Tiny USB2 BDA (No Remote)
+ 3226 DigitalNow TinyTwin DVB-T Receiver
+ 3234 DVB-T FTA Half Minicard [RTL2832U]
+ 3236 DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver
+ 3237 DTV-DVB UDTT 704J - dual DVB-T Driver
+ 3239 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver(Without HID)
+ 3240 DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+ 3241 DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+ 3242 DTV-DVB UDAT7240LP - ATSC/NTSC/PAL Driver(Without HID)
+ 3243 DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+ 3244 DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver
+ 3247 802.11 n/g/b Wireless LAN Adapter
+ 3249 Internal Bluetooth
+ 3262 802.11 n/g/b Wireless LAN USB Adapter
+ 3273 802.11 n/g/b Wireless LAN USB Mini-Card
+ 3274 DVB-T Dongle [RTL2832U]
+ 3282 DVB-T + GPS Minicard [RTL2832U]
+ 3284 Wireless LAN USB Mini-Card
+ 3306 Mediao 802.11n WLAN [Realtek RTL8191SU]
+ 3315 Bluetooth module
+ 5070 Webcam
+ 5111 Integrated Webcam
+ 5115 Integrated Webcam
+ 5116 Integrated Webcam
+ 5702 UVC VGA Webcam
+ 7020 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+ 7022 DTV-DVB UDST7022BDA DVB-S Box(Without HID)
+13dc ALEREON, INC.
+13dd i.Tech Dynamic Limited
+13e1 Kaibo Wire & Cable (Shenzhen) Co., Ltd.
+13e5 Rane
+ 0001 SL-1
+13e6 TechnoScope Co., Ltd.
+13ec Zydacron
+ 0006 HID Remote Control
+13ee MosArt
+ 0003 Optical Mouse
+13fd Initio Corporation
+ 0841 Samsung SE-T084M DVD-RW
+ 1340 Hi-Speed USB to SATA Bridge
+ 160f RocketFish SATA Bridge [INIC-1611]
+ 1640 ASUS SDRW-08D1S-U DVD-RW
+ 1840 Shintaro SH23SDOCK Hard Drive Docker [INIC-1608L]
+13fe Kingston Technology Company Inc.
+ 1a00 512MB/1GB Flash Drive
+ 1a23 512MB Flash Drive
+ 1d00 DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive
+ 1e00 Flash Drive 2 GB [ICIDU 2 GB]
+ 1f00 DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive
+ 2240 microSD card reader
+ 3100 2/4 GB stick
+1400 Axxion Group Corp.
+1402 Bowe Bell & Howell
+1403 Sitronix
+ 0001 Digital Photo Frame
+140e Telechips, Inc.
+ b011 TCC780X-based player (USB Boot mode)
+ b021 TCC77X-based players (USB Boot mode)
+1410 Novatel Wireless
+ 1110 Merlin S620
+ 1120 Merlin EX720
+ 1130 Merlin S720
+ 1400 Merlin U730/U740 (Vodafone)
+ 1410 Merlin U740 (non-Vodafone)
+ 1430 Merlin XU870
+ 1450 Merlin X950D
+ 2110 Ovation U720/MCD3000
+ 2410 Expedite EU740
+ 2420 Expedite EU850D/EU860D/EU870D
+ 4100 U727
+ 4400 Ovation MC930D/MC950D
+ a001 Gobi Wireless Modem
+ a008 Gobi Wireless Modem (QDL mode)
+1415 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc.
+ 0000 Sony SingStar USBMIC
+ 0020 Sony Wireless SingStar
+ 2000 Sony Playstation Eye
+1419 ABILITY ENTERPRISE CO., LTD.
+1429 Vega Technologies Industrial (Austria) Co.
+142a Thales E-Transactions
+ 0003 Artema Hybrid
+ 0005 Artema Modular
+ 0043 medCompact
+142b Arbiter Systems, Inc.
+ 03a5 933A Portable Power Sentinel
+1430 RedOctane
+ 4734 Guitar Hero4 hub
+ 474b Guitar Hero MIDI interface
+1431 Pertech Resources, Inc.
+1435 Wistron NeWeb
+ 0427 UR054g 802.11g Wireless Adapter [Intersil ISL3887]
+ 0711 UR055G 802.11bg
+ 0804 AR9170+AR9104 802.11abgn Wireless Adapter
+ 0826 AR5523
+ 0827 AR5523 (no firmware)
+ 0828 AR5523
+ 0829 AR5523 (no firmware)
+1436 Denali Software, Inc.
+143c Altek Corporation
+1443 Digilent
+ 0007 CoolRunner-II CPLD Starter Kit
+1453 Radio Shack
+ 4026 26-183 Serial Cable
+1456 Extending Wire & Cable Co., Ltd.
+1457 First International Computer, Inc.
+ 5117 OpenMoko Neo1973 kernel usbnet (g_ether, CDC Ethernet) mode
+ 5118 OpenMoko Neo1973 Debug board (V2+)
+ 5119 OpenMoko Neo1973 u-boot cdc_acm serial port
+ 5120 OpenMoko Neo1973 u-boot usbtty generic serial
+ 5121 OpenMoko Neo1973 kernel mass storage (g_storage) mode
+ 5122 OpenMoko Neo1973 / Neo Freerunner kernel cdc_ether USB network
+ 5123 OpenMoko Neo1973 internal USB CSR4 module
+ 5124 OpenMoko Neo1973 Bluetooth Device ID service
+145f Trust
+ 0106 Trust K56 V92 USB Modem
+ 013d PC Camera (SN9C201 + OV7660)
+ 013f Megapixel Auto Focus Webcam
+ 0142 WB-6250X Webcam
+ 015a WB-8300X 2MP Webcam
+1460 Tatung Co.
+ 9150 eHome Infrared Transceiver
+1461 Staccato Communications
+1462 Micro Star International
+ 5512 MegaStick-1 Flash Stick
+ 8807 DIGIVOX mini III [af9015]
+1472 Huawei-3Com
+ 0007 Aolynk WUB300g [ZyDAS ZD1211]
+ 0009 Aolynk WUB320g
+147a Formosa Industrial Computing, Inc.
+ e015 eHome Infrared Receiver
+ e016 eHome Infrared Receiver
+ e017 eHome Infrared Receiver
+ e018 eHome Infrared Receiver
+ e03a eHome Infrared Receiver
+ e03c eHome Infrared Receiver
+ e03e Infrared Receiver [IR605A/Q]
+147e Upek
+ 1000 Biometric Touchchip/Touchstrip Fingerprint Sensor
+ 2016 Biometric Touchchip/Touchstrip Fingerprint Sensor
+147f Hama GmbH & Co., KG
+1482 Vaillant
+ 1005 VRD PC-Interface
+1484 Elsa AG [hex]
+ 1746 Ecomo 19H99 Monitor
+ 7616 Elsa Hub
+1485 Silicom
+ 0001 U2E
+ 0002 Psion Gold Port Ethernet
+1487 DSP Group, Ltd.
+148e EVATRONIX SA
+148f Ralink Technology, Corp.
+ 1706 RT2500USB Wireless Adapter
+ 2070 RT2070 Wireless Adapter
+ 2570 RT2570 Wireless Adapter
+ 2573 RT2501/RT2573 Wireless Adapter
+ 2671 RT2601/RT2671 Wireless Adapter
+ 2770 RT2770 Wireless Adapter
+ 2870 RT2870 Wireless Adapter
+ 3070 RT2870/RT3070 Wireless Adapter
+ 3071 RT3071 Wireless Adapter
+ 3072 RT3072 Wireless Adapter
+ 3572 RT3572 Wireless Adapter
+ 5370 RT5370 Wireless Adapter
+ 9020 RT2500USB Wireless Adapter
+ 9021 RT2501USB Wireless Adapter
+1497 Panstrong Company Ltd.
+1498 Microtek International Inc.
+ a090 DVB-T Tuner
+149a Imagination Technologies
+ 2107 DBX1 DSP core
+14aa WideView Technology Inc.
+ 0001 Avermedia AverTV DVBT USB1.1 (cold)
+ 0002 Avermedia AverTV DVBT USB1.1 (warm)
+ 0201 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (cold)
+ 0221 WT-220U DVB-T dongle
+ 022b WT-220U DVB-T dongle
+ 0301 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (warm)
+14ad CTK Corporation
+14ae Printronix Inc.
+14af ATP Electronics Inc.
+14b0 StarTech.com Ltd.
+14b2 Ralink Technology, Corp.
+ 3a95 Toshiba WUS-G06G-JT 802.11bg Wireless Adapter
+ 3a98 Airlink101 AWLL4130 802.11bg Wireless Adapter [Atheros AR5523]
+ 3c02 rt2500 802.11g WLAN
+ 3c05 rt2570 802.11g WLAN
+ 3c06 Conceptronic C300RU v1 802.11bgn Wireless Adapter [Ralink RT2870]
+ 3c07 802.11n adapter
+ 3c09 802.11n adapter
+ 3c22 Conceptronic C54RU 802.11bg Wireless Adapter [Ralink RT73]
+ 3c23 Airlink101 AWLL6080 802.11bgn Wireless Adapter [Ralink RT2870]
+ 3c25 DrayTek Vigor N61 802.11bgn Wireless Adapter [Ralink RT2870]
+ 3c27 Airlink101 AWLL6070 802.11bgn Wireless Adapter [Ralink RT2770]
+ 3c28 Conceptronic C300RU v2 802.11bgn Wireless Adapter [Ralink RT2770]
+ 3c2c Keebox W150NU 802.11bgn Wireless Adapter [Ralink RT3070]
+14c0 Rockwell Automation, Inc.
+14c2 Gemlight Computer, Ltd
+ 0250 Storage Adapter V2
+ 0350 Storage Adapter V2
+14cd Super Top
+ 121c microSD card reader
+ 123a SD/MMC/RS-MMC Card Reader
+ 127b SDXC Reader
+ 6116 M6116 SATA Bridge
+ 6600 USB 2.0 IDE DEVICE
+ 6700 Card Reader
+ 6900 Card Reader
+ 8123 SD MMC Reader
+ 8125 SD MMC Reader
+14d8 JAMER INDUSTRIES CO., LTD.
+14dd Raritan Computer, Inc.
+14e1 Dialogue Technology Corp.
+ 5000 PenMount 5000 Touch Controller
+14e5 SAIN Information & Communications Co., Ltd.
+14ea Planex Communications
+ ab10 GW-US54GZ
+ ab11 GU-1000T
+ ab13 GW-US54Mini 802.11bg
+14ed Shure Inc.
+14f7 TechniSat Digital GmbH
+ 0001 SkyStar 2 HD CI
+ 0002 SkyStar 2 HD CI
+ 0003 CableStar Combo HD CI
+ 0004 AirStar TeleStick 2
+ 0500 DVB-PC TV Star HD
+1500 Ellisys
+1501 Pine-Tum Enterprise Co., Ltd.
+1509 First International Computer, Inc.
+ 9242 eHome Infrared Transceiver
+1513 medMobile
+ 0444 medMobile
+1514 Actel
+ 2003 FlashPro3 Programmer
+ 2004 FlashPro3 Programmer
+ 2005 FlashPro3 Programmer
+1516 CompUSA
+ 1603 Flash Drive
+ 8628 Pen Drive
+1518 Cheshire Engineering Corp.
+ 0001 HDReye High Dynamic Range Camera
+ 0002 HDReye (before firmware loads)
+1520 Bitwire Corp.
+1524 ENE Technology Inc
+ 6680 UTS 6680
+1527 Silicon Portals
+ 0200 YAP Phone (no firmware)
+ 0201 YAP Phone
+1529 UBIQUAM Co., Ltd.
+ 3100 CDMA 1xRTT USB Modem (U-100/105/200/300/520)
+152d JMicron Technology Corp. / JMicron USA Technology Corp.
+ 2329 JM20329 SATA Bridge
+ 2335 ATA/ATAPI Bridge
+ 2336 Hard Disk Drive
+ 2337 ATA/ATAPI Bridge
+ 2338 JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
+ 2339 JM20339 SATA Bridge
+ 2352 ATA/ATAPI Bridge
+ 2509 JMS539 SuperSpeed SATA II 3.0G Bridge
+152e LG (HLDS)
+ 2507 PL-2507 IDE Controller
+ e001 GSA-5120D DVD-RW
+1532 Razer USA, Ltd
+ 0001 RZ01-020300 Optical Mouse [Diamondback]
+ 0003 Krait Mouse
+ 0007 DeathAdder Mouse
+ 0017 Imperator Mouse
+ 001c RZ01-0036 Optical Gaming Mouse [Abyssus]
+ 0101 Copperhead Mouse
+ 0102 Tarantula Keyboard
+ 0109 Lycosa Keyboard
+1546 U-Blox AG
+154a Celectronic GmbH
+ 8180 CARD STAR/medic2
+154b PNY
+ 0010 USB 2.0 Flash Drive
+ 6545 FD Device
+154d ConnectCounty Holdings Berhad
+154e D&M Holdings, Inc. (Denon/Marantz)
+ 3000 Marantz RC9001 Remote Control
+1554 Prolink Microsystems Corp.
+1557 OQO
+ 0002 model 01 WiFi interface
+ 0003 model 01 Bluetooth interface
+ 0a80 Gobi Wireless Modem (QDL mode)
+ 7720 model 01+ Ethernet
+ 8150 model 01 Ethernet interface
+1568 Sunf Pu Technology Co., Ltd
+156f Quantum Corporation
+1570 ALLTOP TECHNOLOGY CO., LTD.
+157b Ketron SRL
+157e TRENDnet
+ 3006 TEW-444UB EU
+ 3007 TEW-444UB EU (no firmware)
+ 300a TEW-429UB 802.11bg
+ 300b TEW-429UB 802.11bg
+ 300d TEW-429UB C1 802.11bg
+ 3204 Allnet ALL0298 v2 802.11bg
+ 3205 Allnet ALL0283 [AR5523]
+ 3206 Allnet ALL0283 [AR5523](no firmware)
+1582 Fiberline
+ 6003 WL-430U 802.11bg
+1587 SMA Technologie AG
+158d Oakley Inc.
+158e JDS Uniphase Corporation (JDSU)
+ 0820 SmartPocket Class Device
+1598 Kunshan Guoji Electronics Co., Ltd.
+15a2 Freescale Semiconductor, Inc.
+15a4 Afatech Technologies, Inc.
+ 1000 AF9015/AF9035 DVB-T stick
+ 1001 AF9015/AF9035 DVB-T stick
+ 1336 SDHC/MicroSD/MMC/MS/M2/CF/XD Flash Card Reader
+ 9015 AF9015 DVB-T USB2.0 stick
+ 9016 AF9015 DVB-T USB2.0 stick
+15a8 Teams Power Limited
+15a9 Gemtek
+ 0004 WUBR177G
+ 0006 Wireless 11n USB Adapter
+ 0010 802.11n USB Wireless Card
+ 0012 WUBR-208N 802.11abgn Wireless Adapter [Ralink RT2870]
+15aa Gearway Electronics (Dong Guan) Co., Ltd.
+15ad VMware Inc.
+15ba Olimex Ltd.
+ 0003 OpenOCD JTAG
+ 0004 OpenOCD JTAG TINY
+15c0 XL Imaging
+ 0001 2M pixel Microscope Camera
+ 0002 3M pixel Microscope Camera
+ 0003 1.3M pixel Microscope Camera (mono)
+ 0004 1.3M pixel Microscope Camera (colour)
+ 0005 3M pixel Microscope Camera (Mk 2)
+ 0006 2M pixel Microscope Camera (with capture button)
+ 0007 3M pixel Microscope Camera (with capture button)
+ 0008 1.3M pixel Microscope Camera (colour, with capture button)
+ 0009 1.3M pixel Microscope Camera (colour, with capture button)
+ 000a 2M pixel Microscope Camera (Mk 2)
+ 0010 1.3M pixel "Tinycam"
+ 0101 3M pixel Microscope Camera
+15c2 SoundGraph Inc.
+ 0036 LC16M VFD Display/IR Receiver
+ 0038 GD01 MX VFD Display/IR Receiver
+ ffda iMON PAD Remote Controller
+ ffdc iMON PAD Remote Controller
+15c5 Advance Multimedia Internet Technology Inc. (AMIT)
+ 0008 WL532U 802.11g Adapter
+15c6 Laboratoires MXM
+ 1000 DigistimSP (cold)
+ 1001 DigistimSP (warm)
+ 1002 DigimapSP USB (cold)
+ 1003 DigimapSP USB (warm)
+15c8 KTF Technologies
+ 3201 EVER EV-W100/EV-W250
+15c9 D-Box Technologies
+15ca Textech International Ltd.
+ 00c3 Mini Optical Mouse
+ 0101 MIDI Interface cable
+ 1806 MIDI Interface cable
+15d5 Coulomb Electronics Ltd.
+15d9 Trust International B.V.
+ 0a33 Optical Mouse
+ 0a37 Mouse
+ 0a41 MI-2540D [Optical mouse]
+ 0a4c USB+PS/2 Optical Mouse
+15dc Hynix Semiconductor Inc.
+15e0 Seong Ji Industrial Co., Ltd.
+15e1 RSA
+ 2007 RSA SecurID (R) Authenticator
+15e4 Numark
+ 0024 Mixtrack
+15e8 SohoWare
+ 9100 NUB100 Ethernet [pegasus]
+ 9110 10/100 USB Ethernet
+15e9 Pacific Digital Corp.
+ 04ce MemoryFrame MF-570
+ 1968 MemoryFrame MF-570
+ 1969 Digital Frame
+15ec Belcarra Technologies Corp.
+15f4 HanfTek
+ 0001 HanfTek UMT-010 USB2.0 DVB-T (cold)
+ 0025 HanfTek UMT-010 USB2.0 DVB-T (warm)
+1604 Tascam
+ 8000 US-428 Audio/Midi Controller (without fw)
+ 8001 US-428 Audio/Midi Controller
+ 8004 US-224 Audio/Midi Controller (without fw)
+ 8005 US-224 Audio/Midi Controller
+ 8006 US-122 Audio/Midi Interface (without fw)
+ 8007 US-122 Audio/Midi Interface
+1606 Umax
+ 0002 Astra 1236U Scanner
+ 0010 Astra 1220U
+ 0030 Astra 1600U/2000U
+ 0050 Scanner
+ 0060 Astra 3400/3450
+ 0070 Astra 4400/4450
+ 0130 Astra 2100U
+ 0160 Astra 5400U
+ 0170 Uniscan D50
+ 0230 Astra 2200/2200SU
+ 0350 Astra 4800/4850 Scanner
+ 1030 Astra 4000U
+ 1220 Genesys Logic Scanner Controller NT5.0
+ 2010 AstraCam Digital Camera
+ 2020 AstraCam 1000
+ 2030 AstraCam 1800 Digital Camera
+1608 Inside Out Networks [hex]
+ 0001 EdgePort/4 Serial Port
+ 0002 Edgeport/8
+ 0003 Rapidport/4
+ 0004 Edgeport/4
+ 0005 Edgeport/2
+ 0006 Edgeport/4i
+ 0007 Edgeport/2i
+ 0008 Edgeport/8
+ 000c Edgeport/421
+ 000d Edgeport/21
+ 000e Edgeport/4
+ 000f Edgeport/8
+ 0010 Edgeport/2
+ 0011 Edgeport/4
+ 0012 Edgeport/416
+ 0014 Edgeport/8i
+ 0018 Edgeport/412
+ 0019 Edgeport/412
+ 001a Edgeport/2+2i
+ 0101 Edgeport/4
+ 0105 Edgeport/2
+ 0106 Edgeport/4i
+ 0107 Edgeport/2i
+ 010c Edgeport/421
+ 010d Edgeport/21
+ 0110 Edgeport/2
+ 0111 Edgeport/4
+ 0112 Edgeport/416
+ 0114 Edgeport/8i
+ 0201 Edgeport/4
+ 0203 Rapidport/4
+ 0204 Edgeport/4
+ 0205 Edgeport/2
+ 0206 Edgeport/4i
+ 0207 Edgeport/2i
+ 020c Edgeport/421
+ 020d Edgeport/21
+ 020e Edgeport/4
+ 020f Edgeport/8
+ 0210 Edgeport/2
+ 0211 Edgeport/4
+ 0212 Edgeport/416
+ 0214 Edgeport/8i
+ 0215 Edgeport/1
+ 0216 EPOS/44
+ 0217 Edgeport/42
+ 021a Edgeport/2+2i
+ 021b Edgeport/2c
+ 021c Edgeport/221c
+ 021d Edgeport/22c
+ 021e Edgeport/21c
+ 021f Edgeport/62
+ 0240 Edgeport/1
+ 0241 Edgeport/1i
+ 0242 Edgeport/4s
+ 0243 Edgeport/8s
+ 0244 Edgeport/8
+ 0245 Edgeport/22c
+ 0301 Watchport/P
+ 0302 Watchport/M
+ 0303 Watchport/W
+ 0304 Watchport/T
+ 0305 Watchport/H
+ 0306 Watchport/E
+ 0307 Watchport/L
+ 0308 Watchport/R
+ 0309 Watchport/A
+ 030a Watchport/D
+ 030b Watchport/D
+ 030c Power Management Port
+ 030e Power Management Port
+ 030f Watchport/G
+ 0310 Watchport/Tc
+ 0311 Watchport/Hc
+ 1403 MultiTech Systems MT4X56 Modem
+ 1a17 Agilent Technologies (E6473)
+160a VIA Technologies, Inc.
+ 3184 VIA VNT-6656 [WiFi 802.11b/g USB Dongle]
+1614 Amoi Electronics
+ 0404 WMA9109 UMTS Phone
+ 0600 Vodafone VDA GPS / Toschiba Protege G710
+ 0804 WP-S1 Phone
+1619 L & K Precision Technology Co., Ltd.
+1621 Wionics Research
+1628 Stonestreet One, Inc.
+162a Airgo Networks Inc.
+162f WiQuest Communications, Inc.
+1630 2Wire, Inc.
+ 0005 802.11g Wireless Adapter [Intersil ISL3886]
+ ff81 802.11b Wireless Adapter [Lucent/Agere Hermes I]
+1631 Good Way Technology
+ 6200 GWUSB2E
+ c019 RT2573
+1645 Cross Match Technologies GmbH
+ 0001 1S Serial Port
+ 0002 2S Serial Port
+ 0003 1S25 Serial Port
+ 0004 4S Serial Port
+ 0005 E45 Ethernet [klsi]
+ 0006 Parallel Port
+ 0007 U1-SC25 SCSI
+ 0008 Ethernet
+ 0016 Bi-directional to Parallel Printer Converter
+ 0080 1 port to Serial Converter
+ 0081 1 port to Serial Converter
+ 0093 1S9 Serial Port
+ 8000 EZ-USB
+ 8001 1 port to Serial
+ 8002 2x Serial Port
+ 8003 1 port to Serial
+ 8004 2U4S serial/usb hub
+ 8005 Ethernet
+ 8080 1 port to Serial
+ 8081 1 port to Serial
+ 8093 PortGear Serial Port
+1649 SofTec Microsystems
+ 0102 uDART In-Circuit Debugger
+ 0200 SpYder USBSPYDER08
+164a ChipX
+164c Matrix Vision GmbH
+ 0101 mvBlueFOX camera (no firmware)
+ 0103 mvBlueFOX camera
+ 0201 mvBlueLYNX-X intelligent camera (bootloader)
+ 0203 mvBlueLYNX-X intelligent camera
+1657 Struck Innovative Systeme GmbH
+ 3150 SIS3150 USB2.0 to VME interface
+165b Frontier Design Group
+ 8101 Tranzport Control Surface
+ fad1 Alphatrack Control Surface
+1660 Creatix Polymedia GmbH
+1668 Actiontec Electronics, Inc. [hex]
+ 0009 Gateway
+ 0333 Modem
+ 0358 InternetPhoneWizard
+ 0405 Gateway
+ 0408 Prism2.5 802.11b Adapter
+ 0413 Gateway
+ 0421 Prism2.5 802.11b Adapter
+ 0441 IBM Integrated Bluetooth II
+ 0500 BTM200B BlueTooth Adapter
+ 1050 802UIG-1 802.11g Wireless Mini Adapter [Intersil ISL3887]
+ 1200 802AIN Wireless N Network Adapter [Atheros AR9170+AR9101]
+ 1441 IBM Integrated Bluetooth II
+ 2441 BMDC-2 IBM Bluetooth III w.56k
+ 3441 IBM Integrated Bluetooth III
+ 6010 Gateway
+ 6097 802.11b Wireless Adapter
+ 6106 ROPEX FreeLan 802.11b
+ 7605 UAT1 Wireless Ethernet Adapter
+1669 PiKRON Ltd. [hex]
+ 1001 uLan2USB Converter - PS1 protocol
+1677 China Huada Integrated Circuit Design (Group) Co., Ltd. (CIDC Group)
+ 0103 Token
+1679 Total Phase
+ 2001 Beagle Protocol Analyzer
+ 2002 Cheetah SPI Host Adapter
+1680 Golden Bridge Electech Inc.
+ a332 DVB-T Dongle [RTL2832U]
+1681 Prevo Technologies, Inc.
+ 0001 Tuner's Dashboard
+ 0002 Tubachron
+1682 Maxwise Production Enterprise Ltd.
+1684 Godspeed Computer Corp.
+1685 Delock
+ 0200 Infrared adapter
+1686 ZOOM Corporation
+ 0045 H4 Digital Recorder
+1687 Kingmax Digital Inc.
+ 5289 FlashDisk
+ 6211 FlashDisk
+1688 Saab AB
+168c Atheros Communications
+ 0001 AR5523
+ 0002 AR5523 (no firmware)
+1690 Askey Computer Corp. [hex]
+ 0101 Creative Modem Blaster DE5670
+ 0102 V1456 VQE-R2 Modem [conexant]
+ 0103 1456 VQE-R3 Modem [conexant]
+ 0104 HCF V90 Data Fax RTAD Modem
+ 0107 HCF V.90 Data,Fax,RTAD Modem
+ 0109 MagicXpress V.90 Pocket Modem [conexant]
+ 0203 Voyager ADSL Modem Loader
+ 0204 Voyager ADSL Modem
+ 0205 DSL Modem
+ 0206 GlobeSpan ADSL WAN Modem
+ 0208 DSL Modem
+ 0209 Voyager 100 ADSL Modem
+ 0211 Globespan Virata ADSL LAN Modem
+ 0212 DSL Modem
+ 0213 HM121d DSL Modem
+ 0214 HM121d DSL Modem
+ 0215 Voyager 105 ADSL Modem
+ 0701 WLAN
+ 0710 SMCWUSBT-G
+ 0711 SMCWUSBT-G (no firmware)
+ 0712 AR5523
+ 0713 AR5523 (no firmware)
+ 0715 Name: Voyager 1055 Laptop 802.11g Adapter [Broadcom 4320]
+ 0722 RT2573
+ 0726 Wi-Fi Wireless LAN Adapter
+ 0740 802.11n Wireless LAN Card
+ 0901 Voyager 205 ADSL Router
+1696 Hitachi Video and Information System, Inc.
+1697 VTec Test, Inc.
+16a5 Shenzhen Zhengerya Cable Co., Ltd.
+16a6 Unigraf
+ 3000 VTG-3xxx Video Test Generator family
+ 4000 VTG-4xxx Video Test Generator family
+ 5000 VTG-5xxx Video Test Generator family
+ 5001 VTG-5xxx Special (update) mode of VTG-5xxx family
+16ab Global Sun Technology
+ 7801 AR5523
+ 7802 AR5523 (no firmware)
+ 7811 AR5523
+ 7812 AR5523 (no firmware)
+16ac Dongguan ChingLung Wire & Cable Co., Ltd.
+16b4 iStation
+ 0801 U43
+16b5 Persentec, Inc.
+ 0002 Otto driving companion
+16c0 VOTI
+ 03e8 free for internal lab use 1000
+ 03e9 free for internal lab use 1001
+ 03ea free for internal lab use 1002
+ 03eb free for internal lab use 1003
+ 03ec free for internal lab use 1004
+ 03ed free for internal lab use 1005
+ 03ee free for internal lab use 1006
+ 03ef free for internal lab use 1007
+ 03f0 free for internal lab use 1008
+ 03f1 free for internal lab use 1009
+ 0477 Teensy Rebootor
+ 0478 Teensy Halfkay Bootloader
+ 05dc shared ID for use with libusb
+ 05dd BlackcatUSB2
+ 05e1 CDC-ACM class devices (modems)
+ 05e4 MIDI class devices
+ 076b OpenPCD 13.56MHz RFID Reader
+ 076c OpenPICC 13.56MHz RFID Simulator (native)
+ 08ac OpenBeacon USB stick
+ 08ca Alpermann+Velte Universal Display
+ 08cb Alpermann+Velte Studio Clock
+ 08cc Alpermann+Velte SAM7S MT Boot Loader
+ 08cd Alpermann+Velte SAM7X MT Boot Loader
+ 27da Mouse
+ 27db Keyboard
+ 27dc Joystick
+ 27dd CDC-ACM class devices (modems)
+ 27de MIDI class devices
+16ca Wireless Cables, Inc.
+ 1502 Bluetooth Dongle
+16cc silex technology, Inc.
+16d0 GrauTec
+ 054b ReelBox OLED Display (external)
+16d3 Frontline Test Equipment, Inc.
+16d5 AnyDATA Corporation
+ 6202 CDMA/UMTS/GPRS modem
+ 6501 CDMA 2000 1xRTT/EV-DO Modem
+ 6502 CDMA/UMTS/GPRS modem
+16d6 JABLOCOM s.r.o.
+ 8000 GDP-04 desktop phone
+ 8001 EYE-02
+ 8003 GDP-04 modem
+ 8004 Bootloader
+ 8005 GDP-04i
+ 8007 BTP-06 modem
+16d8 CMOTECH Co., Ltd.
+ 5141 CMOTECH CDMA Technologies modem
+ 5533 CCU-550 CDMA EV-DO modem
+ 5543 CDMA 2000 1xRTT/1xEVDO modem
+ 6280 CMOTECH CDMA Technologies modem
+ 6803 CNU-680 CDMA EV-DO modem
+ 8001 Gobi 2000 Wireless Modem (QDL mode)
+ 8002 Gobi 2000 Wireless Modem
+16dc Wiener, Plein & Baus
+ 0001 CC
+ 000b VM
+16df King Billion Electronics Co., Ltd.
+16f0 GN ReSound A/S
+ 0003 Airlink Wireless Programming Interface
+16f5 Futurelogic Inc.
+1706 BlueView Technologies, Inc.
+1707 ARTIMI
+170b Swissonic
+ 0011 MIDI-USB 1x1
+170d Avnera
+1725 Vitesse Semiconductor
+1726 Axesstel, Inc.
+ 1000 wireless modem
+ 2000 wireless modem
+ 3000 wireless modem
+172f Waltop International Corp.
+ 0022 Tablet
+ 0024 Tablet
+ 0025 Tablet
+ 0026 Tablet
+ 0031 Slim Tablet 12.1"
+ 0032 Slim Tablet 5.8"
+ 0034 Slim Tablet 12.1"
+ 0038 Genius G-Pen F509
+ 0500 Media Tablet 14.1"
+ 0501 Media Tablet 10.6"
+ 0502 Sirius Battery Free Tablet
+1733 Cellink Technology Co., Ltd
+ 0101 RF Wireless Optical Mouse OP-701
+1736 CANON IMAGING SYSTEM TECHNOLOGIES INC.
+1737 Linksys
+ 0039 USB1000
+ 0070 WUSB100 v1 RangePlus Wireless Network Adapter [Ralink RT2870]
+ 0071 WUSB600N v1 Dual-Band Wireless-N Network Adapter [Ralink RT2870]
+ 0073 WUSB54GC v2 802.11g Adapter [Realtek RTL8187B]
+ 0075 WUSB54GSC v2 802.11g Adapter
+ 0077 WUSB54GC v3 802.11g Adapter [Ralink RT2070L]
+ 0078 WUSB100 v2 RangePlus Wireless Network Adapter [Ralink RT3070]
+ 0079 WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572]
+1740 Senao
+ 0605 LevelOne WUA-0605 N_Max Wireless USB Adapter
+ 0615 LevelOne WUA-0615 N_Max Wireless USB Adapter
+ 2000 NUB-8301 802.11bg
+ 3701 EUB-3701 EXT 802.11g Wireless Adapter [Ralink RT2571W]
+ 9701 EnGenius 802.11n Wireless USB Adapter
+ 9702 EnGenius 802.11n Wireless USB Adapter
+ 9703 EnGenius 802.11n Wireless USB Adapter
+ 9705 EnGenius 802.11n Wireless USB Adapter
+ 9706 EUB9706 802.11n Wireless Adapter [Ralink RT3072]
+ 9801 EUB9801 802.11abgn Wireless Adapter [Ralink RT3572]
+1743 General Atomics
+174c ASMedia Technology Inc.
+174f Syntek
+ 1105 SM-MS/Pro-MMC-XD Card Reader
+ 1403 Integrated Webcam
+ 1404 USB Camera device, 1.3 MPixel Web Cam
+ 5212 USB 2.0 UVC PC Camera
+ 5a11 PC Camera
+ 5a31 Sonix USB 2.0 Camera
+ 5a35 Sonix 1.3MPixel USB 2.0 Camera
+ 6a31 Web Cam - Asus A8J, F3S, F5R, VX2S, V1S
+ 6a33 Web Cam - Asus F3SA, F9J, F9S
+ 6a51 2.0MPixel Web Cam - Asus Z96J, Z96S, S96S
+ 6a54 Web Cam
+ 6d51 2.0Mpixel Web Cam - Eurocom D900C
+ 8a12 Syntek 0.3MPixel USB 2.0 UVC PC Camera
+ 8a33 Syntek USB 2.0 UVC PC Camera
+ a311 1.3MPixel Web Cam - Asus A3A, A6J, A6K, A6M, A6R, A6T, A6V, A7T, A7sv, A7U
+ a312 1.3MPixel Web Cam
+ a821 Web Cam - Packard Bell BU45, PB Easynote MX66-208W
+ aa11 Web Cam
+1753 GERTEC Telecomunicacoes Ltda.
+ c901 PPC900 Pinpad Terminal
+1759 LucidPort Technology, Inc.
+1761 ASUSTek Computer, Inc. (wrong ID)
+ 0b05 802.11n Network Adapter (wrong ID - swapped vendor and device)
+1772 System Level Solutions, Inc.
+1776 Arowana
+ 501c 300K CMOS Camera
+177f Sweex
+ 0153 LW153 802.11n Adapter [ralink rt3070]
+ 0313 LW313 802.11n Adapter [ralink rt2770 + rt2720]
+1781 Multiple Vendors
+ 083e MetaGeek Wi-Spy
+ 083f MetaGeek Wi-Spy 2.4x
+ 0938 Iguanaworks USB IR Transceiver
+ 0c9f USBtiny
+1782 Spreadtrum Communications Inc.
+1784 TopSeed Technology Corp.
+ 0001 eHome Infrared Transceiver
+ 0004 RF Combo Device
+ 0006 eHome Infrared Transceiver
+ 0007 eHome Infrared Transceiver
+ 0008 eHome Infrared Transceiver
+ 000a eHome Infrared Transceiver
+1787 ATI AIB
+1788 ShenZhen Litkconn Technology Co., Ltd.
+1796 Printrex, Inc.
+1797 JALCO CO., LTD.
+1799 Belkin Components
+ 7051 F5D7051 802.11g Adapter v1000 [Broadcom 4320]
+179d Ricavision International, Inc.
+ 0010 Internal Infrared Transceiver
+17a0 Samson Technologies Corp.
+ 0001 C01U condenser microphone
+ 0002 Q1U dynamic microphone
+ 0100 C03U multi-pattern microphone
+ 0101 UB1 boundary microphone
+ 0200 StudioDock monitors (internal hub)
+ 0201 StudioDock monitors (audio)
+ 0301 Q2U handheld microphone with XLR
+ 0302 GoMic compact condenser microphone
+17a4 Concept2
+ 0001 Performance Monitor 3
+ 0002 Performance Monitor 4
+17a5 Advanced Connection Technology Inc.
+17a7 MICOMSOFT CO., LTD.
+17b3 Grey Innovation
+ 0004 Linux-USB Midi Gadget
+17c3 Singim International Corp.
+17cc Native Instruments
+ 041c Audio 2 DJ
+ 0808 Maschine Controller
+ 0815 Audio Kontrol 1
+ 0839 Audio 4 DJ
+ 0d8d Guitarrig Mobile
+ 1915 Session I/O
+ 1940 RigKontrol3
+ 1969 RigKontrol2
+ 1978 Audio 8 DJ
+ 2305 Traktor Kontrol X1
+ 4711 Kore Controller
+ 4712 Kore Controller 2
+ baff Traktor Kontrol S4
+17cf Hip Hing Cable & Plug Mfy. Ltd.
+17d0 Sanford L.P.
+17d3 Korea Techtron Co., Ltd.
+17e9 Newnham Research
+ 0051 USB VGA Adaptor
+17eb Cornice, Inc.
+17ef Lenovo
+ 1003 Integrated Smart Card Reader
+ 1004 Integrated Webcam
+ 100a ThinkPad Mini Dock Plus Series 3
+ 3815 ChipsBnk 2GB USB Stick
+ 4802 Lenovo Vc0323+MI1310_SOC Camera
+ 4807 UVC Camera
+ 480c Integrated Webcam
+ 480d Integrated Webcam [R5U877]
+ 480e Integrated Webcam [R5U877]
+ 480f Integrated Webcam [R5U877]
+ 4810 Integrated Webcam [R5U877]
+ 4811 Integrated Webcam [R5U877]
+ 4812 Integrated Webcam [R5U877]
+ 4813 Integrated Webcam [R5U877]
+ 4814 Integrated Webcam [R5U877]
+ 4815 Integrated Webcam [R5U877]
+ 481c Integrated Webcam
+ 6009 ThinkPad Keyboard with TrackPoint
+17f5 K.K. Rocky
+17f6 Unicomp, Inc
+ 0709 Model M Keyboard
+1809 Advantech
+ 4761 USB-4761 Portable Data Acquisition Module
+1822 Twinhan
+ 3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold
+ 3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm
+1831 Gwo Jinn Industries Co., Ltd.
+1832 Huizhou Shenghua Industrial Co., Ltd.
+183d VIVOphone
+ 0010 VoiceKey
+1843 Vaisala
+1849 ASRock Incorporation
+1852 GYROCOM C&C Co., LTD
+ 7922 Audiotrak DR.DAC2 DX
+1854 Memory Devices Ltd.
+185b Compro
+ 3020 K100 Infrared Receiver
+ 3082 K100 Infrared Receiver v2
+ d000 Compro Videomate DVB-U2000 - DVB-T USB cold
+ d001 Compro Videomate DVB-U2000 - DVB-T USB warm
+1861 Tech Technology Industrial Company
+1862 Teridian Semiconductor Corp.
+1870 Nexio Co., Ltd
+ 0001 iNexio Touchscreen controller
+1871 Aveo Technology Corp.
+ 0d01 USB2.0 Camera
+187c Alienware Corporation
+ 0600 Dual Compatible Game Pad
+187f Siano Mobile Silicon
+ 0010 Stallar Board
+ 0100 Stallar Board
+ 0200 Nova A
+ 0201 Nova B
+ 0202 Nice
+ 0300 Vega
+ 0301 VeNice
+1892 Vast Technologies, Inc.
+1894 Topseed
+ 5632 Atek Tote Remote
+ 5641 TSAM-004 Presentation Remote
+1897 Evertop Wire Cable Co.
+18a5 Verbatim, Ltd
+ 0214 Portable Hard Drive
+ 0216 External Hard Drive
+ 0218 External Hard Drive
+18b1 Petalynx
+ 0037 Maxter Remote Control
+18b4 e3C Technologies
+ 1001 DUTV007
+ 1002 EC168 (v5) based USB DVB-T receiver
+ 1689 DUTV009
+ fffa EC168 (v2) based USB DVB-T receiver
+ fffb EC168 (v3) based USB DVB-T receiver
+18b6 Mikkon Technology Limited
+18b7 Zotek Electronic Co., Ltd.
+18c5 AMIT Technology, Inc.
+ 0002 CG-WLUSB2GO
+ 0008 CG-WLUSB2GNR Corega Wireless USB Adapter
+ 0012 CG-WLUSB10 Corega Wireless USB Adapter
+18cd Ecamm
+ cafe Pico iMage
+18d1 Google Inc.
+ 4e11 Nexus One
+ 4e12 Nexus One (debug)
+ 4e13 Nexus One (tether)
+ 4e21 Nexus S
+ 4e22 Nexus S (debug)
+18d5 Starline International Group Limited
+18d9 Kaba
+ 01a0 B-Net 91 07
+18dd Planon System Solutions Inc.
+ 1000 DocuPen RC800
+18e3 Fitipower Integrated Technology Inc
+ 7102 Multi Card Reader (Internal)
+ 9101 All-in-1 Card Reader
+ 9102 Multi Card Reader
+ 9512 Webcam
+18e8 Qcom
+ 6196 RT2573
+ 6229 RT2573
+ 6232 Wireless 802.11g 54Mbps Network Adapter [RTL8187]
+18ea Matrox Graphics, Inc.
+ 0002 DualHead2Go [Analog Edition]
+ 0004 TripleHead2Go [Digital Edition]
+18ec Arkmicro Technologies Inc.
+ 3118 USB to IrDA adapter [ARK3116T]
+ 3188 ARK3188 UVC Webcam
+18fd FineArch Inc.
+1908 GEMBIRD
+ 1320 PhotoFrame PF-15-1
+190d Motorola GSG
+1914 Alco Digital Devices Limited
+1915 Nordic Semiconductor ASA
+ 2233 Linksys WUSB11 v2.8 802.11b Adapter [Atmel AT76C505]
+ 2234 Linksys WUSB54G v1 OEM 802.11g Adapter [Intersil ISL3886]
+ 2235 Linksys WUSB54GP v1 OEM 802.11g Adapter [Intersil ISL3886]
+ 2236 Linksys WUSB11 v3.0 802.11b Adapter [Intersil PRISM 3]
+1926 NextWindow
+ 0003 1900 HID Touchscreen
+ 0006 1950 HID Touchscreen
+ 0064 1950 HID Touchscreen
+ 0065 1950 HID Touchscreen
+ 0066 1950 HID Touchscreen
+ 0067 1950 HID Touchscreen
+ 0068 1950 HID Touchscreen
+ 0069 1950 HID Touchscreen
+ 0071 1950 HID Touchscreen
+ 0072 1950 HID Touchscreen
+ 0073 1950 HID Touchscreen
+ 0074 1950 HID Touchscreen
+ 0075 1950 HID Touchscreen
+ 0076 1950 HID Touchscreen
+ 0077 1950 HID Touchscreen
+ 0078 1950 HID Touchscreen
+ 0079 1950 HID Touchscreen
+ 007a 1950 HID Touchscreen
+ 007e 1950 HID Touchscreen
+ 007f 1950 HID Touchscreen
+ 0080 1950 HID Touchscreen
+ 0081 1950 HID Touchscreen
+ 0082 1950 HID Touchscreen
+ 0083 1950 HID Touchscreen
+ 0084 1950 HID Touchscreen
+ 0085 1950 HID Touchscreen
+ 0086 1950 HID Touchscreen
+ 0087 1950 HID Touchscreen
+192f Avago Technologies, Pte.
+ 0000 Mouse
+1930 Shenzhen Xianhe Technology Co., Ltd.
+1931 Ningbo Broad Telecommunication Co., Ltd.
+1934 Feature Integration Technology Inc. (Fintek)
+ 0602 F71610 or F71612 Consumer Infrared Receiver/Transceiver
+ 0702 Integrated Consumer Infrared Receiver/Transceiver
+ 5168 F71610A or F71612A Consumer Infrared Receiver/Transceiver
+1941 Dream Link
+ 8021 WH1080 Weather Station / USB Missile Launcher
+1943 Sensoray Co., Inc.
+ 2250 Model 2250 MPEG and JPEG Capture Card
+ 2253 Model 2253 Audio/Video Codec Card
+ 2255 Model 2255 4 Channel Capture Card
+ 2257 Model 2257 4 Channel Capture Card
+ a250 Model 2250 MPEG and JPEG Capture Card (cold)
+ a253 Model 2253 Audio/Video Codec Card (cold)
+1949 Lab126
+ 0002 Amazon Kindle
+ 0004 Amazon Kindle 3
+1951 Hyperstone AG
+1953 Ironkey Inc.
+1954 Radiient Technologies
+195d Itron Technology iONE
+ 7002 Libra-Q11 IR remote
+ 7006 Libra-Q26 / 1.0 Remote
+ 7777 Scorpius wireless keyboard
+ 7779 Scorpius-P20MT
+1967 CASIO HITACHI Mobile Communications Co., Ltd.
+196b Wispro Technology Inc.
+1970 Dane-Elec Corp. USA
+1975 Dongguan Guneetal Wire & Cable Co., Ltd.
+1976 Chipsbrand Microelectronics (HK) Co., Ltd.
+1977 T-Logic
+ 0111 TL203 MP3 Player and Voice Recorder
+1989 Nuconn Technology Corp.
+198f Beceem Communications Inc.
+ 0210 BCS200 WiMAX Adapter
+1990 Acron Precision Industrial Co., Ltd.
+1995 Trillium Technology Pty. Ltd.
+ 3202 REC-ADPT-USB (recorder)
+ 3203 REC-A-ADPT-USB (recorder)
+199e The Imaging Source Europe GmbH
+ 8101 DFx 21BU04 Camera
+199f Benica Corporation
+19a8 Biforst Technology Inc.
+19ab Bodelin
+ 1000 ProScope HR
+19af S Life
+ 6611 Celestia VoIP Phone
+19b2 Batronix
+ 0010 BX32 Batupo
+ 0011 BX32P Barlino
+ 0012 BX40 Bagero
+ 0013 BX48 Batego
+19b4 Celestron
+ 0002 SkyScout Personal Planetarium
+ 0101 Handheld Digital Microscope 44302
+19b5 B & W Group
+19b6 Infotech Logistic, LLC
+19b9 Data Robotics
+ 8d20 Drobo Elite
+19ca Mindtribe
+ 0001 Sandio 3D HID Mouse
+19cf Parrot SA
+19d2 ONDA Communication S.p.A.
+ 0002 ET502HS/MT505UP ZTE MF632
+ 0007 ZTE TU25 WiMAX Adapter [Beceem BCS200]
+ 0031 ZTE MF110/MF636
+ 0063 ZTE K3565-Z HSDPA
+ 0064 ZTE MF627 AU
+ 0083 ZTE MF190
+ 0103 ZTE MF112
+ 2000 ZTE MF627/MF628/MF628+/MF636+ HSDPA/HSUPA
+ fff2 Gobi Wireless Modem (QDL mode)
+ fff3 Gobi Wireless Modem
+19e1 WeiDuan Electronic Accessory (S.Z.) Co., Ltd.
+19e8 Industrial Technology Research Institute
+19ef Pak Heng Technology (Shenzhen) Co., Ltd.
+19f7 RODE Microphones
+ 0001 Podcaster
+19fa Gampaq Co.Ltd
+ 0703 Steering Wheel
+19ff Dynex
+ 0102 1.3MP Webcam
+ 0201 Rocketfish Wireless 2.4G Laser Mouse
+1a08 Bellwood International, Inc.
+1a0a USB-IF non-workshop
+ badd USB OTG Compliance test device
+1a12 KES Co., Ltd.
+1a25 Amphenol East Asia Ltd.
+1a2a Seagate Branded Solutions
+1a32 Quanta Microsystems, Inc.
+ 0304 802.11n Wireless LAN Card
+1a36 Biwin Technology Ltd.
+1a40 TERMINUS TECHNOLOGY INC.
+ 0101 USB-2.0 4-Port HUB
+1a41 Action Electronics Co., Ltd.
+1a44 VASCO Data Security International
+ 0001 Digipass 905 SmartCard Reader
+1a4a Silicon Image
+1a4b SafeBoot International B.V.
+1a61 Abbott Diabetes Care
+1a6a Spansion Inc.
+1a6d SamYoung Electronics Co., Ltd
+1a6e Global Unichip Corp.
+1a6f Sagem Orga GmbH
+1a79 Bayer Health Care LLC
+1a7b Lumberg Connect GmbH & Co. KG
+1a7c Evoluent
+ 0068 VerticalMouse 3
+ 0168 VerticalMouse 3 Wireless
+ 0191 VerticalMouse 4
+1a86 QinHeng Electronics
+ 5523 CH341 in serial mode, usb to serial port converter
+ 5584 CH341 in parallel mode, usb to printer port converter
+ 7523 HL-340 USB-Serial adapter
+ 752d CH345 MIDI adapter
+ 7584 CH340S
+ e008 HID-based USB-serial converter, full-speed, similar to HE2325U
+1a89 Dynalith Systems Co., Ltd.
+1a8b SGS Taiwan Ltd.
+1a8d BandRich, Inc.
+ 1002 BandLuxe 3.5G HSDPA Adapter
+ 1009 BandLuxe 3.5G HSPA Adapter
+1a90 Corsair Voyager GT 16GB
+1a98 Leica Camera AG
+1aa4 Data Drive Thru, Inc.
+1aa5 UBeacon Technologies, Inc.
+1aa6 eFortune Technology Corp.
+1acb Salcomp Plc
+1ad1 Desay Wire Co., Ltd.
+1ae4 ic-design Reinhard Gottinger GmbH
+1ae7 X-TENSIONS
+ 0381 VS-DVB-T 380U (af9015 based)
+ 2001 SpeedLink SL-6825
+1aed High Top Precision Electronic Co., Ltd.
+1aef Conntech Electronic (Suzhou) Corporation
+1b04 Meilhaus Electronic GmBH
+ 0630 ME-630
+ 0940 ME-94
+ 0950 ME-95
+ 0960 ME-96
+ 1000 ME-1000
+ 100a ME-1000
+ 100b ME-1000
+ 1400 ME-1400
+ 140a ME-1400A
+ 140b ME-1400B
+ 140c ME-1400C
+ 140d ME-1400D
+ 140e ME-1400E
+ 14ea ME-1400EA
+ 14eb ME-1400EB
+ 1604 ME-1600/4U
+ 1608 ME-1600/8U
+ 160c ME-1600/12U
+ 160f ME-1600/16U
+ 168f ME-1600/16U8I
+ 4610 ME-4610
+ 4650 ME-4650
+ 4660 ME-4660
+ 4661 ME-4660I
+ 4662 ME-4660
+ 4663 ME-4660I
+ 4670 ME-4670
+ 4671 ME-4670I
+ 4672 ME-4670S
+ 4673 ME-4670IS
+ 4680 ME-4680
+ 4681 ME-4680I
+ 4682 ME-4680S
+ 4683 ME-4680IS
+ 6004 ME-6000/4
+ 6008 ME-6000/8
+ 600f ME-6000/16
+ 6014 ME-6000I/4
+ 6018 ME-6000I/8
+ 601f ME-6000I/16
+ 6034 ME-6000ISLE/4
+ 6038 ME-6000ISLE/8
+ 603f ME-6000ISLE/16
+ 6044 ME-6000/4/DIO
+ 6048 ME-6000/8/DIO
+ 604f ME-6000/16/DIO
+ 6054 ME-6000I/4/DIO
+ 6058 ME-6000I/8/DIO
+ 605f ME-6000I/16/DIO
+ 6074 ME-6000ISLE/4/DIO
+ 6078 ME-6000ISLE/8/DIO
+ 607f ME-6000ISLE/16/DIO
+ 6104 ME-6100/4
+ 6108 ME-6100/8
+ 610f ME-6100/16
+ 6114 ME-6100I/4
+ 6118 ME-6100I/8
+ 611f ME-6100I/16
+ 6134 ME-6100ISLE/4
+ 6138 ME-6100ISLE/8
+ 613f ME-6100ISLE/16
+ 6144 ME-6100/4/DIO
+ 6148 ME-6100/8/DIO
+ 614f ME-6100/16/DIO
+ 6154 ME-6100I/4/DIO
+ 6158 ME-6100I/8/DIO
+ 615f ME-6100I/16/DIO
+ 6174 ME-6100ISLE/4/DIO
+ 6178 ME-6100ISLE/8/DIO
+ 617f ME-6100ISLE/16/DIO
+ 6259 ME-6200I/9/DIO
+ 6359 ME-6300I/9/DIO
+ 810a ME-8100A
+ 810b ME-8100B
+ 820a ME-8200A
+ 820b ME-8200B
+1b20 MStar Semiconductor, Inc.
+1b22 WiLinx Corp.
+1b26 Cellex Power Products, Inc.
+1b27 Current Electronics Inc.
+1b28 NAVIsis Inc.
+1b32 Ugobe Life Forms, Inc.
+ 0064 Pleo robotic dinosaur
+1b36 ViXS Systems, Inc.
+1b3b iPassion Technology Inc.
+ 2933 PC Camera/Webcam controller
+ 2935 PC Camera/Webcam controller
+ 2936 PC Camera/Webcam controller
+ 2937 PC Camera/Webcam controller
+ 2938 PC Camera/Webcam controller
+ 2939 PC Camera/Webcam controller
+ 2950 PC Camera/Webcam controller
+ 2951 PC Camera/Webcam controller
+ 2952 PC Camera/Webcam controller
+ 2953 PC Camera/Webcam controller
+ 2955 PC Camera/Webcam controller
+ 2956 PC Camera/Webcam controller
+ 2957 PC Camera/Webcam controller
+ 2958 PC Camera/Webcam controller
+ 2959 PC Camera/Webcam controller
+ 2960 PC Camera/Webcam controller
+ 2961 PC Camera/Webcam controller
+ 2962 PC Camera/Webcam controller
+ 2963 PC Camera/Webcam controller
+ 2965 PC Camera/Webcam controller
+ 2966 PC Camera/Webcam controller
+ 2967 PC Camera/Webcam controller
+ 2968 PC Camera/Webcam controller
+ 2969 PC Camera/Webcam controller
+1b3f Generalplus Technology Inc.
+1b47 Energizer Holdings, Inc.
+ 0001 CHUSB Duo Charger (NiMH AA/AAA USB smart charger)
+1b48 Plastron Precision Co., Ltd.
+1b59 K.S. Terminals Inc.
+1b5a Chao Zhou Kai Yuan Electric Co., Ltd.
+1b65 The Hong Kong Standards and Testing Centre Ltd.
+1b72 ATERGI TECHNOLOGY CO., LTD.
+1b73 Fresco Logic
+ 1000 xHC1 Controller
+1b75 Ovislink Corp.
+ 3072 AirLive WN-360USB adapter
+1b76 Legend Silicon Corp.
+1b80 Afatech
+ c810 MC810 [af9015]
+ d393 DVB-T receiver [RTL2832U]
+ d396 UB396-T [RTL2832U]
+ d397 DVB-T receiver [RTL2832U]
+ d398 DVB-T receiver [RTL2832U]
+ d700 FM Radio SnapMusic Mobile 700 (FM700)
+ e383 DVB-T UB383-T [af9015]
+ e385 DVB-T UB385-T [af9015]
+ e386 DVB-T UB385-T [af9015]
+ e39a DVB-T395U [af9015]
+ e39b DVB-T395U [af9015]
+ e409 IT9137FN Dual DVB-T [KWorld UB499-2T]
+1b86 Dongguan Guanshang Electronics Co., Ltd.
+1b88 ShenMing Electron (Dong Guan) Co., Ltd.
+1b8c Altium Limited
+1b8d e-MOVE Technology Co., Ltd.
+1b8e Amlogic, Inc.
+1b8f MA LABS, Inc.
+1b96 N-Trig
+ 0001 Duosense Transparent Electromagnetic Digitizer
+1b98 YMax Communications Corp.
+1b99 Shenzhen Yuanchuan Electronic
+1ba1 JINQ CHERN ENTERPRISE CO., LTD.
+1ba2 Lite Metals & Plastic (Shenzhen) Co., Ltd.
+1ba4 Ember Corporation
+ 0001 InSight USB Link
+1ba6 Abilis Systems
+1ba8 China Telecommunication Technology Labs
+1bad Harmonix Music
+ 0002 Guitar for Xbox 360
+ 0003 Drum Kit for Xbox 360
+1bae Vuzix Corporation
+ 0002 VR920 Immersive Eyewear
+1bbb T & A Mobile Phones
+1bc4 Ford Motor Co.
+1bc5 AVIXE Technology (China) Ltd.
+1bce Contac Cable Industrial Limited
+1bcf Sunplus Innovation Technology Inc.
+ 0007 Optical Mouse
+ 05c5 SPRF2413A [2.4GHz Wireless Keyboard/Mouse Receiver]
+ 05cf Micro keyboard & mouse receiver
+1bd0 Hangzhou Riyue Electronic Co., Ltd.
+1bde P-TWO INDUSTRIES, INC.
+1bef Shenzhen Tongyuan Network-Communication Cables Co., Ltd
+1bf0 RealVision Inc.
+1bf5 Extranet Systems Inc.
+1bf6 Orient Semiconductor Electronics, Ltd.
+1bfd TouchPack
+ 1268 Touch Screen
+ 1368 Touch Screen
+ 1568 Capacitive Touch Screen
+ 1668 IR Touch Screen
+ 1688 Resistive Touch Screen
+ 2968 Touch Screen
+ 5968 Touch Screen
+ 6968 Touch Screen
+1c02 Kreton Corporation
+1c04 QNAP System Inc.
+1c0d Relm Wireless
+1c10 Lanterra Industrial Co., Ltd.
+1c13 ALECTRONIC LIMITED
+1c1a Datel Electronics Ltd.
+1c1b Volkswagen of America, Inc.
+1c1f Goldvish S.A.
+1c20 Fuji Electric Device Technology Co., Ltd.
+1c21 ADDMM LLC
+1c22 ZHONGSHAN CHIANG YU ELECTRIC CO., LTD.
+1c26 Shanghai Haiying Electronics Co., Ltd.
+1c27 HuiYang D & S Cable Co., Ltd.
+1c31 LS Cable Ltd.
+1c34 SpringCard
+ 7241 Prox'N'Roll RFID Scanner
+1c37 Authorizer Technologies, Inc.
+1c3d NONIN MEDICAL INC.
+1c3e Wep Peripherals
+1c49 Cherng Weei Technology Corp.
+1c4f SiGma Micro
+ 0003 HID controller
+ 3000 Micro USB Web Camera
+1c6b Philips & Lite-ON Digital Solutions Corporation
+1c6c Skydigital Inc.
+1c73 AMT
+ 861f Anysee E30 USB 2.0 DVB-T Receiver
+1c77 Kaetat Industrial Co., Ltd.
+1c78 Datascope Corp.
+1c79 Unigen Corporation
+1c7a LighTuning Technology Inc.
+1c7b LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD.
+1c87 2N TELEKOMUNIKACE a.s.
+1c88 Somagic, Inc.
+1c89 HONGKONG WEIDIDA ELECTRON LIMITED
+1c8e ASTRON INTERNATIONAL CORP.
+1c98 ALPINE ELECTRONICS, INC.
+1ca0 ACCARIO Inc.
+1cac Kinstone
+ a332 C8 Webcam
+ b288 C18 Webcam
+1cb3 Aces Electronic Co., Ltd.
+1cb4 OPEX CORPORATION
+1cbe Luminary Micro Inc.
+1cbf FORTAT SKYMARK INDUSTRIAL COMPANY
+1cc0 PlantSense
+1cca NextWave Broadband Inc.
+1ccd Bodatong Technology (Shenzhen) Co., Ltd.
+1cd4 adp corporation
+1cd5 Firecomms Ltd.
+1cd6 Antonio Precise Products Manufactory Ltd.
+1cde Telecommunications Technology Association (TTA)
+1cdf WonTen Technology Co., Ltd.
+1ce0 EDIMAX TECHNOLOGY CO., LTD.
+1ce1 Amphenol KAE
+1cfc ANDES TECHNOLOGY CORPORATION
+1cfd Flextronics Digital Design Japan, LTD.
+1d07 Solid-Motion
+1d08 NINGBO HENTEK DRAGON ELECTRONICS CO., LTD.
+1d09 TechFaith Wireless Technology Limited
+ 1026 HSUPA Modem FLYING-LARK46-VER0.07 [Flying Angel]
+1d0a Johnson Controls, Inc. The Automotive Business Unit
+1d0b HAN HUA CABLE & WIRE TECHNOLOGY (J.X.) CO., LTD.
+1d14 ALPHA-SAT TECHNOLOGY LIMITED
+1d17 C-Thru Music Ltd.
+ 0001 AXiS-49 Harmonic Table MIDI Keyboard
+1d19 Dexatek Technology Ltd.
+ 1101 DK DVB-T Dongle
+ 1102 DK mini DVB-T Dongle
+ 1103 DK 5217 DVB-T Dongle
+ 6105 Video grabber
+ 8202 DK DVBC/T DONGLE
+1d1f Diostech Co., Ltd.
+1d20 SAMTACK INC.
+1d4d PEGATRON CORPORATION
+ 0002 Ralink RT2770/2720 802.11b/g/n Wireless LAN Mini-USB Device
+ 000c Ralink RT3070 802.11b/g/n Wireless Lan USB Device
+ 000e Ralink RT3070 802.11b/g/n Wireless Lan USB Device
+1d50 OpenMoko, Inc.
+ 5119 GTA01/GTA02 U-Boot Bootloader
+1d5b Smartronix, Inc.
+1d6b Linux Foundation
+ 0001 1.1 root hub
+ 0002 2.0 root hub
+ 0003 3.0 root hub
+ 0100 PTP Gadget
+ 0101 Audio Gadget
+ 0102 EEM Gadget
+ 0103 NCM (Ethernet) Gadget
+ 0104 Multifunction Composite Gadget
+ 0105 FunctionFS Gadget
+ 0200 Qemu Audio Device
+1e0e Qualcomm / Option
+1e10 Point Grey Research, Inc.
+ 2004 Sony 1.3MP 1/3" ICX445 IIDC video camera [Chameleon]
+1e1d Lumension Security
+ 0165 Secure Pen drive
+1e1f INVIA
+1e29 Festo AG & Co. KG
+ 0101 CPX Adapter
+ 0102 CPX Adapter >=HW10.09 [CP2102]
+ 0401 iL3-TP [AT90USB646]
+ 0402 FTDI232 [EasyPort]
+ 0403 FTDI232 [EasyPort Mini]
+ 0404 FTDI232 [Netzteil-GL]
+ 0405 FTDI232 [MotorPrüfstand]
+ 0406 STM32F103 [EasyKit]
+ 0407 LPC2378 [Robotino]
+ 0408 LPC2378 [Robotino-Arm]
+ 0409 LPC2378 [Robotino-Arm Bootloader]
+ 040a LPC2378 [Robotino Bootloader]
+ 0501 CP2102 [CMSP]
+ 0601 CMMP-AS
+1e41 Cleverscope
+ 0001 CS328A PC Oscilloscope
+1e54 TypeMatrix
+ 2030 2030 USB Keyboard
+1e68 TrekStor GmbH & Co. KG
+ 001b DataStation maxi g.u
+1e71 NZXT
+ 0001 Avatar Optical Mouse
+1e74 Coby Electronics Corporation
+ 6511 MP705-8G MP3 player
+ 6512 MP705-4G
+1e7d ROCCAT
+ 2c24 Pyra Mouse (wired)
+ 2ced Kone Mouse
+ 2d51 Kone+ Mouse
+ 30d4 Arvo Keyboard
+1ebb NuCORE Technology, Inc.
+1eda AirTies Wireless Networks
+ 2310 802.11n USB Wireless LAN Card
+1ef6 EADS Deutschland GmbH
+1f28 Cal-Comp
+ 0020 CDMA USB Modem A600
+ 0021 CD INSTALLER USB Device
+1f4d G-Tek Electronics Group
+ b803 Lifeview LV5TDLX DVB-T [RTL2832U]
+1f82 TANDBERG
+ 0001 PrecisionHD Camera
+1f84 Alere, Inc.
+1f87 Stantum
+ 0002 Multi-touch HID Controller
+1fbd Delphin Technology AG
+ 0001 Expert Key - Data aquisition system
+1fc9 NXP Semiconductors
+1fe7 Vertex Wireless Co., Ltd.
+ 1000 VW100 series CDMA EV-DO Rev.A modem
+2001 D-Link Corp.
+ 0001 DWL-120 WIRELESS ADAPTER
+ 0201 DHN-120 10Mb Home Phoneline Adapter
+ 1a00 10/100 Ethernet
+ 200c 10/100 Ethernet
+ 3200 DWL-120 802.11b Wireless Adapter(rev.E1) [Atmel at76c503a]
+ 3301 DWA-130 802.11n Wireless N Adapter(rev.C1) [Realtek RTL8192U]
+ 3500 Elitegroup Computer Systems WLAN card WL-162
+ 3700 DWL-122 802.11b [Intersil Prism 3]
+ 3701 DWL-G120 Spinnaker 802.11g [Intersil ISL3886]
+ 3702 DWL-120 802.11b Wireless Adapter(rev.F) [Intersil ISL3871]
+ 3703 AirPlus G DWL-G122 Wireless Adapter [Intersil ISL3886]
+ 3704 AirPlus G DWL-G122 Wireless Adapter(rev.A2) [Intersil ISL3887]
+ 3705 AirPlus G DWL-G120 Wireless Adapter(rev.C) [Intersil ISL3887]
+ 3761 IEEE 802.11g USB2.0 Wireless Network Adapter-PN
+ 3a00 DWL-AG132 [Atheros AR5523]
+ 3a01 DWL-AG132 (no firmware) [Atheros AR5523]
+ 3a02 DWL-G132 [Atheros AR5523]
+ 3a03 DWL-G132 (no firmware) [Atheros AR5523]
+ 3a04 DWL-AG122 [Atheros AR5523]
+ 3a05 DWL-AG122 (no firmware) [Atheros AR5523]
+ 3a80 AirPlus Xtreme G DWL-G132 Wireless Adapter
+ 3a81 predator Bootloader Download
+ 3a82 AirPremier AG DWL-AG132 Wireless Adapter
+ 3a83 predator Bootloader Download
+ 3b00 AirPlus DWL-120+ Wireless Adapter [Texas Instruments ACX100USB]
+ 3b01 WLAN Boot Device
+ 3c00 AirPlus G DWL-G122 Wireless Adapter(rev.B1) [Ralink RT2500USB]
+ 3c01 AirPlus AG DWL-AG122 Wireless Adapter
+ 3c02 AirPlus G DWL-G122 Wireless Adapter
+ 3c05 DUB-E100 Fast Ethernet [asix]
+ 4000 DSB-650C Ethernet [klsi]
+ 4001 DSB-650TX Ethernet [pegasus]
+ 4002 DSB-650TX Ethernet [pegasus]
+ 4003 DSB-650TX-PNA Ethernet [pegasus]
+ 400b 10/100 Ethernet
+ 4102 10/100 Ethernet
+ 5100 DSL-200 ADSL ATM Modem
+ 5102 DSL-200 ADSL Loader
+ 5b00 Remote NDIS Network Device
+ 9414 Cable Modem
+ 9b00 Broadband Cable Modem Remote NDIS Device
+ abc1 DSB-650 Ethernet [pegasus]
+ f013 DLink 7 port USB2.0 Hub
+ f103 DUB-H7 7-port USB 2.0 hub
+ f10d Accent Communications Modem
+ f110 DUB-AV300 A/V Capture
+ f111 DBT-122 Bluetooth adapter
+ f112 DUB-T210 Audio Device
+ f116 Formosa 2
+ f117 Formosa 3
+ f118 Formosa 4
+2013 Unknown (Pinnacle?)
+ 0245 PCTV 73ESE
+ 0246 PCTV 74E
+ 0248 PCTV 282E
+2019 PLANEX
+ 3220 GW-US11S WLAN [Atmel AT76C503A]
+ 5303 GW-US54GXS 802.11bg
+ 5304 GWUS300 802.11n
+ ab01 GW-US54HP
+ ab24 GW-US300MiniS
+ ab25 GW-USMini2N 802.11n Wireless Adapter [Ralink RT2870]
+ ab28 GW-USNano
+ ab29 GW-USMicro300
+ ab50 GW-US54Mini2
+ c002 GW-US54SG
+ c007 GW-US54GZL
+ ed02 GW-USMM
+ ed06 802.11n Wireless LAN Adapter
+ ed10 GW-US300Mini2
+ ed14 GW-USMicroN
+ ed17 GW-USValue-EZ
+2040 Hauppauge
+ 0c80 Windham
+ 0c90 Windham
+ 1700 CataMount
+ 1800 Okemo A
+ 1801 Okemo B
+ 2000 Tiger Minicard
+ 2009 Tiger Minicard R2
+ 200a Tiger Minicard
+ 2010 Tiger Minicard
+ 2011 WinTV MiniCard [Dell Digital TV Receiver]
+ 2019 Tiger Minicard
+ 2400 WinTV PVR USB2 (Model 24019)
+ 4700 WinTV Nova-S-USB2
+ 4902 HD PVR
+ 4982 HD PVR
+ 5500 Windham
+ 5510 Windham
+ 5520 Windham
+ 5530 Windham
+ 5580 Windham
+ 5590 Windham
+ 6500 WinTV HVR-900
+ 6502 WinTV HVR-900
+ 6503 WinTV HVR-930
+ 6513 WinTV HVR-980
+ 7050 Nova-T Stick
+ 7060 Nova-T Stick 2
+ 7070 Nova-T Stick 3
+ 7240 WinTV HVR-850
+ 8400 WinTV Nova-T-500
+ 9300 WinTV NOVA-T USB2 (cold)
+ 9301 WinTV NOVA-T USB2 (warm)
+ 9941 WinTV Nova-T-500
+ 9950 WinTV Nova-T-500
+ b910 Windham
+ b980 Windham
+ b990 Windham
+ c000 Windham
+ c010 Windham
+2047 Texas Instruments
+ 0200 MSP430 USB HID Bootstrap Loader
+2080 Barnes & Noble
+ 0001 nook
+ 0002 NOOKcolor
+2087 Cando
+ 0a01 Multi Touch Panel
+ 0a02 Multi Touch Panel
+ 0b03 Multi Touch Panel
+20a0 Clay Logic
+ 414a MDE SPI Interface
+20b1 XMOS Ltd
+ 10ad XUSB Loader
+ f7d1 XTAG2 - JTAG Adapter
+20b3 Hanvon
+ 0a18 10.1 Touch screen overlay
+20b7 Qi Hardware
+ 0713 Milkymist JTAG/serial
+ 1540 ben-wpan, AT86RF230-based
+ 1db5 IDBG in DFU mode
+ 1db6 IDBG in normal mode
+ c25b C2 Dongle
+ cb72 ben-wpan, cntr
+20df Simtec Electronics
+ 0001 Entropy Key [UDEKEY01]
+2101 ActionStar
+ 0201 SIIG 4-to-2 Printer Switch
+2162 Creative (?)
+ 2031 Network Blaster Wireless Adapter
+ 500c DE5771 Modem Blaster
+ 8001 Broadxent BritePort DSL Bridge 8010U
+2184 GW Instek
+ 0005 GDS-3000 Oscilloscope
+ 0006 GDS-3000 Oscilloscope
+ 0011 AFG Function Generator (CDC)
+21a1 Emotiv Systems Pty. Ltd.
+ 0001 EPOC Consumer Headset Wireless Dongle
+21d6 Agecodagis SARL
+ 0002 Seismic recorder [Tellus]
+2222 MacAlly
+ 0004 iWebKey Keyboard
+ 2520 Mini Tablet
+ 4050 AirStick joystick
+2227 SAMWOO Enterprise
+ 3105 SKYDATA SKD-U100
+2233 RadioShack Corporation
+ 6323 USB Electronic Scale
+2237 Kobo Inc.
+ 4161 eReader White
+22a6 Pie Digital, Inc.
+ ffff PieKey "beta" 4GB model 4E4F41482E4F5247 (SM3251Q BB)
+22b8 Motorola PCS
+ 0001 Wally 2.2 chipset
+ 0002 Wally 2.4 chipset
+ 0005 V.60c/V.60i GSM Phone
+ 0830 2386C-HT820
+ 0833 2386C-HT820 [Flash Mode]
+ 0850 Bluetooth Device
+ 1001 Patriot 1.0 (GSM) chipset
+ 1002 Patriot 2.0 chipset
+ 1005 T280e GSM/GPRS Phone
+ 1101 Patriot 1.0 (TDMA) chipset
+ 1801 Rainbow chipset flash
+ 2035 Bluetooth Device
+ 2805 GSM Modem
+ 2821 T720 GSM Phone
+ 2822 V.120e GSM Phone
+ 2823 Flash Interface
+ 2a01 MSM6050 chipset
+ 2a02 CDMA modem
+ 2a03 MSM6050 chipset flash
+ 2a21 V710 GSM Phone (P2K)
+ 2a22 V710 GSM Phone (AT)
+ 2a23 MSM6100 chipset flash
+ 2a41 MSM6300 chipset
+ 2a42 Usb Modem
+ 2a43 MSM6300 chipset flash
+ 2a61 E815 GSM Phone (P2K)
+ 2a62 E815 GSM Phone (AT)
+ 2a63 MSM6500 chipset flash
+ 2a81 MSM6025 chipset
+ 2a83 MSM6025 chipset flash
+ 2ac1 MSM6100 chipset
+ 2ac3 MSM6100 chipset flash
+ 2d78 XT300[SPICE]
+ 3001 A835/E1000 GSM Phone (P2K)
+ 3002 A835/E1000 GSM Phone (AT)
+ 3801 C350L/C450 (P2K)
+ 3802 C330/C350L/C450/EZX GSM Phone (AT)
+ 3803 Neptune LT chipset flash
+ 4001 OMAP 1.0 chipset
+ 4002 A920/A925 UMTS Phone
+ 4003 OMAP 1.0 chipset flash
+ 4008 OMAP 1.0 chipset RDL
+ 41d6 Droid X (Windows media mode)
+ 41d9 Droid/Milestone
+ 41db Droid/Milestone (Debug mode)
+ 41de Droid X (PC mode)
+ 4204 MPx200 Smartphone
+ 4214 MPc GSM
+ 4224 MPx220 Smartphone
+ 4234 MPc CDMA
+ 4244 MPx100 Smartphone
+ 4285 Droid X (Mass storage)
+ 4801 Neptune LTS chipset
+ 4803 Neptune LTS chipset flash
+ 4810 Triplet GSM Phone (storage)
+ 4901 Triplet GSM Phone (P2K)
+ 4902 Triplet GSM Phone (AT)
+ 4903 Neptune LTE chipset flash
+ 4a01 Neptune LTX chipset
+ 4a03 Neptune LTX chipset flash
+ 4a32 L6-imode Phone
+ 5801 Neptune ULS chipset
+ 5803 Neptune ULS chipset flash
+ 5901 Neptune VLT chipset
+ 5903 Neptune VLT chipset flash
+ 6001 Dalhart EZX
+ 6003 Dalhart flash
+ 6004 EZX GSM Phone (CDC Net)
+ 6006 MOTOROKR E6
+ 6008 Dalhart RDL
+ 6009 EZX GSM Phone (P2K)
+ 600a Dalhart EZX config 17
+ 600b Dalhart EZX config 18
+ 600c EZX GSM Phone (USBLAN)
+ 6021 JUIX chipset
+ 6023 JUIX chipset flash
+ 6026 Flash RAM Downloader/miniOS
+ 6027 USBLAN
+ 604c EZX GSM Phone (Storage)
+ 6101 Talon integrated chipset
+ 6401 Argon chipset
+ 6403 Argon chipset flash
+ 6415 ROKR Z6 (MTP mode)
+ 6604 Washington CDMA Phone
+ 6631 CDC Modem
+ 7001 Q Smartphone
+ fe01 StarTAC III MS900
+22b9 eTurboTouch Technology, Inc.
+ 0006 Touch Screen
+22ba Technology Innovation Holdings, Ltd
+2304 Pinnacle Systems, Inc.
+ 0109 Studio PCTV USB (SECAM)
+ 0110 Studio PCTV USB (PAL)
+ 0111 Miro PCTV USB
+ 0112 Studio PCTV USB (NTSC) with FM radio
+ 0201 Systems MovieBox Device
+ 0204 MovieBox USB_B
+ 0205 DVC 150B
+ 0206 Systems MovieBox Deluxe Device
+ 0207 Dazzle DVC90 Video Device
+ 0208 Studio PCTV USB2
+ 020e PCTV 200e
+ 020f PCTV 400e BDA Device
+ 0210 Studio PCTV USB (PAL) with FM radio
+ 0212 Studio PCTV USB (NTSC)
+ 0213 500-USB Device
+ 0214 Studio PCTV USB (PAL) with FM radio
+ 0216 PCTV 60e
+ 0219 PCTV 260e
+ 021a Dazzle DVC100 Audio Device
+ 021b Dazzle DVC130/DVC170
+ 021d Dazzle DVC130
+ 021e Dazzle DVC170
+ 021f PCTV Sat HDTV Pro BDA Device
+ 0222 PCTV Sat Pro BDA Device
+ 0223 DazzleTV Sat BDA Device
+ 0225 Remote Kit Infrared Transceiver
+ 0226 PCTV 330e
+ 0227 PCTV for Mac, HD Stick
+ 0228 PCTV DVB-T Flash Stick
+ 0229 PCTV Dual DVB-T 2001e
+ 022a PCTV 160e
+ 022b PCTV 71e [Afatech AF9015]
+ 0232 PCTV 170e
+ 0236 PCTV 72e [DiBcom DiB7000PC]
+ 0237 PCTV 73e [DiBcom DiB7000PC]
+ 023a PCTV 801e
+ 023b PCTV 801e SE
+ 023d PCTV 340e
+ 023e PCTV 340e SE
+ 0300 Studio Linx Video input cable (NTSC)
+ 0301 Studio Linx Video input cable (PAL)
+ 0302 Dazzle DVC120
+ 0419 PCTV Bungee USB (PAL) with FM radio
+ 061d PCTV Deluxe (NTSC) Device
+ 061e PCTV Deluxe (PAL) Device
+2318 Shining Technologies, Inc. [hex]
+ 0011 CitiDISK Jr. IDE Enclosure
+2373 Pumatronix Ltda
+ 0001 5 MegaPixel Digital Still Camera [DSC5M]
+2375 Digit@lway, Inc.
+ 0001 Digital Audio Player
+2406 SANHO Digital Electronics Co., Ltd.
+ 6688 PD7X Portable Storage
+2478 Tripp-Lite
+ 2008 U209-000-R Serial Port
+2632 TwinMOS
+ 3209 7-in-1 Card Reader
+2650 Electronics For Imaging, Inc. [hex]
+2730 Citizen
+ 200f CT-S310 Label printer
+2735 DigitalWay
+ 0003 MPIO HS100
+ 1001 MPIO FY200
+ 1002 MPIO FL100
+ 1003 MPIO FD100
+ 1004 MPIO HD200
+ 1005 MPIO HD300
+ 1006 MPIO FG100
+ 1007 MPIO FG130
+ 1008 MPIO FY300
+ 1009 MPIO FY400
+ 100a MPIO FL300
+ 100b MPIO HS200
+ 100c MPIO FL350
+ 100d MPIO FY500
+ 100e MPIO FY500
+ 100f MPIO FY600
+ 1012 MPIO FL400
+ 1013 MPIO HD400
+ 1014 MPIO HD400
+ 1016 MPIO FY700
+ 1017 MPIO FY700
+ 1018 MPIO FY800
+ 1019 MPIO FY800
+ 101a MPIO FY900
+ 101b MPIO FY900
+ 102b MPIO FL500
+ 102c MPIO FL500
+ 103f MPIO FY570
+ 1040 MPIO FY570
+ 1041 MPIO FY670
+ 1042 MPIO FY670
+ 1043 HCT HMD-180A
+ 1044 HCT HMD-180A
+2770 NHJ, Ltd
+ 0a01 ScanJet 4600 series
+ 905c Che-Ez Snap SNAP-U/Digigr8/Soundstar TDC-35
+ 9060 A130
+ 9120 Che-ez! Snap / iClick Tiny VGA Digital Camera
+ 9130 TCG 501
+ 913c Argus DC-1730
+ 9150 Mini Cam
+ 9153 iClick 5X
+ 915d Cyberpix S-210S / Little Tikes My Real Digital Camera
+ 930b CCD Webcam(PC370R)
+ 930c CCD Webcam(PC370R)
+2821 ASUSTek Computer Inc.
+ 0161 WL-161 802.11b Wireless Adapter [SiS 162U]
+ 160f WL-160g 802.11g Wireless Adapter [Envara WiND512]
+ 3300 WL-140 / Hawking HWU36D 802.11b Wireless Adapter [Intersil PRISM 3]
+2899 Toptronic Industrial Co., Ltd
+ 012c Camera Device
+2c02 Planex Communications
+ 14ea GW-US11H WLAN
+2c1a Dolphin Peripherals
+ 0000 Wireless Optical Mouse
+2fb2 Fujitsu, Ltd
+3125 Eagletron
+ 0001 TrackerPod Camera Stand
+3176 Whanam Electronics Co., Ltd
+3275 VidzMedia Pte Ltd
+ 4fb1 MonsterTV P2H
+3334 AEI
+ 1701 Fast Ethernet
+3340 Yakumo
+ 043a Mio A701 DigiWalker PPCPhone
+ 0e3a Pocket PC 300 GPS SL / Typhoon MyGuide 3500
+ a0a3 deltaX 5 BT (D) PDA
+3504 Micro Star
+ f110 Security Key
+3538 Power Quotient International Co., Ltd
+ 0001 Travel Flash
+ 0015 Mass Storge Device
+ 0022 Hi-Speed Mass Storage Device
+ 0042 Cool Drive U339 Flash Disk
+ 0054 Flash Drive (2GB)
+3579 DIVA
+ 6901 Media Reader
+3636 InVibro
+3838 WEM
+ 0001 5-in-1 Card Reader
+3923 National Instruments Corp.
+ 12c0 DAQPad-6020E
+ 12d0 DAQPad-6507
+ 12e0 NI 4350
+ 12f0 NI 5102
+ 1750 DAQPad-6508
+ 17b0 USB-ISA-Bridge
+ 1820 DAQPad-6020E (68 pin I/O)
+ 1830 DAQPad-6020E (BNC)
+ 1f00 DAQPad-6024E
+ 1f10 DAQPad-6024E
+ 1f20 DAQPad-6025E
+ 1f30 DAQPad-6025E
+ 1f40 DAQPad-6036E
+ 1f50 DAQPad-6036E
+ 2f80 DAQPad-6052E
+ 2f90 DAQPad-6052E
+ 702b GPIB-USB-B
+ 703c USB-485 RS485 Cable
+ 709b GPIB-USB-HS
+ 7254 NI MIO (data acquisition card) firmware updater
+ 729e USB-6251 (OEM) data acquisition card
+40bb I-O Data
+ 0a09 USB2.0-SCSI Bridge USB2-SC
+4101 i-rocks
+ 1301 IR-2510 usb phone
+4102 iRiver, Ltd.
+ 1001 iFP-100 series mp3 player
+ 1003 iFP-300 series mp3 player
+ 1005 iFP-500 series mp3 player
+ 1007 iFP-700 series mp3/ogg vorbis player
+ 1008 iFP-800 series mp3/ogg vorbis player
+ 100a iFP-1000 series mp3/ogg vorbis player
+ 1014 T20 series mp3/ogg vorbis player (ums firmware)
+ 1019 T30
+ 1034 T60
+ 1040 M1Player
+ 1041 E100 (ums)
+ 1101 iFP-100 series mp3 player (ums firmware)
+ 1103 iFP-300 series mp3 player (ums firmware)
+ 1105 iFP-500 series mp3 player (ums firmware)
+ 1113 T10 (alternate)
+ 1117 T10
+ 1119 T30 series mp3/ogg/wma player
+ 1141 E100 (mtp)
+ 2002 H10 6GB
+ 2101 H10 20GB (mtp)
+ 2102 H10 5GB (mtp)
+ 2105 H10 5/6GB (mtp)
+413c Dell Computer Corp.
+ 0000 DRAC 5 Virtual Keyboard and Mouse
+ 0001 DRAC 5 Virtual Media
+ 0058 Port Replicator
+ 1001 Keyboard Hub
+ 1002 Keyboard Hub
+ 1003 Keyboard Hub
+ 1005 Multimedia Pro Keyboard Hub
+ 2001 Keyboard HID Support
+ 2002 SK-8125 Keyboard
+ 2003 Keyboard
+ 2005 RT7D50 Keyboard
+ 2010 Keyboard
+ 2011 Multimedia Pro Keyboard
+ 2100 SK-3106 Keyboard
+ 2101 SmartCard Reader Keyboard
+ 2105 Model L100 Keyboard
+ 2106 Dell QuietKey Keyboard
+ 2500 DRAC4 Remote Access Card
+ 2513 internal USB Hub of E-Port Replicator
+ 3010 Optical Wheel Mouse
+ 3012 Optical Wheel Mouse
+ 3016 Optical 5-Button Wheel Mouse
+ 3200 Mouse
+ 4001 Axim X5
+ 4002 Axim X3
+ 4003 Axim X30
+ 4004 Axim Sync
+ 4005 Axim Sync
+ 4006 Axim Sync
+ 4007 Axim Sync
+ 4008 Axim Sync
+ 4009 Axim Sync
+ 4011 Axim X51v
+ 5103 AIO Printer A940
+ 5105 AIO Printer A920
+ 5107 AIO Printer A960
+ 5109 Photo AIO Printer 922
+ 5110 Photo AIO Printer 962
+ 5111 Photo AIO Printer 942
+ 5112 Photo AIO Printer 924
+ 5113 Photo AIO Printer 944
+ 5114 Photo AIO Printer 964
+ 5115 Photo AIO Printer 926
+ 5116 AIO Printer 946
+ 5117 Photo AIO Printer 966
+ 5118 AIO 810
+ 5124 Laser MFP 1815
+ 5128 Photo AIO 928
+ 5200 Laser Printer
+ 5202 Printing Support
+ 5203 Printing Support
+ 5210 Printing Support
+ 5211 1110 Laser Printer
+ 5220 Laser MFP 1600n
+ 5225 Printing Support
+ 5226 Printing Support
+ 5300 Laser Printer
+ 5400 Laser Printer
+ 5401 Laser Printer
+ 5513 WLA3310 Wireless Adapter [Intersil ISL3887]
+ 5601 Laser Printer 3100cn
+ 5602 Laser Printer 3000cn
+ 5631 Laser Printer 5100cn
+ 5905 Printing Support
+ 8000 BC02 Bluetooth Adapter
+ 8010 TrueMobile Bluetooth Module in
+ 8100 TrueMobile 1180 802.11b Adapter [Intersil PRISM 3]
+ 8102 TrueMobile 1300 802.11g Wireless Adapter [Intersil ISL3880]
+ 8103 Wireless 350 Bluetooth
+ 8104 Wireless 1450 Dual-band (802.11a/b/g) Adapter [Intersil ISL3887]
+ 8105 U2 in HID - Driver
+ 8106 Wireless 350 Bluetooth Internal Card in
+ 8110 Wireless 3xx Bluetooth Internal Card
+ 8111 Wireless 3xx Bluetooth Internal Card in
+ 8114 Wireless 5700 Mobile Broadband (CDMA EV-DO) Minicard Modem
+ 8115 Wireless 5500 Mobile Broadband (3G HSDPA) Minicard Modem
+ 8116 Wireless 5505 Mobile Broadband (3G HSDPA) Minicard Modem
+ 8117 Wireless 5700 Mobile Broadband (CDMA EV-DO) Expresscard Modem
+ 8118 Wireless 5510 Mobile Broadband (3G HSDPA) Expresscard Status Port
+ 8120 Bluetooth adapter
+ 8121 Eastfold in HID
+ 8122 Eastfold in DFU
+ 8123 eHome Infrared Receiver
+ 8124 eHome Infrared Receiver
+ 8126 Wireless 355 Bluetooth
+ 8127 Wireless 355 Module with Bluetooth 2.0 + EDR Technology.
+ 8128 Wireless 5700-Sprint Mobile Broadband (CDMA EV-DO) Mini-Card Status Port
+ 8129 Wireless 5700-Telus Mobile Broadband (CDMA EV-DO) Mini-Card Status Port
+ 8131 Wireless 360 Bluetooth 2.0 + EDR module.
+ 8133 Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port
+ 8134 Wireless 5720 Sprint Mobile Broadband (EVDO Rev-A) Minicard Status Port
+ 8135 Wireless 5720 TELUS Mobile Broadband (EVDO Rev-A) Minicard Diagnostics Port
+ 8136 Wireless 5520 Cingular Mobile Broadband (3G HSDPA) Minicard Diagnostics Port
+ 8137 Wireless 5520 Voda L Mobile Broadband (3G HSDPA) Minicard Status Port
+ 8138 Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard EAP-SIM Port
+ 8140 Wireless 360 Bluetooth
+ 8142 Mobile 360 in DFU
+ 8147 F3507g Mobile Broadband Module
+ 8156 Wireless 370 Bluetooth Mini-card
+ 8157 Integrated Keyboard
+ 8158 Integrated Touchpad / Trackstick
+ 8160 Wireless 365 Bluetooth
+ 8161 Integrated Keyboard
+ 8162 Integrated Touchpad [Synaptics]
+ 8171 Gobi Wireless Modem (QDL mode)
+ 8172 Gobi Wireless Modem
+ 8183 F3607gw Mobile Broadband Module
+ 8184 F3607gw v2 Mobile Broadband Module
+ 8185 Gobi 2000 Wireless Modem (QDL mode)
+ 8186 Gobi 2000 Wireless Modem
+ 8187 DW375 Bluetooth Module
+ 8501 Bluetooth Adapter
+ 9500 USB CP210x UART Bridge Controller [DW700]
+ a001 Hub
+ a005 Internal 2.0 Hub
+ a700 Hub (in 1905FP LCD Monitor)
+4146 USBest Technology
+ 9281 Iomega Micro Mini 128MB Flash Drive
+ ba01 Intuix Flash Drive
+4242 USB Design by Example
+ 4201 Buttons and Lights HID device
+ 4220 Echo 1 Camera
+4317 Broadcom Corp.
+ 0700 U.S. Robotics USR5426 802.11g Adapter
+ 0701 U.S. Robotics USR5425 Wireless MAXg Adapter
+ 0711 Belkin F5D7051 v3000 802.11g
+ 0720 Dynex DX-BUSB
+4348 WinChipHead
+ 5523 USB->RS 232 adapter with Prolifec PL 2303 chipset
+ 5537 13.56Mhz RFID Card Reader and Writer
+ 5584 CH34x printer adapter cable
+4572 Shuttle, Inc.
+ 4572 Shuttle PN31 Remote
+4586 Panram
+ 1026 Crystal Bar Flash Drive
+4670 EMS Production
+ 9394 Game Cube USB Memory Adaptor 64M
+4752 Miditech
+ 0011 Midistart-2
+4757 GW Instek
+ 2009 PEL-2000 Series Electronic Load (CDC)
+ 2010 PEL-2000 Series Electronic Load (CDC)
+4766 Aceeca
+ 0001 MEZ1000 RDA
+4855 Memorex
+ 7288 Ultra Traveldrive 160G 2.5" HDD
+4971 SimpleTech
+ cb01 SP-U25/120G
+ ce17 1TB SimpleDrive II USB External Hard Drive
+5032 Grandtec
+ 0bb8 Grandtec USB1.1 DVB-T (cold)
+ 0bb9 Grandtec USB1.1 DVB-T (warm)
+ 0fa0 Grandtec USB1.1 DVB-T (cold)
+ 0fa1 Grandtec USB1.1 DVB-T (warm)
+5041 Linksys (?)
+ 2234 WUSB54G v1 802.11g Adapter [Intersil ISL3886]
+ 2235 WUSB54GP v1 802.11g Adapter [Intersil ISL3886]
+50c2 Averatec (?)
+ 4013 WLAN Adapter
+5173 Sweex
+ 1809 ZD1211
+5219 I-Tetra
+ 1001 Cetus CDC Device
+5345 Owon
+ 1234 PDS6062T Oscilloscope
+544d Transmeta Corp.
+5543 UC-Logic Technology Corp.
+ 0002 SuperPen WP3325U Tablet
+ 0003 Tablet WP4030U
+ 0004 Tablet WP5540U
+ 0005 Tablet WP8060U
+ 0041 Genius PenSketch 6x8 Tablet
+ 0042 Tablet PF1209
+ 0064 Aiptek HyperPen 10000U
+5555 Epiphan Systems Inc.
+ 1110 VGA2USB
+ 1120 KVM2USB
+ 2222 DVI2USB
+ 3333 VGA2USB Pro
+ 3337 KVM2USB Pro
+ 3340 VGA2USB LR
+ 3344 KVM2USB LR
+ 3411 DVI2USB Solo
+ 3422 DVI2USB Duo
+55aa OnSpec Electronic, Inc.
+ 0015 Hard Drive
+ 0102 SuperDisk
+ 0103 IDE Hard Drive
+ 0201 DDI to Reader-19
+ 1234 ATAPI Bridge
+ a103 Sandisk SDDR-55 SmartMedia Card Reader
+ b000 USB to CompactFlash Card Reader
+ b004 OnSpec MMC/SD Reader/Writer
+ b00b USB to Memory Stick Card Reader
+ b00c USB to SmartMedia Card Reader
+ b012 Mitsumi FA402M 8-in-2 Card Reader
+ b200 Compact Flash Reader
+ b204 MMC/ SD Reader
+ b207 Memory Stick Reader
+5656 Uni-Trend Group Limited
+ 0832 UT2000/UT3000 Digital Storage Oscilloscope
+595a IRTOUCHSYSTEMS Co. Ltd.
+ 0001 Touchscreen
+5986 Acer, Inc
+ 0100 Orbicam
+ 0101 USB2.0 Camera
+ 0102 Crystal Eye Webcam
+ 01a6 Lenovo Integrated Webcam
+ 01a7 Lenovo Integrated Webcam
+ 01a9 Lenovo Integrated Webcam
+ 0200 OrbiCam
+ 0203 BisonCam NB Pro 1300
+ 0241 BisonCam, NB Pro
+ 02d0 Lenovo Integrated Webcam [R5U877]
+ 03d0 Lenovo Integrated Webcam [R5U877]
+5a57 Zinwell
+ 0260 RT2570
+ 0280 802.11a/b/g/n USB Wireless LAN Card
+ 0282 802.11b/g/n USB Wireless LAN Card
+ 0283 802.11b/g/n USB Wireless LAN Card
+ 0284 802.11a/b/g/n USB Wireless LAN Card
+ 0290 ZW-N290 802.11n [Realtek RTL8192SU]
+ 5257 Metronic 495257 wifi 802.11ng
+6000 Beholder International Ltd.
+ dec0 TV Wander
+ dec1 TV Voyage
+601a Ingenic Semiconductor Ltd.
+ 4740 XBurst Jz4740 boot mode
+6189 Sitecom
+ 182d USB 2.0 Ethernet
+ 2068 USB to serial cable (v2)
+6253 TwinHan Technology Co., Ltd
+ 0100 Ir reciver f. remote control
+636c CoreLogic, Inc.
+6472 Unknown (Sony?)
+ 01c8 PlayStation Portable [Mass Storage]
+6547 Arkmicro Technologies Inc.
+ 0232 ARK3116 Serial
+6615 IRTOUCHSYSTEMS Co. Ltd.
+ 0001 Touchscreen
+6666 Prototype product Vendor ID
+ 0667 WiseGroup Smart Joy PSX, PS-PC Smart JoyPad
+ 2667 JCOP BlueZ Smartcard reader
+ 8802 SmartJoy Dual Plus PS2 converter
+ 8804 WiseGroup SuperJoy Box 5
+6677 WiseGroup, Ltd.
+ 8802 SmartJoy Dual Plus PS2 converter
+ 8811 Deluxe Dance Mat
+6891 3Com
+ a727 3CRUSB10075 802.11bg [ZyDAS ZD1211]
+695c Opera1
+ 3829 Opera1 DVB-S (warm state)
+6993 Yealink Network Technology Co., Ltd.
+ b001 VoIP Phone
+6a75 Shanghai Jujo Electronics Co., Ltd
+7104 CME (Central Music Co.)
+ 2202 UF5/UF6/UF7/UF8 MIDI Master Keyboard
+726c StackFoundry LLC
+ 2149 EntropyKing Random Number Generator
+734c TBS Technologies China
+ 5920 Q-Box II DVB-S2 HD
+ 5928 Q-Box II DVB-S2 HD
+7392 Edimax Technology Co., Ltd
+ 7711 EW-7711UTn nLite Wireless Adapter [Ralink RT2870]
+ 7717 EW-7717UN 802.11n Wireless Adapter [Ralink RT2870]
+ 7718 EW-7718UN 802.11n Wireless Adapter [Ralink RT2870]
+ 7722 EW-7722UTn 802.11n Wireless Adapter [Ralink RT307x]
+ 7811 EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
+8086 Intel Corp.
+ 0001 AnyPoint (TM) Home Network 1.6 Mbps Wireless Adapter
+ 0044 CPU DRAM Controller
+ 0046 HD Graphics
+ 0100 Personal Audio Player 3000
+ 0101 Personal Audio Player 3000
+ 0110 Easy PC Camera
+ 0120 PC Camera CS120
+ 0180 WiMAX Connection 2400m
+ 0181 WiMAX Connection 2400m
+ 0182 WiMAX Connection 2400m
+ 0186 WiMAX Connection 2400m
+ 0188 WiMAX Connection 2400m
+ 0200 AnyPoint(TM) Wireless II Network 11Mbps Adapter [Atmel AT76C503A]
+ 0431 Intel Pro Video PC Camera
+ 0510 Digital Movie Creator
+ 0630 Pocket PC Camera
+ 0780 CS780 Microphone Input
+ 07d3 BLOB boot loader firmware
+ 0dad Cherry MiniatureCard Keyboard
+ 1010 AnyPoint(TM) Home Network 10 Mbps Phoneline Adapter
+ 110a Bluetooth Controller from (Ericsson P4A)
+ 110b Bluetooth Controller from (Intel/CSR)
+ 1110 PRO/Wireless LAN Module
+ 1111 PRO/Wireless 2011B 802.11b Adapter [Intersil PRISM 2.5]
+ 1134 Hollister Mobile Monitor
+ 1139 In-Target Probe (ITP)
+ 1234 Prototype Reader/Writer
+ 1403 WiMAX Connection 2400m
+ 1405 WiMAX Connection 2400m
+ 1406 WiMAX Connection 2400m
+ 2448 82801 PCI Bridge
+ 3100 PRO/DSL 3220 Modem - WAN
+ 3101 PRO/DSL 3220 Modem
+ 3240 AnyPoint® 3240 Modem - WAN
+ 3241 AnyPoint® 3240 Modem
+ 8602 Miniature Card Slot
+ 9303 Intel 8x930Hx Hub
+ 9500 CE 9500 DVB-T
+ 9890 82930 Test Board
+ beef SCM Miniature Card Reader/Writer
+ c013 Wireless HID Station
+ f001 XScale PXA27x Bulverde flash
+ f1a5 Z-U130 [Value Solid State Drive]
+8087 Intel Corp.
+ 0020 Integrated Rate Matching Hub
+ 0024 Integrated Rate Matching Hub
+80ee VirtualBox
+ 0021 USB Tablet
+8282 Keio
+ 3201 Retro Adapter
+ 3301 Retro Adapter Mouse
+8341 EGO Systems, Inc.
+ 2000 Flashdisk
+9016 Sitecom
+ 182d WL-022 802.11b Adapter
+9022 TeVii Technology Ltd.
+ d630 DVB-S S630
+ d650 DVB-S2 S650
+ d660 DVB-S2 S660
+9148 GeoLab, Ltd
+# All of GeoLab's devices share the same ID 0004.
+ 0004 R3 Compatible Device
+9710 MosChip Semiconductor
+ 7703 MCS7703 Serial Port Adapter
+ 7705 MCS7705 Parallel port adapter
+ 7715 MCS7715 Parallel and serial port adapter
+ 7717 MCS7717 3-port hub with serial and parallel adapter
+ 7720 MCS7720 Dual serial port adapter
+ 7730 MCS7730 10/100 Mbps Ethernet adapter
+ 7780 MCS7780 4Mbps Fast IrDA Adapter
+ 7830 MCS7830 10/100 Mbps Ethernet adapter
+ 7832 MCS7832 10/100 Mbps Ethernet adapter
+ 7840 MCS7820/MCS7840 2/4 port serial adapter
+99fa Grandtec
+ 8988 V.cap Camera Device
+9ac4 J. Westhues
+ 4b8f ProxMark-3 RFID Instrument
+a128 AnMo Electronics Corp. / Dino-Lite (?)
+ 0610 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
+ 0611 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
+ 0612 Dino-Lite Digital Microscope (SN9C120 + HV7131R)
+ 0613 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
+ 0614 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111)
+ 0615 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111)
+ 0616 Dino-Lite Digital Microscope (SN9C120 + HV7131R)
+ 0617 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111)
+ 0618 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
+a168 AnMo Electronics Corporation
+ 0610 Dino-Lite Digital Microscope
+ 0611 Dino-Lite Digital Microscope
+ 0613 Dino-Lite Digital Microscope
+ 0614 Dino-Lite Pro Digital Microscope
+ 0615 Dino-Lite Pro Digital Microscope
+ 0617 Dino-Lite Pro Digital Microscope
+ 0618 Dino-Lite Digital Microscope
+a600 Asix
+ e110 OK1ZIA Davac 4.x
+a727 3Com
+ 6893 3CRUSB20075 OfficeConnect Wireless 108Mbps 11g Adapter [Atheros AR5523]
+ 6895 AR5523
+ 6897 AR5523
+abcd Unknown
+ cdee Petcam
+c251 Keil Software, Inc.
+ 2710 ULink
+cace CACE Technologies Inc.
+ 0002 AirPCAP Classic 802.11 packet capture adapter
+ 0300 AirPcap NX [Atheros AR9001U-(2)NG]
+d209 Ultimarc
+ 0301 I-PAC Arcade Control Interface
+ 0501 Ultra-Stik Ultimarc Ultra-Stik Player 1
+e4e4 Xorcom Ltd.
+ 1130 Astribank series
+ 1131 Astribank series
+ 1132 Astribank series
+ 1140 Astribank series
+ 1141 Astribank series
+ 1142 Astribank series
+ 1150 Astribank series
+ 1151 Astribank series
+ 1152 Astribank series
+ 1160 Astribank 2 series
+ 1161 Astribank 2 series
+ 1162 Astribank 2 series
+eb03 MakingThings
+ 0920 Make Controller Kit
+eb1a eMPIA Technology, Inc.
+ 17de KWorld V-Stream XPERT DTV - DVB-T USB cold
+ 17df KWorld V-Stream XPERT DTV - DVB-T USB warm
+ 2571 M035 Compact Web Cam
+ 2710 SilverCrest Webcam
+ 2750 ECS Elitegroup G220 integrated Webcam
+ 2761 EeePC 701 integrated Webcam
+ 2776 Combined audio and video input device
+ 2800 Terratec Cinergy 200
+ 2801 GrabBeeX+ Video Encoder
+ 2863 Video Grabber
+ 2870 Pinnacle PCTV Stick
+ 2881 EM2881 Video Controller
+ 50a3 Gadmei UTV380 TV Box
+ 50a6 Gadmei UTV330 TV Box
+ e355 KWorld DVB-T 355U Digital TV Dongle
+eb2a KWorld
+f003 Hewlett Packard
+ 6002 PhotoSmart C500
+f4ec Atten Electronics / Siglent Technologies
+ ee38 Digital Storage Oscilloscope
+
+# List of known device classes, subclasses and protocols
+
+# Syntax:
+# C class class_name
+# subclass subclass_name <-- single tab
+# protocol protocol_name <-- two tabs
+
+C 00 (Defined at Interface level)
+C 01 Audio
+ 01 Control Device
+ 02 Streaming
+ 03 MIDI Streaming
+C 02 Communications
+ 01 Direct Line
+ 02 Abstract (modem)
+ 00 None
+ 01 AT-commands (v.25ter)
+ 02 AT-commands (PCCA101)
+ 03 AT-commands (PCCA101 + wakeup)
+ 04 AT-commands (GSM)
+ 05 AT-commands (3G)
+ 06 AT-commands (CDMA)
+ fe Defined by command set descriptor
+ ff Vendor Specific (MSFT RNDIS?)
+ 03 Telephone
+ 04 Multi-Channel
+ 05 CAPI Control
+ 06 Ethernet Networking
+ 07 ATM Networking
+ 08 Wireless Handset Control
+ 09 Device Management
+ 0a Mobile Direct Line
+ 0b OBEX
+ 0c Ethernet Emulation
+ 07 Ethernet Emulation (EEM)
+C 03 Human Interface Device
+ 00 No Subclass
+ 00 None
+ 01 Keyboard
+ 02 Mouse
+ 01 Boot Interface Subclass
+ 00 None
+ 01 Keyboard
+ 02 Mouse
+C 05 Physical Interface Device
+C 06 Imaging
+ 01 Still Image Capture
+ 01 Picture Transfer Protocol (PIMA 15470)
+C 07 Printer
+ 01 Printer
+ 00 Reserved/Undefined
+ 01 Unidirectional
+ 02 Bidirectional
+ 03 IEEE 1284.4 compatible bidirectional
+ ff Vendor Specific
+C 08 Mass Storage
+ 01 RBC (typically Flash)
+ 00 Control/Bulk/Interrupt
+ 01 Control/Bulk
+ 50 Bulk (Zip)
+ 02 SFF-8020i, MMC-2 (ATAPI)
+ 03 QIC-157
+ 04 Floppy (UFI)
+ 00 Control/Bulk/Interrupt
+ 01 Control/Bulk
+ 50 Bulk (Zip)
+ 05 SFF-8070i
+ 06 SCSI
+ 00 Control/Bulk/Interrupt
+ 01 Control/Bulk
+ 50 Bulk (Zip)
+C 09 Hub
+ 00 Unused
+ 00 Full speed (or root) hub
+ 01 Single TT
+ 02 TT per port
+C 0a CDC Data
+ 00 Unused
+ 30 I.430 ISDN BRI
+ 31 HDLC
+ 32 Transparent
+ 50 Q.921M
+ 51 Q.921
+ 52 Q.921TM
+ 90 V.42bis
+ 91 Q.932 EuroISDN
+ 92 V.120 V.24 rate ISDN
+ 93 CAPI 2.0
+ fd Host Based Driver
+ fe CDC PUF
+ ff Vendor specific
+C 0b Chip/SmartCard
+C 0d Content Security
+C 0e Video
+ 00 Undefined
+ 01 Video Control
+ 02 Video Streaming
+ 03 Video Interface Collection
+C 58 Xbox
+ 42 Controller
+C dc Diagnostic
+ 01 Reprogrammable Diagnostics
+ 01 USB2 Compliance
+C e0 Wireless
+ 01 Radio Frequency
+ 01 Bluetooth
+ 02 Ultra WideBand Radio Control
+ 03 RNDIS
+ 02 Wireless USB Wire Adapter
+ 01 Host Wire Adapter Control/Data Streaming
+ 02 Device Wire Adapter Control/Data Streaming
+ 03 Device Wire Adapter Isochronous Streaming
+C ef Miscellaneous Device
+ 01 ?
+ 01 Microsoft ActiveSync
+ 02 Palm Sync
+ 02 ?
+ 01 Interface Association
+ 02 Wire Adapter Multifunction Peripheral
+ 03 ?
+ 01 Cable Based Association
+C fe Application Specific Interface
+ 01 Device Firmware Update
+ 02 IRDA Bridge
+ 03 Test and Measurement
+ 01 TMC
+ 02 USB488
+C ff Vendor Specific Class
+ ff Vendor Specific Subclass
+ ff Vendor Specific Protocol
+
+# List of Audio Class Terminal Types
+
+# Syntax:
+# AT terminal_type terminal_type_name
+
+AT 0100 USB Undefined
+AT 0101 USB Streaming
+AT 01ff USB Vendor Specific
+AT 0200 Input Undefined
+AT 0201 Microphone
+AT 0202 Desktop Microphone
+AT 0203 Personal Microphone
+AT 0204 Omni-directional Microphone
+AT 0205 Microphone Array
+AT 0206 Processing Microphone Array
+AT 0300 Output Undefined
+AT 0301 Speaker
+AT 0302 Headphones
+AT 0303 Head Mounted Display Audio
+AT 0304 Desktop Speaker
+AT 0305 Room Speaker
+AT 0306 Communication Speaker
+AT 0307 Low Frequency Effects Speaker
+AT 0400 Bidirectional Undefined
+AT 0401 Handset
+AT 0402 Headset
+AT 0403 Speakerphone, no echo reduction
+AT 0404 Echo-suppressing speakerphone
+AT 0405 Echo-canceling speakerphone
+AT 0500 Telephony Undefined
+AT 0501 Phone line
+AT 0502 Telephone
+AT 0503 Down Line Phone
+AT 0600 External Undefined
+AT 0601 Analog Connector
+AT 0602 Digital Audio Interface
+AT 0603 Line Connector
+AT 0604 Legacy Audio Connector
+AT 0605 SPDIF interface
+AT 0606 1394 DA stream
+AT 0607 1394 DV stream soundtrack
+AT 0700 Embedded Undefined
+AT 0701 Level Calibration Noise Source
+AT 0702 Equalization Noise
+AT 0703 CD Player
+AT 0704 DAT
+AT 0705 DCC
+AT 0706 MiniDisc
+AT 0707 Analog Tape
+AT 0708 Phonograph
+AT 0709 VCR Audio
+AT 070a Video Disc Audio
+AT 070b DVD Audio
+AT 070c TV Tuner Audio
+AT 070d Satellite Receiver Audio
+AT 070e Cable Tuner Audio
+AT 070f DSS Audio
+AT 0710 Radio Receiver
+AT 0711 Radio Transmitter
+AT 0712 Multitrack Recorder
+AT 0713 Synthesizer
+
+# List of HID Descriptor Types
+
+# Syntax:
+# HID descriptor_type descriptor_type_name
+
+HID 21 HID
+HID 22 Report
+HID 23 Physical
+
+# List of HID Descriptor Item Types
+# Note: 2 bits LSB encode data length following
+
+# Syntax:
+# R item_type item_type_name
+
+R 04 Usage Page
+R 08 Usage
+R 14 Logical Minimum
+R 18 Usage Minimum
+R 24 Logical Maximum
+R 28 Usage Maximum
+R 34 Physical Minimum
+R 38 Designator Index
+R 44 Physical Maximum
+R 48 Designator Minimum
+R 54 Unit Exponent
+R 58 Designator Maximum
+R 64 Unit
+R 74 Report Size
+R 78 String Index
+R 80 Input
+R 84 Report ID
+R 88 String Minimum
+R 90 Output
+R 94 Report Count
+R 98 String Maximum
+R a0 Collection
+R a4 Push
+R a8 Delimiter
+R b0 Feature
+R b4 Pop
+R c0 End Collection
+
+# List of Physical Descriptor Bias Types
+
+# Syntax:
+# BIAS item_type item_type_name
+
+BIAS 0 Not Applicable
+BIAS 1 Right Hand
+BIAS 2 Left Hand
+BIAS 3 Both Hands
+BIAS 4 Either Hand
+
+# List of Physical Descriptor Item Types
+
+# Syntax:
+# PHY item_type item_type_name
+
+PHY 00 None
+PHY 01 Hand
+PHY 02 Eyeball
+PHY 03 Eyebrow
+PHY 04 Eyelid
+PHY 05 Ear
+PHY 06 Nose
+PHY 07 Mouth
+PHY 08 Upper Lip
+PHY 09 Lower Lip
+PHY 0a Jaw
+PHY 0b Neck
+PHY 0c Upper Arm
+PHY 0d Elbow
+PHY 0e Forearm
+PHY 0f Wrist
+PHY 10 Palm
+PHY 11 Thumb
+PHY 12 Index Finger
+PHY 13 Middle Finger
+PHY 14 Ring Finger
+PHY 15 Little Finger
+PHY 16 Head
+PHY 17 Shoulder
+PHY 18 Hip
+PHY 19 Waist
+PHY 1a Thigh
+PHY 1b Knee
+PHY 1c calf
+PHY 1d Ankle
+PHY 1e Foot
+PHY 1f Heel
+PHY 20 Ball of Foot
+PHY 21 Big Toe
+PHY 22 Second Toe
+PHY 23 Third Toe
+PHY 24 Fourth Toe
+PHY 25 Fifth Toe
+PHY 26 Brow
+PHY 27 Cheek
+
+# List of HID Usages
+
+# Syntax:
+# HUT hi _usage_page hid_usage_page_name
+# hid_usage hid_usage_name
+
+HUT 00 Undefined
+HUT 01 Generic Desktop Controls
+ 000 Undefined
+ 001 Pointer
+ 002 Mouse
+ 004 Joystick
+ 005 Gamepad
+ 006 Keyboard
+ 007 Keypad
+ 008 Multi-Axis Controller
+ 030 Direction-X
+ 031 Direction-Y
+ 032 Direction-Z
+ 033 Rotate-X
+ 034 Rotate-Y
+ 035 Rotate-Z
+ 036 Slider
+ 037 Dial
+ 038 Wheel
+ 039 Hat Switch
+ 03a Counted Buffer
+ 03b Byte Count
+ 03c Motion Wakeup
+ 03d Start
+ 03e Select
+ 040 Vector-X
+ 041 Vector-Y
+ 042 Vector-Z
+ 043 Vector-X relative Body
+ 044 Vector-Y relative Body
+ 045 Vector-Z relative Body
+ 046 Vector
+ 080 System Control
+ 081 System Power Down
+ 082 System Sleep
+ 083 System Wake Up
+ 084 System Context Menu
+ 085 System Main Menu
+ 086 System App Menu
+ 087 System Menu Help
+ 088 System Menu Exit
+ 089 System Menu Select
+ 08a System Menu Right
+ 08b System Menu Left
+ 08c System Menu Up
+ 08d System Menu Down
+ 090 Direction Pad Up
+ 091 Direction Pad Down
+ 092 Direction Pad Right
+ 093 Direction Pad Left
+HUT 02 Simulation Controls
+ 000 Undefined
+ 001 Flight Simulation Device
+ 002 Automobile Simulation Device
+ 003 Tank Simulation Device
+ 004 Spaceship Simulation Device
+ 005 Submarine Simulation Device
+ 006 Sailing Simulation Device
+ 007 Motorcycle Simulation Device
+ 008 Sports Simulation Device
+ 009 Airplane Simualtion Device
+ 00a Helicopter Simulation Device
+ 00b Magic Carpet Simulation Device
+ 00c Bicycle Simulation Device
+ 020 Flight Control Stick
+ 021 Flight Stick
+ 022 Cyclic Control
+ 023 Cyclic Trim
+ 024 Flight Yoke
+ 025 Track Control
+ 0b0 Aileron
+ 0b1 Aileron Trim
+ 0b2 Anti-Torque Control
+ 0b3 Autopilot Enable
+ 0b4 Chaff Release
+ 0b5 Collective Control
+ 0b6 Dive Break
+ 0b7 Electronic Countermeasures
+ 0b8 Elevator
+ 0b9 Elevator Trim
+ 0ba Rudder
+ 0bb Throttle
+ 0bc Flight COmmunications
+ 0bd Flare Release
+ 0be Landing Gear
+ 0bf Toe Break
+ 0c0 Trigger
+ 0c1 Weapon Arm
+ 0c2 Weapons Select
+ 0c3 Wing Flaps
+ 0c4 Accelerator
+ 0c5 Brake
+ 0c6 Clutch
+ 0c7 Shifter
+ 0c8 Steering
+ 0c9 Turret Direction
+ 0ca Barrel Elevation
+ 0cb Drive Plane
+ 0cc Ballast
+ 0cd Bicylce Crank
+ 0ce Handle Bars
+ 0cf Front Brake
+ 0d0 Rear Brake
+HUT 03 VR Controls
+ 000 Unidentified
+ 001 Belt
+ 002 Body Suit
+ 003 Flexor
+ 004 Glove
+ 005 Head Tracker
+ 006 Head Mounted Display
+ 007 Hand Tracker
+ 008 Oculometer
+ 009 Vest
+ 00a Animatronic Device
+ 020 Stereo Enable
+ 021 Display Enable
+HUT 04 Sport Controls
+ 000 Unidentified
+ 001 Baseball Bat
+ 002 Golf Club
+ 003 Rowing Machine
+ 004 Treadmill
+ 030 Oar
+ 031 Slope
+ 032 Rate
+ 033 Stick Speed
+ 034 Stick Face Angle
+ 035 Stick Heel/Toe
+ 036 Stick Follow Through
+ 038 Stick Type
+ 039 Stick Height
+ 047 Stick Temp
+ 050 Putter
+ 051 1 Iron
+ 052 2 Iron
+ 053 3 Iron
+ 054 4 Iron
+ 055 5 Iron
+ 056 6 Iron
+ 057 7 Iron
+ 058 8 Iron
+ 059 9 Iron
+ 05a 10 Iron
+ 05b 11 Iron
+ 05c Sand Wedge
+ 05d Loft Wedge
+ 05e Power Wedge
+ 05f 1 Wood
+ 060 3 Wood
+ 061 5 Wood
+ 062 7 Wood
+ 063 9 Wood
+HUT 05 Game Controls
+ 000 Undefined
+ 001 3D Game Controller
+ 002 Pinball Device
+ 003 Gun Device
+ 020 Point Of View
+ 021 Turn Right/Left
+ 022 Pitch Right/Left
+ 023 Roll Forward/Backward
+ 024 Move Right/Left
+ 025 Move Forward/Backward
+ 026 Move Up/Down
+ 027 Lean Right/Left
+ 028 Lean Forward/Backward
+ 029 Height of POV
+ 02a Flipper
+ 02b Secondary Flipper
+ 02c Bump
+ 02d New Game
+ 02e Shoot Ball
+ 02f Player
+ 030 Gun Bolt
+ 031 Gun Clip
+ 032 Gun Selector
+ 033 Gun Single Shot
+ 034 Gun Burst
+ 035 Gun Automatic
+ 036 Gun Safety
+ 037 Gamepad Fire/Jump
+ 038 Gamepad Fun
+ 039 Gamepad Trigger
+HUT 07 Keyboard
+ 000 No Event
+ 001 Keyboard ErrorRollOver
+ 002 Keyboard POSTfail
+ 003 Keyboard Error Undefined
+ 004 A
+ 005 B
+ 006 C
+ 007 D
+ 008 E
+ 009 F
+ 00a G
+ 00b H
+ 00c I
+ 00d J
+ 00e K
+ 00f L
+ 010 M
+ 011 N
+ 012 O
+ 013 P
+ 014 Q
+ 015 R
+ 016 S
+ 017 T
+ 018 U
+ 019 V
+ 01a W
+ 01b X
+ 01c Y
+ 01d Z
+ 01e 1 and ! (One and Exclamation)
+ 01f 2 and @ (2 and at)
+ 020 3 and # (3 and Hash)
+ 021 4 and $ (4 and Dollar Sign)
+ 022 5 and % (5 and Percent Sign)
+ 023 6 and ^ (6 and circumflex)
+ 024 7 and & (Seven and Ampersand)
+ 025 8 and * (Eight and asterisk)
+ 026 9 and ( (Nine and Parenthesis Left)
+ 027 0 and ) (Zero and Parenthesis Right)
+ 028 Return (Enter)
+ 029 Escape
+ 02a Delete (Backspace)
+ 02b Tab
+ 02c Space Bar
+ 02d - and _ (Minus and underscore)
+ 02e = and + (Equal and Plus)
+ 02f [ and { (Bracket and Braces Left)
+ 030 ] and } (Bracket and Braces Right)
+ 031 \ and | (Backslash and Bar)
+ 032 # and ~ (Hash and Tilde, Non-US Keyboard near right shift)
+ 033 ; and : (Semicolon and Colon)
+ 034 and " (Accent Acute and Double Quotes)
+ 035 ` and ~ (Accent Grace and Tilde)
+ 036 , and < (Comma and Less)
+ 037 . and > (Period and Greater)
+ 038 / and ? (Slash and Question Mark)
+ 039 Caps Lock
+ 03a F1
+ 03b F2
+ 03c F3
+ 03d F4
+ 03e F5
+ 03f F6
+ 040 F7
+ 041 F8
+ 042 F9
+ 043 F10
+ 044 F11
+ 045 F12
+ 046 Print Screen
+ 047 Scroll Lock
+ 048 Pause
+ 049 Insert
+ 04a Home
+ 04b Page Up
+ 04c Delete Forward (without Changing Position)
+ 04d End
+ 04e Page Down
+ 04f Right Arrow
+ 050 Left Arrow
+ 051 Down Arrow
+ 052 Up Arrow
+ 053 Num Lock and Clear
+ 054 Keypad / (Division Sign)
+ 055 Keypad * (Multiplication Sign)
+ 056 Keypad - (Subtraction Sign)
+ 057 Keypad + (Addition Sign)
+ 058 Keypad Enter
+ 059 Keypad 1 and END
+ 05a Keypad 2 and Down Arrow
+ 05b Keypad 3 and Page Down
+ 05c Keypad 4 and Left Arrow
+ 05d Keypad 5 (Tactilei Raised)
+ 05f Keypad 6 and Right Arrow
+ 060 Keypad 7 and Home
+ 061 Keypad 8 and Up Arrow
+ 062 Keypad 8 and Page Up
+ 063 Keypad . (decimal delimiter) and Delete
+ 064 \ and | (Backslash and Bar, UK and Non-US Keyboard near left shift)
+ 065 Keyboard Application (Windows Key for Win95 or Compose)
+ 066 Power (not a key)
+ 067 Keypad = (Equal Sign)
+ 068 F13
+ 069 F14
+ 06a F15
+ 06b F16
+ 06c F17
+ 06d F18
+ 06e F19
+ 06f F20
+ 070 F21
+ 071 F22
+ 072 F23
+ 073 F24
+ 074 Execute
+ 075 Help
+ 076 Menu
+ 077 Select
+ 078 Stop
+ 079 Again
+ 07a Undo
+ 07b Cut
+ 07c Copy
+ 07d Paste
+ 07e Find
+ 07f Mute
+ 080 Volume Up
+ 081 Volume Down
+ 082 Locking Caps Lock
+ 083 Locking Num Lock
+ 084 Locking Scroll Lock
+ 085 Keypad Comma
+ 086 Keypad Equal Sign (AS/400)
+ 087 International 1 (PC98)
+ 088 International 2 (PC98)
+ 089 International 3 (PC98)
+ 08a International 4 (PC98)
+ 08b International 5 (PC98)
+ 08c International 6 (PC98)
+ 08d International 7 (Toggle Single/Double Byte Mode)
+ 08e International 8
+ 08f International 9
+ 090 LANG 1 (Hangul/English Toggle, Korea)
+ 091 LANG 2 (Hanja Conversion, Korea)
+ 092 LANG 3 (Katakana, Japan)
+ 093 LANG 4 (Hiragana, Japan)
+ 094 LANG 5 (Zenkaku/Hankaku, Japan)
+ 095 LANG 6
+ 096 LANG 7
+ 097 LANG 8
+ 098 LANG 9
+ 099 Alternate Erase
+ 09a SysReq/Attention
+ 09b Cancel
+ 09c Clear
+ 09d Prior
+ 09e Return
+ 09f Separator
+ 0a0 Out
+ 0a1 Open
+ 0a2 Clear/Again
+ 0a3 CrSel/Props
+ 0a4 ExSel
+ 0e0 Control Left
+ 0e1 Shift Left
+ 0e2 Alt Left
+ 0e3 GUI Left
+ 0e4 Control Right
+ 0e5 Shift Right
+ 0e6 Alt Rigth
+ 0e7 GUI Right
+HUT 08 LEDs
+ 000 Undefined
+ 001 NumLock
+ 002 CapsLock
+ 003 Scroll Lock
+ 004 Compose
+ 005 Kana
+ 006 Power
+ 007 Shift
+ 008 Do not disturb
+ 009 Mute
+ 00a Tone Enabke
+ 00b High Cut Filter
+ 00c Low Cut Filter
+ 00d Equalizer Enable
+ 00e Sound Field ON
+ 00f Surround On
+ 010 Repeat
+ 011 Stereo
+ 012 Sampling Rate Detect
+ 013 Spinning
+ 014 CAV
+ 015 CLV
+ 016 Recording Format Detect
+ 017 Off-Hook
+ 018 Ring
+ 019 Message Waiting
+ 01a Data Mode
+ 01b Battery Operation
+ 01c Battery OK
+ 01d Battery Low
+ 01e Speaker
+ 01f Head Set
+ 020 Hold
+ 021 Microphone
+ 022 Coverage
+ 023 Night Mode
+ 024 Send Calls
+ 025 Call Pickup
+ 026 Conference
+ 027 Stand-by
+ 028 Camera On
+ 029 Camera Off
+ 02a On-Line
+ 02b Off-Line
+ 02c Busy
+ 02d Ready
+ 02e Paper-Out
+ 02f Paper-Jam
+ 030 Remote
+ 031 Forward
+ 032 Reverse
+ 033 Stop
+ 034 Rewind
+ 035 Fast Forward
+ 036 Play
+ 037 Pause
+ 038 Record
+ 039 Error
+ 03a Usage Selected Indicator
+ 03b Usage In Use Indicator
+ 03c Usage Multi Indicator
+ 03d Indicator On
+ 03e Indicator Flash
+ 03f Indicator Slow Blink
+ 040 Indicator Fast Blink
+ 041 Indicator Off
+ 042 Flash On Time
+ 043 Slow Blink On Time
+ 044 Slow Blink Off Time
+ 045 Fast Blink On Time
+ 046 Fast Blink Off Time
+ 047 Usage Color Indicator
+ 048 Indicator Red
+ 049 Indicator Green
+ 04a Indicator Amber
+ 04b Generic Indicator
+ 04c System Suspend
+ 04d External Power Connected
+HUT 09 Buttons
+ 000 No Button Pressed
+ 001 Button 1 (Primary)
+ 002 Button 2 (Secondary)
+ 003 Button 3 (Tertiary)
+ 004 Button 4
+ 005 Button 5
+HUT 0a Ordinal
+ 001 Instance 1
+ 002 Instance 2
+ 003 Instance 3
+HUT 0b Telephony
+ 000 Unassigned
+ 001 Phone
+ 002 Answering Machine
+ 003 Message Controls
+ 004 Handset
+ 005 Headset
+ 006 Telephony Key Pad
+ 007 Programmable Button
+ 020 Hook Switch
+ 021 Flash
+ 022 Feature
+ 023 Hold
+ 024 Redial
+ 025 Transfer
+ 026 Drop
+ 027 Park
+ 028 Forward Calls
+ 029 Alternate Function
+ 02a Line
+ 02b Speaker Phone
+ 02c Conference
+ 02d Ring Enable
+ 02e Ring Select
+ 02f Phone Mute
+ 030 Caller ID
+ 050 Speed Dial
+ 051 Store Number
+ 052 Recall Number
+ 053 Phone Directory
+ 070 Voice Mail
+ 071 Screen Calls
+ 072 Do Not Disturb
+ 073 Message
+ 074 Answer On/Offf
+ 090 Inside Dial Tone
+ 091 Outside Dial Tone
+ 092 Inside Ring Tone
+ 093 Outside Ring Tone
+ 094 Priority Ring Tone
+ 095 Inside Ringback
+ 096 Priority Ringback
+ 097 Line Busy Tone
+ 098 Recorder Tone
+ 099 Call Waiting Tone
+ 09a Confirmation Tone 1
+ 09b Confirmation Tone 2
+ 09c Tones Off
+ 09d Outside Ringback
+ 0b0 Key 1
+ 0b1 Key 2
+ 0b3 Key 3
+ 0b4 Key 4
+ 0b5 Key 5
+ 0b6 Key 6
+ 0b7 Key 7
+ 0b8 Key 8
+ 0b9 Key 9
+ 0ba Key Star
+ 0bb Key Pound
+ 0bc Key A
+ 0bd Key B
+ 0be Key C
+ 0bf Key D
+HUT 0c Consumer
+ 000 Unassigned
+ 001 Consumer Control
+ 002 Numeric Key Pad
+ 003 Programmable Buttons
+ 020 +10
+ 021 +100
+ 022 AM/PM
+ 030 Power
+ 031 Reset
+ 032 Sleep
+ 033 Sleep After
+ 034 Sleep Mode
+ 035 Illumination
+ 036 Function Buttons
+ 040 Menu
+ 041 Menu Pick
+ 042 Menu Up
+ 043 Menu Down
+ 044 Menu Left
+ 045 Menu Right
+ 046 Menu Escape
+ 047 Menu Value Increase
+ 048 Menu Value Decrease
+ 060 Data on Screen
+ 061 Closed Caption
+ 062 Closed Caption Select
+ 063 VCR/TV
+ 064 Broadcast Mode
+ 065 Snapshot
+ 066 Still
+ 080 Selection
+ 081 Assign Selection
+ 082 Mode Step
+ 083 Recall Last
+ 084 Enter Channel
+ 085 Order Movie
+ 086 Channel
+ 087 Media Selection
+ 088 Media Select Computer
+ 089 Media Select TV
+ 08a Media Select WWW
+ 08b Media Select DVD
+ 08c Media Select Telephone
+ 08d Media Select Program Guide
+ 08e Media Select Video Phone
+ 08f Media Select Games
+ 090 Media Select Messages
+ 091 Media Select CD
+ 092 Media Select VCR
+ 093 Media Select Tuner
+ 094 Quit
+ 095 Help
+ 096 Media Select Tape
+ 097 Media Select Cable
+ 098 Media Select Satellite
+ 099 Media Select Security
+ 09a Media Select Home
+ 09b Media Select Call
+ 09c Channel Increment
+ 09d Channel Decrement
+ 09e Media Select SAP
+ 0a0 VCR Plus
+ 0a1 Once
+ 0a2 Daily
+ 0a3 Weekly
+ 0a4 Monthly
+ 0b0 Play
+ 0b1 Pause
+ 0b2 Record
+ 0b3 Fast Forward
+ 0b4 Rewind
+ 0b5 Scan Next Track
+ 0b6 Scan Previous Track
+ 0b7 Stop
+ 0b8 Eject
+ 0b9 Random Play
+ 0ba Select Disc
+ 0bb Enter Disc
+ 0bc Repeat
+ 0bd Tracking
+ 0be Track Normal
+ 0bf Slow Tracking
+ 0c0 Frame Forward
+ 0c1 Frame Back
+ 0c2 Mark
+ 0c3 Clear Mark
+ 0c4 Repeat from Mark
+ 0c5 Return to Mark
+ 0c6 Search Mark Forward
+ 0c7 Search Mark Backward
+ 0c8 Counter Reset
+ 0c9 Show Counter
+ 0ca Tracking Increment
+ 0cb Tracking Decrement
+ 0cc Stop/Eject
+ 0cd Play/Pause
+ 0ce Play/Skip
+ 0e0 Volume
+ 0e1 Balance
+ 0e2 Mute
+ 0e3 Bass
+ 0e4 Treble
+ 0e5 Bass Boost
+ 0e6 Surround Mode
+ 0e7 Loudness
+ 0e8 MPX
+ 0e9 Volume Increment
+ 0ea Volume Decrement
+ 0f0 Speed Select
+ 0f1 Playback Speed
+ 0f2 Standard Play
+ 0f3 Long Play
+ 0f4 Extended Play
+ 0f5 Slow
+ 100 Fan Enable
+ 101 Fan Speed
+ 102 Light Enable
+ 103 Light Illumination Level
+ 104 Climate Control Enable
+ 105 Room Temperature
+ 106 Security Enable
+ 107 Fire Alarm
+ 108 Police Alarm
+ 150 Balance Right
+ 151 Balance Left
+ 152 Bass Increment
+ 153 Bass Decrement
+ 154 Treble Increment
+ 155 Treble Decrement
+ 160 Speaker System
+ 161 Channel Left
+ 162 Channel Right
+ 163 Channel Center
+ 164 Channel Front
+ 165 Channel Center Front
+ 166 Channel Side
+ 167 Channel Surround
+ 168 Channel Low Frequency Enhancement
+ 169 Channel Top
+ 16a Channel Unknown
+ 170 Sub-Channel
+ 171 Sub-Channel Increment
+ 172 Sub-Channel Decrement
+ 173 Alternative Audio Increment
+ 174 Alternative Audio Decrement
+ 180 Application Launch Buttons
+ 181 AL Launch Button Configuration Tool
+ 182 AL Launch Button Configuration
+ 183 AL Consumer Control Configuration
+ 184 AL Word Processor
+ 185 AL Text Editor
+ 186 AL Spreadsheet
+ 187 AL Graphics Editor
+ 188 AL Presentation App
+ 189 AL Database App
+ 18a AL Email Reader
+ 18b AL Newsreader
+ 18c AL Voicemail
+ 18d AL Contacts/Address Book
+ 18e AL Calendar/Schedule
+ 18f AL Task/Project Manager
+ 190 AL Log/Jounal/Timecard
+ 191 AL Checkbook/Finance
+ 192 AL Calculator
+ 193 AL A/V Capture/Playback
+ 194 AL Local Machine Browser
+ 195 AL LAN/Wan Browser
+ 196 AL Internet Browser
+ 197 AL Remote Networking/ISP Connect
+ 198 AL Network Conference
+ 199 AL Network Chat
+ 19a AL Telephony/Dialer
+ 19b AL Logon
+ 19c AL Logoff
+ 19d AL Logon/Logoff
+ 19e AL Terminal Local/Screensaver
+ 19f AL Control Panel
+ 1a0 AL Command Line Processor/Run
+ 1a1 AL Process/Task Manager
+ 1a2 AL Select Task/Application
+ 1a3 AL Next Task/Application
+ 1a4 AL Previous Task/Application
+ 1a5 AL Preemptive Halt Task/Application
+ 200 Generic GUI Application Controls
+ 201 AC New
+ 202 AC Open
+ 203 AC CLose
+ 204 AC Exit
+ 205 AC Maximize
+ 206 AC Minimize
+ 207 AC Save
+ 208 AC Print
+ 209 AC Properties
+ 21a AC Undo
+ 21b AC Copy
+ 21c AC Cut
+ 21d AC Paste
+ 21e AC Select All
+ 21f AC Find
+ 220 AC Find and Replace
+ 221 AC Search
+ 222 AC Go To
+ 223 AC Home
+ 224 AC Back
+ 225 AC Forward
+ 226 AC Stop
+ 227 AC Refresh
+ 228 AC Previous Link
+ 229 AC Next Link
+ 22b AC History
+ 22c AC Subscriptions
+ 22d AC Zoom In
+ 22e AC Zoom Out
+ 22f AC Zoom
+ 230 AC Full Screen View
+ 231 AC Normal View
+ 232 AC View Toggle
+ 233 AC Scroll Up
+ 234 AC Scroll Down
+ 235 AC Scroll
+ 236 AC Pan Left
+ 237 AC Pan Right
+ 238 AC Pan
+ 239 AC New Window
+ 23a AC Tile Horizontally
+ 23b AC Tile Vertically
+ 23c AC Format
+HUT 0d Digitizer
+ 000 Undefined
+ 001 Digitizer
+ 002 Pen
+ 003 Light Pen
+ 004 Touch Screen
+ 005 Touch Pad
+ 006 White Board
+ 007 Coordinate Measuring Machine
+ 008 3D Digitizer
+ 009 Stereo Plotter
+ 00a Articulated Arm
+ 00b Armature
+ 00c Multiple Point Digitizer
+ 00d Free Space Wand
+ 020 Stylus
+ 021 Puck
+ 022 Finger
+ 030 Tip Pressure
+ 031 Barrel Pressure
+ 032 In Range
+ 033 Touch
+ 034 Untouch
+ 035 Tap
+ 036 Quality
+ 037 Data Valid
+ 038 Transducer Index
+ 039 Tablet Function Keys
+ 03a Program Change Keys
+ 03b Battery Strength
+ 03c Invert
+ 03d X Tilt
+ 03e Y Tilt
+ 03f Azimuth
+ 040 Altitude
+ 041 Twist
+ 042 Tip Switch
+ 043 Secondary Tip Switch
+ 044 Barrel Switch
+ 045 Eraser
+ 046 Tablet Pick
+ 047 Confidence
+ 048 Width
+ 049 Height
+ 051 Contact ID
+ 052 Input Mode
+ 053 Device Index
+ 054 Contact Count
+ 055 Maximum Contact Number
+HUT 0f PID Page
+ 000 Undefined
+ 001 Physical Interface Device
+ 020 Normal
+ 021 Set Effect Report
+ 022 Effect Block Index
+ 023 Parameter Block Offset
+ 024 ROM Flag
+ 025 Effect Type
+ 026 ET Constant Force
+ 027 ET Ramp
+ 028 ET Custom Force Data
+ 030 ET Square
+ 031 ET Sine
+ 032 ET Triangle
+ 033 ET Sawtooth Up
+ 034 ET Sawtooth Down
+ 040 ET Spring
+ 041 ET Damper
+ 042 ET Inertia
+ 043 ET Friction
+ 050 Duration
+ 051 Sample Period
+ 052 Gain
+ 053 Trigger Button
+ 054 Trigger Repeat Interval
+ 055 Axes Enable
+ 056 Direction Enable
+ 057 Direction
+ 058 Type Specific Block Offset
+ 059 Block Type
+ 05A Set Envelope Report
+ 05B Attack Level
+ 05C Attack Time
+ 05D Fade Level
+ 05E Fade Time
+ 05F Set Condition Report
+ 060 CP Offset
+ 061 Positive Coefficient
+ 062 Negative Coefficient
+ 063 Positive Saturation
+ 064 Negative Saturation
+ 065 Dead Band
+ 066 Download Force Sample
+ 067 Isoch Custom Force Enable
+ 068 Custom Force Data Report
+ 069 Custom Force Data
+ 06A Custom Force Vendor Defined Data
+ 06B Set Custom Force Report
+ 06C Custom Force Data Offset
+ 06D Sample Count
+ 06E Set Periodic Report
+ 06F Offset
+ 070 Magnitude
+ 071 Phase
+ 072 Period
+ 073 Set Constant Force Report
+ 074 Set Ramp Force Report
+ 075 Ramp Start
+ 076 Ramp End
+ 077 Effect Operation Report
+ 078 Effect Operation
+ 079 Op Effect Start
+ 07A Op Effect Start Solo
+ 07B Op Effect Stop
+ 07C Loop Count
+ 07D Device Gain Report
+ 07E Device Gain
+ 07F PID Pool Report
+ 080 RAM Pool Size
+ 081 ROM Pool Size
+ 082 ROM Effect Block Count
+ 083 Simultaneous Effects Max
+ 084 Pool Alignment
+ 085 PID Pool Move Report
+ 086 Move Source
+ 087 Move Destination
+ 088 Move Length
+ 089 PID Block Load Report
+ 08B Block Load Status
+ 08C Block Load Success
+ 08D Block Load Full
+ 08E Block Load Error
+ 08F Block Handle
+ 090 PID Block Free Report
+ 091 Type Specific Block Handle
+ 092 PID State Report
+ 094 Effect Playing
+ 095 PID Device Control Report
+ 096 PID Device Control
+ 097 DC Enable Actuators
+ 098 DC Disable Actuators
+ 099 DC Stop All Effects
+ 09A DC Device Reset
+ 09B DC Device Pause
+ 09C DC Device Continue
+ 09F Device Paused
+ 0A0 Actuators Enabled
+ 0A4 Safety Switch
+ 0A5 Actuator Override Switch
+ 0A6 Actuator Power
+ 0A7 Start Delay
+ 0A8 Parameter Block Size
+ 0A9 Device Managed Pool
+ 0AA Shared Parameter Blocks
+ 0AB Create New Effect Report
+ 0AC RAM Pool Available
+HUT 10 Unicode
+HUT 14 Alphanumeric Display
+ 000 Undefined
+ 001 Alphanumeric Display
+ 020 Display Attributes Report
+ 021 ASCII Character Set
+ 022 Data Read Back
+ 023 Font Read Back
+ 024 Display Control Report
+ 025 Clear Display
+ 026 Display Enable
+ 027 Screen Saver Delay
+ 028 Screen Saver Enable
+ 029 Vertical Scroll
+ 02a Horizontal Scroll
+ 02b Character Report
+ 02c Display Data
+ 02d Display Status
+ 02e Stat Not Ready
+ 02f Stat Ready
+ 030 Err Not a loadable Character
+ 031 Err Font Data Cannot Be Read
+ 032 Cursur Position Report
+ 033 Row
+ 034 Column
+ 035 Rows
+ 036 Columns
+ 037 Cursor Pixel Positioning
+ 038 Cursor Mode
+ 039 Cursor Enable
+ 03a Cursor Blink
+ 03b Font Report
+ 03c Font Data
+ 03d Character Width
+ 03e Character Height
+ 03f Character Spacing Horizontal
+ 040 Character Spacing Vertical
+ 041 Unicode Character Set
+HUT 80 USB Monitor
+ 001 Monitor Control
+ 002 EDID Information
+ 003 VDIF Information
+ 004 VESA Version
+HUT 81 USB Monitor Enumerated Values
+HUT 82 Monitor VESA Virtual Controls
+ 001 Degauss
+ 010 Brightness
+ 012 Contrast
+ 016 Red Video Gain
+ 018 Green Video Gain
+ 01a Blue Video Gain
+ 01c Focus
+ 020 Horizontal Position
+ 022 Horizontal Size
+ 024 Horizontal Pincushion
+ 026 Horizontal Pincushion Balance
+ 028 Horizontal Misconvergence
+ 02a Horizontal Linearity
+ 02c Horizontal Linearity Balance
+ 030 Vertical Position
+ 032 Vertical Size
+ 034 Vertical Pincushion
+ 036 Vertical Pincushion Balance
+ 038 Vertical Misconvergence
+ 03a Vertical Linearity
+ 03c Vertical Linearity Balance
+ 040 Parallelogram Balance (Key Distortion)
+ 042 Trapezoidal Distortion (Key)
+ 044 Tilt (Rotation)
+ 046 Top Corner Distortion Control
+ 048 Top Corner Distortion Balance
+ 04a Bottom Corner Distortion Control
+ 04c Bottom Corner Distortion Balance
+ 056 Horizontal Moire
+ 058 Vertical Moire
+ 05e Input Level Select
+ 060 Input Source Select
+ 06c Red Video Black Level
+ 06e Green Video Black Level
+ 070 Blue Video Black Level
+ 0a2 Auto Size Center
+ 0a4 Polarity Horizontal Sychronization
+ 0a6 Polarity Vertical Synchronization
+ 0aa Screen Orientation
+ 0ac Horizontal Frequency in Hz
+ 0ae Vertical Frequency in 0.1 Hz
+ 0b0 Settings
+ 0ca On Screen Display (OSD)
+ 0d4 Stereo Mode
+HUT 84 Power Device Page
+ 000 Undefined
+ 001 iName
+ 002 Present Status
+ 003 Changed Status
+ 004 UPS
+ 005 Power Supply
+ 010 Battery System
+ 011 Battery System ID
+ 012 Battery
+ 013 Battery ID
+ 014 Charger
+ 015 Charger ID
+ 016 Power Converter
+ 017 Power Converter ID
+ 018 Outlet System
+ 019 Outlet System ID
+ 01a Input
+ 01b Input ID
+ 01c Output
+ 01d Output ID
+ 01e Flow
+ 01f Flow ID
+ 020 Outlet
+ 021 Outlet ID
+ 022 Gang
+ 023 Gang ID
+ 024 Power Summary
+ 025 Power Summary ID
+ 030 Voltage
+ 031 Current
+ 032 Frequency
+ 033 Apparent Power
+ 034 Active Power
+ 035 Percent Load
+ 036 Temperature
+ 037 Humidity
+ 038 Bad Count
+ 040 Config Voltage
+ 041 Config Current
+ 042 Config Frequency
+ 043 Config Apparent Power
+ 044 Config Active Power
+ 045 Config Percent Load
+ 046 Config Temperature
+ 047 Config Humidity
+ 050 Switch On Control
+ 051 Switch Off Control
+ 052 Toggle Control
+ 053 Low Voltage Transfer
+ 054 High Voltage Transfer
+ 055 Delay Before Reboot
+ 056 Delay Before Startup
+ 057 Delay Before Shutdown
+ 058 Test
+ 059 Module Reset
+ 05a Audible Alarm Control
+ 060 Present
+ 061 Good
+ 062 Internal Failure
+ 063 Voltage out of range
+ 064 Frequency out of range
+ 065 Overload
+ 066 Over Charged
+ 067 Over Temperature
+ 068 Shutdown Requested
+ 069 Shutdown Imminent
+ 06a Reserved
+ 06b Switch On/Off
+ 06c Switchable
+ 06d Used
+ 06e Boost
+ 06f Buck
+ 070 Initialized
+ 071 Tested
+ 072 Awaiting Power
+ 073 Communication Lost
+ 0fd iManufacturer
+ 0fe iProduct
+ 0ff iSerialNumber
+HUT 85 Battery System Page
+ 000 Undefined
+ 001 SMB Battery Mode
+ 002 SMB Battery Status
+ 003 SMB Alarm Warning
+ 004 SMB Charger Mode
+ 005 SMB Charger Status
+ 006 SMB Charger Spec Info
+ 007 SMB Selector State
+ 008 SMB Selector Presets
+ 009 SMB Selector Info
+ 010 Optional Mfg. Function 1
+ 011 Optional Mfg. Function 2
+ 012 Optional Mfg. Function 3
+ 013 Optional Mfg. Function 4
+ 014 Optional Mfg. Function 5
+ 015 Connection to SMBus
+ 016 Output Connection
+ 017 Charger Connection
+ 018 Battery Insertion
+ 019 Use Next
+ 01a OK to use
+ 01b Battery Supported
+ 01c SelectorRevision
+ 01d Charging Indicator
+ 028 Manufacturer Access
+ 029 Remaining Capacity Limit
+ 02a Remaining Time Limit
+ 02b At Rate
+ 02c Capacity Mode
+ 02d Broadcast To Charger
+ 02e Primary Battery
+ 02f Charge Controller
+ 040 Terminate Charge
+ 041 Terminate Discharge
+ 042 Below Remaining Capacity Limit
+ 043 Remaining Time Limit Expired
+ 044 Charging
+ 045 Discharging
+ 046 Fully Charged
+ 047 Fully Discharged
+ 048 Conditioning Flag
+ 049 At Rate OK
+ 04a SMB Error Code
+ 04b Need Replacement
+ 060 At Rate Time To Full
+ 061 At Rate Time To Empty
+ 062 Average Current
+ 063 Max Error
+ 064 Relative State Of Charge
+ 065 Absolute State Of Charge
+ 066 Remaining Capacity
+ 067 Full Charge Capacity
+ 068 Run Time To Empty
+ 069 Average Time To Empty
+ 06a Average Time To Full
+ 06b Cycle Count
+ 080 Batt. Pack Model Level
+ 081 Internal Charge Controller
+ 082 Primary Battery Support
+ 083 Design Capacity
+ 084 Specification Info
+ 085 Manufacturer Date
+ 086 Serial Number
+ 087 iManufacturerName
+ 088 iDeviceName
+ 089 iDeviceChemistry
+ 08a Manufacturer Data
+ 08b Rechargeable
+ 08c Warning Capacity Limit
+ 08d Capacity Granularity 1
+ 08e Capacity Granularity 2
+ 08f iOEMInformation
+ 0c0 Inhibit Charge
+ 0c1 Enable Polling
+ 0c2 Reset To Zero
+ 0d0 AC Present
+ 0d1 Battery Present
+ 0d2 Power Fail
+ 0d3 Alarm Inhibited
+ 0d4 Thermistor Under Range
+ 0d5 Thermistor Hot
+ 0d6 Thermistor Cold
+ 0d7 Thermistor Over Range
+ 0d8 Voltage Out Of Range
+ 0d9 Current Out Of Range
+ 0da Current Not Regulated
+ 0db Voltage Not Regulated
+ 0dc Master Mode
+ 0f0 Charger Selector Support
+ 0f1 Charger Spec
+ 0f2 Level 2
+ 0f3 Level 3
+HUT 86 Power Pages
+HUT 87 Power Pages
+HUT 8c Bar Code Scanner Page (POS)
+HUT 8d Scale Page (POS)
+HUT 90 Camera Control Page
+HUT 91 Arcade Control Page
+HUT f0 Cash Device
+ 0f1 Cash Drawer
+ 0f2 Cash Drawer Number
+ 0f3 Cash Drawer Set
+ 0f4 Cash Drawer Status
+HUT ff Vendor Specific
+
+# List of Languages
+
+# Syntax:
+# L language_id language_name
+# dialect_id dialect_name
+
+L 0001 Arabic
+ 01 Saudi Arabia
+ 02 Iraq
+ 03 Egypt
+ 04 Libya
+ 05 Algeria
+ 06 Morocco
+ 07 Tunesia
+ 08 Oman
+ 09 Yemen
+ 0a Syria
+ 0b Jordan
+ 0c Lebanon
+ 0d Kuwait
+ 0e U.A.E
+ 0f Bahrain
+ 10 Qatar
+L 0002 Bulgarian
+L 0003 Catalan
+L 0004 Chinese
+ 01 Traditional
+ 02 Simplified
+ 03 Hongkong SAR, PRC
+ 04 Singapore
+ 05 Macau SAR
+L 0005 Czech
+L 0006 Danish
+L 0007 German
+ 01 German
+ 02 Swiss
+ 03 Austrian
+ 04 Luxembourg
+ 05 Liechtenstein
+L 0008 Greek
+L 0009 English
+ 01 US
+ 02 UK
+ 03 Australian
+ 04 Canadian
+ 05 New Zealand
+ 06 Ireland
+ 07 South Africa
+ 08 Jamaica
+ 09 Carribean
+ 0a Belize
+ 0b Trinidad
+ 0c Zimbabwe
+ 0d Philippines
+L 000a Spanish
+ 01 Castilian
+ 02 Mexican
+ 03 Modern
+ 04 Guatemala
+ 05 Costa Rica
+ 06 Panama
+ 07 Dominican Republic
+ 08 Venzuela
+ 09 Colombia
+ 0a Peru
+ 0b Argentina
+ 0c Ecuador
+ 0d Chile
+ 0e Uruguay
+ 0f Paraguay
+ 10 Bolivia
+ 11 El Salvador
+ 12 Honduras
+ 13 Nicaragua
+ 14 Puerto Rico
+L 000b Finnish
+L 000c French
+ 01 French
+ 02 Belgian
+ 03 Canadian
+ 04 Swiss
+ 05 Luxembourg
+ 06 Monaco
+L 000d Hebrew
+L 000e Hungarian
+L 000f Idelandic
+L 0010 Italian
+ 01 Italian
+ 02 Swiss
+L 0011 Japanese
+L 0012 Korean
+ 01 Korean
+L 0013 Dutch
+ 01 Dutch
+ 02 Belgian
+L 0014 Norwegian
+ 01 Bokmal
+ 02 Nynorsk
+L 0015 Polish
+L 0016 Portuguese
+ 01 Portuguese
+ 02 Brazilian
+L 0017 forgotten
+L 0018 Romanian
+L 0019 Russian
+L 001a Serbian
+ 01 Croatian
+ 02 Latin
+ 03 Cyrillic
+L 001b Slovak
+L 001c Albanian
+L 001d Swedish
+ 01 Swedish
+ 02 Finland
+L 001e Thai
+L 001f Turkish
+L 0020 Urdu
+ 01 Pakistan
+ 02 India
+L 0021 Indonesian
+L 0022 Ukrainian
+L 0023 Belarusian
+L 0024 Slovenian
+L 0025 Estonian
+L 0026 Latvian
+L 0027 Lithuanian
+ 01 Lithuanian
+L 0028 forgotten
+L 0029 Farsi
+L 002a Vietnamese
+L 002b Armenian
+L 002c Azeri
+ 01 Cyrillic
+ 02 Latin
+L 002d Basque
+L 002e forgotten
+L 002f Macedonian
+L 0036 Afrikaans
+L 0037 Georgian
+L 0038 Faeroese
+L 0039 Hindi
+L 003e Malay
+ 01 Malaysia
+ 02 Brunei Darassalam
+L 003f Kazak
+L 0041 Awahili
+L 0043 Uzbek
+ 01 Latin
+ 02 Cyrillic
+L 0044 Tatar
+L 0045 Bengali
+L 0046 Punjabi
+L 0047 Gujarati
+L 0048 Oriya
+L 0049 Tamil
+L 004a Telugu
+L 004b Kannada
+L 004c Malayalam
+L 004d Assamese
+L 004e Marathi
+L 004f Sanskrit
+L 0057 Konkani
+L 0058 Manipuri
+L 0059 Sindhi
+L 0060 Kashmiri
+ 02 India
+L 0061 Nepali
+ 02 India
+
+# HID Descriptor bCountryCode
+# HID Specification 1.11 (2001-06-27) page 23
+#
+# Syntax:
+# HCC country_code keymap_type
+
+HCC 00 Not supported
+HCC 01 Arabic
+HCC 02 Belgian
+HCC 03 Canadian-Bilingual
+HCC 04 Canadian-French
+HCC 05 Czech Republic
+HCC 06 Danish
+HCC 07 Finnish
+HCC 08 French
+HCC 09 German
+HCC 10 Greek
+HCC 11 Hebrew
+HCC 12 Hungary
+HCC 13 International (ISO)
+HCC 14 Italian
+HCC 15 Japan (Katakana)
+HCC 16 Korean
+HCC 17 Latin American
+HCC 18 Netherlands/Dutch
+HCC 19 Norwegian
+HCC 20 Persian (Farsi)
+HCC 21 Poland
+HCC 22 Portuguese
+HCC 23 Russia
+HCC 24 Slovakia
+HCC 25 Spanish
+HCC 26 Swedish
+HCC 27 Swiss/French
+HCC 28 Swiss/German
+HCC 29 Switzerland
+HCC 30 Taiwan
+HCC 31 Turkish-Q
+HCC 32 UK
+HCC 33 US
+HCC 34 Yugoslavia
+HCC 35 Turkish-F
+
+# List of Video Class Terminal Types
+
+# Syntax:
+# VT terminal_type terminal_type_name
+
+VT 0100 USB Vendor Specific
+VT 0101 USB Streaming
+VT 0200 Input Vendor Specific
+VT 0201 Camera Sensor
+VT 0202 Sequential Media
+VT 0300 Output Vendor Specific
+VT 0301 Generic Display
+VT 0302 Sequential Media
+VT 0400 External Vendor Specific
+VT 0401 Composite Video
+VT 0402 S-Video
+VT 0403 Component Video
diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD
new file mode 100644
index 000000000..c732a46ae
--- /dev/null
+++ b/core/util-linux/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 141022 2011-10-21 21:39:17Z tomegun $
+# Maintainer: Tom Gundersen <teg@jklm.no>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=util-linux
+pkgver=2.20.1
+pkgrel=1.1
+pkgdesc="Miscellaneous system utilities for Linux"
+url="http://userweb.kernel.org/~kzak/util-linux-ng/"
+arch=('i686' 'x86_64' 'mips64el')
+groups=('base')
+depends=('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}/v${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+source=(ftp://ftp.infradead.org/pub/${pkgname}/v2.20/${pkgname}-${pkgver}.tar.bz2)
+optdepends=('perl: for chkdupexe support')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # hardware clock
+ sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i include/pathnames.h
+
+ ./configure --enable-arch\
+ --enable-write\
+ --enable-raw\
+ --disable-wall\
+ --enable-partx\
+ --enable-libmount-mount
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -dm755 "${pkgdir}/var/lib/hwclock"
+
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('079b37517fd4e002a2e6e992e8b4e361')
diff --git a/core/vi/PKGBUILD b/core/vi/PKGBUILD
new file mode 100644
index 000000000..315396003
--- /dev/null
+++ b/core/vi/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 142189 2011-11-06 02:27:51Z stephane $
+# Maintainer: tobias [ tobias at archlinux org ]
+
+pkgname=vi
+pkgver=050325
+pkgrel=2
+epoch=1
+pkgdesc='The original ex/vi text editor.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://ex-vi.sourceforge.net/'
+license=('custom:ex')
+depends=('ncurses')
+optdepends=('mailx: used by the preserve command for notification')
+groups=('base')
+options=(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/wget/PKGBUILD b/core/wget/PKGBUILD
new file mode 100644
index 000000000..941e89846
--- /dev/null
+++ b/core/wget/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 138218 2011-09-19 05:03:16Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=wget
+pkgver=1.13.4
+pkgrel=1.1
+pkgdesc="A network utility to retrieve files from the Web"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+md5sums=('7f518b3a71e9efd330e9a0c3714f8463')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Note : We do not build with --enable-nls, because there is a bug in wget causing
+ # international domain names to be not properly converted to punycode if
+ # the current locale is a UTF-8 one
+ # See : http://lists.gnu.org/archive/html/bug-wget/2011-02/msg00026.html
+
+ ./configure -with-ssl=openssl --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
+
+ # remove IRI option from wgetrc as it does not work (see above)
+ sed -i '118,120d' $pkgdir/etc/wgetrc
+
+}
diff --git a/core/wget/wget.install b/core/wget/wget.install
new file mode 100644
index 000000000..8eb6a2c3f
--- /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..6a60bea84
--- /dev/null
+++ b/core/which/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142082 2011-11-04 23:36:20Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=which
+pkgver=2.20
+pkgrel=5
+pkgdesc="A utility to show the full path of commands"
+arch=('i686' 'x86_64' 'mips64el')
+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..1b996d604
--- /dev/null
+++ b/core/wireless_tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142302 2011-11-08 06:06:08Z tomegun $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributer: Jason Chu <jchu@xentac.net>
+
+pkgname=wireless_tools
+pkgver=29
+pkgrel=5.1
+pkgdesc="Wireless Tools"
+arch=('i686' 'x86_64' 'mips64el')
+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..582bae1e3
--- /dev/null
+++ b/core/wpa_actiond/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 142219 2011-11-06 10:21:32Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=wpa_actiond
+pkgver=1.1
+pkgrel=3.1
+pkgdesc="Daemon that connects to wpa_supplicant and handles connect and disconnect events"
+arch=('i686' 'x86_64' 'mips64el')
+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..9ba3ad15a
--- /dev/null
+++ b/core/wpa_supplicant/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 142217 2011-11-06 10:21:29Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=wpa_supplicant
+pkgver=0.7.3
+pkgrel=4.1
+pkgdesc="A utility providing key negotiation for WPA wireless networks"
+url="http://hostap.epitest.fi/wpa_supplicant"
+arch=('i686' 'x86_64' 'mips64el')
+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..e4fcf373b
--- /dev/null
+++ b/core/xfsprogs/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142968 2011-11-19 08:45:36Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=xfsprogs
+pkgver=3.1.7
+pkgrel=1
+pkgdesc="XFS filesystem utilities"
+arch=('i686' 'x86_64' 'mips64el')
+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")
+md5sums=('049cf9873794ea49d0bb3f12d45748a4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export OPTIMIZER="-march=${CARCH/_/-} -O1"
+ [ "$CARCH" = "mips64el" ] && export OPTIMIZER="-mabi=n32 -march=loongson2f -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
+}
diff --git a/core/xinetd/PKGBUILD b/core/xinetd/PKGBUILD
new file mode 100644
index 000000000..8401ed2a9
--- /dev/null
+++ b/core/xinetd/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 142541 2011-11-11 21:16:44Z tpowa $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=xinetd
+pkgver=2.3.14
+pkgrel=8
+pkgdesc="A secure replacement for inetd"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xinetd.org/"
+license=('custom')
+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 --without-libwrap \
+ --build=${CHOST} --host=${CHOST}
+ 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..cb1c045b3
--- /dev/null
+++ b/core/xz/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 124452 2011-05-21 17:48:29Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: François Charette <firmicus@gmx.net>
+
+pkgname=xz
+pkgver=5.0.3
+pkgrel=1
+pkgdesc='Library and command line tools for XZ and LZMA compressed files'
+arch=('i686' 'x86_64' 'mips64el')
+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.gz")
+md5sums=('fefe52f9ecd521de2a8ce38c21a27574')
+
+# 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
+}
diff --git a/core/zlib/PKGBUILD b/core/zlib/PKGBUILD
new file mode 100644
index 000000000..e92f893de
--- /dev/null
+++ b/core/zlib/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 135916 2011-08-20 07:14:14Z allan $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=zlib
+pkgver=1.2.5
+pkgrel=4
+pkgdesc='Compression library implementing the deflate compression method found in gzip and PKZIP'
+arch=('i686' 'x86_64' 'mips64el')
+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
+ # 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
+}
+
+check() {
+ cd ${srcdir}/zlib-$pkgver
+ make check
+}
+
+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/elementary/gtk-engine-equinox/PKGBUILD b/elementary/gtk-engine-equinox/PKGBUILD
index 32f5db368..1fa27c798 100644
--- a/elementary/gtk-engine-equinox/PKGBUILD
+++ b/elementary/gtk-engine-equinox/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=1
pkgdesc="A heavily modified version of the beautiful Aurora engine"
url="http://gnome-look.org/content/show.php/Equinox+GTK+Engine?content=121881"
license=('GPL2')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('gtk2')
makedepends=('pkgconfig')
conflicts=()
diff --git a/elementary/postler/PKGBUILD b/elementary/postler/PKGBUILD
index 55b523f82..38a5d9a0d 100644
--- a/elementary/postler/PKGBUILD
+++ b/elementary/postler/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=postler
pkgver=0.1.1
pkgrel=2
pkgdesc="Postler is simple desktop mail client built in vala"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="https://launchpad.net/postler"
license=('GPL')
depends=('libwebkit' 'libunique' 'libcanberra' 'libnotify')
diff --git a/elementary/vala-010/PKGBUILD b/elementary/vala-010/PKGBUILD
index 7712f99c4..aad2232fe 100644
--- a/elementary/vala-010/PKGBUILD
+++ b/elementary/vala-010/PKGBUILD
@@ -5,7 +5,7 @@ _pkgname=vala
pkgver=0.10.4
pkgrel=1
pkgdesc="Compiler for the GObject type system (0.10 branch)"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://live.gnome.org/Vala"
license=('LGPL2.1')
depends=('glib2')
diff --git a/extra/a2ps/PKGBUILD b/extra/a2ps/PKGBUILD
new file mode 100644
index 000000000..b1fa5191c
--- /dev/null
+++ b/extra/a2ps/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 123160 2011-05-09 02:11:04Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=a2ps
+pkgver=4.14
+pkgrel=2
+pkgdesc="An Any to PostScript filter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/a2ps/"
+license=('GPL3')
+depends=('ghostscript' 'psutils' 'imagemagick' 'perl')
+makedepends=('gperf')
+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
+ patch -p1 < ../a2ps-4.13c-emacs.patch
+ patch -p1 < ../a2ps-4.13-manpage-chmod.patch
+ patch -p1 < ../a2ps-4.14-check-mempcpy.patch
+ patch -p0 < ../a2ps-4.14-fix-stpcpy-proto.patch
+ libtoolize --force --copy
+ autoreconf -I m4
+ ./configure --prefix=/usr --sysconfdir=/etc/a2ps \
+ --includedir=/usr/include --enable-nls
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ sed -i "s:^countdictstack: \0:" "${pkgdir}/usr/bin/psset"
+}
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..581b0abd1
--- /dev/null
+++ b/extra/a52dec/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 122062 2011-05-02 05:42:16Z andrea $
+# Maintainer:
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=a52dec
+pkgver=0.7.4
+pkgrel=5
+pkgdesc="A free library for decoding ATSC A/52 streams"
+url="http://liba52.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('glibc')
+options=(!libtool)
+source=("http://liba52.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz"
+ 'a52dec-0.7.4-build.patch')
+md5sums=('caa9f5bc44232dc8aeea773fea56be80'
+ 'fa16f224a7dceb7613824380abef0052')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/a52dec-0.7.4-build.patch"
+ ./bootstrap
+ ./configure --prefix=/usr --enable-shared \
+ --build=$CHOST --host=$CHOST
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m644 liba52/a52_internal.h "${pkgdir}/usr/include/a52dec/"
+}
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..778065b21
--- /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.1
+pkgdesc="A portable ASCII art graphic library"
+arch=('i686' 'x86_64' 'mips64el')
+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 --host=$CHOST
+ 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/abiword-2.8.6-no-undefined.patch b/extra/abiword/abiword-2.8.6-no-undefined.patch
new file mode 100644
index 000000000..c07000edb
--- /dev/null
+++ b/extra/abiword/abiword-2.8.6-no-undefined.patch
@@ -0,0 +1,21 @@
+diff -u -r abiword-2.8.6.orig/src/Makefile.am abiword-2.8.6/src/Makefile.am
+--- abiword-2.8.6.orig/src/Makefile.am 2009-09-09 15:11:01.000000000 +0200
++++ abiword-2.8.6/src/Makefile.am 2011-08-02 23:35:51.904761961 +0200
+@@ -107,7 +107,7 @@
+
+ AbiWord_LDFLAGS = \
+ $(DEPS_LIBS) \
+- --no-undefined \
++ -Wl,--no-undefined \
+ -avoid-version \
+ -export-dynamic \
+ -headerpad_max_install_names
+@@ -129,7 +129,7 @@
+
+ abiword_LDFLAGS = \
+ $(platform_ldflags) \
+- --no-undefined \
++ -Wl,--no-undefined \
+ -avoid-version \
+ -export-dynamic
+
diff --git a/extra/abiword/abiword.install b/extra/abiword/abiword.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/extra/abiword/abiword.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/abook/PKGBUILD b/extra/abook/PKGBUILD
new file mode 100644
index 000000000..44f9699b8
--- /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' 'mips64el')
+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/accountsservice/PKGBUILD b/extra/accountsservice/PKGBUILD
new file mode 100644
index 000000000..69602c83c
--- /dev/null
+++ b/extra/accountsservice/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 141268 2011-10-27 16:31:57Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=accountsservice
+pkgver=0.6.15
+pkgrel=1
+pkgdesc="D-Bus interface for user account query and manipulation"
+arch=(i686 x86_64 'mips64el')
+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=('939e58e57334801ca578b182a09141c4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/accountsservice \
+ --with-systemdsystemunitdir=/lib/systemd/system \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/acpi/PKGBUILD b/extra/acpi/PKGBUILD
new file mode 100644
index 000000000..0014dd64d
--- /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' 'mips64el')
+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..cee35d88c
--- /dev/null
+++ b/extra/acpid/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 143248 2011-11-24 01:29:25Z eric $
+# Maintainer:
+# Contributor: xduugu
+# Contributor: Manolis Tzanidakis
+# Contributor: Jonathan Schmidt <j.schmidt@archlinux.us
+
+pkgname=acpid
+pkgver=2.0.13
+pkgrel=1
+pkgdesc="A daemon for delivering ACPI power management events with netlink support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tedfelix.com/linux/acpid-netlink.html"
+license=('GPL')
+depends=('bash')
+replaces=('acpid2')
+backup=('etc/acpi/handler.sh' 'etc/acpi/events/anything' 'etc/conf.d/acpid')
+source=("http://www.tedfelix.com/linux/$pkgname-$pkgver.tar.gz"
+ 'acpid'
+ 'anything'
+ 'handler.sh'
+ 'acpid.conf.d')
+md5sums=('5bbbb9a320192df1cdd8d0e9a0196379'
+ 'd69203a032c4583f9abaafcf21a7ed84'
+ '2d37b98d6e74bab815604b8b48c6cfd4'
+ 'd411b758e8531adee191b66bcbc2892d'
+ '929c6d2e91295c22ed9ec6212d7eabef')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm755 "$srcdir/acpid" "$pkgdir/etc/rc.d/acpid"
+ install -Dm644 "$srcdir/anything" "$pkgdir/etc/acpi/events/anything"
+ install -Dm755 "$srcdir/handler.sh" "$pkgdir/etc/acpi/handler.sh"
+ install -Dm644 "$srcdir/acpid.conf.d" "$pkgdir/etc/conf.d/acpid"
+
+ chmod 755 "${pkgdir}"/usr/sbin/acpid
+}
diff --git a/extra/acpid/acpid b/extra/acpid/acpid
new file mode 100644
index 000000000..288ac078d
--- /dev/null
+++ b/extra/acpid/acpid
@@ -0,0 +1,38 @@
+#!/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
+ sleep 1
+ $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..b60103a2d
--- /dev/null
+++ b/extra/acpid/acpid.conf.d
@@ -0,0 +1,5 @@
+#
+# 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..505ed7c11
--- /dev/null
+++ b/extra/acpid/handler.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+# Default acpi script that takes an entry for all actions
+
+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
+ PBTN|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|ACAD|ADP0)
+ 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)
+ case "$3" in
+ close)
+ #echo "LID closed!">/dev/tty5
+ ;;
+ open)
+ #echo "LID opened!">/dev/tty5
+ ;;
+ esac
+ ;;
+
+ *)
+ logger "ACPI group/action undefined: $1 / $2"
+ ;;
+esac
diff --git a/extra/aiksaurus/PKGBUILD b/extra/aiksaurus/PKGBUILD
new file mode 100644
index 000000000..7363dc4a6
--- /dev/null
+++ b/extra/aiksaurus/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137720 2011-09-10 13:53:53Z pierre $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=aiksaurus
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="A cross-platform, open-source thesaurus"
+url="http://aiksaurus.sourceforge.net/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+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
+
+ ./configure --prefix=/usr --with-gtk
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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/aisleriot/PKGBUILD b/extra/aisleriot/PKGBUILD
new file mode 100644
index 000000000..314410011
--- /dev/null
+++ b/extra/aisleriot/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 142864 2011-11-17 18:34:18Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=aisleriot
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="GNOME Solitaire card games"
+arch=(mips64el)
+license=(GPL)
+url="http://www.gnome.org"
+groups=('gnome-extra')
+depends=(libsm gconf guile libcanberra librsvg hicolor-icon-theme dconf)
+makedepends=(gnome-doc-utils intltool itstool)
+options=('!emptydirs' '!libtool')
+install=aisleriot.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('818e16767f30238a98332fe07e8b905376a71de05feb3de19815652a48fdfcca')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ 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 aisleriot ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/aisleriot/aisleriot.install b/extra/aisleriot/aisleriot.install
new file mode 100644
index 000000000..713506dba
--- /dev/null
+++ b/extra/aisleriot/aisleriot.install
@@ -0,0 +1,22 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ usr/sbin/gconfpkg --install aisleriot
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall aisleriot
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+}
diff --git a/extra/akonadi/PKGBUILD b/extra/akonadi/PKGBUILD
new file mode 100644
index 000000000..ad192cfb9
--- /dev/null
+++ b/extra/akonadi/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144041 2011-12-02 20:54:07Z ibiru $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=akonadi
+pkgver=1.6.2
+pkgrel=2
+pkgdesc="PIM layer, which provides an asynchronous API to access all kind of PIM data"
+arch=('i686' 'x86_64' 'mips64el')
+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.kde.org/stable/${pkgname}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('07e2aa2e6953ac518f9306911747e264')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ CXX="g++" \
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINSTALL_QSQLITE_IN_QT_PREFIX=TRUE
+ 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/alex/PKGBUILD b/extra/alex/PKGBUILD
new file mode 100644
index 000000000..1882aaf44
--- /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' 'mips64el')
+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/PKGBUILD b/extra/allegro/PKGBUILD
new file mode 100644
index 000000000..db0594f7a
--- /dev/null
+++ b/extra/allegro/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 142269 2011-11-07 18:27:05Z eric $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=allegro
+pkgver=5.0.5
+pkgrel=1
+pkgdesc="Portable library mainly aimed at video game and multimedia programming"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://alleg.sourceforge.net/"
+license=('custom')
+depends=('jack' 'libxpm' 'libxxf86vm' 'libxxf86dga' 'libxcursor' 'libpng' 'libgl' 'libjpeg')
+makedepends=('cmake' 'mesa' 'freetype2')
+source=(http://downloads.sourceforge.net/alleg/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4d879afe7062f7dc9b8913cba2e44bdf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+
+ cmake "../${pkgname}-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWANT_DOCS=OFF
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 ../${pkgname}-${pkgver}/LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/allegro4/LICENSE b/extra/allegro4/LICENSE
new file mode 100644
index 000000000..497c56a8f
--- /dev/null
+++ b/extra/allegro4/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/allegro4/PKGBUILD b/extra/allegro4/PKGBUILD
new file mode 100644
index 000000000..eae85013f
--- /dev/null
+++ b/extra/allegro4/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 140690 2011-10-18 03:46:10Z eric $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=allegro4
+pkgver=4.4.2
+pkgrel=1
+pkgdesc="Portable library mainly aimed at video game and multimedia programming (legacy version)"
+arch=('i686' 'x86_64')
+url="http://alleg.sourceforge.net/"
+license=('custom')
+depends=('sh' 'jack' 'libxpm' 'libxxf86vm' 'libxxf86dga' 'libxcursor')
+makedepends=('cmake' 'libpng')
+source=(http://downloads.sourceforge.net/alleg/allegro-${pkgver}.tar.gz
+ LICENSE)
+md5sums=('4db71b0460fc99926ae91d223199c2e6'
+ 'cd97e2992e8e66b9e6a449d832dc9c7a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+
+ cmake "../allegro-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWANT_DOCS=OFF
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/alsa-lib/PKGBUILD b/extra/alsa-lib/PKGBUILD
new file mode 100644
index 000000000..7fe44ddc0
--- /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.1
+pkgdesc="An alternative implementation of Linux sound support"
+arch=('i686' 'x86_64' 'mips64el')
+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..213721546
--- /dev/null
+++ b/extra/alsa-oss/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 136976 2011-09-04 11:56:05Z pierre $
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=alsa-oss
+pkgver=1.0.17
+pkgrel=2
+pkgdesc="OSS compatibility library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.alsa-project.org"
+options=('!libtool')
+depends=('alsa-lib')
+source=("ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver.tar.bz2")
+md5sums=('1b1850c2fc91476a73d50f537cbd402f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/alsa-plugins/PKGBUILD b/extra/alsa-plugins/PKGBUILD
new file mode 100644
index 000000000..f1470b1d9
--- /dev/null
+++ b/extra/alsa-plugins/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 142610 2011-11-12 17:15:00Z ibiru $
+# 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=3
+pkgdesc="Extra alsa plugins"
+arch=(i686 x86_64 'mips64el')
+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
+
+ mkdir -p "$pkgdir/usr/share/doc/$pkgname"
+ install -m644 doc/README* doc/*.txt "$pkgdir/usr/share/doc/$pkgname/"
+}
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..b19663a19
--- /dev/null
+++ b/extra/alsa-utils/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 135667 2011-08-17 07:46:33Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=alsa-utils
+pkgver=1.0.24.2
+pkgrel=3
+pkgdesc="An alternative implementation of Linux sound support"
+arch=('i686' 'x86_64' 'mips64el')
+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 --with-systemdsystemunitdir=/lib/systemd/system
+ 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'
+ '7521bf20f5b3501a510ec4462ae4a934'
+ '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..48037fd3e
--- /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; 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..5b34de65f
--- /dev/null
+++ b/extra/alsaplayer/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 134328 2011-08-02 22:50:41Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=alsaplayer
+pkgver=0.99.81
+pkgrel=2.1
+pkgdesc="A heavily multi-threaded PCM player that tries to excercise the ALSA library and driver quite a bit"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.alsaplayer.org/"
+license=('GPL')
+depends=('gcc-libs' 'desktop-file-utils')
+makedepends=('gtk2' 'libid3tag' 'libvorbis' 'libmad' 'libmikmod' 'jack' 'mesa' 'audiofile' 'doxygen')
+optdepends=('gtk2: for the gtk2 GUI interface' \
+ 'libgl: for the OpenGL visual plugins' \
+ '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')
+install=alsaplayer.install
+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/alsaplayer/alsaplayer.install b/extra/alsaplayer/alsaplayer.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/extra/alsaplayer/alsaplayer.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/amarok/PKGBUILD b/extra/amarok/PKGBUILD
new file mode 100644
index 000000000..cf0bb42f2
--- /dev/null
+++ b/extra/amarok/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 142612 2011-11-12 17:15:02Z ibiru $
+# 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.3
+pkgrel=3
+pkgdesc="The powerful music player for KDE"
+arch=("i686" "x86_64" 'mips64el')
+url="http://amarok.kde.org"
+license=('GPL2' 'LGPL2.1' 'FDL')
+depends=('kdebase-runtime' 'mysql' 'qtscriptgenerator' 'taglib-extras'
+ 'liblastfm' 'ffmpeg' 'libofa' 'qjson')
+makedepends=('pkgconfig' 'automoc4' 'cmake' 'libgpod' 'libmtp' 'loudmouth'
+ 'libmygpo-qt')
+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"
+ "libmygpo-qt: gpodder.net Internet Service")
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('24e8141bcbd065448911fa872c50197d')
+
+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..81ce5c4b0
--- /dev/null
+++ b/extra/amarok/amarok.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/amule/PKGBUILD b/extra/amule/PKGBUILD
new file mode 100644
index 000000000..aa6b6658b
--- /dev/null
+++ b/extra/amule/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 144467 2011-12-06 11:17:39Z 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=10688
+pkgrel=1
+pkgdesc="An eMule-like client for ed2k p2p network"
+arch=('i686' 'x86_64' 'mips64el')
+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=('0bb387c6aafa146e75130e1537a64066')
+
+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..e074968c5
--- /dev/null
+++ b/extra/anjuta-extras/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 139219 2011-10-01 18:55:44Z ibiru $
+# Mantainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=anjuta-extras
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Anjuta Integrated Development Environment extra plugins"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('anjuta')
+makedepends=('intltool')
+install=anjuta-extras.install
+url="http://anjuta.sourceforge.net/"
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz)
+options=('!libtool' '!emptydirs')
+sha256sums=('cda9624952d1e9e5b442c1b972256b618b3d3c6aa3f1069bb6ae1796eecf55a4')
+
+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/anjuta-extras/anjuta-extras.install b/extra/anjuta-extras/anjuta-extras.install
new file mode 100644
index 000000000..a96048c1d
--- /dev/null
+++ b/extra/anjuta-extras/anjuta-extras.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/anjuta/PKGBUILD b/extra/anjuta/PKGBUILD
new file mode 100644
index 000000000..93c2775d2
--- /dev/null
+++ b/extra/anjuta/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142974 2011-11-19 10:42:16Z ibiru $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Harley Laue <losinggeneration@yahoo.com>
+
+pkgname=anjuta
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="GNOME Integrated Development Environment (IDE)"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('vte3' 'gdl' 'autogen' 'devhelp' 'glade' 'libgda' 'subversion' 'gnome-icon-theme' 'vala' 'dconf')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection')
+url="http://anjuta.sourceforge.net/"
+install=anjuta.install
+source=(ftp://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+options=('!libtool' '!emptydirs')
+sha256sums=('909fee6af9b86192eecac47e417f1de8bd8c759dfd2bf3ee288bb146a575683e')
+
+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
+
+ sed -i "1s|#!/usr/bin/python$|&2|" \
+ $pkgdir/usr/share/anjuta/project/{pygtk,python}/src/main.py
+}
diff --git a/extra/anjuta/anjuta.install b/extra/anjuta/anjuta.install
new file mode 100644
index 000000000..59113c6f5
--- /dev/null
+++ b/extra/anjuta/anjuta.install
@@ -0,0 +1,21 @@
+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
+ 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/extra/anthy/PKGBUILD b/extra/anthy/PKGBUILD
new file mode 100644
index 000000000..c0a3fbf9a
--- /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' 'mips64el')
+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..b002792bb
--- /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' 'mips64el')
+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/PKGBUILD b/extra/apache/PKGBUILD
new file mode 100644
index 000000000..7c1d62c92
--- /dev/null
+++ b/extra/apache/PKGBUILD
@@ -0,0 +1,145 @@
+# $Id: PKGBUILD 138021 2011-09-14 11:59:52Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apache
+pkgver=2.2.21
+pkgrel=1.1
+pkgdesc='A high performance Unix-based HTTP server'
+arch=('i686' 'x86_64' 'mips64el')
+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.17-01
+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
+ ${_itkurl}/11-fix-htaccess-reads-for-persistent-connections.patch
+ apachectl-confd.patch
+ apache.conf.d
+ httpd.logrotate
+ httpd
+ arch.layout)
+md5sums=('1696ae62cd879ab1d4dd9ff021a470f2'
+ 'f1d9d41360908ceb2374da55ae99197a'
+ 'cdfa04985a0efa850976aef01c2a0c40'
+ '0930d2d0612eb0a53a0d00aea7e8687f'
+ '3a0c29bb91442c33ea73ebbe072af922'
+ '0ef4729a6f1ffc848ad0e9b440a66f66'
+ '940944caa948340b11ddae56adaef89b'
+ 'ce09a987523884de8838f73dc8ec0d19'
+ 'e75b7dd8d8afcd299ba4ab2ab81c11e4'
+ 'ce1ccc21f3ad8625169c8f62913450ac'
+ '1e5b222edcfbf99a3edc56fcb2074fbe'
+ '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
+ # Fix patch to apply with latest Apache version
+ sed -i -e 's/mpmt_os2}/mpmt_os2|winnt}/g' "${srcdir}/03-add-mpm-to-build-system.patch"
+
+ 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"
+ patch -Np1 -i "${srcdir}/11-fix-htaccess-reads-for-persistent-connections.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..8194873dc
--- /dev/null
+++ b/extra/apr-util/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143806 2011-11-29 13:33:24Z stephane $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apr-util
+pkgver=1.3.12
+pkgrel=3
+pkgdesc="The Apache Portable Runtime"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://apr.apache.org/"
+depends=('apr' 'gdbm' 'expat' 'db' 'libldap' 'unixodbc')
+options=('!libtool')
+license=('APACHE')
+source=("http://www.apache.org/dist/apr/apr-util-${pkgver}.tar.bz2")
+md5sums=('0f671b037ca62751a8a7005578085560')
+
+build() {
+ cd "${srcdir}/apr-util-${pkgver}"
+ ./configure --prefix=/usr --with-apr=/usr \
+ --without-pgsql --without-mysql --without-sqlite2 --without-sqlite3 \
+ --with-berkeley-db=/usr --with-gdbm=/usr --with-ldap
+ make
+}
+
+package() {
+ cd "${srcdir}/apr-util-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/apr/PKGBUILD b/extra/apr/PKGBUILD
new file mode 100644
index 000000000..78753328d
--- /dev/null
+++ b/extra/apr/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125814 2011-05-30 09:11:42Z 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.5
+pkgrel=1
+pkgdesc="The Apache Portable Runtime"
+arch=('i686' 'x86_64' 'mips64el')
+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=('8b53f5a5669d0597f2da889a2f576eb6')
+
+build() {
+ cd "${srcdir}/apr-${pkgver}"
+ export apr_cv_accept4=no
+
+ ./configure --prefix=/usr --includedir=/usr/include/apr-1 \
+ --with-installbuilddir=/usr/share/apr-1/build \
+ --enable-nonportable-atomics \
+ --with-devrandom=/dev/urandom
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/apricots/PKGBUILD b/extra/apricots/PKGBUILD
new file mode 100644
index 000000000..36476601c
--- /dev/null
+++ b/extra/apricots/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143883 2011-11-30 13:08:53Z heftig $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=apricots
+pkgver=0.2.6
+pkgrel=5
+pkgdesc="A simple 2D flying/bombing game similar to basic side scrollers"
+arch=("i686" "x86_64" 'mips64el')
+license=('GPL')
+url="http://www.fishies.org.uk/apricots.html"
+depends=('gcc-libs' 'openal' 'sdl' 'freealut')
+#source=("http://www.fishies.org.uk/$pkgname-$pkgver.tar.gz"
+source=("ftp://ftp.archlinux.org/other/apricots/$pkgname-$pkgver.tar.gz"
+ "apricots-0.2.6-freealut.patch")
+md5sums=('910828d717e46d8cbd9c24f702d09fbc'
+ '5f9f74082dfe162ab3ba51f6ec628f99')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p0 -i $srcdir/apricots-0.2.6-freealut.patch
+ ./configure --prefix=/usr
+ make LIBTOOL='/usr/bin/libtool'
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+}
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/ardour/PKGBUILD b/extra/ardour/PKGBUILD
new file mode 100644
index 000000000..dbae38b33
--- /dev/null
+++ b/extra/ardour/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 138815 2011-09-28 12:33:40Z 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.12
+pkgrel=1
+pkgdesc="A multichannel hard disk recorder and digital audio workstation"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ardour.org/"
+license=('GPL')
+depends=('liblrdf>=0.4.0-8' 'liblo' 'libusb-compat'
+ 'libgnomecanvas' 'aubio' 'slv2>=0.6.6-6')
+ # -libgnomecanvas(+libgnomecanvasmm)
+ # +soundtouch (these +/- changes are for SYSLIBS)
+ # liblrdf versioned for https://bugs.archlinux.org/task/25005
+ # slv2 versioned for https://bugs.archlinux.org/task/25060
+makedepends=('scons' 'boost' 'cwiid')
+optdepends=('cwiid: Wiimote support')
+changelog=${pkgname}.changelog
+source=(ftp://ftp.archlinux.org/other/ardour/${pkgname}-${pkgver}.tar.bz2
+ ${pkgname}.desktop)
+md5sums=('7c031892f53aeacf08a750fc320c79c5'
+ '8aeaf433ebf781733db48e5a16b0c4da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i '/-O3/d' SConstruct
+
+ scons ${MAKEFLAGS} ARCH="${CFLAGS} -O3" \
+ PREFIX="/usr" \
+ DIST_LIBDIR="lib" \
+ FREEDESKTOP=0 \
+ FREESOUND=1 \
+ WIIMOTE=1 \
+ SYSLIBS=0 \
+ DESTDIR="${pkgdir}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ scons 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..47c111f01
--- /dev/null
+++ b/extra/ardour/ardour.changelog
@@ -0,0 +1,49 @@
+15 Jul 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 2.8.11-5:
+ Resolve previous issues with slv2 & redland/rasqal/raptor
+ - just needed rebuild of slv2 against latest redland suite [1]
+ - also needed ardour buildsystem patch for raptor2 [1][2]
+ - bring back support for slv2
+
+ [1] https://bugs.archlinux.org/task/25060
+ [2] http://tracker.ardour.org/view.php?id=4179
+
+9 Jul 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 2.8.11-4:
+ Fix build failures and runtime segfaults
+ - gcc 4.6 patch
+ - enable SYSLIBS due to ardour sigc++ issues
+ - remove slv2 dep due to ardour rasqal incompatibility [1][2]
+
+ [1] https://bugs.archlinux.org/task/25060
+ [2] https://ardour.org/node/4301
+
+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.
+ Only important changes will be logged.
+
+ * 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/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..bf0a734bf
--- /dev/null
+++ b/extra/arj/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 124090 2011-05-16 15:11:39Z andrea $
+# Maintainer:
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Gergely Tamas <dice@mfa.kfki.hu>
+
+pkgname=arj
+pkgver=3.10.22
+pkgrel=6
+pkgdesc="Free and portable clone of the ARJ archiver"
+url="http://arj.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+options=('!makeflags')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/${pkgname}/$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')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Add gentoo patches
+ patch -p1 -i "${srcdir}/001_arches_align.patch"
+ patch -p1 -i "${srcdir}/002_no_remove_static_const.patch"
+ patch -p1 -i "${srcdir}/003_64_bit_clean.patch"
+ patch -p1 -i "${srcdir}/arj-3.10.22-custom-printf.patch"
+
+ cd gnu
+ aclocal
+ autoconf
+ rm -f config.{guess,sub}
+ cp /usr/share/automake-1.11/config.{guess,sub} .
+ ./configure --prefix=/usr
+ cd ..
+ make prepare
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..d1606a56b
--- /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' 'mips64el')
+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..2ff599483
--- /dev/null
+++ b/extra/asio/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 143711 2011-11-28 16:30:10Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=asio
+pkgver=1.4.8
+pkgrel=2
+pkgdesc="Cross-platform C++ library for ASynchronous network I/O"
+arch=('i686' 'x86_64' 'mips64el')
+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..7346d3070
--- /dev/null
+++ b/extra/aspell-de/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 137818 2011-09-11 20:26:33Z pierre $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=aspell-de
+pkgver=20110609
+pkgrel=1
+pkgdesc="German dictionary for aspell"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://j3e.de/ispell/igerman98/index.html"
+license=('GPL2')
+depends=('aspell')
+source=("http://j3e.de/ispell/igerman98/dict/igerman98-${pkgver}.tar.bz2")
+md5sums=('6e7ea765b6188c08d470111e221cc91a')
+
+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..5cbe89c17
--- /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' 'mips64el')
+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..58827eeda
--- /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' 'mips64el')
+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..8d8a36cf8
--- /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' 'mips64el')
+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..3afb7f8cb
--- /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' 'mips64el')
+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..f2cb79b8a
--- /dev/null
+++ b/extra/aspell-it/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143713 2011-11-28 16:36:02Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=aspell-it
+pkgver=2.2_20050523
+pkgrel=4
+pkgdesc="Italian dictionary for aspell"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://aspell.net/"
+license=('GPL')
+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..6e5cce482
--- /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' 'mips64el')
+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..846abf74a
--- /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' 'mips64el')
+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..ed8f25330
--- /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' 'mips64el') #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..a6e4e621d
--- /dev/null
+++ b/extra/aspell/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 131851 2011-07-16 03:59:19Z 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.1
+_pkgmajorver=0.60
+pkgrel=1
+pkgdesc="A spell checker designed to eventually replace Ispell"
+url="http://aspell.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('gcc-libs' 'ncurses')
+optdepends=('perl: to import old dictionaries')
+options=('!libtool')
+install=aspell.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e66a9c9af6a60dc46134fdacf6ce97d7')
+sha1sums=('ff1190db8de279f950c242c6f4c5d5cdc2cbdc49')
+
+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..4bb848e30
--- /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..f4709bf19
--- /dev/null
+++ b/extra/asymptote/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 144094 2011-12-03 17:46:02Z remy $
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Firmicus <francois.archlinux.org>
+# Contributor: bender02 at gmx dot com
+
+pkgname=asymptote
+pkgver=2.15
+pkgrel=1
+pkgdesc="A vector graphics language (like metapost)"
+arch=('i686' 'x86_64' 'mips64el')
+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=('e0fb336c195fb21a39e3d0f3acd4881ce5e170a7')
+
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check-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..82cc1b4ec
--- /dev/null
+++ b/extra/at-spi/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 120762 2011-04-26 14:25:06Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=at-spi
+pkgver=1.32.0
+pkgrel=4
+pkgdesc="Assistive Technology Service Provider Interface"
+arch=('i686' 'x86_64' 'mips64el')
+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 \
+ --enable-relocate
+ 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 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..bd62ef75f
--- /dev/null
+++ b/extra/at-spi2-atk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 140838 2011-10-20 05:41:39Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=at-spi2-atk
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('at-spi2-core' 'libx11' 'atk' 'dconf')
+makedepends=('intltool')
+install=at-spi2-atk.install
+options=('!libtool')
+source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('6677def34b16c9a28d6ad96473ea56a3c0e13aa968e584df004cd44c8691ea1a')
+
+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/extra/at-spi2-atk/at-spi2-atk.install b/extra/at-spi2-atk/at-spi2-atk.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/extra/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/extra/at-spi2-core/PKGBUILD b/extra/at-spi2-core/PKGBUILD
new file mode 100644
index 000000000..872d9006c
--- /dev/null
+++ b/extra/at-spi2-core/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140840 2011-10-20 05:41:41Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=at-spi2-core
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('dbus-core' 'glib2' 'libxtst')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('2a4129420decca3657e163a4dbb1a3cb28acafe32ea1292417fdd81084d48fac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ 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/extra/at/PKGBUILD b/extra/at/PKGBUILD
new file mode 100644
index 000000000..a33b1cea4
--- /dev/null
+++ b/extra/at/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 138170 2011-09-18 03:48:48Z eric $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Todd Musall <tmusall@comcast.net>
+
+pkgname=at
+pkgver=3.1.13
+pkgrel=1.1
+pkgdesc="AT and batch delayed command scheduling utility and daemon"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://packages.qa.debian.org/a/at.html"
+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=('1da61af6c29e323abaaf13ee1a8dad79'
+ '35574e34829e7df07a3269d4ab646a29')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-jobdir=/var/spool/atd \
+ --with-atspool=/var/spool/atd
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make IROOT="${pkgdir}" docdir=/usr/share/doc install
+ install -D -m755 "${srcdir}/atd" "${pkgdir}/etc/rc.d/atd"
+}
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/PKGBUILD b/extra/aterm/PKGBUILD
new file mode 100644
index 000000000..25e2b51e0
--- /dev/null
+++ b/extra/aterm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 135001 2011-08-09 20:47:19Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=aterm
+pkgver=1.0.1
+pkgrel=3
+pkgdesc="An xterm replacement with transparency support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://aterm.sourceforge.net/"
+license=('GPL')
+depends=('libx11')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/atk/PKGBUILD b/extra/atk/PKGBUILD
new file mode 100644
index 000000000..728d6a5bb
--- /dev/null
+++ b/extra/atk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 139221 2011-10-01 18:55:46Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=atk
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="A library providing a set of interfaces for accessibility"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('glib2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+url='http://www.gtk.org/'
+sha256sums=('8b22f0e7803dd3734c676ccd68ea999ff1156ca49d99c3de5c1d269ad0c3739d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/atkmm/PKGBUILD b/extra/atkmm/PKGBUILD
new file mode 100644
index 000000000..9bc7244d4
--- /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.6
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('0a74295106b9e3ae552b169eb4e098b8b825c4115045b9d5134a6c79a238aeb6')
+
+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/extra/attica/PKGBUILD b/extra/attica/PKGBUILD
new file mode 100644
index 000000000..d50a08cfe
--- /dev/null
+++ b/extra/attica/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142782 2011-11-15 06:11:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=attica
+pkgver=0.2.9
+pkgrel=1
+pkgdesc='A library to access Open Collaboration Service providers'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('LGPL')
+depends=('qt')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('7dadb6ca7dec09f89d41cd868ea6dc39')
+
+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..517f756d6
--- /dev/null
+++ b/extra/aubio/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 122072 2011-05-02 05:51:30Z andrea $
+# Maintainer: Tobias Kieslich tobias [funnychar] archlinux org
+# Contributor: Peter Baldwin <bald_pete@hotmail.com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=aubio
+pkgver=0.3.2
+pkgrel=4
+pkgdesc="A library for audio labelling"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://aubio.org/"
+license=('GPL')
+depends=('libsamplerate' 'fftw' 'jack')
+options=('!libtool')
+source=("http://aubio.org/pub/${pkgname}-${pkgver}.tar.gz")
+md5sums=('ffc3e5e4880fec67064f043252263a44')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/audacious/PKGBUILD b/extra/audacious/PKGBUILD
new file mode 100644
index 000000000..32740d692
--- /dev/null
+++ b/extra/audacious/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144890 2011-12-09 03:35:28Z bisson $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=audacious
+pkgver=3.1.1
+pkgrel=1
+pkgdesc='Lightweight, GTK-based advanced audio player focused on audio quality'
+url='http://audacious-media-player.org/'
+license=('GPL3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gtk3' 'dbus-glib' 'libguess' 'libsm' 'audacious-plugins'
+ 'hicolor-icon-theme' 'gtk-update-icon-cache' 'desktop-file-utils')
+optdepends=('p7zip-libre: zipped skins support')
+source=("http://distfiles.atheme.org/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('fa5629d68ac1b12d563e8c0b4be083dea7c7924c')
+
+provides=('audacious-player')
+replaces=('audacious-player')
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/audacious/install b/extra/audacious/install
new file mode 100644
index 000000000..b6ce5bc02
--- /dev/null
+++ b/extra/audacious/install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ true
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/audacity/PKGBUILD b/extra/audacity/PKGBUILD
new file mode 100644
index 000000000..eac1c8752
--- /dev/null
+++ b/extra/audacity/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 144994 2011-12-13 19:14:03Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=audacity
+pkgver=1.3.14
+pkgrel=1
+pkgdesc="A program that lets you manipulate digital audio waveforms"
+arch=(mips64el)
+url="http://audacity.sourceforge.net/"
+license=('GPL')
+depends=('libmad' 'libid3tag' 'wxgtk' 'lame' 'hicolor-icon-theme'
+ 'desktop-file-utils' 'jack' 'soundtouch' 'ffmpeg')
+options=('!makeflags')
+install=audacity.install
+source=(http://audacity.googlecode.com/files/${pkgname}-minsrc-${pkgver}-beta.tar.bz2 \
+ audacity-1.3.13-ffmpeg.patch)
+sha1sums=('a0fb22a0cfbb8a72abac8bbc01b3ad8b0bb7e11e'
+ '26c2ad8e611705b2762a318e66312169f59cc218')
+
+build() {
+ cd "${srcdir}/${pkgname}-src-${pkgver}-beta"
+ patch -p1 -i "${srcdir}/audacity-1.3.13-ffmpeg.patch"
+ WX_CONFIG=/usr/bin/wx-config ./configure --prefix=/usr \
+ --with-portaudio --with-libsamplerate \
+ --without-libresample --with-libmad \
+ --with-ffmpeg --with-id3tag --with-libflac \
+ --with-vorbis --with-libexpat \
+ --with-libsndfile --with-soundtouch \
+ --enable-unicode --without-taglib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-src-${pkgver}-beta"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/audacity/audacity-1.3.13-ffmpeg.patch b/extra/audacity/audacity-1.3.13-ffmpeg.patch
new file mode 100644
index 000000000..675470913
--- /dev/null
+++ b/extra/audacity/audacity-1.3.13-ffmpeg.patch
@@ -0,0 +1,164 @@
+--- audacity-src-1.3.13-beta.orig/src/export/ExportFFmpeg.cpp
++++ audacity-src-1.3.13-beta/src/export/ExportFFmpeg.cpp
+@@ -352,7 +352,7 @@
+ avcodec_get_context_defaults(mEncAudioCodecCtx);
+
+ mEncAudioCodecCtx->codec_id = ExportFFmpegOptions::fmts[mSubFormat].codecid;
+- mEncAudioCodecCtx->codec_type = CODEC_TYPE_AUDIO;
++ mEncAudioCodecCtx->codec_type = AVMEDIA_TYPE_AUDIO;
+ mEncAudioCodecCtx->codec_tag = av_codec_get_tag((const AVCodecTag **)mEncFormatCtx->oformat->codec_tag,mEncAudioCodecCtx->codec_id);
+ mSampleRate = (int)project->GetRate();
+ mEncAudioCodecCtx->global_quality = -99999; //quality mode is off by default;
+@@ -403,7 +403,6 @@
+ mEncAudioCodecCtx->flags2 = 0;
+ if (gPrefs->Read(wxT("/FileFormats/FFmpegBitReservoir"),true)) mEncAudioCodecCtx->flags2 |= CODEC_FLAG2_BIT_RESERVOIR;
+ if (gPrefs->Read(wxT("/FileFormats/FFmpegVariableBlockLen"),true)) mEncAudioCodecCtx->flags2 |= 0x0004; //WMA only?
+- mEncAudioCodecCtx->use_lpc = gPrefs->Read(wxT("/FileFormats/FFmpegUseLPC"),true);
+ mEncAudioCodecCtx->compression_level = gPrefs->Read(wxT("/FileFormats/FFmpegCompLevel"),-1);
+ mEncAudioCodecCtx->frame_size = gPrefs->Read(wxT("/FileFormats/FFmpegFrameSize"),(long)0);
+ mEncAudioCodecCtx->lpc_coeff_precision = gPrefs->Read(wxT("/FileFormats/FFmpegLPCCoefPrec"),(long)0);
+@@ -569,7 +569,7 @@
+ pkt.stream_index = mEncAudioStream->index;
+ pkt.data = mEncAudioEncodedBuf;
+ pkt.size = nEncodedBytes;
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+
+ // Set presentation time of frame (currently in the codec's timebase) in the stream timebase.
+ if(mEncAudioCodecCtx->coded_frame && mEncAudioCodecCtx->coded_frame->pts != int64_t(AV_NOPTS_VALUE))
+@@ -656,7 +656,7 @@
+
+ pkt.stream_index = mEncAudioStream->index;
+ pkt.data = mEncAudioEncodedBuf;
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+
+ // Write the encoded audio frame to the output file.
+ if ((ret = av_interleaved_write_frame(mEncFormatCtx, &pkt)) != 0)
+--- audacity-src-1.3.13-beta.orig/src/export/ExportFFmpegDialogs.cpp
++++ audacity-src-1.3.13-beta/src/export/ExportFFmpegDialogs.cpp
+@@ -1288,7 +1288,7 @@
+ while ((codec = av_codec_next(codec)))
+ {
+ // We're only interested in audio and only in encoders
+- if (codec->type == CODEC_TYPE_AUDIO && codec->encode)
++ if (codec->type == AVMEDIA_TYPE_AUDIO && codec->encode)
+ {
+ mCodecNames.Add(wxString::FromUTF8(codec->name));
+ mCodecLongNames.Add(wxString::Format(wxT("%s - %s"),mCodecNames.Last().c_str(),wxString::FromUTF8(codec->long_name).c_str()));
+@@ -1528,7 +1528,7 @@
+ // Find the codec, that is claimed to be compatible
+ AVCodec *codec = avcodec_find_encoder(CompatibilityList[i].codec);
+ // If it exists, is audio and has encoder
+- if (codec != NULL && (codec->type == CODEC_TYPE_AUDIO) && codec->encode)
++ if (codec != NULL && (codec->type == AVMEDIA_TYPE_AUDIO) && codec->encode)
+ {
+ // If it was selected - remember it's new index
+ if ((id >= 0) && codec->id == id) index = mShownCodecNames.GetCount();
+@@ -1543,7 +1543,7 @@
+ AVCodec *codec = NULL;
+ while ((codec = av_codec_next(codec)))
+ {
+- if (codec->type == CODEC_TYPE_AUDIO && codec->encode)
++ if (codec->type == AVMEDIA_TYPE_AUDIO && codec->encode)
+ {
+ if (mShownCodecNames.Index(wxString::FromUTF8(codec->name)) < 0)
+ {
+@@ -1563,7 +1563,7 @@
+ if (format != NULL)
+ {
+ AVCodec *codec = avcodec_find_encoder(format->audio_codec);
+- if (codec != NULL && (codec->type == CODEC_TYPE_AUDIO) && codec->encode)
++ if (codec != NULL && (codec->type == AVMEDIA_TYPE_AUDIO) && codec->encode)
+ {
+ if ((id >= 0) && codec->id == id) index = mShownCodecNames.GetCount();
+ mShownCodecNames.Add(wxString::FromUTF8(codec->name));
+--- audacity-src-1.3.13-beta.orig/src/FFmpeg.cpp
++++ audacity-src-1.3.13-beta/src/FFmpeg.cpp
+@@ -316,7 +316,7 @@
+ pd.buf_size = 0;
+ pd.buf = (unsigned char *) av_malloc(PROBE_BUF_MAX + AVPROBE_PADDING_SIZE);
+ if (pd.buf == NULL) {
+- err = AVERROR_NOMEM;
++ err = AVERROR(ENOMEM);
+ goto fail;
+ }
+
+@@ -381,7 +381,7 @@
+
+ // Didn't find a suitable format, so bail
+ if (!fmt) {
+- err = AVERROR_NOFMT;
++ err = AVERROR(EILSEQ);
+ goto fail;
+ }
+
+@@ -855,7 +855,6 @@
+ FFMPEG_INITDYN(codec, avcodec_find_decoder);
+ FFMPEG_INITDYN(codec, avcodec_get_context_defaults);
+ FFMPEG_INITDYN(codec, avcodec_open);
+- FFMPEG_INITDYN(codec, avcodec_decode_audio2);
+ FFMPEG_INITDYN(codec, avcodec_decode_audio3);
+ FFMPEG_INITDYN(codec, avcodec_encode_audio);
+ FFMPEG_INITDYN(codec, avcodec_close);
+--- audacity-src-1.3.13-beta.orig/src/FFmpeg.h
++++ audacity-src-1.3.13-beta/src/FFmpeg.h
+@@ -559,7 +559,11 @@
+ FFMPEG_FUNCTION_WITH_RETURN(
+ void*,
+ av_fast_realloc,
++#if LIBAVUTIL_VERSION_MAJOR < 51
+ (void *ptr, unsigned int *size, unsigned int min_size),
++#else
++ (void *ptr, unsigned int *size, size_t min_size),
++#endif
+ (ptr, size, min_size)
+ );
+ FFMPEG_FUNCTION_WITH_RETURN(
+@@ -747,7 +751,11 @@
+ FFMPEG_FUNCTION_WITH_RETURN(
+ void*,
+ av_malloc,
++#if LIBAVUTIL_VERSION_MAJOR < 51
+ (unsigned int size),
++#else
++ (size_t size),
++#endif
+ (size)
+ );
+ FFMPEG_FUNCTION_NO_RETURN(
+--- audacity-src-1.3.13-beta.orig/src/import/ImportFFmpeg.cpp
++++ audacity-src-1.3.13-beta/src/import/ImportFFmpeg.cpp
+@@ -416,7 +416,7 @@
+ // Fill the stream contexts
+ for (unsigned int i = 0; i < mFormatContext->nb_streams; i++)
+ {
+- if (mFormatContext->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
++ if (mFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+ {
+ //Create a context
+ streamContext *sc = new streamContext;
+--- audacity-src-1.3.13-beta.orig/src/ondemand/ODDecodeFFmpegTask.cpp
++++ audacity-src-1.3.13-beta/src/ondemand/ODDecodeFFmpegTask.cpp
+@@ -156,7 +156,7 @@
+ //test the audio stream(s)
+ for (unsigned int i = 0; i < ic->nb_streams; i++)
+ {
+- if (ic->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
++ if (ic->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+ {
+ audioStreamExists = true;
+ st = ic->streams[i];
+@@ -573,10 +573,10 @@
+ }
+ }
+
+- // avcodec_decode_audio2() expects the size of the output buffer as the 3rd parameter but
++ // avcodec_decode_audio3() expects the size of the output buffer as the 3rd parameter but
+ // also returns the number of bytes it decoded in the same parameter.
+ sc->m_decodedAudioSamplesValidSiz = sc->m_decodedAudioSamplesSiz;
+- nBytesDecoded = avcodec_decode_audio2(sc->m_codecCtx,
++ nBytesDecoded = avcodec_decode_audio3(sc->m_codecCtx,
+ sc->m_decodedAudioSamples, // out
+ &sc->m_decodedAudioSamplesValidSiz, // in/out
+ pDecode, nDecodeSiz); // in
diff --git a/extra/audacity/audacity.install b/extra/audacity/audacity.install
new file mode 100644
index 000000000..028c9f62a
--- /dev/null
+++ b/extra/audacity/audacity.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+ 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/audiofile/PKGBUILD b/extra/audiofile/PKGBUILD
new file mode 100644
index 000000000..2c937221d
--- /dev/null
+++ b/extra/audiofile/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144340 2011-12-04 20:03:38Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=audiofile
+pkgver=0.3.2
+pkgrel=1
+pkgdesc="Silicon Graphics Audio File Library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.68k.org/~michael/audiofile/"
+license=('LGPL')
+depends=('gcc-libs' 'alsa-lib')
+options=('!libtool')
+source=("http://audiofile.68k.org/$pkgname-$pkgver.tar.gz")
+md5sums=('cb2c4fe6e899e688ffe5d1568581cb63')
+
+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/autogen/PKGBUILD b/extra/autogen/PKGBUILD
new file mode 100644
index 000000000..fa335c045
--- /dev/null
+++ b/extra/autogen/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137955 2011-09-13 05:19:48Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@soufly.nl>
+# Contributor: Tor Krill
+
+pkgname=autogen
+pkgver=5.12
+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' 'mips64el')
+url="http://autogen.sourceforge.net/"
+license=('GPL3')
+depends=('guile' 'libxml2')
+options=('!libtool')
+install=autogen.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/rel${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('126e56be629cda747390e8ba9be71e4b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..2d0f8dc7c
--- /dev/null
+++ b/extra/automoc4/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 122082 2011-05-02 06:05:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=automoc4
+pkgver=0.9.88
+pkgrel=2
+pkgdesc="Automatic moc for Qt4"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('custom')
+depends=('qt')
+makedepends=('pkgconfig' 'cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+ 'license.txt')
+md5sums=('91bf517cb940109180ecd07bc90c69ec'
+ '9014edbb7e2f02fe90b2db8707487bce')
+
+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
+ install -Dm644 "${srcdir}/license.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/automoc4/license.txt b/extra/automoc4/license.txt
new file mode 100644
index 000000000..f9db60340
--- /dev/null
+++ b/extra/automoc4/license.txt
@@ -0,0 +1,31 @@
+Upstream Authors:
+
+ Mathias Kretz <kretz@kde.org>
+ Alexander Neundorff <neundorff@kde.org>
+
+Copyright:
+
+ Copyright (c) 2007 Mathias Kretz <kretz@kde.org>
+
+License:
+
+ 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.
diff --git a/extra/autopano-sift-c/PKGBUILD b/extra/autopano-sift-c/PKGBUILD
new file mode 100644
index 000000000..69a9432f2
--- /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' 'mips64el')
+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/PKGBUILD b/extra/avahi/PKGBUILD
new file mode 100644
index 000000000..e35aa24b8
--- /dev/null
+++ b/extra/avahi/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 143808 2011-11-29 13:33:28Z stephane $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=avahi
+pkgver=0.6.30
+pkgrel=6
+pkgdesc='A multicast/unicast DNS-SD framework'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.avahi.org/'
+license=('LGPL')
+depends=('expat' 'libdaemon' 'glib2' 'dbus' 'libcap' 'gdbm')
+[ "$CARCH" = "mips64el" ] || {
+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')
+}
+
+[ "$CARCH" = "mips64el" ] && {
+optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc'
+ 'gtk2: gtk2 bindings'
+ 'qt: qt bindings'
+ 'pygtk: avahi-bookmarks, avahi-discover'
+ 'twisted: avahi-bookmarks'
+ 'dbus-python: avahi-discover'
+ 'nss-mdns: NSS support for mDNS')
+makedepends=('qt' 'pygtk' 'intltool' 'dbus-python'
+ 'gobject-introspection' 'gtk3')
+}
+backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
+install=install
+conflicts=('howl' 'mdnsresponder')
+provides=('howl' 'mdnsresponder')
+replaces=('howl' 'mdnsresponder')
+options=('!libtool')
+source=("http://www.avahi.org/download/avahi-${pkgver}.tar.gz"
+ 'gnome-nettool.png'
+ 'rc.d.patch')
+sha1sums=('5b77443537600a00770e4c77e3c443eeb5861d06'
+ 'cf56387c88aed246b9f435efc182ef44de4d52f3'
+ '625ad7c131c0c1c383caeddef18fc7a32d8f3ab9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
+ patch -p1 -i "../rc.d.patch"
+
+ [ "$CARCH" = "mips64el" ] && \
+ extra="--disable-qt3 --disable-mono"
+
+ # 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 \
+ $extra \
+ --with-systemdsystemunitdir=/lib/systemd/system # See FS#20999
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m 644 ../gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
+
+ cd "${pkgdir}"
+ sed -i '1c #!/usr/bin/python2' usr/bin/avahi-{bookmarks,discover}
+ # howl and mdnsresponder compatability
+ (cd usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
+ (cd usr/lib/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
+}
diff --git a/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/avahi/install b/extra/avahi/install
new file mode 100644
index 000000000..7c75c3dd4
--- /dev/null
+++ b/extra/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/rc.d.patch b/extra/avahi/rc.d.patch
new file mode 100644
index 000000000..fd735734b
--- /dev/null
+++ b/extra/avahi/rc.d.patch
@@ -0,0 +1,11 @@
+diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
+--- old/initscript/archlinux/avahi-daemon.in 2011-06-24 03:07:00.916170590 +0200
++++ new/initscript/archlinux/avahi-daemon.in 2011-06-24 03:16:32.220596377 +0200
+@@ -33,6 +33,7 @@
+
+ case "$1" in
+ start)
++ ck_daemon dbus && { echo -n "Start dbus first." >&2; stat_die; }
+ stat_busy "Starting $DESC"
+ $DAEMON -D > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
diff --git a/extra/avfs/PKGBUILD b/extra/avfs/PKGBUILD
new file mode 100644
index 000000000..288312c7a
--- /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 'mips64el')
+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/PKGBUILD b/extra/avidemux/PKGBUILD
new file mode 100644
index 000000000..9e33a4c91
--- /dev/null
+++ b/extra/avidemux/PKGBUILD
@@ -0,0 +1,120 @@
+# $Id: PKGBUILD 142664 2011-11-12 17:45:03Z ibiru $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgbase=avidemux
+pkgname=('avidemux-cli' 'avidemux-gtk' 'avidemux-qt')
+pkgver=2.5.5
+pkgrel=6
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://fixounet.free.fr/avidemux/"
+makedepends=('cmake' 'libxslt' 'gtk2' 'qt' 'jack' 'libvorbis' 'sdl' 'libxv' \
+ 'alsa-lib' 'lame' 'xvidcore' 'faad2' 'faac' 'x264' 'libsamplerate' \
+ 'opencore-amr' 'yasm' 'mesa' 'libvpx' 'libpulse')
+source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz
+ avidemux-2.5.4-x264-build115.patch)
+md5sums=('33bbe210c6826cea1987ed18a41d57a7'
+ '24a18b53a58b678b9e87d30566985751')
+
+build() {
+ cd "${srcdir}/${pkgbase}_${pkgver}"
+
+ patch -Np1 -i "${srcdir}/avidemux-2.5.4-x264-build115.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'
+ 'jack: for the corresponding audio device plugin'
+ 'libpulse: 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' 'desktop-file-utils')
+ install=avidemux.install
+
+ 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')
+ install=avidemux.install
+
+ 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/avidemux-2.5.4-x264-build115.patch b/extra/avidemux/avidemux-2.5.4-x264-build115.patch
new file mode 100644
index 000000000..c627667ec
--- /dev/null
+++ b/extra/avidemux/avidemux-2.5.4-x264-build115.patch
@@ -0,0 +1,45 @@
+diff -ru avidemux_2.5.4.orig/plugins/ADM_videoEncoder/ADM_vidEnc_x264/encoder.cpp avidemux_2.5.4/plugins/ADM_videoEncoder/ADM_vidEnc_x264/encoder.cpp
+--- avidemux_2.5.4.orig/plugins/ADM_videoEncoder/ADM_vidEnc_x264/encoder.cpp 2011-04-28 22:35:36.000000000 +0200
++++ avidemux_2.5.4/plugins/ADM_videoEncoder/ADM_vidEnc_x264/encoder.cpp 2011-04-28 22:40:26.000000000 +0200
+@@ -488,8 +488,10 @@
+ printf("[x264] analyse.b_transform_8x8 = %d\n", x264Param->analyse.b_transform_8x8);
+ printf("[x264] analyse.inter = %d\n", x264Param->analyse.inter);
+ printf("[x264] b_cabac = %d\n", x264Param->b_cabac);
+-#if X264_BUILD > 101
++#if X264_BUILD > 101 && X264_BUILD < 115
+ printf("[x264] i_open_gop = %d\n", x264Param->i_open_gop);
++#elif X264_BUILD > 114
++ printf("[x264] b_open_gop = %d\n", x264Param->b_open_gop);
+ #endif
+ printf("[x264] b_interlaced = %d\n", x264Param->b_interlaced);
+ #if X264_BUILD > 88
+diff -ru 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 2011-04-28 22:35:36.000000000 +0200
++++ avidemux_2.5.4/plugins/ADM_videoEncoder/ADM_vidEnc_x264/x264Options.cpp 2011-04-28 22:43:36.000000000 +0200
+@@ -417,7 +417,7 @@
+ _param.b_cabac = cabac;
+ }
+
+-#if X264_BUILD > 101
++#if X264_BUILD > 101 && X264_BUILD < 115
+ unsigned int x264Options::getOpenGopMode(void)
+ {
+ return _param.i_open_gop;
+@@ -428,6 +428,17 @@
+ if (openGopMode < 3)
+ _param.i_open_gop = openGopMode;
+ }
++#elif X264_BUILD > 114
++unsigned int x264Options::getOpenGopMode(void)
++{
++ return _param.b_open_gop;
++}
++
++void x264Options::setOpenGopMode(unsigned int openGopMode)
++{
++ if (openGopMode < 3)
++ _param.b_open_gop = openGopMode;
++}
+ #endif
+
+ unsigned int x264Options::getInterlaced(void)
diff --git a/extra/avidemux/avidemux.install b/extra/avidemux/avidemux.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/extra/avidemux/avidemux.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/avogadro/PKGBUILD b/extra/avogadro/PKGBUILD
new file mode 100644
index 000000000..aad64d103
--- /dev/null
+++ b/extra/avogadro/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 144043 2011-12-02 20:54:10Z ibiru $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+
+pkgname=avogadro
+pkgver=1.0.3
+pkgrel=4
+pkgdesc="An advanced molecular editor based on Qt"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://avogadro.openmolecules.net/wiki/Main_Page"
+license=('GPL2')
+depends=('eigen2' 'openbabel' 'python2-pyqt' 'boost-libs' 'glew' 'python2-numpy')
+makedepends=('cmake' 'boost')
+install=avogadro.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'replace-qt4_automoc-with-qt4_wrap_cpp.patch'
+ 'fix-boost.patch')
+md5sums=('92c2702c1980f70fb6d87a1a58147911'
+ 'aec516daab066c15326a9681f8f15abc'
+ '46282e4709429447e44a0a54d51ad2ec')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/replace-qt4_automoc-with-qt4_wrap_cpp.patch
+ patch -p1 -i "${srcdir}"/fix-boost.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DQT_MKSPECS_RELATIVE=share/qt/mkspecs
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/avogadro/avogadro.install b/extra/avogadro/avogadro.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/extra/avogadro/avogadro.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/avogadro/fix-boost.patch b/extra/avogadro/fix-boost.patch
new file mode 100644
index 000000000..8fb53ef12
--- /dev/null
+++ b/extra/avogadro/fix-boost.patch
@@ -0,0 +1,33 @@
+--- avogadro-1.0.3/libavogadro/src/CMakeLists.txt~ 2011-11-29 18:33:01.777291627 +0000
++++ avogadro-1.0.3/libavogadro/src/CMakeLists.txt 2011-11-29 18:33:23.480814612 +0000
+@@ -149,7 +149,7 @@
+ endforeach(P_ITEM ${PYTHON_SRCS})
+ endif(NOT ENABLE_PYTHON OR NOT ALL_PYTHON_FOUND)
+
+-QT4_WRAP_CPP(libavogadro_MOC_SRCS ${libavogadro_MOC_HDRS})
++QT4_WRAP_CPP(libavogadro_MOC_SRCS ${libavogadro_MOC_HDRS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
+
+ # you have to add link_directories before you add the target
+ if(ENABLE_PYTHON AND ALL_PYTHON_FOUND)
+--- avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt~ 2011-11-29 18:37:15.449506548 +0000
++++ avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt 2011-11-29 18:37:52.729831744 +0000
+@@ -11,7 +11,7 @@
+ # use all cpp files in this directory
+ FILE(GLOB wrapper_SRCS "*.cpp")
+
+-QT4_WRAP_CPP(MOC_SRCS moleculelist.h)
++QT4_WRAP_CPP(MOC_SRCS moleculelist.h OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
+
+ ADD_LIBRARY(python-module MODULE ${wrapper_SRCS} ${MOC_SRCS})
+ SET_TARGET_PROPERTIES(python-module PROPERTIES OUTPUT_NAME Avogadro)
+--- avogadro-1.0.3/libavogadro/CMakeLists.txt~ 2011-11-29 19:41:34.066938217 +0000
++++ avogadro-1.0.3/libavogadro/CMakeLists.txt 2011-11-29 19:42:53.084320315 +0000
+@@ -18,7 +18,7 @@
+ # Assume all MOC stuff is in the headers, replace .cpp and use qt4_wrap_cpp
+ # We should probably scan the header to verify the Q_OBJECT macro is used
+ string(REPLACE ".cpp" ".h" hdr_list "${src_list}")
+- qt4_wrap_cpp(moc_files ${hdr_list})
++ qt4_wrap_cpp(moc_files ${hdr_list} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
+ # Now sort out the ui and qrc files, process them as appropriate
+ set(ui_plugin_files)
+ set(qrc_plugin_files)
diff --git a/extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch b/extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch
new file mode 100644
index 000000000..11f58a505
--- /dev/null
+++ b/extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch
@@ -0,0 +1,778 @@
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/CMakeLists.txt avogadro-1.0.3-edit/libavogadro/src/CMakeLists.txt
+--- avogadro-1.0.3/libavogadro/src/CMakeLists.txt 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/CMakeLists.txt 2011-11-29 18:49:58.520790652 +0100
+@@ -75,6 +75,42 @@
+ zmatrix.h
+ )
+
++SET(libavogadro_MOC_HDRS
++ animation.h
++ atom.h
++ bond.h
++ color.h
++ colorbutton.h
++ colors/elementcolor.h
++ cube.h
++ elementdetail_p.h
++ elementtranslator.h
++ engine.h
++ engines/bsdyengine.h
++ extension.h
++ fragment.h
++ glwidget.h
++ mesh.h
++ molecule.h
++ moleculefile.h
++ moleculefile_p.h
++ periodictablescene_p.h
++ periodictableview.h
++ plotwidget.h
++ plugin.h
++ pluginmanager.h
++ primitive.h
++ protein.h
++ pythonengine_p.h
++ pythonerror.h
++ pythonextension_p.h
++ pythontool_p.h
++ residue.h
++ tool.h
++ toolgroup.h
++ zmatrix.h
++)
++
+ set(libavogadro_SRCS ${libavogadro_SRCS} ${libavogadro_UIS})
+ # Also add in the qtiocompressor class
+ #set(libavogadro_SRCS ${libavogadro_SRCS} ../qtiocompressor/qtiocompressor.cpp)
+@@ -113,7 +148,7 @@
+ endforeach(P_ITEM ${PYTHON_SRCS})
+ endif(NOT ENABLE_PYTHON OR NOT ALL_PYTHON_FOUND)
+
+-qt4_automoc(${libavogadro_SRCS})
++QT4_WRAP_CPP(libavogadro_MOC_SRCS ${libavogadro_MOC_HDRS})
+
+ # you have to add link_directories before you add the target
+ if(ENABLE_PYTHON AND ALL_PYTHON_FOUND)
+@@ -149,7 +184,7 @@
+ COMMAND ${CMAKE_COMMAND} -E ${header_cmd} "${from}" "${to}")
+ endforeach(headerFile ${libavogadro_HDRS})
+
+-add_library(avogadro SHARED ${libavogadro_SRCS} ${libavogadro_QM} ${pythontool_RC_SRCS})
++add_library(avogadro SHARED ${libavogadro_SRCS} ${libavogadro_MOC_SRCS} ${libavogadro_QM} ${pythontool_RC_SRCS})
+ set_target_properties(avogadro
+ PROPERTIES VERSION ${Avogadro_VERSION_FULL} SOVERSION 1 )
+ target_link_libraries(avogadro ${AVO_LINK_LIBRARIES})
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/animation.cpp avogadro-1.0.3-edit/libavogadro/src/animation.cpp
+--- avogadro-1.0.3/libavogadro/src/animation.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/animation.cpp 2011-11-29 18:48:47.967839537 +0100
+@@ -224,5 +224,3 @@
+ }
+
+ } // end namespace Avogadro
+-
+-#include "animation.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/atom.cpp avogadro-1.0.3-edit/libavogadro/src/atom.cpp
+--- avogadro-1.0.3/libavogadro/src/atom.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/atom.cpp 2011-11-29 18:48:39.561218412 +0100
+@@ -293,5 +293,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "atom.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/bond.cpp avogadro-1.0.3-edit/libavogadro/src/bond.cpp
+--- avogadro-1.0.3/libavogadro/src/bond.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/bond.cpp 2011-11-29 18:49:00.067773985 +0100
+@@ -166,5 +166,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "bond.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/color.cpp avogadro-1.0.3-edit/libavogadro/src/color.cpp
+--- avogadro-1.0.3/libavogadro/src/color.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/color.cpp 2011-11-29 18:49:05.207746140 +0100
+@@ -152,5 +152,3 @@
+ return "Generic Color";
+ }
+ }
+-
+-#include "color.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/colorbutton.cpp avogadro-1.0.3-edit/libavogadro/src/colorbutton.cpp
+--- avogadro-1.0.3/libavogadro/src/colorbutton.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/colorbutton.cpp 2011-11-29 18:49:11.987709410 +0100
+@@ -94,5 +94,3 @@
+ }
+
+ } // end namespace
+-
+-#include "colorbutton.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/colors/elementcolor.cpp avogadro-1.0.3-edit/libavogadro/src/colors/elementcolor.cpp
+--- avogadro-1.0.3/libavogadro/src/colors/elementcolor.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/colors/elementcolor.cpp 2011-11-29 18:50:11.077389292 +0100
+@@ -63,7 +63,5 @@
+
+ }
+
+-#include "elementcolor.moc"
+ //this is a static color plugin...
+ //Q_EXPORT_PLUGIN2(elementcolor, Avogadro::ElementColorFactory)
+-
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/cube.cpp avogadro-1.0.3-edit/libavogadro/src/cube.cpp
+--- avogadro-1.0.3/libavogadro/src/cube.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/cube.cpp 2011-11-29 18:50:26.357306516 +0100
+@@ -322,5 +322,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "cube.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/elementdetail_p.cpp avogadro-1.0.3-edit/libavogadro/src/elementdetail_p.cpp
+--- avogadro-1.0.3/libavogadro/src/elementdetail_p.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/elementdetail_p.cpp 2011-11-29 18:50:37.680578505 +0100
+@@ -132,5 +132,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "elementdetail_p.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/elementtranslator.cpp avogadro-1.0.3-edit/libavogadro/src/elementtranslator.cpp
+--- avogadro-1.0.3/libavogadro/src/elementtranslator.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/elementtranslator.cpp 2011-11-29 18:50:48.160521729 +0100
+@@ -401,5 +401,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "elementtranslator.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/engine.cpp avogadro-1.0.3-edit/libavogadro/src/engine.cpp
+--- avogadro-1.0.3/libavogadro/src/engine.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/engine.cpp 2011-11-29 18:50:54.397154610 +0100
+@@ -377,5 +377,3 @@
+ return m_molecule->bonds();
+ }
+ }
+-
+-#include "engine.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/engines/bsdyengine.cpp avogadro-1.0.3-edit/libavogadro/src/engines/bsdyengine.cpp
+--- avogadro-1.0.3/libavogadro/src/engines/bsdyengine.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/engines/bsdyengine.cpp 2011-11-29 18:51:18.733689435 +0100
+@@ -442,7 +442,5 @@
+ }
+
+ }
+-
+-#include "bsdyengine.moc"
+ // This is a static engine...
+ // Q_EXPORT_PLUGIN2( bsdyengine, Avogadro::BSDYEngineFactory )
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/extension.cpp avogadro-1.0.3-edit/libavogadro/src/extension.cpp
+--- avogadro-1.0.3/libavogadro/src/extension.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/extension.cpp 2011-11-29 18:51:56.360152261 +0100
+@@ -80,5 +80,3 @@
+ }
+
+ }
+-
+-#include "extension.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/fragment.cpp avogadro-1.0.3-edit/libavogadro/src/fragment.cpp
+--- avogadro-1.0.3/libavogadro/src/fragment.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/fragment.cpp 2011-11-29 18:52:01.906788880 +0100
+@@ -82,5 +82,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "fragment.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/glwidget.cpp avogadro-1.0.3-edit/libavogadro/src/glwidget.cpp
+--- avogadro-1.0.3/libavogadro/src/glwidget.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/glwidget.cpp 2011-11-29 18:52:14.346721486 +0100
+@@ -1966,5 +1966,3 @@
+ d->updateCache = true;
+ }
+ }
+-
+-#include "glwidget.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/mesh.cpp avogadro-1.0.3-edit/libavogadro/src/mesh.cpp
+--- avogadro-1.0.3/libavogadro/src/mesh.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/mesh.cpp 2011-11-29 18:52:23.033341093 +0100
+@@ -231,5 +231,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "mesh.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/molecule.cpp avogadro-1.0.3-edit/libavogadro/src/molecule.cpp
+--- avogadro-1.0.3/libavogadro/src/molecule.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/molecule.cpp 2011-11-29 18:52:33.573283993 +0100
+@@ -1575,5 +1575,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "molecule.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/moleculefile.cpp avogadro-1.0.3-edit/libavogadro/src/moleculefile.cpp
+--- avogadro-1.0.3/libavogadro/src/moleculefile.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/moleculefile.cpp 2011-11-29 18:56:26.728687548 +0100
+@@ -22,23 +22,14 @@
+ 02110-1301, USA.
+ **********************************************************************/
+
+-#include "moleculefile.h"
++#include "moleculefile_p.h"
+
+ #include <avogadro/molecule.h>
+
+-#include <QFile>
+ #include <QFileInfo>
+-#include <QStringList>
+-#include <QThread>
+ #include <QDebug>
+ #include <QPointer>
+
+-#include <openbabel/mol.h>
+-#include <openbabel/obconversion.h>
+-
+-// Included in obconversion.h
+-//#include <iostream>
+-
+ namespace Avogadro {
+
+ using OpenBabel::OBConversion;
+@@ -578,164 +569,6 @@
+ return false;
+ }
+
+- class ReadFileThread : public QThread
+- {
+- // Q_OBJECT
+-
+- public:
+- ReadFileThread(MoleculeFile *moleculeFile) : m_moleculeFile(moleculeFile)
+- {
+- }
+-
+- void addConformer(const OpenBabel::OBMol &conformer)
+- {
+- unsigned int numAtoms = conformer.NumAtoms();
+- std::vector<Eigen::Vector3d> *coords = new std::vector<Eigen::Vector3d>(numAtoms);
+- for (unsigned int i = 0; i < numAtoms; ++i)
+- coords->push_back(Eigen::Vector3d(conformer.GetAtom(i+1)->GetVector().AsArray()));
+- m_moleculeFile->m_conformers.push_back(coords);
+- }
+-
+- void detectConformers(unsigned int c, const OpenBabel::OBMol &first, const OpenBabel::OBMol &current)
+- {
+- if (!c) {
+- // this is the first molecule read
+- m_moleculeFile->setConformerFile(true);
+- addConformer(current);
+- return;
+- }
+-
+- if (!m_moleculeFile->isConformerFile())
+- return;
+-
+- // as long as we are not sure if this really is a
+- // conformer/trajectory file, add the conformers
+- addConformer(current);
+-
+- // performance: check only certain molecule 1-10,20,50
+- switch (c) {
+- case 1:
+- case 2:
+- case 3:
+- case 4:
+- case 5:
+- case 6:
+- case 7:
+- case 8:
+- case 9:
+- case 10:
+- case 20:
+- case 50:
+- break;
+- default:
+- return;
+- }
+-
+- if (first.NumAtoms() != current.NumAtoms()) {
+- m_moleculeFile->setConformerFile(false);
+- m_moleculeFile->m_conformers.clear();
+- return;
+- }
+-
+- for (unsigned int i = 0; i < first.NumAtoms(); ++i) {
+- OpenBabel::OBAtom *firstAtom = first.GetAtom(i+1);
+- OpenBabel::OBAtom *currentAtom = current.GetAtom(i+1);
+- if (firstAtom->GetAtomicNum() != currentAtom->GetAtomicNum()) {
+- m_moleculeFile->setConformerFile(false);
+- m_moleculeFile->m_conformers.clear();
+- return;
+- }
+- }
+- }
+-
+- void run()
+- {
+- // Check that the file can be read from disk
+- if (!MoleculeFile::canOpen(m_moleculeFile->m_fileName, QFile::ReadOnly | QFile::Text)) {
+- // Cannot read the file
+- m_moleculeFile->m_error.append(QObject::tr("File %1 cannot be opened for reading.")
+- .arg(m_moleculeFile->m_fileName));
+- return;
+- }
+-
+- // Construct the OpenBabel objects, set the file type
+- OpenBabel::OBConversion conv;
+- OpenBabel::OBFormat *inFormat;
+- if (!m_moleculeFile->m_fileType.isEmpty() && !conv.SetInFormat(m_moleculeFile->m_fileType.toAscii().data())) {
+- // Input format not supported
+- m_moleculeFile->m_error.append(
+- QObject::tr("File type '%1' is not supported for reading.").arg(m_moleculeFile->m_fileType));
+- return;
+- } else {
+- inFormat = conv.FormatFromExt(m_moleculeFile->m_fileName.toAscii().data());
+- if (!inFormat || !conv.SetInFormat(inFormat)) {
+- // Input format not supported
+- m_moleculeFile->m_error.append(QObject::tr("File type for file '%1' is not supported for reading.")
+- .arg(m_moleculeFile->m_fileName));
+- return;
+- }
+- }
+-
+- // set any options
+- if (!m_moleculeFile->m_fileOptions.isEmpty()) {
+- foreach(const QString &option,
+- m_moleculeFile->m_fileOptions.split('\n', QString::SkipEmptyParts)) {
+- conv.AddOption(option.toAscii().data(), OBConversion::INOPTIONS);
+- }
+- }
+-
+- // Now attempt to read the molecule in
+- ifstream ifs;
+- ifs.open(m_moleculeFile->m_fileName.toLocal8Bit()); // This handles utf8 file names etc
+- if (!ifs) // Should not happen, already checked file could be opened
+- return;
+-
+- // read all molecules
+- OpenBabel::OBMol firstOBMol, currentOBMol;
+- unsigned int c = 0;
+- conv.SetInStream(&ifs);
+- m_moleculeFile->streamposRef().push_back(ifs.tellg());
+- while (ifs.good() && conv.Read(&currentOBMol)) {
+- if (!c)
+- firstOBMol = currentOBMol;
+-
+- if (c > 20 && !m_moleculeFile->isConformerFile())
+- m_moleculeFile->setFirstReady(true);
+-
+- // detect conformer/trajectory files
+- detectConformers(c, firstOBMol, currentOBMol);
+- // store information about molecule
+- m_moleculeFile->streamposRef().push_back(ifs.tellg());
+- m_moleculeFile->titlesRef().append(currentOBMol.GetTitle());
+- // increment count
+- ++c;
+- }
+- m_moleculeFile->streamposRef().pop_back();
+-
+- // signle molecule files are not conformer files
+- if (c == 1) {
+- m_moleculeFile->setConformerFile(false);
+- m_moleculeFile->m_conformers.clear();
+- }
+-
+- // check for empty titles
+- for (int i = 0; i < m_moleculeFile->titlesRef().size(); ++i) {
+- if (!m_moleculeFile->titlesRef()[i].isEmpty())
+- continue;
+-
+- QString title;
+- if (m_moleculeFile->isConformerFile())
+- title = tr("Conformer %1").arg(i+1);
+- else
+- title = tr("Molecule %1").arg(i+1);
+-
+- m_moleculeFile->titlesRef()[i] = title;
+- }
+- }
+-
+- MoleculeFile *m_moleculeFile;
+- }; // end ReadFileThread class
+-
+ MoleculeFile* MoleculeFile::readFile(const QString &fileName,
+ const QString &fileType, const QString &fileOptions, bool wait)
+ {
+@@ -794,6 +627,3 @@
+ }
+
+ } // end namespace Avogadro
+-
+-#include "moleculefile.moc"
+-
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/moleculefile_p.h avogadro-1.0.3-edit/libavogadro/src/moleculefile_p.h
+--- avogadro-1.0.3/libavogadro/src/moleculefile_p.h 1970-01-01 01:00:00.000000000 +0100
++++ avogadro-1.0.3-edit/libavogadro/src/moleculefile_p.h 2011-11-29 18:57:43.108273764 +0100
+@@ -0,0 +1,202 @@
++/**********************************************************************
++ MoleculeFile - Class representing molecule file.
++
++ Copyright (C) 2009 Marcus Hanwell, Tim Vandermeersch
++
++ This file is part of the Avogadro molecular editor project.
++ For more information, see <http://avogadro.openmolecules.net/>
++
++ Avogadro 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.
++
++ Avogadro 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.
++ **********************************************************************/
++
++#ifndef MOLECULEFILE_P_H
++#define MOLECULEFILE_P_H
++
++#include "moleculefile.h"
++
++#include <openbabel/mol.h>
++#include <openbabel/obconversion.h>
++
++#include <QFile>
++#include <QStringList>
++#include <QThread>
++
++namespace Avogadro {
++
++ using OpenBabel::OBConversion;
++ using std::ifstream;
++
++class ReadFileThread : public QThread
++{
++ Q_OBJECT
++
++ public:
++ ReadFileThread(MoleculeFile *moleculeFile) : m_moleculeFile(moleculeFile)
++ {
++ }
++
++ void addConformer(const OpenBabel::OBMol &conformer)
++ {
++ unsigned int numAtoms = conformer.NumAtoms();
++ std::vector<Eigen::Vector3d> *coords = new std::vector<Eigen::Vector3d>(numAtoms);
++ for (unsigned int i = 0; i < numAtoms; ++i)
++ coords->push_back(Eigen::Vector3d(conformer.GetAtom(i+1)->GetVector().AsArray()));
++ m_moleculeFile->m_conformers.push_back(coords);
++ }
++
++ void detectConformers(unsigned int c, const OpenBabel::OBMol &first, const OpenBabel::OBMol &current)
++ {
++ if (!c) {
++ // this is the first molecule read
++ m_moleculeFile->setConformerFile(true);
++ addConformer(current);
++ return;
++ }
++
++ if (!m_moleculeFile->isConformerFile())
++ return;
++
++ // as long as we are not sure if this really is a
++ // conformer/trajectory file, add the conformers
++ addConformer(current);
++
++ // performance: check only certain molecule 1-10,20,50
++ switch (c) {
++ case 1:
++ case 2:
++ case 3:
++ case 4:
++ case 5:
++ case 6:
++ case 7:
++ case 8:
++ case 9:
++ case 10:
++ case 20:
++ case 50:
++ break;
++ default:
++ return;
++ }
++
++ if (first.NumAtoms() != current.NumAtoms()) {
++ m_moleculeFile->setConformerFile(false);
++ m_moleculeFile->m_conformers.clear();
++ return;
++ }
++
++ for (unsigned int i = 0; i < first.NumAtoms(); ++i) {
++ OpenBabel::OBAtom *firstAtom = first.GetAtom(i+1);
++ OpenBabel::OBAtom *currentAtom = current.GetAtom(i+1);
++ if (firstAtom->GetAtomicNum() != currentAtom->GetAtomicNum()) {
++ m_moleculeFile->setConformerFile(false);
++ m_moleculeFile->m_conformers.clear();
++ return;
++ }
++ }
++ }
++
++ void run()
++ {
++ // Check that the file can be read from disk
++ if (!MoleculeFile::canOpen(m_moleculeFile->m_fileName, QFile::ReadOnly | QFile::Text)) {
++ // Cannot read the file
++ m_moleculeFile->m_error.append(QObject::tr("File %1 cannot be opened for reading.")
++ .arg(m_moleculeFile->m_fileName));
++ return;
++ }
++
++ // Construct the OpenBabel objects, set the file type
++ OpenBabel::OBConversion conv;
++ OpenBabel::OBFormat *inFormat;
++ if (!m_moleculeFile->m_fileType.isEmpty() && !conv.SetInFormat(m_moleculeFile->m_fileType.toAscii().data())) {
++ // Input format not supported
++ m_moleculeFile->m_error.append(
++ QObject::tr("File type '%1' is not supported for reading.").arg(m_moleculeFile->m_fileType));
++ return;
++ } else {
++ inFormat = conv.FormatFromExt(m_moleculeFile->m_fileName.toAscii().data());
++ if (!inFormat || !conv.SetInFormat(inFormat)) {
++ // Input format not supported
++ m_moleculeFile->m_error.append(QObject::tr("File type for file '%1' is not supported for reading.")
++ .arg(m_moleculeFile->m_fileName));
++ return;
++ }
++ }
++
++ // set any options
++ if (!m_moleculeFile->m_fileOptions.isEmpty()) {
++ foreach(const QString &option,
++ m_moleculeFile->m_fileOptions.split('\n', QString::SkipEmptyParts)) {
++ conv.AddOption(option.toAscii().data(), OBConversion::INOPTIONS);
++ }
++ }
++
++ // Now attempt to read the molecule in
++ ifstream ifs;
++ ifs.open(m_moleculeFile->m_fileName.toLocal8Bit()); // This handles utf8 file names etc
++ if (!ifs) // Should not happen, already checked file could be opened
++ return;
++
++ // read all molecules
++ OpenBabel::OBMol firstOBMol, currentOBMol;
++ unsigned int c = 0;
++ conv.SetInStream(&ifs);
++ m_moleculeFile->streamposRef().push_back(ifs.tellg());
++ while (ifs.good() && conv.Read(&currentOBMol)) {
++ if (!c)
++ firstOBMol = currentOBMol;
++
++ if (c > 20 && !m_moleculeFile->isConformerFile())
++ m_moleculeFile->setFirstReady(true);
++
++ // detect conformer/trajectory files
++ detectConformers(c, firstOBMol, currentOBMol);
++ // store information about molecule
++ m_moleculeFile->streamposRef().push_back(ifs.tellg());
++ m_moleculeFile->titlesRef().append(currentOBMol.GetTitle());
++ // increment count
++ ++c;
++ }
++ m_moleculeFile->streamposRef().pop_back();
++
++ // signle molecule files are not conformer files
++ if (c == 1) {
++ m_moleculeFile->setConformerFile(false);
++ m_moleculeFile->m_conformers.clear();
++ }
++
++ // check for empty titles
++ for (int i = 0; i < m_moleculeFile->titlesRef().size(); ++i) {
++ if (!m_moleculeFile->titlesRef()[i].isEmpty())
++ continue;
++
++ QString title;
++ if (m_moleculeFile->isConformerFile())
++ title = tr("Conformer %1").arg(i+1);
++ else
++ title = tr("Molecule %1").arg(i+1);
++
++ m_moleculeFile->titlesRef()[i] = title;
++ }
++ }
++
++ MoleculeFile *m_moleculeFile;
++};
++
++} // end namespace Avogadro
++
++#endif // MOLECULEFILE_P_H
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/periodictablescene_p.cpp avogadro-1.0.3-edit/libavogadro/src/periodictablescene_p.cpp
+--- avogadro-1.0.3/libavogadro/src/periodictablescene_p.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/periodictablescene_p.cpp 2011-11-29 18:52:50.259860261 +0100
+@@ -213,5 +213,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "periodictablescene_p.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/periodictableview.cpp avogadro-1.0.3-edit/libavogadro/src/periodictableview.cpp
+--- avogadro-1.0.3/libavogadro/src/periodictableview.cpp 2011-11-29 19:30:25.130970122 +0000
++++ avogadro-1.0.3-edit/libavogadro/src/periodictableview.cpp 2011-11-29 18:52:50.259860261 +0100
+@@ -69,4 +69,3 @@
+
+ } // End namespace Avogadro
+
+-#include "periodictableview.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/plotwidget.cpp avogadro-1.0.3-edit/libavogadro/src/plotwidget.cpp
+--- avogadro-1.0.3/libavogadro/src/plotwidget.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/plotwidget.cpp 2011-11-29 18:53:09.389756626 +0100
+@@ -27,7 +27,6 @@
+ **********************************************************************/
+
+ #include "plotwidget.h"
+-#include "plotwidget.moc"
+
+ #include <math.h>
+ #include <QDebug>
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/plugin.cpp avogadro-1.0.3-edit/libavogadro/src/plugin.cpp
+--- avogadro-1.0.3/libavogadro/src/plugin.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/plugin.cpp 2011-11-29 18:53:16.016387394 +0100
+@@ -65,5 +65,3 @@
+ }
+
+ } // end namespace Avogadro
+-
+-#include "plugin.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pluginmanager.cpp avogadro-1.0.3-edit/libavogadro/src/pluginmanager.cpp
+--- avogadro-1.0.3/libavogadro/src/pluginmanager.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/pluginmanager.cpp 2011-11-29 18:53:23.569679807 +0100
+@@ -784,5 +784,3 @@
+ }
+
+ }
+-
+-#include "pluginmanager.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/primitive.cpp avogadro-1.0.3-edit/libavogadro/src/primitive.cpp
+--- avogadro-1.0.3/libavogadro/src/primitive.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/primitive.cpp 2011-11-29 18:53:29.139649631 +0100
+@@ -77,5 +77,3 @@
+ }
+
+ }
+-
+-#include "primitive.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/protein.cpp avogadro-1.0.3-edit/libavogadro/src/protein.cpp
+--- avogadro-1.0.3/libavogadro/src/protein.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/protein.cpp 2011-11-29 18:53:37.952935219 +0100
+@@ -978,5 +978,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+-#include "protein.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt avogadro-1.0.3-edit/libavogadro/src/python/CMakeLists.txt
+--- avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/python/CMakeLists.txt 2011-11-29 18:58:02.354836165 +0100
+@@ -11,9 +11,9 @@
+ # use all cpp files in this directory
+ FILE(GLOB wrapper_SRCS "*.cpp")
+
+-qt4_automoc(moleculelist.cpp)
++QT4_WRAP_CPP(MOC_SRCS moleculelist.h)
+
+-ADD_LIBRARY(python-module MODULE ${wrapper_SRCS})
++ADD_LIBRARY(python-module MODULE ${wrapper_SRCS} ${MOC_SRCS})
+ SET_TARGET_PROPERTIES(python-module PROPERTIES OUTPUT_NAME Avogadro)
+ SET_TARGET_PROPERTIES(python-module PROPERTIES PREFIX "")
+ if (WIN32)
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/python/moleculelist.cpp avogadro-1.0.3-edit/libavogadro/src/python/moleculelist.cpp
+--- avogadro-1.0.3/libavogadro/src/python/moleculelist.cpp 2011-11-29 19:26:07.562214311 +0100
++++ avogadro-1.0.3-edit/libavogadro/src/python/moleculelist.cpp 2011-11-29 19:26:14.538843182 +0100
+@@ -70,4 +70,3 @@
+
+ }
+
+-#include "moleculelist.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythonengine_p.cpp avogadro-1.0.3-edit/libavogadro/src/pythonengine_p.cpp
+--- avogadro-1.0.3/libavogadro/src/pythonengine_p.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/pythonengine_p.cpp 2011-11-29 18:53:45.492894371 +0100
+@@ -289,5 +289,3 @@
+
+
+ }
+-
+-#include "pythonengine_p.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythonerror.cpp avogadro-1.0.3-edit/libavogadro/src/pythonerror.cpp
+--- avogadro-1.0.3/libavogadro/src/pythonerror.cpp 2011-11-29 19:24:26.949426045 +0100
++++ avogadro-1.0.3-edit/libavogadro/src/pythonerror.cpp 2011-11-29 19:24:41.176015640 +0100
+@@ -112,4 +112,3 @@
+
+ } // namespace
+
+-#include "pythonerror.moc"
+
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythonextension_p.cpp avogadro-1.0.3-edit/libavogadro/src/pythonextension_p.cpp
+--- avogadro-1.0.3/libavogadro/src/pythonextension_p.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/pythonextension_p.cpp 2011-11-29 18:53:54.082847836 +0100
+@@ -340,5 +340,3 @@
+ }
+
+ }
+-
+-#include "pythonextension_p.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythontool_p.cpp avogadro-1.0.3-edit/libavogadro/src/pythontool_p.cpp
+--- avogadro-1.0.3/libavogadro/src/pythontool_p.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/pythontool_p.cpp 2011-11-29 18:54:02.269470152 +0100
+@@ -344,5 +344,3 @@
+ }
+
+ }
+-
+-#include "pythontool_p.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/residue.cpp avogadro-1.0.3-edit/libavogadro/src/residue.cpp
+--- avogadro-1.0.3/libavogadro/src/residue.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/residue.cpp 2011-11-29 18:54:14.316071557 +0100
+@@ -160,6 +160,3 @@
+ }
+
+ } // End namespace Avogadro
+-
+- #include "residue.moc"
+-
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/tool.cpp avogadro-1.0.3-edit/libavogadro/src/tool.cpp
+--- avogadro-1.0.3/libavogadro/src/tool.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/tool.cpp 2011-11-29 18:55:05.515794184 +0100
+@@ -117,5 +117,3 @@
+ }
+
+ } // end namespace Avogadro
+-
+-#include "tool.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/toolgroup.cpp avogadro-1.0.3-edit/libavogadro/src/toolgroup.cpp
+--- avogadro-1.0.3/libavogadro/src/toolgroup.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/toolgroup.cpp 2011-11-29 18:55:11.699094018 +0100
+@@ -206,5 +206,3 @@
+ }
+
+ } // end namespace Avogadro
+-
+-#include "toolgroup.moc"
+diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/zmatrix.cpp avogadro-1.0.3-edit/libavogadro/src/zmatrix.cpp
+--- avogadro-1.0.3/libavogadro/src/zmatrix.cpp 2011-04-25 07:22:18.000000000 +0200
++++ avogadro-1.0.3-edit/libavogadro/src/zmatrix.cpp 2011-11-29 18:55:17.209064168 +0100
+@@ -149,5 +149,3 @@
+
+
+ } // End namespace Avogadro
+-
+-#include "zmatrix.moc"
diff --git a/extra/babl/PKGBUILD b/extra/babl/PKGBUILD
new file mode 100644
index 000000000..45f2d5cef
--- /dev/null
+++ b/extra/babl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144898 2011-12-09 11:56:58Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=babl
+pkgver=0.1.6
+pkgrel=1
+pkgdesc="Dynamic, any to any, pixel format conversion library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gegl.org/babl/"
+license=('LGPL3')
+depends=('glibc')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gimp.org/pub/babl/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('3178ec9f988efe895d00e2d432ad9b6ec10211e9')
+
+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
+}
diff --git a/extra/banshee/PKGBUILD b/extra/banshee/PKGBUILD
new file mode 100644
index 000000000..8e94c989e
--- /dev/null
+++ b/extra/banshee/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 141669 2011-11-02 03:17:44Z eric $
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=banshee
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="Music management and playback for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://banshee.fm/"
+license=('MIT')
+depends=(libxxf86vm gstreamer0.10-base-plugins mono-addins notify-sharp-svn dbus-sharp-glib boo libwebkit libsoup-gnome gdata-sharp taglib-sharp gtk-sharp-beans 'gudev-sharp' 'gkeyfile-sharp' gconf-sharp libmtp libgpod mono-zeroconf desktop-file-utils hicolor-icon-theme xdg-utils media-player-info)
+makedepends=('intltool' 'gnome-doc-utils')
+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.gnome.org/sources/$pkgname/2.2/$pkgname-$pkgver.tar.xz
+ banshee-recent-gpod.patch)
+sha256sums=('55c03ddf9732199b9f83d4ff375af99ae5a4eea46b8a198695427e5c48f1b9a5'
+ '018eeb00d1b4e625d13f1184863e499be5b5dde050a7513e012d5898125073d9')
+
+build() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/banshee-recent-gpod.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-docs \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-install \
+ --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 -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/extra/banshee/banshee-recent-gpod.patch b/extra/banshee/banshee-recent-gpod.patch
new file mode 100644
index 000000000..afb3a0fd1
--- /dev/null
+++ b/extra/banshee/banshee-recent-gpod.patch
@@ -0,0 +1,24 @@
+From d4cd959c4a48ffc9da8fe0983bd31c4647669bf4 Mon Sep 17 00:00:00 2001
+From: William Witt <william@witt-family.net>
+Date: Sat, 30 Jul 2011 21:54:41 -0500
+Subject: [PATCH] - Changed typecast on FileSize to uint in AppleDeviceTrackInfo to comply with libgpod-sharp
+
+---
+ .../AppleDeviceTrackInfo.cs | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs b/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs
+index 178266d..b8549f7 100644
+--- a/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs
++++ b/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs
+@@ -215,7 +215,7 @@ namespace Banshee.Dap.AppleDevice
+ track.CDs = DiscCount;
+ track.CDNumber = DiscNumber;
+ track.TrackLength = (int) Duration.TotalMilliseconds;
+- track.Size = (int)FileSize;
++ track.Size = (uint)FileSize;
+ track.Grouping = Grouping;
+ try {
+ track.TimePlayed = LastPlayed;
+--
+1.7.3.4
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..799943f59
--- /dev/null
+++ b/extra/barcode/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143715 2011-11-28 16:39:50Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=barcode
+pkgver=0.98
+pkgrel=4
+pkgdesc="A tool to convert text strings to printed bars"
+arch=('i686' 'x86_64' 'mips64el')
+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..8887cd7ca
--- /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' 'mips64el')
+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..7723696ae
--- /dev/null
+++ b/extra/bc/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 137896 2011-09-12 10:03:30Z pierre $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=bc
+pkgver=1.06
+pkgrel=8
+pkgdesc="An arbitrary precision calculator language"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+
+build() {
+ export CFLAGS="${CFLAGS/-O?/-O3}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/build-fix.patch"
+ patch -p1 -i "${srcdir}/bc-1.06-info-dir-entry.patch"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --infodir=/usr/share/info --with-readline
+ make LEX="flex -I"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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/beep/PKGBUILD b/extra/beep/PKGBUILD
new file mode 100644
index 000000000..f7a9853ea
--- /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' 'mips64el')
+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..664c29d51
--- /dev/null
+++ b/extra/bftpd/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 135462 2011-08-13 23:06:44Z thomas $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=bftpd
+pkgver=3.6
+pkgrel=1
+pkgdesc="Small, easy-to-configure FTP server"
+arch=(i686 x86_64 'mips64el')
+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
+ etc/xinetd.d/bftpd)
+source=(http://downloads.sourceforge.net/sourceforge/bftpd/bftpd-$pkgver.tar.gz
+ bftpd.rc
+ bftpd.logrotate
+ bftpd.pam
+ bftpd.xinetd)
+md5sums=('7c45b158646e3b266530bf46778fc2d0'
+ '56a1bf7738a6db2b2cff89e611f4f11a'
+ '853680dad0df39d0b4d2fb43d4be430a'
+ '96f82c38f3f540b53f3e5144900acf17'
+ 'ff70fd962666f4d74749a1c68167a966')
+
+build() {
+ cd "${srcdir}"/$pkgname
+ # The bftpd author keeps screwing up the release tarballs
+ rm -f config.{cache,status}
+ ./configure --prefix=/usr --enable-pam --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname
+ install -d -m755 "${pkgdir}"/usr/{sbin,share/man/man8}
+ install -d -m755 "${pkgdir}"/var/log
+ install -D -m644 "${srcdir}"/bftpd.logrotate "${pkgdir}"/etc/logrotate.d/bftpd
+ install -D -m755 "${srcdir}"/bftpd.rc "${pkgdir}"/etc/rc.d/bftpd
+ make DESTDIR="${pkgdir}" install
+ # Remove log file and /var/run from the package
+ rm -f "${pkgdir}"/var/log/bftpd.log
+ rmdir "${pkgdir}"/var/{run/bftpd,run,log,}
+ # Install PAM file
+ mkdir -p "${pkgdir}"/etc/pam.d
+ cp "${srcdir}"/bftpd.pam "${pkgdir}"/etc/pam.d/bftpd
+ # Install xinetd file
+ install -D -m644 "${srcdir}"/bftpd.xinetd "${pkgdir}"/etc/xinetd.d/bftpd
+ # Fix default in config file
+ sed 's|#ROOTDIR="/path/for/anonymous/user"|# bftpd interprets ROOTDIR="%h" (the default), as ROOTDIR="/" for the anonymous user, override it\n ROOTDIR="/srv/ftp"|' -i "${pkgdir}"/etc/bftpd.conf
+}
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/bftpd/bftpd.xinetd b/extra/bftpd/bftpd.xinetd
new file mode 100644
index 000000000..68c931243
--- /dev/null
+++ b/extra/bftpd/bftpd.xinetd
@@ -0,0 +1,11 @@
+service ftp
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/bftpd
+ server_args = -i
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/bigloo/PKGBUILD b/extra/bigloo/PKGBUILD
new file mode 100644
index 000000000..dddf5cf4b
--- /dev/null
+++ b/extra/bigloo/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 140975 2011-10-20 08:57:44Z eric $
+# Maintainer: Jürgen Hötzel <juergen@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+
+pkgname=bigloo
+_pkgver=3.7a-2
+pkgver=${_pkgver/-/_}
+pkgrel=1
+pkgdesc="Fast scheme compiler"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"
+license=('GPL' 'LGPL')
+depends=('openssl' 'sqlite3' 'alsa-lib')
+makedepends=('java-environment' 'emacs' 'zip')
+optdepends=('emacs')
+options=('!makeflags')
+install=bigloo.install
+source=(ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${pkgname}${_pkgver}.tar.gz)
+md5sums=('1a692b950843e36910e13e0e91f90534')
+
+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 \
+ --jvm=yes
+ make build compile-bee
+}
+
+check() {
+ cd "${srcdir}/${pkgname}${_pkgver}"
+ make test
+}
+
+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..dd0d70421
--- /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/bin86/PKGBUILD b/extra/bin86/PKGBUILD
new file mode 100644
index 000000000..a5dbd1c25
--- /dev/null
+++ b/extra/bin86/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142339 2011-11-08 16:07:12Z dreisner $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=bin86
+pkgver=0.16.18
+pkgrel=3
+pkgdesc="A complete 8086 assembler and loader"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.debath.co.uk/"
+depends=('glibc')
+source=("http://www.debath.co.uk/dev86//$pkgname-$pkgver.tar.gz"
+ bin86-0.16.17-x86_64-1.patch)
+md5sums=('914068fb649b93642d1cf21857b75699'
+ '92bdce7b0655cd2e9f83c83fc56d128e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ if [[ $CARCH = x86_64 ]]; then
+ patch -Np1 < "$srcdir/bin86-0.16.17-x86_64-1.patch"
+ 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/extra/bin86/bin86-0.16.17-x86_64-1.patch b/extra/bin86/bin86-0.16.17-x86_64-1.patch
new file mode 100644
index 000000000..152413ee7
--- /dev/null
+++ b/extra/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/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/PKGBUILD b/extra/bind/PKGBUILD
new file mode 100644
index 000000000..b9acf0d7d
--- /dev/null
+++ b/extra/bind/PKGBUILD
@@ -0,0 +1,89 @@
+# $Id: PKGBUILD 142846 2011-11-16 23:53:56Z ibiru $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: 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.1.P1
+_pkgver=9.8.1-P1
+pkgrel=1
+
+pkgdesc='Berkeley Internet Name Daemon is the reference implementation of the DNS protocols'
+url='http://www.isc.org/software/bind/'
+license=('custom:ISC')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('openssl' 'krb5' 'libxml2')
+options=('!makeflags' '!libtool')
+source=("http://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz"
+ 'root.hint::ftp://ftp.rs.internic.net/domain/db.cache'
+ 'so_bsdcompat.patch'
+ 'remove-tools.patch'
+ 'named'
+ 'named.conf'
+ 'named.conf.d'
+ 'named.logrotate'
+ 'localhost.zone'
+ '127.0.0.zone')
+sha1sums=('1cff6594aa185d84942edd2f3cc06dff9cebb04b'
+ 'cbdecd1ea8e7b612b33b63d66bc57273795d1f54'
+ 'b433ba99f23e3db305f8ce293fe4ce6d1b8d4cfb'
+ '18f477f510df31e6c6f547ee2d5fc46e973479bf'
+ '46232e9db243c6c05e170a1781d7a7f413be5d03'
+ '5ca7a5f2a132548a090a045a2df3acea6b35d9eb'
+ '7848edbfb9a848843f57c11c02b0289eefd42d00'
+ '9ffb5c3f72390a517aeae557e32349d5d278cb63'
+ '76a0d4cd1b913db177a5a375bebc47e5956866ec'
+ '53be0f1437ebe595240d8dbdd819939582b97fb9')
+
+provides=('dns-server')
+
+install=install
+backup=('etc/logrotate.d/named'
+ 'etc/conf.d/named'
+ 'etc/named.conf')
+
+build() {
+ cd "${srcdir}/bind-${_pkgver}"
+
+ patch -p1 -i ../remove-tools.patch
+ patch -p1 -i ../so_bsdcompat.patch
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-linux-caps \
+ --with-openssl \
+ --with-libxml2 \
+ --with-libtool \
+
+ # temporary fix for issue reported upstream
+ ln -s .libs/driver.o bin/tests/system/dlzexternal/
+
+ make
+}
+
+package() {
+ cd "${srcdir}/bind-${_pkgver}"
+
+ install -Dm644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ make DESTDIR="${pkgdir}" install
+
+ rmdir "${pkgdir}/var/run"
+ 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 -m640 -o 0 -g 40 ../root.hint "${pkgdir}"/var/named/
+ 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..287d0e05b
--- /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..7907f9983
--- /dev/null
+++ b/extra/bind/named
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/named
+
+[[ -d /var/run/named ]] || mkdir -p /var/run/named
+chown named:named /var/run/named
+
+PIDFILE=/var/run/named/named.pid
+PID=$(cat $PIDFILE 2>/dev/null)
+readlink -q /proc/$PID/exe | grep -q '^/usr/sbin/named' || { PID=; rm $PIDFILE 2>/dev/null; }
+
+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/remove-tools.patch b/extra/bind/remove-tools.patch
new file mode 100644
index 000000000..cbd1c53ad
--- /dev/null
+++ b/extra/bind/remove-tools.patch
@@ -0,0 +1,12 @@
+diff -aur old/bin/Makefile.in new/bin/Makefile.in
+--- old/bin/Makefile.in 2009-10-05 05:07:08.000000000 -0700
++++ new/bin/Makefile.in 2011-08-28 19:14:17.025674400 -0700
+@@ -19,7 +19,7 @@
+ VPATH = @srcdir@
+ top_srcdir = @top_srcdir@
+
+-SUBDIRS = named rndc dig dnssec tests tools nsupdate \
++SUBDIRS = named rndc dnssec tests tools nsupdate \
+ 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..4d7031fcc
--- /dev/null
+++ b/extra/bind/so_bsdcompat.patch
@@ -0,0 +1,12 @@
+diff -aur old/lib/isc/unix/socket.c new/lib/isc/unix/socket.c
+--- old/lib/isc/unix/socket.c 2011-02-18 05:01:16.000000000 +0100
++++ new/lib/isc/unix/socket.c 2011-05-27 10:12:01.685269374 +0200
+@@ -712,6 +712,8 @@
+ }
+ #endif
+
++#undef SO_BSDCOMPAT
++
+ static void
+ socket_log(isc__socket_t *sock, isc_sockaddr_t *address,
+ isc_logcategory_t *category, isc_logmodule_t *module, int level,
diff --git a/extra/bitlbee/PKGBUILD b/extra/bitlbee/PKGBUILD
new file mode 100644
index 000000000..2153ff5ad
--- /dev/null
+++ b/extra/bitlbee/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 144487 2011-12-06 22:43:42Z 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.4
+pkgrel=3
+pkgdesc='Brings instant messaging (XMPP, MSN, Yahoo!, AIM, ICQ, Twitter) to IRC'
+url='http://www.bitlbee.org/'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('openssl' 'glib2')
+makedepends=('asciidoc' 'libotr')
+optdepends=('skype4py: to use skyped'
+ 'libotr: for OTR encryption support'
+ 'xinetd: to run bitlbee through xinetd')
+source=("http://get.bitlbee.org/src/${pkgname}-${pkgver}.tar.gz"
+ 'xinetd'
+ 'rc.d')
+sha1sums=('2c2742948d1ed2c83ee5db2d2fbff5e8b656b8c4'
+ '5e0af27ba9cc4fe455e3381c75fc49a9326e2f17'
+ 'be09d29af3853825778331df451f16ca9e452d03')
+
+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 \
+ --systemdsystemunitdir=/lib/systemd/system \
+ --ssl=openssl \
+ --strip=0 \
+ --otr=plugin
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -o65 -g65 -dm770 "${pkgdir}"/var/lib/bitlbee
+ install -Dm644 "${srcdir}"/xinetd "${pkgdir}"/etc/xinetd.d/bitlbee
+ install -Dm755 "${srcdir}"/rc.d "${pkgdir}"/etc/rc.d/bitlbee
+
+ make DESTDIR="${pkgdir}" install
+ make DESTDIR="${pkgdir}" install-etc
+ make DESTDIR="${pkgdir}" install-dev
+}
diff --git a/extra/bitlbee/install b/extra/bitlbee/install
new file mode 100644
index 000000000..b0dd5511d
--- /dev/null
+++ b/extra/bitlbee/install
@@ -0,0 +1,14 @@
+post_install() {
+ 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
+ true
+}
diff --git a/extra/bitlbee/rc.d b/extra/bitlbee/rc.d
new file mode 100644
index 000000000..bd9248173
--- /dev/null
+++ b/extra/bitlbee/rc.d
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+name=bitlbee
+PID=$(pidof -o %PPID /usr/sbin/bitlbee)
+install -o bitlbee -g bitlbee -d -m 755 /var/run/bitlbee
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ [[ -z "$PID" ]] && {
+ rm -f /var/run/bitlbee/bitlbee.pid
+ su -s /bin/sh -c '/usr/sbin/bitlbee -F' bitlbee
+ } && {
+ add_daemon $name
+ stat_done
+ } || { stat_fail; exit 1; }
+ ;;
+stop)
+ stat_busy "Stopping $name daemon"
+ [[ -n "$PID" ]] && {
+ kill $PID &>/dev/null
+ } && {
+ rm -f /var/run/bitlbee/bitlbee.pid
+ rm_daemon $name
+ stat_done
+ } || { stat_fail; exit 1; }
+ ;;
+restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+*)
+ echo "usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
diff --git a/extra/bitlbee/xinetd b/extra/bitlbee/xinetd
new file mode 100644
index 000000000..d671a8cfc
--- /dev/null
+++ b/extra/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/blas/LICENSE.blas b/extra/blas/LICENSE.blas
new file mode 100644
index 000000000..79f38386e
--- /dev/null
+++ b/extra/blas/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/blas/Makefile.blas b/extra/blas/Makefile.blas
new file mode 100644
index 000000000..e0d97793f
--- /dev/null
+++ b/extra/blas/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.1 $(ALLOBJ) -lm -lgfortran -lc
diff --git a/extra/blas/PKGBUILD b/extra/blas/PKGBUILD
new file mode 100755
index 000000000..cf6369fed
--- /dev/null
+++ b/extra/blas/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 130989 2011-07-09 12:22:58Z 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>
+
+pkgname=blas
+pkgver=3.3.1
+pkgrel=2
+url="http://www.netlib.org/blas"
+makedepends=('gcc-fortran')
+depends=('gcc-libs')
+pkgdesc="Basic Linear Algebra Subprograms"
+arch=('i686' 'x86_64' 'mips64el')
+license=("custom")
+source=(http://www.netlib.org/lapack/lapack-${pkgver}.tgz
+ lapack-3.1.1-make.inc.patch
+ Makefile.blas
+ LICENSE.blas)
+sha1sums=('3ce437e05f0e9a3c8148ec41922f6efeef0ebdac'
+ '71bf7696f1c841339163e82d863dd62e484eb1cf'
+ '3dbee0a5e9a98a2ddf5a58046f5997804e9874ed'
+ '2491a151a37f0162b25fc4e4e9a8ac444b574a76')
+
+build() {
+ cd "${srcdir}/lapack-${pkgver}"
+ cp -f "${srcdir}/Makefile.blas" BLAS/SRC/Makefile
+ patch -Np1 -i "${srcdir}/lapack-3.1.1-make.inc.patch"
+ cp -f INSTALL/make.inc.gfortran make.inc
+
+ 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}/lapack-${pkgver}/"
+
+ popd
+ ln -s libblas.so.${pkgver} libblas.so
+
+}
+
+package_blas() {
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 "${srcdir}/lapack-${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"
+}
+
diff --git a/extra/blas/lapack-3.1.1-make.inc.patch b/extra/blas/lapack-3.1.1-make.inc.patch
new file mode 100644
index 000000000..c807ccbf9
--- /dev/null
+++ b/extra/blas/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/blender/PKGBUILD b/extra/blender/PKGBUILD
new file mode 100644
index 000000000..631b63ae1
--- /dev/null
+++ b/extra/blender/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 145008 2011-12-14 03:12:03Z eric $
+# Contributor: John Sowiak <john@archlinux.org>
+# Maintainer: tobias <tobias@archlinux.org>
+
+# Apparently, the blender guys refuse to release source tarballs for
+# intermediate releases that deal mainly with binaries but incorporate tiny
+# minor changes from svn. 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 svn
+# release if necessary.
+
+#_svn=true
+_svn=false
+
+pkgname=blender
+pkgver=2.61
+pkgrel=1
+epoch=3
+pkgdesc="A fully integrated 3D graphics creation suite"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.blender.org"
+depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' \
+ 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' \
+ 'freetype2' 'openal' 'ffmpeg')
+makedepends=('cmake')
+install=blender.install
+if [ $_svn = false ]; then
+ source=(http://download.blender.org/source/$pkgname-$pkgver.tar.gz)
+ md5sums=('11a4721ff92286f678bb2e05e5f29c97')
+else
+ source=(ftp://ftp.archlinux.org/other/${pkgname}/$pkgname-$pkgver.tar.xz)
+ md5sums=('7579d1139d0d6025df8afcfca64a65c4')
+fi
+
+# source PKGBUILD && mksource
+mksource() {
+ [[ -x /usr/bin/svn ]] || (echo "svn not found. Install subversion." && return 1)
+ _svnver=38016
+ _svntrunk="https://svn.blender.org/svnroot/bf-blender/trunk/blender"
+ _svnmod="$pkgname-$pkgver"
+ mkdir ${pkgname}-$pkgver
+ pushd ${pkgname}-$pkgver
+ svn co $_svntrunk --config-dir ./ -r $_svnver $_svnmod
+ find . -depth -type d -name .svn -exec rm -rf {} \;
+ tar -cJf ../${pkgname}-$pkgver.tar.xz ${pkgname}-$pkgver/*
+ popd
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ mkdir build
+ cd build
+
+ [[ $CARCH == i686 ]] && ENABLESSE2="-DSUPPORT_SSE2_BUILD:BOOL=OFF"
+
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DWITH_INSTALL_PORTABLE:BOOL=OFF \
+ -DWITH_PYTHON_INSTALL:BOOL=OFF \
+ -DWITH_OPENCOLLADA:BOOL=OFF \
+ -DWITH_GAMEENGINE:BOOL=ON \
+ -DWITH_PLAYER:BOOL=ON \
+ -DWITH_BUILTIN_GLEW:BOOL=OFF \
+ -DWITH_CODEC_FFMPEG:BOOL=ON \
+ -DWITH_CODEC_SNDFILE:BOOL=ON \
+ -DPYTHON_VERSION:STRING=3.2 \
+ -DPYTHON_LIBPATH:STRING=/usr/lib \
+ -DPYTHON_LIBRARY:STRING=python3.2mu \
+ -DPYTHON_INCLUDE_DIRS:STRING=/usr/include/python3.2mu \
+ $ENABLESSE2
+
+ make $MAKEFLAGS
+
+ cp -rf "$srcdir"/${pkgname}-$pkgver/release/plugins/* \
+ "$srcdir"/${pkgname}-$pkgver/source/blender/blenpluginapi/
+ cd "$srcdir"/${pkgname}-$pkgver/source/blender/blenpluginapi
+ chmod 755 bmake
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+ make DESTDIR="${pkgdir}" install
+ python -m compileall "${pkgdir}/usr/share/blender"
+
+# install plugins
+ install -d -m755 "$pkgdir"/usr/share/blender/${pkgver%[a-z]}/plugins/{sequence,texture}
+ cp "$srcdir"/${pkgname}-$pkgver/source/blender/blenpluginapi/sequence/*.so \
+ "$pkgdir"/usr/share/blender/${pkgver%[a-z]}/plugins/sequence/
+ cp "$srcdir"/${pkgname}-$pkgver/source/blender/blenpluginapi/texture/*.so \
+ "$pkgdir"/usr/share/blender/${pkgver%[a-z]}/plugins/texture/
+}
diff --git a/extra/blender/blender.install b/extra/blender/blender.install
new file mode 100644
index 000000000..724bfce00
--- /dev/null
+++ b/extra/blender/blender.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ 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/extra/bluedevil/PKGBUILD b/extra/bluedevil/PKGBUILD
new file mode 100644
index 000000000..ad2437496
--- /dev/null
+++ b/extra/bluedevil/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140234 2011-10-10 10:51:49Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=bluedevil
+pkgver=1.2.2
+pkgrel=1
+pkgdesc='KDE bluetooth framework'
+arch=('i686' 'x86_64' 'mips64el')
+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=('f1b2b932f3e1e52b13b0bad515bf4125')
+
+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..af8efba2c
--- /dev/null
+++ b/extra/bluedevil/bluedevil.install
@@ -0,0 +1,12 @@
+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/bluefish/PKGBUILD b/extra/bluefish/PKGBUILD
new file mode 100644
index 000000000..a16245782
--- /dev/null
+++ b/extra/bluefish/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143599 2011-11-26 23:39:41Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=bluefish
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="A powerful HTML editor for experienced web designers and programmers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://bluefish.openoffice.nl/"
+license=('GPL3')
+depends=('gtk3' 'enchant' 'desktop-file-utils')
+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{,.sig})
+sha1sums=('b8f5dad17c7365bc6f4342b6c22bdc328e31d20d'
+ 'faf37ece57fc155c3510e5d6cec5679f22cd11f4')
+
+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..95651cdbe
--- /dev/null
+++ b/extra/bluez-hcidump/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 127665 2011-06-17 17:18:51Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy carrier <geoffroy@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=bluez-hcidump
+pkgver=2.1
+pkgrel=1
+pkgdesc="Bluetooth HCI package analyzer"
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('glibc' 'bluez')
+source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b160f0672276398344eebe9df1b37a2c')
+
+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..80773fdf5
--- /dev/null
+++ b/extra/bluez/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 134029 2011-08-01 10:30:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+
+pkgname=bluez
+pkgver=4.96
+pkgrel=1
+pkgdesc="Libraries and tools for the Bluetooth protocol stack"
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'emptydirs')
+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=('255c3dda8b93210ab0dcf8d04ddaf69f'
+ '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-hid2hci \
+ --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
+
+ # http://mailman.archlinux.org/pipermail/arch-general/2011-April/019787.html
+ rm "${pkgdir}"/lib/udev/rules.d/97-bluetooth.rules
+}
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..0cde321fb
--- /dev/null
+++ b/extra/bmp-musepack/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137709 2011-09-10 13:05:29Z pierre $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Nikos Kouremenos <nk@ebox.gr>
+
+pkgname=bmp-musepack
+pkgver=1.2
+pkgrel=4
+pkgdesc="A BMP plugin for playing sounds in Musepack (MPC) format"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://musepack.net/"
+license=('BSD')
+depends=('bmp' 'libmpcdec' '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
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ 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..55449d66f
--- /dev/null
+++ b/extra/bmp-wma/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 137730 2011-09-10 14:26:41Z pierre $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Ewoud Nuyts <ewoud.nuyts@gmail.com>
+
+pkgname=bmp-wma
+pkgver=0.1.1
+pkgrel=4
+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' 'mips64el')
+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"
+ if [ "${CARCH}" = "x86_64" ]; then
+ export CFLAGS="${CFLAGS} -fPIC"
+ fi
+ ./configure --prefix=/usr --disable-static
+ echo '#define HAVE_LRINTF 1' >> config.h
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..ea646f637
--- /dev/null
+++ b/extra/bmp/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 135355 2011-08-13 06:32:50Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=bmp
+pkgver=0.9.7.1
+pkgrel=8
+pkgdesc="gtk2 port of xmms"
+arch=(i686 x86_64 mips64el)
+url="http://sourceforge.net/projects/beepmp/"
+license=('GPL')
+depends=('id3lib' 'libglade' 'libsm' 'libvorbis' 'alsa-lib' 'unzip' 'desktop-file-utils')
+makedepends=('libxt')
+options=('!libtool')
+install=bmp.install
+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
+ patch -p1 -i ../${pkgname}-${pkgver}-crossfade-0.3.9.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+# 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/bmp/bmp.install b/extra/bmp/bmp.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/extra/bmp/bmp.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/bochs/PKGBUILD b/extra/bochs/PKGBUILD
new file mode 100644
index 000000000..46bc1161d
--- /dev/null
+++ b/extra/bochs/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 127309 2011-06-13 01:13:14Z kevin $
+#Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=bochs
+pkgver=2.4.6
+pkgrel=1
+pkgdesc="A portable x86 PC emulation software package"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://bochs.sourceforge.net/"
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+depends=('gcc-libs' 'libxrandr')
+sha256sums=('689dcc5fccfd70c8340a54986f0cb9c2824009ed602718802868333da9ac53b9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-vbe --without-wx --enable-cpu-level=6 \
+ --enable-fpu --enable-3dnow
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+ install -D -m 644 .bochsrc ${pkgdir}/etc/bochsrc-sample.txt
+}
diff --git a/extra/bogofilter/PKGBUILD b/extra/bogofilter/PKGBUILD
new file mode 100644
index 000000000..9c939fe03
--- /dev/null
+++ b/extra/bogofilter/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 127873 2011-06-19 06:22:51Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+
+pkgname=bogofilter
+pkgver=1.2.2
+pkgrel=3
+pkgdesc="A fast Bayesian spam filtering tool"
+arch=('i686' 'x86_64' 'mips64el')
+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..c630d2d8c
--- /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' 'mips64el')
+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/BOOST_FOREACH.patch b/extra/boost/BOOST_FOREACH.patch
new file mode 100644
index 000000000..12cf08800
--- /dev/null
+++ b/extra/boost/BOOST_FOREACH.patch
@@ -0,0 +1,60 @@
+Index: /trunk/boost/foreach_fwd.hpp
+===================================================================
+--- /trunk/boost/foreach_fwd.hpp (revision 62661)
++++ /trunk/boost/foreach_fwd.hpp (revision 75540)
+@@ -15,4 +15,6 @@
+ #define BOOST_FOREACH_FWD_HPP
+
++#include <utility> // for std::pair
++
+ // This must be at global scope, hence the uglified name
+ enum boost_foreach_argument_dependent_lookup_hack
+@@ -26,4 +28,7 @@
+ namespace foreach
+ {
++ template<typename T>
++ std::pair<T, T> in_range(T begin, T end);
++
+ ///////////////////////////////////////////////////////////////////////////////
+ // boost::foreach::tag
+@@ -47,4 +52,22 @@
+ } // namespace foreach
+
++// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131
++namespace BOOST_FOREACH
++{
++ using foreach::in_range;
++ using foreach::tag;
++
++ template<typename T>
++ struct is_lightweight_proxy
++ : foreach::is_lightweight_proxy<T>
++ {};
++
++ template<typename T>
++ struct is_noncopyable
++ : foreach::is_noncopyable<T>
++ {};
++
++} // namespace BOOST_FOREACH
++
+ } // namespace boost
+
+Index: /trunk/boost/foreach.hpp
+===================================================================
+--- /trunk/boost/foreach.hpp (revision 75077)
++++ /trunk/boost/foreach.hpp (revision 75540)
+@@ -166,5 +166,5 @@
+ // at the global namespace for your type.
+ template<typename T>
+-inline boost::foreach::is_lightweight_proxy<T> *
++inline boost::BOOST_FOREACH::is_lightweight_proxy<T> *
+ boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
+
+@@ -191,5 +191,5 @@
+ // at the global namespace for your type.
+ template<typename T>
+-inline boost::foreach::is_noncopyable<T> *
++inline boost::BOOST_FOREACH::is_noncopyable<T> *
+ boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
+
diff --git a/extra/boost/PKGBUILD b/extra/boost/PKGBUILD
new file mode 100644
index 000000000..d55e68456
--- /dev/null
+++ b/extra/boost/PKGBUILD
@@ -0,0 +1,122 @@
+# $Id: PKGBUILD 144045 2011-12-02 20:54:13Z ibiru $
+# 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.48.0
+_boostver=${pkgver//./_}
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.boost.org/"
+makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
+source=(http://downloads.sourceforge.net/${pkgbase}/${pkgbase}_${_boostver}.tar.gz
+ exceptions.patch
+ BOOST_FOREACH.patch)
+license=('custom')
+md5sums=('313a11e97eb56eb7efd18325354631be'
+ '9b44c28b36303152050c8c82469569c5'
+ '2db6098a1a39bced4c6162eb46418320')
+
+_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
+
+ cd "${srcdir}"/${pkgbase}_${_boostver}
+ # https://svn.boost.org/trac/boost/ticket/5731
+ patch -p0 -i "${srcdir}/exceptions.patch"
+ # https://svn.boost.org/trac/boost/ticket/6131
+ patch -p2 -i "${srcdir}/BOOST_FOREACH.patch"
+
+
+ # build bjam
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools/build/v2/engine"
+ ./build.sh cc
+
+ _bindir="bin.linuxx86"
+ [ "${CARCH}" = "x86_64" ] && _bindir="bin.linuxx86_64"
+ [ "${CARCH}" = "mips64el" ] && _bindir="bin.linuxmips"
+
+ install -d "${_stagedir}"/usr/bin
+ install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam
+
+ # build tools
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools/"
+ "${_stagedir}"/usr/bin/bjam --toolset=gcc
+
+ # copy the tools
+ cd "${srcdir}/${pkgbase}_${_boostver}/dist/bin"
+ for i in *;do
+ install -m755 "${i}" "${_stagedir}/usr/bin/${i}"
+ done
+
+ #boostbook needed by quickbook
+ cd "${srcdir}/${pkgbase}_${_boostver}/dist/"
+ cp -r share "${_stagedir}"
+
+ # build libs
+ cd "${srcdir}/${pkgbase}_${_boostver}"
+
+ # 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
+
+ "${_stagedir}"/usr/bin/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
+}
+
+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,share}
+ # 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/
+
+ #boostbook
+ cp -r "${_stagedir}"/share/* "${pkgdir}"/usr/share
+
+ # 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/exceptions.patch b/extra/boost/exceptions.patch
new file mode 100644
index 000000000..9faa71526
--- /dev/null
+++ b/extra/boost/exceptions.patch
@@ -0,0 +1,25 @@
+diff -up boost/numeric/conversion/converter_policies.hpp\~ boost/numeric/conversion/converter_policies.hpp
+--- boost/numeric/conversion/converter_policies.hpp~ 2008-10-13 11:00:03.000000000 +0200
++++ boost/numeric/conversion/converter_policies.hpp 2011-07-22 11:46:40.961876274 +0200
+@@ -20,6 +20,7 @@
+
+ #include "boost/mpl/if.hpp"
+ #include "boost/mpl/integral_c.hpp"
++#include "boost/throw_exception.hpp"
+
+ namespace boost { namespace numeric
+ {
+@@ -159,9 +160,9 @@ struct def_overflow_handler
+ void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow)
+ {
+ if ( r == cNegOverflow )
+- throw negative_overflow() ;
++ boost::throw_exception( negative_overflow() ) ;
+ else if ( r == cPosOverflow )
+- throw positive_overflow() ;
++ boost::throw_exception( positive_overflow() ) ;
+ }
+ } ;
+
+
+Diff finished. Fri Jul 22 11:46:49 2011
diff --git a/extra/botan/PKGBUILD b/extra/botan/PKGBUILD
new file mode 100644
index 000000000..1623c55c4
--- /dev/null
+++ b/extra/botan/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 128341 2011-06-23 05:31:14Z 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.10.0
+pkgrel=1
+pkgdesc="BSD-licensed crypto library written in C++"
+license=('BSD')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://botan.randombit.net/"
+depends=('gcc-libs' 'sh')
+makedepends=('python2')
+source=(http://files.randombit.net/botan/Botan-${pkgver}.tgz)
+md5sums=('1f03a6a84f402a12e50665868dddae99')
+
+build() {
+ cd ${srcdir}/Botan-${pkgver}
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' configure.py
+ ./configure.py --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/Botan-${pkgver}
+ make DESTDIR=${pkgdir}/usr install
+}
+
diff --git a/extra/brasero/PKGBUILD b/extra/brasero/PKGBUILD
new file mode 100644
index 000000000..aff70e67f
--- /dev/null
+++ b/extra/brasero/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 139227 2011-10-01 18:55:55Z ibiru $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=brasero
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="A disc burning application for Gnome"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org/projects/brasero"
+license=('GPL')
+options=('!libtool' '!emptydirs')
+depends=('gtk3' 'gstreamer0.10-base-plugins' 'totem-plparser' 'cdrkit' 'cdrdao' 'desktop-file-utils' 'hicolor-icon-theme' 'shared-mime-info' 'libcanberra' 'dvd+rw-tools' 'dconf' 'libsm' 'libtracker-sparql')
+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.xz)
+sha256sums=('2e34309caefa9b2ca179e11c4501c5bfd2bcd5b8ed20bd959a249e034f54455c')
+
+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/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..3a6e3f964
--- /dev/null
+++ b/extra/brltty/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 142442 2011-11-09 21:20:39Z guillaume $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=brltty
+pkgver=4.3
+pkgrel=1
+pkgdesc="Braille display driver for Linux/Unix"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'brltty.conf')
+# 'brltty-4.2-S_ISCHR.patch'
+md5sums=('5ada573f88df32b6150db3b9a620e20b'
+ '831ebaf0c56091702929c68805d20c4f'
+ 'a8ab8b3dd059e96e1734bc9cdcf844fc')
+# '5954b289efaf2ff17676d06de9a88854'
+
+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/bzflag/PKGBUILD b/extra/bzflag/PKGBUILD
new file mode 100644
index 000000000..ba2e71452
--- /dev/null
+++ b/extra/bzflag/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 138478 2011-09-24 16:46:33Z stephane $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=bzflag
+pkgver=2.4.0
+pkgrel=2
+pkgdesc='Multiplayer 3D tank battle game'
+url='http://bzflag.org/'
+license=('LGPL')
+options=('!libtool')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('curl' 'glew' 'mesa' 'sdl')
+source=("http://downloads.sourceforge.net/project/bzflag/bzflag%20source/${pkgver}/bzflag-${pkgver}.tar.bz2")
+sha1sums=('af469d63af7143479176ea0ac91ce2eaa6e4561f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+
+ cd misc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 misc/bzflag.desktop "${pkgdir}"/usr/share/applications/bzflag.desktop
+ install -Dm644 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..d68c778a5
--- /dev/null
+++ b/extra/bzr/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 141925 2011-11-03 07:48:25Z andrea $
+# Maintainer :
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=bzr
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="A decentralized revision control system (bazaar)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://bazaar.canonical.com/en/"
+license=('GPL')
+depends=('python2')
+optdepends=('python-paramiko: for sftp support')
+source=("http://launchpad.net/${pkgname}/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz"{,.sig})
+md5sums=('cfc06fddd348445c65a247c0b33a05db'
+ '90294e34a45df20b16be47a32c800c89')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|man/man1|share/man/man1|' setup.py
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ bzrlib/{plugins/bash_completion/bashcomp.py,tests/ssl_certs/create_ssls.py,patiencediff.py,_patiencediff_py.py}
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
+
+ # 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..39792ed75
--- /dev/null
+++ b/extra/c-ares/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143105 2011-11-23 02:52:51Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=c-ares
+pkgver=1.7.5
+pkgrel=1
+pkgdesc='C library that performs DNS requests and name resolves asynchronously'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://c-ares.haxx.se/'
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=("http://c-ares.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc}
+ 'LICENSE')
+md5sums=('800875fc23cd8e1924d8af9172ed33e7'
+ '593129fa3c0612b78594adbe4ee48ca1'
+ 'c69f2042941b708ce3e7121424d0b7e6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --enable-shared
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/cabal-install/PKGBUILD b/extra/cabal-install/PKGBUILD
new file mode 100644
index 000000000..dda18250d
--- /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' 'mips64el')
+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..2f81cc228
--- /dev/null
+++ b/extra/cagibi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 123124 2011-05-08 20:39:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=cagibi
+pkgver=0.2.0
+pkgrel=1
+pkgdesc='A cache/proxy daemon for SSDP (the discovery part of UPnP)'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('LGPL')
+depends=('qt')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('af66d89337ef80e8a868d3bb9dd92328')
+
+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..05411ed7e
--- /dev/null
+++ b/extra/cairo-perl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143687 2011-11-28 11:39:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cairo-perl
+pkgver=1.081
+pkgrel=1
+pkgdesc="Perl wrappers for cairo"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+options=('!emptydirs')
+depends=('cairo' 'perl')
+makedepends=('perl-extutils-depends' 'perl-extutils-pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/Cairo-${pkgver}.tar.gz)
+md5sums=('52c712b0f749f2fe232ae6e18880fe7d')
+
+build() {
+ cd "${srcdir}/Cairo-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/Cairo-${pkgver}"
+ make test
+}
+
+package() {
+ cd "${srcdir}/Cairo-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD
new file mode 100644
index 000000000..356a9d270
--- /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 'mips64el')
+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..faa47880f
--- /dev/null
+++ b/extra/cairomm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 124057 2011-05-16 10:35:03Z jgc $
+# Maintainer: Kevin <kevin@archlinux.org>
+# Contributor: criminy <criminy@gmail.com>
+
+pkgname=cairomm
+pkgver=1.10.0
+pkgrel=1
+pkgdesc="C++ bindings to Cairo vector graphics library"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+sha1sums=('f08bf8a331067f0d1e876523f07238fba6b26b99')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/capi4hylafax/PKGBUILD b/extra/capi4hylafax/PKGBUILD
new file mode 100644
index 000000000..f8918d70e
--- /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 'mips64el')
+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..c76578120
--- /dev/null
+++ b/extra/capi4k-utils/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 137697 2011-09-10 12:45:15Z pierre $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=capi4k-utils
+pkgver=050718
+pkgrel=8
+pkgdesc="capi utils for isdn cards"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ # fix compiling with gcc 4.2
+ patch -Np1 -i ../capi-compile.patch
+ 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' $srcdir/$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.*)
+ cd capi20
+ aclocal
+ libtoolize --copy --force
+ cd $srcdir/$pkgname
+ make subconfig
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname
+ make DESTDIR=$pkgdir install
+ 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..a185964b4
--- /dev/null
+++ b/extra/capseo/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137732 2011-09-10 14:29:41Z pierre $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=capseo
+pkgver=0.3
+pkgrel=2
+epoch=1
+pkgdesc="Capseo video codec"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dev.gentoo.org/~trapni/capseo/"
+license=('GPL2')
+depends=('libgl' 'gcc-libs')
+options=('!libtool')
+makedepends=('pkgconfig' 'mesa' 'libogg')
+source=("ftp://ftp.archlinux.org/other/capseo/${pkgname}-${pkgver}.tar.gz")
+md5sums=('bd869e8c9b1081e90a44567092ea8c5e')
+
+build() {
+ cd "${srcdir}"
+ ./autogen.sh
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/caribou/PKGBUILD b/extra/caribou/PKGBUILD
new file mode 100644
index 000000000..0feb4c2bc
--- /dev/null
+++ b/extra/caribou/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 140843 2011-10-20 05:41:46Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Adam Hani Schakaki <krzd@krzd.net>
+
+pkgname=caribou
+pkgver=0.4.1
+pkgrel=1
+pkgdesc="A text entry and UI navigation application being developed as an alternative to the Gnome On-screen Keyboard."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Caribou"
+license=('LGPL')
+depends=('at-spi2-atk' 'pyatspi' 'dbus-python' 'python2-gobject' 'gtk3' 'libxklavier' 'libgee' 'clutter' 'dconf')
+makedepends=('gnome-doc-utils' 'intltool')
+install=caribou.install
+options=(!libtool !emptydirs)
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/0.4/$pkgname-$pkgver.tar.xz)
+sha256sums=('d4d2328e0eadbf037f7e0ec146e835097fe56cb2b940985655e649c5556e4ed1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i s'|#!/usr/bin/python|#!/usr/bin/python2|'g tools/{fix_gir,make_schema}.py
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/caribou \
+ --disable-gtk2-module \
+ --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/caribou/caribou.install b/extra/caribou/caribou.install
new file mode 100644
index 000000000..22ca274a5
--- /dev/null
+++ b/extra/caribou/caribou.install
@@ -0,0 +1,13 @@
+pkgname=caribou
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/extra/catdoc/PKGBUILD b/extra/catdoc/PKGBUILD
new file mode 100644
index 000000000..aa4f7da01
--- /dev/null
+++ b/extra/catdoc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 128489 2011-06-24 04:50:44Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Paulius Palevicius <paulius@birzai.com>
+
+pkgname=catdoc
+pkgver=0.94.2
+pkgrel=3
+pkgdesc="A convertor for Microsoft Word, Excel, PowerPoint and RTF Files to text"
+arch=(i686 x86_64 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make installroot="$pkgdir" mandir=/usr/share/man/man1 install
+}
diff --git a/extra/ccache/PKGBUILD b/extra/ccache/PKGBUILD
new file mode 100644
index 000000000..57be5c5d0
--- /dev/null
+++ b/extra/ccache/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 143717 2011-11-28 16:48:34Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ccache
+pkgver=3.1.6
+pkgrel=2
+pkgdesc="A compiler cache"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ccache.samba.org/"
+license=('GPL')
+depends=('zlib')
+source=("http://samba.org/ftp/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('343dc9b642e1d2af1e6bd8e474dde92e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ install -Dm 755 ccache ${pkgdir}/usr/bin/ccache
+ install -Dm 644 ccache.1 ${pkgdir}/usr/share/man/man1/ccache.1
+
+ install -d ${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..71ca9eabd
--- /dev/null
+++ b/extra/cd-discid/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 123749 2011-05-12 20:54:41Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=cd-discid
+pkgver=0.9
+pkgrel=3
+pkgdesc="A backend utility to get CDDB discid information from a CD-ROM disc"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" INSTALL=/bin/install install
+}
diff --git a/extra/cdargs/PKGBUILD b/extra/cdargs/PKGBUILD
new file mode 100644
index 000000000..7d721064b
--- /dev/null
+++ b/extra/cdargs/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 128462 2011-06-24 02:21:59Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=cdargs
+pkgver=1.35
+pkgrel=3
+pkgdesc="A replacement for 'cd' that includes bookmarks/browsing for faster navigation"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.skamphausen.de/cgi-bin/ska/CDargs"
+depends=('ncurses' 'gcc-libs')
+install=cdargs.install
+source=("http://www.skamphausen.de/downloads/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+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..2b29beba7
--- /dev/null
+++ b/extra/cdargs/cdargs.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "cdargs: helper scripts are in /usr/share/cdargs/"
+}
diff --git a/extra/cdparanoia/PKGBUILD b/extra/cdparanoia/PKGBUILD
new file mode 100644
index 000000000..223570a22
--- /dev/null
+++ b/extra/cdparanoia/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 122077 2011-05-02 05:53:24Z andrea $
+# Maintainer:
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=cdparanoia
+pkgver=10.2
+pkgrel=3
+pkgdesc="Compact Disc Digital Audio extraction tool"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+
+build() {
+ cd "${srcdir}/${pkgname}-III-${pkgver}"
+ patch -p0 -i ${srcdir}/gcc.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-III-${pkgver}"
+ make prefix="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man" install
+}
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..289b3825c
--- /dev/null
+++ b/extra/cdrdao/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 137917 2011-09-12 12:45:56Z pierre $
+# 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=6
+arch=('i686' 'x86_64' 'mips64el')
+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/celestia/PKGBUILD b/extra/celestia/PKGBUILD
new file mode 100644
index 000000000..e41ce2589
--- /dev/null
+++ b/extra/celestia/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 127269 2011-06-12 08:43:30Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=celestia
+pkgver=1.6.1
+pkgrel=1
+pkgdesc="Real-time space simulation"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.shatters.net/celestia/"
+depends=('gtk2' 'libtheora' 'lua' 'gtkglext' 'glut' 'libxmu' 'mesa' 'libjpeg')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/celestia/${pkgname}-${pkgver}.tar.gz
+ celestia-1.5.1-gcc44.patch celestia-1.6.1-gentoo.patch)
+sha1sums=('1f0fdf4525a8b9d6c708e1f6383babed670d18e7'
+ '5ab2769e239a89468bb8ffb5740cbeec6018143c'
+ 'aebf894630fdba4c4d429622f5e2b8da56d8b61e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # build patch
+ patch -Np0 < ${srcdir}/celestia-1.5.1-gcc44.patch
+ patch -Np0 -i ${srcdir}/celestia-1.6.1-gentoo.patch
+
+ ./configure --prefix=/usr \
+ --with-lua=/usr \
+ --datadir=/usr/share \
+ --with-gtk
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
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/celestia-1.6.1-gentoo.patch b/extra/celestia/celestia-1.6.1-gentoo.patch
new file mode 100644
index 000000000..57fffe159
--- /dev/null
+++ b/extra/celestia/celestia-1.6.1-gentoo.patch
@@ -0,0 +1,23 @@
+--- src/celestia/Makefile.am 2011-06-07 19:15:51.502000147 +0200
++++ src/celestia/Makefile.am.new 2011-06-07 19:15:47.208000302 +0200
+@@ -15,6 +15,7 @@
+ if ENABLE_GTK
+ SUBDIRS += gtk
+ celestiaGTKLIBS = $(GTK_LIBS) gtk/libgtkgui.a
++LIBS += $(GTK_LIBS)
+ endif
+
+ COMMONSOURCES = \
+
+Index: src/celengine/frametree.h
+===================================================================
+--- src/celengine/frametree.h (revision 5163)
++++ src/celengine/frametree.h (arbetskopia)
+@@ -14,6 +14,7 @@
+ #define _CELENGINE_FRAMETREE_H_
+
+ #include <vector>
++#include <cstddef>
+
+ class Star;
+ class Body;
diff --git a/extra/cfitsio/PKGBUILD b/extra/cfitsio/PKGBUILD
new file mode 100644
index 000000000..5f1992744
--- /dev/null
+++ b/extra/cfitsio/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 127670 2011-06-17 17:20:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=cfitsio
+pkgver=3.280
+_pkgver=3280
+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' 'mips64el')
+url="http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html"
+license=('GPL2')
+depends=('glibc')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=("ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/${pkgname}${_pkgver}.tar.gz")
+md5sums=('fdb9c0f51678b47e78592c70fb5dc793')
+
+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..c0a9544e0
--- /dev/null
+++ b/extra/cheese/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140845 2011-10-20 05:41:48Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cheese
+pkgver=3.2.1
+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 'mips64el')
+license=('GPL')
+depends=('gnome-desktop' 'gtk3' 'libcanberra' 'librsvg' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'gstreamer0.10-bad' 'clutter-gst'
+ 'clutter-gtk' 'mx' 'libgee' 'gnome-video-effects' 'hicolor-icon-theme' 'dconf')
+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}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('0abc54aeaf1cec931b8a6e148f40341be4b2bc0e9a1164eba4fef7989499059c')
+
+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/extra/cheese/cheese.install b/extra/cheese/cheese.install
new file mode 100644
index 000000000..c042fba42
--- /dev/null
+++ b/extra/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/extra/chemtool/PKGBUILD b/extra/chemtool/PKGBUILD
new file mode 100644
index 000000000..b5fbb721b
--- /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 'mips64el')
+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..c2a3ee416
--- /dev/null
+++ b/extra/chkrootkit/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 143673 2011-11-28 09:58:36Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=chkrootkit
+pkgver=0.49
+pkgrel=3
+pkgdesc="Locally checks for signs of a rootkit"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.chkrootkit.org"
+depends=('sh' 'net-tools')
+license=('BSD')
+source=(http://www.reznor.com/tools/chkrootkit.tar.gz chkrootkit.cron \
+ fix-tools-path.patch backslashes.patch kallsyms.patch)
+md5sums=('304d840d52840689e0ab0af56d6d3a18'
+ 'f4b6494270f708bf016e087104681739'
+ '3e5f2d5e2f4fa7a0d780baec9039c07f'
+ '758f892dcf73e8a2a4694662fba366d4'
+ 'd087f3aad8a9e97fea496ef83e4f1d48')
+sha1sums=('cec1a3c482b95b20d3a946b07fffb23290abc4a6'
+ '6dda90abf779b6f5c3bacd638e1231f34635575d'
+ '7fcad8117a064f0a6910134e8bb3a55de110650f'
+ 'e22546f445c145cf05dbc1a10f7b196fcd1c8202'
+ 'dc5b402ee69a7a5ae622ecfd733682516df54e88')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|/var/adm|/var/log|' check_wtmpx.c chklastlog.c chkutmp.c chkwtmp.c
+ patch -p0 -i "${srcdir}/fix-tools-path.patch"
+ patch -p1 -i "${srcdir}/backslashes.patch"
+ patch -p1 -i "${srcdir}/kallsyms.patch"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ for i in check_wtmpx chkdirs chklastlog chkproc chkrootkit \
+ chkutmp chkwtmp ifpromisc strings-static ; do
+ install -D -m755 $i "${pkgdir}/usr/sbin/$i"
+ done
+ install -D -m744 "${srcdir}/chkrootkit.cron" "${pkgdir}/etc/cron.weekly/chkrootkit"
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/chkrootkit/backslashes.patch b/extra/chkrootkit/backslashes.patch
new file mode 100644
index 000000000..6ac981441
--- /dev/null
+++ b/extra/chkrootkit/backslashes.patch
@@ -0,0 +1,22 @@
+Author: James R. Van Zandt <jrv@debian.org>
+Description: Two of the chkrootkit messages have unnecessary backslashes (#498063)
+--- a/chkrootkit
++++ b/chkrootkit
+@@ -672,7 +672,7 @@ etc/ld.so.hash sbin/init.zk usr/lib/in.h
+ if [ "`find ${LIBS} -name libproc.a 2> /dev/null`" != "" -a \
+ "$SYSTEM" != "FreeBSD" ]
+ then
+- echo "Possible t0rn v8 \(or variation\) rootkit installed"
++ echo "Possible t0rn v8 (or variation) rootkit installed"
+ else
+ if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
+ fi
+@@ -726,7 +726,7 @@ etc/ld.so.hash sbin/init.zk usr/lib/in.h
+
+ if [ -d ${ROOTDIR}dev/ptyxx -o -r "${ROOTDIR}usr/lib/.ark?" -o \
+ -d ${ROOTDIR}usr/doc/"... " ]; then
+- echo "Possible Ambient's rootkit \(ark\) installed"
++ echo "Possible Ambient's rootkit (ark) installed"
+ else
+ if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
+ fi
diff --git a/extra/chkrootkit/chkrootkit.cron b/extra/chkrootkit/chkrootkit.cron
new file mode 100644
index 000000000..0fc84ded8
--- /dev/null
+++ b/extra/chkrootkit/chkrootkit.cron
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/sbin/chkrootkit -q
diff --git a/extra/chkrootkit/fix-tools-path.patch b/extra/chkrootkit/fix-tools-path.patch
new file mode 100644
index 000000000..d45f07901
--- /dev/null
+++ b/extra/chkrootkit/fix-tools-path.patch
@@ -0,0 +1,11 @@
+--- chkrootkit
++++ chkrootkit
+@@ -17,6 +17,8 @@ unalias netstat > /dev/null 2>&1
+ unalias ps > /dev/null 2>&1
+ unalias dirname > /dev/null 2>&1
+
++cd /usr/sbin
++
+ # Workaround for recent GNU coreutils
+ _POSIX2_VERSION=199209
+ export _POSIX2_VERSION
diff --git a/extra/chkrootkit/kallsyms.patch b/extra/chkrootkit/kallsyms.patch
new file mode 100644
index 000000000..4e3694aad
--- /dev/null
+++ b/extra/chkrootkit/kallsyms.patch
@@ -0,0 +1,30 @@
+--- a/chkrootkit
++++ b/chkrootkit
+@@ -308,7 +316,7 @@ lkm ()
+ fi
+
+ if [ "${EXPERT}" = "t" ]; then
+- [ -r /proc/ksyms ] && ${egrep} -i "adore|sebek" < /proc/ksyms 2>/dev/null
++ [ -r /proc/kallsyms ] && ${egrep} -i "adore|sebek" < /proc/kallsyms 2>/dev/null
+ [ -d /proc/knark ] && ${ls} -la /proc/knark 2> /dev/null
+ 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
+@@ -318,14 +326,14 @@ lkm ()
+ fi
+
+ ### adore LKM
+- [ -r /proc/ksyms ] && \
+- if `${egrep} -i adore < /proc/ksyms >/dev/null 2>&1`; then
++ [ -r /proc/kallsyms ] && \
++ if `${egrep} -i adore < /proc/kallsyms >/dev/null 2>&1`; then
+ echo "Warning: Adore LKM installed"
+ fi
+
+ ### sebek LKM (Adore based)
+- [ -r /proc/ksyms ] && \
+- if `${egrep} -i sebek < /proc/ksyms >/dev/null 2>&1`; then
++ [ -r /proc/kallsyms ] && \
++ if `${egrep} -i sebek < /proc/kallsyms >/dev/null 2>&1`; then
+ echo "Warning: Sebek LKM installed"
+ fi
+
diff --git a/extra/chmlib/PKGBUILD b/extra/chmlib/PKGBUILD
new file mode 100644
index 000000000..9c59de22b
--- /dev/null
+++ b/extra/chmlib/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 143719 2011-11-28 16:57:25Z 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=3
+pkgdesc="Library for dealing with Microsoft ITSS/CHM format files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://morte.jedrea.com/~jedwin/projects/chmlib/"
+options=('!libtool')
+license=('LGPL')
+depends=('glibc')
+source=("http://morte.jedrea.com/~jedwin/projects/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'src_chm_lib.c.diff')
+md5sums=('7ea49ed8c335215c1edc6fae83e6b912'
+ '08fe9d62302a50f23cffb6c2a7524b6d')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+# Patch from debian
+ [ "$CARCH" = "mips64el" ] && \
+ patch -Np1 -i $srcdir/src_chm_lib.c.diff
+
+ ./configure --prefix=/usr \
+ --enable-examples=yes
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/chmlib/src_chm_lib.c.diff b/extra/chmlib/src_chm_lib.c.diff
new file mode 100644
index 000000000..742e0e521
--- /dev/null
+++ b/extra/chmlib/src_chm_lib.c.diff
@@ -0,0 +1,58 @@
+Patch to fix integer types problem by Goswin von Brederlow
+<brederlo@informatik.uni-tuebingen.de> (#258444)
+--- chmlib-0.39.orig/src/chm_lib.c
++++ chmlib-0.39/src/chm_lib.c
+@@ -56,6 +56,7 @@
+
+ #include "lzx.h"
+
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #ifdef CHM_DEBUG
+@@ -149,22 +150,9 @@
+ typedef __int64 Int64;
+ typedef unsigned __int64 UInt64;
+
+-/* I386, 32-bit, non-Windows */
+-/* Sparc */
+-/* MIPS */
+-/* PPC */
+-#elif __i386__ || __sun || __sgi || __ppc__
+-typedef unsigned char UChar;
+-typedef short Int16;
+-typedef unsigned short UInt16;
+-typedef long Int32;
+-typedef unsigned long UInt32;
+-typedef long long Int64;
+-typedef unsigned long long UInt64;
+-
+ /* x86-64 */
+ /* Note that these may be appropriate for other 64-bit machines. */
+-#elif __x86_64__ || __ia64__
++#elif defined(__LP64__)
+ typedef unsigned char UChar;
+ typedef short Int16;
+ typedef unsigned short UInt16;
+@@ -173,10 +161,18 @@
+ typedef long Int64;
+ typedef unsigned long UInt64;
+
++/* I386, 32-bit, non-Windows */
++/* Sparc */
++/* MIPS */
++/* PPC */
+ #else
+-
+-/* yielding an error is preferable to yielding incorrect behavior */
+-#error "Please define the sized types for your platform in chm_lib.c"
++typedef unsigned char UChar;
++typedef short Int16;
++typedef unsigned short UInt16;
++typedef long Int32;
++typedef unsigned long UInt32;
++typedef long long Int64;
++typedef unsigned long long UInt64;
+ #endif
+
+ /* GCC */
diff --git a/extra/cifs-utils/PKGBUILD b/extra/cifs-utils/PKGBUILD
new file mode 100644
index 000000000..1c85829c0
--- /dev/null
+++ b/extra/cifs-utils/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 122574 2011-05-04 17:23:19Z ibiru $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=cifs-utils
+pkgver=4.9
+pkgrel=3
+pkgdesc="CIFS filesystem user-space tools"
+arch=(i686 x86_64 'mips64el')
+url="http://wiki.samba.org/index.php/LinuxCIFS_utils"
+license=('GPL')
+depends=('libcap' 'keyutils' 'krb5' 'talloc')
+source=(ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/$pkgname-$pkgver.tar.bz2)
+md5sums=('908d904e6b9e58f09f530de151a88ef8')
+
+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
+}
diff --git a/extra/cinepaint/LICENSE b/extra/cinepaint/LICENSE
new file mode 100644
index 000000000..746207229
--- /dev/null
+++ b/extra/cinepaint/LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2005, Kai-Uwe Behrmann
+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.ntributors 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/extra/cinepaint/PKGBUILD b/extra/cinepaint/PKGBUILD
new file mode 100644
index 000000000..9217064dd
--- /dev/null
+++ b/extra/cinepaint/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 143847 2011-11-30 06:23:25Z eric $
+# Maintainer: tobias [tobias.archlinux.org]
+# Contributor: tobias [tobias.justdreams.de]
+
+pkgname=cinepaint
+pkgver=1.0
+pkgrel=1
+pkgdesc="Sophisticated graphics manipulation programm supporting > 8bit pictures"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL' 'GPL' 'MIT')
+url="http://www.cinepaint.org"
+depends=('gtk2' 'openexr' 'lcms' 'libxpm' 'fltk' 'ftgl' 'libxxf86vm')
+makedepends=('python2' 'gutenprint')
+optdepends=('python2: for python plug-ins' 'gutenprint: for print plug-ins')
+options=('!libtool')
+install=cinepaint.install
+source=(http://sourceforge.net/projects/cinepaint/files/CinePaint/${pkgname}-${pkgver}.tgz
+ LICENSE)
+md5sums=('7dfdb005d246578392ac9bd500534804'
+ '169085743f667c250ea2e4022efecf5f')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ find plug-ins/pygimp -type f -exec sed -i 's#env python#env python2#' {} +
+ sed -i 's|$(LDFLAGS) -o|$(LDFLAGS) $(GTK_LIBS) -o|' lib/Makefile.in
+
+ aclocal -I aclocal
+ autoconf
+ ./configure --prefix=/usr --libdir=/usr/lib --mandir=/usr/share/man \
+ --enable-gtk2 --enable-pygimp --with-python=/usr/bin/python2
+ sed -i 's/-Wl,,/-Wl,/' lib/fl_i18n/Makefile plug-ins/bracketing_to_hdr/Makefile \
+ plug-ins/collect/Makefile plug-ins/icc_examin/icc_examin/Makefile plug-ins/pdf/Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ make DESTDIR="${pkgdir}" install
+ sed -i -e "s|-I$srcdir/cinepaint||" -e "s|-I$srcdir/cinepaint/lib||" -e "/libcinepaint.la/d" \
+ -e "s|$srcdir/cinepaint/lib/.libs/\$dlname||" "${pkgdir}/usr/bin/cinepainttool"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
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..7ed8bfb8b
--- /dev/null
+++ b/extra/clamav/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 140665 2011-10-17 22:40:35Z bisson $
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=clamav
+pkgver=0.97.3
+pkgrel=1.1
+pkgdesc='Anti-virus toolkit for Unix'
+arch=('i686' 'x86_64' 'mips64el')
+depends=('bzip2' 'zlib' 'libtool')
+options=('!libtool')
+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"
+ 'rc.d'
+ 'conf.d'
+ 'logrotate'
+ 'config.patch')
+sha1sums=('263c7b8b7dc1536652ab64e32263d1c60e138655'
+ '7f15f0b13a1c11235bc99ef0add01efd8a442f07'
+ 'cb116cdab49a810381a515cbcfb6a6c148547f07'
+ 'be3310d2b41a68ce06e33c84ab68ffe59fdce104'
+ '701a61571788d10ff7af01597785835c6bfea918')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../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, because 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 ../logrotate "${pkgdir}/etc/logrotate.d/clamav"
+ install -D -m644 ../conf.d "${pkgdir}/etc/conf.d/clamav"
+ install -D -m755 ../rc.d "${pkgdir}/etc/rc.d/clamav"
+
+ # un-distribute databases to require freshclam
+ rm "${pkgdir}"/var/lib/clamav/*.cvd
+}
diff --git a/extra/clamav/conf.d b/extra/clamav/conf.d
new file mode 100644
index 000000000..9cd44d9f8
--- /dev/null
+++ b/extra/clamav/conf.d
@@ -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/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/clamav/install b/extra/clamav/install
new file mode 100644
index 000000000..9116dc394
--- /dev/null
+++ b/extra/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/logrotate b/extra/clamav/logrotate
new file mode 100644
index 000000000..d1dc94dce
--- /dev/null
+++ b/extra/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/rc.d b/extra/clamav/rc.d
new file mode 100644
index 000000000..8e9c6afa9
--- /dev/null
+++ b/extra/clamav/rc.d
@@ -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/claws-mail-extra-plugins/PKGBUILD b/extra/claws-mail-extra-plugins/PKGBUILD
new file mode 100644
index 000000000..969aae275
--- /dev/null
+++ b/extra/claws-mail-extra-plugins/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 139484 2011-10-02 07:11:06Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Mildred <mildred593 at online dot fr>
+
+pkgname=claws-mail-extra-plugins
+pkgver=3.7.10
+pkgrel=2
+pkgdesc="Extra plugins for claws-mail"
+url="http://www.claws-mail.org/plugins.php?branch=EXT"
+license=('GPL3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('claws-mail>=3.7.10')
+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.6.1'
+ 'pygtk>=2.16.0' 'libsoup-gnome' 'libcanberra' 'libgdata')
+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'
+ 'libgdata: for gdata 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' '!strip')
+source=(http://downloads.sourceforge.net/project/sylpheed-claws/extra%20plugins/$pkgver/claws-mail-extra-plugins-$pkgver.tar.bz2
+ webkit1.6.1.patch)
+md5sums=('fe782b2d4762c9727e22c1bb7979f7d6'
+ '8b94fa44072331b9c3926607eb42ba26')
+sha1sums=('c5200936cb4811022774e960dc3f43d19eb320cf'
+ '8efd800617406dfe58a14422f243a678c582a90d')
+
+build() {
+ cd "$srcdir/claws-mail-extra-plugins-$pkgver"
+
+ # fix for new webkit api
+ pushd fancy*
+ patch -Np0 -i ${srcdir}/webkit1.6.1.patch
+ popd
+
+ # fix for python2
+ export PYTHON="/usr/bin/python2"
+
+ # fix gdata plugin build
+ sed -i -e "s:libgdata\ <\ 0.9.0:libgdata\ <\ 0.11.0:g" gdata_plugin-0.2/configure
+
+ for dir in */; do
+ [[ $dir != geolocation_plugin-* ]] && (
+ cd $dir
+
+ ./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/webkit1.6.1.patch b/extra/claws-mail-extra-plugins/webkit1.6.1.patch
new file mode 100644
index 000000000..82bc5d062
--- /dev/null
+++ b/extra/claws-mail-extra-plugins/webkit1.6.1.patch
@@ -0,0 +1,106 @@
+--- src/fancy_viewer.c 2011-07-01 11:50:25.000000000 +0200
++++ src/fancy_viewer.c 2011-09-30 06:02:45.000000000 +0200
+@@ -83,8 +83,10 @@
+ static void download_file_cb(GtkWidget *widget, FancyViewer *viewer);
+ #endif
+
+-/*FIXME substitute webkitwebsettings.cpp functions with their API when available */
+-gchar* webkit_web_view_get_selected_text(WebKitWebView* webView);
++#if !WEBKIT_CHECK_VERSION (1,5,1)
++gchar* webkit_web_view_get_selected_text(WebKitWebView* web_view);
++#endif
++
+ /*------*/
+ static GtkWidget *fancy_get_widget(MimeViewer *_viewer)
+ {
+@@ -243,6 +245,8 @@
+
+ gtk_print_unix_dialog_set_manual_capabilities(print_dialog,
+ GTK_PRINT_CAPABILITY_GENERATE_PS);
++ gtk_print_unix_dialog_set_manual_capabilities(print_dialog,
++ GTK_PRINT_CAPABILITY_PREVIEW);
+
+ result = gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_hide (dialog);
+@@ -293,7 +297,19 @@
+ {
+ debug_print("fancy_get_selection\n");
+ FancyViewer *viewer = (FancyViewer *) _viewer;
++#if WEBKIT_CHECK_VERSION(1,5,1)
++ viewer->doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(viewer->view));
++ viewer->window = webkit_dom_document_get_default_view (viewer->doc);
++ viewer->selection = webkit_dom_dom_window_get_selection (viewer->window);
++ if (viewer->selection == NULL)
++ return NULL;
++ viewer->range = webkit_dom_dom_selection_get_range_at(viewer->selection, 0, NULL);
++ if (viewer->range == NULL)
++ return NULL;
++ gchar *sel = webkit_dom_range_get_text (viewer->range);
++#else
+ gchar *sel = webkit_web_view_get_selected_text(viewer->view);
++#endif
+ if (!viewer->view || strlen(sel) == 0) {
+ g_free(sel);
+ return NULL;
+@@ -686,7 +702,15 @@
+ debug_print("Clicked on Search on Web\n");
+ if (webkit_web_view_has_selection(viewer->view)) {
+ gchar *search;
++#if WEBKIT_CHECK_VERSION(1,5,1)
++ viewer->doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(viewer->view));
++ viewer->window = webkit_dom_document_get_default_view (viewer->doc);
++ viewer->selection = webkit_dom_dom_window_get_selection (viewer->window);
++ viewer->range = webkit_dom_dom_selection_get_range_at(viewer->selection, 0, NULL);
++ gchar *tmp = webkit_dom_range_get_text (viewer->range);
++#else
+ gchar *tmp = webkit_web_view_get_selected_text(viewer->view);
++#endif
+ search = g_strconcat(GOOGLE_SEARCH, tmp, NULL);
+ webkit_web_view_open(viewer->view, search);
+ g_free(search);
+@@ -896,7 +920,6 @@
+ static gboolean populate_popup_cb (WebKitWebView *view, GtkWidget *menu,
+ FancyViewer *viewer)
+ {
+- /*FIXME hack..until webkit does not give the proper way to handle it*/
+ Plugin *plugin = plugin_get_loaded_by_name("RSSyl");
+ gtk_container_foreach(GTK_CONTAINER(menu),
+ (GtkCallback)viewer_menu_handler,
+@@ -941,7 +964,19 @@
+ if (webkit_web_view_can_copy_clipboard(view)) {
+ GtkClipboard *wv_clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
+ const gchar *sel_text;
+- sel_text = (const gchar*)webkit_web_view_get_selected_text(view);
++#if WEBKIT_CHECK_VERSION(1,5,1)
++ viewer->doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(viewer->view));
++ viewer->window = webkit_dom_document_get_default_view (viewer->doc);
++ viewer->selection = webkit_dom_dom_window_get_selection (viewer->window);
++ if (viewer->selection == NULL)
++ return NULL;
++ viewer->range = webkit_dom_dom_selection_get_range_at(viewer->selection, 0, NULL);
++ if (viewer->range == NULL)
++ return NULL;
++ sel_text = (const *gchar)webkit_dom_range_get_text (viewer->range);
++#else
++ sel_text = (const *gchar)webkit_web_view_get_selected_text(viewer->view);
++#endif
+ gtk_clipboard_set_text(wv_clipboard, sel_text, -1);
+ }
+ return FALSE;
+--- src/fancy_viewer.h 2011-07-01 11:50:25.000000000 +0200
++++ src/fancy_viewer.h 2011-09-30 06:02:45.000000000 +0200
+@@ -113,6 +113,14 @@
+ gint tag;
+ gint loading;
+ gint stop_previous;
++
++ /* DOM Objects */
++#if WEBKIT_CHECK_VERSION(1,5,1)
++ WebKitDOMDocument *doc;
++ WebKitDOMDOMWindow *window;
++ WebKitDOMDOMSelection *selection;
++ WebKitDOMRange *range;
++#endif
+ };
+ #define OPEN_INTERNAL FALSE
+ #define OPEN_EXTERNAL TRUE
diff --git a/extra/claws-mail/PKGBUILD b/extra/claws-mail/PKGBUILD
new file mode 100644
index 000000000..20396ee35
--- /dev/null
+++ b/extra/claws-mail/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 144878 2011-12-08 21:06:16Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=claws-mail
+pkgver=3.7.10
+pkgrel=2
+pkgdesc="A GTK+ based e-mail client."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+url="http://www.claws-mail.org"
+depends=('gtk2' 'gnutls' 'startup-notification' 'pilot-link' 'enchant'
+ 'gpgme' 'libetpan' 'libsm' 'db' 'dbus-glib' 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('compface' 'spamassassin' 'bogofilter')
+optdepends=('python2: needed for some tools'
+ 'perl: needed for some tools'
+ 'spamassassin: adds support for spamfiltering'
+ 'bogofilter: adds support for spamfiltering')
+replaces=('sylpheed-claws')
+provides=('claws')
+options=(!libtool)
+install=claws-mail.install
+source=(http://downloads.sourceforge.net/sourceforge/sylpheed-claws/${pkgname}-${pkgver}.tar.bz2
+ gnutls_buildfix.patch)
+md5sums=('fcf58dcff52f0908ff3bc368d820408b'
+ '372bf7a9da58ae49d9da50f79db69fb6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # fix build with latest gnutls
+ patch -Np1 -i ${srcdir}/gnutls_buildfix.patch
+
+ 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..a6ae1eae6
--- /dev/null
+++ b/extra/claws-mail/claws-mail.install
@@ -0,0 +1,16 @@
+post_install() {
+ echo "install \"html2ps\" from AUR to add support for printing html mails together with html plugins"
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
diff --git a/extra/claws-mail/gnutls_buildfix.patch b/extra/claws-mail/gnutls_buildfix.patch
new file mode 100644
index 000000000..31de8eb8b
--- /dev/null
+++ b/extra/claws-mail/gnutls_buildfix.patch
@@ -0,0 +1,12 @@
+--- claws-mail-3.7.10/src/common/ssl.c 2011-12-07 14:55:08.682553870 +0100
++++ claws-mail-3.7.10/src/common/ssl.c 2011-12-07 14:55:43.808349602 +0100
+@@ -270,7 +270,9 @@ gboolean ssl_init_socket_with_method(Soc
+ if (session == NULL || r != 0)
+ return FALSE;
+
++#if GNUTLS_VERSION_NUMBER < 0x020c00
+ gnutls_transport_set_lowat (session, 1);
++#endif
+ gnutls_set_default_priority(session);
+ gnutls_protocol_set_priority (session, proto_prio);
+ gnutls_cipher_set_priority (session, cipher_prio);
diff --git a/extra/clisp/PKGBUILD b/extra/clisp/PKGBUILD
new file mode 100644
index 000000000..4738a52c6
--- /dev/null
+++ b/extra/clisp/PKGBUILD
@@ -0,0 +1,29 @@
+# $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' 'mips64el')
+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
+ # Dirty hack for using arimips64 instead of arimips.c
+ [ $CARCH = "mips64el" ] && ln -s arimips64.c arimips.c
+ 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
+} \ No newline at end of file
diff --git a/extra/cln/PKGBUILD b/extra/cln/PKGBUILD
new file mode 100644
index 000000000..8d42dd236
--- /dev/null
+++ b/extra/cln/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 143665 2011-11-28 09:23:06Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=cln
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="Class library for numbers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ginac.de/CLN/"
+license=('GPL')
+[[ "${CARCH}" == 'mips64el' ]] || depends=('gmp')
+makedepends=('texlive-core')
+options=('!libtool')
+install=cln.install
+source=(http://www.ginac.de/CLN/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d897cce94d9c34d106575ed4ec865d71')
+sha1sums=('c30dca80e75f45e2107f233075e6d0339ea884b0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/<sizeof(mp_limb_t) > sizeof(long)>/<(sizeof(mp_limb_t) > sizeof(long))>/' configure
+ # For unknown reasons it fails.
+ if [[ "${CARCH}" == 'mips64el' ]] ; then
+ use_gmp=--without-gmp
+ else
+ use_gmp=
+ fi
+ ./configure --prefix=/usr $use_gmp
+ make all html pdf
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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..35df785e0
--- /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/clutter-gst/PKGBUILD b/extra/clutter-gst/PKGBUILD
new file mode 100644
index 000000000..6f61bdd74
--- /dev/null
+++ b/extra/clutter-gst/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 141289 2011-10-28 07:37:23Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=clutter-gst
+pkgver=1.4.4
+pkgrel=1
+pkgdesc="GStreamer bindings for clutter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.clutter-project.org/"
+license=('LGPL')
+depends=('clutter' 'gstreamer0.10-base' 'libxdamage')
+makedepends=('gobject-introspection' 'gtk-doc')
+options=('!libtool')
+source=(http://clutter-project.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('9fdcf8d8531d4d78342e7ac901d1768c7a8f78124f74dd6be8e51961169b8fb5')
+
+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/extra/clutter-gtk/PKGBUILD b/extra/clutter-gtk/PKGBUILD
new file mode 100644
index 000000000..498ebecd3
--- /dev/null
+++ b/extra/clutter-gtk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 139235 2011-10-01 18:56:12Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=clutter-gtk
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="GTK clutter widget"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('clutter' 'gtk3')
+makedepends=('gobject-introspection' 'gtk-doc')
+source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('0741fd2feb7d065dd5949a0b47f9cd740272c1428ca93431dea677acb6de464e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/clutter-gtk2/PKGBUILD b/extra/clutter-gtk2/PKGBUILD
new file mode 100644
index 000000000..3ba9ffa2d
--- /dev/null
+++ b/extra/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' 'mips64el')
+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/extra/clutter-gtk2/gir.patch b/extra/clutter-gtk2/gir.patch
new file mode 100644
index 000000000..81b56f3a1
--- /dev/null
+++ b/extra/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/extra/clutter/PKGBUILD b/extra/clutter/PKGBUILD
new file mode 100644
index 000000000..a1af69d63
--- /dev/null
+++ b/extra/clutter/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142273 2011-11-07 19:57:07Z 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.8.2
+pkgrel=2
+pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('cogl>=1.8.0' 'mesa' 'json-glib' 'atk' 'libxi')
+makedepends=('gobject-introspection' 'mesa')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ fallback.patch::http://git.gnome.org/browse/clutter/patch/?id=f05432d57e5e980d0841fd6c13a7f886a46107fe)
+sha256sums=('dc899f26448f31cb31e72d80650b8c8ae05acacd5b5d5a44798eabaca0ddfa2f'
+ '30c3c1dfdf1c74e8a7dc2cc6eac305127b7441504cb7040b7cf8d46a4b67fdd9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i $srcdir/fallback.patch
+ ./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..11c6236fb
--- /dev/null
+++ b/extra/cmake/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 139853 2011-10-05 11:46:05Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=cmake
+pkgver=2.8.6
+pkgrel=1.1
+pkgdesc="A cross-platform open-source make system"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://www.cmake.org"
+depends=('curl' 'libarchive' '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=('2147da452fd9212bb9b4542a9eee9d5b')
+
+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..55f6c843b
--- /dev/null
+++ b/extra/cmake/cmake.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+ [[ -x usr/bin/update-desktop-database ]] && update-desktop-database -q || true
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/cmatrix/PKGBUILD b/extra/cmatrix/PKGBUILD
new file mode 100644
index 000000000..40e62d1fb
--- /dev/null
+++ b/extra/cmatrix/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137613 2011-09-10 04:45:43Z eric $
+# Maintainer:
+
+pkgname=cmatrix
+pkgver=1.2a
+pkgrel=6
+pkgdesc="Let you see the matrix code in your console"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.asty.org/cmatrix/"
+license=('GPL')
+depends=('ncurses' 'fontconfig')
+install=cmatrix.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
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 mtx.pcf "$pkgdir/usr/share/fonts/misc/mtx.pcf"
+ install -Dm644 matrix.fnt "$pkgdir/usr/share/kbd/consolefonts/matrix.fnt"
+ install -Dm644 matrix.psf.gz "$pkgdir/usr/share/kbd/consolefonts/matrix.psf.gz"
+}
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..fd45d6bad
--- /dev/null
+++ b/extra/cmt/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 137734 2011-09-10 14:32:08Z pierre $
+#Maintainer: Damir Perisa <damir.perisa@bluewin.ch>
+#Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=cmt
+pkgver=1.16
+pkgrel=3
+pkgdesc="CMT for LADSPA"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}/src"
+ install -m755 -d "${pkgdir}/usr/lib/ladspa"
+ install -m755 ../plugins/cmt.so "${pkgdir}/usr/lib/ladspa/"
+}
diff --git a/extra/cmus/PKGBUILD b/extra/cmus/PKGBUILD
new file mode 100644
index 000000000..0013d3c44
--- /dev/null
+++ b/extra/cmus/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 144025 2011-12-02 04:00:48Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=cmus
+pkgver=2.4.3
+pkgrel=1
+pkgdesc="A very feature-rich ncurses-based music player"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cmus.sourceforge.net/"
+license=('GPL')
+depends=('ncurses')
+makedepends=('libao' 'libmpcdec' 'ffmpeg' 'flac' 'libmad' 'faad2' 'libmodplug'
+ 'libvorbis' 'libpulse' 'wavpack' 'libmp4v2')
+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'
+ 'libmp4v2: for mp4 input plugin support')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-v$pkgver.tar.bz2")
+sha1sums=('ba63a417b0df42fa9a4850dd8b922a95a426f7f5')
+
+build() {
+ cd "$srcdir/$pkgname-v$pkgver"
+ ./configure prefix=/usr
+ 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/cogl/PKGBUILD b/extra/cogl/PKGBUILD
new file mode 100644
index 000000000..e8d745d94
--- /dev/null
+++ b/extra/cogl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 140849 2011-10-20 05:41:52Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=cogl
+pkgver=1.8.2
+pkgrel=1
+pkgdesc="An object oriented GL/GLES Abstraction/Utility Layer"
+arch=(mips64el)
+url="http://www.clutter-project.org/"
+license=('GPL2')
+depends=('libdrm' 'libxext' 'libxdamage' 'libxcomposite' 'gdk-pixbuf2' 'pango')
+makedepends=('mesa' 'gobject-introspection')
+options=(!libtool)
+source=(http://download.gnome.org/sources/$pkgname/1.8/$pkgname-$pkgver.tar.xz)
+sha256sums=('ec26fd90c4ba5643875b5f3a04b4ab14b24f0d618ba3d239d61e773c3e3ca8c7')
+
+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/colord/PKGBUILD b/extra/colord/PKGBUILD
new file mode 100644
index 000000000..57e789067
--- /dev/null
+++ b/extra/colord/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144475 2011-12-06 14:25:28Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=colord
+pkgver=0.1.15
+pkgrel=3
+pkgdesc="Color daemon"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freedesktop.org/software/colord"
+license=('GPL2')
+depends=('lcms2' 'libgusb' 'polkit' 'sane' 'shared-color-profiles' 'sqlite3' 'udev')
+makedepends=('intltool' 'gobject-introspection' 'vala' 'docbook2x')
+source=($url/releases/$pkgname-$pkgver.tar.xz
+ scan_only_color_profile_dir.patch)
+options=('!libtool')
+sha1sums=('e83a68add3fac9c677829925794ee353743dc9c8'
+ 'b4b8ea1008ecfdc1084ec69d647127587a2a87f7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/scan_only_color_profile_dir.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc --libexecdir=/usr/lib/colord \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/colord/scan_only_color_profile_dir.patch b/extra/colord/scan_only_color_profile_dir.patch
new file mode 100644
index 000000000..0591fc420
--- /dev/null
+++ b/extra/colord/scan_only_color_profile_dir.patch
@@ -0,0 +1,35 @@
+From 78b6dc7dbf865df6b0d30526293591fe5773029a Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Tue, 6 Dec 2011 09:49:49 +0000
+Subject: [PATCH] If /usr/share/color appears at runtime, don't rescan the
+ parent dir
+
+Resolves https://bugs.freedesktop.org/show_bug.cgi?id=43542
+---
+ src/cd-profile-store.c | 10 ++++++++--
+ 1 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/cd-profile-store.c b/src/cd-profile-store.c
+index ecad474..c662351 100644
+--- a/src/cd-profile-store.c
++++ b/src/cd-profile-store.c
+@@ -260,8 +260,14 @@ cd_profile_store_file_monitor_changed_cb (GFileMonitor *monitor,
+ /* just rescan the correct directory */
+ parent = g_file_get_parent (file);
+ parent_path = g_file_get_path (parent);
+- g_debug ("CdProfileStore: %s was added, rescanning %s", path, parent_path);
+- cd_profile_store_search_path (profile_store, parent_path);
++ if (g_strcmp0 (parent_path, DATADIR) == 0) {
++ g_debug ("CdProfileStore: %s was added, rescanning", path);
++ cd_profile_store_search_path (profile_store, path);
++ } else {
++ g_debug ("CdProfileStore: %s was added, rescanning parent %s",
++ path, parent_path);
++ cd_profile_store_search_path (profile_store, parent_path);
++ }
+ out:
+ if (parent != NULL)
+ g_object_unref (parent);
+--
+1.7.6
+
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..46ccc1d26
--- /dev/null
+++ b/extra/compface/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137677 2011-09-10 11:50:26Z pierre $
+# Maintainer: simo <simo@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=compface
+pkgver=1.5.2
+pkgrel=3
+pkgdesc="Utils & libs to convert from/to X-Face format."
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make BINDIR=$pkgdir/usr/bin LIBDIR=$pkgdir/usr/lib MANDIR=$pkgdir/usr/share/man \
+ INCLUDEDIR=$pkgdir/usr/include install
+ install -D -m644 ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/conky/PKGBUILD b/extra/conky/PKGBUILD
new file mode 100644
index 000000000..f96f8c71b
--- /dev/null
+++ b/extra/conky/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 142242 2011-11-07 05:35:59Z bisson $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Partha Chowdhury <kira.laucas@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=conky
+pkgver=1.8.2git20111107
+pkgrel=1
+pkgdesc='Lightweight system monitor for X'
+url='http://conky.sourceforge.net/'
+license=('BSD' 'GPL')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!emptydirs')
+makedepends=('pkg-config' 'docbook2x')
+depends=('alsa-lib' 'libxml2' 'curl' 'wireless_tools' 'libxft' 'glib2' 'libxdamage' 'imlib2')
+backup=('etc/conky/conky.conf' 'etc/conky/conky_no_x11.conf')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('133fc6fdc725162af9a98c72c1b7349efc22447c')
+
+# git clone git://git.omp.am/conky.git; cd conky; git archive --prefix=${pkgname}-${pkgver}/ origin/1.8.2 | xz > ../${pkgname}-${pkgver}.tar.xz
+
+replaces=('torsmo')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sh autogen.sh
+
+ CPPFLAGS="${CXXFLAGS}" LIBS="${LDFLAGS}" ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-ibm \
+ --enable-curl \
+ --enable-rss \
+ --enable-weather-xoap \
+ --enable-imlib2 \
+ --disable-lua \
+ --enable-wlan \
+
+ 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/PKGBUILD.cmake b/extra/conky/PKGBUILD.cmake
new file mode 100644
index 000000000..7f980868f
--- /dev/null
+++ b/extra/conky/PKGBUILD.cmake
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 118899 2011-04-09 10:32:42Z bisson $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Partha Chowdhury <kira.laucas@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=conky
+pkgver=1.8.2git20111021
+pkgrel=1
+pkgdesc='Lightweight system monitor for X'
+url='http://conky.sourceforge.net/'
+license=('BSD' 'GPL')
+arch=('i686' 'x86_64')
+makedepends=('pkg-config' 'cmake' 'git' 'docbook2x')
+depends=('alsa-lib' 'libxml2' 'curl' 'wireless_tools' 'libxft' 'libxdamage' 'imlib2' 'lua')
+
+replaces=('torsmo')
+
+build() {
+ cd "${srcdir}"
+
+ cd conky && { git pull origin; cd ..; } || git clone git://git.omp.am/conky.git
+ rm -fr build; mkdir build; cd build
+
+ cmake \
+ -D CMAKE_BUILD_TYPE:STRING="Release" \
+ -D MAINTAINER_MODE:BOOL=ON \
+ -D BUILD_CURL:BOOL=ON \
+ -D BUILD_IMLIB2:BOOL=ON \
+ -D BUILD_LUA_IMLIB2:BOOL=OFF \
+ -D BUILD_MYSQL:BOOL=OFF \
+ -D BUILD_RSS:BOOL=ON \
+ -D BUILD_WEATHER_METAR:BOOL=ON \
+ -D BUILD_WEATHER_XOAP:BOOL=ON \
+ -D BUILD_WLAN:BOOL=ON \
+ -D CMAKE_INSTALL_PREFIX:PATH=/usr \
+ ../conky
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 ../conky/{COPYING,LICENSE}* "${pkgdir}/usr/share/licenses/${pkgname}"
+}
diff --git a/extra/consolekit/PKGBUILD b/extra/consolekit/PKGBUILD
new file mode 100644
index 000000000..6a020498d
--- /dev/null
+++ b/extra/consolekit/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 125884 2011-05-31 13:01:15Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=consolekit
+pkgver=0.4.5
+pkgrel=1
+pkgdesc="A framework for defining and tracking users, login sessions, and seats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freedesktop.org/wiki/Software/ConsoleKit"
+license=('GPL')
+depends=('polkit' 'zlib' 'libx11' 'dbus-glib')
+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=('f2657f93761206922d558471a936fbc3'
+ 'a8a4de71d9b0549b8143e5f6c2a36fc7'
+ '6fefa451d9fe2fc6d6269629d3529793')
+
+build() {
+ cd "${srcdir}/ConsoleKit-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/ConsoleKit \
+ --with-systemdsystemunitdir=/lib/systemd/system \
+ --enable-pam-module \
+ --enable-docbook-docs
+ make
+}
+
+package() {
+ cd "${srcdir}/ConsoleKit-${pkgver}"
+ 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
+
+# rm -rf "${pkgdir}/var/run"
+}
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/convertlit/PKGBUILD b/extra/convertlit/PKGBUILD
new file mode 100644
index 000000000..4c7477666
--- /dev/null
+++ b/extra/convertlit/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144473 2011-12-06 12:35:16Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: gDD (usrgdd | gmail)
+# Contributor: cantabile
+
+pkgname=convertlit
+pkgver=1.8
+pkgrel=6
+pkgdesc="An extractor/converter for .LIT eBooks"
+arch=('i686' 'x86_64')
+url="http://www.convertlit.com/"
+license=('GPL')
+depends=('glibc')
+makedepends=('libtommath')
+source=("http://www.convertlit.com/clit18src.zip")
+md5sums=('d691d4729485fe5d73e3f0937d8fb42e')
+
+build() {
+ cd ${srcdir}/lib
+ make
+
+ cd ../clit18
+ sed -i 's|../libtommath-0.30/|/usr/lib/|' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/clit18
+
+ install -Dm755 clit "$pkgdir/usr/bin/clit"
+}
diff --git a/extra/cpio/PKGBUILD b/extra/cpio/PKGBUILD
new file mode 100644
index 000000000..c6ebc1d41
--- /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 'mips64el')
+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/cppunit/PKGBUILD b/extra/cppunit/PKGBUILD
new file mode 100644
index 000000000..79bac05cb
--- /dev/null
+++ b/extra/cppunit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 126261 2011-06-03 13:02:27Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+
+pkgname=cppunit
+pkgver=1.12.1
+pkgrel=3
+pkgdesc="A C++ unit testing framework"
+arch=('i686' 'x86_64' 'mips64el')
+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 ../gcc4.5.patch
+ autoreconf
+ libtoolize -f
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/cppunit/gcc4.5.patch b/extra/cppunit/gcc4.5.patch
new file mode 100644
index 000000000..86d4a424d
--- /dev/null
+++ b/extra/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/extra/cpufrequtils/PKGBUILD b/extra/cpufrequtils/PKGBUILD
new file mode 100644
index 000000000..21ffbe1cd
--- /dev/null
+++ b/extra/cpufrequtils/PKGBUILD
@@ -0,0 +1,36 @@
+# $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' 'mips64el')
+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
+ cpufrequtils-mips.patch)
+options=(!libtool !distcc)
+md5sums=('c59b71c044d463896f3247e8dd83dd7e'
+ '7f2b5085df44d2df3e7c2d0b9f6dab08'
+ 'baae1f2abffc6bef2bd32a8dd8263c09'
+ 'edbe311e6813f3b395a08b7f174065c1')
+
+build()
+{
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ [ "$CARCH" = "mips64el" ] && patch -Np0 -i ${srcdir}/cpufrequtils-mips.patch
+
+ make -j1
+ make INSTALL="/bin/install -c" mandir=/usr/share/man DESTDIR="${pkgdir}" install
+
+ install -D -m755 ${srcdir}/cpufreq.rcd "${pkgdir}/etc/rc.d/cpufreq"
+ install -D -m644 ${srcdir}/cpufreq.confd "${pkgdir}/etc/conf.d/cpufreq"
+}
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/cpufrequtils/cpufrequtils-mips.patch b/extra/cpufrequtils/cpufrequtils-mips.patch
new file mode 100644
index 000000000..cba8ab48b
--- /dev/null
+++ b/extra/cpufrequtils/cpufrequtils-mips.patch
@@ -0,0 +1,18 @@
+--- utils/aperf.c.orig 2010-07-18 01:38:02.000000000 +0800
++++ utils/aperf.c 2010-07-18 01:38:39.000000000 +0800
+@@ -68,11 +68,15 @@
+
+ static int cpu_has_effective_freq()
+ {
++#if defined(__i386__) || defined(__x86_64__)
+ /* largest base level */
+ if (cpuid_eax(0) < 6)
+ return 0;
+
+ return cpuid_ecx(6) & 0x1;
++#else
++ return 0;
++#endif
+ }
+
+ /*
diff --git a/extra/crypto++/PKGBUILD b/extra/crypto++/PKGBUILD
new file mode 100644
index 000000000..dac6e5f86
--- /dev/null
+++ b/extra/crypto++/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 143721 2011-11-28 17:06:53Z 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=3
+pkgdesc="A free C++ class library of cryptographic schemes"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}
+
+ 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..da0efb9a2
--- /dev/null
+++ b/extra/cscope/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=cscope
+pkgver=15.7a
+pkgrel=3
+pkgdesc="A developers tool for browsing program code"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cscope.sourceforge.net/"
+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
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d ${pkgdir}/usr/lib/cs
+ install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+
+ cd contrib/xcscope
+ install -Dm644 xcscope.el "${pkgdir}"/usr/share/emacs/site-lisp/xcscope.el
+ install -m755 cscope-indexer "${pkgdir}"/usr/bin
+}
diff --git a/extra/ctags/PKGBUILD b/extra/ctags/PKGBUILD
new file mode 100644
index 000000000..d2ebbc565
--- /dev/null
+++ b/extra/ctags/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143723 2011-11-28 17:13:34Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=ctags
+pkgver=5.8
+pkgrel=3
+pkgdesc="Generates an index file of language objects found in source files"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/extra/cups-pdf/PKGBUILD b/extra/cups-pdf/PKGBUILD
new file mode 100644
index 000000000..f49de5233
--- /dev/null
+++ b/extra/cups-pdf/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 140448 2011-10-14 16:56:59Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: Thomas Baechler <thomas.baechler@rwth-aachen.de>
+
+pkgname=cups-pdf
+pkgver=2.6.1
+pkgrel=1
+pkgdesc="PDF printer for cups"
+arch=(i686 x86_64 'mips64el')
+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=('65f3fd525c4a9b1d736b91594b3166d5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/src
+ [ -z "$CC" ] && CC=gcc
+ $CC $CFLAGS -Wall -o cups-pdf cups-pdf.c
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/src
+ install -D -m700 cups-pdf $pkgdir/usr/lib/cups/backend/cups-pdf
+
+ # Install Postscript Color printer
+ cd ../extra
+ install -D -m644 CUPS-PDF.ppd $pkgdir/usr/share/cups/model/CUPS-PDF.ppd
+
+ # Install config file
+ install -D -m644 cups-pdf.conf $pkgdir/etc/cups/cups-pdf.conf
+}
diff --git a/extra/cups-pdf/cups-pdf.install b/extra/cups-pdf/cups-pdf.install
new file mode 100644
index 000000000..7df03c811
--- /dev/null
+++ b/extra/cups-pdf/cups-pdf.install
@@ -0,0 +1,16 @@
+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
+}
diff --git a/extra/cups-pk-helper/PKGBUILD b/extra/cups-pk-helper/PKGBUILD
new file mode 100644
index 000000000..4f491f860
--- /dev/null
+++ b/extra/cups-pk-helper/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 119655 2011-04-13 10:39:02Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=cups-pk-helper
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="A helper that makes system-config-printer use PolicyKit"
+arch=(i686 x86_64 'mips64el')
+url="http://www.freedesktop.org/software/cups-pk-helper/releases/"
+license=('GPL')
+depends=(dbus-glib polkit libcups)
+makedepends=(intltool)
+install=
+source=(http://www.freedesktop.org/software/${pkgname}/releases/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ccc5f35c5232b83c16929431b352775dd4c63cb92759ec45a525edb6fcb805df')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/cups-pk-helper
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD
new file mode 100644
index 000000000..414cb2802
--- /dev/null
+++ b/extra/cups/PKGBUILD
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 136886 2011-09-02 16:22:36Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="cups"
+pkgname=('libcups' 'cups')
+pkgver=1.5.0
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.cups.org/"
+makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' '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-no-export-ssllibs.patch
+ cups-no-gcrypt.patch
+ cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('e54ed09ede2340fc3014913333520fe4'
+ 'e0843e8d8c345792ac73a185260e69fe'
+ '9b8467a1e51d360096b70e2c3c081e6c'
+ '3733c23e77eb503bd94cc368e02830dc'
+ '9657daa21760bb0b5fa3d8b51d5e01a1'
+ 'f861b18f4446c43918c8643dcbbd7f6d'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+# move client.conf man page for next update to the client pkg.
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ # Avahi support in the dnssd backend. patch from Debian based on the Fedora work but brings it in a single file http://patch-tracker.debian.org/package/cups
+ patch -Np1 -i ${srcdir}/cups-avahi.patch
+
+ # Do not export SSL libs in cups-config
+ patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
+
+ patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
+
+ # Rebuild configure script for --enable-avahi.
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib \
+ --with-logdir=/var/log/cups \
+ --with-docdir=/usr/share/cups/doc \
+ --with-cups-user=daemon \
+ --with-cups-group=lp \
+ --enable-pam=yes \
+ --disable-ldap \
+ --enable-raw-printing \
+ --enable-dbus --with-dbusdir=/etc/dbus-1 \
+ --enable-ssl=yes --enable-gnutls \
+ --enable-threads \
+ --enable-avahi\
+ --with-php=/usr/bin/php-cgi \
+ --with-pdftops=pdftops \
+ --with-optim="$CFLAGS"
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ #httpAddrGetList(workstation64): FAIL
+ #1 TESTS FAILED!
+ #make[1]: *** [testhttp] Error 1
+ make -k check || /bin/true
+}
+
+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' 'krb5' 'avahi')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-headers install-libs
+ # 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}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
+optdepends=('php: for included phpcups.so module'
+ 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
+ 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'xdg-utils: xdg .desktop file support')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-data install-exec
+
+ # 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/cupsd
+ 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
+ # remove directory from package, we create it in cups rc.d file
+ rm -rf ${pkgdir}/var/run
+# 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..744c8e663
--- /dev/null
+++ b/extra/cups/cups
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+daemon_name=cupsd
+
+. /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
+ #
+ 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/cups/cups-avahi.patch b/extra/cups/cups-avahi.patch
new file mode 100644
index 000000000..7e9c8ecea
--- /dev/null
+++ b/extra/cups/cups-avahi.patch
@@ -0,0 +1,3156 @@
+Description: Avahi support
+Bug: http://www.cups.org/str.php?L3066
+Author: Tim Waugh
+Origin: git clone http://twaugh.fedorapeople.org/cups-avahi.git (Aug 11, 2011)
+
+--- a/backend/dnssd.c
++++ b/backend/dnssd.c
+@@ -15,14 +15,21 @@
+ *
+ * Contents:
+ *
++ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
++ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
+ * main() - Browse for printers.
+ * browse_callback() - Browse devices.
+ * browse_local_callback() - Browse local devices.
+ * compare_devices() - Compare two devices.
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
++ * device_type() - Get DNS-SD type enumeration from string.
+ * get_device() - Create or update a device.
+ * query_callback() - Process query data.
++ * avahi_client_callback() - Avahi client callback function.
++ * avahi_query_callback() - Avahi query callback function.
++ * avahi_browse_callback() - Avahi browse callback function.
++ * find_device() - Find a device from its name and domain.
+ * sigterm_handler() - Handle termination signals...
+ * unquote() - Unquote a name string.
+ */
+@@ -33,7 +40,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 */
+
+
+ /*
+@@ -53,7 +71,12 @@
+
+ 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 */
+@@ -65,6 +88,20 @@
+ 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...
+@@ -78,6 +115,7 @@
+ * Local functions...
+ */
+
++#ifdef HAVE_DNSSD
+ static void browse_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -93,12 +131,6 @@
+ 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,
+@@ -107,9 +139,118 @@
+ 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 */
++
++
++/*
++ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
++ */
++
++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;
++}
++
++
++/*
++ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
++ */
++
++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.
+@@ -120,6 +261,13 @@
+ 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 */
+@@ -133,12 +281,11 @@
+ 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 */
+@@ -198,6 +345,49 @@
+ * 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 ("DEBUG: Unable to create avahi client");
++ return (0);
++ }
++
++ 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");
+@@ -258,6 +448,7 @@
+ riousbprint_ref = main_ref;
+ DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+ "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Loop until we are killed...
+@@ -265,6 +456,9 @@
+
+ while (!job_canceled)
+ {
++ int announce = 0;
++
++#ifdef HAVE_DNSSD
+ FD_ZERO(&input);
+ FD_SET(fd, &input);
+
+@@ -284,11 +478,35 @@
+ }
+ 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 */
+@@ -302,6 +520,7 @@
+ if (device->sent)
+ sent ++;
+
++#ifdef HAVE_DNSSD
+ if (device->ref)
+ count ++;
+
+@@ -333,14 +552,23 @@
+ 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;
+@@ -401,6 +629,7 @@
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'browse_callback()' - Browse devices.
+ */
+@@ -489,6 +718,7 @@
+ device->fullName);
+ device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+@@ -569,6 +799,41 @@
+
+
+ /*
++ * 'device_type()' - Get DNS-SD type enumeration from string.
++ */
++
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++ if (!strcmp(regtype, "_ipp._tcp"))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp") ||
++ !strcmp(regtype, "_ipp-tls._tcp"))
++ return (CUPS_DEVICE_IPPS);
++ 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."))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp.") ||
++ !strcmp(regtype, "_ipp-tls._tcp."))
++ return (CUPS_DEVICE_IPPS);
++ 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.
+ */
+
+@@ -589,20 +854,7 @@
+ */
+
+ key.name = (char *)serviceName;
+-
+- if (!strcmp(regtype, "_ipp._tcp."))
+- key.type = CUPS_DEVICE_IPP;
+- else if (!strcmp(regtype, "_ipps._tcp.") ||
+- !strcmp(regtype, "_ipp-tls._tcp."))
+- key.type = CUPS_DEVICE_IPPS;
+- 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;
+@@ -622,8 +874,14 @@
+ 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);
+ }
+@@ -643,6 +901,9 @@
+ device->domain = strdup(replyDomain);
+ device->type = key.type;
+ device->priority = 50;
++#ifdef HAVE_AVAHI
++ device->resolved = 0;
++#endif /* HAVE_AVAHI */
+
+ cupsArrayAdd(devices, device);
+
+@@ -650,13 +911,20 @@
+ * 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);
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'query_callback()' - Process query data.
+ */
+@@ -680,7 +948,7 @@
+ *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\", "
+@@ -714,94 +982,233 @@
+ if ((ptr = strstr(name, "._")) != NULL)
+ *ptr = '\0';
+
+- if (strstr(fullName, "_ipp._tcp."))
+- dkey.type = CUPS_DEVICE_IPP;
+- else if (strstr(fullName, "_ipps._tcp.") ||
+- strstr(fullName, "_ipp-tls._tcp."))
+- dkey.type = CUPS_DEVICE_IPPS;
+- 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
++/*
++ * 'avahi_client_callback()' - Avahi client callback function.
++ */
++
++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);
++ }
++}
++
++
++/*
++ * 'avahi_query_callback()' - Avahi query callback function.
++ */
++
++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);
++}
++
++
++/*
++ * 'avahi_browse_callback()' - Avahi browse callback function.
++ */
++
++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;
++
++ case AVAHI_BROWSER_REMOVE:
++ case AVAHI_BROWSER_ALL_FOR_NOW:
++ case AVAHI_BROWSER_CACHE_EXHAUSTED:
++ break;
++ }
++}
++#endif /* HAVE_AVAHI */
++
+
+- for (device = cupsArrayFind(devices, &dkey);
++/*
++ * 'find_device()' - Find a device from its name and domain.
++ */
++
++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 (_cups_strcasecmp(device->name, dkey.name) ||
+- _cups_strcasecmp(device->domain, dkey.domain))
++ if (_cups_strcasecmp(device->name, dkey->name) ||
++ _cups_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;
+-
+- for (ptr = key; data < datanext && *data != '='; data ++)
+- *ptr++ = *data;
+- *ptr = '\0';
++ char *key;
++ char *value;
+
+- if (data < datanext && *data == '=')
+- {
+- data ++;
+-
+- if (data < datanext)
+- memcpy(value, data, datanext - data);
+- value[datanext - data] = '\0';
++ if (parse_txt_record_pair (txt))
++ goto next;
+
+- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
+- key, value);
+- }
+- else
+- {
+- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
+- key);
+- continue;
+- }
+-
+- if (!_cups_strncasecmp(key, "usb_", 4))
++ key = txt->key;
++ value = txt->value;
++ if (!strncasecmp(key, "usb_", 4))
+ {
+ /*
+ * Add USB device ID information...
+@@ -856,6 +1263,10 @@
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
++
++ next:
++ if (next_txt_record (txt) == NULL)
++ break;
+ }
+
+ if (device->device_id)
+@@ -905,11 +1316,9 @@
+ }
+ }
+
+- if (!device)
+- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++ return device;
+ }
+
+-
+ /*
+ * 'sigterm_handler()' - Handle termination signals...
+ */
+--- a/config-scripts/cups-dnssd.m4
++++ b/config-scripts/cups-dnssd.m4
+@@ -23,6 +23,21 @@
+ 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
+--- a/config.h.in
++++ b/config.h.in
+@@ -390,6 +390,13 @@
+
+
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+ * Do we have <sys/ioctl.h>?
+ */
+
+--- a/cups/http-support.c
++++ b/cups/http-support.c
+@@ -43,6 +43,10 @@
+ * http_copy_decode() - Copy and decode a URI.
+ * http_copy_encode() - Copy and encode a URI.
+ * http_resolve_cb() - Build a device URI for the given service name.
++ * avahi_resolve_uri_client_cb()
++ * - Avahi client callback for resolving URI.
++ * avahi_resolve_uri_resolver_cb()
++ * - Avahi resolver callback for resolving URI.
+ */
+
+ /*
+@@ -60,6 +64,11 @@
+ # include <sys/select.h>
+ # endif /* WIN32 */
+ #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 */
+
+
+ /*
+@@ -127,6 +136,24 @@
+ 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
+@@ -1431,6 +1458,9 @@
+
+ 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
+ # ifdef WIN32
+ # pragma comment(lib, "dnssd.lib")
+@@ -1449,6 +1479,17 @@
+ fd_set input_set; /* Input set for select() */
+ struct timeval stimeout; /* Timeout value for select() */
+ #endif /* HAVE_POLL */
++#else /* HAVE_AVAHI */
++ AvahiSimplePoll *simple_poll;
++ AvahiClient *client;
++ int error;
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } user_data;
++#endif /* HAVE_DNSSD */
++
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
+@@ -1485,9 +1526,16 @@
+ if (domain)
+ *domain++ = '\0';
+
++#ifdef HAVE_DNSSD
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
+ uribuf.options = options;
++#else
++ user_data.uribuf.buffer = resolved_uri;
++ user_data.uribuf.bufsize = resolved_size;
++ user_data.uribuf.options = options;
++#endif
++
+ resolved_uri[0] = '\0';
+
+ DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
+@@ -1501,6 +1549,7 @@
+
+ uri = NULL;
+
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+ {
+ localref = ref;
+@@ -1608,6 +1657,36 @@
+
+ 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 (options & _HTTP_RESOLVE_STDERR)
+ {
+@@ -1619,13 +1698,13 @@
+ 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 ((options & _HTTP_RESOLVE_STDERR) && !uri)
+ _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
+@@ -1895,6 +1974,116 @@
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
++ */
++
++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);
++}
++
++
++/*
++ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
++ * URI.
++ */
++
++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 9820 2011-06-10 22:06:26Z mike $".
+ */
+--- a/scheduler/Makefile
++++ b/scheduler/Makefile
+@@ -17,6 +17,7 @@
+
+ CUPSDOBJS = \
+ auth.o \
++ avahi.o \
+ banners.o \
+ cert.o \
+ classes.o \
+@@ -39,7 +40,8 @@
+ server.o \
+ statbuf.o \
+ subscriptions.o \
+- sysman.o
++ sysman.o \
++ timeout.o
+ LIBOBJS = \
+ filter.o \
+ mime.o \
+--- /dev/null
++++ b/scheduler/avahi.c
+@@ -0,0 +1,445 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Distribution and use rights are outlined in the file "LICENSE.txt"
++ * "LICENSE" which should have been included with this file. If this
++ * file is missing or damaged, see the license at "http://www.cups.org/".
++ *
++ * Contents:
++ *
++ * watch_read_cb - Read callback for file descriptor
++ * watch_write_cb - Write callback for file descriptor
++ * watched_fd_add_select() - Call cupsdAddSelect() as needed
++ * watch_new() - Create a new file descriptor watch
++ * watch_free() - Free a file descriptor watch
++ * watch_update() - Update watched events for a file descriptor
++ * watch_get_events() - Get events that happened for a file descriptor
++ * timeout_cb() - Run a timed Avahi callback
++ * timeout_new() - Set a wakeup time
++ * timeout_update() - Update the expiration time for a timeout
++ * timeout_free() - Free a timeout
++ * compare_watched_fds() - Compare watched file descriptors for array sorting
++ * compare_timeouts() - Compare timeouts for array sorting
++ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
++ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
++ * avahi_cups_poll_get() - Get the abstract poll API structure
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++typedef struct
++{
++ AvahiCupsPoll *cups_poll;
++
++ int fd;
++ AvahiWatchEvent occurred;
++ cups_array_t *watches;
++} cupsd_watched_fd_t;
++
++struct AvahiWatch
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ AvahiWatchEvent events;
++ AvahiWatchCallback callback;
++ void *userdata;
++};
++
++struct AvahiTimeout
++{
++ AvahiCupsPoll *cups_poll;
++ AvahiTimeoutCallback callback;
++ void *userdata;
++ cupsd_timeout_t *cupsd_timeout;
++};
++
++/*
++ * Local functions...
++ */
++
++static AvahiWatch * watch_new(const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata);
++static void watch_free(AvahiWatch *watch);
++static void watch_update(AvahiWatch *watch,
++ AvahiWatchEvent events);
++static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
++static int compare_watches(AvahiWatch *p0,
++ AvahiWatch *p1);
++
++
++/*
++ * 'watch_read_cb' - Read callback for file descriptor
++ */
++
++static void
++watch_read_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_IN;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
++ if (watch->events & watched_fd->occurred) {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_IN, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_IN;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watch_write_cb' - Write callback for file descriptor
++ */
++
++static void
++watch_write_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_OUT;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
++ if (watch->events & watched_fd->occurred) {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_OUT, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
++ */
++
++static int /* O - Watches? */
++watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
++{
++ AvahiWatch *watch;
++ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
++
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
++ if (watch->events & (AVAHI_WATCH_IN |
++ AVAHI_WATCH_ERR |
++ AVAHI_WATCH_HUP)) {
++ read_cb = (cupsd_selfunc_t)watch_read_cb;
++ if (write_cb != NULL)
++ break;
++ }
++
++ if (watch->events & AVAHI_WATCH_OUT) {
++ write_cb = (cupsd_selfunc_t)watch_write_cb;
++ if (read_cb != NULL)
++ break;
++ }
++ }
++
++ if (read_cb || write_cb)
++ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
++ else
++ cupsdRemoveSelect (watched_fd->fd);
++
++ return (read_cb || write_cb);
++}
++
++/*
++ * 'watch_new' - Create a new file descriptor watch
++ */
++
++static AvahiWatch *
++watch_new (const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata)
++{
++ cupsd_watched_fd_t key, *watched_fd;
++ AvahiCupsPoll *cups_poll = api->userdata;
++ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
++ if (watch == NULL)
++ return (NULL);
++
++ watch->events = events;
++ watch->callback = callback;
++ watch->userdata = userdata;
++
++ key.fd = fd;
++ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
++ if (watched_fd == NULL) {
++ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
++ if (watched_fd == NULL) {
++ free (watch);
++ return (NULL);
++ }
++
++ watched_fd->fd = fd;
++ watched_fd->occurred = 0;
++ watched_fd->cups_poll = cups_poll;
++ watched_fd->watches = cupsArrayNew ((cups_array_func_t)compare_watches,
++ NULL);
++ }
++
++ watch->watched_fd = watched_fd;
++ cupsArrayAdd(watched_fd->watches, watch);
++ watched_fd_add_select (watched_fd);
++ return (watch);
++}
++
++
++/*
++ * 'watch_free' - Free a file descriptor watch
++ */
++
++static void
++watch_free (AvahiWatch *watch)
++{
++ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
++ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
++
++ cupsArrayRemove (watched_fd->watches, watch);
++ free (watch);
++
++ if (!watched_fd_add_select (watched_fd)) {
++ /* No more watches */
++ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
++ free (watched_fd);
++ }
++}
++
++
++/*
++ * 'watch_update' - Update watched events for a file descriptor
++ */
++
++static void
++watch_update (AvahiWatch *watch,
++ AvahiWatchEvent events)
++{
++ watch->events = events;
++ watched_fd_add_select (watch->watched_fd);
++}
++
++
++/*
++ * 'watch_get_events' - Get events that happened for a file descriptor
++ */
++
++static AvahiWatchEvent
++watch_get_events (AvahiWatch *watch)
++{
++ return (watch->watched_fd->occurred);
++}
++
++
++/*
++ * 'compare_watches' - Compare watches for array sorting
++ */
++
++static int
++compare_watches (AvahiWatch *p0,
++ AvahiWatch *p1)
++{
++ if (p0->watched_fd->fd < p1->watched_fd->fd)
++ return (-1);
++
++ return ((p0->watched_fd->fd == p1->watched_fd->fd) ? 0 : 1);
++}
++
++
++/*
++ * 'timeout_cb()' - Run a timed Avahi callback
++ */
++
++static void
++timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
++{
++ AvahiTimeout *timeout = userdata;
++ (timeout->callback) (timeout, timeout->userdata);
++}
++
++
++/*
++ * 'timeout_new' - Set a wakeup time
++ */
++
++static AvahiTimeout *
++timeout_new (const AvahiPoll *api,
++ const struct timeval *tv,
++ AvahiTimeoutCallback callback,
++ void *userdata)
++{
++ AvahiTimeout *timeout;
++ AvahiCupsPoll *cups_poll = api->userdata;
++
++ timeout = malloc(sizeof(AvahiTimeout));
++ if (timeout == NULL)
++ return (NULL);
++
++ timeout->cups_poll = cups_poll;
++ timeout->callback = callback;
++ timeout->userdata = userdata;
++ timeout->cupsd_timeout = cupsdAddTimeout (tv,
++ (cupsd_timeoutfunc_t)timeout_cb,
++ timeout);
++ cupsArrayAdd (cups_poll->timeouts, timeout);
++ return (timeout);
++}
++
++
++/*
++ * 'timeout_update' - Update the expiration time for a timeout
++ */
++
++static void
++timeout_update (AvahiTimeout *timeout,
++ const struct timeval *tv)
++{
++ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
++}
++
++
++/*
++ * ' timeout_free' - Free a timeout
++ */
++
++static void
++timeout_free (AvahiTimeout *timeout)
++{
++ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
++ cupsdRemoveTimeout (timeout->cupsd_timeout);
++ free (timeout);
++}
++
++
++/*
++ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
++ */
++static int
++compare_watched_fds(cupsd_watched_fd_t *p0,
++ cupsd_watched_fd_t *p1)
++{
++ if (p0->fd != p1->fd)
++ return (p0->fd < p1->fd ? -1 : 1);
++
++ if (p0 == p1)
++ return (0);
++
++ return (p0 < p1 ? -1 : 1);
++}
++
++
++/*
++ * 'compare_timeouts' - Compare timeouts for array sorting
++ */
++static int
++compare_timeouts(AvahiTimeout *p0,
++ AvahiTimeout *p1)
++{
++ /*
++ * Just compare pointers to make it a stable sort.
++ */
++
++ if (p0->cupsd_timeout < p1->cupsd_timeout)
++ return (-1);
++ return ((p0->cupsd_timeout == p1->cupsd_timeout) ? 0 : 1);
++}
++
++
++/*
++ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
++ */
++
++AvahiCupsPoll *
++avahi_cups_poll_new (void)
++{
++ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
++ if (cups_poll == NULL)
++ return (NULL);
++
++ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
++ NULL);
++ cups_poll->timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts,
++ NULL);
++
++ cups_poll->api.userdata = cups_poll;
++ cups_poll->api.watch_new = watch_new;
++ cups_poll->api.watch_free = watch_free;
++ cups_poll->api.watch_update = watch_update;
++ cups_poll->api.watch_get_events = watch_get_events;
++
++ cups_poll->api.timeout_new = timeout_new;
++ cups_poll->api.timeout_update = timeout_update;
++ cups_poll->api.timeout_free = timeout_free;
++
++ return (cups_poll);
++}
++
++
++/*
++ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
++ */
++void
++avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
++ watched_fd;
++ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds)){
++ cupsArrayClear (watched_fd->watches);
++ }
++
++ cupsArrayClear (cups_poll->watched_fds);
++ cupsArrayClear (cups_poll->timeouts);
++}
++
++
++/*
++ * 'avahi_cups_poll_get' - Get the abstract poll API structure
++ */
++
++const AvahiPoll *
++avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
++{
++ return (&cups_poll->api);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+--- /dev/null
++++ b/scheduler/avahi.h
+@@ -0,0 +1,49 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Distribution and use rights are outlined in the file "LICENSE.txt"
++ * which should have been included with this file. If this file is
++ * file is missing or damaged, see the license at "http://www.cups.org/".
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_AUTHORIZATION_H
++# include <Security/Authorization.h>
++#endif /* HAVE_AUTHORIZATION_H */
++
++
++#ifdef HAVE_AVAHI
++typedef struct
++{
++ AvahiPoll api;
++ cups_array_t *watched_fds;
++ cups_array_t *timeouts;
++} AvahiCupsPoll;
++#endif /* HAVE_AVAHI */
++
++/*
++ * Prototypes...
++ */
++
++#ifdef HAVE_AVAHI
++extern AvahiCupsPoll * avahi_cups_poll_new(void);
++extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
++extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * End of "$Id$".
++ */
+--- a/scheduler/cupsd.h
++++ b/scheduler/cupsd.h
+@@ -140,6 +140,15 @@
+
+ typedef void (*cupsd_selfunc_t)(void *data);
+
++#ifdef HAVE_AVAHI
++/*
++ * Timeout callback function type...
++ */
++
++typedef struct _cupsd_timeout_s cupsd_timeout_t;
++typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * Globals...
+@@ -173,6 +182,11 @@
+ /* Running from launchd */
+ #endif /* HAVE_LAUNCH_H */
+
++#ifdef HAVE_AVAHI
++VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
++#endif /* HAVE_AVAHI */
++
++
+
+ /*
+ * Prototypes...
+@@ -242,6 +256,20 @@
+ extern void cupsdStartServer(void);
+ extern void cupsdStopServer(void);
+
++#ifdef HAVE_AVAHI
++extern void cupsdInitTimeouts(void);
++extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
++ cupsd_timeoutfunc_t cb,
++ void *data);
++extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
++extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
++extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
++ const struct timeval *tv);
++extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
++#endif /* HAVE_AVAHI */
++
++extern int cupsdRemoveFile(const char *filename);
++
+
+ /*
+ * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
+--- a/scheduler/main.c
++++ b/scheduler/main.c
+@@ -122,6 +122,10 @@
+ cupsd_listener_t *lis; /* Current listener */
+ time_t current_time, /* Current time */
+ activity, /* Client activity timer */
++#ifdef HAVE_AVAHI
++ avahi_client_time, /* Time for next Avahi client
++ check */
++#endif /* HAVE_AVAHI */
+ browse_time, /* Next browse send time */
+ senddoc_time, /* Send-Document time */
+ expire_time, /* Subscription expire time */
+@@ -148,6 +152,10 @@
+ int launchd_idle_exit;
+ /* Idle exit on select timeout? */
+ #endif /* HAVE_LAUNCHD */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
++ long tmo_delay; /* Time before it must be called */
++#endif /* HAVE_AVAHI */
+
+
+ #ifdef HAVE_GETEUID
+@@ -527,6 +535,14 @@
+
+ httpInitialize();
+
++#ifdef HAVE_AVAHI
++ /*
++ * Initialize timed callback structures.
++ */
++
++ cupsdInitTimeouts();
++#endif /* HAVE_AVAHI */
++
+ cupsdStartServer();
+
+ /*
+@@ -657,6 +673,9 @@
+ */
+
+ current_time = time(NULL);
++#ifdef HAVE_AVAHI
++ avahi_client_time = current_time;
++#endif /* HAVE_AVAHI */
+ browse_time = current_time;
+ event_time = current_time;
+ expire_time = current_time;
+@@ -871,6 +890,26 @@
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * If a timed callback is due, run it.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo && tmo_delay == 0)
++ cupsdRunTimeout (tmo);
++
++ /*
++ * Try to restart the Avahi client every 10 seconds if needed...
++ */
++
++ if ((current_time - avahi_client_time) >= 10)
++ {
++ avahi_client_time = current_time;
++ cupsdStartAvahiClient();
++ }
++#endif /* HAVE_AVAHI */
++
+ #ifndef __APPLE__
+ /*
+ * Update the network interfaces once a minute...
+@@ -1815,6 +1854,10 @@
+ cupsd_job_t *job; /* Job information */
+ cupsd_subscription_t *sub; /* Subscription information */
+ const char *why; /* Debugging aid */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Timed callback */
++ long tmo_delay; /* Seconds before calling it */
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -1857,6 +1900,19 @@
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * See if there are any scheduled timed callbacks to run.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo)
++ {
++ timeout = tmo_delay;
++ why = "run a timed callback";
++ }
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Check whether we are accepting new connections...
+ */
+--- /dev/null
++++ b/scheduler/timeout.c
+@@ -0,0 +1,195 @@
++/*
++ * "$Id$"
++ *
++ * Timeout functions for the Common UNIX Printing System (CUPS).
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Distribution and use rights are outlined in the file "LICENSE.txt"
++ * which should have been included with this file. If this file is
++ * file is missing or damaged, see the license at "http://www.cups.org/".
++ *
++ * Contents:
++ *
++ * cupsdInitTimeouts() - Initialise timeout structure.
++ * cupsdAddTimeout() - Add a timed callback.
++ * cupsdNextTimeout() - Find the next enabled timed callback.
++ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
++ * cupsdRemoveTimeout() - Discard a timed callback.
++ * compare_timeouts() - Compare timed callbacks for array sorting.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++struct _cupsd_timeout_s
++{
++ struct timeval when;
++ int enabled;
++ cupsd_timeoutfunc_t callback;
++ void *data;
++};
++
++/*
++ * Local functions...
++ */
++
++/*
++ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
++ */
++
++static int
++compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
++{
++ if (!p0->enabled || !p1->enabled)
++ {
++ if (!p0->enabled && !p1->enabled)
++ return (0);
++
++ return (p0->enabled ? -1 : 1);
++ }
++
++ return (avahi_timeval_compare (&p0->when, &p1->when));
++}
++
++
++/*
++ * 'cupsdInitTimeouts()' - Initialise timeout structures.
++ */
++
++void
++cupsdInitTimeouts(void)
++{
++ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
++}
++
++
++/*
++ * 'cupsdAddTimeout()' - Add a timed callback.
++ */
++
++cupsd_timeout_t * /* O - Timeout handle */
++cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
++ cupsd_timeoutfunc_t cb, /* I - Callback function */
++ void *data) /* I - User data */
++{
++ cupsd_timeout_t *timeout;
++
++ timeout = malloc (sizeof(cupsd_timeout_t));
++ if (timeout != NULL)
++ {
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++
++ timeout->callback = cb;
++ timeout->data = data;
++ cupsArrayAdd (Timeouts, timeout);
++ }
++
++ return timeout;
++}
++
++
++/*
++ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
++ */
++
++cupsd_timeout_t * /* O - Next enabled timeout or NULL */
++cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
++{
++ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
++ struct timeval curtime;
++
++ if (first && !first->enabled)
++ first = NULL;
++
++ if (first && delay)
++ {
++ gettimeofday (&curtime, NULL);
++ if (avahi_timeval_compare (&curtime, &first->when) > 0)
++ {
++ *delay = 0;
++ } else {
++ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
++ if (first->when.tv_usec < curtime.tv_usec)
++ (*delay)--;
++ }
++ }
++
++ return (first);
++}
++
++
++/*
++ * 'cupsdRunTimeout()' - Run a timed callback.
++ */
++
++void
++cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ if (!timeout)
++ return;
++ timeout->enabled = 0;
++ if (!timeout->callback)
++ return;
++ timeout->callback (timeout, timeout->data);
++}
++
++/*
++ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
++ */
++
++void
++cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
++ const struct timeval *tv) /* I - Absolute time or NULL */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++ cupsArrayAdd (Timeouts, timeout);
++}
++
++
++/*
++ * 'cupsdRemoveTimeout()' - Discard a timed callback.
++ */
++
++void
++cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ free (timeout);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+--- a/cgi-bin/admin.c
++++ b/cgi-bin/admin.c
+@@ -1643,7 +1643,7 @@
+ else
+ local_protocols[0] = '\0';
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
+ {
+ if (local_protocols[0])
+@@ -1651,7 +1651,7 @@
+ else
+ strcat(local_protocols, "dnssd");
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
+@@ -2718,9 +2718,9 @@
+ #endif /* HAVE_GSSAPI */
+ cgiSetVariable("KERBEROS", "");
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cgiSetVariable("HAVE_DNSSD", "1");
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ cgiSetVariable("HAVE_LDAP", "1");
+--- a/scheduler/client.c
++++ b/scheduler/client.c
+@@ -4987,7 +4987,7 @@
+ !strncmp(host, "[::1]:", 6));
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * Check if the hostname is something.local (Bonjour); if so, allow it.
+ */
+@@ -4996,7 +4996,7 @@
+ (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
+ !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
+ return (1);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ /*
+ * Check if the hostname is an IP address...
+--- a/scheduler/dirsvc.c
++++ b/scheduler/dirsvc.c
+@@ -27,6 +27,7 @@
+ * ldap_connect() - Start new LDAP connection
+ * ldap_reconnect() - Reconnect to LDAP Server
+ * ldap_disconnect() - Disconnect from LDAP Server
++ * cupsdStartAvahiClient() - Start an Avahi client if needed
+ * cupsdStartBrowsing() - Start sending and receiving broadcast
+ * information.
+ * cupsdStartPolling() - Start polling servers as needed.
+@@ -45,6 +46,8 @@
+ * printer.
+ * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
+ * record format.
++ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
++ * AvahiStringList.
+ * dnssdRegisterCallback() - DNSServiceRegister callback.
+ * dnssdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+@@ -83,6 +86,7 @@
+ */
+
+ #include "cupsd.h"
++#include <assert.h>
+ #include <grp.h>
+
+ #ifdef HAVE_DNSSD
+@@ -97,6 +101,17 @@
+ # endif /* HAVE_SYSTEMCONFIGURATION */
+ # endif /* __APPLE__ */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-common/domain.h>
++#endif /* HAVE_AVAHI */
++
++
++#ifdef HAVE_DNSSD
++typedef char *cupsd_txt_record_t;
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++typedef AvahiStringList *cupsd_txt_record_t;
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -159,27 +174,39 @@
+ static void update_smb(int onoff);
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
++ int for_lpd);
++static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
++static void dnssdDeregisterPrinter(cupsd_printer_t *p);
++static void dnssdRegisterPrinter(cupsd_printer_t *p);
++static void dnssdStop(void);
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
+ #ifdef HAVE_DNSSD
+ # ifdef HAVE_COREFOUNDATION
+ static void dnssdAddAlias(const void *key, const void *value,
+ void *context);
+ # endif /* HAVE_COREFOUNDATION */
+-static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
+- int for_lpd);
+-static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
+-static void dnssdDeregisterPrinter(cupsd_printer_t *p);
+-static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
+- int count);
+ static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ DNSServiceErrorType errorCode,
+ const char *name, const char *regtype,
+ const char *domain, void *context);
+-static void dnssdRegisterPrinter(cupsd_printer_t *p);
+-static void dnssdStop(void);
+ static void dnssdUpdate(void);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
++ int count);
++static void avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata);
++static void avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata);
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LDAP
+ static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
+ {
+@@ -283,10 +310,10 @@
+ ldap_dereg_printer(p);
+ #endif /* HAVE_LDAP */
+
+-#ifdef HAVE_DNSSD
+- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdDeregisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -702,10 +729,10 @@
+ slpRegisterPrinter(p); */
+ #endif /* HAVE_LIBSLP */
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdRegisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -1419,6 +1446,27 @@
+ #endif /* HAVE_LDAP */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
++ */
++
++void
++cupsdStartAvahiClient(void)
++{
++ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
++ {
++ if (!AvahiCupsPollHandle)
++ AvahiCupsPollHandle = avahi_cups_poll_new ();
++
++ if (AvahiCupsPollHandle)
++ avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
++ AVAHI_CLIENT_NO_FAIL, avahi_client_cb, NULL, NULL);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
+ */
+@@ -1542,13 +1590,16 @@
+ else
+ BrowseSocket = -1;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
++#endif /* HAVE_DNSSD */
+ cupsd_listener_t *lis; /* Current listening socket */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * First create a "master" connection for all registrations...
+ */
+@@ -1573,6 +1624,7 @@
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+
+ cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Then get the port we use for registrations. If we are not listening
+@@ -1606,9 +1658,16 @@
+ */
+
+ cupsdUpdateDNSSDName();
++
++#ifdef HAVE_AVAHI
++ cupsdStartAvahiClient ();
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_DNSSD
+ }
+- }
+ #endif /* HAVE_DNSSD */
++ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
+@@ -1834,10 +1893,10 @@
+ BrowseSocket = -1;
+ }
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdStop();
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
+@@ -1902,7 +1961,7 @@
+ }
+
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
+ */
+@@ -1910,8 +1969,14 @@
+ void
+ cupsdUpdateDNSSDName(void)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
+ char webif[1024]; /* Web interface share name */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error from service creation */
++ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
++#endif /* HAVE_AVAHI */
+ # ifdef HAVE_SYSTEMCONFIGURATION
+ SCDynamicStoreRef sc; /* Context for dynamic store */
+ CFDictionaryRef btmm; /* Back-to-My-Mac domains */
+@@ -2042,6 +2107,7 @@
+ else
+ strlcpy(webif, "CUPS Web Interface", sizeof(webif));
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ DNSServiceRefDeallocate(WebIFRef);
+
+@@ -2054,9 +2120,45 @@
+ NULL)) != kDNSServiceErr_NoError)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "DNS-SD web interface registration failed: %d", error);
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not yet running.
++ */
++ return;
++
++ if (AvahiWebIFGroup)
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ else
++ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ NULL);
++
++ if (AvahiWebIFGroup)
++ {
++ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, /* flags */
++ webif, /* name */
++ "_http._tcp", /* type */
++ NULL, /* domain */
++ NULL, /* host */
++ DNSSDPort, /* port */
++ "path=/", NULL);
++ if (ret == 0)
++ ret = avahi_entry_group_commit (AvahiWebIFGroup);
++
++ if (ret != 0)
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi web interface registration failed: %d", ret);
++ }
++#endif /* HAVE_AVAHI */
+ }
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
+ #ifdef HAVE_LDAP
+@@ -2334,13 +2436,15 @@
+ "Bad Back to My Mac domain in dynamic store!");
+ }
+ # endif /* HAVE_COREFOUNDATION */
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
+ */
+
+-static char * /* O - TXT record */
++static cupsd_txt_record_t /* O - TXT record */
+ dnssdBuildTxtRecord(
+ int *txt_len, /* O - TXT record length */
+ cupsd_printer_t *p, /* I - Printer information */
+@@ -2379,7 +2483,12 @@
+ keyvalue[i ][0] = "ty";
+ keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
+
+- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
++ snprintf(admin_hostname, sizeof(admin_hostname),
++ "%s.local"
++#ifdef HAVE_DNSSD
++ "." /* terminating dot no good for Avahi */
++#endif /* HAVE_DNSSD */
++ , DNSSDHostName);
+ httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
+ "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+@@ -2462,7 +2571,12 @@
+ * Then pack them into a proper txt record...
+ */
+
++#ifdef HAVE_DNSSD
+ return (dnssdPackTxtRecord(txt_len, keyvalue, i));
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ return (avahiPackTxtRecord(keyvalue, i));
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2474,7 +2588,16 @@
+ dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
+ cupsd_printer_t *b)/* I - Second printer */
+ {
+- return (_cups_strcasecmp(a->reg_name, b->reg_name));
++ if (!a->reg_name)
++ if (!b->reg_name)
++ return 0;
++ else
++ return -1;
++ else
++ if (!b->reg_name)
++ return 1;
++ else
++ return (_cups_strcasecmp(a->reg_name, b->reg_name));
+ }
+
+
+@@ -2489,6 +2612,10 @@
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ /*
+ * Closing the socket deregisters the service
+ */
+@@ -2524,6 +2651,24 @@
+ free(p->printer_txt);
+ p->printer_txt = NULL;
+ }
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++
++ if (p->ipp_txt)
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ p->ipp_txt = p->printer_txt = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
+ /*
+ * Remove the printer from the array of DNS-SD printers, then clear the
+@@ -2533,8 +2678,10 @@
+ cupsArrayRemove(DNSSDPrinters, p);
+ cupsdClearString(&p->reg_name);
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
+ * TXT record format.
+@@ -2644,8 +2791,10 @@
+ LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
+ }
+ }
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
+ * or update the broadcast contents.
+@@ -2654,20 +2803,40 @@
+ static void
+ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType se; /* dnssd errors */
+ char *ipp_txt, /* IPP TXT record buffer */
+ *printer_txt, /* LPD TXT record buffer */
+- name[1024], /* Service name */
+- *nameptr; /* Pointer into name */
++ name[1024]; /* Service name */
+ int ipp_len, /* IPP TXT record length */
+ printer_len, /* LPD TXT record length */
+ printer_port; /* LPD port number */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error code */
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ char name[AVAHI_LABEL_MAX], /* Service name */
++ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
++ char *regtype_copy, /* Writeable copy of reg type */
++ *subtype, /* Current service sub type */
++ *nextsubtype; /* Next service sub type */
++#endif /* HAVE_AVAHI */
++ char *nameptr; /* Pointer into name */
+ const char *regtype; /* Registration type */
+
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
+ !p->ipp_ref ? "new" : "update");
+-
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
++ !p->avahi_group ? "new" : "update");
++#endif /* HAVE_AVAHI */
+ /*
+ * If per-printer sharing was just disabled make sure we're not
+ * registered before returning.
+@@ -2686,12 +2855,36 @@
+ if (p->info && strlen(p->info) > 0)
+ {
+ if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->info, sizeof(name));
+ }
+ else if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->name, sizeof(name));
+
+@@ -2712,6 +2905,7 @@
+ * Register IPP and (optionally) LPD...
+ */
+
++#ifdef HAVE_DNSSD
+ ipp_len = 0; /* anti-compiler-warning-code */
+ ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
+
+@@ -2884,6 +3078,209 @@
+
+ if (printer_txt)
+ free(printer_txt);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not running yet. The client callback will call us again later.
++ */
++ return;
++
++ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
++ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
++ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
++
++ if (p->avahi_group && p->ipp_txt && ipp_txt &&
++ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
++ {
++ /*
++ * Update the existing registration...
++ */
++
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ /*
++ * Update the service group entry.
++ */
++
++ regtype_copy = strdup (regtype);
++ subtype = strchr (regtype_copy, ',');
++ if (subtype)
++ *subtype = '\0';
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Updating TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, ipp_txt);
++ free (regtype_copy);
++
++ if (ret < 0)
++ goto update_failed;
++
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL,
++ printer_txt);
++ if (ret < 0)
++ goto update_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++ if (ret < 0)
++ {
++ update_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to update TXT record for %s: %d",
++ name, ret);
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (!p->avahi_group)
++ {
++ /*
++ * Initial registration. Use the _fax subtype for fax queues...
++ */
++
++ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ p);
++
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"%s\"", p->name, name, regtype);
++
++ if (!p->avahi_group)
++ {
++ ret = 0;
++ goto add_failed;
++ }
++
++ /*
++ * Add each service type (DNSSDRegType may contain several,
++ * separated by commas).
++ */
++
++ subtype = regtype_copy = strdup (regtype);
++ while (subtype && *subtype)
++ {
++ nextsubtype = strchr (subtype, ',');
++ if (nextsubtype)
++ *nextsubtype++ = '\0';
++
++ if (subtype == regtype_copy)
++ {
++ /*
++ * Main type entry.
++ */
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name, regtype_copy,
++ NULL, NULL,
++ DNSSDPort,
++ ipp_txt);
++ }
++ else
++ {
++ /*
++ * Sub-type entry.
++ */
++
++ snprintf (fullsubtype, sizeof(fullsubtype),
++ "%s._sub.%s", subtype, regtype_copy);
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, fullsubtype);
++ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, fullsubtype);
++ }
++
++ if (ret < 0)
++ {
++ free (regtype_copy);
++ goto add_failed;
++ }
++
++ subtype = nextsubtype;
++ }
++
++ free (regtype_copy);
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"_printer._tcp\"", p->name, name);
++
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL, NULL,
++ 515,
++ printer_txt);
++ if (ret < 0)
++ goto add_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++
++ if (ret < 0)
++ {
++ add_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to add Avahi entry for %s: %d",
++ name, ret);
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ }
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (ipp_txt)
++ avahi_string_list_free (ipp_txt);
++
++ if (printer_txt)
++ avahi_string_list_free (printer_txt);
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2896,6 +3293,10 @@
+ {
+ cupsd_printer_t *p; /* Current printer */
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++#endif /* HAVE_DNSSD */
+
+ /*
+ * De-register the individual printers
+@@ -2906,6 +3307,7 @@
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ dnssdDeregisterPrinter(p);
+
++#ifdef HAVE_DNSSD
+ /*
+ * Shutdown the rest of the service refs...
+ */
+@@ -2926,14 +3328,17 @@
+
+ DNSServiceRefDeallocate(DNSSDRef);
+ DNSSDRef = NULL;
++#endif /* HAVE_DNSSD */
+
+ cupsArrayDelete(DNSSDPrinters);
+ DNSSDPrinters = NULL;
+
+ DNSSDPort = 0;
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdUpdate()' - Handle DNS-SD queries.
+ */
+@@ -2955,6 +3360,147 @@
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
++ * AvahiStringList.
++ */
++
++static AvahiStringList * /* O - new string list */
++avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
++ int count) /* I - Number of items in table */
++{
++ AvahiStringList *strlst = NULL;
++ char **elements;
++ size_t len;
++ int i = 0;
++
++ elements = malloc ((1 + count) * sizeof (char *));
++ if (!elements)
++ goto cleanup;
++
++ for (i = 0; i < count; i++)
++ {
++ len = (1 + strlen (keyvalue[i][0]) +
++ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
++ elements[i] = malloc (len * sizeof (char));
++ if (!elements[i])
++ goto cleanup;
++
++ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
++ }
++
++ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
++
++cleanup:
++ while (--i >= 0)
++ free (elements[i]);
++
++ free (elements);
++ return (strlst);
++}
++
++
++/*
++ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
++ */
++static void
++avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata)
++{
++ char *name;
++
++ if (userdata)
++ name = ((cupsd_printer_t *) userdata)->reg_name;
++ else
++ name = "CUPS web interface";
++
++ switch (state)
++ {
++ case AVAHI_ENTRY_GROUP_UNCOMMITED:
++ case AVAHI_ENTRY_GROUP_REGISTERING:
++ break;
++
++ case AVAHI_ENTRY_GROUP_ESTABLISHED:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group established for %s", name);
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group %s has state %d",
++ name, state);
++ break;
++ }
++}
++
++
++/*
++ * 'avahi_client_cb()' - Avahi client callback function.
++ */
++static void
++avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata)
++{
++ cupsd_printer_t *printer;
++ switch (state)
++ {
++ case AVAHI_CLIENT_S_RUNNING:
++ /*
++ * Avahi client started successfully.
++ */
++ AvahiCupsClient = client;
++ AvahiCupsClientConnecting = 0;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
++
++ cupsdUpdateDNSSDName ();
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
++ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
++ CUPS_PRINTER_SCANNER))) && printer->shared)
++ dnssdRegisterPrinter (printer);
++
++ break;
++
++ case AVAHI_CLIENT_CONNECTING:
++ /*
++ * No Avahi daemon, client is waiting.
++ */
++ AvahiCupsClientConnecting = 1;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
++ break;
++
++ case AVAHI_CLIENT_FAILURE:
++ /*
++ * Avahi client failed, close it to allow a clean restart.
++ */
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi client failed, "
++ "closing client to allow a clean restart");
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ dnssdDeregisterPrinter (printer);
++
++ avahi_client_free(client);
++ AvahiCupsClientConnecting = 0;
++ AvahiCupsClient = NULL;
++
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
+ */
+--- a/scheduler/dirsvc.h
++++ b/scheduler/dirsvc.h
+@@ -31,6 +31,10 @@
+ # endif /* HAVE_LDAP_SSL_H */
+ #endif /* HAVE_LDAP */
+
++#ifdef HAVE_AVAHI
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Browse protocols...
+ */
+@@ -131,19 +135,22 @@
+ VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
+ /* Status buffer for pollers */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ VAR char *DNSSDComputerName VALUE(NULL),
+ /* Computer/server name */
+ *DNSSDHostName VALUE(NULL),
+ /* Hostname */
+ *DNSSDRegType VALUE(NULL);
+ /* Bonjour registration type */
+-VAR cups_array_t *DNSSDAlias VALUE(NULL);
+- /* List of dynamic ServerAlias's */
+ VAR int DNSSDPort VALUE(0);
+ /* Port number to register */
+ VAR cups_array_t *DNSSDPrinters VALUE(NULL);
+ /* Printers we have registered */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
++#ifdef HAVE_DNSSD
++VAR cups_array_t *DNSSDAlias VALUE(NULL);
++ /* List of dynamic ServerAlias's */
+ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Master DNS-SD service reference */
+ WebIFRef VALUE(NULL),
+@@ -152,6 +159,17 @@
+ /* Remote printer browse reference */
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
++ /* AvahiCupsPoll object */
++VAR AvahiClient *AvahiCupsClient VALUE(NULL);
++ /* AvahiClient object */
++VAR int AvahiCupsClientConnecting VALUE(0);
++ /* Is AvahiClient object connecting? */
++VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
++ /* Web interface entry group */
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LIBSLP
+ VAR SLPHandle BrowseSLPHandle VALUE(NULL);
+ /* SLP API handle */
+@@ -195,13 +213,14 @@
+ extern void cupsdRestartPolling(void);
+ extern void cupsdSaveRemoteCache(void);
+ extern void cupsdSendBrowseList(void);
++extern void cupsdStartAvahiClient(void);
+ extern void cupsdStartBrowsing(void);
+ extern void cupsdStartPolling(void);
+ extern void cupsdStopBrowsing(void);
+ extern void cupsdStopPolling(void);
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ extern void cupsdUpdateDNSSDName(void);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ #ifdef HAVE_LDAP
+ extern void cupsdUpdateLDAPBrowse(void);
+ #endif /* HAVE_LDAP */
+--- a/scheduler/ipp.c
++++ b/scheduler/ipp.c
+@@ -6087,7 +6087,7 @@
+ ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
+ ippTimeToDate(curtime));
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
+ {
+ if (printer->reg_name)
+@@ -6097,7 +6097,7 @@
+ ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
+ "printer-dns-sd-name", 0);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ if (!ra || cupsArrayFind(ra, "printer-error-policy"))
+ ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
+--- a/scheduler/printers.c
++++ b/scheduler/printers.c
+@@ -883,9 +883,9 @@
+ cupsdClearString(&p->alert);
+ cupsdClearString(&p->alert_description);
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdClearString(&p->pdl);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ cupsArrayDelete(p->filetypes);
+
+@@ -3765,7 +3765,7 @@
+ attr->values[i].string.text = _cupsStrAlloc(mimetype);
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ {
+ char pdl[1024]; /* Buffer to build pdl list */
+ mime_filter_t *filter; /* MIME filter looping var */
+@@ -3821,7 +3821,7 @@
+
+ cupsdSetString(&p->pdl, pdl);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+--- a/scheduler/printers.h
++++ b/scheduler/printers.h
+@@ -16,6 +16,9 @@
+ #ifdef HAVE_DNSSD
+ # include <dns_sd.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include "avahi.h"
++#endif /* HAVE_AVAHI */
+ #include <cups/pwg-private.h>
+
+
+@@ -95,16 +98,23 @@
+ time_t marker_time; /* Last time marker attributes were updated */
+ _ppd_cache_t *pc; /* PPD cache and mapping data */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ char *reg_name, /* Name used for service registration */
+- *pdl, /* pdl value for TXT record */
+- *ipp_txt, /* IPP TXT record contents */
++ *pdl; /* pdl value for TXT record */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++#ifdef HAVE_DNSSD
++ char *ipp_txt, /* IPP TXT record contents */
+ *printer_txt; /* LPD TXT record contents */
+ int ipp_len, /* IPP TXT record length */
+ printer_len; /* LPD TXT record length */
+ DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
+ printer_ref; /* Reference for _printer._tcp */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ AvahiEntryGroup *avahi_group; /* Avahi entry group */
++#endif /* HAVE_AVAHI */
+ };
+
+
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -650,7 +650,7 @@
+ Browsing = CUPS_DEFAULT_BROWSING;
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
+ #endif /* HAVE_DNSSD */
+
diff --git a/extra/cups/cups-no-export-ssllibs.patch b/extra/cups/cups-no-export-ssllibs.patch
new file mode 100644
index 000000000..9be3c819b
--- /dev/null
+++ b/extra/cups/cups-no-export-ssllibs.patch
@@ -0,0 +1,12 @@
+diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
+--- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
+@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
+ AC_SUBST(SSLFLAGS)
+ AC_SUBST(SSLLIBS)
+
+-EXPORT_SSLLIBS="$SSLLIBS"
++EXPORT_SSLLIBS=""
+ AC_SUBST(EXPORT_SSLLIBS)
+
+
diff --git a/extra/cups/cups-no-gcrypt.patch b/extra/cups/cups-no-gcrypt.patch
new file mode 100644
index 000000000..42f71d0d4
--- /dev/null
+++ b/extra/cups/cups-no-gcrypt.patch
@@ -0,0 +1,38 @@
+diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
+--- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
++++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
+@@ -96,7 +96,6 @@
+ dnl Then look for GNU TLS...
+ if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
+ AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
+- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
+ if $PKGCONFIG --exists gnutls; then
+ have_ssl=1
+ SSLLIBS=`$PKGCONFIG --libs gnutls`
+@@ -110,16 +109,6 @@
+ AC_DEFINE(HAVE_SSL)
+ AC_DEFINE(HAVE_GNUTLS)
+ fi
+-
+- if test $have_ssl = 1; then
+- if $PKGCONFIG --exists gcrypt; then
+- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
+- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
+- elif test "x$LIBGCRYPTCONFIG" != x; then
+- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
+- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
+- fi
+- fi
+ fi
+
+ dnl Check for the OpenSSL library last...
+--- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
++++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
+@@ -93,7 +93,6 @@
+ # elif defined HAVE_GNUTLS
+ # include <gnutls/gnutls.h>
+ # include <gnutls/x509.h>
+-# include <gcrypt.h>
+ # elif defined(HAVE_CDSASSL)
+ # include <CoreFoundation/CoreFoundation.h>
+ # include <Security/Security.h>
diff --git a/extra/cups/cups.install b/extra/cups/cups.install
new file mode 100644
index 000000000..47c3d9b82
--- /dev/null
+++ b/extra/cups/cups.install
@@ -0,0 +1,26 @@
+post_install() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ 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() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
+ # important upgrade notice
+ echo "daemon script has been renamed to /etc/rc.d/cupsd"
+ echo "change your entry in /etc/rc.conf"
+ fi
+}
+
+post_remove() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+}
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/cvs/PKGBUILD b/extra/cvs/PKGBUILD
new file mode 100644
index 000000000..62db9ea0e
--- /dev/null
+++ b/extra/cvs/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 121072 2011-04-28 22:54:58Z stephane $
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=cvs
+pkgver=1.11.23
+pkgrel=7
+pkgdesc="Concurrent Versions System - a source control system"
+arch=(i686 x86_64 'mips64el')
+url="http://cvs.nongnu.org"
+license=('GPL')
+depends=('krb5')
+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..0a9e8a7dd
--- /dev/null
+++ b/extra/cvsps/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 124095 2011-05-16 15:14:02Z andrea $
+# Maintainer:
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+
+pkgname=cvsps
+pkgver=2.1
+pkgrel=3
+pkgdesc="Generating 'patchset' information from a CVS repository"
+url="http://www.cobite.com/cvsps/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('zlib')
+source=("http://www.cobite.com/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('bde2110ed9f5d14de8f8cb04e9d596fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install
+}
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..aa727dccd
--- /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' 'mips64el')
+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/0003_saslauthd_mdoc.patch b/extra/cyrus-sasl/0003_saslauthd_mdoc.patch
new file mode 100644
index 000000000..694f4bb67
--- /dev/null
+++ b/extra/cyrus-sasl/0003_saslauthd_mdoc.patch
@@ -0,0 +1,35 @@
+0003_saslauthd_mdoc.dpatch by <fabbe@debian.org>
+
+Use the correct path for the saslauthd.conf file, and use another
+date format (cosmetic).
+
+diff -urNad trunk~/saslauthd/saslauthd.mdoc trunk/saslauthd/saslauthd.mdoc
+--- trunk~/saslauthd/saslauthd.mdoc 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/saslauthd.mdoc 2006-07-12 15:05:25.000000000 +0300
+@@ -10,7 +10,7 @@
+ .\" manpage in saslauthd.8 whenever you change this source
+ .\" version. Only the pre-formatted manpage is installed.
+ .\"
+-.Dd 10 24 2002
++.Dd October 24 2002
+ .Dt SASLAUTHD 8
+ .Os "CMU-SASL"
+ .Sh NAME
+@@ -216,7 +216,7 @@
+ .Em (All platforms that support OpenLDAP 2.0 or higher)
+ .Pp
+ Authenticate against an ldap server. The ldap configuration parameters are
+-read from /usr/local/etc/saslauthd.conf. The location of this file can be
++read from /etc/saslauthd.conf. The location of this file can be
+ changed with the -O parameter. See the LDAP_SASLAUTHD file included with the
+ distribution for the list of available parameters.
+ .It Li sia
+@@ -249,7 +249,7 @@
+ .Bl -tag -width "/var/run/saslauthd/mux"
+ .It Pa /var/run/saslauthd/mux
+ The default communications socket.
+-.It Pa /usr/local/etc/saslauthd.conf
++.It Pa /etc/saslauthd.conf
+ The default configuration file for ldap support.
+ .El
+ .Sh SEE ALSO
diff --git a/extra/cyrus-sasl/0010_maintainer_mode.patch b/extra/cyrus-sasl/0010_maintainer_mode.patch
new file mode 100644
index 000000000..cf3d02a08
--- /dev/null
+++ b/extra/cyrus-sasl/0010_maintainer_mode.patch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 0010_maintainer_mode.dpatch by <fabbe@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Enable maintainer mode to avoid auto* problems.
+
+@DPATCH@
+diff -urNad trunk~/configure.in trunk/configure.in
+--- trunk~/configure.in 2006-05-29 22:52:46.000000000 +0300
++++ trunk/configure.in 2006-11-01 23:24:55.000000000 +0200
+@@ -62,6 +62,8 @@
+ AM_INIT_AUTOMAKE(cyrus-sasl, 2.1.22)
+ CMU_INIT_AUTOMAKE
+
++AM_MAINTAINER_MODE
++
+ # and include our config dir scripts
+ ACLOCAL="$ACLOCAL -I \$(top_srcdir)/config"
+
diff --git a/extra/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch b/extra/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch
new file mode 100644
index 000000000..3805b4857
--- /dev/null
+++ b/extra/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch
@@ -0,0 +1,15 @@
+0011_saslauthd_ac_prog_libtool.dpatch by <fabbe@debian.org>
+
+Enable libtool use.
+
+diff -urNad trunk~/saslauthd/configure.in trunk/saslauthd/configure.in
+--- trunk~/saslauthd/configure.in 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/configure.in 2006-11-01 23:41:51.000000000 +0200
+@@ -25,6 +25,7 @@
+ AC_PROG_MAKE_SET
+ AC_PROG_LN_S
+ AC_PROG_INSTALL
++AC_PROG_LIBTOOL
+
+ dnl Checks for build foo
+ CMU_C___ATTRIBUTE__
diff --git a/extra/cyrus-sasl/0012_xopen_crypt_prototype.patch b/extra/cyrus-sasl/0012_xopen_crypt_prototype.patch
new file mode 100644
index 000000000..d50ec8343
--- /dev/null
+++ b/extra/cyrus-sasl/0012_xopen_crypt_prototype.patch
@@ -0,0 +1,20 @@
+0012_xopen_crypt_prototype.dpatch by <dannf@debian.org>
+
+When _XOPEN_SOURCE is defined, the subsequent #include <unistd.h>
+will define a correct function prototype for the crypt function.
+This avoids segfaults on architectures where the size of a pointer
+is greater than the size of an integer (ia64 and amd64 are examples).
+This may be detected by looking for build log lines such as the
+following:
+auth_shadow.c:183: warning: implicit declaration of function ‘crypt’
+auth_shadow.c:183: warning: cast to pointer from integer of different
+size
+
+diff -urNad trunk~/saslauthd/auth_shadow.c trunk/saslauthd/auth_shadow.c
+--- trunk~/saslauthd/auth_shadow.c 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/auth_shadow.c 2006-11-08 13:44:23.000000000 +0200
+@@ -1,3 +1,4 @@
++#define _XOPEN_SOURCE
+ #define PWBUFSZ 256 /***SWB***/
+
+ /* MODULE: auth_shadow */
diff --git a/extra/cyrus-sasl/0016_pid_file_lock_creation_mask.patch b/extra/cyrus-sasl/0016_pid_file_lock_creation_mask.patch
new file mode 100644
index 000000000..e9170cef3
--- /dev/null
+++ b/extra/cyrus-sasl/0016_pid_file_lock_creation_mask.patch
@@ -0,0 +1,27 @@
+0016_pid_file_lock_creation_mask.dpatch by Sam Hocevar <sam@zoy.org>
+
+pid_file_lock is created with a mask of 644 instead of 0644.
+This patch fixes this octal/decimal confusion as well as the
+(harmless) one in the previous umask() call.
+
+diff -urNad trunk~/saslauthd/saslauthd-main.c trunk/saslauthd/saslauthd-main.c
+--- trunk~/saslauthd/saslauthd-main.c 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/saslauthd-main.c 2007-06-26 12:07:10.000000000 +0300
+@@ -276,7 +276,7 @@
+ exit(1);
+ }
+
+- umask(077);
++ umask(0077);
+
+ pid_file_size = strlen(run_path) + sizeof(PID_FILE_LOCK) + 1;
+ if ((pid_file_lock = malloc(pid_file_size)) == NULL) {
+@@ -287,7 +287,7 @@
+ strlcpy(pid_file_lock, run_path, pid_file_size);
+ strlcat(pid_file_lock, PID_FILE_LOCK, pid_file_size);
+
+- if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 644)) < 0) {
++ if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 0644)) < 0) {
+ rc = errno;
+ logger(L_ERR, L_FUNC, "could not open pid lock file: %s", pid_file_lock);
+ logger(L_ERR, L_FUNC, "open: %s", strerror(rc));
diff --git a/extra/cyrus-sasl/0018_auth_rimap_quotes.patch b/extra/cyrus-sasl/0018_auth_rimap_quotes.patch
new file mode 100644
index 000000000..13fa999f0
--- /dev/null
+++ b/extra/cyrus-sasl/0018_auth_rimap_quotes.patch
@@ -0,0 +1,35 @@
+0016_auth_rimap_quotes.dpatch by <fabbe@debian.org>
+
+All lines beginning with `## DP:' are a description of the patch.
+Avoid infinite loop when username/password has a double quote character.
+Upstream change: https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/sasl/saslauthd/auth_rimap.c.diff?r1=1.12;r2=1.13
+
+diff -urNad etch~/saslauthd/auth_rimap.c etch/saslauthd/auth_rimap.c
+--- etch~/saslauthd/auth_rimap.c 2007-03-29 15:16:20.000000000 +0300
++++ etch/saslauthd/auth_rimap.c 2008-02-13 13:42:53.000000000 +0200
+@@ -162,6 +162,7 @@
+ num_quotes = 0;
+ p1 = s;
+ while ((p1 = strchr(p1, '"')) != NULL) {
++ p1++;
+ num_quotes++;
+ }
+
+@@ -438,7 +439,7 @@
+ syslog(LOG_WARNING, "auth_rimap: writev: %m");
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+ (void)close(s);
+ return strdup(RESP_IERROR);
+@@ -447,7 +448,7 @@
+ /* don't need these any longer */
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+
+ /* read and parse the LOGIN response */
diff --git a/extra/cyrus-sasl/0019_ldap_deprecated.patch b/extra/cyrus-sasl/0019_ldap_deprecated.patch
new file mode 100644
index 000000000..8825256cb
--- /dev/null
+++ b/extra/cyrus-sasl/0019_ldap_deprecated.patch
@@ -0,0 +1,22 @@
+0019_ldap_deprecated.dpatch by dann frazier <dannf@debian.org>
+
+The function ldap_get_values, used in saslauthd/lak.c, is deprecated.
+Therefore, its prototype is not included by default when compiling
+against the ldap.h headers. As a result, the compiler cannot know the
+return type of the function at compile time, and will implicitly
+convert to a pointer. This has implications on 64-bit systems.
+This patch sets the deprecation mode on, so that the function prototype
+gets included when compiling.
+(Description by Fabian Fagerholm <fabbe@debian.org>)
+
+diff -urNad trunk~/saslauthd/lak.c trunk/saslauthd/lak.c
+--- trunk~/saslauthd/lak.c 2006-06-04 12:26:20.000000000 +0300
++++ trunk/saslauthd/lak.c 2008-02-15 14:32:11.000000000 +0200
+@@ -55,6 +55,7 @@
+ #include <openssl/des.h>
+ #endif
+
++#define LDAP_DEPRECATED 1
+ #include <ldap.h>
+ #include <lber.h>
+ #include <sasl.h>
diff --git a/extra/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch b/extra/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch
new file mode 100644
index 000000000..a49b553f0
--- /dev/null
+++ b/extra/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch
@@ -0,0 +1,26 @@
+0022_gcc4.4_preprocessor_syntax.dpatch by <fabbe@paniq.net>
+
+The #elif preprocessor directive requires a test condition.
+GCC 4.4 enforces this rule.
+
+diff -urNad trunk~/plugins/digestmd5.c trunk/plugins/digestmd5.c
+--- trunk~/plugins/digestmd5.c 2006-06-04 12:26:19.000000000 +0300
++++ trunk/plugins/digestmd5.c 2009-01-26 13:29:40.000000000 +0200
+@@ -2715,7 +2715,7 @@
+ "DIGEST-MD5", /* mech_name */
+ #ifdef WITH_RC4
+ 128, /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
+@@ -4034,7 +4034,7 @@
+ "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/0025_ld_as_needed.patch b/extra/cyrus-sasl/0025_ld_as_needed.patch
new file mode 100644
index 000000000..67b48b4a4
--- /dev/null
+++ b/extra/cyrus-sasl/0025_ld_as_needed.patch
@@ -0,0 +1,27 @@
+Author: Matthias Klose <doko@ubuntu.com>
+Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use
+it.
+--- a/saslauthd/Makefile.am
++++ b/saslauthd/Makefile.am
+@@ -16,7 +16,7 @@ EXTRA_saslauthd_sources = getaddrinfo.c
+ saslauthd_DEPENDENCIES = saslauthd-main.o @LTLIBOBJS@
+ saslauthd_LDADD = @SASL_KRB_LIB@ \
+ @GSSAPIBASE_LIBS@ @GSSAPI_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
+- @LIB_SOCKET@ @SASL_DB_LIB@ @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
++ @LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
+
+ testsaslauthd_SOURCES = testsaslauthd.c utils.c
+ testsaslauthd_LDADD = @LIB_SOCKET@
+--- a/sasldb/Makefile.am
++++ b/sasldb/Makefile.am
+@@ -55,8 +55,8 @@ noinst_LIBRARIES = libsasldb.a
+
+ libsasldb_la_SOURCES = allockey.c sasldb.h
+ EXTRA_libsasldb_la_SOURCES = $(extra_common_sources)
+-libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND)
+-libsasldb_la_LIBADD = $(SASL_DB_BACKEND)
++libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
++libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
+
+ # Prevent make dist stupidity
+ libsasldb_a_SOURCES =
diff --git a/extra/cyrus-sasl/0026_drop_krb5support_dependency.patch b/extra/cyrus-sasl/0026_drop_krb5support_dependency.patch
new file mode 100644
index 000000000..cc00867ef
--- /dev/null
+++ b/extra/cyrus-sasl/0026_drop_krb5support_dependency.patch
@@ -0,0 +1,14 @@
+Author: Roberto C. Sanchez <roberto@connexer.com>
+Description: Drop gratuitous dependency on krb5support
+--- a/cmulocal/sasl2.m4
++++ b/cmulocal/sasl2.m4
+@@ -112,9 +112,6 @@ if test "$gssapi" != no; then
+ fi
+
+ if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
+- # check for libkrb5support first
+- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
+-
+ gss_failed=0
+ AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
diff --git a/extra/cyrus-sasl/0027_db5_support.patch b/extra/cyrus-sasl/0027_db5_support.patch
new file mode 100644
index 000000000..522824074
--- /dev/null
+++ b/extra/cyrus-sasl/0027_db5_support.patch
@@ -0,0 +1,24 @@
+Author: Ondřej Surý <ondrej@debian.org>
+Description: Support newer Berkeley DB versions
+--- a/sasldb/db_berkeley.c
++++ b/sasldb/db_berkeley.c
+@@ -101,7 +101,7 @@ static int berkeleydb_open(const sasl_ut
+ 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);
+--- a/utils/dbconverter-2.c
++++ b/utils/dbconverter-2.c
+@@ -214,7 +214,7 @@ static int berkeleydb_open(const char *p
+ 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/extra/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch b/extra/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch
new file mode 100644
index 000000000..14a322496
--- /dev/null
+++ b/extra/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch
@@ -0,0 +1,134 @@
+--- a/lib/dlopen.c
++++ b/lib/dlopen.c
+@@ -247,105 +247,6 @@ static int _sasl_plugin_load(char *plugi
+ return result;
+ }
+
+-/* this returns the file to actually open.
+- * out should be a buffer of size PATH_MAX
+- * and may be the same as in. */
+-
+-/* We'll use a static buffer for speed unless someone complains */
+-#define MAX_LINE 2048
+-
+-static int _parse_la(const char *prefix, const char *in, char *out)
+-{
+- FILE *file;
+- size_t length;
+- char line[MAX_LINE];
+- char *ntmp = NULL;
+-
+- if(!in || !out || !prefix || out == in) return SASL_BADPARAM;
+-
+- /* Set this so we can detect failure */
+- *out = '\0';
+-
+- length = strlen(in);
+-
+- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) {
+- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) {
+- /* check for a .la file */
+- strcpy(line, prefix);
+- strcat(line, in);
+- length = strlen(line);
+- *(line + (length - strlen(SO_SUFFIX))) = '\0';
+- strcat(line, LA_SUFFIX);
+- file = fopen(line, "r");
+- if(file) {
+- /* We'll get it on the .la open */
+- fclose(file);
+- return SASL_FAIL;
+- }
+- }
+- strcpy(out, prefix);
+- strcat(out, in);
+- return SASL_OK;
+- }
+-
+- strcpy(line, prefix);
+- strcat(line, in);
+-
+- file = fopen(line, "r");
+- if(!file) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "unable to open LA file: %s", line);
+- return SASL_FAIL;
+- }
+-
+- while(!feof(file)) {
+- if(!fgets(line, MAX_LINE, file)) break;
+- if(line[strlen(line) - 1] != '\n') {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "LA file has too long of a line: %s", in);
+- return SASL_BUFOVER;
+- }
+- if(line[0] == '\n' || line[0] == '#') continue;
+- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) {
+- /* We found the line with the name in it */
+- char *end;
+- char *start;
+- size_t len;
+- end = strrchr(line, '\'');
+- if(!end) continue;
+- start = &line[sizeof("dlname=")-1];
+- len = strlen(start);
+- if(len > 3 && start[0] == '\'') {
+- ntmp=&start[1];
+- *end='\0';
+- /* Do we have dlname="" ? */
+- if(ntmp == end) {
+- _sasl_log(NULL, SASL_LOG_DEBUG,
+- "dlname is empty in .la file: %s", in);
+- return SASL_FAIL;
+- }
+- strcpy(out, prefix);
+- strcat(out, ntmp);
+- }
+- break;
+- }
+- }
+- if(ferror(file) || feof(file)) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "Error reading .la: %s\n", in);
+- fclose(file);
+- return SASL_FAIL;
+- }
+- fclose(file);
+-
+- if(!(*out)) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "Could not find a dlname line in .la file: %s", in);
+- return SASL_FAIL;
+- }
+-
+- return SASL_OK;
+-}
+ #endif /* DO_DLOPEN */
+
+ /* loads a plugin library */
+@@ -499,18 +400,18 @@ int _sasl_load_plugins(const add_plugin_
+ if (length + pos>=PATH_MAX) continue; /* too big */
+
+ if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)),
+- SO_SUFFIX)
+- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)),
+- LA_SUFFIX))
++ SO_SUFFIX))
+ continue;
+
++ /* We only use .so files for loading plugins */
++
+ memcpy(name,dir->d_name,length);
+ name[length]='\0';
+
+- result = _parse_la(prefix, name, tmp);
+- if(result != SASL_OK)
+- continue;
+-
++ /* Create full name with path */
++ strncpy(tmp, prefix, PATH_MAX);
++ strncat(tmp, name, PATH_MAX);
++
+ /* skip "lib" and cut off suffix --
+ this only need be approximate */
+ strcpy(plugname, name + 3);
diff --git a/extra/cyrus-sasl/PKGBUILD b/extra/cyrus-sasl/PKGBUILD
new file mode 100644
index 000000000..4d7971276
--- /dev/null
+++ b/extra/cyrus-sasl/PKGBUILD
@@ -0,0 +1,204 @@
+# $Id: PKGBUILD 140376 2011-10-11 21:30:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+# This package spans multiple repositories.
+# Always build from cyrus-sasl/trunk and merge changes to libsasl/trunk.
+
+pkgbase=('cyrus-sasl')
+pkgname=('cyrus-sasl' 'cyrus-sasl-gssapi' 'cyrus-sasl-ldap' 'cyrus-sasl-sql')
+#pkgname=libsasl
+pkgver=2.1.23
+pkgrel=8.1
+pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cyrusimap.web.cmu.edu/downloads.html#sasl"
+license=('custom')
+options=('!makeflags' '!libtool')
+makedepends=('postgresql-libs' 'libmysqlclient' 'libldap' 'krb5' 'openssl' 'libtool' 'groff')
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
+ cyrus-sasl-2.1.19-checkpw.c.patch
+ cyrus-sasl-2.1.22-crypt.patch
+ cyrus-sasl-2.1.22-qa.patch
+ cyrus-sasl-2.1.22-automake-1.10.patch
+ cyrus-sasl-2.1.23-authd-fix.patch
+ 0003_saslauthd_mdoc.patch
+ 0010_maintainer_mode.patch
+ 0011_saslauthd_ac_prog_libtool.patch
+ 0012_xopen_crypt_prototype.patch
+ 0016_pid_file_lock_creation_mask.patch
+ 0018_auth_rimap_quotes.patch
+ 0019_ldap_deprecated.patch
+ 0022_gcc4.4_preprocessor_syntax.patch
+ 0025_ld_as_needed.patch
+ 0026_drop_krb5support_dependency.patch
+ 0027_db5_support.patch
+ 0030-dont_use_la_files_for_opening_plugins.patch
+ saslauthd.conf.d
+ saslauthd)
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ 'e27ddff076342e7a3041c4759817d04b'
+ 'd7e6886e88af04d05f3dec7f0a59ccf7'
+ '79b8a5e8689989e2afd4b7bda595a7b1'
+ 'f4131b077ddb5240b375d749162f1b7a'
+ 'c7ad2c70c1ef814eb4b119f316c064f2'
+ 'caeeac3feba19cbbd36e7345cc805600'
+ 'f45d8b60e8f74dd7f7c2ec1665fa602a'
+ '9d93880514cb5ff5da969f1ceb64a661'
+ 'dfdc052a7e678db9f687482c5d52f34e'
+ '4a09f6b24b91f8450892a78e378860da'
+ '213abe7c5dfe0d7f446992787da1e780'
+ '5a0321177ad30cb5518c8b6812e3961a'
+ '0c965748970eea29fa295524821d43f0'
+ '62bf892fe4d1df41ff748e91a1afaf67'
+ 'b7848957357e7c02d6490102be496bf9'
+ 'd86a5aa2e3b5b7c1bad6f8b548b7ea36'
+ '8e7106f32e495e9ade69014fd1b3352a'
+ '49219af5641150edec288a3fdb65e7c1'
+ '75542f613185d5a90520ad0d7d926a20')
+
+build() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-crypt.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-qa.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-automake-1.10.patch"
+ patch -Np0 -i "${srcdir}/cyrus-sasl-2.1.23-authd-fix.patch"
+ patch -Np1 -i "${srcdir}/0003_saslauthd_mdoc.patch"
+ patch -Np1 -i "${srcdir}/0010_maintainer_mode.patch"
+ patch -Np1 -i "${srcdir}/0011_saslauthd_ac_prog_libtool.patch"
+ patch -Np1 -i "${srcdir}/0012_xopen_crypt_prototype.patch"
+ patch -Np1 -i "${srcdir}/0016_pid_file_lock_creation_mask.patch"
+ patch -Np1 -i "${srcdir}/0018_auth_rimap_quotes.patch"
+ patch -Np1 -i "${srcdir}/0019_ldap_deprecated.patch"
+ patch -Np1 -i "${srcdir}/0022_gcc4.4_preprocessor_syntax.patch"
+ patch -Np1 -i "${srcdir}/0025_ld_as_needed.patch"
+ patch -Np1 -i "${srcdir}/0026_drop_krb5support_dependency.patch"
+ patch -Np1 -i "${srcdir}/0027_db5_support.patch"
+ patch -Np1 -i "${srcdir}/0030-dont_use_la_files_for_opening_plugins.patch"
+
+ rm -f config/config.guess config/config.sub
+ rm -f config/ltconfig config/ltmain.sh config/libtool.m4
+ rm -fr autom4te.cache
+ libtoolize -c
+ aclocal -I config -I cmulocal
+ automake -a -c
+ autoheader
+ autoconf
+
+ pushd saslauthd
+ rm -f config/config.guess config/config.sub
+ rm -f config/ltconfig config/ltmain.sh config/libtool.m4
+ rm -fr autom4te.cache
+ libtoolize -c
+ aclocal -I config -I ../cmulocal -I ../config
+ automake -a -c
+ autoheader
+ autoconf
+ popd
+
+ ./configure --prefix=/usr \
+ --host=$CHOST \
+ --build=$CHOST \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-static \
+ --enable-shared \
+ --enable-alwaystrue \
+ --enable-checkapop \
+ --enable-cram \
+ --enable-digest \
+ --disable-otp \
+ --disable-srp \
+ --disable-srp-setpass \
+ --disable-krb4 \
+ --enable-gssapi \
+ --enable-auth-sasldb \
+ --enable-plain \
+ --enable-anon \
+ --enable-login \
+ --enable-ntlm \
+ --disable-passdss \
+ --enable-sql \
+ --enable-ldapdb \
+ --disable-macos-framework \
+ --with-pam \
+ --with-saslauthd=/var/run/saslauthd \
+ --with-ldap \
+ --with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/sasl2 \
+ --sysconfdir=/etc \
+ --with-devrandom=/dev/urandom
+ make
+}
+
+package_libsasl() {
+ pkgdesc="Cyrus Simple Authentication Service Layer (SASL) Library"
+ depends=('openssl')
+ conflicts=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ rm -f "${pkgdir}"/usr/lib/sasl2/libsql.so*
+ rm -f "${pkgdir}"/usr/lib/sasl2/libgssapiv2.so*
+ rm -f "${pkgdir}"/usr/lib/sasl2/libldapdb.so*
+ install -m755 -d "${pkgdir}/usr/share/licenses/libsasl"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/libsasl/"
+}
+
+package_cyrus-sasl() {
+ depends=("libsasl=${pkgver}-${pkgrel}")
+ pkgdesc="Cyrus saslauthd SASL authentication daemon"
+ backup=('etc/conf.d/saslauthd')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/saslauthd"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 -d "${pkgdir}/etc/conf.d"
+ install -m755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/"
+ install -m644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/"
+}
+
+package_cyrus-sasl-gssapi() {
+ pkgdesc="GSSAPI authentication mechanism for Cyrus SASL"
+ depends=("libsasl=${pkgver}-${pkgrel}" 'krb5')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libgssapiv2.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi/"
+}
+
+package_cyrus-sasl-ldap() {
+ pkgdesc="ldapdb auxprop module for Cyrus SASL"
+ depends=("libsasl=${pkgver}-${pkgrel}" 'libldap')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libldapdb.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap/"
+}
+
+package_cyrus-sasl-sql() {
+ pkgdesc="SQL auxprop module for Cyrus SASL"
+ depends=("libsasl=${pkgver}-${pkgrel}" 'postgresql-libs' 'libmysqlclient')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libsql.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-sql"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-sql/"
+}
diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch
new file mode 100644
index 000000000..f7bf44b79
--- /dev/null
+++ b/extra/cyrus-sasl/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/extra/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch
new file mode 100644
index 000000000..1294cb507
--- /dev/null
+++ b/extra/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch
@@ -0,0 +1,11 @@
+--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700
++++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700
+@@ -77,7 +77,7 @@
+ AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
+ SASL_DB_PATH_CHECK()
+ SASL_DB_CHECK()
+- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
++ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB"
+ fi
+
+ AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch
new file mode 100644
index 000000000..8cd71c0c5
--- /dev/null
+++ b/extra/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch
@@ -0,0 +1,94 @@
+Re-merged patch by Robert Scheck <redhat@linuxnetz.de> for cyrus-sasl >= 2.1.22, which was
+originally written by Jacek Konieczny <jajcus@pld-linux.org> and makes cyrus-sasl building
+using automake 1.10.
+
+--- cyrus-sasl-2.1.22/plugins/Makefile.am 2006-05-17 18:46:16.000000000 +0200
++++ cyrus-sasl-2.1.22/plugins/Makefile.am.am110 2007-02-16 15:42:07.000000000 +0100
+@@ -82,73 +82,73 @@
+ libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la
+
+ libplain_la_SOURCES = plain.c plain_init.c $(common_sources)
+-libplain_la_LDFLAGS = -version-info $(plain_version)
++libplain_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(plain_version)
+ libplain_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libplain_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS)
+
+ libanonymous_la_SOURCES = anonymous.c anonymous_init.c $(common_sources)
+-libanonymous_la_LDFLAGS = -version-info $(anonymous_version)
++libanonymous_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(anonymous_version)
+ libanonymous_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libanonymous_la_LIBADD = $(COMPAT_OBJS)
+
+ libkerberos4_la_SOURCES = kerberos4.c kerberos4_init.c $(common_sources)
+-libkerberos4_la_LDFLAGS = -version-info $(kerberos4_version)
++libkerberos4_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(kerberos4_version)
+ libkerberos4_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libkerberos4_la_LIBADD = $(SASL_KRB_LIB) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ libgssapiv2_la_SOURCES = gssapi.c gssapiv2_init.c $(common_sources)
+-libgssapiv2_la_LDFLAGS = -version-info $(gssapiv2_version)
++libgssapiv2_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(gssapiv2_version)
+ libgssapiv2_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libgssapiv2_la_LIBADD = $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ libcrammd5_la_SOURCES = cram.c crammd5_init.c $(common_sources)
+-libcrammd5_la_LDFLAGS = -version-info $(crammd5_version)
++libcrammd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(crammd5_version)
+ libcrammd5_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libcrammd5_la_LIBADD = $(COMPAT_OBJS)
+
+ libdigestmd5_la_SOURCES = digestmd5.c digestmd5_init.c $(common_sources)
+-libdigestmd5_la_LDFLAGS = -version-info $(digestmd5_version)
++libdigestmd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(digestmd5_version)
+ libdigestmd5_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libdigestmd5_la_LIBADD = $(LIB_DES) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ liblogin_la_SOURCES = login.c login_init.c $(common_sources)
+-liblogin_la_LDFLAGS = -version-info $(login_version)
++liblogin_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(login_version)
+ liblogin_la_DEPENDENCIES = $(COMPAT_OBJS)
+ liblogin_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS)
+
+ libsrp_la_SOURCES = srp.c srp_init.c $(common_sources)
+-libsrp_la_LDFLAGS = -version-info $(srp_version)
++libsrp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(srp_version)
+ libsrp_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsrp_la_LIBADD = $(SRP_LIBS) $(COMPAT_OBJS)
+
+ libotp_la_SOURCES = otp.c otp_init.c otp.h $(common_sources)
+-libotp_la_LDFLAGS = -version-info $(otp_version)
++libotp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(otp_version)
+ libotp_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libotp_la_LIBADD = $(OTP_LIBS) $(COMPAT_OBJS)
+
+ libntlm_la_SOURCES = ntlm.c ntlm_init.c $(common_sources)
+-libntlm_la_LDFLAGS = -version-info $(ntlm_version)
++libntlm_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(ntlm_version)
+ libntlm_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libntlm_la_LIBADD = $(NTLM_LIBS) $(COMPAT_OBJS)
+
+ libpassdss_la_SOURCES = passdss.c passdss_init.c $(common_sources)
+-libpassdss_la_LDFLAGS = -version-info $(passdss_version)
++libpassdss_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(passdss_version)
+ libpassdss_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libpassdss_la_LIBADD = $(PASSDSS_LIBS) $(COMPAT_OBJS)
+
+ # Auxprop Plugins
+ libsasldb_la_SOURCES = sasldb.c sasldb_init.c $(common_sources)
+-libsasldb_la_LDFLAGS = -version-info $(sasldb_version)
++libsasldb_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(sasldb_version)
+ libsasldb_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsasldb_la_LIBADD = ../sasldb/libsasldb.la $(SASL_DB_LIB) $(COMPAT_OBJS)
+
+ libldapdb_la_SOURCES = ldapdb.c ldapdb_init.c $(common_sources)
+-libldapdb_la_LDFLAGS = $(LIB_LDAP) -version-info $(ldapdb_version)
++libldapdb_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_LDAP) -version-info $(ldapdb_version)
+ libldapdb_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libldapdb_la_LIBADD = $(COMPAT_OBJS)
+
+ libsql_la_SOURCES = sql.c sql_init.c $(common_sources)
+-libsql_la_LDFLAGS = $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version)
++libsql_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version)
+ libsql_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsql_la_LIBADD = $(COMPAT_OBJS)
+
diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch
new file mode 100644
index 000000000..fd356327b
--- /dev/null
+++ b/extra/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch
@@ -0,0 +1,71 @@
+http://bugs.gentoo.org/152544
+
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -45,6 +45,7 @@ sasl_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/plugins -I$(top_builddir)/include -I$(top_srcdir)/sasldb
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = windlopen.c staticopen.h NTMakefile
+ EXTRA_LIBRARIES = libsasl2.a
+ noinst_LIBRARIES = @SASL_STATIC_LIBS@
+--- cyrus-sasl-2.1.22/plugins/Makefile.am
++++ cyrus-sasl-2.1.22/plugins/Makefile.am
+@@ -63,6 +63,7 @@ srp_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include
+ AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir)
++AM_CFLAGS = -fPIC
+
+ COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@
+
+--- cyrus-sasl-2.1.22/sasldb/Makefile.am
++++ cyrus-sasl-2.1.22/sasldb/Makefile.am
+@@ -48,6 +48,7 @@ INCLUDES=-I$(top_srcdir)/include -I$(top
+
+ extra_common_sources = db_none.c db_ndbm.c db_gdbm.c db_berkeley.c
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = NTMakefile
+
+ noinst_LTLIBRARIES = libsasldb.la
+--- cyrus-sasl-2.1.22/utils/Makefile.am
++++ cyrus-sasl-2.1.22/utils/Makefile.am
+@@ -42,7 +42,7 @@
+ #
+ ################################################################
+
+-all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET)
++all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) $(LIB_CRYPT)
+ all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE)
+
+ sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer
+--- cyrus-sasl-2.1.22/sample/Makefile.am
++++ cyrus-sasl-2.1.22/sample/Makefile.am
+@@ -54,10 +54,10 @@ sample_server_SOURCES = sample-server.c
+ server_SOURCES = server.c common.c common.h
+ client_SOURCES = client.c common.c common.h
+
+-server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+-sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+ EXTRA_DIST = NTMakefile
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -63,7 +63,7 @@ lib_LTLIBRARIES = libsasl2.la
+ libsasl2_la_SOURCES = $(common_sources) $(common_headers)
+ libsasl2_la_LDFLAGS = -version-info $(sasl_version)
+ libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
+-libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR)
++libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT)
+
+ if MACOSX
+ framedir = /Library/Frameworks/SASL2.framework
diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch
new file mode 100644
index 000000000..4f7b04f13
--- /dev/null
+++ b/extra/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch
@@ -0,0 +1,22 @@
+fix missing prototype warnings
+
+--- cyrus-sasl-2.1.22/lib/auxprop.c
++++ cyrus-sasl-2.1.22/lib/auxprop.c
+@@ -43,6 +43,7 @@
+ */
+
+ #include <config.h>
++#include <stdio.h>
+ #include <sasl.h>
+ #include <prop.h>
+ #include <ctype.h>
+--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
++++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
+@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF
+ ******************************************************************/
+
+ #include <shadow.h>
++#include <string.h>
+
+ extern char *crypt();
+
diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch
new file mode 100644
index 000000000..f5f372d17
--- /dev/null
+++ b/extra/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch
@@ -0,0 +1,28 @@
+fix warnings:
+
+auth_sasldb.c: In function ‘auth_sasldb’:
+auth_sasldb.c:144: warning: implicit declaration of function ‘gethostname’
+
+auth_sasldb.c:153: warning: passing argument 8 of ‘_sasldb_getdata’ from incompatible pointer type
+../sasldb/sasldb.h:60: note: expected ‘size_t *’ but argument is of type ‘int *’
+
+--- saslauthd/auth_sasldb.c
++++ saslauthd/auth_sasldb.c
+@@ -41,6 +41,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <pwd.h>
++#include <unistd.h>
+ /* END PUBLIC DEPENDENCIES */
+
+ #define RETURN(x) return strdup(x)
+@@ -131,7 +132,8 @@
+ /* VARIABLES */
+ char pw[1024]; /* pointer to passwd file entry */
+ sasl_utils_t utils;
+- int ret, outsize;
++ int ret;
++ size_t outsize;
+ const char *use_realm;
+ char realm_buf[MAXHOSTNAMELEN];
+ /* END VARIABLES */
diff --git a/extra/cyrus-sasl/saslauthd b/extra/cyrus-sasl/saslauthd
new file mode 100644
index 000000000..6afafae0b
--- /dev/null
+++ b/extra/cyrus-sasl/saslauthd
@@ -0,0 +1,49 @@
+#!/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_RUN=/var/run/saslauthd
+SASLAUTHD_PID=$SASLAUTHD_RUN/saslauthd.pid
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON_NAME"
+ [ ! -d /var/run/saslauthd ] && install -d /var/run/saslauthd
+ if $SASLAUTHD_BIN $SASLAUTHD_OPTS >/dev/null; then
+ add_daemon $DAEMON_NAME
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON_NAME"
+ [ -f $SASLAUTHD_PID ] && kill `cat $SASLAUTHD_PID` &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon $DAEMON_NAME
+ stat_done
+ fi
+ ;;
+
+ 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..167211290
--- /dev/null
+++ b/extra/cyrus-sasl/saslauthd.conf.d
@@ -0,0 +1 @@
+SASLAUTHD_OPTS="-a pam"
diff --git a/extra/dansguardian/PKGBUILD b/extra/dansguardian/PKGBUILD
new file mode 100644
index 000000000..75314e45e
--- /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' 'mips64el')
+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/dasher/PKGBUILD b/extra/dasher/PKGBUILD
new file mode 100644
index 000000000..e6da6487b
--- /dev/null
+++ b/extra/dasher/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 137741 2011-09-10 14:49:04Z pierre $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=dasher
+pkgver=4.10.1
+pkgrel=3
+pkgdesc="Information-efficient text-entry interface, driven by natural continuous pointing gestures"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('at-spi' 'libgnomeui' 'gnome-speech' 'gconf' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gnome-doc-utils')
+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
+ 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 dasher ${pkgdir}/etc/gconf/schemas/*.schemas
+ 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..cf1503d61
--- /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 'mips64el')
+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..339372336
--- /dev/null
+++ b/extra/dbus-glib/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140079 2011-10-06 07:35:47Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dbus-glib
+pkgver=0.98
+pkgrel=1.1
+pkgdesc="GLib bindings for DBUS"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+depends=('dbus-core' 'glib2')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3f7f117dc7c8d899d9acfdcbf9253fb8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --enable-static=no --enable-bash-completion=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/dbus-python/PKGBUILD b/extra/dbus-python/PKGBUILD
new file mode 100644
index 000000000..8120d8b36
--- /dev/null
+++ b/extra/dbus-python/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 128602 2011-06-24 13:59:34Z ibiru $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dbus-python
+pkgver=0.84.0
+pkgrel=1
+pkgdesc="Python bindings for DBUS"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL')
+url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+depends=('dbus-glib' 'python2')
+makedepends=('pkg-config' 'docutils')
+options=('!libtool')
+source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('fe69a2613e824463e74f10913708c88a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..46e810395
--- /dev/null
+++ b/extra/dbus/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 140077 2011-10-06 07:35:45Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+#
+pkgname=dbus
+pkgver=1.4.16
+pkgrel=1.1
+pkgdesc="Freedesktop.org message bus system"
+url="http://www.freedesktop.org/Software/dbus"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'custom')
+depends=("dbus-core>=${pkgver}" 'libx11')
+source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ 30-dbus)
+md5sums=('44a2a10678e7e50460879c3eb4453a65'
+ '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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..cd547aba4
--- /dev/null
+++ b/extra/dcfldd/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137724 2011-09-10 14:16:18Z pierre $
+# Contributor: Paul Mattal <pjmattal@elys.com>
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+
+pkgname=dcfldd
+pkgver=1.3.4.1
+pkgrel=3
+pkgdesc="DCFL (DoD Computer Forensics Lab) dd replacement with hashing"
+arch=('i686' 'x86_64' 'mips64el')
+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##*.}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-${pkgver%.*}-${pkgver##*.}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/dconf/PKGBUILD b/extra/dconf/PKGBUILD
new file mode 100644
index 000000000..39c34fed7
--- /dev/null
+++ b/extra/dconf/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 139241 2011-10-01 18:56:24Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=dconf
+pkgver=0.10.0
+pkgrel=1.1
+pkgdesc="A low-level configuration system."
+arch=(i686 x86_64 'mips64el')
+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.10/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('9f744ccfb3da20163a4bb27916c960f6bf56048b3ec1112862c85414fc064ee2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/dconf
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..39bce8f45
--- /dev/null
+++ b/extra/dconf/dconf.install
@@ -0,0 +1,12 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade(){
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/dcraw/PKGBUILD b/extra/dcraw/PKGBUILD
new file mode 100644
index 000000000..59eb011b1
--- /dev/null
+++ b/extra/dcraw/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 141206 2011-10-26 08:04:28Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=dcraw
+pkgver=9.11
+pkgrel=1
+pkgdesc="A command line based converter for digicams raw output"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.cybercom.net/~dcoffin/dcraw/"
+license=('custom')
+depends=('lcms' 'jasper')
+source=(http://www.cybercom.net/~dcoffin/dcraw/archive/${pkgname}-${pkgver}.tar.gz
+ license.txt)
+sha1sums=('79dc403d6b629df6dac3218ad33dc89c4a86c234'
+ '502c8f0ac7434d48f5dcb2eefe7599627cb69454')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ gcc ${CFLAGS} -O3 -o dcraw dcraw.c \
+ -Wall -Wno-unused-result -Wno-array-bounds \
+ -lm -ljasper -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 nl.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-)
+ if [ -f dcraw_${lang}.1 ]; then
+ 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
+ fi
+ 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
+
+ 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/dcron/PKGBUILD b/extra/dcron/PKGBUILD
new file mode 100644
index 000000000..c898df935
--- /dev/null
+++ b/extra/dcron/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Paul Mattal <paul.archlinux.org>
+
+pkgname=dcron
+pkgver=4.5
+pkgrel=2
+pkgdesc="dillon's lightweight cron daemon"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.jimpryor.net/linux/dcron"
+backup=('var/spool/cron/root' 'etc/conf.d/crond')
+depends=('bash')
+provides=('cron')
+conflicts=('cron')
+source=("http://www.jimpryor.net/linux/releases/${pkgname}-${pkgver}.tar.gz")
+md5sums=('078833f3281f96944fc30392b1888326')
+optdepends=('smtp-server: sending cron job output via email')
+install=$pkgname.install
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ # 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
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+
+ # install standard configuration and scripts
+ install -d -m755 "$pkgdir/etc/cron."{hourly,daily,weekly,monthly}
+
+ install -D -m755 extra/run-cron "$pkgdir/usr/sbin/run-cron"
+ install -D -m0600 extra/root.crontab "$pkgdir/var/spool/cron/root"
+ install -D -m755 extra/crond.rc "$pkgdir/etc/rc.d/crond"
+ install -D -m0644 extra/crond.conf "$pkgdir/etc/conf.d/crond"
+ install -D -m644 extra/crontab.vim "$pkgdir/usr/share/vim/vimfiles/ftplugin/crontab.vim"
+ sed -i -e 's=/var/spool/cron/cronstamps=/var/spool/cronstamps=' extra/prune-cronstamps
+ install -D -m755 extra/prune-cronstamps "$pkgdir/etc/cron.d/prune-cronstamps"
+}
diff --git a/extra/dcron/dcron.install b/extra/dcron/dcron.install
new file mode 100644
index 000000000..df23d0224
--- /dev/null
+++ b/extra/dcron/dcron.install
@@ -0,0 +1,6 @@
+post_upgrade() {
+ if [ $(vercmp $2 4.0) -lt 0 ]
+ then
+ echo "Restart crond, since you're upgrading to the dcron 4.x series."
+ fi
+}
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..a7fdf26aa
--- /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' 'mips64el')
+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..d74363da5
--- /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' 'mips64el')
+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/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..11d431a9c
--- /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.1
+pkgdesc="Command line utilities for working with desktop entries"
+arch=('i686' 'x86_64' 'mips64el')
+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..0ef5723ed
--- /dev/null
+++ b/extra/devhelp/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 139243 2011-10-01 18:56:27Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=devhelp
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="API documentation browser for GNOME"
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('974b4418036fa9a63a8f275257ed9ec1b7cae61a97e8e001e56e460c8a8e310e')
+
+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/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..f4792043c
--- /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' 'mips64el')
+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..b7b23fc58
--- /dev/null
+++ b/extra/dhcp/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 119729 2011-04-14 10:22:18Z 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.1.1
+_pkgver=4.2.1-P1
+
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:isc-dhcp')
+url="https://www.isc.org/software/dhcp"
+source=(ftp://ftp.isc.org/isc/${pkgbase}/${pkgbase}-${_pkgver}.tar.gz
+ dhcp4 dhcp6 dhcp
+ dhcp-4.1.1-missing-ipv6-not-fatal.patch
+ dhclient-script-pathFixes.patch)
+md5sums=('22e6f1eff6d5cfe2621a06cc62ba5b70'
+ 'c49b1497837ba56c54e401a66e1bab9b'
+ '12c2f3ae47ed23eb698eb7f1bfd80f20'
+ '8f357e46e1efcbb746f38737a3f977a2'
+ 'fd64aeb4f399dcc41ea43089a3811094'
+ 'ddcc5cd576ec631ade6c4da21952b50b')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${_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 \
+ --with-cli-lease-file=/var/state/dhclient/dhclient.leases \
+ --with-cli6-lease-file=/var/state/dhclient/dhclient6.leases
+
+ make
+
+ patch -i ${srcdir}/dhclient-script-pathFixes.patch client/scripts/linux || return 1
+}
+
+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}/${pkgbase}-${_pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -D -m755 ${srcdir}/dhcp4 ${pkgdir}/etc/rc.d/dhcp4
+ install -D -m755 ${srcdir}/dhcp6 ${pkgdir}/etc/rc.d/dhcp6
+ install -D -m644 ${srcdir}/dhcp ${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' 'iproute2')
+
+ cd ${srcdir}/${pkgbase}-${_pkgver}
+ make -C client DESTDIR=${pkgdir} install
+
+ # move dhclient.conf to dhclient.conf.example
+ mv ${pkgdir}/etc/dhclient.conf{,.example}
+
+ mkdir -p ${pkgdir}/var/state/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 b/extra/dhcp/dhcp
new file mode 100644
index 000000000..d4f228d9c
--- /dev/null
+++ b/extra/dhcp/dhcp
@@ -0,0 +1,10 @@
+#
+# Arguments to be passed to the DHCP server daemon
+#
+
+# ipv4 runtime parameters
+DHCP4_ARGS="-q"
+
+# ipv6 runtime parameters
+DHCP6_ARGS="-q"
+
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..5302be4b5
--- /dev/null
+++ b/extra/dhcp/dhcp.install
@@ -0,0 +1,18 @@
+# arg 1: the new package version
+post_install() {
+ [ -f var/state/dhcp/dhcpd.leases ] || : >var/state/dhcp/dhcpd.leases
+ [ -f var/state/dhcp/dhcpd6.leases ] || : >var/state/dhcp/dhcpd6.leases
+ #echo "If dhcpd doesn't start, ensure the ipv6 kernel module is loaded."
+
+ echo
+ echo "==> The dhcp server has now two rc.d scripts."
+ echo "==> Use '/etc/rc.d/dhcp6' to use IPv6 dhcp server or"
+ echo "==> '/etc/rc.d/dhcp4' to use IPv4 dhcp server."
+ echo "==> Make sure that you change your DAEMONS array in '/etc/rc.conf'!"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/dhcp/dhcp4 b/extra/dhcp/dhcp4
new file mode 100644
index 000000000..8e1277a37
--- /dev/null
+++ b/extra/dhcp/dhcp4
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/dhcp
+
+PIDFILE="/var/run/dhcpd.pid"
+
+if [[ -f $PIDFILE ]]; then
+ read -r PID < "$PIDFILE"
+
+ # prevent stale pidfiles from hanging around
+ if [[ ! -d /proc/$PID ]]; then
+ echo 'pid not found. deleteing stale pidfile'
+ unset PID
+ rm -f "$PIDFILE"
+ fi
+fi
+
+case "$1" in
+ start)
+ stat_busy "Starting DHCPv4 Server"
+ if [[ $PID ]]; then
+ stat_fail
+ exit 1
+ fi
+ if /usr/sbin/dhcpd -4 -pf "$PIDFILE" $DHCP4_ARGS; then
+ add_daemon dhcp4
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DHCPv4 Server"
+ if [[ ! $PID ]]; then
+ stat_fail
+ exit 1
+ fi
+ if { kill $PID && rm -f "$PIDFILE"; } &>/dev/null; then
+ rm_daemon dhcp4
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
diff --git a/extra/dhcp/dhcp6 b/extra/dhcp/dhcp6
new file mode 100644
index 000000000..6b4b4d359
--- /dev/null
+++ b/extra/dhcp/dhcp6
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/dhcp
+
+PIDFILE="/var/run/dhcp6.pid"
+
+if [[ -f $PIDFILE ]]; then
+ read -r PID < "$PIDFILE"
+
+ # prevent stale pidfiles from hanging around
+ if [[ ! -d /proc/$PID ]]; then
+ echo 'pid not found. deleteing stale pidfile'
+ unset PID
+ rm -f "$PIDFILE"
+ fi
+fi
+
+case "$1" in
+ start)
+ stat_busy "Starting DHCPv6 Server"
+ if [[ $PID ]]; then
+ stat_fail
+ exit 1
+ fi
+ if /usr/sbin/dhcpd -6 -pf "$PIDFILE" $DHCP6_ARGS; then
+ add_daemon dhcp6
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DHCPv6 Server"
+ if [[ ! $PID ]]; then
+ stat_fail
+ exit 1
+ fi
+ if { kill $PID && rm -f "$PIDFILE"; } &>/dev/null; then
+ rm_daemon dhcp6
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
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..7f441db76
--- /dev/null
+++ b/extra/di/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 143044 2011-11-21 22:39:45Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=di
+pkgver=4.31
+pkgrel=1
+pkgdesc="A disk information utility, displaying everything (and more) that your df command does"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gentoo.com/di/"
+license=('ZLIB')
+depends=('glibc')
+source=(http://www.gentoo.com/di/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('2a7212e03286b68ebb4783ae8937999145165c79')
+
+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..b3717bb88
--- /dev/null
+++ b/extra/diffstat/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 143725 2011-11-28 17:17:42Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Matthias-Christian Ott <matthias.christian.at.tiscali.de>
+
+pkgname=diffstat
+pkgver=1.54
+pkgrel=3
+pkgdesc="Display a histogram of diff changes"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://invisible-island.net/diffstat"
+depends=('glibc')
+license=('MIT')
+source=("ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz")
+md5sums=('af08bef2eb37050ceb0c4fddedb2ee36')
+
+build () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir}/ install
+ install -Dm644 package/debian/copyright "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/digikam/PKGBUILD b/extra/digikam/PKGBUILD
new file mode 100644
index 000000000..fb496e309
--- /dev/null
+++ b/extra/digikam/PKGBUILD
@@ -0,0 +1,97 @@
+# $Id: PKGBUILD 142485 2011-11-10 18:57:46Z ronald $
+# Maintainer: Andrea Scarpino <ronald@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgbase=digikam
+pkgname=('digikam' 'kipi-plugins' 'libkface' 'libkgeomap' 'libkvkontakte' 'libmediawiki')
+pkgver=2.3.0
+pkgrel=2
+pkgdesc="Digital photo management application for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.digikam.org/"
+makedepends=('kdepimlibs' 'libkexiv2' 'libkdcraw' 'libkipi' 'libksane' 'liblqr'
+ 'kdeedu-marble' 'opencv' 'boost' 'libgpod' 'qjson' 'hugin'
+ 'cmake' 'automoc4' 'doxygen')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('15b8b16d7cce6ac50fb958d30166214f2f2b83ee')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ # Use internal lensfun (FS#21816)
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DLENSFUN_LIBRARY="" \
+ -DLENSFUN_INCLUDE_DIR=""
+ make
+}
+
+package_digikam() {
+ pkgdesc="Digital photo management application for KDE"
+ depends=('kdebase-runtime' 'kdepimlibs' 'libgphoto2' 'opencv' 'liblqr'
+ 'libkipi' 'libkexiv2' 'libkdcraw' 'libkface' 'libkgeomap')
+ optdepends=('kipi-plugins: for more extras and plugins')
+ install=digikam.install
+
+ cd "${srcdir}"/build/core
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/po
+ make DESTDIR="${pkgdir}" install
+
+ # these are in oxygen-icons
+ rm -rf ${pkgdir}/usr/share/icons
+
+}
+
+package_libkface() {
+ pkgdesc="A Qt/C++ wrapper around LibFace library to perform face recognition and detection over pictures"
+ depends=('kdelibs' 'opencv')
+
+ cd "${srcdir}"/build/extra/libkface
+ make DESTDIR="${pkgdir}" install
+}
+
+package_libkgeomap() {
+ pkgdesc="A wrapper around world map components for browsing and arranging photos on a map"
+ depends=('kdelibs' 'kdeedu-marble' 'libkexiv2')
+
+ cd "${srcdir}"/build/extra/libkgeomap
+ make DESTDIR="${pkgdir}" install
+}
+
+package_libkvkontakte() {
+ pkgdesc="KDE C++ library for asynchronous interaction with vkontakte.rusocial network"
+ depends=('kdelibs')
+
+ cd "${srcdir}"/build/extra/libkvkontakte
+ make DESTDIR="${pkgdir}" install
+}
+
+package_libmediawiki() {
+ pkgdesc="A KDE C++ interface for MediaWiki based web service as wikipedia.org"
+ depends=('kdelibs')
+
+ cd "${srcdir}"/build/extra/libmediawiki
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kipi-plugins() {
+ pkgdesc="A collection of plugins extending the KDE graphics and image applications as digiKam"
+ depends=('kdebase-runtime' 'kdepimlibs' 'libkdcraw' 'libkipi' 'libksane'
+ 'opencv' 'qjson' 'libkvkontakte' 'libkexiv2')
+ optdepends=('libkgeomap'
+ 'libmediawiki'
+ 'libgpod'
+ 'hugin')
+ install=kipi-plugins.install
+
+ cd "${srcdir}"/build/extra/kipi-plugins
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/digikam/digikam.install b/extra/digikam/digikam.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/digikam/digikam.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/digikam/kipi-plugins.install b/extra/digikam/kipi-plugins.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/digikam/kipi-plugins.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/dirmngr/PKGBUILD b/extra/dirmngr/PKGBUILD
new file mode 100644
index 000000000..ff276b588
--- /dev/null
+++ b/extra/dirmngr/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 134465 2011-08-04 06:40:27Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=dirmngr
+pkgver=1.1.0
+pkgrel=3
+pkgdesc="A daemon to handle CRL and certificate requests"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+install=dirmngr.install
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+ make DESTDIR=$pkgdir install
+}
+md5sums=('f2570f0248f5947daac200e85291b328')
diff --git a/extra/dirmngr/dirmngr.install b/extra/dirmngr/dirmngr.install
new file mode 100644
index 000000000..e26e0e7fd
--- /dev/null
+++ b/extra/dirmngr/dirmngr.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(dirmngr.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/djvulibre/PKGBUILD b/extra/djvulibre/PKGBUILD
new file mode 100644
index 000000000..17c9480cf
--- /dev/null
+++ b/extra/djvulibre/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 143707 2011-11-28 13:56:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: mgushee
+
+pkgname=djvulibre
+pkgver=3.5.24
+pkgrel=2
+pkgdesc="Suite to create, manipulate and view DjVu ('déjà vu') documents"
+arch=("i686" "x86_64" 'mips64el')
+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
+ git-fixes.patch)
+md5sums=('af83d27af5083198432a178d22b259c5'
+ 'ff3798e383e9c3fae407455d8a51deec')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+ ./configure --prefix=/usr --disable-desktopfiles
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/djvulibre/git-fixes.patch b/extra/djvulibre/git-fixes.patch
new file mode 100644
index 000000000..3077cf0b4
--- /dev/null
+++ b/extra/djvulibre/git-fixes.patch
@@ -0,0 +1,1607 @@
+From 3341545edba359b292a8ef6db1b7d342caf3dcf1 Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Wed, 4 May 2011 21:25:35 -0700
+Subject: [PATCH] Added include <stddef.h> for gcc-4.6
+
+---
+ libdjvu/BSByteStream.cpp | 1 +
+ libdjvu/BSEncodeByteStream.cpp | 1 +
+ libdjvu/ByteStream.cpp | 1 +
+ libdjvu/DjVuFileCache.cpp | 1 +
+ libdjvu/DjVuGlobal.cpp | 2 ++
+ libdjvu/DjVuGlobalMemory.cpp | 2 ++
+ libdjvu/DjVuMessage.cpp | 1 +
+ libdjvu/DjVuMessageLite.cpp | 2 +-
+ libdjvu/DjVuPalette.cpp | 2 ++
+ libdjvu/DjVuPort.h | 1 +
+ libdjvu/DjVuToPS.cpp | 1 +
+ libdjvu/GBitmap.cpp | 2 ++
+ libdjvu/GException.cpp | 1 +
+ libdjvu/GOS.cpp | 1 +
+ libdjvu/GPixmap.cpp | 2 ++
+ libdjvu/GSmartPointer.cpp | 1 +
+ libdjvu/GSmartPointer.h | 2 ++
+ libdjvu/GString.cpp | 1 +
+ libdjvu/GString.h | 1 +
+ libdjvu/GThreads.cpp | 2 ++
+ libdjvu/GURL.cpp | 1 +
+ libdjvu/GUnicode.cpp | 2 ++
+ libdjvu/IFFByteStream.h | 1 +
+ libdjvu/IW44EncodeCodec.cpp | 1 +
+ libdjvu/IW44Image.cpp | 1 +
+ libdjvu/JPEGDecoder.h | 1 +
+ libdjvu/MMX.cpp | 1 +
+ libdjvu/UnicodeByteStream.h | 1 +
+ libdjvu/XMLParser.cpp | 1 +
+ libdjvu/ZPCodec.cpp | 2 ++
+ libdjvu/atomic.cpp | 1 +
+ libdjvu/ddjvuapi.cpp | 1 +
+ libdjvu/ddjvuapi.h | 1 +
+ libdjvu/miniexp.cpp | 1 +
+ libdjvu/miniexp.h | 3 ++-
+ tools/bzz.cpp | 1 +
+ tools/c44.cpp | 1 +
+ tools/cjb2.cpp | 1 +
+ tools/cpaldjvu.cpp | 1 +
+ tools/csepdjvu.cpp | 1 +
+ tools/ddjvu.cpp | 1 +
+ tools/djvm.cpp | 2 +-
+ tools/djvmcvt.cpp | 1 +
+ tools/djvudump.cpp | 1 +
+ tools/djvuextract.cpp | 1 +
+ tools/djvumake.cpp | 1 +
+ tools/djvups.cpp | 1 +
+ tools/djvused.cpp | 1 +
+ tools/djvuserve.cpp | 1 +
+ tools/djvutxt.cpp | 1 +
+ tools/tiff2pdf.h | 1 +
+ xmltools/djvutoxml.cpp | 1 +
+ xmltools/djvuxmlparser.cpp | 1 +
+ 53 files changed, 63 insertions(+), 3 deletions(-)
+
+diff --git a/libdjvu/BSByteStream.cpp b/libdjvu/BSByteStream.cpp
+index b762ccf..d662ab0 100644
+--- a/libdjvu/BSByteStream.cpp
++++ b/libdjvu/BSByteStream.cpp
+@@ -62,6 +62,7 @@
+
+ // - Author: Leon Bottou, 07/1998
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/BSEncodeByteStream.cpp b/libdjvu/BSEncodeByteStream.cpp
+index 5d80e51..68bc3e3 100644
+--- a/libdjvu/BSEncodeByteStream.cpp
++++ b/libdjvu/BSEncodeByteStream.cpp
+@@ -71,6 +71,7 @@
+ #include "GOS.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/ByteStream.cpp b/libdjvu/ByteStream.cpp
+index 158c33c..be01847 100644
+--- a/libdjvu/ByteStream.cpp
++++ b/libdjvu/ByteStream.cpp
+@@ -73,6 +73,7 @@
+ #include "GOS.h"
+ #include "GURL.h"
+ #include "DjVuMessage.h"
++#include <stddef.h>
+ #include <fcntl.h>
+ #if defined(WIN32) || defined(__CYGWIN32__)
+ # include <io.h>
+diff --git a/libdjvu/DjVuFileCache.cpp b/libdjvu/DjVuFileCache.cpp
+index 6b1e85d..7d7a192 100644
+--- a/libdjvu/DjVuFileCache.cpp
++++ b/libdjvu/DjVuFileCache.cpp
+@@ -63,6 +63,7 @@
+ #include "DjVuFileCache.h"
+ #include "debug.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+
+
+diff --git a/libdjvu/DjVuGlobal.cpp b/libdjvu/DjVuGlobal.cpp
+index e6d3cec..df9278e 100644
+--- a/libdjvu/DjVuGlobal.cpp
++++ b/libdjvu/DjVuGlobal.cpp
+@@ -76,6 +76,8 @@
+ #include "GThreads.h"
+ #include "GException.h"
+ #include "GContainer.h"
++
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/DjVuGlobalMemory.cpp b/libdjvu/DjVuGlobalMemory.cpp
+index 3c6012c..c8ba309 100644
+--- a/libdjvu/DjVuGlobalMemory.cpp
++++ b/libdjvu/DjVuGlobalMemory.cpp
+@@ -67,6 +67,8 @@
+
+ #include "DjVuGlobal.h"
+ #include "GException.h"
++
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include "debug.h"
+diff --git a/libdjvu/DjVuMessage.cpp b/libdjvu/DjVuMessage.cpp
+index 6f5a735..1726025 100644
+--- a/libdjvu/DjVuMessage.cpp
++++ b/libdjvu/DjVuMessage.cpp
+@@ -71,6 +71,7 @@
+ #include "debug.h"
+ #include <ctype.h>
+ #include <string.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #ifdef WIN32
+ # include <tchar.h>
+diff --git a/libdjvu/DjVuMessageLite.cpp b/libdjvu/DjVuMessageLite.cpp
+index b8c1010..5daa9d9 100644
+--- a/libdjvu/DjVuMessageLite.cpp
++++ b/libdjvu/DjVuMessageLite.cpp
+@@ -73,8 +73,8 @@
+ #include "debug.h"
+ #include <ctype.h>
+ #include <string.h>
++#include <stddef.h>
+ #include <stdlib.h>
+-// #include <stdio.h>
+ #ifdef WIN32
+ #include <tchar.h>
+ #include <windows.h>
+diff --git a/libdjvu/DjVuPalette.cpp b/libdjvu/DjVuPalette.cpp
+index c489f7b..76b0bf4 100644
+--- a/libdjvu/DjVuPalette.cpp
++++ b/libdjvu/DjVuPalette.cpp
+@@ -64,6 +64,8 @@
+ #include "ByteStream.h"
+ #include "BSByteStream.h"
+ #include "DjVuPalette.h"
++
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <math.h>
+
+diff --git a/libdjvu/DjVuPort.h b/libdjvu/DjVuPort.h
+index f6a92f6..e2b3125 100644
+--- a/libdjvu/DjVuPort.h
++++ b/libdjvu/DjVuPort.h
+@@ -65,6 +65,7 @@
+
+ #include "GThreads.h"
+ #include "GURL.h"
++#include "stddef.h"
+
+ #ifdef HAVE_NAMESPACES
+ namespace DJVU {
+diff --git a/libdjvu/DjVuToPS.cpp b/libdjvu/DjVuToPS.cpp
+index 5517bf3..6914ff9 100644
+--- a/libdjvu/DjVuToPS.cpp
++++ b/libdjvu/DjVuToPS.cpp
+@@ -72,6 +72,7 @@
+ #include "GPixmap.h"
+ #include "debug.h"
+ #include <stdarg.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <time.h>
+diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
+index ab5c0de..797edcc 100644
+--- a/libdjvu/GBitmap.cpp
++++ b/libdjvu/GBitmap.cpp
+@@ -66,6 +66,8 @@
+ #include "GString.h"
+ #include "GThreads.h"
+ #include "GException.h"
++#include <stddef.h>
++#include <stdlib.h>
+ #include <string.h>
+
+ // - Author: Leon Bottou, 05/1997
+diff --git a/libdjvu/GException.cpp b/libdjvu/GException.cpp
+index 2ea179a..89da70f 100644
+--- a/libdjvu/GException.cpp
++++ b/libdjvu/GException.cpp
+@@ -60,6 +60,7 @@
+ # pragma implementation
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/GOS.cpp b/libdjvu/GOS.cpp
+index e784932..d2088e2 100644
+--- a/libdjvu/GOS.cpp
++++ b/libdjvu/GOS.cpp
+@@ -65,6 +65,7 @@
+ #include "GOS.h"
+ #include "GURL.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <ctype.h>
+diff --git a/libdjvu/GPixmap.cpp b/libdjvu/GPixmap.cpp
+index 392df54..4bf6f57 100644
+--- a/libdjvu/GPixmap.cpp
++++ b/libdjvu/GPixmap.cpp
+@@ -75,6 +75,8 @@
+ #include "GThreads.h"
+ #include "Arrays.h"
+ #include "JPEGDecoder.h"
++
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <math.h>
+ #include <assert.h>
+diff --git a/libdjvu/GSmartPointer.cpp b/libdjvu/GSmartPointer.cpp
+index 6e523e7..58aef5b 100644
+--- a/libdjvu/GSmartPointer.cpp
++++ b/libdjvu/GSmartPointer.cpp
+@@ -67,6 +67,7 @@
+ // Our original implementation consisted of multiple classes.
+ // <http://prdownloads.sourceforge.net/djvu/DjVu2_2b-src.tgz>.
+
++#include <stddef.h>
+ #include <string.h>
+ #if PARANOID_DEBUG
+ # include <assert.h>
+diff --git a/libdjvu/GSmartPointer.h b/libdjvu/GSmartPointer.h
+index 82781bd..8a8bb8a 100644
+--- a/libdjvu/GSmartPointer.h
++++ b/libdjvu/GSmartPointer.h
+@@ -97,6 +97,8 @@
+ #include "DjVuGlobal.h"
+ #include "atomic.h"
+
++#include <stddef.h>
++
+ #ifdef HAVE_NAMESPACES
+ namespace DJVU {
+ # ifdef NOT_DEFINED // Just to fool emacs c++ mode
+diff --git a/libdjvu/GString.cpp b/libdjvu/GString.cpp
+index 03f6226..350b11b 100644
+--- a/libdjvu/GString.cpp
++++ b/libdjvu/GString.cpp
+@@ -73,6 +73,7 @@
+ #include "GThreads.h"
+ #include "debug.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/GString.h b/libdjvu/GString.h
+index b63b753..3aa1f76 100644
+--- a/libdjvu/GString.h
++++ b/libdjvu/GString.h
+@@ -108,6 +108,7 @@
+ #include "DjVuGlobal.h"
+ #include "GContainer.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #ifdef WIN32
+diff --git a/libdjvu/GThreads.cpp b/libdjvu/GThreads.cpp
+index d81f3c3..253fed8 100644
+--- a/libdjvu/GThreads.cpp
++++ b/libdjvu/GThreads.cpp
+@@ -71,6 +71,8 @@
+ #include "GThreads.h"
+ #include "GException.h"
+ #include "DjVuMessageLite.h"
++
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+
+diff --git a/libdjvu/GURL.cpp b/libdjvu/GURL.cpp
+index c37bf52..a80078c 100644
+--- a/libdjvu/GURL.cpp
++++ b/libdjvu/GURL.cpp
+@@ -72,6 +72,7 @@
+ #include "GURL.h"
+ #include "debug.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <ctype.h>
+diff --git a/libdjvu/GUnicode.cpp b/libdjvu/GUnicode.cpp
+index 415c081..a8b25b8 100644
+--- a/libdjvu/GUnicode.cpp
++++ b/libdjvu/GUnicode.cpp
+@@ -62,6 +62,8 @@
+
+ #include "GString.h"
+
++#include <stddef.h>
++
+ #if HAS_ICONV
+ #include <iconv.h>
+ #endif
+diff --git a/libdjvu/IFFByteStream.h b/libdjvu/IFFByteStream.h
+index a653f8c..e31b216 100644
+--- a/libdjvu/IFFByteStream.h
++++ b/libdjvu/IFFByteStream.h
+@@ -124,6 +124,7 @@
+
+
+ #include "DjVuGlobal.h"
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
+index 8d7b12c..49081b7 100644
+--- a/libdjvu/IW44EncodeCodec.cpp
++++ b/libdjvu/IW44EncodeCodec.cpp
+@@ -76,6 +76,7 @@
+ #include "IFFByteStream.h"
+ #include "GRect.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <math.h>
+diff --git a/libdjvu/IW44Image.cpp b/libdjvu/IW44Image.cpp
+index 9476726..4a19fb5 100644
+--- a/libdjvu/IW44Image.cpp
++++ b/libdjvu/IW44Image.cpp
+@@ -76,6 +76,7 @@
+ #include "IFFByteStream.h"
+ #include "GRect.h"
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <math.h>
+diff --git a/libdjvu/JPEGDecoder.h b/libdjvu/JPEGDecoder.h
+index bd430a0..fad1d4c 100644
+--- a/libdjvu/JPEGDecoder.h
++++ b/libdjvu/JPEGDecoder.h
+@@ -64,6 +64,7 @@
+
+ #ifdef NEED_JPEG_DECODER
+
++#include <stddef.h>
+ #include <string.h>
+ #include <setjmp.h>
+
+diff --git a/libdjvu/MMX.cpp b/libdjvu/MMX.cpp
+index 5ab60bb..528dab6 100644
+--- a/libdjvu/MMX.cpp
++++ b/libdjvu/MMX.cpp
+@@ -62,6 +62,7 @@
+
+ #include "MMX.h"
+ #include <stdio.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+
+diff --git a/libdjvu/UnicodeByteStream.h b/libdjvu/UnicodeByteStream.h
+index 0ae112b..9b49a17 100644
+--- a/libdjvu/UnicodeByteStream.h
++++ b/libdjvu/UnicodeByteStream.h
+@@ -88,6 +88,7 @@
+ #include "GString.h"
+ #include "ByteStream.h"
+
++#include <stddef.h>
+
+ #ifdef HAVE_NAMESPACES
+ namespace DJVU {
+diff --git a/libdjvu/XMLParser.cpp b/libdjvu/XMLParser.cpp
+index 84386c5..7da923a 100644
+--- a/libdjvu/XMLParser.cpp
++++ b/libdjvu/XMLParser.cpp
+@@ -75,6 +75,7 @@
+ #include "debug.h"
+ #include <stdio.h>
+ #include <ctype.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+
+diff --git a/libdjvu/ZPCodec.cpp b/libdjvu/ZPCodec.cpp
+index f6e971d..ff5b9bf 100644
+--- a/libdjvu/ZPCodec.cpp
++++ b/libdjvu/ZPCodec.cpp
+@@ -66,6 +66,8 @@
+ #include "ZPCodec.h"
+ #include "ByteStream.h"
+ #include "GException.h"
++
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <assert.h>
+ #include <math.h>
+diff --git a/libdjvu/atomic.cpp b/libdjvu/atomic.cpp
+index bdc193e..63fd483 100644
+--- a/libdjvu/atomic.cpp
++++ b/libdjvu/atomic.cpp
+@@ -28,6 +28,7 @@
+ # include "config.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <assert.h>
+ #include "atomic.h"
+diff --git a/libdjvu/ddjvuapi.cpp b/libdjvu/ddjvuapi.cpp
+index b18b84b..f40f5aa 100644
+--- a/libdjvu/ddjvuapi.cpp
++++ b/libdjvu/ddjvuapi.cpp
+@@ -60,6 +60,7 @@
+ # pragma implementation "ddjvuapi.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/libdjvu/ddjvuapi.h b/libdjvu/ddjvuapi.h
+index d0ed48f..841f223 100644
+--- a/libdjvu/ddjvuapi.h
++++ b/libdjvu/ddjvuapi.h
+@@ -64,6 +64,7 @@ extern "C" {
+ }
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+
+diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
+index e0fb087..fc51297 100644
+--- a/libdjvu/miniexp.cpp
++++ b/libdjvu/miniexp.cpp
+@@ -23,6 +23,7 @@
+ # pragma implementation "miniexp.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <ctype.h>
+diff --git a/libdjvu/miniexp.h b/libdjvu/miniexp.h
+index 91e345d..993005b 100644
+--- a/libdjvu/miniexp.h
++++ b/libdjvu/miniexp.h
+@@ -38,7 +38,8 @@ extern "C" {
+ #ifndef MINILISPAPI
+ # define MINILISPAPI /**/
+ #endif
+-
++
++#include <stddef.h>
+
+ /* -------------------------------------------------- */
+ /* LISP EXPRESSIONS */
+diff --git a/tools/bzz.cpp b/tools/bzz.cpp
+index ca092e1..2ebc7b9 100644
+--- a/tools/bzz.cpp
++++ b/tools/bzz.cpp
+@@ -94,6 +94,7 @@
+ #include "GURL.h"
+ #include "DjVuMessage.h"
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+ static const char *program = "(unknown)";
+diff --git a/tools/c44.cpp b/tools/c44.cpp
+index 6f23b53..855504b 100644
+--- a/tools/c44.cpp
++++ b/tools/c44.cpp
+@@ -226,6 +226,7 @@
+ #include <locale.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+ // command line data
+diff --git a/tools/cjb2.cpp b/tools/cjb2.cpp
+index 8cf89b9..11eb662 100644
+--- a/tools/cjb2.cpp
++++ b/tools/cjb2.cpp
+@@ -120,6 +120,7 @@
+ #include "jb2tune.h"
+
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #if HAVE_TIFF
+ #include <tiffio.h>
+diff --git a/tools/cpaldjvu.cpp b/tools/cpaldjvu.cpp
+index 111cbd3..b640a7a 100644
+--- a/tools/cpaldjvu.cpp
++++ b/tools/cpaldjvu.cpp
+@@ -118,6 +118,7 @@
+ #include "jb2tune.h"
+
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <math.h>
+
+diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
+index cd721f8..d5203d5 100644
+--- a/tools/csepdjvu.cpp
++++ b/tools/csepdjvu.cpp
+@@ -162,6 +162,7 @@
+ #include "jb2tune.h"
+
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+ #undef MIN
+diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
+index 817e045..981a270 100644
+--- a/tools/ddjvu.cpp
++++ b/tools/ddjvu.cpp
+@@ -62,6 +62,7 @@
+ # include "config.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <stdarg.h>
+diff --git a/tools/djvm.cpp b/tools/djvm.cpp
+index 951bd66..6ea88c2 100644
+--- a/tools/djvm.cpp
++++ b/tools/djvm.cpp
+@@ -135,9 +135,9 @@
+ #include "DjVuMessage.h"
+
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+-#include <stdlib.h>
+
+ static const char * progname;
+
+diff --git a/tools/djvmcvt.cpp b/tools/djvmcvt.cpp
+index 9ca1c54..20b468a 100644
+--- a/tools/djvmcvt.cpp
++++ b/tools/djvmcvt.cpp
+@@ -144,6 +144,7 @@
+
+ #include <locale.h>
+ #include <stdio.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+ static const char * progname;
+diff --git a/tools/djvudump.cpp b/tools/djvudump.cpp
+index 6a0215a..2dddbdf 100644
+--- a/tools/djvudump.cpp
++++ b/tools/djvudump.cpp
+@@ -119,6 +119,7 @@ xxx
+ #include <locale.h>
+ #include <stdio.h>
+ #include <ctype.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+ void
+diff --git a/tools/djvuextract.cpp b/tools/djvuextract.cpp
+index 4a9f381..907b99c 100644
+--- a/tools/djvuextract.cpp
++++ b/tools/djvuextract.cpp
+@@ -105,6 +105,7 @@
+ #include "GOS.h"
+ #include "DjVuMessage.h"
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+
+diff --git a/tools/djvumake.cpp b/tools/djvumake.cpp
+index 7020484..4c5fc0f 100644
+--- a/tools/djvumake.cpp
++++ b/tools/djvumake.cpp
+@@ -153,6 +153,7 @@
+
+ #include <locale.h>
+ #include <stdio.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <ctype.h>
+
+diff --git a/tools/djvups.cpp b/tools/djvups.cpp
+index 51aa999..632b832 100644
+--- a/tools/djvups.cpp
++++ b/tools/djvups.cpp
+@@ -57,6 +57,7 @@
+ # include "config.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <stdarg.h>
+diff --git a/tools/djvused.cpp b/tools/djvused.cpp
+index de84dcd..687fdca 100644
+--- a/tools/djvused.cpp
++++ b/tools/djvused.cpp
+@@ -61,6 +61,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <errno.h>
+diff --git a/tools/djvuserve.cpp b/tools/djvuserve.cpp
+index 19a17da..818fe78 100644
+--- a/tools/djvuserve.cpp
++++ b/tools/djvuserve.cpp
+@@ -73,6 +73,7 @@
+
+ #include <locale.h>
+ #include <stdio.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <sys/stat.h>
+ #include <time.h>
+diff --git a/tools/djvutxt.cpp b/tools/djvutxt.cpp
+index ba2c745..9e9124c 100644
+--- a/tools/djvutxt.cpp
++++ b/tools/djvutxt.cpp
+@@ -61,6 +61,7 @@
+ # include "config.h"
+ #endif
+
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <stdarg.h>
+diff --git a/tools/tiff2pdf.h b/tools/tiff2pdf.h
+index 082f5fb..656dc43 100644
+--- a/tools/tiff2pdf.h
++++ b/tools/tiff2pdf.h
+@@ -22,6 +22,7 @@
+ # endif
+ # if HAVE_TIFF
+ # include <stdio.h>
++# include <stddef.h>
+ # include <stdlib.h>
+ # include <tiff.h>
+ # include <tiffio.h>
+diff --git a/xmltools/djvutoxml.cpp b/xmltools/djvutoxml.cpp
+index 17c769b..b40535e 100644
+--- a/xmltools/djvutoxml.cpp
++++ b/xmltools/djvutoxml.cpp
+@@ -71,6 +71,7 @@
+
+ #include <locale.h>
+ #include <stdio.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <sys/stat.h>
+ #include <assert.h>
+diff --git a/xmltools/djvuxmlparser.cpp b/xmltools/djvuxmlparser.cpp
+index bdc5768..6679a9d 100644
+--- a/xmltools/djvuxmlparser.cpp
++++ b/xmltools/djvuxmlparser.cpp
+@@ -70,6 +70,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <locale.h>
++#include <stddef.h>
+ #include <stdlib.h>
+
+ static void
+--
+1.7.4.1
+
+From 3cc41e2a72bbd6d34e81a9a214abbebf41cc00c7 Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Sat, 21 May 2011 09:27:17 -0700
+Subject: [PATCH] Added ddjvu option to skip corrupted pages.
+
+---
+ tools/ddjvu.1 | 7 +++++++
+ tools/ddjvu.cpp | 49 +++++++++++++++++++++++++++++++++----------------
+ 2 files changed, 40 insertions(+), 16 deletions(-)
+
+diff --git a/tools/ddjvu.1 b/tools/ddjvu.1
+index 29285c3..7d3d105 100644
+--- a/tools/ddjvu.1
++++ b/tools/ddjvu.1
+@@ -178,6 +178,13 @@ select specific layers of a DjVu image.
+ These modes can fail if the DjVu image does
+ not contain the selected layer.
+ .RE
++.TP
++.BI "-skip"
++Instead of aborting when encountering a corrupted page,
++this option causes
++.BR ddjvu
++to simply skip the corrupted page and continue with the next.
++This is useful for processing certain damaged files.
+
+ .SH RESOLUTION OPTIONS
+ The following options control the resolution of the output image.
+diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
+index 981a270..b9cb038 100644
+--- a/tools/ddjvu.cpp
++++ b/tools/ddjvu.cpp
+@@ -132,6 +132,7 @@ ddjvu_rect_t info_size;
+ ddjvu_rect_t info_segment;
+ const char *inputfilename = 0;
+ const char *outputfilename = 0;
++int flag_skip_corrupted = 0;
+
+ #if HAVE_TIFF2PDF
+ char *tempfilename = 0;
+@@ -164,7 +165,6 @@ handle(int wait)
+ if (msg->m_error.filename)
+ fprintf(stderr,"ddjvu: '%s:%d'\n",
+ msg->m_error.filename, msg->m_error.lineno);
+- exit(10);
+ default:
+ break;
+ }
+@@ -554,8 +554,16 @@ dopage(int pageno)
+ while (! ddjvu_page_decoding_done(page))
+ handle(TRUE);
+ if (ddjvu_page_decoding_error(page))
+- die(i18n("Cannot decode page %d."), pageno);
+-
++ {
++ handle(FALSE);
++ fprintf(stderr,"ddjvu: ");
++ fprintf(stderr,i18n("Cannot decode page %d."), pageno);
++ fprintf(stderr,"\n");
++ if (flag_skip_corrupted)
++ return;
++ else
++ exit(10);
++ }
+ timingdata[1] = ticks();
+ /* Open files */
+ if (flag_format == 't')
+@@ -753,19 +761,20 @@ usage()
+ i18n("DjVu decompression utility\n\n"
+ "Usage: ddjvu [options] [<djvufile> [<outputfile>]]\n\n"
+ "Options:\n"
+- " -verbose Prints various informational messages.\n"
+- " -format=FMT Selects output format: pbm,pgm,ppm,pnm,rle,tiff.\n"
+- " -scale=N Selects display scale.\n"
+- " -size=WxH Selects size of rendered image.\n"
+- " -subsample=N Selects direct subsampling factor.\n"
+- " -aspect=no Authorizes aspect ratio changes\n"
+- " -segment=WxH+X+Y Selects which segment of the rendered image\n"
+- " -mode=black Renders a meaningful bitonal image.\n"
+- " -mode=mask Only renders the mask layer.\n"
+- " -mode=foreground Only renders the foreground layer.\n"
+- " -mode=background Only renders the background layer.\n"
+- " -page=PAGESPEC Selects page(s) to be decoded.\n"
+- " -quality=QUALITY Specifies jpeg quality for lossy tiff output.\n"
++ " -verbose Print various informational messages.\n"
++ " -format=FMT Select output format: pbm,pgm,ppm,pnm,rle,tiff.\n"
++ " -scale=N Select display scale.\n"
++ " -size=WxH Select size of rendered image.\n"
++ " -subsample=N Select direct subsampling factor.\n"
++ " -aspect=no Authorize aspect ratio changes\n"
++ " -segment=WxH+X+Y Select which segment of the rendered image\n"
++ " -mode=black Render a meaningful bitonal image.\n"
++ " -mode=mask Only render the mask layer.\n"
++ " -mode=foreground Only render the foreground layer.\n"
++ " -mode=background Only render the background layer.\n"
++ " -page=PAGESPEC Select page(s) to be decoded.\n"
++ " -skip Skip corrupted pages instead of aborting.\n"
++ " -quality=QUALITY Specify jpeg quality for lossy tiff output.\n"
+ "\n"
+ "If <outputfile> is a single dash or omitted, the decompressed image\n"
+ "is sent to the standard output. If <djvufile> is a single dash or\n"
+@@ -846,6 +855,12 @@ parse_option(int argc, char **argv, int i)
+ die(i18n(errarg), opt);
+ flag_verbose = 1;
+ }
++ if (!strcmp(opt,"skip"))
++ {
++ if (arg)
++ die(i18n(errarg), opt);
++ flag_skip_corrupted = 1;
++ }
+ else if (!strcmp(opt,"scale"))
+ {
+ if (!arg)
+@@ -1012,6 +1027,8 @@ main(int argc, char **argv)
+ die(i18n("Cannot open djvu document '%s'."), inputfilename);
+ while (! ddjvu_document_decoding_done(doc))
+ handle(TRUE);
++ if (ddjvu_document_decoding_error(doc))
++ die(i18n("Cannot decode document."));
+
+ /* Process all pages */
+ i = ddjvu_document_get_pagenum(doc);
+--
+1.7.4.1
+
+From 6a6e6a047b41a431cfc091bd71fcad554fd79437 Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Mon, 30 May 2011 18:52:33 -0700
+Subject: [PATCH] Added option -o outputfile to djvudump.
+
+---
+ tools/djvudump.1 | 2 +-
+ tools/djvudump.cpp | 34 +++++++++++++++++++++++++---------
+ 2 files changed, 26 insertions(+), 10 deletions(-)
+
+diff --git a/tools/djvudump.1 b/tools/djvudump.1
+index c86b7d5..e39a318 100644
+--- a/tools/djvudump.1
++++ b/tools/djvudump.1
+@@ -27,7 +27,7 @@
+ djvudump \- Display internal structure of DjVu files.
+
+ .SH SYNOPSIS
+-.BI "djvudump " "djvufiles" "..."
++.BI "djvudump [-o " "outputfile" "] " "djvufiles" "..."
+
+ .SH DESCRIPTION
+ Program
+diff --git a/tools/djvudump.cpp b/tools/djvudump.cpp
+index 2dddbdf..6daaf2c 100644
+--- a/tools/djvudump.cpp
++++ b/tools/djvudump.cpp
+@@ -122,6 +122,9 @@ xxx
+ #include <stddef.h>
+ #include <stdlib.h>
+
++const char *outputfile = 0;
++FILE *outputf = stdout;
++
+ void
+ display(const GURL &url)
+ {
+@@ -134,7 +137,7 @@ display(const GURL &url)
+ obs->seek(0);
+ obs->readall(buf, size);
+ GNativeString ns = str;
+- fputs((const char*)ns, stdout);
++ fputs((const char*)ns, outputf);
+ }
+
+
+@@ -146,7 +149,7 @@ usage()
+ "DJVUDUMP --- DjVuLibre-" DJVULIBRE_VERSION "\n"
+ #endif
+ "Describes DjVu and IFF85 files\n\n"
+- "Usage: djvudump <iff_filenames>\n" );
++ "Usage: djvudump [-o outputfile] <iff_filenames>\n" );
+ exit(1);
+ }
+
+@@ -156,24 +159,37 @@ main(int argc, char **argv)
+ setlocale(LC_ALL,"");
+ setlocale(LC_NUMERIC,"C");
+ djvu_programname(argv[0]);
+- GArray<GUTF8String> dargv(0,argc-1);
++ // get output file name
++ if (argc>2 && !strcmp(argv[1],"-o"))
++ {
++ outputfile = argv[2];
++ argv += 2;
++ argc -= 2;
++ }
++ // convert iff file name
++ GArray<GUTF8String> dargv(0, argc-1);
+ for(int i=0;i<argc;++i)
+ dargv[i]=GNativeString(argv[i]);
++ if (argc <= 1)
++ usage();
++ if (outputfile && !(outputf = fopen(outputfile,"w")))
++ {
++ DjVuPrintErrorUTF8("djvudump: Cannot open output file.\n");
++ exit(1);
++ }
+ G_TRY
+ {
+- if (argc<=1)
+- usage();
+ for (int i=1; i<argc; i++)
+- {
++ {
+ const GURL::Filename::UTF8 url(dargv[i]);
+ display(url);
+- }
++ }
+ }
+ G_CATCH(ex)
+- {
++ {
+ ex.perror();
+ exit(1);
+- }
++ }
+ G_ENDCATCH;
+ return 0;
+ }
+--
+1.7.4.1
+
+From 6db359d1ad5e7e863fac53301e7ff884cfe44423 Mon Sep 17 00:00:00 2001
+From: Bill C Riemers <briemers@redhat.com>
+Date: Thu, 2 Jun 2011 13:17:27 -0400
+Subject: [PATCH] Correct error copying an error in the annotation class of assigning a tempory
+ GUTF8String directly to a const char *.
+
+---
+ libdjvu/DjVuAnno.cpp | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libdjvu/DjVuAnno.cpp b/libdjvu/DjVuAnno.cpp
+index 6ca5b4e..e2a9108 100644
+--- a/libdjvu/DjVuAnno.cpp
++++ b/libdjvu/DjVuAnno.cpp
+@@ -261,7 +261,8 @@ GLObject::print(ByteStream & str, int compact, int indent, int * cur_pos) const
+ to_print=buffer.format("%d",number);
+ break;
+ case STRING:
+- to_print=make_c_string(string);
++ buffer=make_c_string(string);
++ to_print=(const char *)buffer;
+ break;
+ case SYMBOL:
+ to_print=buffer.format("%s",(const char *)symbol);
+--
+1.7.4.1
+
+From 2b26415c3c46ffb7532ca250990668564be62d39 Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Thu, 2 Jun 2011 09:48:49 -0700
+Subject: [PATCH] Corrected polarity of xmp annotation saving
+
+---
+ libdjvu/DjVuAnno.cpp | 19 ++++++++++---------
+ 1 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/libdjvu/DjVuAnno.cpp b/libdjvu/DjVuAnno.cpp
+index e2a9108..8e16dd8 100644
+--- a/libdjvu/DjVuAnno.cpp
++++ b/libdjvu/DjVuAnno.cpp
+@@ -254,25 +254,24 @@ GLObject::print(ByteStream & str, int compact, int indent, int * cur_pos) const
+ if (!cur_pos) { cur_pos = &local_cur_pos; }
+
+ GUTF8String buffer;
+- const char * to_print=0;
+ switch(type)
+ {
+ case NUMBER:
+- to_print=buffer.format("%d",number);
++ buffer.format("%d",number);
+ break;
+ case STRING:
+- buffer=make_c_string(string);
+- to_print=(const char *)buffer;
++ buffer = make_c_string(string);
+ break;
+ case SYMBOL:
+- to_print=buffer.format("%s",(const char *)symbol);
++ buffer.format("%s",(const char *)symbol);
+ break;
+ case LIST:
+- to_print=buffer.format("(%s",(const char *)name);
++ buffer.format("(%s",(const char *)name);
+ break;
+ case INVALID:
+ break;
+ }
++ const char * to_print = (const char*)buffer;
+ if (!compact && *cur_pos+strlen(to_print)>70)
+ {
+ char ch='\n';
+@@ -1375,7 +1374,7 @@ DjVuANT::encode_raw(void) const
+ }
+ //*** XMP Metadata
+ del_all_items(XMP_TAG, parser);
+- if (!xmpmetadata)
++ if (!!xmpmetadata)
+ {
+ GUTF8String mdatabuffer("(");
+ mdatabuffer += XMP_TAG;
+@@ -1385,8 +1384,10 @@ DjVuANT::encode_raw(void) const
+ //*** Mapareas
+ del_all_items(GMapArea::MAPAREA_TAG, parser);
+ for(GPosition pos=map_areas;pos;++pos)
+- parser.parse(map_areas[pos]->print());
+-
++ {
++ GUTF8String mapareabuffer = map_areas[pos]->print();
++ parser.parse(mapareabuffer);
++ }
+ GP<ByteStream> gstr=ByteStream::create();
+ ByteStream &str=*gstr;
+ parser.print(str, 1);
+--
+1.7.4.1
+
+From 65600b5801d11ff8ca8db3a25bf004fc06f4515b Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Sat, 4 Jun 2011 15:29:18 -0700
+Subject: [PATCH] Eliminate warnings with gcc-4.6.0
+
+---
+ libdjvu/Arrays.cpp | 2 -
+ libdjvu/DjVuDocEditor.cpp | 37 +++++++++----------
+ libdjvu/GString.cpp | 44 ++++++++--------------
+ libdjvu/JPEGDecoder.cpp | 2 -
+ libdjvu/XMLParser.cpp | 7 +---
+ tools/ddjvu.cpp | 2 +-
+ tools/jb2cmp/patterns.cpp | 87 +-------------------------------------------
+ tools/tiff2pdf.c | 9 ++---
+ 8 files changed, 40 insertions(+), 150 deletions(-)
+
+diff --git a/libdjvu/Arrays.cpp b/libdjvu/Arrays.cpp
+index c4f74ca..6c7f23a 100644
+--- a/libdjvu/Arrays.cpp
++++ b/libdjvu/Arrays.cpp
+@@ -239,9 +239,7 @@ ArrayRep::ins(int n, const void * what, unsigned int howmany)
+ copy(ndata, lobound-minlo, hibound-minlo,
+ data, lobound-minlo, hibound-minlo);
+ destroy(data, lobound-minlo, hibound-minlo);
+- void *tmp=data;
+ data=ndata;
+- tmp=data;
+ maxhi = nmaxhi;
+ }
+
+diff --git a/libdjvu/DjVuDocEditor.cpp b/libdjvu/DjVuDocEditor.cpp
+index 2247e40..f1d8b0d 100644
+--- a/libdjvu/DjVuDocEditor.cpp
++++ b/libdjvu/DjVuDocEditor.cpp
+@@ -555,27 +555,24 @@ DjVuDocEditor::insert_file(const GURL &file_url, bool is_page,
+ can_compress_flag);
+ }
+
+- // Oh. It does exist... Check that it has IFF structure
++ // Oh. It does exist... Check that it has IFF structure
+ {
+- const GP<IFFByteStream> giff(
+- IFFByteStream::create(file_pool->get_stream()));
+- IFFByteStream &iff=*giff;
+- GUTF8String chkid;
+-
+- int length;
+- length=iff.get_chunk(chkid);
+- if (chkid!="FORM:DJVI" && chkid!="FORM:DJVU" &&
+- chkid!="FORM:BM44" && chkid!="FORM:PM44")
+- G_THROW( ERR_MSG("DjVuDocEditor.not_1_page") "\t"+file_url.get_string());
+-
+- // Wonderful. It's even a DjVu file. Scan for NDIR chunks.
+- // If NDIR chunk is found, ignore the file
+- while(iff.get_chunk(chkid))
+- {
+- if (chkid=="NDIR")
+- return false;
+- iff.close_chunk();
+- }
++ const GP<IFFByteStream> giff(
++ IFFByteStream::create(file_pool->get_stream()));
++ IFFByteStream &iff=*giff;
++ GUTF8String chkid;
++ if (chkid!="FORM:DJVI" && chkid!="FORM:DJVU" &&
++ chkid!="FORM:BM44" && chkid!="FORM:PM44")
++ G_THROW( ERR_MSG("DjVuDocEditor.not_1_page") "\t"
++ + file_url.get_string());
++ // Wonderful. It's even a DjVu file. Scan for NDIR chunks.
++ // If NDIR chunk is found, ignore the file
++ while(iff.get_chunk(chkid))
++ {
++ if (chkid=="NDIR")
++ return false;
++ iff.close_chunk();
++ }
+ }
+ return insert_file(file_pool,file_url,is_page,file_pos,name2id,source);
+ }
+diff --git a/libdjvu/GString.cpp b/libdjvu/GString.cpp
+index 350b11b..ed92a7f 100644
+--- a/libdjvu/GString.cpp
++++ b/libdjvu/GString.cpp
+@@ -643,26 +643,22 @@ GBaseString::UTF8ToNative(
+ const char *source=(*this);
+ GP<GStringRep> retval;
+ if(source && source[0])
+- {
+-#if DO_CHANGELOCALE
+- GUTF8String lc_ctype(setlocale(LC_CTYPE,0));
+-#endif
+- bool repeat;
+- for(repeat=!currentlocale;;repeat=false)
+ {
+- retval=(*this)->toNative((GStringRep::EscapeMode)escape);
+ #if DO_CHANGELOCALE
+- if (!repeat || retval || (lc_ctype == setlocale(LC_CTYPE,"")))
++ GUTF8String lc_ctype(setlocale(LC_CTYPE,0));
++ bool repeat;
++ for(repeat=!currentlocale;;repeat=false)
++ {
+ #endif
+- break;
+- }
++ retval=(*this)->toNative((GStringRep::EscapeMode)escape);
+ #if DO_CHANGELOCALE
+- if(!repeat)
+- {
++ if (!repeat || retval || (lc_ctype == setlocale(LC_CTYPE,"")))
++ break;
++ }
++ if(!repeat)
+ setlocale(LC_CTYPE,(const char *)lc_ctype);
+- }
+ #endif
+- }
++ }
+ return GNativeString(retval);
+ }
+
+@@ -697,27 +693,19 @@ GBaseString::NativeToUTF8(void) const
+ const char *source=(*this);
+ #if DO_CHANGELOCALE
+ GUTF8String lc_ctype=setlocale(LC_CTYPE,0);
+-#endif
+ bool repeat;
+ for(repeat=true;;repeat=false)
+- {
+- if( (retval=GStringRep::NativeToUTF8(source)) )
+ {
+- if(GStringRep::cmp(retval->toNative(),source))
+- {
+- retval=GStringRep::UTF8::create((unsigned int)0);
+- }
+- }
+-#if DO_CHANGELOCALE
+- if(!repeat || retval || (lc_ctype == setlocale(LC_CTYPE,"")))
+ #endif
+- break;
+- }
++ if( (retval=GStringRep::NativeToUTF8(source)) )
++ if(GStringRep::cmp(retval->toNative(),source))
++ retval=GStringRep::UTF8::create((unsigned int)0);
+ #if DO_CHANGELOCALE
++ if(!repeat || retval || (lc_ctype == setlocale(LC_CTYPE,"")))
++ break;
++ }
+ if(!repeat)
+- {
+ setlocale(LC_CTYPE,(const char *)lc_ctype);
+- }
+ #endif
+ }
+ return GUTF8String(retval);
+diff --git a/libdjvu/JPEGDecoder.cpp b/libdjvu/JPEGDecoder.cpp
+index cb7aa97..f22f77a 100644
+--- a/libdjvu/JPEGDecoder.cpp
++++ b/libdjvu/JPEGDecoder.cpp
+@@ -153,7 +153,6 @@ JPEGDecoder::decode(ByteStream & bs,GPixmap &pix)
+
+ JSAMPARRAY buffer; /* Output row buffer */
+ int row_stride; /* physical row width in output buffer */
+- int full_buf_size;
+ int isGrey,i;
+
+ cinfo.err = jpeg_std_error(&jerr.pub);
+@@ -184,7 +183,6 @@ JPEGDecoder::decode(ByteStream & bs,GPixmap &pix)
+
+ /* JSAMPLEs per row in output buffer */
+ row_stride = cinfo.output_width * cinfo.output_components;
+- full_buf_size = row_stride * cinfo.output_height;
+
+ /* Make a one-row-high sample array that will go away when done with image */
+ buffer = (*cinfo.mem->alloc_sarray)
+diff --git a/libdjvu/XMLParser.cpp b/libdjvu/XMLParser.cpp
+index 7da923a..026b27d 100644
+--- a/libdjvu/XMLParser.cpp
++++ b/libdjvu/XMLParser.cpp
+@@ -646,17 +646,12 @@ lt_XMLParser::Impl::parse(const lt_XMLTags &tags, GURL *pdjvufile)
+ GPosition datapos=args.contains("data");
+ if(datapos)
+ {
+- bool isDjVuType=false;
+ GPosition typePos(args.contains("type"));
+ if(typePos)
+- {
+- if(args[typePos] != mimetype)
+ {
+- // DjVuPrintErrorUTF8("Ignoring %s Object tag\n",mimetype);
++ if(args[typePos] != mimetype)
+ continue;
+ }
+- isDjVuType=true;
+- }
+ const GURL url = (pdjvufile) ? *pdjvufile
+ : GURL::UTF8(args[datapos],
+ (args[datapos][0] == '/') ? codebase.base() : codebase);
+diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
+index b9cb038..3b4ce16 100644
+--- a/tools/ddjvu.cpp
++++ b/tools/ddjvu.cpp
+@@ -855,7 +855,7 @@ parse_option(int argc, char **argv, int i)
+ die(i18n(errarg), opt);
+ flag_verbose = 1;
+ }
+- if (!strcmp(opt,"skip"))
++ else if (!strcmp(opt,"skip"))
+ {
+ if (arg)
+ die(i18n(errarg), opt);
+diff --git a/tools/jb2cmp/patterns.cpp b/tools/jb2cmp/patterns.cpp
+index e456902..b31cf4e 100644
+--- a/tools/jb2cmp/patterns.cpp
++++ b/tools/jb2cmp/patterns.cpp
+@@ -303,11 +303,8 @@ static int32 distance_by_pixeldiff_functions(Image *i1, Image *i2,
+ int32 (*compare_row)(byte *, byte *, int32),
+ int32 (*compare_with_white)(byte *, int32), int32 ceiling)
+ {
+- byte **p1, **p2;
+ int32 w1, w2, h1, h2;
+ int32 shift_x, shift_y; /* of i1's coordinate system with respect to i2 */
+- /*int32 s = 0, i, i_start, i_cap;
+- int32 right_margin_start, right_margin_width;*/
+
+ /* make i1 to be narrower than i2 */
+ if (i1->width > i2->width)
+@@ -317,8 +314,8 @@ static int32 distance_by_pixeldiff_functions(Image *i1, Image *i2,
+ i2 = img;
+ }
+
+- w1 = i1->width; h1 = i1->height; p1 = i1->pixels;
+- w2 = i2->width; h2 = i2->height; p2 = i2->pixels;
++ w1 = i1->width; h1 = i1->height;
++ w2 = i2->width; h2 = i2->height;
+
+ /* (shift_x, shift_y) */
+ /* is what should be added to i1's coordinates to get i2's coordinates. */
+@@ -339,86 +336,6 @@ static int32 distance_by_pixeldiff_functions(Image *i1, Image *i2,
+
+ return distance_by_pixeldiff_functions_by_shift(
+ i1, i2, compare_row, compare_with_white, ceiling, shift_x, shift_y);
+-
+-/* FIXME */
+-#if 0
+- /* Compute difference in the non-overlapping top margin */
+-
+- if (shift_y < 0)
+- {
+- /* i1 has top rows not covered by i2 */
+- i_cap = -shift_y;
+- for (i = 0; i < i_cap; i++)
+- {
+- assert(i >= 0 && i < h1);
+- s += compare_with_white(p1[i], w1);
+- if (s > ceiling) return maxint;
+- }
+- i_start = i_cap; /* topmost overlapping row in i1's coords */
+- }
+- else
+- {
+- /* i2 has top rows not covered by i1 */
+- for (i = 0; i < shift_y; i++)
+- {
+- assert(i >= 0 && i < h2);
+- s += compare_with_white(p2[i], w2);
+- if (s > ceiling) return maxint;
+- }
+- i_start = 0;
+- }
+-
+- /* Compute difference in the overlapping area */
+-
+- i_cap = h2 - shift_y;
+- if (h1 < i_cap) i_cap = h1;
+-
+- right_margin_start = shift_x + w1;
+- right_margin_width = w2 - right_margin_start;
+-
+- for (i = i_start; i < i_cap; i++) /* i is a coordinate in i1 system */
+- {
+- int32 y = i + shift_y; /* same row coordinate in i2 system */
+- assert(y >= 0 && y < h2);
+- s += compare_with_white(p2[y], shift_x);
+- if (s > ceiling) return maxint;
+- assert(i >= 0 && i < h1);
+- assert(shift_x + w1 <= w2);
+- assert(i < h1);
+- s += compare_row(p2[y] + shift_x, p1[i], w1);
+- if (s > ceiling) return maxint;
+- s += compare_with_white(p2[y] + right_margin_start, right_margin_width);
+- if (s > ceiling) return maxint;
+- }
+-
+-
+- /* Compute difference in the non-overlapping bottom margin */
+-
+- if (i_cap == h1)
+- {
+- /* i2 has bottom rows not covered by i1 */
+- i_start = i_cap + shift_y;
+- for (i = i_start; i < h2; i++)
+- {
+- assert(i >= 0 && i < h2);
+- s += compare_with_white(p2[i], w2);
+- if (s > ceiling) return maxint;
+- }
+- }
+- else
+- {
+- /* i1 has bottom rows not covered by i2 */
+- i_start = i_cap;
+- for (i = i_cap; i < h1; i++)
+- {
+- assert(i >= 0 && i < h1);
+- s += compare_with_white(p1[i], w1);
+- if (s > ceiling) return maxint;
+- }
+- }
+-
+- return s;
+-#endif
+ }
+
+ #endif
+diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c
+index 36949f1..2db8703 100644
+--- a/tools/tiff2pdf.c
++++ b/tools/tiff2pdf.c
+@@ -721,7 +721,6 @@ tiff2pdf(TIFF *input, FILE *outputfile, int argc, const char **argv)
+ const char *outfilename = "<null>";
+ T2P *t2p = NULL;
+ TIFF *output = NULL;
+- tsize_t written=0;
+ int c;
+
+ /* T2P */
+@@ -874,7 +873,7 @@ tiff2pdf(TIFF *input, FILE *outputfile, int argc, const char **argv)
+ TIFFSeekFile(output, (toff_t) 0, SEEK_SET);
+
+ /* Write */
+- written = t2p_write_pdf(t2p, input, output);
++ t2p_write_pdf(t2p, input, output);
+ if(t2p->t2p_error != 0){
+ TIFFError(TIFF2PDF_MODULE, "An error occurred creating output PDF file");
+ goto fail;
+@@ -2633,7 +2632,6 @@ static tsize_t t2p_readwrite_pdf_image_tile(T2P* t2p, TIFF* input, TIFF* output,
+ tsize_t read=0;
+ uint16 i=0;
+ ttile_t tilecount=0;
+- tsize_t tilesize=0;
+ ttile_t septilecount=0;
+ tsize_t septilesize=0;
+ #ifdef JPEG_SUPPORT
+@@ -2819,7 +2817,6 @@ static tsize_t t2p_readwrite_pdf_image_tile(T2P* t2p, TIFF* input, TIFF* output,
+ if(t2p->pdf_sample == T2P_SAMPLE_PLANAR_SEPARATE_TO_CONTIG){
+ septilesize=TIFFTileSize(input);
+ septilecount=TIFFNumberOfTiles(input);
+- tilesize=septilesize*t2p->tiff_samplesperpixel;
+ tilecount=septilecount/t2p->tiff_samplesperpixel;
+ buffer = (unsigned char*) _TIFFmalloc(t2p->tiff_datasize);
+ if(buffer==NULL){
+@@ -3802,7 +3799,6 @@ static tsize_t t2p_write_pdf_info(T2P* t2p, TIFF* input, TIFF* output){
+ tsize_t written=0;
+ char* info;
+ char buffer[512];
+- int buflen=0;
+
+ if(t2p->pdf_datetime==NULL){
+ t2p_pdf_tifftime(t2p, input);
+@@ -3815,7 +3811,8 @@ static tsize_t t2p_write_pdf_info(T2P* t2p, TIFF* input, TIFF* output){
+ }
+ written += TIFFWriteFile(output, (tdata_t) "\r/Producer ", 11);
+ _TIFFmemset((tdata_t)buffer, 0x00, 512);
+- buflen=sprintf(buffer, "libtiff / tiff2pdf - %d / %s", TIFFLIB_VERSION, T2P_VERSION);
++ sprintf(buffer, "libtiff / tiff2pdf - %d / %s",
++ TIFFLIB_VERSION, T2P_VERSION);
+ written += t2p_write_pdf_string(buffer, output);
+ written += TIFFWriteFile(output, (tdata_t) "\r", 1);
+ if(t2p->pdf_creator != NULL){
+--
+1.7.4.1
+
+From 5b3d074c2b315e7339ce279c559c3a99f26bef6a Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Sat, 4 Jun 2011 17:37:00 -0700
+Subject: [PATCH] Fix MMX code when using gcc-4.6
+
+Fix MMX macros
+Enable MMX on x86_64
+---
+ libdjvu/MMX.cpp | 17 ++++++++++++++++-
+ libdjvu/MMX.h | 11 ++++++-----
+ tools/ddjvu.cpp | 1 -
+ 3 files changed, 22 insertions(+), 7 deletions(-)
+
+diff --git a/libdjvu/MMX.cpp b/libdjvu/MMX.cpp
+index 528dab6..e70fdd8 100644
+--- a/libdjvu/MMX.cpp
++++ b/libdjvu/MMX.cpp
+@@ -167,8 +167,23 @@ MMXControl::enable_mmx()
+ : "=m" (cpuflags) :
+ : "eax","ecx","edx");
+ #endif
++#if defined(MMX) && defined(__GNUC__) && defined(__x86_64__)
++ // Detection of MMX for GCC
++ __asm__ volatile (// Check that CR0:EM is clear
++ "xorl %%edx,%%edx\n\t"
++ "smsw %%ax\n\t"
++ "andl $4,%%eax\n\t"
++ "jnz 1f\n\t"
++ // Execute CPUID
++ "movl $1,%%eax\n\t"
++ "cpuid\n"
++ // Finish
++ "1:\tmovl %%edx, %0"
++ : "=m" (cpuflags) :
++ : "eax","ebx","ecx","edx");
++#endif
+ #if defined(MMX) && defined(_MSC_VER) && defined(_M_IX86)
+- // Detection of MMX for MSVC
++ // Detection of MMX for MSVC 32 bits
+ __asm { pushfd
+ pop ecx
+ xor edx,edx
+diff --git a/libdjvu/MMX.h b/libdjvu/MMX.h
+index b0af5e5..f8780af 100644
+--- a/libdjvu/MMX.h
++++ b/libdjvu/MMX.h
+@@ -143,17 +143,18 @@ class MMXControl
+
+ #ifndef NO_MMX
+
+-#if defined(__GNUC__) && defined(__i386__)
++#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
++typedef struct{ char c[8]; } MMX_t;
+ #define MMXemms \
+ __asm__ volatile("emms" : : : "memory" )
+ #define MMXrr(op,src,dst) \
+- __asm__ volatile( #op " %%" #src ",%%" #dst : : : "memory")
++ __asm__ volatile( #op " %%" #src ",%%" #dst : : : "memory" )
+ #define MMXir(op,imm,dst) \
+- __asm__ volatile( #op " %0,%%" #dst : : "i" (imm) : "memory")
++ __asm__ volatile( #op " %0,%%" #dst : : "i" (imm) : "memory" )
+ #define MMXar(op,addr,dst) \
+- __asm__ volatile( #op " %0,%%" #dst : : "m" (*(addr)) : "memory")
++ __asm__ volatile( #op " %0,%%" #dst : : "m" (*(MMX_t*)(addr)) : "memory" )
+ #define MMXra(op,src,addr) \
+- __asm__ volatile( #op " %%" #src ",%0" : : "m" (*(addr)) : "memory")
++ __asm__ volatile( #op " %%" #src ",%0" : "=m" (*(MMX_t*)(addr)) : : "memory")
+ #define MMX 1
+ #endif
+
+diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
+index 3b4ce16..216c6cb 100644
+--- a/tools/ddjvu.cpp
++++ b/tools/ddjvu.cpp
+@@ -846,7 +846,6 @@ parse_option(int argc, char **argv, int i)
+ arg = opt;
+ opt = "subsample";
+ }
+-
+ /* Parse options */
+ if (!strcmp(opt,"v") ||
+ !strcmp(opt,"verbose"))
+--
+1.7.4.1
+
+From fbed8e51e5970b12ce36afb0dec8c4e02992c0f8 Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Thu, 9 Jun 2011 14:37:52 -0700
+Subject: [PATCH] Fixed regression in djvm.
+
+---
+ libdjvu/DjVuDocEditor.cpp | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libdjvu/DjVuDocEditor.cpp b/libdjvu/DjVuDocEditor.cpp
+index f1d8b0d..baeb7dd 100644
+--- a/libdjvu/DjVuDocEditor.cpp
++++ b/libdjvu/DjVuDocEditor.cpp
+@@ -561,6 +561,7 @@ DjVuDocEditor::insert_file(const GURL &file_url, bool is_page,
+ IFFByteStream::create(file_pool->get_stream()));
+ IFFByteStream &iff=*giff;
+ GUTF8String chkid;
++ iff.get_chunk(chkid);
+ if (chkid!="FORM:DJVI" && chkid!="FORM:DJVU" &&
+ chkid!="FORM:BM44" && chkid!="FORM:PM44")
+ G_THROW( ERR_MSG("DjVuDocEditor.not_1_page") "\t"
+--
+1.7.4.1
+
+From f63327438954b8831a1a9f43afc8b6d16e1d3baf Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Wed, 15 Jun 2011 00:05:50 -0700
+Subject: [PATCH] Encode oblique text as separate lines.
+
+---
+ tools/csepdjvu.cpp | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
+index d5203d5..08f7a27 100644
+--- a/tools/csepdjvu.cpp
++++ b/tools/csepdjvu.cpp
+@@ -1288,7 +1288,7 @@ Comments::textmark(GP<TxtMark> mark)
+ int shx = (mark->x - lastx) * 100 / fontsize;
+ int shy = (mark->y - lasty) * 100 / fontsize;
+ int inter = dirx * shx + diry * shy;
+- if ( (dirx == lastdirx) && (diry == lastdiry) &&
++ if ( (dirx || diry) && (dirx == lastdirx) && (diry == lastdiry) &&
+ (inter > -150) && (inter < 300) &&
+ abs(diry * shx + dirx * shy) < 80 )
+ mark->inter = inter;
+--
+1.7.4.1
+
+From ea9fd2acab2e298ba721eb79f5026d34e6ef141f Mon Sep 17 00:00:00 2001
+From: Barak A. Pearlmutter <barak+git@cs.nuim.ie>
+Date: Wed, 22 Jun 2011 11:21:41 +0100
+Subject: [PATCH] consistent prototype for ddjvu_anno_get_xmp
+
+---
+ libdjvu/ddjvuapi.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libdjvu/ddjvuapi.h b/libdjvu/ddjvuapi.h
+index 841f223..14b63eb 100644
+--- a/libdjvu/ddjvuapi.h
++++ b/libdjvu/ddjvuapi.h
+@@ -1619,7 +1619,7 @@ ddjvu_anno_get_metadata(miniexp_t annotations, miniexp_t key);
+ Returns zero if no such key is present. */
+
+ DDJVUAPI const char *
+-ddjvu_anno_get_xmp(miniexp_t annotations, miniexp_t xmp);
++ddjvu_anno_get_xmp(miniexp_t annotations);
+
+
+ /* -------------------------------------------------- */
+--
+1.7.4.1
+
+From 701d1261493e175955aac97921949f4e4241750d Mon Sep 17 00:00:00 2001
+From: Leon Bottou <leon@bottou.org>
+Date: Sun, 11 Sep 2011 09:59:26 -0700
+Subject: [PATCH] Fixed typo in man page.
+
+---
+ tools/ddjvu.1 | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/tools/ddjvu.1 b/tools/ddjvu.1
+index 7d3d105..cbb8307 100644
+--- a/tools/ddjvu.1
++++ b/tools/ddjvu.1
+@@ -66,7 +66,7 @@ and
+ .BR "ppm"
+ respectively produce a Portable Bitmap (PBM),
+ Portable Graymap (PGM),
+-or Portable Pixmap (PGM) file.
++or Portable Pixmap (PPM) file.
+ Format
+ .B "pnm"
+ produces a PBM, PGM, or PPM
+--
+1.7.4.1
+
diff --git a/extra/dmapi/PKGBUILD b/extra/dmapi/PKGBUILD
new file mode 100644
index 000000000..c7b6e6683
--- /dev/null
+++ b/extra/dmapi/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 137722 2011-09-10 14:14:07Z pierre $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=dmapi
+pkgver=2.2.10
+pkgrel=3
+pkgdesc="Data migration API"
+arch=('i686' 'x86_64' 'mips64el')
+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 $srcdir/dmapi-$pkgver
+ [ "$CARCH" = "x86_64" ] && export CFLAGS="$CLFAGS -fPIC"
+ export INSTALL_USER=root
+ export INSTALL_GROUP=root
+ export DEBUG=-DNDEBUG
+ autoconf
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/dmapi-$pkgver
+ make DIST_ROOT=$pkgdir install install-dev
+ # 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..0fa067a16
--- /dev/null
+++ b/extra/dmidecode/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143727 2011-11-28 17:28:42Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dmidecode
+pkgver=2.11
+pkgrel=2
+pkgdesc="Desktop Management Interface table related utilities"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=/usr DESTDIR=${pkgdir} install
+}
diff --git a/extra/dnsmasq/PKGBUILD b/extra/dnsmasq/PKGBUILD
new file mode 100644
index 000000000..d310e6c2a
--- /dev/null
+++ b/extra/dnsmasq/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 141089 2011-10-23 16:20:24Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Paul Mattal <paul@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=dnsmasq
+pkgver=2.59
+pkgrel=2.1
+pkgdesc="Lightweight, easy to configure DNS forwarder and DHCP server"
+url="http://www.thekelleys.org.uk/dnsmasq/doc.html"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('glibc' 'dbus-core')
+makedepends=('libcap>=2.16')
+install=$pkgname.install
+backup=('etc/dnsmasq.conf'
+ 'etc/conf.d/dnsmasq')
+source=("http://www.thekelleys.org.uk/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'dnsmasq.confd'
+ 'rc.dnsmasq'
+ 'dnsmasq.service')
+md5sums=('b5757ef2d7b651748eeebb88af29d7d6'
+ '66479e99123faeab83ebaed709ef95b5'
+ '9f180cc236808bbd02ca8652fd2e8217'
+ 'f329d86f8ba1cd85f9b6ee59e0ce3791')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # link against dbus
+ echo '#define HAVE_DBUS' >> src/config.h
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+
+ install -Dm755 "$srcdir"/rc.dnsmasq "$pkgdir"/etc/rc.d/dnsmasq
+ install -Dm644 "$srcdir"/dnsmasq.confd "$pkgdir/etc/conf.d/dnsmasq"
+
+ install -Dm644 "dbus/dnsmasq.conf" "$pkgdir"/etc/dbus-1/system.d/dnsmasq.conf
+ install -Dm644 "dnsmasq.conf.example" "$pkgdir"/etc/dnsmasq.conf
+ install -Dm644 "$srcdir/dnsmasq.service" "$pkgdir"/lib/systemd/system/dnsmasq.service
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/dnsmasq/dnsmasq.confd b/extra/dnsmasq/dnsmasq.confd
new file mode 100644
index 000000000..933b92850
--- /dev/null
+++ b/extra/dnsmasq/dnsmasq.confd
@@ -0,0 +1,9 @@
+#
+# runtime config for dnsmasq
+#
+
+# if unset, dnsmasq will run as nobody.
+DNSMASQ_USER=dnsmasq
+
+# other runtime options. treated as an array.
+DNSMASQ_OPTS=()
diff --git a/extra/dnsmasq/dnsmasq.install b/extra/dnsmasq/dnsmasq.install
new file mode 100644
index 000000000..c2edb7db5
--- /dev/null
+++ b/extra/dnsmasq/dnsmasq.install
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+add_dnsmasq_user() {
+ if ! getent passwd dnsmasq >/dev/null; then
+ useradd -r -d / -c 'dnsmasq daemon' -s /sbin/nologin dnsmasq
+ fi
+}
+
+post_install() {
+ add_dnsmasq_user
+}
+
+post_upgrade() {
+ add_dnsmasq_user
+}
+
+post_remove() {
+ if getent passwd dnsmasq >/dev/null; then
+ userdel dnsmasq
+ fi
+}
diff --git a/extra/dnsmasq/dnsmasq.service b/extra/dnsmasq/dnsmasq.service
new file mode 100644
index 000000000..b09cb24b9
--- /dev/null
+++ b/extra/dnsmasq/dnsmasq.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=A lightweight DHCP and caching DNS server
+
+[Service]
+Type=dbus
+BusName=uk.org.thekelleys.dnsmasq
+ExecStartPre=/usr/sbin/dnsmasq --test
+ExecStart=/usr/sbin/dnsmasq -k --enable-dbus --user=dnsmasq --pid-file
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-uk.org.thekelleys.dnsmasq
diff --git a/extra/dnsmasq/rc.dnsmasq b/extra/dnsmasq/rc.dnsmasq
new file mode 100755
index 000000000..0ce736ba9
--- /dev/null
+++ b/extra/dnsmasq/rc.dnsmasq
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/dnsmasq
+
+checkconfig() {
+ local testout
+
+ if ! testout=$(/usr/sbin/dnsmasq --test 2>&1); then
+ echo "$testout"
+ return 1
+ fi
+
+ return 0
+}
+
+pidfile=/run/dnsmasq.pid
+if [[ -r $pidfile ]]; then
+ read -r PID < "$pidfile"
+ if [[ ! -d /proc/$PID ]]; then
+ # stale pidfile
+ unset PID
+ rm -f "$pidfile"
+ fi
+fi
+
+case $1 in
+ start)
+ stat_busy "Starting DNS/DHCP daemon"
+ if [[ -z $PID ]] && checkconfig &&
+ /usr/sbin/dnsmasq "--user=${DNSMASQ_USER:-nobody}" \
+ "--pid-file=$pidfile" \
+ "${DNSMASQ_OPTS[@]}"; then
+ add_daemon dnsmasq
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DNS/DHCP daemon"
+ if [[ $PID ]] && kill "$PID" &> /dev/null; then
+ # dnsmasq doesn't clean up after itself
+ rm -f "$pidfile"
+ rm_daemon dnsmasq
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ checkconfig)
+ # diagnostics will be printed, with zero/non-zero exit
+ /usr/sbin/dnsmasq --test
+ ;;
+ *)
+ echo "usage: $0 <start|stop|restart|checkconfig>"
+esac
+
diff --git a/extra/docker/PKGBUILD b/extra/docker/PKGBUILD
new file mode 100644
index 000000000..6f1529084
--- /dev/null
+++ b/extra/docker/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 137718 2011-09-10 13:25:58Z pierre $
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=docker
+pkgver=1.5
+pkgrel=5
+pkgdesc="Docker is a docking application (WindowMaker dock app) which acts as a system tray for KDE and GNOME2."
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=$pkgdir/usr install
+}
diff --git a/extra/dosfstools/PKGBUILD b/extra/dosfstools/PKGBUILD
new file mode 100644
index 000000000..a34a02836
--- /dev/null
+++ b/extra/dosfstools/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 143546 2011-11-26 09:49:37Z tpowa $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=dosfstools
+pkgver=3.0.12
+pkgrel=1
+pkgdesc="DOS filesystem utilities"
+arch=(i686 x86_64 'mips64el')
+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=('5c7c2adac9eae4afbe1f16443142b566')
diff --git a/extra/dotconf/PKGBUILD b/extra/dotconf/PKGBUILD
new file mode 100644
index 000000000..7d58d2436
--- /dev/null
+++ b/extra/dotconf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 127711 2011-06-17 18:24:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Chris Brannon <cmbrannon@cox.net>
+
+pkgname=dotconf
+pkgver=1.3
+pkgrel=2
+pkgdesc='A C library for parsing configuration files'
+url="https://github.com/williamh/dotconf"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glibc')
+makedepends=('pkgconfig' 'findutils')
+license=('LGPL2.1')
+source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/williamh/${pkgname}/tarball/v${pkgver}")
+md5sums=('36bfdde245072fc2f4f5766b7db97c45')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}"/williamh-${pkgname}-4cd7b3a
+ autoreconf -i
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/williamh-${pkgname}-4cd7b3a
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD
new file mode 100644
index 000000000..be7a8e2b3
--- /dev/null
+++ b/extra/dovecot/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 142912 2011-11-18 08:18:50Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Paul Mattal <paul@mattal.com>
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+# Contributor: GARETTE Emmanuel <gnunux at laposte dot net>
+
+pkgname=dovecot
+pkgver=2.0.16
+pkgrel=1
+pkgdesc="An IMAP and POP3 server written with security primarily in mind"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dovecot.org/"
+license=("LGPL")
+depends=('krb5' '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=('e01a29a355afefcb9fb5f8b7a54e1a14'
+ '587159e84e2da6f83d70b3c706ba87cc')
+
+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
+}
diff --git a/extra/dovecot/dovecot.install b/extra/dovecot/dovecot.install
new file mode 100644
index 000000000..873b82e2f
--- /dev/null
+++ b/extra/dovecot/dovecot.install
@@ -0,0 +1,58 @@
+# 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/empty -u 76 -g dovecot dovecot &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "Dovecot user" -d /var/empty -u 76 -g dovecot -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/empty -u 74 -g dovenull dovenull &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "Dovecot user for completely untrustworthy processes" -d /var/empty -u 74 -g dovenull -r dovenull &> /dev/null
+ fi
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ 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
+ if [ "`vercmp $2 2.0.13-2`" -lt 0 ]; then
+ # to remove no more existant usersdirs simply remove the dovecot users and let them recreate later
+ userdel dovecot &> /dev/null
+ userdel dovenull &> /dev/null
+ fi
+ post_install $1
+}
+
+# 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..e8966bd55
--- /dev/null
+++ b/extra/dovecot/dovecot.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+daemon_name=dovecot
+
+. /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
+ #
+ 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
+ [[ -n $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/doxygen/PKGBUILD b/extra/doxygen/PKGBUILD
new file mode 100644
index 000000000..4dbdf8ecc
--- /dev/null
+++ b/extra/doxygen/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 144948 2011-12-11 16:47:15Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgbase=doxygen
+pkgname=('doxygen' 'doxygen-docs')
+pkgver=1.7.6.1
+pkgrel=1
+license=('GPL')
+arch=(i686 x86_64 'mips64el')
+url="http://www.doxygen.org/"
+makedepends=('gcc-libs' 'flex' 'qt' 'texlive-core' 'ghostscript' 'texlive-latexextra')
+source=(ftp://ftp.stack.nl/pub/users/dimitri/${pkgname}-${pkgver}.src.tar.gz)
+md5sums=('084f1db244b77b3abff335550ef8eec5')
+sha1sums=('6203d4423d12315f1094b56a4d7393347104bc4a')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+# mips64el doesn't have qt yet
+ [ "$CARCH" != "mips64el" ] && ./configure --prefix /usr --with-doxywizard #QTDIR=/usr
+ [ "$CARCH" = "mips64el" ] && ./configure --prefix /usr
+ make
+}
+
+package_doxygen() {
+ pkgdesc="A documentation system for C++, C, Java, IDL and PHP"
+ depends=('gcc-libs')
+ [ "$CARCH" = "mips64el" ] || \
+ 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/PKGBUILD b/extra/dssi/PKGBUILD
new file mode 100644
index 000000000..84a6bd436
--- /dev/null
+++ b/extra/dssi/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 140086 2011-10-06 09:24:49Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Pajaro
+
+pkgname=dssi
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="An API for audio processing plugins & softsynths with UIs"
+arch=(i686 x86_64 'mips64el')
+url="http://dssi.sourceforge.net/"
+license=('LGPL' 'BSD' 'custom')
+depends=('liblo' 'jack')
+makedepends=('ladspa' 'qt')
+optdepends=('qt: example plugins')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'license.txt')
+md5sums=('619ab73c883b02dc37ddb37001591f8b'
+ '258ca4d0ca28c5c4d4675147621fac18')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/license.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/dssi/license.txt b/extra/dssi/license.txt
new file mode 100644
index 000000000..ddef4f23b
--- /dev/null
+++ b/extra/dssi/license.txt
@@ -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/dvd+rw-tools/PKGBUILD b/extra/dvd+rw-tools/PKGBUILD
new file mode 100644
index 000000000..297eaa67f
--- /dev/null
+++ b/extra/dvd+rw-tools/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 137803 2011-09-11 11:04:53Z pierre $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=dvd+rw-tools
+pkgver=7.1
+pkgrel=4
+pkgdesc="dvd burning tools"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ 'dvd+rw-tools-7.0-dvddl.patch'
+ 'dvd+rw-tools-7.0-glibc2.6.90.patch'
+ 'dvd+rw-tools-7.0-wctomb.patch'
+ 'dvd+rw-tools-7.0-wexit.patch')
+md5sums=('8acb3c885c87f6838704a0025e435871'
+ '65d30aa98ff314f256d0a1afb9e3edf6'
+ '1be5401035ca850edb7e522f22aead4b'
+ '3ba1af063b30f942e1cd2004044702d3'
+ 'b2c66b6c6243b207fbe4f6ae34fa6cba')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # patches from Gentoo/Fedora
+ # see https://bugs.gentoo.org/257360, https://bugzilla.redhat.com/show_bug.cgi?id=426068
+ # and https://bugzilla.redhat.com/show_bug.cgi?id=243036
+ patch -p0 -i "${srcdir}/dvd+rw-tools-7.0-dvddl.patch"
+ patch -p1 -i "${srcdir}/dvd+rw-tools-7.0-glibc2.6.90.patch"
+ patch -p0 -i "${srcdir}/dvd+rw-tools-7.0-wctomb.patch"
+ patch -p1 -i "${srcdir}/dvd+rw-tools-7.0-wexit.patch"
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/"
+ install -m644 growisofs.1 ${pkgdir}/usr/share/man/man1/growisofs.1
+}
diff --git a/extra/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch b/extra/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch
new file mode 100644
index 000000000..c1c6fb333
--- /dev/null
+++ b/extra/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch
@@ -0,0 +1,13 @@
+--- ./growisofs_mmc.cpp.joe 2006-04-27 20:45:00.788446635 +0200
++++ ./growisofs_mmc.cpp 2006-04-27 20:46:01.666824300 +0200
+@@ -1412,9 +1412,7 @@
+ blocks += 15, blocks &= ~15;
+
+ if (blocks <= split)
+- fprintf (stderr,":-( more than 50%% of space will be *wasted*!\n"
+- " use single layer media for this recording\n"),
+- exit (FATAL_START(EMEDIUMTYPE));
++ fprintf (stderr,":-? more than 50%% of space will be *wasted*!\n");
+
+ blocks /= 16;
+ blocks += 1;
diff --git a/extra/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch b/extra/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch
new file mode 100644
index 000000000..49742d3c4
--- /dev/null
+++ b/extra/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch
@@ -0,0 +1,11 @@
+diff -up dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 dvd+rw-tools-7.0/transport.hxx
+--- dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 2007-08-15 12:56:17.000000000 +0200
++++ dvd+rw-tools-7.0/transport.hxx 2007-08-15 12:56:42.000000000 +0200
+@@ -11,6 +11,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++#include <limits.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
diff --git a/extra/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch b/extra/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch
new file mode 100644
index 000000000..56bd72575
--- /dev/null
+++ b/extra/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch
@@ -0,0 +1,11 @@
+--- transport.hxx~ 2008-03-25 21:24:47.000000000 -0400
++++ transport.hxx 2008-03-25 21:25:36.000000000 -0400
+@@ -116,7 +116,7 @@
+ extern "C" char *plusminus_locale()
+ { static class __plusminus {
+ private:
+- char str[4];
++ char str[MB_LEN_MAX];
+ public:
+ __plusminus() { setlocale(LC_CTYPE,ENV_LOCALE);
+ int l = wctomb(str,(wchar_t)(unsigned char)'');
diff --git a/extra/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch b/extra/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch
new file mode 100644
index 000000000..e7910cbdd
--- /dev/null
+++ b/extra/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch
@@ -0,0 +1,11 @@
+--- dvd+rw-tools-7.0/dvd+rw-format.cpp.wexit 2007-06-21 12:42:30.000000000 +0200
++++ dvd+rw-tools-7.0/dvd+rw-format.cpp 2007-06-21 12:44:13.000000000 +0200
+@@ -245,7 +245,7 @@ int main (int argc, char *argv[])
+ alarm(1);
+ while ((waitpid(pid,&i,0) != pid) && !WIFEXITED(i)) ;
+ if (WEXITSTATUS(i) == 0) fprintf (stderr,"\n");
+- exit (0);
++ exit (WEXITSTATUS(i));
+ }
+ #endif
+
diff --git a/extra/dvdauthor/PKGBUILD b/extra/dvdauthor/PKGBUILD
new file mode 100644
index 000000000..83cc8e71a
--- /dev/null
+++ b/extra/dvdauthor/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143729 2011-11-28 17:32:58Z 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=3
+pkgdesc="DVD authoring tools"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/dvdrip/PKGBUILD b/extra/dvdrip/PKGBUILD
new file mode 100644
index 000000000..01088ad73
--- /dev/null
+++ b/extra/dvdrip/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 143731 2011-11-28 17:39:01Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Fredrik Hammar <Horney_C86@Hotmail.com>
+
+pkgname=dvdrip
+pkgver=0.98.11
+pkgrel=10
+pkgdesc="A Gtk frontend for transcode writen in Perl"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'fping: for cluster support')
+source=("http://www.exit1.org/dvdrip/dist/${pkgname}-${pkgver}.tar.gz"
+ 'dvdrip.desktop')
+options=('!emptydirs' '!makeflags')
+md5sums=('6dfa4199d451757a37eea233a07da4c0'
+ 'e91cf411928fd0500d07a0022b4ef546')
+
+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 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..e111ef946
--- /dev/null
+++ b/extra/dvdrip/dvdrip.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/dvdrtools/PKGBUILD b/extra/dvdrtools/PKGBUILD
new file mode 100644
index 000000000..138c94157
--- /dev/null
+++ b/extra/dvdrtools/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 137611 2011-09-10 04:22:54Z eric $
+# 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=3
+pkgdesc="A fork of cdrtools, with the primary goal of supporting writable DVD drives"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://savannah.nongnu.org/projects/dvdrtools/"
+license=('GPL')
+depends=('file' 'bash')
+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
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/dvgrab/PKGBUILD b/extra/dvgrab/PKGBUILD
new file mode 100644
index 000000000..a8a014a7f
--- /dev/null
+++ b/extra/dvgrab/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143735 2011-11-28 17:46:25Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=dvgrab
+pkgver=3.5
+pkgrel=4
+pkgdesc="Saves audio and video data from an IEEE (FireWire) digital source"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kinodv.org/"
+license=('GPL')
+depends=('libdv' 'libavc1394' 'libjpeg-turbo' '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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/easytag/PKGBUILD b/extra/easytag/PKGBUILD
new file mode 100644
index 000000000..f875707ee
--- /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' 'mips64el')
+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..f92060fe9
--- /dev/null
+++ b/extra/ebook-tools/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143766 2011-11-29 01:07:45Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ebook-tools
+pkgver=0.2.1
+pkgrel=4
+pkgdesc="Tools for accessing and converting various ebook file formats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/ebook-tools/"
+license=('custom')
+depends=('libzip' 'libxml2' 'convertlit')
+makedepends=('pkgconfig' 'cmake')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('cabbd2ef9148a61ca5f6e60ca63e6045')
+
+build() {
+ cd "${srcdir}"
+
+ mkdir build
+ cd build
+ CXX="g++" \
+ 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}/LICENSE \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/ecasound/PKGBUILD b/extra/ecasound/PKGBUILD
new file mode 100644
index 000000000..05eb23efb
--- /dev/null
+++ b/extra/ecasound/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 124853 2011-05-24 19:44:26Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ecasound
+pkgver=2.8.1
+pkgrel=1
+pkgdesc="A software package designed for multitrack audio processing"
+arch=('i686' 'x86_64' 'mips64el')
+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=('d9ded0074a8eeb59dd507c248220d010')
+
+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..a735f70c1
--- /dev/null
+++ b/extra/ecasound/ecasound.changelog
@@ -0,0 +1,49 @@
+2011-05-14 Ray Rashif <schiv@archlinux.org>
+
+ * ecasound 2.8.0
+ * upstream release
+
+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..273331df9
--- /dev/null
+++ b/extra/ecl/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 127540 2011-06-16 08:47:04Z juergen $
+# Contributor: John Proctor <jproctor@prium.net>
+# Maintainer: juergen <juergen@archlinux.org>
+
+pkgname=ecl
+pkgver=11.1.1
+pkgrel=1
+pkgdesc="Embeddable Common Lisp"
+arch=('i686' 'x86_64' 'mips64el')
+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/11.1/ecl-11.1.1.tar.gz)
+md5sums=('6963cfa00e1c6d4a2123fd62100b02e6')
+
+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..b80d72e83
--- /dev/null
+++ b/extra/eclipse/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 140489 2011-10-15 15:29:09Z ibiru $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Andrew Wright <andreww@photism.org>
+# Contributor: Andreas W. Hauser <andy-aur@splashground.de>
+# Contributor: Marco Crosio <marco.crosio@gmail.com>
+
+pkgname=eclipse
+pkgver=3.7.1
+_internal_pkgver=3.7.1
+pkgrel=2
+_date=201109091335
+pkgdesc="An IDE for Java and other languages"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://eclipse.org"
+depends=('java-environment' 'gtk2' 'unzip' 'libwebkit')
+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=('c7f3e186e7996d3a8afc16eec9e9e71f'
+ '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]='b8b37135600d92c373514ce5bb094143'
+
+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
+}
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..1c25d102d
--- /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' 'mips64el')
+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..dfb974f82
--- /dev/null
+++ b/extra/eject/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 135944 2011-08-20 17:05:11Z tomegun $
+# Maintainer: Tom Gundersen <teg@jlkm.no>
+# Contributor: Natrio <natrio@list.ru>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=eject
+pkgver=2.1.5
+pkgrel=7
+pkgdesc="A program for ejecting removable media under software control"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://eject.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=("ftp://ftp.archlinux.org/other/eject/eject-${pkgver}.tar.bz2"
+ 'eject-2.1.1-verbose.patch'
+ 'eject-2.1.5-lock.patch'
+ 'eject-2.1.5-spaces.patch'
+ 'eject-2.1.5-umount.patch'
+ 'eject-timeout.patch'
+ 'eject-2.1.5-unlock.patch'
+ 'eject-2.1.5-openrw.patch')
+md5sums=('5a6cab2184ae4ed21128054d931d558f'
+ '4fb81806de181d5f353a459b7f122081'
+ '7d18c14f7b1bb50149fd2b41215dc4f2'
+ '64f5c54dac064e6dbc427025d919221b'
+ '34221248a269703d3a47a8d2a6fdd2e2'
+ 'f6b1b702ef9174e2fd05a56ee2de850e'
+ 'f384f98fa689b087d99217a7403bf706'
+ 'e74d742540e4f399d348af495bf00e85')
+
+build() {
+ cd "${srcdir}/eject"
+ patch -p1 -i "${srcdir}/eject-2.1.1-verbose.patch"
+ patch -p1 -i "${srcdir}/eject-2.1.5-lock.patch"
+ patch -p1 -i "${srcdir}/eject-2.1.5-spaces.patch"
+ patch -p1 -i "${srcdir}/eject-2.1.5-umount.patch"
+ patch -p1 -i "${srcdir}/eject-timeout.patch"
+ patch -p1 -i "${srcdir}/eject-2.1.5-unlock.patch"
+ patch -p1 -i "${srcdir}/eject-2.1.5-openrw.patch"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-default-device=sr0
+ make
+}
+
+package() {
+ cd "${srcdir}/eject"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/eject/eject-2.1.1-verbose.patch b/extra/eject/eject-2.1.1-verbose.patch
new file mode 100644
index 000000000..44c05d881
--- /dev/null
+++ b/extra/eject/eject-2.1.1-verbose.patch
@@ -0,0 +1,15 @@
+diff --git a/eject.c b/eject.c
+index b14d5f2..662ba54 100644
+--- a/eject.c
++++ b/eject.c
+@@ -709,7 +709,9 @@ static int EjectScsi(int fd)
+ unsigned char sense_buffer[32];
+
+ if ((ioctl(fd, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) {
+- printf("not an sg device, or old sg driver\n");
++ if (v_option) {
++ printf(_("not an sg device, or old sg driver\n"));
++ }
+ return 0;
+ }
+
diff --git a/extra/eject/eject-2.1.5-lock.patch b/extra/eject/eject-2.1.5-lock.patch
new file mode 100644
index 000000000..25f84651e
--- /dev/null
+++ b/extra/eject/eject-2.1.5-lock.patch
@@ -0,0 +1,171 @@
+ eject.1 | 13 +++++++++++--
+ eject.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 63 insertions(+), 4 deletions(-)
+
+diff --git a/eject.1 b/eject.1
+index 3c388c6..315dc6d 100644
+--- a/eject.1
++++ b/eject.1
+@@ -17,6 +17,8 @@ eject [\-vn] \-a on|off|1|0 [<name>]
+ .br
+ eject [\-vn] \-c slot [<name>]
+ .br
++eject [\-vn] \-i on|off|1|0 [<name>]
++.br
+ eject [\-vn] \-t [<name>]
+ .br
+ eject [\-vn] \-T [<name>]
+@@ -83,6 +85,13 @@ for a change request to work. Please also note that the first slot of
+ the changer is referred to as 0, not 1.
+
+ .TP 0.5i
++.B \-i on|1|off|0
++This option controls locking of the hardware eject button. When
++enabled, the drive will not be ejected when the button is pressed.
++This is useful when you are carrying a laptop in a bag or case and
++don't want it to eject if the button is inadvertently pressed.
++
++.TP 0.5i
+ .B \-t
+ With this option the drive is given a CD-ROM tray close command. Not
+ all devices support this command.
+@@ -121,8 +130,8 @@ performed.
+ .B \-r
+ This option specifies that the drive should be ejected using a
+ CDROM eject command.
+-.TP 0.5i
+
++.TP 0.5i
+ .B \-s
+ This option specifies that the drive should be ejected using
+ SCSI commands.
+@@ -145,7 +154,7 @@ also passes the \-n option to umount(1).
+ .TP 0.5i
+ .B \-m
+ This option allows eject to work with device drivers which automatically
+-mount removable media and therefore must be always mount()ed.
++mount removable media and therefore must be always mount(1)ed.
+ The option tells eject to not try to unmount the given device,
+ even if it is mounted according to /etc/mtab or /proc/mounts.
+
+diff --git a/eject.c b/eject.c
+index f7b2a2e..4175756 100644
+--- a/eject.c
++++ b/eject.c
+@@ -116,6 +116,7 @@ int d_option = 0;
+ int f_option = 0;
+ int h_option = 0;
+ int n_option = 0;
++int i_option = 0;
+ int q_option = 0;
+ int r_option = 0;
+ int s_option = 0;
+@@ -129,6 +130,7 @@ int m_option = 0;
+ int a_arg = 0;
+ int c_arg = 0;
+ int x_arg = 0;
++int i_arg = 0;
+ static char *programName; /* used in error messages */
+
+ /*
+@@ -163,6 +165,7 @@ static void usage()
+ " eject [-vn] -c <slot> [<name>] -- switch discs on a CD-ROM changer\n"
+ " eject [-vn] -t [<name>] -- close tray\n"
+ " eject [-vn] -T [<name>] -- toggle tray\n"
++" eject [-vn] -i on|off|1|0 [<name>] -- toggle manual eject protection on/off\n"
+ " eject [-vn] -x <speed> [<name>] -- set CD-ROM max speed\n"
+ " eject [-vn] -X [<name>] -- list CD-ROM available speeds\n"
+ "Options:\n"
+@@ -200,7 +203,7 @@ static void usage()
+ #endif
+ "\n"
+ " -n --noop -V --version\n"
+-" -p --proc -m --no-unmount -T --traytoggle\n"));
++" -p --proc -m --no-unmount -T --traytoggle -i --manualeject\n"));
+ #endif /* GETOPTLONG */
+ fprintf(stderr,_(
+ "Parameter <name> can be a device file or a mount point.\n"
+@@ -214,7 +217,7 @@ static void usage()
+ /* Handle command line options. */
+ static void parse_args(int argc, char **argv, char **device)
+ {
+- const char *flags = "a:c:x:dfhnqrstTXvVpm";
++ const char *flags = "a:c:x:i:dfhnqrstTXvVpm";
+ #ifdef GETOPTLONG
+ static struct option long_options[] =
+ {
+@@ -223,6 +226,7 @@ static void parse_args(int argc, char **argv, char **device)
+ {"default", no_argument, NULL, 'd'},
+ {"auto", required_argument, NULL, 'a'},
+ {"changerslot", required_argument, NULL, 'c'},
++ {"manualeject", required_argument, NULL, 'i'},
+ {"trayclose", no_argument, NULL, 't'},
+ {"traytoggle", no_argument, NULL, 'T'},
+ {"cdspeed", required_argument, NULL, 'x'},
+@@ -297,6 +301,21 @@ static void parse_args(int argc, char **argv, char **device)
+ usage();
+ exit(0);
+ break;
++ case 'i':
++ i_option = 1;
++ if (!strcmp(optarg, "0"))
++ i_arg = 0;
++ else if (!strcmp(optarg, "off"))
++ i_arg = 0;
++ else if (!strcmp(optarg, "1"))
++ i_arg = 1;
++ else if (!strcmp(optarg, "on"))
++ i_arg = 1;
++ else {
++ fprintf(stderr, _("%s: invalid argument to -i option\n"), programName);
++ exit(1);
++ }
++ break;
+ case 'm':
+ m_option = 1;
+ break;
+@@ -482,6 +501,30 @@ static char *FindDevice(const char *name)
+ }
+
+
++/*
++ * Stops CDROM from opening on manual eject pressing the button.
++ * This can be useful when you carry your laptop
++ * in your bag while it's on and no CD inserted in it's drive.
++ * Implemented as found in Documentation/ioctl/cdrom.txt
++ *
++ * TODO: Maybe we should check this also:
++ * EDRIVE_CANT_DO_THIS Door lock function not supported.
++ * EBUSY Attempt to unlock when multiple users
++ * have the drive open and not CAP_SYS_ADMIN
++ */
++static void ManualEject(int fd, int onOff)
++{
++ if (ioctl(fd, CDROM_LOCKDOOR, onOff) < 0) {
++ perror("ioctl on CDROM_LOCKDOOR");
++ } else {
++ if (onOff)
++ printf("CD-Drive may NOT be ejected with device button\n");
++ else
++ printf("CD-Drive may be ejected with device button\n");
++ }
++}
++
++
+ /* Set or clear auto-eject mode. */
+ static void AutoEject(int fd, int onOff)
+ {
+@@ -1233,6 +1276,13 @@ int main(int argc, char **argv)
+ exit(0);
+ }
+
++ /* handle -i option */
++ if (i_option) {
++ fd = OpenDevice(deviceName);
++ ManualEject(fd, i_arg);
++ exit(0);
++ }
++
+ /* handle -a option */
+ if (a_option) {
+ if (v_option) {
diff --git a/extra/eject/eject-2.1.5-openrw.patch b/extra/eject/eject-2.1.5-openrw.patch
new file mode 100644
index 000000000..092bfcfda
--- /dev/null
+++ b/extra/eject/eject-2.1.5-openrw.patch
@@ -0,0 +1,17 @@
+diff -pur eject-1/eject.c eject/eject.c
+--- eject-1/eject.c 2011-08-19 11:42:22.697388647 +0400
++++ eject/eject.c 2011-08-19 11:57:27.636724026 +0400
+@@ -911,7 +911,12 @@ static void Unmount(const char *fullName
+ /* Open a device file. */
+ static int OpenDevice(const char *fullName)
+ {
+- int fd = open(fullName, O_RDONLY|O_NONBLOCK);
++ int fd = open(fullName, O_RDWR|O_NONBLOCK);
++ if (fd == -1 && errno == EACCES) {
++ if (v_option)
++ printf(_("%s: unable to open `%s' for R/W, SCSI commands can be fail. Trying Read-Only\n"), programName, fullName);
++ fd = open(fullName, O_RDONLY|O_NONBLOCK);
++ }
+ if (fd == -1) {
+ fprintf(stderr, _("%s: unable to open `%s'\n"), programName, fullName);
+ exit(1);
diff --git a/extra/eject/eject-2.1.5-spaces.patch b/extra/eject/eject-2.1.5-spaces.patch
new file mode 100644
index 000000000..40834d902
--- /dev/null
+++ b/extra/eject/eject-2.1.5-spaces.patch
@@ -0,0 +1,62 @@
+diff --git a/eject.c b/eject.c
+index d67089c..f7b2a2e 100644
+--- a/eject.c
++++ b/eject.c
+@@ -370,6 +370,30 @@ static int FileExists(const char *name, const int try, int *found)
+
+
+ /*
++ * 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 '/')
+@@ -882,6 +906,8 @@ static int MountedDevice(const char *name, char **mountName, char **deviceName)
+ rc = sscanf(line, "%1023s %1023s", s1, s2);
+ if (rc >= 2) {
+ int mtabmaj, mtabmin;
++ DeMangleMount(s1);
++ DeMangleMount(s2);
+ GetMajorMinor(s1, &mtabmaj, &mtabmin);
+ if (((strcmp(s1, name) == 0) || (strcmp(s2, name) == 0)) ||
+ ((maj != -1) && (maj == mtabmaj) && (min == mtabmin))) {
+@@ -928,6 +954,8 @@ static int MountableDevice(const char *name, char **mountName, char **deviceName
+
+ while (fgets(line, sizeof(line), fp) != 0) {
+ rc = sscanf(line, "%1023s %1023s", s1, s2);
++ DeMangleMount(s1);
++ DeMangleMount(s2);
+ if (rc >= 2 && s1[0] != '#' && strcmp(s2, name) == 0) {
+ FCLOSE(fp);
+ *deviceName = strdup(s1);
+@@ -968,6 +996,8 @@ static void UnmountDevices(const char *pattern)
+ while (fgets(line, sizeof(line), fp) != 0) {
+ status = sscanf(line, "%1023s %1023s", s1, s2);
+ if (status >= 2) {
++ DeMangleMount(s1);
++ DeMangleMount(s2);
+ status = regexec(&preg, s1, 0, 0, 0);
+ if (status == 0) {
+ if (v_option)
diff --git a/extra/eject/eject-2.1.5-umount.patch b/extra/eject/eject-2.1.5-umount.patch
new file mode 100644
index 000000000..2c588a01d
--- /dev/null
+++ b/extra/eject/eject-2.1.5-umount.patch
@@ -0,0 +1,176 @@
+diff --git a/eject.c b/eject.c
+index 4175756..057d2ea 100644
+--- a/eject.c
++++ b/eject.c
+@@ -42,6 +42,7 @@
+ #include <string.h>
+ #include <fcntl.h>
+ #include <limits.h>
++#include <dirent.h>
+
+ #ifdef GETOPTLONG
+ #include <getopt.h>
+@@ -1133,6 +1134,145 @@ static char *MultiplePartitions(const char *name)
+ return 0;
+ }
+
++/*
++ * Find device name in /sys/block/. Returns NULL if not
++ * found. The returned pointer must be free()'d.
++ */
++static char* FindDeviceSysBlock(const char* deviceName)
++{
++ DIR *dir = opendir("/sys/block");
++ struct dirent *d;
++ const char *baseName = strrchr(deviceName, '/');
++ char *device;
++ int len;
++
++ baseName = baseName ? baseName + 1 : deviceName;
++ if (!dir) {
++ fprintf(stderr, _("%s: can not open directory /sys/block/"), programName);
++ return NULL;
++ }
++ while ((d = readdir(dir)) != NULL) {
++ if (d->d_type != DT_DIR && d->d_type != DT_LNK && d->d_type != DT_UNKNOWN)
++ continue;
++ len = strlen(d->d_name);
++ if (!strncmp(baseName, d->d_name, len)) {
++ if ((*(baseName+len) >= '0' &&
++ *(baseName+len) <= '9') ||
++ *(baseName+len) == '\0') {
++ device = strdup(d->d_name);
++ closedir(dir);
++ return device;
++ }
++ }
++ }
++ closedir(dir);
++ return NULL;
++}
++
++/*
++ * From given path gets a subsystem. Returns subsystem if any found
++ * otherwise returns NULL. Returned value must not be free()'d
++ */
++static char *GetSubSystem(const char *sysfspath)
++{
++ static char subsystem[PATH_MAX];
++ char link_subsystem[PATH_MAX];
++ struct stat buf;
++ char *pos;
++
++ snprintf(link_subsystem, sizeof(link_subsystem), "%s/subsystem", sysfspath);
++
++ if (lstat(link_subsystem, &buf) == -1)
++ return NULL;
++ if (!S_ISLNK(buf.st_mode))
++ return NULL;
++ if (readlink(link_subsystem, subsystem, sizeof(subsystem)) == -1)
++ return NULL;
++ if ((pos = strrchr(subsystem, '/')) == NULL)
++ return NULL;
++ strncpy(subsystem, pos+1, sizeof(subsystem));
++
++ return subsystem;
++}
++
++/*
++ * Check content of /sys/block/<dev>/removable. Returns 1 if the file
++ * contains '1' otherwise returns 0.
++ */
++static int CheckRemovable(const char* deviceName)
++{
++ FILE *fp;
++ int removable = 0;
++ char *device;
++ char path[PATH_MAX];
++
++ if ((device = FindDeviceSysBlock(deviceName)) == NULL) {
++ fprintf(stderr,
++ _("%s: did not find a device %s in /sys/block/\n"),
++ programName, deviceName);
++ exit(1);
++ }
++ snprintf(path, sizeof(path), "/sys/block/%s/removable", device);
++ free(device);
++ if((fp = fopen(path, "r")) == NULL)
++ return removable;
++ if (fgetc(fp) == '1')
++ removable = 1;
++
++ fclose(fp);
++ return removable;
++}
++
++/* Check if a device is on hotpluggable subsystem. Returns 1 if is
++ * otherwise returns 0.
++ */
++static int CheckHotpluggable(const char* deviceName)
++{
++ int hotpluggable = 0;
++ char *device;
++ char path[PATH_MAX];
++ char *device_chain;
++ struct stat buf;
++ char *subsystem;
++ char *pos;
++
++ if ((device = FindDeviceSysBlock(deviceName)) == NULL) {
++ fprintf(stderr, _("%s: did not find a device %s in /sys/block/\n"),
++ programName, deviceName);
++ exit(1);
++ }
++ snprintf(path, sizeof(path), "/sys/block/%s/device", device);
++ free(device);
++
++ if (lstat(path, &buf) == -1)
++ return hotpluggable;
++ if (!S_ISLNK(buf.st_mode))
++ return hotpluggable;
++ if ((device_chain = SymLink(path)) == NULL)
++ return hotpluggable;
++ while ( strncmp(device_chain, "", sizeof(device_chain) != 0)) {
++ subsystem = GetSubSystem(device_chain);
++ if (subsystem) {
++ /* as hotpluggable we assume devices on these buses */
++ if (strncmp("usb", subsystem, sizeof("usb")) == 0 ||
++ strncmp("ieee1394", subsystem, sizeof("ieee1394")) == 0 ||
++ strncmp("pcmcia", subsystem, sizeof("pcmcia")) == 0 ||
++ strncmp("mmc", subsystem, sizeof("mmc")) == 0 ||
++ strncmp("ccw", subsystem, sizeof("ccw")) == 0) {
++ hotpluggable = 1;
++ break;
++ }
++ }
++ /* remove one member from devicechain */
++ pos = strrchr(device_chain, '/');
++ if (pos)
++ pos[0] = '\0';
++ else
++ device_chain[0] = '\0';
++ }
++
++ return hotpluggable;
++}
+
+ /* handle -x option */
+ static void HandleXOption(char *deviceName)
+@@ -1276,6 +1416,17 @@ int main(int argc, char **argv)
+ exit(0);
+ }
+
++ /* Check if device has removable flag*/
++ if (v_option)
++ printf(_("%s: checking if device \"%s\" has a removable or hotpluggable flag\n"),
++ programName, deviceName);
++ if (!CheckRemovable(deviceName) && !CheckHotpluggable(deviceName))
++ {
++ fprintf(stderr, _("%s: device \"%s\" doesn't have a removable or hotpluggable flag\n"),
++ programName, deviceName);
++ exit(1);
++ }
++
+ /* handle -i option */
+ if (i_option) {
+ fd = OpenDevice(deviceName);
diff --git a/extra/eject/eject-2.1.5-unlock.patch b/extra/eject/eject-2.1.5-unlock.patch
new file mode 100644
index 000000000..d554f9bdf
--- /dev/null
+++ b/extra/eject/eject-2.1.5-unlock.patch
@@ -0,0 +1,59 @@
+diff -pur eject-orig/eject.c eject/eject.c
+--- eject-orig/eject.c 2006-02-11 04:54:38.000000000 +0300
++++ eject/eject.c 2011-08-11 13:12:16.568112725 +0400
+@@ -527,6 +527,25 @@ static void CloseTray(int fd)
+ }
+
+ /*
++ * Unlock tray using CDROM_LOCKDOOR ioctl.
++ * New kernels doesn't automatically unlock tray before ejecting,
++ * and the new udev automatically locks it.
++ */
++static int UnlockCdrom(int fd)
++{
++ int status = -1;
++
++ if (v_option)
++ printf(_("%s: unlocking tray using CDROM_LOCKDOOR ioctl\n"), programName);
++
++ status = ioctl(fd, CDROM_LOCKDOOR, 0);
++ if (v_option && status != 0)
++ printf(_("%s: CDROM_LOCKDOOR ioctl failed\n"), programName);
++
++ return (status == 0);
++}
++
++/*
+ * Toggle tray.
+ *
+ * Written by Benjamin Schwenk <benjaminschwenk@yahoo.de> and
+@@ -543,6 +562,8 @@ static void ToggleTray(int fd)
+
+ #ifdef CDROMCLOSETRAY
+
++ UnlockCdrom(fd);
++
+ /* Try to open the CDROM tray and measure the time therefor
+ * needed. In my experience the function needs less than 0.05
+ * seconds if the tray was already open, and at least 1.5 seconds
+@@ -566,7 +587,11 @@ static void ToggleTray(int fd)
+ * was already open. In this case, close it now. Else the tray was
+ * closed before. This would mean that we are done. */
+ if (time_elapsed < TRAY_WAS_ALREADY_OPEN_USECS)
++ {
++ if (v_option)
++ printf(_("%s: CD-ROM tray was already open, closing it\n"), programName);
+ CloseTray(fd);
++ }
+
+ #else
+ fprintf(stderr, _("%s: CD-ROM tray toggle command not supported by this kernel\n"), programName);
+@@ -681,7 +706,7 @@ static void ListSpeedCdrom(const char *f
+ static int EjectCdrom(int fd)
+ {
+ int status = -1;
+-
++ UnlockCdrom(fd);
+ #if defined(CDROMEJECT)
+ status = ioctl(fd, CDROMEJECT);
+ #elif defined(CDIOCEJECT)
diff --git a/extra/eject/eject-timeout.patch b/extra/eject/eject-timeout.patch
new file mode 100644
index 000000000..a542d2c2f
--- /dev/null
+++ b/extra/eject/eject-timeout.patch
@@ -0,0 +1,11 @@
+--- eject/eject.c.orig 2006-08-07 16:35:15.000000000 +0200
++++ eject/eject.c 2006-08-07 16:35:54.000000000 +0200
+@@ -723,7 +723,7 @@
+ io_hdr.dxfer_len = 0;
+ io_hdr.dxferp = inqBuff;
+ io_hdr.sbp = sense_buffer;
+- io_hdr.timeout = 2000;
++ io_hdr.timeout = 10000;
+
+ io_hdr.cmdp = allowRmBlk;
+ status = ioctl(fd, SG_IO, (void *)&io_hdr);
diff --git a/extra/ekiga/PKGBUILD b/extra/ekiga/PKGBUILD
new file mode 100644
index 000000000..ceb8b10c5
--- /dev/null
+++ b/extra/ekiga/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 144047 2011-12-02 20:54:17Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+
+pkgname=ekiga
+pkgver=3.3.2
+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 mips64el)
+depends=('opal' 'boost-libs' 'libxv' 'libnotify' 'hicolor-icon-theme' 'avahi' 'gtk2' 'gconf')
+makedepends=('intltool' 'gnome-doc-utils' 'evolution-data-server' 'boost' 'gnome-common')
+optdepends=('evolution-data-server: Evolution integration')
+options=(!emptydirs)
+groups=('gnome-extra')
+install=ekiga.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('d4dd47a47696c53e6f3839eef6e0e896dd3d07babb2e68ff8fe994d67ba8807a')
+
+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/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/elfutils/PKGBUILD b/extra/elfutils/PKGBUILD
new file mode 100644
index 000000000..1f825930a
--- /dev/null
+++ b/extra/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' 'mips64el')
+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/extra/emacs/PKGBUILD b/extra/emacs/PKGBUILD
new file mode 100644
index 000000000..4b202d372
--- /dev/null
+++ b/extra/emacs/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 137977 2011-09-13 15:26:07Z juergen $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu>
+pkgname=emacs
+_majorver=23.3
+_minorver=a
+# We want something like "23.3.a" so pacman version comparison works, but
+# upstream uses "23.3a", which is a bit silly and interpreted as alpha.
+pkgver=$_majorver.$_minorver
+_realver=$_majorver$_minorver
+pkgrel=3.1
+pkgdesc="The extensible, customizable, self-documenting real-time display editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/emacs/emacs.html"
+license=('GPL3')
+depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'gtk2' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib')
+install=emacs.install
+source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$_realver.tar.gz emacs.desktop)
+md5sums=('20aef9ea5b5bf8050d39f8b1e96a1c04'
+ '8af038d2ba4561271e935bb444ceb4e3')
+
+build() {
+ cd "$srcdir"/$pkgname-$_majorver
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var --with-x-toolkit=gtk --with-xft
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$_majorver
+ make DESTDIR="$pkgdir" install
+
+ # remove conflict with ctags package
+ mv "$pkgdir"/usr/bin/{ctags,ctags.emacs}
+ mv "$pkgdir"/usr/share/man/man1/{ctags.1,ctags.emacs.1}
+ # fix all the 777 perms on directories
+ find "$pkgdir"/usr/share/emacs/$_majorver -type d -exec chmod 755 {} \;
+ # fix user/root permissions on usr/share files
+ find "$pkgdir"/usr/share/emacs/$_majorver -exec chown root:root {} \;
+ # fix perms on /var/games
+ chmod 775 "$pkgdir"/var/games
+ chmod 775 "$pkgdir"/var/games/emacs
+ chmod 664 "$pkgdir"/var/games/emacs/*
+ chown -R root:games "$pkgdir"/var/games
+
+ # fix FS#9253
+ mkdir -p "$pkgdir"/usr/share/pixmaps "$pkgdir"/usr/share/applications
+ install -D -m644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications
+ ln -s ../emacs/$_majorver/etc/images/icons/hicolor/48x48/apps/emacs.png "$pkgdir"/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..d84f1de14
--- /dev/null
+++ b/extra/emacs/emacs.install
@@ -0,0 +1,32 @@
+ICON_PATH=usr/share/icons/hicolor
+INFO_DIR=usr/share/info
+
+INFO_FILES=(ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse
+ede ediff edt efaq eieio 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 semantic ses sieve smtpmail
+speedbar tramp url vip viper widget woman)
+
+post_install() {
+ gtk-update-icon-cache -q -t -f ${ICON_PATH}
+ update-desktop-database -q
+
+ [[ -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() {
+ gtk-update-icon-cache -q -t -f ${ICON_PATH}
+ update-desktop-database -q
+
+ [[ -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/extra/emelfm2/PKGBUILD b/extra/emelfm2/PKGBUILD
new file mode 100644
index 000000000..e3a78dd72
--- /dev/null
+++ b/extra/emelfm2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 136106 2011-08-23 02:10:25Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: contrasutra
+
+pkgname=emelfm2
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="A file manager that implements the popular two-pane design"
+arch=(i686 x86_64 'mips64el')
+url="http://emelfm2.net/"
+depends=('gtk2')
+license=('GPL')
+source=(http://emelfm2.net/rel/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8490d501e19009860f53ac6a98db74c1')
+
+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/empathy/PKGBUILD b/extra/empathy/PKGBUILD
new file mode 100644
index 000000000..e44a59713
--- /dev/null
+++ b/extra/empathy/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 142866 2011-11-17 18:34:20Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=empathy
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="A GNOME instant messaging client using the Telepathy framework."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/Empathy"
+license=('GPL2')
+depends=('libpulse' 'clutter-gtk' 'clutter-gst' 'telepathy-mission-control' 'telepathy-logger' 'telepathy-farsight' 'telepathy-farstream' 'folks' 'gnome-keyring'
+'libcanberra' 'iso-codes' 'networkmanager')
+makedepends=('intltool' 'gnome-doc-utils' '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/3.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('d6a391b801f58024ed6f97d9bf4e774b9ab9e1262d79aefb5c1dd95233fd5aa1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/empathy \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/empathy/empathy.install b/extra/empathy/empathy.install
new file mode 100644
index 000000000..c3f7abf13
--- /dev/null
+++ b/extra/empathy/empathy.install
@@ -0,0 +1,18 @@
+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() {
+ 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
+}
+
+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..5cd24b69a
--- /dev/null
+++ b/extra/enblend-enfuse/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 143541 2011-11-26 04:58:43Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=enblend-enfuse
+pkgver=4.0
+pkgrel=4
+pkgdesc="Intelligent blend tool for overlapping picture"
+arch=("i686" "x86_64" 'mips64el')
+license=('GPL')
+url="http://enblend.sourceforge.net"
+depends=('openexr' 'glew>=1.5' 'libxmi' 'freeglut' 'lcms' 'libpng')
+makedepends=('boost')
+replaces=('enblend')
+conflicts=('enblend')
+provides=('enblend')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/sourceforge/enblend/${pkgname}-${pkgver}.tar.gz{,.asc} libpng-1.4.patch)
+sha1sums=('34c3a5ce11c6ef0ef520d8a15a3cb6a94a567033'
+ 'aac6364b29b0a9d6c61c3db0982f52ce1579e934'
+ 'eae6cf48ea082865130302d0b4d1ca0b884a563b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-753b534c819d"
+ sed -i 's/info.arith_code = TRUE/info.arith_code = FALSE/' src/vigra_impex/jpeg.cxx
+ patch -Np1 -i ../libpng-1.4.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-753b534c819d"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 doc/enblend.info "${pkgdir}/usr/share/info/enblend.info"
+ install -D -m644 doc/enfuse.info "${pkgdir}/usr/share/info/enfuse.info"
+}
diff --git a/extra/enblend-enfuse/enblend-enfuse.install b/extra/enblend-enfuse/enblend-enfuse.install
new file mode 100644
index 000000000..24ea28a4e
--- /dev/null
+++ b/extra/enblend-enfuse/enblend-enfuse.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(enblend.info enfuse.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/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..153733d53
--- /dev/null
+++ b/extra/enca/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143739 2011-11-28 18:10:34Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Filip Dvorak <fila@pruda.com>
+
+pkgname=enca
+pkgver=1.13
+pkgrel=2
+pkgdesc="Charset analyser and converter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freshmeat.net/projects/enca/"
+options=('!libtool')
+license=('GPL')
+depends=('recode' 'bash')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/enchant/PKGBUILD b/extra/enchant/PKGBUILD
new file mode 100644
index 000000000..d8621ce2e
--- /dev/null
+++ b/extra/enchant/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 139539 2011-10-03 12:17:06Z jgc $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=enchant
+pkgver=1.6.0
+pkgrel=4
+pkgdesc="A wrapper library for generic spell checking"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.abisource.com/enchant/"
+license=('LGPL')
+depends=('aspell' 'dbus-glib' 'hunspell' '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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/enlightenment/PKGBUILD b/extra/enlightenment/PKGBUILD
new file mode 100644
index 000000000..f4ec645c3
--- /dev/null
+++ b/extra/enlightenment/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 140259 2011-10-11 03:24:04Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=enlightenment
+pkgver=1.0.10
+_themever=1.0.1
+pkgrel=1
+pkgdesc="A fast, flexible, and very extensible Window Manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.enlightenment.org"
+license=('BSD' 'custom')
+depends=('libxinerama' 'imlib2' 'perl' 'pango' 'libxcomposite' \
+ 'libxdamage' 'libxrandr' 'libpulse' 'audiofile')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/e16-${pkgver}.tar.gz \
+ http://downloads.sourceforge.net/enlightenment/e16-themes-${_themever}.tar.gz)
+sha1sums=('20e56c851aeb5279479eb43570b5d58bcc1d6ef9'
+ 'ae34e2df1294198795736bf953bf695aba93b710')
+
+build() {
+ cd "${srcdir}/e16-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-sound-pulse
+ 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..8b2846092
--- /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 'mips64el')
+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-plugins/PKGBUILD b/extra/eog-plugins/PKGBUILD
new file mode 100644
index 000000000..c519e11e2
--- /dev/null
+++ b/extra/eog-plugins/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143098 2011-11-22 18:39:54Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=eog-plugins
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Plugins for Eye of Gnome"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org/"
+license=('GPL2')
+depends=('eog' 'libchamplain' 'libgdata')
+makedepends=('intltool')
+install=eog-plugins.install
+options=('!libtool')
+groups=(gnome-extra)
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('123e50be69c33bddc5d6def0a1f618970e01207c2e959edbaf0afc56717d8975')
+
+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/extra/eog-plugins/eog-plugins.install b/extra/eog-plugins/eog-plugins.install
new file mode 100644
index 000000000..24072f316
--- /dev/null
+++ b/extra/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/extra/eog/PKGBUILD b/extra/eog/PKGBUILD
new file mode 100644
index 000000000..7f73d8c1b
--- /dev/null
+++ b/extra/eog/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142868 2011-11-17 18:34:22Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=eog
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Eye of Gnome: An image viewing and cataloging program"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gnome-desktop' 'libexif' 'lcms2' 'desktop-file-utils' 'exempi' 'libpeas' 'librsvg' 'gnome-icon-theme' 'dconf')
+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.xz)
+sha256sums=('315625babf04293341bd0b3ae26337d11c8696422d5dc4442ad551b25db42530')
+
+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/extra/eog/eog.install b/extra/eog/eog.install
new file mode 100644
index 000000000..284b24b18
--- /dev/null
+++ b/extra/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/extra/epiphany-extensions/PKGBUILD b/extra/epiphany-extensions/PKGBUILD
new file mode 100644
index 000000000..7c22b9d5d
--- /dev/null
+++ b/extra/epiphany-extensions/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142997 2011-11-20 09:46:20Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany-extensions
+pkgver=3.2.0
+pkgrel=2
+url="http://www.gnome.org/projects/epiphany/"
+pkgdesc="Various extentions for the Epiphany web browser"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('epiphany' 'opensp' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils' 'intltool' 'gnome-common')
+options=('!libtool' '!emptydirs')
+install=epiphany-extensions.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ rss-link-dbus-glib.patch)
+sha256sums=('0707c9109bc6070f5f4e6ef3a9653e18ad5200eb57f396852b4c13cbac69baae'
+ '6e1ba177e8480984b4c5447aca5e7cf8bcfacbb90bcf041fa1b6d2a4dc3e818b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/rss-link-dbus-glib.patch"
+ autoreconf -fi
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ 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..c0ed9a0d7
--- /dev/null
+++ b/extra/epiphany-extensions/epiphany-extensions.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/epiphany-extensions/rss-link-dbus-glib.patch b/extra/epiphany-extensions/rss-link-dbus-glib.patch
new file mode 100644
index 000000000..1737c49ea
--- /dev/null
+++ b/extra/epiphany-extensions/rss-link-dbus-glib.patch
@@ -0,0 +1,29 @@
+From 2066084961b77810477b658cabbb7f6e90a17b94 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sat, 19 Nov 2011 01:01:12 -0500
+Subject: [PATCH] rss: add DBUS_LIBS to librssextension_la_LIBADD
+
+Otherwise, epiphany-3.2 crashes.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=664369
+---
+ extensions/rss/Makefile.am | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/extensions/rss/Makefile.am b/extensions/rss/Makefile.am
+index ed6962f..da669c8 100644
+--- a/extensions/rss/Makefile.am
++++ b/extensions/rss/Makefile.am
+@@ -25,6 +25,9 @@ librssextension_la_LDFLAGS = \
+ -export-symbols $(top_srcdir)/ephy-extension.symbols \
+ $(AM_LDFLAGS)
+
++librssextension_la_LIBADD = \
++ $(DBUS_LIBS)
++
+ uidir = $(pkgdatadir)/ui
+ ui_DATA = rss-ui.ui
+
+--
+1.7.8.rc3
+
diff --git a/extra/epiphany/PKGBUILD b/extra/epiphany/PKGBUILD
new file mode 100644
index 000000000..a47982e99
--- /dev/null
+++ b/extra/epiphany/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140855 2011-10-20 05:41:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany
+pkgver=3.2.1
+pkgrel=1
+install=epiphany.install
+pkgdesc="A GNOME web browser based on the WebKit rendering engine."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libsoup-gnome' 'libnotify' 'gsettings-desktop-schemas' 'libwebkit3' 'nss' 'iso-codes' 'dconf' 'gobject-introspection' 'desktop-file-utils'
+ 'hicolor-icon-theme' 'seed')
+makedepends=('intltool' '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}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('5ade10d9becce1ca43c30d755fda477c5595a1c0514047f07f7d4b817a2154fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper \
+ --enable-seed
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/epiphany/epiphany.install b/extra/epiphany/epiphany.install
new file mode 100644
index 000000000..00b1abb96
--- /dev/null
+++ b/extra/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/extra/epplet-base/PKGBUILD b/extra/epplet-base/PKGBUILD
new file mode 100644
index 000000000..33af3327e
--- /dev/null
+++ b/extra/epplet-base/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 134351 2011-08-03 02:24:23Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=epplet-base
+pkgver=0.13
+pkgrel=2
+pkgdesc="Addon plugins for the enlightenment windowmanager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.enlightenment.org"
+license=('GPL')
+depends=('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
+ make
+}
+
+package() {
+ cd "${srcdir}/epplets-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/erlang/PKGBUILD b/extra/erlang/PKGBUILD
new file mode 100644
index 000000000..12150c3c6
--- /dev/null
+++ b/extra/erlang/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 140857 2011-10-20 05:42:01Z ibiru $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Tom Burdick <thomas.burdick@wrightwoodtech.com>
+
+pkgname=erlang
+pkgver=R14B04
+pkgrel=1
+pkgdesc="A small concurrent functional programming language developed by Ericsson."
+arch=(i686 x86_64 'mips64el')
+url="http://www.erlang.org/index.html"
+license=('custom')
+depends=('ncurses' 'glibc')
+makedepends=('java-environment' 'perl' 'openssl' 'wxgtk' 'unixodbc' 'mesa')
+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)
+
+ sed -i '/SSL_DYNAMIC_ONLY=/s:no:yes:' erts/configure
+
+ CFLAGS="${CFLAGS} -fno-strict-aliasing" ./configure --prefix=/usr --enable-smp-support --enable-threads -enable-native-libs
+ make
+ make INSTALL_PREFIX="$pkgdir" install
+
+# 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
+ 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
+ done
+
+ ln -s ../lib/erlang/lib/erl_interface-${ERLINTERFACEVERSION}/bin/erl_call "$pkgdir/usr/bin/erl_call"
+
+# 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=('4b469729f103f52702bfb1fb24529dc0'
+ 'f31e72518daae4007f595c0b224dd59f')
diff --git a/extra/ethstatus/PKGBUILD b/extra/ethstatus/PKGBUILD
new file mode 100644
index 000000000..b9352a85a
--- /dev/null
+++ b/extra/ethstatus/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 128471 2011-06-24 03:12:05Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ethstatus
+pkgver=0.4.3
+pkgrel=2
+pkgdesc="A simple program for displaying commonly needed/wanted statistics in real time of incoming and outgoing traffic"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "$srcdir/ethstatus-$pkgver"
+ install -D -m755 ethstatus "$pkgdir/usr/bin/ethstatus"
+ install -D -m644 ethstatus.1 "$pkgdir/usr/share/man/man1/ethstatus.1"
+}
diff --git a/extra/ethtool/PKGBUILD b/extra/ethtool/PKGBUILD
new file mode 100644
index 000000000..820ebfdac
--- /dev/null
+++ b/extra/ethtool/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144425 2011-12-05 19:20:31Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Paul Mattal <paul@archlinux.org>
+# Contributor: Martin Kemp <mdkemp@elys.com>
+
+pkgname=ethtool
+pkgver=3.1
+pkgrel=1
+epoch=1
+pkgdesc="Utility for controlling network drivers and hardware"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+md5sums=('dd0a93a70784fdeb2c3e699b3c709e8a')
+
+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/ettercap/PKGBUILD b/extra/ettercap/PKGBUILD
new file mode 100644
index 000000000..fb5f7afb0
--- /dev/null
+++ b/extra/ettercap/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 144996 2011-12-13 22:16:57Z eric $
+# Maintainer:
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=ettercap
+pkgname=('ettercap' 'ettercap-gtk')
+pkgver=NG_0.7.4.2
+_origver=${pkgver/_/-}
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ettercap.sourceforge.net/"
+license=('GPL')
+makedepends=('libpcap' 'libltdl' 'libnet' 'gtk2' 'hicolor-icon-theme')
+options=('!libtool' '!makeflags' '!emptydirs')
+source=("http://drizztbsd.github.com/${pkgbase}/dist/${pkgbase}-${_origver}.tar.gz")
+md5sums=('ab2354bf9c91195f06ad0b5d058565a4')
+
+build() {
+ cd "${srcdir}"
+ sed -i 's/su-to-root -c/gksu/' ${pkgbase}-${_origver}/desktop/ettercap.desktop
+
+ cp -r ${pkgbase}-${_origver} ${pkgbase}-${_origver}-gtk
+
+ cd ${pkgbase}-${_origver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --datarootdir=/usr/share \
+ --enable-plugins \
+ --enable-https \
+ --disable-gtk
+ make
+
+ cd ../${pkgbase}-${_origver}-gtk
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --datarootdir=/usr/share \
+ --enable-plugins \
+ --enable-https \
+ --enable-gtk
+ make
+}
+
+package_ettercap() {
+ pkgdesc="A network sniffer/interceptor/logger for ethernet LANs - console"
+ depends=('openssl' 'libpcap' 'pcre' 'libltdl' 'libnet')
+ backup=('etc/etter.conf')
+
+ cd "${srcdir}"/${pkgbase}-${_origver}
+ make DESTDIR="${pkgdir}" install
+}
+
+package_ettercap-gtk() {
+ pkgdesc="A network sniffer/interceptor/logger for ethernet LANs - GTK"
+ depends=('ettercap' 'gtk2' 'hicolor-icon-theme')
+ optdepends=('gksu: to run ettercap from the menu')
+ install=ettercap-gtk.install
+
+ cd "${srcdir}"/${pkgbase}-${_origver}-gtk
+ install -Dm755 src/ettercap "${pkgdir}"/usr/bin/ettercap-gtk
+ install -Dm644 desktop/ettercap.desktop \
+ "${pkgdir}"/usr/share/applications/ettercap.desktop
+ install -Dm644 share/ettercap.png \
+ "${pkgdir}"/usr/share/ettercap/ettercap.png
+ install -Dm644 desktop/ettercap.xpm \
+ "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/ettercap.xpm
+ install -Dm644 desktop/ettercap.svg \
+ "${pkgdir}"/usr/share/icons/hicolor/scalable/apps/ettercap.svg
+}
diff --git a/extra/ettercap/ettercap-gtk.install b/extra/ettercap/ettercap-gtk.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/extra/ettercap/ettercap-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/ettercap/ettercap.desktop b/extra/ettercap/ettercap.desktop
new file mode 100644
index 000000000..b8981dcb9
--- /dev/null
+++ b/extra/ettercap/ettercap.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=ettercap
+GenericName=Ettercap
+Comment=Multipurpose sniffer/interceptor/logger
+Icon=ettercap
+Exec=gksu "/usr/bin/ettercap --gtk"
+Terminal=false
+Categories=Application;Network;System;Security;GTK
diff --git a/extra/evilwm/LICENSE b/extra/evilwm/LICENSE
new file mode 100644
index 000000000..6778ede8c
--- /dev/null
+++ b/extra/evilwm/LICENSE
@@ -0,0 +1,40 @@
+LICENCE
+
+evilwm 1.1
+Copyright (C) 1999-2011 Ciaran Anscomb <evilwm@6809.org.uk>
+
+This is free software. You can do what you want to it, but if it
+breaks something, you get to pay for the counselling. The code was
+originally based on aewm, so this is distributed under the same terms,
+which follow.
+
+
+AEWM LICENCE
+
+Copyright (c) 1998-2000 Decklin Foster.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS", WITHOUT ANY EXPRESS
+OR IMPLIED WARRANTIES OF ANY KIND. IN NO EVENT SHALL THE AUTHOR BE
+HELD LIABLE FOR ANY DAMAGES CONNECTED WITH THE USE OF THIS PROGRAM.
+
+You are granted permission to copy, publish, distribute, and/or sell
+copies of this program and any modified versions or derived works,
+provided that this copyright and notice are not removed or altered.
+
+Portions of the code were based on 9wm, which contains this license:
+
+> 9wm is free software, and is Copyright (c) 1994 by David Hogan.
+> Permission is granted to all sentient beings to use this software,
+> to make copies of it, and to distribute those copies, provided
+> that:
+>
+> (1) the copyright and licence notices are left intact
+> (2) the recipients are aware that it is free software
+> (3) any unapproved changes in functionality are either
+> (i) only distributed as patches
+> or (ii) distributed as a new program which is not called 9wm
+> and whose documentation gives credit where it is due
+> (4) the author is not held responsible for any defects
+> or shortcomings in the software, or damages caused by it.
+>
+> There is no warranty for this software. Have a nice day.
diff --git a/extra/evilwm/PKGBUILD b/extra/evilwm/PKGBUILD
new file mode 100644
index 000000000..d86cabd4b
--- /dev/null
+++ b/extra/evilwm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 136041 2011-08-22 00:36:55Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=evilwm
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A minimalist but usable window manager for the X Window System."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://evilwm.sourceforge.net"
+license=('custom')
+depends=('libxrandr')
+source=(http://www.6809.org.uk/evilwm/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('5f14cc3019320860c85bb07c60a76bd7'
+ '0941ad3e96597ef75c6310f43a0342a0')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" desktopfilesdir=/usr/share/xsessions install
+ install -D -m644 "$srcdir"/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/evince/PKGBUILD b/extra/evince/PKGBUILD
new file mode 100644
index 000000000..8f5fe461c
--- /dev/null
+++ b/extra/evince/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142650 2011-11-12 17:18:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evince
+pkgver=3.2.1
+pkgrel=2
+pkgdesc="Simply a document viewer"
+url="http://projects.gnome.org/evince/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gtk3' 'libspectre' 'gsfonts' 'poppler-glib' 'djvulibre' 'gnome-icon-theme' 't1lib' 'libgnome-keyring' 'desktop-file-utils' 'dconf' 'gsettings-desktop-schemas')
+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.xz)
+sha256sums=('9db61a39c977eb939deaee3ed1e66937f15532f46de988cacd5b638f3960ed35')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+# Build with -march=mips3
+ [ "$CARCH" = "mips64el" ] && CFLAGS="${CFLAGS/loongson2f/mips3}"
+
+ ./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 \
+ --enable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/evince/evince.install b/extra/evince/evince.install
new file mode 100644
index 000000000..9643a9ba0
--- /dev/null
+++ b/extra/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/extra/evolution-data-server/PKGBUILD b/extra/evolution-data-server/PKGBUILD
new file mode 100644
index 000000000..48754fefd
--- /dev/null
+++ b/extra/evolution-data-server/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142872 2011-11-17 18:34:28Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-data-server
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Centralized access to appointments and contacts"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gconf' 'gnome-online-accounts' 'nss' 'krb5' 'libgweather' 'libical' 'db' 'libgdata')
+makedepends=('intltool' 'gperf' 'gobject-introspection' 'vala')
+options=('!libtool')
+url="http://www.gnome.org"
+license=('GPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('2a129b4c9412b8b855ce28bd682e522b3af0309e407f9d900f1d48be649bc76a')
+
+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 \
+ --enable-vala-bindings
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/evolution-ews/PKGBUILD b/extra/evolution-ews/PKGBUILD
new file mode 100644
index 000000000..29fa39fd2
--- /dev/null
+++ b/extra/evolution-ews/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142874 2011-11-17 18:34:31Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=evolution-ews
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="MS Exchange integration through Exchange Web Services"
+arch=('i686' 'x86_64')
+license=('LGPL2.1')
+url="http://www.gnome.org"
+depends=('evolution-data-server' 'gtkhtml4' 'gnome-desktop')
+makedepends=('intltool' 'evolution')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('f6a557a93e632e19cde1501f6f0540f67e41c193120d7297268662ddc7927439')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/evolution --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/evolution-exchange/PKGBUILD b/extra/evolution-exchange/PKGBUILD
new file mode 100644
index 000000000..2a6e166fc
--- /dev/null
+++ b/extra/evolution-exchange/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140865 2011-10-20 05:42:10Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-exchange
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Ximian Connector Exchange plugin for Evolution"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.ximian.com"
+depends=('evolution-data-server' 'gtkhtml4' 'gnome-desktop')
+makedepends=('intltool' 'evolution')
+options=('!libtool' '!emptydirs')
+install=evolution-exchange.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('d9bebd1ab252e8568409fb1c50ba5a8f0c8236a8abf72ba697c95f9134d4cd9c')
+
+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.2 ${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-groupwise/PKGBUILD b/extra/evolution-groupwise/PKGBUILD
new file mode 100644
index 000000000..786ecc16a
--- /dev/null
+++ b/extra/evolution-groupwise/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140867 2011-10-20 05:42:12Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=evolution-groupwise
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="GroupWise connector for evolution"
+arch=(i686 x86_64)
+url="http://projects.gnome.org/evolution/"
+license=(LGPL)
+depends=('evolution-data-server' 'gtkhtml4')
+makedepends=(intltool evolution)
+optdepends=('evolution: evolution plugin')
+options=(!libtool)
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/3.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('3a5a1590b92144e465b09abc0fdaefc6d6bf9a5465d0b07e01171ddfef4aebbf')
+
+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/evolution/PKGBUILD b/extra/evolution/PKGBUILD
new file mode 100644
index 000000000..8dfdf8698
--- /dev/null
+++ b/extra/evolution/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 142870 2011-11-17 18:34:24Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Manage your email, contacts and schedule"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gnome-desktop' 'evolution-data-server' 'gtkhtml4' 'libcanberra' 'gstreamer0.10' '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.xz)
+sha256sums=('03c68242bbf494dda3bf34f52ec843c282c9bb07f9415a69fe58237c7efbbe7d')
+
+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
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ 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.2 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
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..a8f53f5e5
--- /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 'mips64el')
+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..169dfd138
--- /dev/null
+++ b/extra/exiv2/PKGBUILD
@@ -0,0 +1,26 @@
+#$Id: PKGBUILD 139877 2011-10-05 19:06:34Z andrea $
+# Maintainer: tobias <tobias@arhlinux.org>
+
+pkgname=exiv2
+pkgver=0.22
+pkgrel=1
+pkgdesc="Exif and Iptc metadata manipulation library and tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://exiv2.org"
+license=('GPL')
+depends=('gcc-libs' 'zlib' 'expat')
+options=('!libtool')
+source=("http://www.exiv2.org/${pkgname}-${pkgver}.tar.gz")
+md5sums=('84d7d5b1802529efca8ac3d6e6a97e3a')
+sha1sums=('35211d853a986fe1b008fca14db090726e8dcce3')
+
+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/exo/PKGBUILD b/extra/exo/PKGBUILD
new file mode 100644
index 000000000..f60729239
--- /dev/null
+++ b/extra/exo/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 141087 2011-10-23 16:12:32Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=exo
+pkgver=0.6.2
+pkgrel=3.1
+pkgdesc="Extensions to Xfce by os-cillation"
+arch=('i686' 'x86_64' 'mips64el')
+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=('e25333df350abc30999cd16fe96ab690')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # python2 fix
+ export PYTHON=python2
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --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..17ca8f78a
--- /dev/null
+++ b/extra/exo/exo.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/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..57e7fe5f7
--- /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 'mips64el')
+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..8d0cc7bcc
--- /dev/null
+++ b/extra/f-spot/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 143780 2011-11-29 08:49:53Z 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=3
+pkgdesc="A personal photo management program for GNOME"
+url="http://www.gnome.org/projects/f-spot/"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('mono-addins' 'gnome-sharp' 'ndesk-dbus-glib' 'lcms' 'gnome-keyring-sharp' 'flickrnet' 'libgphoto2' 'desktop-file-utils' 'hicolor-icon-theme' 'xdg-utils' 'libunique')
+makedepends=('intltool' 'gnome-doc-utils' 'gnome-screensaver')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ mono-2.8.patch
+ flickrnet-3.0.patch)
+sha256sums=('24448d3431a95a9faa0aa975554414eb638f918811507177e9d69d11d417873a'
+ '4e7d2f1909870b842bbbe087f4381f325d5281d2deae0d32ba5713ee66d52b65'
+ 'e8e4470c7cd29c000a9505bcd85cb25641890f66e568edb33d495e8e38fc92a5')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/mono-2.8.patch"
+ # https://bugzilla.gnome.org/show_bug.cgi?id=665063
+ patch -Np1 -i "${srcdir}/flickrnet-3.0.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --disable-scrollkeeper --disable-schemas-install --enable-release \
+ --with-vendor-build-id=ArchLinux
+ 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 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/flickrnet-3.0.patch b/extra/f-spot/flickrnet-3.0.patch
new file mode 100644
index 000000000..c79e3c442
--- /dev/null
+++ b/extra/f-spot/flickrnet-3.0.patch
@@ -0,0 +1,114 @@
+diff -Naur f-spot-0.8.2.orig/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrExport.cs f-spot-0.8.2/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrExport.cs
+--- f-spot-0.8.2.orig/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrExport.cs 2010-12-19 14:34:42.000000000 +0100
++++ f-spot-0.8.2/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrExport.cs 2011-11-28 14:23:08.000000000 +0100
+@@ -124,9 +124,9 @@
+ do_export_flickr.Sensitive = true;
+ auth_flickr.Sensitive = true;
+ auth_label.Text = System.String.Format (Catalog.GetString ("Welcome {0} you are connected to {1}"),
+- auth.User.Username,
++ auth.User.UserName,
+ current_service.Name);
+- auth_flickr.Label = String.Format (Catalog.GetString ("Sign in as a different user"), auth.User.Username);
++ auth_flickr.Label = String.Format (Catalog.GetString ("Sign in as a different user"), auth.User.UserName);
+ used_bandwidth.Visible = !fr.Connection.PeopleGetUploadStatus().IsPro &&
+ fr.Connection.PeopleGetUploadStatus().BandwidthMax > 0;
+ if (used_bandwidth.Visible) {
+@@ -326,7 +326,7 @@
+ progress_dialog.ProgressText = String.Format (Catalog.GetString ("Waiting for response {0} of {1}"),
+ photo_index, selection.Count);
+ }
+- progress_dialog.Fraction = (photo_index - 1.0 + (args.Bytes / (double) info.Length)) / (double) selection.Count;
++ progress_dialog.Fraction = (photo_index - 1.0 + (args.BytesSent / (double) info.Length)) / (double) selection.Count;
+ }
+
+ private class DateComparer : IComparer
+@@ -370,7 +370,7 @@
+ App.Instance.Database.Exports.Create ((photo as FSpot.Photo).Id,
+ (photo as FSpot.Photo).DefaultVersionId,
+ ExportStore.FlickrExportType,
+- auth.User.UserId + ":" + auth.User.Username + ":" + current_service.Name + ":" + id);
++ auth.User.UserId + ":" + auth.User.UserName + ":" + current_service.Name + ":" + id);
+
+ } catch (System.Exception e) {
+ progress_dialog.Message = String.Format (Catalog.GetString ("Error Uploading To {0}: {1}"),
+@@ -393,7 +393,7 @@
+ if (open && ids.Count != 0) {
+ string view_url;
+ if (current_service.Name == "Zooomr.com")
+- view_url = string.Format ("http://www.{0}/photos/{1}/", current_service.Name, auth.User.Username);
++ view_url = string.Format ("http://www.{0}/photos/{1}/", current_service.Name, auth.User.UserName);
+ else {
+ view_url = string.Format ("http://www.{0}/tools/uploader_edit.gne?ids", current_service.Name);
+ bool first = true;
+diff -Naur f-spot-0.8.2.orig/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrRemote.cs f-spot-0.8.2/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrRemote.cs
+--- f-spot-0.8.2.orig/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrRemote.cs 2010-12-19 14:34:42.000000000 +0100
++++ f-spot-0.8.2/src/Extensions/Exporters/FSpot.Exporters.Flickr/FSpot.Exporters.Flickr/FlickrRemote.cs 2011-11-28 15:42:01.000000000 +0100
+@@ -22,7 +22,7 @@
+
+ namespace FSpot.Exporters.Flickr {
+ public class FlickrRemote {
+- public static Licenses licenses;
++ public static LicenseCollection licenses;
+ private string frob;
+ private string token;
+ private Auth auth;
+@@ -62,28 +62,30 @@
+ get { return flickr; }
+ }
+
+- public License[] GetLicenses ()
++ public LicenseCollection GetLicenses ()
+ {
+ // Licenses won't change normally in a user session
+ if (licenses == null) {
+ try {
+ licenses = flickr.PhotosLicensesGetInfo();
+ } catch (FlickrNet.FlickrApiException e ) {
+- Log.Error (e.Code + ": " + e.Verbose );
++ Log.Error (e.Code + ": " + e.OriginalMessage );
+ return null;
+ }
+ }
+- return licenses.LicenseCollection;
++ return licenses;
+ }
+
+ public ArrayList Search (string[] tags, int licenseId)
+ {
+ ArrayList photos_url = new ArrayList ();
+ // Photos photos = flickr.PhotosSearchText (tags, licenseId);
+- Photos photos = flickr.PhotosSearch (tags);
++ PhotoSearchOptions options = new PhotoSearchOptions ();
++ options.Tags = string.Join(",", tags);
++ PhotoCollection photos = flickr.PhotosSearch (options);
+
+ if (photos != null) {
+- foreach (FlickrNet.Photo photo in photos.PhotoCollection) {
++ foreach (FlickrNet.Photo photo in photos) {
+ photos_url.Add (photo.ThumbnailUrl);
+ }
+ }
+@@ -94,10 +96,12 @@
+ public ArrayList Search (string tags, int licenseId)
+ {
+ ArrayList photos_url = new ArrayList ();
+- Photos photos = flickr.PhotosSearchText (tags, licenseId);
++ PhotoSearchOptions options = new PhotoSearchOptions ();
++ options.Tags = tags;
++ PhotoCollection photos = flickr.PhotosSearch (options);
+
+ if (photos != null) {
+- foreach (FlickrNet.Photo photo in photos.PhotoCollection) {
++ foreach (FlickrNet.Photo photo in photos) {
+ photos_url.Add (photo.ThumbnailUrl);
+ }
+ }
+@@ -126,7 +130,7 @@
+
+ return auth;
+ } catch (FlickrNet.FlickrApiException ex) {
+- Log.Error ("Problems logging in to Flickr - " + ex.Verbose);
++ Log.Error ("Problems logging in to Flickr - " + ex.OriginalMessage);
+ return null;
+ }
+ }
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/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..90b7405dc
--- /dev/null
+++ b/extra/faad2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 120668 2011-04-25 22:17:14Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=faad2
+pkgver=2.7
+pkgrel=2
+pkgdesc="ISO AAC audio decoder"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make CFLAGS="${CFLAGS} -fPIC"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" manmdir=/usr/share/man/man1 install
+ mv "${pkgdir}/usr/share/man/man1/faad.man" "${pkgdir}/usr/share/man/man1/faad.1"
+ install -D -m644 common/mp4ff/mp4ff_int_types.h "${pkgdir}/usr/include/mp4ff_int_types.h"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/facile/PKGBUILD b/extra/facile/PKGBUILD
new file mode 100644
index 000000000..6d48f77bd
--- /dev/null
+++ b/extra/facile/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 135660 2011-08-17 06:53:34Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=facile
+pkgver=1.1
+pkgrel=13
+pkgdesc="A Functional Constraint Library"
+arch=(i686 x86_64 'mips64el')
+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..fd6ca6960
--- /dev/null
+++ b/extra/fakechroot/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144961 2011-12-12 08:42:45Z allan $
+# Maintainer : Allan McRae <allan@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=fakechroot
+pkgver=2.16
+pkgrel=1
+pkgdesc="Gives a fake chroot environment"
+arch=('i686' 'x86_64' 'mips64el')
+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=('3ea5efb76664e787450e0cfcefc1b807')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot --sysconfdir=/etc
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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/farsight2/PKGBUILD b/extra/farsight2/PKGBUILD
new file mode 100644
index 000000000..02144244e
--- /dev/null
+++ b/extra/farsight2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140265 2011-10-11 14:15:08Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Díaz <wdiaz@archlinux.us>
+
+pkgname=farsight2
+pkgver=0.0.31
+pkgrel=1
+pkgdesc="Audio/Video conference software for Instant Messengers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://farsight.freedesktop.org"
+license=('LGPL')
+depends=('libnice' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good' 'gstreamer0.10-bad' 'gstreamer0.10-python' 'pygobject')
+optdepends=('gstreamer0.10-ugly-plugins: h264 codec')
+options=('!libtool' '!emptydirs')
+source=(http://farsight.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3771d8268f025b28261cc1e977fab27f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./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..f0bb8176c
--- /dev/null
+++ b/extra/fastjar/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 123670 2011-05-12 09:09:06Z guillaume $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=fastjar
+pkgver=0.98
+pkgrel=1
+pkgdesc="Sun java jar compatible archiver"
+arch=('i686' 'x86_64' 'mips64el')
+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=('d2d264d343d4d0e1575832cc1023c3bf')
+
+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/PKGBUILD b/extra/fbida/PKGBUILD
new file mode 100644
index 000000000..5b52a4e5f
--- /dev/null
+++ b/extra/fbida/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 127739 2011-06-18 00:11:19Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fbida
+pkgver=2.08
+pkgrel=1
+pkgdesc="Few applications to display and elementary edit images: fbi, fbgs, ida, exiftran"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kraxel.org/blog/linux/fbida/"
+license=('GPL2')
+depends=('giflib' 'libtiff' 'libexif' 'lesstif' 'libpng' 'fontconfig')
+makedepends=('libxpm')
+optdepends=('ghostscript: to use fbgs')
+source=(http://www.kraxel.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9b3693ab26a58194e36b479bffb61ed0')
+sha1sums=('597e0953c68112bf7c363b1ccaa94e72100b116a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/ungif/gif/' GNUmakefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" prefix=/usr install
+}
diff --git a/extra/fbset/PKGBUILD b/extra/fbset/PKGBUILD
new file mode 100644
index 000000000..787008d0f
--- /dev/null
+++ b/extra/fbset/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 135993 2011-08-21 06:02:11Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Paul Mattal <pjmattal@elys.com>
+
+pkgname=fbset
+pkgver=2.1
+pkgrel=4
+pkgdesc="Framebuffer setup utility"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -D -m755 fbset "${pkgdir}/usr/sbin/fbset"
+ install -D -m644 fb.modes.5 "${pkgdir}/usr/share/man/man5/fb.modes.5"
+ install -D -m644 fbset.8 "${pkgdir}/usr/share/man/man8/fbset.8"
+ install -D -m644 etc/fb.modes.ATI "${pkgdir}/etc/fb.modes"
+}
diff --git a/extra/fcgi/PKGBUILD b/extra/fcgi/PKGBUILD
new file mode 100644
index 000000000..a093e0fb1
--- /dev/null
+++ b/extra/fcgi/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 137828 2011-09-11 21:00:11Z pierre $
+# 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=7
+depends=('gcc-libs')
+pkgdesc="FASTCgi(fcgi) islanguage independent, high performant extension to CGI"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..00ddeae8a
--- /dev/null
+++ b/extra/fcitx/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 139597 2011-10-03 17:18:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: csslayer <wengxt AT gmail com>
+
+pkgbase=fcitx
+pkgname=('fcitx' 'fcitx-gtk2' 'fcitx-gtk3' 'fcitx-qt')
+pkgver=4.1.2
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/fcitx/"
+license=('GPL')
+makedepends=('cmake' 'intltool' 'doxygen' 'gtk2' 'gtk3' 'qt' 'dbus-glib' 'icu')
+source=("http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('d2d4e725b1c2ed60543d466504954b631d5689e3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_OPENCC=OFF \
+ -DENABLE_GTK3_IM_MODULE=ON \
+ -DENABLE_QT_IM_MODULE=ON
+ make
+}
+
+package_fcitx() {
+ pkgdesc="Free Chinese Input Toy of X - Input Method Server for X window system"
+ depends=('dbus-core' 'pango')
+ install=fcitx.install
+
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ rm -r "${pkgdir}"/usr/lib/{gtk-2.0,gtk-3.0,qt}
+}
+
+package_fcitx-gtk2() {
+ pkgdesc='GTK2 IM Module for fcitx'
+ depends=('gtk2' 'dbus-glib' 'fcitx')
+ install=fcitx-gtk2.install
+
+ cd "${srcdir}"/build/src/frontend/gtk2
+ make DESTDIR="${pkgdir}" install
+}
+
+package_fcitx-gtk3() {
+ pkgdesc='GTK3 IM Module for fcitx'
+ depends=('gtk3' 'dbus-glib' 'fcitx')
+ install=fcitx-gtk3.install
+
+ cd "${srcdir}"/build/src/frontend/gtk3
+ make DESTDIR="${pkgdir}" install
+}
+
+package_fcitx-qt() {
+ pkgdesc='QT IM Module for fcitx'
+ depends=('qt' 'icu' 'fcitx')
+
+ cd "${srcdir}"/build/src/frontend/qt
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/fcitx/fcitx-gtk2.install b/extra/fcitx/fcitx-gtk2.install
new file mode 100644
index 000000000..7503c05eb
--- /dev/null
+++ b/extra/fcitx/fcitx-gtk2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/fcitx/fcitx-gtk3.install b/extra/fcitx/fcitx-gtk3.install
new file mode 100644
index 000000000..b44958797
--- /dev/null
+++ b/extra/fcitx/fcitx-gtk3.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gtk-query-immodules-3.0 --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/fcitx/fcitx.install b/extra/fcitx/fcitx.install
new file mode 100644
index 000000000..316bccffe
--- /dev/null
+++ b/extra/fcitx/fcitx.install
@@ -0,0 +1,12 @@
+post_install() {
+ [[ -x usr/bin/gtk-update-icon-cache ]] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor || true
+ [[ -x usr/bin/update-desktop-database ]] && update-desktop-database -q || true
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/feh/PKGBUILD b/extra/feh/PKGBUILD
new file mode 100644
index 000000000..84b4598bc
--- /dev/null
+++ b/extra/feh/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 141903 2011-11-03 00:30:00Z 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=2.1
+pkgrel=1
+pkgdesc='Fast and light imlib2-based image viewer'
+url='http://feh.finalrewind.org/'
+license=('MIT')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('giblib' 'curl' 'libxinerama')
+optdepends=('perl: feh-cam, webcam wrapper for feh')
+makedepends=('libxt')
+source=("${url}${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('a5964122bf2ee2675eb9423dea7839410806fee9')
+
+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..4ec82f8d7
--- /dev/null
+++ b/extra/festival/PKGBUILD
@@ -0,0 +1,133 @@
+# $Id: PKGBUILD 137968 2011-09-13 09:17:12Z eric $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Simo Leone <neotuli@gmail.com>
+
+pkgname=festival
+pkgver=2.1
+_suffix=release
+pkgrel=3
+pkgdesc="A general multi-lingual speech synthesis system"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'festival-shared-build.patch')
+md5sums=('c93eb3e389ed171ab9abd46afe8897a8'
+ '6920ddc75b042910a3bcfee3ab106938'
+ '6a2ee4fed7c3ebedf197a3b8524ccb87'
+ '84af32a914d996f57bc4cb36fe8cdc97'
+ 'aa80f9250065b318325f16fdad3a4484'
+ 'c30ae990baca40c9c2b1d5cd27502139'
+ '348cc033430aee7989463198818ae74c'
+ '46132b1cd86a982007312def49ab176a')
+
+build() {
+ cd "$srcdir"
+ patch -Np0 -i "$srcdir/festival-shared-build.patch"
+
+ # 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"
+
+ # Avoid 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 libestools.so.${pkgver}.1 "$pkgdir"/usr/lib/libestools.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/benchmark "$pkgdir"/usr/bin/
+ install -m755 examples/dumpfeats "$pkgdir"/usr/bin/
+ install -m755 examples/durmeanstd "$pkgdir"/usr/bin/
+ install -m755 examples/latest "$pkgdir"/usr/bin/
+ install -m755 examples/make_utts "$pkgdir"/usr/bin/
+ install -m755 examples/powmeanstd "$pkgdir"/usr/bin/
+ install -m755 examples/run-festival-script "$pkgdir"/usr/bin/
+ install -m755 examples/saytime "$pkgdir"/usr/bin/
+ install -m755 examples/scfg_parse_text "$pkgdir"/usr/bin/
+ install -m755 examples/text2pos "$pkgdir"/usr/bin/
+ install -m755 examples/text2wave "$pkgdir"/usr/bin
+
+ #libraries
+ install -m644 src/lib/libFestival.a "$pkgdir"/usr/lib/
+ install -m755 src/lib/libFestival.so.* "$pkgdir"/usr/lib/
+ ln -sf libFestival.so.2.1.0 "$pkgdir"/usr/lib/libFestival.so
+
+ #headers
+ install -dm755 "$pkgdir"/usr/include/festival
+ install -m644 -t "$pkgdir"/usr/include/festival src/include/*.h
+
+ mkdir -p "$pkgdir"/usr/share/festival
+ cp -aR lib/* "$pkgdir"/usr/share/festival
+ rm -f $(find "$pkgdir"/usr/share/festival -name Makefile)
+ rm -f $(find "$pkgdir"/usr/bin -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/config.guess b/extra/festival/config.guess
new file mode 100755
index 000000000..f7dd69ecc
--- /dev/null
+++ b/extra/festival/config.guess
@@ -0,0 +1,1516 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
+
+timestamp='2011-08-20'
+
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner. Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/extra/festival/config.sub b/extra/festival/config.sub
new file mode 100755
index 000000000..0d2cddec7
--- /dev/null
+++ b/extra/festival/config.sub
@@ -0,0 +1,1766 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
+
+timestamp='2011-09-09'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 \
+ | ns16k | ns32k \
+ | open8 \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+ | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
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/festival-shared-build.patch b/extra/festival/festival-shared-build.patch
new file mode 100644
index 000000000..edfa38b17
--- /dev/null
+++ b/extra/festival/festival-shared-build.patch
@@ -0,0 +1,72 @@
+--- speech_tools/config/rules/defaults.mak.orig 2007-03-16 12:39:12.000000000 -0400
++++ speech_tools/config/rules/defaults.mak 2007-03-16 12:39:19.000000000 -0400
+@@ -69,15 +69,21 @@
+ MADE_FROM_ABOVE:=$(N)
+ endif
+
++ifneq ($(SHARED),0)
++ LIBTYPE=so
++else
++ LIBTYPE=a
++endif
++
+ ifndef PROJECT_LIBDEPS
+- PROJECT_LIBDEPS = $(foreach l,$(PROJECT_LIBRARIES),$(PROJECT_LIBRARY_DIR_$(l))/lib$(l).a)
++ PROJECT_LIBDEPS = $(foreach l,$(PROJECT_LIBRARIES),$(PROJECT_LIBRARY_DIR_$(l))/lib$(l).$(LIBTYPE))
+ endif
+ ifndef PROJECT_LIBS
+ PROJECT_LIBS = $(foreach l,$(PROJECT_LIBRARIES),-L$(PROJECT_LIBRARY_DIR_$(l)) -l$(l))
+ endif
+
+ ifndef REQUIRED_LIBDEPS
+- REQUIRED_LIBDEPS = $(foreach l,$(REQUIRED_LIBRARIES),$(REQUIRED_LIBRARY_DIR_$(l))/lib$(l).a)
++ REQUIRED_LIBDEPS = $(foreach l,$(REQUIRED_LIBRARIES),$(REQUIRED_LIBRARY_DIR_$(l))/lib$(l).$(LIBTYPE))
+ endif
+ ifndef REQUIRED_LIBS
+ REQUIRED_LIBS = $(foreach l,$(REQUIRED_LIBRARIES),-L$(REQUIRED_LIBRARY_DIR_$(l)) -l$(l))
+--- festival/config/project.mak.orig 2007-03-16 13:01:40.000000000 -0400
++++ festival/config/project.mak 2007-03-16 13:02:24.000000000 -0400
+@@ -84,6 +84,8 @@
+ PROJECT_LIBRARY_DIR_Festival = $(TOP)/src/lib
+ PROJECT_DEFAULT_LIBRARY = Festival
+
++PROJECT_LIBRARY_VERSION_Festival = $(PROJECT_VERSION).0
++
+ # Libraries used from other projects
+
+ REQUIRED_LIBRARIES = estools estbase eststring
+diff -p -up festival/speech_tools/config/compilers/gcc_defaults.mak.bettersoname festival/speech_tools/config/compilers/gcc_defaults.mak
+--- speech_tools/config/compilers/gcc_defaults.mak.bettersoname 2010-12-06 10:25:35.000000000 +0100
++++ speech_tools/config/compilers/gcc_defaults.mak 2010-12-06 10:27:51.000000000 +0100
+@@ -78,7 +78,7 @@ SHARED_CXXFLAGS = -fPIC
+ SHARED_LINKFLAGS =
+
+ ifndef GCC_MAKE_SHARED_LIB
+- MAKE_SHARED_LIB = $(CXX) -shared -fno-shared-data -o XXX
++ MAKE_SHARED_LIB = $(CXX) -shared -fno-shared-data -o XXX -Wl,-soname,YYY
+ else
+ MAKE_SHARED_LIB = $(GCC_MAKE_SHARED_LIB)
+ endif
+diff -p -up festival/speech_tools/config/rules/library.mak.bettersoname festival/speech_tools/config/rules/library.mak
+--- speech_tools/config/rules/library.mak.bettersoname 2001-04-04 13:55:32.000000000 +0200
++++ speech_tools/config/rules/library.mak 2010-12-06 10:25:35.000000000 +0100
+@@ -103,14 +103,14 @@ endif
+ ###########################################################################
+
+ lib%.so : lib%.a
+- @echo Make Shared Library $*
++ @echo Make Shared Library $(*F)
+ @if [ ! -d shared_space ] ; then mkdir shared_space ; else $(RM) -f shared_space/*.o ; fi
+ @(cd shared_space ; $(AR) x ../$< )
+- @echo Link Shared Library $*
+- if [ -n "$(PROJECT_LIBRARY_NEEDS_SYSLIBS_$*)" ] ; then libs='$(JAVA_PROJECT_LIBS)' ; fi ;\
+- $(subst XXX,$@.$(PROJECT_LIBRARY_VERSION_$*),$(MAKE_SHARED_LIB)) shared_space/*.o $(PROJECT_LIBRARY_USES_$*:%=-L. -l%) $$libs
++ @echo Link Shared Library $(*F)
++ if [ -n "$(PROJECT_LIBRARY_NEEDS_SYSLIBS_$(*F))" ] ; then libs='$(JAVA_PROJECT_LIBS)' ; fi ;\
++ $(subst XXX,$@.$(PROJECT_LIBRARY_VERSION_$(*F)),$(subst YYY,$(@F).$(PROJECT_LIBRARY_VERSION_$(*F)),$(MAKE_SHARED_LIB))) shared_space/*.o $(PROJECT_LIBRARY_USES_$(*F):%=-L. -l%) $$libs
+ @$(RM) -f shared_space/*.o $@
+- @ln -s $@.$(PROJECT_LIBRARY_VERSION_$*) $@
++ @ln -s $(@F).$(PROJECT_LIBRARY_VERSION_$(*F)) $@
+
+ ###########################################################################
+ ## ##
diff --git a/extra/festival/speechconfig.patch b/extra/festival/speechconfig.patch
new file mode 100644
index 000000000..76756b1ae
--- /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=2
+
+ ## 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..dd59ca350
--- /dev/null
+++ b/extra/fetchmail/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 138318 2011-09-20 04:51:36Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=fetchmail
+pkgver=6.3.21
+pkgrel=2
+pkgdesc="A remote-mail retrieval utility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://fetchmail.berlios.de/"
+license=('GPL')
+depends=('openssl')
+makedepends=('python2')
+optdepends=('tk: for using fetchmailconf'
+ 'python2: for using fetchmailconf')
+backup=('etc/conf.d/fetchmail')
+options=('!makeflags')
+install=fetchmail.install
+source=(http://download2.berlios.de/fetchmail/${pkgname}-${pkgver}.tar.bz2
+ fetchmail.rc fetchmail.conf)
+md5sums=('0ad8eac47e85bd0ae63870daa09992af'
+ '89fdde15bf81b3a5c065949322b5d138'
+ '8fcd6a22dfbc247755fdd050c5c5c4d3')
+sha1sums=('e32a0d40ec133d651782543ecd7bc9bbee52dff7'
+ '910ec21ad0a619db67e4665189dc46d2a0634ea5'
+ '30401729386d6f774c6c36ab8530842166de54a8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' fetchmailconf.py
+ PYTHON=python2 ./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"
+ install -d "${pkgdir}/var/lib/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..0b1cc6ae3
--- /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/lib/fetchmail' -c 'Fetchmail daemon' -s /bin/false fetchmail
+}
+
+post_upgrade() {
+ getent passwd fetchmail >/dev/null || usr/sbin/useradd -u 90 -g nobody \
+ -d '/var/lib/fetchmail' -c 'Fetchmail daemon' -s /bin/false fetchmail
+
+ if [ "$(vercmp $2 6.3.19-3)" -lt 0 ] ; then
+ usermod -d '/var/lib/fetchmail' -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..6d453a223
--- /dev/null
+++ b/extra/fetchmail/fetchmail.rc
@@ -0,0 +1,40 @@
+#!/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"
+ [ ! -d /var/run/fetchmail ] && install -d -o fetchmail -g nobody -m700 /var/run/fetchmail
+ [ -z "$PID" ] &&
+ su -c "/usr/bin/fetchmail -d $INTERVAL -f $CONFIG" -s /bin/sh fetchmail
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ 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..e727b0dcd
--- /dev/null
+++ b/extra/ffcall/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 128452 2011-06-24 01:23:15Z eric $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Michael Baehr <usemike@spamblocked.com>
+
+pkgname=ffcall
+pkgver=1.10
+pkgrel=4
+pkgdesc="C library for implementing foreign function calls in embedded interpreters"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/libffcall/"
+license=('GPL2')
+options=('!libtool' '!makeflags')
+source=(http://www.haible.de/bruno/gnu/${pkgname}-${pkgver}.tar.gz
+ mipsn32.patch)
+md5sums=('2db95007e901f3bc2ae7e5a9fe9ebea4'
+ '64045515f2664b5544943c6754bf2737')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ [ "$CARCH" = "x86_64" ] && CONFIGFLAG="--with-pic"
+ [ "$CARCH" = "mips64el" ] && {
+ CONFIGFLAG="--with-pic"
+ patch -Np0 -i "$srcdir/mipsn32.patch"
+ }
+
+ ./configure --prefix=/usr --mandir=/usr/share/man $CONFIGFLAG
+
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}"/usr/share/{man,doc/ffcall}
+ make DESTDIR="${pkgdir}" htmldir=/usr/share/doc/ffcall install
+}
diff --git a/extra/ffcall/mipsn32.patch b/extra/ffcall/mipsn32.patch
new file mode 100644
index 000000000..2a667c37c
--- /dev/null
+++ b/extra/ffcall/mipsn32.patch
@@ -0,0 +1,11 @@
+--- autoconf/config.guess.orig 2011-05-08 14:09:55.621461438 -0300
++++ autoconf/config.guess 2011-05-08 14:10:12.225759443 -0300
+@@ -882,7 +882,7 @@
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mips64el
++ CPU=mipsn32
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
diff --git a/extra/ffmpeg/PKGBUILD b/extra/ffmpeg/PKGBUILD
new file mode 100644
index 000000000..02c652099
--- /dev/null
+++ b/extra/ffmpeg/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 144952 2011-12-11 23:12:10Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Paul Mattal <paul@archlinux.org>
+
+pkgname=ffmpeg
+pkgver=20111211
+pkgrel=1
+pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ffmpeg.org/"
+license=('GPL')
+if [ "${CARCH}" = "mips64el" ] ; then
+ depends=(alsa-lib bzip2 gsm lame libpulse libtheora libvorbis libvpx opencore-amr openjpeg rtmpdump schroedinger sdl speex x264 xvidcore zlib)
+ makedepends=('git')
+else
+ depends=(alsa-lib bzip2 gsm lame libpulse libtheora libva libvdpau libvorbis libvpx opencore-amr openjpeg rtmpdump schroedinger sdl speex x264 xvidcore zlib)
+ makedepends=('yasm' 'git')
+fi
+#git clone git://git.videolan.org/ffmpeg.git
+source=(ftp://ftp.archlinux.org/other/ffmpeg/${pkgname}-${pkgver}.tar.xz
+ ffmpeg-loongson.patch)
+md5sums=('75d512bf5137d0b055e54313702ef5fc'
+ '99d412cb539f328dbc37d5ead3407fc7')
+
+build() {
+ cd "$srcdir/$pkgname"
+
+ if [ "$CARCH" = "mips64el" ] ; then
+# Make video decoding faster and turn all pixels green.
+# patch -Np1 -i $srcdir/ffmpeg-loongson.patch
+ extraconf="--disable-runtime-cpudetect --disable-vdpau --disable-vaapi"
+ else
+ extraconf=""
+ fi
+
+ ./configure \
+ --prefix=/usr \
+ --enable-libmp3lame \
+ --enable-libvorbis \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-libvpx \
+ --enable-libtheora \
+ --enable-libgsm \
+ --enable-libspeex \
+ --enable-postproc \
+ --enable-shared \
+ --enable-x11grab \
+ --enable-libopencore_amrnb \
+ --enable-libopencore_amrwb \
+ --enable-libschroedinger \
+ --enable-libopenjpeg \
+ --enable-librtmp \
+ --enable-libpulse \
+ --enable-gpl \
+ --enable-version3 \
+ --enable-runtime-cpudetect \
+ --disable-static \
+ --disable-debug \
+ $extraconf
+
+ make
+ make tools/qt-faststart
+ make doc/ff{mpeg,play,server}.1
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ 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/extra/ffmpeg/ffmpeg-loongson.patch b/extra/ffmpeg/ffmpeg-loongson.patch
new file mode 100644
index 000000000..d576812da
--- /dev/null
+++ b/extra/ffmpeg/ffmpeg-loongson.patch
@@ -0,0 +1,1767 @@
+diff -Nru ffmpeg.orig/configure ffmpeg/configure
+--- ffmpeg.orig/configure 2011-12-09 21:40:32.268783206 +0100
++++ ffmpeg/configure 2011-12-09 21:40:50.408820175 +0100
+@@ -249,6 +249,7 @@
+ --disable-armvfp disable ARM VFP optimizations
+ --disable-iwmmxt disable iwmmxt optimizations
+ --disable-mmi disable MMI optimizations
++ --disable-loongson2mmi disable LOONGSON2 Multi-Media Instructions usage"
+ --disable-neon disable neon optimizations
+ --disable-vis disable VIS optimizations
+ --disable-yasm disable use of yasm assembler
+@@ -1110,6 +1111,7 @@
+ avx
+ iwmmxt
+ mmi
++ loongson2mmi
+ mmx
+ mmx2
+ neon
+@@ -3367,6 +3369,7 @@
+ fi
+ if enabled mips; then
+ echo "MMI enabled ${mmi-no}"
++ echo "LOONGSON2MMI enabled ${loongson2mmi-no}"
+ fi
+ if enabled ppc; then
+ echo "AltiVec enabled ${altivec-no}"
+diff -Nru ffmpeg.orig/libavcodec/avcodec.h ffmpeg/libavcodec/avcodec.h
+--- ffmpeg.orig/libavcodec/avcodec.h 2011-12-09 21:40:31.980782616 +0100
++++ ffmpeg/libavcodec/avcodec.h 2011-12-09 21:40:50.504820368 +0100
+@@ -1824,6 +1824,8 @@
+ #define FF_IDCT_SIMPLENEON 22
+ #define FF_IDCT_SIMPLEALPHA 23
+ #define FF_IDCT_BINK 24
++#define FF_IDCT_LIBMPEG2LOONGSON2 25
++#define FF_IDCT_XVIDLOONGSON2 26
+
+ /**
+ * slice count
+diff -Nru ffmpeg.orig/libavcodec/dsputil.c ffmpeg/libavcodec/dsputil.c
+--- ffmpeg.orig/libavcodec/dsputil.c 2011-12-09 21:40:31.912782478 +0100
++++ ffmpeg/libavcodec/dsputil.c 2011-12-09 21:40:50.568820499 +0100
+@@ -3193,6 +3193,7 @@
+ if (HAVE_MMI) dsputil_init_mmi (c, avctx);
+ if (ARCH_SH4) dsputil_init_sh4 (c, avctx);
+ if (ARCH_BFIN) dsputil_init_bfin (c, avctx);
++ if (HAVE_LOONGSON2MMI) dsputil_init_loongson2(c, avctx);
+
+ for(i=0; i<64; i++){
+ if(!c->put_2tap_qpel_pixels_tab[0][i])
+diff -Nru ffmpeg.orig/libavcodec/dsputil.h ffmpeg/libavcodec/dsputil.h
+--- ffmpeg.orig/libavcodec/dsputil.h 2011-12-09 21:40:31.720782087 +0100
++++ ffmpeg/libavcodec/dsputil.h 2011-12-09 21:40:50.628820621 +0100
+@@ -650,6 +650,7 @@
+ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx);
+ void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx);
+ void dsputil_init_vis(DSPContext* c, AVCodecContext *avctx);
++void dsputil_init_loongson2(DSPContext* c, AVCodecContext *avctx);
+
+ void ff_dsputil_init_dwt(DSPContext *c);
+ void ff_intrax8dsp_init(DSPContext* c, AVCodecContext *avctx);
+diff -Nru ffmpeg.orig/libavcodec/loongson2/dsputil_loongson2.c ffmpeg/libavcodec/loongson2/dsputil_loongson2.c
+--- ffmpeg.orig/libavcodec/loongson2/dsputil_loongson2.c 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/dsputil_loongson2.c 2011-12-09 21:40:50.668820701 +0100
+@@ -0,0 +1,221 @@
++/*
++ * Copyright(C) 2006-2010 comcat <jiankemeng@gmail.com>
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ */
++
++#include "dsputil_loongson2.h"
++#include "../simple_idct.h"
++#include "../mpegvideo.h"
++
++//extern void ff_idct_xvid_loongson2(short *block);
++
++extern void ff_loongson2_idct(DCTELEM *block);
++extern void ff_idct_xvid_loongson2(short *block);
++
++static void add_pixels_clamped_loongson2(const DCTELEM *block, uint8_t *restrict pixels, int line_size)
++{
++ const DCTELEM *p;
++ uint8_t *pix;
++ int i,j;
++ p = block;
++ pix = pixels;
++ i = 4;
++ j = line_size << 1;
++ __asm __volatile("xor $f14, $f14, $f14\n\t");
++ do {
++ __asm __volatile(
++// ".set mips3 \n\t"
++ "ldc1 $f0, 0(%2) \n\t"
++ "ldc1 $f2, 8(%2) \n\t"
++ "ldc1 $f4, 16(%2) \n\t"
++ "ldc1 $f6, 24(%2) \n\t"
++ "ldc1 $f8, %0 \n\t"
++ "ldc1 $f12, %1 \n\t"
++ "mov.d $f10, $f8 \n\t"
++
++ "punpcklbh $f8, $f8, $f14 \n\t"
++ "punpckhbh $f10, $f10, $f14\n\t"
++
++ "paddsh $f0, $f0, $f8 \n\t"
++ "paddsh $f2, $f2, $f10 \n\t"
++
++ "mov.d $f10, $f12 \n\t"
++
++ "punpcklbh $f12, $f12, $f14\n\t"
++ "punpckhbh $f10, $f10, $f14\n\t"
++
++ "paddsh $f4, $f4, $f12 \n\t"
++ "paddsh $f6, $f6, $f10 \n\t"
++
++ "packushb $f0, $f0, $f2 \n\t"
++ "packushb $f4, $f4, $f6 \n\t"
++
++ "sdc1 $f0, %0 \n\t"
++ "sdc1 $f4, %1 \n\t"
++// ".set mips2 \n\t"
++ :"+m"(*pix), "+m"(*(pix+line_size))
++ :"r"(p)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$f12","$f14","memory");
++ pix += j;
++ p += 16;
++ } while (--i);
++
++}
++
++static void put_pixels_clamped_loongson2(const DCTELEM *block, uint8_t *restrict pixels, int line_size)
++{
++ const DCTELEM *p;
++ uint8_t *pix;
++ int tmp = line_size * 3;
++ p = block;
++ pix = pixels;
++ __asm __volatile
++ (
++// ".set mips3 \n\t"
++ //"dadd $12, $0, $0\n\t"
++ //"dadd $13, $0, $0\n\t"
++ //"dadd $14, $0, $0\n\t"
++
++ "ldc1 $f0, 0(%3)\n\t"
++ "ldc1 $f2, 8(%3)\n\t"
++ "ldc1 $f4, 16(%3)\n\t"
++ "ldc1 $f6, 24(%3)\n\t"
++ "ldc1 $f8, 32(%3)\n\t"
++ "ldc1 $f10, 40(%3)\n\t"
++ "ldc1 $f16, 48(%3)\n\t"
++ "ldc1 $f18, 56(%3)\n\t"
++
++ "packushb $f0, $f0, $f2\n\t"
++ "packushb $f4, $f4, $f6\n\t"
++ "packushb $f8, $f8, $f10\n\t"
++ "packushb $f16, $f16, $f18\n\t"
++
++ "add $12, %0, %1\n\t"
++ "add $13, $12, %1\n\t"
++ "add $14, %0, %2\n\t"
++
++ "sdc1 $f0, 0(%0)\n\t"
++ "sdc1 $f4, 0($12)\n\t"
++ "sdc1 $f8, 0($13)\n\t"
++ "sdc1 $f16, 0($14)\n\t"
++// ".set mips2\n\t"
++ :
++ :"r" (pix), "r" (line_size), "r" (tmp), "r"(p)
++ :"$12","$13","$14","$f0","$f2","$f4","$f6","$f8","$f10","$16","$18"
++ );
++
++ pix += line_size*4;
++ p += 32;
++
++ __asm __volatile
++ (
++// ".set mips3 \n\t"
++
++ "dadd $12, $0, $0\n\t"
++ "dadd $13, $0, $0\n\t"
++ "dadd $14, $0, $0\n\t"
++ "lw $12, %3\n\t"
++
++ "ldc1 $f0, 0($12)\n\t"
++ "ldc1 $f2, 8($12)\n\t"
++ "ldc1 $f4, 16($12)\n\t"
++ "ldc1 $f6, 24($12)\n\t"
++ "ldc1 $f8, 32($12)\n\t"
++ "ldc1 $f10, 40($12)\n\t"
++ "ldc1 $f16, 48($12)\n\t"
++ "ldc1 $f18, 56($12)\n\t"
++
++ "packushb $f0, $f0, $f2\n\t"
++ "packushb $f4, $f4, $f6\n\t"
++ "packushb $f8, $f8, $f10\n\t"
++ "packushb $f16, $f16, $f18\n\t"
++
++ "add $12, %1, %0\n\t"
++ "add $13, $12, %1\n\t"
++ "add $15, %2, %0\n\t"
++
++ "sdc1 $f0, 0(%0)\n\t"
++ "sdc1 $f4, 0($12)\n\t"
++
++ "sdc1 $f8, 0($13)\n\t"
++ "sdc1 $f16, 0($15)\n\t"
++// ".set mips2\n\t"
++ :
++ :"r" (pix), "r" (line_size), "r" (tmp), "m"(p)
++ :"$12","$13","$15","$f0","$f2","$f4","$f6","$f8","$f10","$16","$18","memory"
++ );
++
++}
++
++/*
++void put_signed_pixels_clamped_loongson2(const DCTELEM *block, uint8_t *pixels, int line_size)
++{
++
++}
++
++
++void ff_loongson2_idct_put(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_loongson2_idct(block);
++ put_pixels_clamped_loongson2(block, dest, line_size);
++}
++
++void ff_loongson2_idct_add(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_loongson2_idct(block);
++ add_pixels_clamped_loongson2(block, dest, line_size);
++}*/
++
++static void ff_idct_xvid_loongson2_put(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_idct_xvid_loongson2(block);
++ put_pixels_clamped_loongson2(block, dest, line_size);
++}
++
++static void ff_idct_xvid_loongson2_add(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_idct_xvid_loongson2(block);
++ add_pixels_clamped_loongson2(block, dest, line_size);
++}
++
++void dsputil_init_loongson2(DSPContext *c, AVCodecContext *avctx)
++{
++
++ const int idct_algo = avctx->idct_algo;
++
++/*
++#ifdef CONFIG_ENCODERS
++ const int dct_algo = avctx->dct_algo;
++ if(dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_LOONGSON2)
++ c->fdct = ff_fdct_loongson2;
++#endif
++*/
++
++#if 0
++ if(avctx->lowres==0)
++ {
++ if(idct_algo == FF_IDCT_LIBMPEG2LOONGSON2)
++ {
++ c->idct_add = ff_loongson2_idct_add;
++ c->idct_put = ff_loongson2_idct_put;
++ c->idct = ff_loongson2_idct;
++ }
++ else if(idct_algo == FF_IDCT_XVIDLOONGSON2)
++ {
++#endif
++ c->idct_add = ff_idct_xvid_loongson2_add;
++ c->idct_put = ff_idct_xvid_loongson2_put;
++ c->idct = ff_idct_xvid_loongson2;
++ //}
++ //}
++
++ c->put_pixels_clamped = put_pixels_clamped_loongson2;
++ c->add_pixels_clamped = add_pixels_clamped_loongson2;
++
++#ifdef CONFIG_ENCODERS
++ dsputil_init_pix_loongson2(c, avctx);
++#endif
++
++}
+diff -Nru ffmpeg.orig/libavcodec/loongson2/dsputil_loongson2.d ffmpeg/libavcodec/loongson2/dsputil_loongson2.d
+--- ffmpeg.orig/libavcodec/loongson2/dsputil_loongson2.d 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/dsputil_loongson2.d 2011-12-09 21:40:50.680820726 +0100
+@@ -0,0 +1,18 @@
++libavcodec/loongson2/dsputil_loongson2.o: \
++ libavcodec/loongson2/dsputil_loongson2.c \
++ libavcodec/loongson2/dsputil_loongson2.h libavcodec/dsputil.h \
++ libavutil/intreadwrite.h config.h libavutil/bswap.h \
++ libavutil/attributes.h libavutil/common.h libavutil/intmath.h \
++ libavutil/mem.h libavutil/internal.h libavutil/timer.h libavutil/libm.h \
++ libavutil/mips/intreadwrite.h libavcodec/avcodec.h libavutil/avutil.h \
++ libavutil/error.h libavutil/avutil.h libavutil/mathematics.h \
++ libavutil/rational.h libavutil/intfloat_readwrite.h libavutil/log.h \
++ libavutil/pixfmt.h libavutil/avconfig.h \
++ libavcodec/loongson2/../simple_idct.h libavcodec/loongson2/../dsputil.h \
++ libavcodec/loongson2/../mpegvideo.h libavcodec/loongson2/../get_bits.h \
++ libavutil/bswap.h libavutil/common.h libavutil/log.h \
++ libavcodec/loongson2/../mathops.h libavcodec/loongson2/../mips/mathops.h \
++ libavcodec/loongson2/../put_bits.h libavcodec/loongson2/../ratecontrol.h \
++ libavcodec/loongson2/../eval.h libavcodec/loongson2/../parser.h \
++ libavcodec/loongson2/../avcodec.h libavcodec/loongson2/../mpeg12data.h \
++ libavutil/rational.h libavcodec/loongson2/../rl.h
+diff -Nru ffmpeg.orig/libavcodec/loongson2/dsputil_loongson2.h ffmpeg/libavcodec/loongson2/dsputil_loongson2.h
+--- ffmpeg.orig/libavcodec/loongson2/dsputil_loongson2.h 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/dsputil_loongson2.h 2011-12-09 21:40:50.692820753 +0100
+@@ -0,0 +1,3 @@
++#include "libavcodec/dsputil.h"
++
++void dsputil_init_pix_loongson2(DSPContext* c, AVCodecContext *avctx);
+diff -Nru ffmpeg.orig/libavcodec/loongson2/idct_loongson2.c ffmpeg/libavcodec/loongson2/idct_loongson2.c
+--- ffmpeg.orig/libavcodec/loongson2/idct_loongson2.c 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/idct_loongson2.c 2011-12-09 21:40:50.744820857 +0100
+@@ -0,0 +1,336 @@
++/*
++ * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
++ * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
++ *
++ * Copyright (c) 2007-2010 comcat <jiankemeng@gmail.com>.
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ * Based on i386
++ */
++
++#include "libavutil/common.h"
++#include "dsputil_loongson2.h"
++
++
++#define ATTR_ALIGN(align) __attribute__ ((__aligned__ (align)))
++
++
++#define ROW_SHIFT 11
++#define COL_SHIFT 6
++
++#define round(bias) ((int)(((bias)+0.5) * (1<<ROW_SHIFT)))
++#define rounder(bias) {round (bias), round (bias)}
++
++
++
++#define loongson2_table(c1,c2,c3,c4,c5,c6,c7) { c4,c2,-c4,-c2, \
++ c4,c6,c4,c6, \
++ c1,c3,-c1,-c5,\
++ c5,c7,c3,-c7, \
++ c4,-c6,c4,-c6, \
++ -c4,c2,c4,-c2, \
++ c5,-c1,c3,-c1, \
++ c7,c3,c7,-c5 }
++
++
++static inline void loongson2_row_head(int16_t * const row, const int offset,
++ const int16_t * const table)
++{
++ __asm__ volatile(
++// ".set\tmips3\n"
++ ".set noreorder\n"
++ "ldc1 $f6,%0\n"
++ "ldc1 $f14,%1\n"
++ "ldc1 $f2,%2\n"
++ "ldc1 $f8,%3\n"
++ "dli $12,%4\n"
++ "dmtc1 $12,$f16\n"
++ "mov.d $f4,$f6\n"
++ "mov.d $f10,$f14\n"
++ "pmaddhw $f2,$f2,$f4\n"
++ "pshufh $f6,$f6,$f16\n"
++ ".set reorder\n"
++// ".set\tmips0\n"
++ :
++ :"m"(*(row+offset)),"m"(*(row+offset+4)),"m"(*table),"m"(*(table+4)),"i"(0x4e)
++ :"$f2","$f4","$f6","$f8","$f10","$f14","$f16","$12"
++ );
++}
++
++
++static inline void loongson2_row(const int16_t * const table,
++ const int32_t * const rounder)
++{
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "ldc1 $f0,%0\n"
++ "pmaddhw $f8,$f8,$f6\n"
++ "ldc1 $f16,%1\n"
++ "dli $13,%8\n"
++ "ldc1 $f20,%2\n"
++ "pmaddhw $f0,$f0,$f14\n"
++ "ldc1 $f22,%3\n"
++ "pmaddhw $f4,$f4,$f16\n"
++ "paddw $f2,$f2,$f22\n"
++ "ldc1 $f22,%4\n"
++ "dmtc1 $13,$f16\n"
++ "paddw $f2,$f2,$f8\n"
++ "pmaddhw $f14,$f14,$f22\n"
++ "mov.d $f8,$f2\n"
++ "pshufh $f10,$f10,$f16\n"
++ "ldc1 $f22,%3\n"
++ "pmaddhw $f20,$f20,$f10\n"
++ "ldc1 $f16,%5\n"
++ "paddw $f4,$f4,$f22\n"
++ "paddw $f0,$f0,$f20\n"
++ "dli $12,%6\n"
++ "pmaddhw $f6,$f6,$f16\n"
++ "psubw $f2,$f2,$f0\n"
++ "ldc1 $f16,%7\n"
++ "paddw $f0,$f0,$f8\n"
++ "paddw $f4,$f4,$f6\n"
++ "pmaddhw $f10,$f10,$f16\n"
++ "mov.d $f8,$f4\n"
++ "dmtc1 $12,$f16\n"
++ "paddw $f14,$f14,$f10\n"
++ "psraw $f2,$f2,$f16\n"
++ "psraw $f0,$f0,$f16\n"
++ "paddw $f4,$f4,$f14\n"
++ "psubw $f8,$f8,$f14\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :
++ :"m"(*(table+8)),"m"(*(table+16)),"m"(*(table+12)),"m"(*rounder),"m"(*(table+24)),"m"(*(table+20)),"i"(ROW_SHIFT),"m"(*(table+16)),"i"(0x4e)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$f14","$f16","$f20","$f22","$12","$13","memory"
++ );
++}
++
++static inline void loongson2_row_tail(int16_t * const row, const int store)
++{
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "dli $12,%2\n"
++ "dmtc1 $12,$f16\n"
++ "psraw $f4,$f4,$f16\n"
++ "psraw $f8,$f8,$f16\n"
++ "packsswh $f0,$f0,$f4\n"
++ "packsswh $f8,$f8,$f2\n"
++ "sdc1 $f0,%0\n"
++ "dli $13,%3\n"
++ "dmtc1 $13,$f22\n"
++ "pshufh $f8,$f8,$f22\n"
++ "sdc1 $f8,%1\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :"=m"(*(row+store)),"=m"(*(row+store+4))
++ :"i"(ROW_SHIFT),"i"(0xb1)
++ :"$f0","$f2","$f4","$f6","$f8","$f16","$f22","$12","$13","memory"
++ );
++}
++
++static inline void loongson2_row_mid(int16_t * const row, const int store,
++ const int offset,
++ const int16_t * const table)
++{
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "ldc1 $f6,%2\n"
++ "dli $12,%3\n"
++ "dmtc1 $12,$f16\n"
++ "psraw $f4,$f4,$f16\n"
++ "ldc1 $f14,%4\n"
++ "psraw $f8,$f8,$f16\n"
++ "packsswh $f0,$f0,$f4\n"
++ "mov.d $f10,$f14\n"
++ "packsswh $f8,$f8,$f2\n"
++ "mov.d $f4,$f6\n"
++ "sdc1 $f0,%0\n"
++ "dli $13,%5\n"
++ "dmtc1 $13,$f22\n"
++ "pshufh $f8,$f8,$f22\n"
++ "ldc1 $f2,%6\n"
++ "sdc1 $f8,%1\n"
++ "pmaddhw $f2,$f2,$f4\n"
++ "ldc1 $f8,%7\n"
++ "dli $12,%8\n"
++ "dmtc1 $12,$f16\n"
++ "pshufh $f6,$f6,$f16\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :"=m"(*(row+store)),"=m"(*(row+store+4))
++ : "m"(*(row+offset)),"i"(ROW_SHIFT),"m"(*(row+offset+4)),"i"(0xb1),"m"(*table),"m"(*(table+4)),"i"(0x4e)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$14","$f16","$f22","$12","$13","memory"
++ );
++}
++
++static inline void idct_col(int16_t * const col, const int offset)
++{
++#define T1 13036
++#define T2 27146
++#define T3 43790
++#define C4 23170
++ static const short _T1[] ATTR_ALIGN(8) = {T1,T1,T1,T1};
++ static const short _T2[] ATTR_ALIGN(8) = {T2,T2,T2,T2};
++ static const short _T3[] ATTR_ALIGN(8) = {T3,T3,T3,T3};
++ static const short _C4[] ATTR_ALIGN(8) = {C4,C4,C4,C4};
++
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "ldc1 $f4,%8\n"
++ "ldc1 $f0,%9\n"
++ "mov.d $f6,$f4\n"
++ "ldc1 $f8,%10\n"
++ "pmulhh $f4,$f4,$f0\n"
++ "ldc1 $f14,%11\n"
++ "pmulhh $f6,$f6,$f8\n"
++ "ldc1 $f10,%12\n"
++ "mov.d $f20,$f14\n"
++ "ldc1 $f2,%13\n"
++ "psubsh $f4,$f4,$f8\n"
++ "ldc1 $f8,%14\n"
++ "pmulhh $f14,$f14,$f2\n"
++ "paddsh $f0,$f0,$f6\n"
++ "pmulhh $f20,$f20,$f10\n"
++ "mov.d $f6,$f8\n"
++ "paddsh $f14,$f14,$f2\n"
++ "ldc1 $f16,%15\n"
++ "pmulhh $f8,$f8,$f16\n"
++ "paddsh $f20,$f20,$f10\n"
++ "psubsh $f14,$f14,$f10\n"
++ "paddsh $f20,$f20,$f2\n"
++ "ldc1 $f2,%16\n"
++ "mov.d $f10,$f4\n"
++ "pmulhh $f6,$f6,$f2\n"
++ "psubsh $f4,$f4,$f14\n"
++ "psubsh $f8,$f8,$f2\n"
++ "paddsh $f14,$f14,$f10\n"
++ "sdc1 $f4,%0\n"
++ "mov.d $f10,$f0\n"
++ "ldc1 $f22,%15\n"
++ "paddsh $f6,$f6,$f22\n"
++ "paddsh $f10,$f10,$f20\n"
++ "psubsh $f0,$f0,$f20\n"
++ "mov.d $f20,$f0\n"
++ "ldc1 $f2,%17\n"
++ "paddsh $f0,$f0,$f14\n"
++ "ldc1 $f4,%18\n"
++ "psubsh $f20,$f20,$f14\n"
++ "sdc1 $f10,%1\n"
++ "pmulhh $f0,$f0,$f4\n"
++ "mov.d $f10,$f8\n"
++ "pmulhh $f20,$f20,$f4\n"
++ "ldc1 $f14,%19\n"
++ "mov.d $f4,$f2\n"
++ "psubsh $f2,$f2,$f14\n"
++ "paddsh $f4,$f4,$f14\n"
++ "paddsh $f8,$f8,$f2\n"
++ "mov.d $f14,$f4\n"
++ "psubsh $f2,$f2,$f10\n"
++ "paddsh $f14,$f14,$f6\n"
++ "paddsh $f0,$f0,$f0\n"
++ "psubsh $f4,$f4,$f6\n"
++ "paddsh $f20,$f20,$f20\n"
++ "mov.d $f6,$f2\n"
++ "mov.d $f10,$f8\n"
++ "paddsh $f2,$f2,$f20\n"
++ "dli $12,%20\n"
++ "dmtc1 $12,$f16\n"
++ "psrah $f2,$f2,$f16\n"
++ "paddsh $f8,$f8,$f0\n"
++ "psrah $f8,$f8,$f16\n"
++ "psubsh $f10,$f10,$f0\n"
++ "ldc1 $f0,%12\n"
++ "psubsh $f6,$f6,$f20\n"
++ "psrah $f10,$f10,$f16\n"
++ "mov.d $f20,$f14\n"
++ "sdc1 $f8,%2\n"
++ "psrah $f6,$f6,$f16\n"
++ "sdc1 $f2,%3\n"
++ "paddsh $f14,$f14,$f0\n"
++ "ldc1 $f8,%13\n"
++ "psubsh $f20,$f20,$f0\n"
++ "psrah $f14,$f14,$f16\n"
++ "mov.d $f2,$f4\n"
++ "sdc1 $f6,%1\n"
++ "psubsh $f2,$f2,$f8\n"
++ "psrah $f20,$f20,$f16\n"
++ "paddsh $f8,$f8,$f4\n"
++ "sdc1 $f14,%4\n"
++ "psrah $f2,$f2,$f16\n"
++ "sdc1 $f10,%5\n"
++ "psrah $f8,$f8,$f16\n"
++ "sdc1 $f20,%6\n"
++ "sdc1 $f2,%7\n"
++ "sdc1 $f8,%0\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :"=m"(*(col+offset+3*8)),"=m"(*(col+offset+5*8)),"=m"(*(col+offset+1*8)),"=m"(*(col+offset+2*8)),"=m"(*(col+offset+0*8)),"=m"(*(col+offset+6*8)),"=m"(*(col+offset+7*8)),"=m"(*(col+offset+4*8))
++ :"m"(*_T1),"m"(*(col+offset+1*8)),"m"(*(col+offset+7*8)),"m"(*_T3),"m"(*(col+offset+5*8)),"m"(*(col+offset+3*8)),"m"(*_T2),"m"(*(col+offset+2*8)),"m"(*(col+offset+6*8)),"m"(*(col+offset+0*8)),"m"(*_C4),"m"(*(col+offset+4*8)),"i"(COL_SHIFT)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$14","$f16","$20","$f22","$12","memory"
++ );
++}
++
++static const int32_t rounder0[] ATTR_ALIGN(8) =
++ rounder ((1 << (COL_SHIFT - 1)) - 0.5);
++static const int32_t rounder4[] ATTR_ALIGN(8) = rounder (0);
++static const int32_t rounder1[] ATTR_ALIGN(8) =
++ rounder (1.25683487303); /* C1*(C1/C4+C1+C7)/2 */
++static const int32_t rounder7[] ATTR_ALIGN(8) =
++ rounder (-0.25); /* C1*(C7/C4+C7-C1)/2 */
++static const int32_t rounder2[] ATTR_ALIGN(8) =
++ rounder (0.60355339059); /* C2 * (C6+C2)/2 */
++static const int32_t rounder6[] ATTR_ALIGN(8) =
++ rounder (-0.25); /* C2 * (C6-C2)/2 */
++static const int32_t rounder3[] ATTR_ALIGN(8) =
++ rounder (0.087788325588); /* C3*(-C3/C4+C3+C5)/2 */
++static const int32_t rounder5[] ATTR_ALIGN(8) =
++ rounder (-0.441341716183); /* C3*(-C5/C4+C5-C3)/2 */
++
++
++#undef COL_SHIFT
++#undef ROW_SHIFT
++
++
++#define declare_idct(idct,table,idct_row_head,idct_row,idct_row_tail,idct_row_mid) \
++inline void idct (int16_t * const block) \
++{ \
++ static const int16_t table04[] ATTR_ALIGN(16) = \
++ table (22725, 21407, 19266, 16384, 12873, 8867, 4520); \
++ static const int16_t table17[] ATTR_ALIGN(16) = \
++ table (31521, 29692, 26722, 22725, 17855, 12299, 6270); \
++ static const int16_t table26[] ATTR_ALIGN(16) = \
++ table (29692, 27969, 25172, 21407, 16819, 11585, 5906); \
++ static const int16_t table35[] ATTR_ALIGN(16) = \
++ table (26722, 25172, 22654, 19266, 15137, 10426, 5315); \
++ \
++ idct_row_head (block, 0*8, table04); \
++ idct_row (table04, rounder0); \
++ idct_row_mid (block, 0*8, 4*8, table04); \
++ idct_row (table04, rounder4); \
++ idct_row_mid (block, 4*8, 1*8, table17); \
++ idct_row (table17, rounder1); \
++ idct_row_mid (block, 1*8, 7*8, table17); \
++ idct_row (table17, rounder7); \
++ idct_row_mid (block, 7*8, 2*8, table26); \
++ idct_row (table26, rounder2); \
++ idct_row_mid (block, 2*8, 6*8, table26); \
++ idct_row (table26, rounder6); \
++ idct_row_mid (block, 6*8, 3*8, table35); \
++ idct_row (table35, rounder3); \
++ idct_row_mid (block, 3*8, 5*8, table35); \
++ idct_row (table35, rounder5); \
++ idct_row_tail (block, 5*8); \
++ \
++ idct_col (block, 0); \
++ idct_col (block, 4); \
++}
++
++void ff_loongson2_idct(DCTELEM *block);
++
++declare_idct (ff_loongson2_idct, loongson2_table,
++ loongson2_row_head, loongson2_row, loongson2_row_tail, loongson2_row_mid)
+diff -Nru ffmpeg.orig/libavcodec/loongson2/idct_loongson2_xvid.c ffmpeg/libavcodec/loongson2/idct_loongson2_xvid.c
+--- ffmpeg.orig/libavcodec/loongson2/idct_loongson2_xvid.c 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/idct_loongson2_xvid.c 2011-12-09 22:38:11.227175456 +0100
+@@ -0,0 +1,301 @@
++/*
++ * XVID MPEG-4 VIDEO CODEC
++ *
++ * Copyright(C) 2006-2010 comcat <jiankemeng@gmail.com>
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ * Based on i386
++ *
++ */
++
++
++#include <inttypes.h>
++#include "../avcodec.h"
++
++void ff_idct_xvid_loongson2(short *block);
++
++//=============================================================================
++// Macros and other preprocessor constants
++//=============================================================================
++
++#define BITS_INV_ACC 5 // 4 or 5 for IEEE
++#define SHIFT_INV_ROW (16 - BITS_INV_ACC) //11
++#define SHIFT_INV_COL (1 + BITS_INV_ACC) //6
++#define RND_INV_ROW (1024 * (6 - BITS_INV_ACC))
++#define RND_INV_COL (16 * (BITS_INV_ACC - 3))
++#define RND_INV_CORR (RND_INV_COL - 1)
++
++#define BITS_FRW_ACC 3 // 2 or 3 for accuracy
++#define SHIFT_FRW_COL BITS_FRW_ACC
++#define SHIFT_FRW_ROW (BITS_FRW_ACC + 17)
++#define RND_FRW_ROW (262144*(BITS_FRW_ACC - 1))
++
++
++//-----------------------------------------------------------------------------
++// Various memory constants (trigonometric values or rounding values)
++//-----------------------------------------------------------------------------
++
++DECLARE_ALIGNED(8, static const int16_t, tg_1_16)[4*4] = {
++ 13036,13036,13036,13036, // tg * (2<<16) + 0.5
++ 27146,27146,27146,27146, // tg * (2<<16) + 0.5
++ -21746,-21746,-21746,-21746, // tg * (2<<16) + 0.5
++ 23170,23170,23170,23170}; // cos * (2<<15) + 0.5
++
++DECLARE_ALIGNED(8, static const int32_t, rounder_0)[2*8] = {
++ 65536,65536,
++ 3597,3597,
++ 2260,2260,
++ 1203,1203,
++ 0,0,
++ 120,120,
++ 512,512,
++ 512,512};
++
++
++// Table for rows 0,4 - constants are multiplied by cos_4_16
++DECLARE_ALIGNED(8, static const int16_t, tab_i_04_mmx)[32*4] = {
++ 16384,16384,16384,-16384, // movq-> w06 w04 w02 w00
++ 21407,8867,8867,-21407, // w07 w05 w03 w01
++ 16384,-16384,16384,16384, // w14 w12 w10 w08
++ -8867,21407,-21407,-8867, // w15 w13 w11 w09
++ 22725,12873,19266,-22725, // w22 w20 w18 w16
++ 19266,4520,-4520,-12873, // w23 w21 w19 w17
++ 12873,4520,4520,19266, // w30 w28 w26 w24
++ -22725,19266,-12873,-22725, // w31 w29 w27 w25
++// Table for rows 1,7 - constants are multiplied by cos_1_16
++ 22725,22725,22725,-22725, // movq-> w06 w04 w02 w00
++ 29692,12299,12299,-29692, // w07 w05 w03 w01
++ 22725,-22725,22725,22725, // w14 w12 w10 w08
++ -12299,29692,-29692,-12299, // w15 w13 w11 w09
++ 31521,17855,26722,-31521, // w22 w20 w18 w16
++ 26722,6270,-6270,-17855, // w23 w21 w19 w17
++ 17855,6270,6270,26722, // w30 w28 w26 w24
++ -31521,26722,-17855,-31521, // w31 w29 w27 w25
++// Table for rows 2,6 - constants are multiplied by cos_2_16
++ 21407,21407,21407,-21407, // movq-> w06 w04 w02 w00
++ 27969,11585,11585,-27969, // w07 w05 w03 w01
++ 21407,-21407,21407,21407, // w14 w12 w10 w08
++ -11585,27969,-27969,-11585, // w15 w13 w11 w09
++ 29692,16819,25172,-29692, // w22 w20 w18 w16
++ 25172,5906,-5906,-16819, // w23 w21 w19 w17
++ 16819,5906,5906,25172, // w30 w28 w26 w24
++ -29692,25172,-16819,-29692, // w31 w29 w27 w25
++// Table for rows 3,5 - constants are multiplied by cos_3_16
++ 19266,19266,19266,-19266, // movq-> w06 w04 w02 w00
++ 25172,10426,10426,-25172, // w07 w05 w03 w01
++ 19266,-19266,19266,19266, // w14 w12 w10 w08
++ -10426,25172,-25172,-10426, // w15 w13 w11 w09
++ 26722,15137,22654,-26722, // w22 w20 w18 w16
++ 22654,5315,-5315,-15137, // w23 w21 w19 w17
++ 15137,5315,5315,22654, // w30 w28 w26 w24
++ -26722,22654,-15137,-26722, // w31 w29 w27 w25
++};
++
++
++// %3 for rows 0,4 - constants are multiplied by cos_4_16
++DECLARE_ALIGNED(8, static const int16_t, tab_i_04_xmm)[32*4] = {
++ 16384,21407,16384,8867, // movq-> w05 w04 w01 w00
++ 16384,8867,-16384,-21407, // w07 w06 w03 w02
++ 16384,-8867,16384,-21407, // w13 w12 w09 w08
++ -16384,21407,16384,-8867, // w15 w14 w11 w10
++ 22725,19266,19266,-4520, // w21 w20 w17 w16
++ 12873,4520,-22725,-12873, // w23 w22 w19 w18
++ 12873,-22725,4520,-12873, // w29 w28 w25 w24
++ 4520,19266,19266,-22725, // w31 w30 w27 w26
++// %3 for rows 1,7 - constants are multiplied by cos_1_16
++ 22725,29692,22725,12299, // movq-> w05 w04 w01 w00
++ 22725,12299,-22725,-29692, // w07 w06 w03 w02
++ 22725,-12299,22725,-29692, // w13 w12 w09 w08
++ -22725,29692,22725,-12299, // w15 w14 w11 w10
++ 31521,26722,26722,-6270, // w21 w20 w17 w16
++ 17855,6270,-31521,-17855, // w23 w22 w19 w18
++ 17855,-31521,6270,-17855, // w29 w28 w25 w24
++ 6270,26722,26722,-31521, // w31 w30 w27 w26
++// %3 for rows 2,6 - constants are multiplied by cos_2_16
++ 21407,27969,21407,11585, // movq-> w05 w04 w01 w00
++ 21407,11585,-21407,-27969, // w07 w06 w03 w02
++ 21407,-11585,21407,-27969, // w13 w12 w09 w08
++ -21407,27969,21407,-11585, // w15 w14 w11 w10
++ 29692,25172,25172,-5906, // w21 w20 w17 w16
++ 16819,5906,-29692,-16819, // w23 w22 w19 w18
++ 16819,-29692,5906,-16819, // w29 w28 w25 w24
++ 5906,25172,25172,-29692, // w31 w30 w27 w26
++// %3 for rows 3,5 - constants are multiplied by cos_3_16
++ 19266,25172,19266,10426, // movq-> w05 w04 w01 w00
++ 19266,10426,-19266,-25172, // w07 w06 w03 w02
++ 19266,-10426,19266,-25172, // w13 w12 w09 w08
++ -19266,25172,19266,-10426, // w15 w14 w11 w10
++ 26722,22654,22654,-5315, // w21 w20 w17 w16
++ 15137,5315,-26722,-15137, // w23 w22 w19 w18
++ 15137,-26722,5315,-15137, // w29 w28 w25 w24
++ 5315,22654,22654,-26722, // w31 w30 w27 w26
++};
++
++
++
++#define DCT_8_INV_ROW_LOONGSON2(A1,A2,A3,A4)\
++ "ldc1 $f0, " #A1 " \n\t"/* 0 ; x3 x2 x1 x0*/\
++ "ldc1 $f2, 8+" #A1 " \n\t"/* 1 ; x7 x6 x5 x4*/\
++ "mov.d $f4, $f0 \n\t"/* 2 ; x3 x2 x1 x0*/\
++ "ldc1 $f6, " #A3 " \n\t"/* 3 ; w05 w04 w01 w00*/\
++ "li $12, 0x88 \n\t"\
++ "dmtc1 $12, $f16 \n\t"\
++ "pshufh $f0, $f0, $f16 \n\t"/* x2 x0 x2 x0*/\
++ "ldc1 $f8, 8+" #A3 " \n\t"/* 4 ; w07 w06 w03 w02*/\
++ "mov.d $f10, $f2 \n\t"/* 5 ; x7 x6 x5 x4*/\
++ "pmaddhw $f6, $f6, $f0 \n\t"/* x2*w05+x0*w04 x2*w01+x0*w00*/\
++ "ldc1 $f12, 32+" #A3 " \n\t"/* 6 ; w21 w20 w17 w16*/\
++ "pshufh $f2, $f2, $f16 \n\t"/* x6 x4 x6 x4*/\
++ "pmaddhw $f8, $f8, $f2 \n\t"/* x6*w07+x4*w06 x6*w03+x4*w02*/\
++ "li $12, 0xdd \n\t"\
++ "dmtc1 $12, $f16 \n\t"\
++ "ldc1 $f14, 40+" #A3 " \n\t"/* 7 ; w23 w22 w19 w18*/\
++ "pshufh $f4, $f4, $f16 \n\t"/* x3 x1 x3 x1*/\
++ "pmaddhw $f12, $f12, $f4 \n\t"/* x3*w21+x1*w20 x3*w17+x1*w16*/\
++ "ldc1 $f18, " #A4 " \n\t" \
++ "ldc1 $f20, 16+" #A3 " \n\t" \
++ "ldc1 $f22, 24+" #A3 " \n\t" \
++ "ldc1 $f24, 48+" #A3 " \n\t" \
++ "ldc1 $f26, 56+" #A3 " \n\t" \
++ "pshufh $f10, $f10, $f16 \n\t"/* x7 x5 x7 x5*/\
++ "pmaddhw $f14, $f14, $f10 \n\t"/* x7*w23+x5*w22 x7*w19+x5*w18*/\
++ "paddw $f6, $f6, $f18 \n\t"/* +%4*/\
++ "pmaddhw $f0, $f0, $f20 \n\t"/* x2*w13+x0*w12 x2*w09+x0*w08*/\
++ "paddw $f6, $f6, $f8 \n\t"/* 4 ; a1=sum(even1) a0=sum(even0)*/\
++ "pmaddhw $f2, $f2, $f22 \n\t"/* x6*w15+x4*w14 x6*w11+x4*w10*/\
++ "mov.d $f8, $f6 \n\t"/* 4 ; a1 a0*/\
++ "li $12, 11 \n\t"\
++ "dmtc1 $12, $f16 \n\t"\
++ "pmaddhw $f4, $f4, $f24 \n\t"/* x3*w29+x1*w28 x3*w25+x1*w24*/\
++ "paddw $f12, $f12, $f14 \n\t"/* 7 ; b1=sum(odd1) b0=sum(odd0)*/\
++ "pmaddhw $f10, $f10, $f26 \n\t"/* x7*w31+x5*w30 x7*w27+x5*w26*/\
++ "paddw $f6, $f6, $f12 \n\t"/* a1+b1 a0+b0*/\
++ "paddw $f0, $f0, $f18 \n\t"/* +%4*/\
++ "psraw $f6, $f6, $f16 \n\t"/* y1=a1+b1 y0=a0+b0*/\
++ "paddw $f0, $f0, $f2 \n\t"/* 1 ; a3=sum(even3) a2=sum(even2)*/\
++ "psubw $f8, $f8, $f12 \n\t"/* 6 ; a1-b1 a0-b0*/\
++ "mov.d $f14, $f0 \n\t"/* 7 ; a3 a2*/\
++ "paddw $f4, $f4, $f10 \n\t"/* 5 ; b3=sum(odd3) b2=sum(odd2)*/\
++ "paddw $f0, $f0, $f4 \n\t"/* a3+b3 a2+b2*/\
++ "psraw $f8, $f8, $f16 \n\t"/* y6=a1-b1 y7=a0-b0*/\
++ "psubw $f14, $f14, $f4 \n\t"/* 2 ; a3-b3 a2-b2*/\
++ "psraw $f0, $f0, $f16 \n\t"/* y3=a3+b3 y2=a2+b2*/\
++ "psraw $f14, $f14, $f16 \n\t"/* y4=a3-b3 y5=a2-b2*/\
++ "li $12, 0xb1 \n\t"\
++ "dmtc1 $12, $f20 \n\t"\
++ "packsswh $f6, $f6, $f0 \n\t"/* 0 ; y3 y2 y1 y0*/\
++ "packsswh $f14, $f14, $f8 \n\t"/* 4 ; y6 y7 y4 y5*/\
++ "sdc1 $f6, " #A2 " \n\t"/* 3 ; save y3 y2 y1 y0*/\
++ "pshufh $f14, $f14, $f20 \n\t"/* y7 y6 y5 y4*/\
++ "sdc1 $f14, 8 +" #A2 " \n\t"/* 7 ; save y7 y6 y5 y4*/
++
++
++#define DCT_8_INV_COL(A1,A2)\
++ "ldc1 $f0, 2*8(%3) \n\t"/* */\
++ "ldc1 $f6, 16*3+" #A1 " \n\t"/* x3 */\
++ "mov.d $f2, $f0 \n\t"/* tg_3_16*/\
++ "ldc1 $f10, 16*5+" #A1 " \n\t"/* x5 */\
++ "pmulhh $f0, $f0, $f6 \n\t"/* x3*(tg_3_16-1)*/\
++ "ldc1 $f8, (%3) \n\t"\
++ "pmulhh $f2, $f2, $f10 \n\t"/* x5*(tg_3_16-1)*/\
++ "ldc1 $f14, 16*7+" #A1 " \n\t"/* x7 */\
++ "mov.d $f4, $f8 \n\t"/* tg_1_16*/\
++ "ldc1 $f12, 16*1+" #A1 " \n\t"/* x1 */\
++ "pmulhh $f8, $f8, $f14 \n\t"/* x7*tg_1_16*/\
++ "paddsh $f0, $f0, $f6 \n\t"/* x3*tg_3_16*/\
++ "pmulhh $f4, $f4, $f12 \n\t"/* x1*tg_1_16*/\
++ "paddsh $f2, $f2, $f6 \n\t"/* x3+x5*(tg_3_16-1)*/\
++ "psubsh $f0, $f0, $f10 \n\t"/* x3*tg_3_16-x5 = tm35*/\
++ "ldc1 $f6, 3*8(%3) \n\t"\
++ "paddsh $f2, $f2, $f10 \n\t"/* x3+x5*tg_3_16 = tp35*/\
++ "paddsh $f8, $f8, $f12 \n\t"/* x1+tg_1_16*x7 = tp17*/\
++ "psubsh $f4, $f4, $f14 \n\t"/* x1*tg_1_16-x7 = tm17*/\
++ "mov.d $f10, $f8 \n\t"/* tp17*/\
++ "mov.d $f12, $f4 \n\t"/* tm17*/\
++ "paddsh $f10, $f10, $f2 \n\t"/* tp17+tp35 = b0*/\
++ "psubsh $f12, $f12, $f0 \n\t"/* tm17-tm35 = b3*/\
++ "psubsh $f8, $f8, $f2 \n\t"/* tp17-tp35 = t1*/\
++ "paddsh $f4, $f4, $f0 \n\t"/* tm17+tm35 = t2*/\
++ "ldc1 $f14, 1*8(%3) \n\t"\
++ "mov.d $f2, $f8 \n\t"/* t1*/\
++ "sdc1 $f10, 3*16+" #A2 " \n\t"/* save b0*/\
++ "paddsh $f2, $f2, $f4 \n\t"/* t1+t2*/\
++ "sdc1 $f12, 5*16+" #A2 " \n\t"/* save b3*/\
++ "psubsh $f8, $f8, $f4 \n\t"/* t1-t2*/\
++ "ldc1 $f10, 2*16+" #A1 " \n\t"\
++ "mov.d $f0, $f14 \n\t"/* tg_2_16*/\
++ "ldc1 $f12, 6*16+" #A1 " \n\t"\
++ "pmulhh $f0, $f0, $f10 \n\t"/* x2*tg_2_16*/\
++ "pmulhh $f14, $f14, $f12 \n\t"/* x6*tg_2_16*/\
++ "pmulhh $f2, $f2, $f6 \n\t"/* ocos_4_16*(t1+t2) = b1/2*/\
++ "ldc1 $f4, 0*16+" #A1 " \n\t"\
++ "pmulhh $f8, $f8, $f6 \n\t"/* ocos_4_16*(t1-t2) = b2/2*/\
++ "psubsh $f0, $f0, $f12 \n\t"/* t2*tg_2_16-x6 = tm26*/\
++ "mov.d $f6, $f4 \n\t"/* x0*/\
++ "ldc1 $f12, 4*16+" #A1 " \n\t"\
++ "paddsh $f14, $f14, $f10 \n\t"/* x2+x6*tg_2_16 = tp26*/\
++ "paddsh $f4, $f4, $f12 \n\t"/* x0+x4 = tp04*/\
++ "psubsh $f6, $f6, $f12 \n\t"/* x0-x4 = tm04*/\
++ "mov.d $f10, $f4 \n\t"/* tp04*/\
++ "mov.d $f12, $f6 \n\t"/* tm04*/\
++ "psubsh $f4, $f4, $f14 \n\t"/* tp04-tp26 = a3*/\
++ "paddsh $f6, $f6, $f0 \n\t"/* tm04+tm26 = a1*/\
++ "paddsh $f2, $f2, $f2 \n\t"/* b1*/\
++ "paddsh $f8, $f8, $f8 \n\t"/* b2*/\
++ "paddsh $f10, $f10, $f14 \n\t"/* tp04+tp26 = a0*/\
++ "psubsh $f12, $f12, $f0 \n\t"/* tm04-tm26 = a2*/\
++ "li $12, 6 \n\t"\
++ "dmtc1 $12, $f18 \n\t"\
++ "mov.d $f14, $f6 \n\t"/* a1*/\
++ "mov.d $f0, $f12 \n\t"/* a2*/\
++ "paddsh $f6, $f6, $f2 \n\t"/* a1+b1*/\
++ "paddsh $f12, $f12, $f8 \n\t"/* a2+b2*/\
++ "psrah $f6, $f6, $f18 \n\t"/* dst1*/\
++ "psubsh $f14, $f14, $f2 \n\t"/* a1-b1*/\
++ "psrah $f12, $f12, $f18 \n\t"/* dst2*/\
++ "psubsh $f0, $f0, $f8 \n\t"/* a2-b2*/\
++ "ldc1 $f2, 3*16+" #A2 " \n\t"/* load b0*/\
++ "psrah $f14, $f14, $f18 \n\t"/* dst6*/\
++ "mov.d $f8, $f10 \n\t"/* a0*/\
++ "psrah $f0, $f0, $f18 \n\t"/* dst5*/\
++ "sdc1 $f6, 1*16+" #A2 " \n\t"\
++ "paddsh $f10, $f10, $f2 \n\t"/* a0+b0*/\
++ "sdc1 $f12, 2*16+" #A2 " \n\t"\
++ "psubsh $f8, $f8, $f2 \n\t"/* a0-b0*/\
++ "ldc1 $f6, 5*16+" #A2 " \n\t"/* load b3*/\
++ "psrah $f10, $f10, $f18 \n\t"/* dst0*/\
++ "mov.d $f12, $f4 \n\t"/* a3*/\
++ "psrah $f8, $f8, $f18 \n\t"/* dst7*/\
++ "sdc1 $f0, 5*16+" #A2 " \n\t"\
++ "paddsh $f4, $f4, $f6 \n\t"/* a3+b3*/\
++ "sdc1 $f14, 6*16+" #A2 " \n\t"\
++ "psubsh $f12, $f12, $f6 \n\t"/* a3-b3*/\
++ "sdc1 $f10, 0*16+" #A2 " \n\t"\
++ "psrah $f4, $f4, $f18 \n\t"/* dst3*/\
++ "sdc1 $f8, 7*16+" #A2 " \n\t"\
++ "psrah $f12, $f12, $f18 \n\t"/* dst4*/\
++ "sdc1 $f4, 3*16+" #A2 " \n\t"\
++ "sdc1 $f12, 4*16+" #A2 " \n\t"
++
++
++
++void ff_idct_xvid_loongson2(short *block){
++ __asm__ volatile(
++ //# Process each row
++ DCT_8_INV_ROW_LOONGSON2(0*16(%0), 0*16(%0), 64*0(%2), 8*0(%1))
++ DCT_8_INV_ROW_LOONGSON2(1*16(%0), 1*16(%0), 64*1(%2), 8*1(%1))
++ DCT_8_INV_ROW_LOONGSON2(2*16(%0), 2*16(%0), 64*2(%2), 8*2(%1))
++ DCT_8_INV_ROW_LOONGSON2(3*16(%0), 3*16(%0), 64*3(%2), 8*3(%1))
++ DCT_8_INV_ROW_LOONGSON2(4*16(%0), 4*16(%0), 64*0(%2), 8*4(%1))
++ DCT_8_INV_ROW_LOONGSON2(5*16(%0), 5*16(%0), 64*3(%2), 8*5(%1))
++ DCT_8_INV_ROW_LOONGSON2(6*16(%0), 6*16(%0), 64*2(%2), 8*6(%1))
++ DCT_8_INV_ROW_LOONGSON2(7*16(%0), 7*16(%0), 64*1(%2), 8*7(%1))
++
++ //# Process the columns (4 at a time)
++ DCT_8_INV_COL(0(%0), 0(%0))
++ DCT_8_INV_COL(8(%0), 8(%0))
++ :
++ : "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$f12","$f14","$f18","$f16","$20","$22","$24","$26");
++}
+diff -Nru ffmpeg.orig/libavcodec/loongson2/motion_est_loongson2.c ffmpeg/libavcodec/loongson2/motion_est_loongson2.c
+--- ffmpeg.orig/libavcodec/loongson2/motion_est_loongson2.c 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/motion_est_loongson2.c 2011-12-09 23:25:15.247445391 +0100
+@@ -0,0 +1,365 @@
++/*
++ * Loongson2E MMI optimized motion estimation
++ * Copyright (c) 2007 comcat <jiankemeng@gmail.com>.
++ *
++ * based on Michael Niedermayer <michaelni@gmx.at>
++ *
++ */
++
++#include "dsputil_loongson2.h"
++#include "../avcodec.h"
++
++DECLARE_ASM_CONST(8, uint64_t, round_tab)[3]={
++ 0x0000000000000000ULL,
++ 0x0001000100010001ULL,
++ 0x0002000200020002ULL,
++};
++
++DECLARE_ASM_CONST(8, uint64_t, bone)= 0x0101010101010101LL;
++
++static inline void sad8_1_loongson2(uint8_t *blk1, uint8_t *blk2, int stride, int h)
++{
++ long len= -(stride*h);
++ __asm__ volatile(
++
++// ".set mips3 \n\t"
++ ".align 4 \n\t"
++
++ "move $8, %0 \n\t"
++ "move $21, %1 \n\t"
++ "move $22, %2 \n\t"
++ "move $23, %3 \n\t"
++
++ "1: \n\t"
++
++ "add $9, $8, $21 \n\t"
++ "add $10, $8, $22 \n\t"
++
++ "uld $11, ($9) \n\t"
++ "dmtc1 $11, $f0 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f4 \n\t"
++
++ "pasubub $f10, $f0, $f4 \n\t"
++ "biadd $f0, $f10 \n\t"
++
++ "add $8, $8, $23 \n\t"
++
++ "add $9, $8, $21 \n\t"
++ "add $10, $8, $22 \n\t"
++
++ "uld $11, ($9) \n\t"
++ "dmtc1 $11, $f2 \n\t"
++
++ "uld $12, ($10) \n\t"
++ "dmtc1 $12, $f6 \n\t"
++
++ "pasubub $f16, $f2, $f6 \n\t"
++ "biadd $f6, $f16 \n\t"
++
++ "paddh $f0, $f0, $f6 \n\t"
++
++ "paddh $f12, $f12, $f0 \n\t"
++
++ "bltz $8, 1b \n\t"
++ "add $8, $8, $23 \n\t"
++
++ : "+r" (len)
++ : "r" (blk1 - len), "r" (blk2 - len), "r" ((long)stride)
++ : "$8", "$9", "$10", "$21", "$22", "$23", "$f0", "$f2", "$f4", "$f6", "$f10", "$f16"
++ );
++}
++
++static inline void sad8_2_loongson2(uint8_t *blk1a, uint8_t *blk1b, uint8_t *blk2, int stride, int h)
++{
++ long len= -(stride*h);
++ __asm__ volatile(
++
++// ".set mips3 \n\t"
++ ".align 4 \n\t"
++
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f0 \n\t"
++ "uld $13, ($10) \n\t"
++ "dmtc1 $13, $f4 \n\t"
++
++ "pavgb $f0, $f0, $f4 \n\t"
++
++ "uld $12, ($11) \n\t"
++ "dmtc1 $12, $f4 \n\t"
++
++ "pasubub $f10, $f0, $f4 \n\t"
++ "biadd $f0, $f10 \n\t"
++
++ "add $8, $8, %4 \n\t"
++
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++ "uld $13, ($10) \n\t"
++ "dmtc1 $13, $f6 \n\t"
++
++ "pavgb $f6, $f6, $f2 \n\t"
++
++ "uld $12, ($11) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++
++ "pasubub $f16, $f6, $f2 \n\t"
++ "biadd $f6, $f16 \n\t"
++
++ "paddh $f0, $f0, $f6 \n\t"
++ "paddh $f12, $f12, $f0 \n\t"
++
++ "bltz $8, 1b \n\t"
++ "add $8, $8, %4 \n\t"
++ : "+r" (len)
++ : "r" (blk1a - len), "r" (blk1b -len), "r" (blk2 - len), "r" ((long)stride)
++ : "$8", "$9", "$10", "$11", "$12", "$13", "$f0", "$f2", "$f4", "$f6", "$f10", "$f16"
++ );
++}
++
++static inline void sad8_4_loongson2(uint8_t *blk1, uint8_t *blk2, int stride, int h)
++{
++ long len= -(stride*h);
++ __asm__ volatile(
++
++
++// ".set mips3 \n\t"
++ ".align 4 \n\t"
++
++ "ldc1 $f10, "MANGLE(bone)" \n\t"
++
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f0 \n\t"
++
++ "uld $13, ($10) \n\t"
++ "dmtc1 $13, $f4 \n\t"
++
++ "uld $12, 1($9) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++
++ "uld $13, 1($10) \n\t"
++ "dmtc1 $13, $f6 \n\t"
++
++ "pavgb $f0, $f0, $f4 \n\t"
++ "pavgb $f6, $f6, $f2 \n\t"
++
++ "psubusb $f6, $f6, $f10 \n\t"
++ "pavgb $f0, $f0, $f6 \n\t"
++
++ "uld $13, 1($11) \n\t"
++ "dmtc1 $13, $f4 \n\t"
++
++ "pasubub $f16, $f0, $f4 \n\t"
++ "biadd $f0, $f16 \n\t"
++
++ "add $8, $8, %4 \n\t"
++
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++ "uld $13, ($10) \n\t"
++ "dmtc1 $12, $f6 \n\t"
++ "uld $12, 1($9) \n\t"
++ "dmtc1 $12, $f4 \n\t"
++ "uld $13, 1($10) \n\t"
++ "dmtc1 $12, $f8 \n\t"
++
++ "pavgb $f2, $f2, $f6 \n\t"
++ "pavgb $f4, $f4, $f8 \n\t"
++
++ "psubusb $f4, $f4, $f10 \n\t"
++ "pavgb $f4, $f4, $f2 \n\t"
++
++ "uld $13, ($11) \n\t"
++ "dmtc1 $13, $f2 \n\t"
++
++ "pasubub $f18, $f4, $f2 \n\t"
++ "biadd $f4, $f18 \n\t"
++
++ "paddh $f0, $f0, $f4 \n\t"
++ "paddh $f12, $f12, $f0 \n\t"
++
++ "bltz $8, 1b \n\t"
++ "add $8, $8, %4 \n\t"
++ : "+r" (len)
++ : "r" (blk1 - len), "r" (blk1 - len + stride), "r" (blk2 - len), "r" ((long)stride)
++ : "$8", "$9", "$10", "$11", "$12", "$13", "$f0", "$f2", "$f4", "$f6", "$f8", "$f10", "$f16", "$f18"
++ );
++}
++
++static inline int sum_loongson2(void)
++{
++ int ret;
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "dmfc1 %0, $f12 \n\t"
++ : "=r" (ret)
++ );
++ return ret;
++}
++
++
++static int sad8_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ :
++ );
++
++ sad8_1_loongson2(blk1, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad8_x2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1, blk1+1, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad8_y2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1, blk1+stride, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad8_xy2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[2])
++ );
++
++ sad8_4_loongson2(blk1, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad16_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t":);
++
++ sad8_1_loongson2(blk1 , blk2 , stride, h);
++ sad8_1_loongson2(blk1+8, blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++static int sad16_x2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1 , blk1+1, blk2 , stride, h);
++ sad8_2_loongson2(blk1+8, blk1+9, blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++static int sad16_y2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1 , blk1+stride, blk2 , stride, h);
++ sad8_2_loongson2(blk1+8, blk1+stride+8,blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++static int sad16_xy2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[2])
++ );
++
++ sad8_4_loongson2(blk1 , blk2 , stride, h);
++ sad8_4_loongson2(blk1+8, blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++
++void dsputil_init_pix_loongson2(DSPContext* c, AVCodecContext *avctx)
++{
++ c->pix_abs[0][0] = sad16_loongson2;
++ c->pix_abs[0][1] = sad16_x2_loongson2;
++ c->pix_abs[0][2] = sad16_y2_loongson2;
++ c->pix_abs[0][3] = sad16_xy2_loongson2;
++ c->pix_abs[1][0] = sad8_loongson2;
++ c->pix_abs[1][1] = sad8_x2_loongson2;
++ c->pix_abs[1][2] = sad8_y2_loongson2;
++ c->pix_abs[1][3] = sad8_xy2_loongson2;
++
++ c->sad[0]= sad16_loongson2;
++ c->sad[1]= sad8_loongson2;
++}
+diff -Nru ffmpeg.orig/libavcodec/loongson2/mpegvideo_loongson2.c ffmpeg/libavcodec/loongson2/mpegvideo_loongson2.c
+--- ffmpeg.orig/libavcodec/loongson2/mpegvideo_loongson2.c 1970-01-01 01:00:00.000000000 +0100
++++ ffmpeg/libavcodec/loongson2/mpegvideo_loongson2.c 2011-12-09 21:40:50.828821027 +0100
+@@ -0,0 +1,385 @@
++/*
++ * The simplest mpeg encoder (well, it was the simplest!)
++ * Copyright (c) 2007-2010 comcat <jiankemeng@gmail.com>.
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ * Based on i386
++ */
++
++#include "dsputil_loongson2.h"
++#include "../mpegvideo.h"
++#include "../avcodec.h"
++
++extern uint8_t zigzag_direct_noperm[64];
++extern uint16_t inv_zigzag_direct16[64];
++
++static const unsigned long long int mm_wabs __attribute__ ((aligned(8))) = 0xffffffffffffffffULL;
++static const unsigned long long int mm_wone __attribute__ ((aligned(8))) = 0x0001000100010001ULL;
++
++
++static void dct_unquantize_h263_intra_loongson2(MpegEncContext *s,
++ DCTELEM *block, int n, int qscale)
++{
++ long level, qmul, qadd, nCoeffs;
++
++ qmul = qscale << 1;
++
++ assert(s->block_last_index[n]>=0 || s->h263_aic);
++ if (!s->h263_aic) {
++ if (n < 4)
++ level = block[0] * s->y_dc_scale;
++ else
++ level = block[0] * s->c_dc_scale;
++ qadd = (qscale - 1) | 1;
++ }else{
++ qadd = 0;
++ level= block[0];
++ }
++ if(s->ac_pred)
++ nCoeffs=63;
++ else
++ nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
++
++
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "xor $f12, $f12, $f12 \n\t"
++ "lwc1 $f12, %1 \n\t"
++
++ "xor $f10, $f10, $f10 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "lwc1 $f10, %2 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "xor $f14, $f14, $f14 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "xor $f8, $f8, $f8 \n\t"
++
++ "psubh $f14, $f14, $f10 \n\t"
++
++
++ "1: \n\t"
++ "add $12, %0, %3 \n\t"
++
++ "ldc1 $f0, ($12) \n\t"
++
++ "ldc1 $f2, 8($12) \n\t"
++
++ "mov.d $f4, $f0 \n\t"
++ "mov.d $f6, $f2 \n\t"
++
++ "pmullh $f0, $f0, $f12 \n\t"
++ "pmullh $f2, $f2, $f12 \n\t"
++
++ "pcmpgth $f4, $f4, $f8 \n\t"
++ "pcmpgth $f6, $f6, $f8 \n\t"
++
++ "xor $f0, $f0, $f4 \n\t"
++ "xor $f2, $f2, $f6 \n\t"
++
++
++ "paddh $f0, $f0, $f14 \n\t"
++
++ "paddh $f2, $f2, $f14 \n\t"
++
++
++ "xor $f4, $f4, $f0 \n\t"
++
++ "xor $f6, $f6, $f2 \n\t"
++
++
++ "pcmpeqh $f0, $f0, $f14 \n\t"
++
++ "pcmpeqh $f2, $f2, $f14 \n\t"
++
++
++ "pandn $f0, $f0, $f4 \n\t"
++
++ "pandn $f2, $f2, $f6 \n\t"
++
++
++ "sdc1 $f0, ($12) \n\t"
++
++ "sdc1 $f2, 8($12) \n\t"
++
++
++ "addiu %3, %3, 16 \n\t"
++
++ "blez %3, 1b \n\t"
++ "nop \n\t"
++ ::"r" (block+nCoeffs), "m"(qmul), "m" (qadd), "r" (2*(-nCoeffs))
++ : "memory"
++ );
++ block[0]= level;
++}
++
++
++static void dct_unquantize_h263_inter_loongson2(MpegEncContext *s,
++ DCTELEM *block, int n, int qscale)
++{
++ long qmul, qadd, nCoeffs;
++
++ qmul = qscale << 1;
++ qadd = (qscale - 1) | 1;
++
++ assert(s->block_last_index[n]>=0 || s->h263_aic);
++
++ nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
++
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "xor $f12, $f12, $f12 \n\t"
++ "lwc1 $f12, %1 \n\t"
++
++ "xor $f10, $f10, $f10 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "lwc1 $f10, %2 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "xor $f14, $f14, $f14 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "xor $f8, $f8, $f8 \n\t"
++
++ "psubh $f14, $f14, $f10 \n\t"
++
++
++ "1: \n\t"
++ "add $12, %0, %3 \n\t"
++
++ "ldc1 $f0, ($12) \n\t"
++
++ "ldc1 $f2, 8($12) \n\t"
++
++ "mov.d $f4, $f0 \n\t"
++ "mov.d $f6, $f2 \n\t"
++
++ "pmullh $f0, $f0, $f12 \n\t"
++
++ "pmullh $f2, $f2, $f12 \n\t"
++
++ "pcmpgth $f4, $f4, $f8 \n\t"
++
++ "pcmpgth $f6, $f6, $f8 \n\t"
++
++ "xor $f0, $f0, $f4 \n\t"
++
++ "xor $f2, $f2, $f6 \n\t"
++
++ "paddh $f0, $f0, $f14 \n\t"
++
++ "paddh $f2, $f2, $f14 \n\t"
++
++ "xor $f4, $f4, $f0 \n\t"
++
++ "xor $f6, $f6, $f2 \n\t"
++
++ "pcmpeqh $f0, $f0, $f14 \n\t"
++
++ "pcmpeqh $f2, $f2, $f14 \n\t"
++
++ "pandn $f0, $f0, $f4 \n\t"
++
++ "pandn $f2, $f2, $f6 \n\t"
++
++ "sdc1 $f0, ($12) \n\t"
++
++ "sdc1 $f2, 8($12) \n\t"
++
++
++ "addiu %3, %3, 16 \n\t"
++
++ "blez %3, 1b \n\t"
++ "nop \n\t"
++ ::"r" (block+nCoeffs), "m"(qmul), "m" (qadd), "r" (2*(-nCoeffs))
++ : "memory"
++ );
++}
++
++
++/* draw the edges of width 'w' of an image of size width, height
++ this mmx version can only handle w==8 || w==16 */
++
++static void draw_edges_loongson2(uint8_t *buf, int wrap, int width, int height, int w)
++{
++ uint8_t *ptr, *last_line;
++ int i;
++
++ last_line = buf + (height - 1) * wrap;
++
++ ptr = buf;
++ if(w==8)
++ {
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "move $9, %0 \n\t"
++
++ "1: \n\t"
++
++ "xor $f0, $f0, $f0 \n\t"
++ "lwc1 $f0, ($9) \n\t"
++
++ "punpcklbh $f0, $f0, $f0 \n\t"
++
++ "add $12, $9, %2 \n\t"
++
++ "punpcklhw $f0, $f0, $f0 \n\t"
++
++ "punpcklwd $f0, $f0, $f0 \n\t"
++
++ "ldc1 $f2, -8($12) \n\t"
++
++ "sdc1 $f0, -8($9) \n\t"
++
++ "punpckhbh $f2, $f2, $f2 \n\t"
++
++ "add $9, $9, %1 \n\t"
++
++ "punpckhhw $f2, $f2, $f2 \n\t"
++
++ "sub $13, $9, %3 \n\t"
++
++ "punpckhwd $f2, $f2, $f2 \n\t"
++
++ "bltz $13, 1b \n\t"
++
++ "sdc1 $f2, ($12) \n\t"
++
++ : "+r" (ptr)
++ : "r" ((long)wrap), "r" ((long)width), "r" (ptr + wrap*height)
++ : "$9", "$13", "$12", "$f2", "$f0"
++ );
++ }
++ else
++ {
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++
++ "xor $f0, $f0, $f0 \n\t"
++ "lwc1 $f0, ($8) \n\t"
++
++ "punpcklbh $f0, $f0, $f0 \n\t"
++ "punpcklhw $f0, $f0, $f0 \n\t"
++ "punpcklwd $f0, $f0, $f0 \n\t"
++
++ "sdc1 $f0, -8($8) \n\t"
++ "sdc1 $f0, -16($8) \n\t"
++
++ "add $15, $8, %2 \n\t"
++ "ldc1 $f2, -8($15) \n\t"
++
++ "punpckhbh $f2, $f2, $f2 \n\t"
++ "punpckhhw $f2, $f2, $f2 \n\t"
++ "punpckhwd $f2, $f2, $f2 \n\t"
++
++ "sdc1 $f2, ($15) \n\t"
++ "sdc1 $f2, 8($15) \n\t"
++
++ "add $8, $8, %1 \n\t"
++
++ "sub $16, $8, %3 \n\t"
++ "bltz $16, 1b \n\t"
++ "nop \n\t"
++ : "+r" (ptr)
++ : "r" ((long)wrap), "r" ((long)width), "r" (ptr + wrap*height)
++ : "$8", "$15", "$16", "$f0", "$f2"
++ );
++ }
++
++ for(i=0;i<w;i+=4) {
++
++ ptr= buf - (i + 1) * wrap - w;
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++
++ "add $9, $8, %1 \n\t"
++ "ldc1 $f0, ($9) \n\t"
++
++ "add $10, $8, %2 \n\t"
++ "add $11, $10, %2 \n\t"
++ "add $12, $8, %3 \n\t"
++
++ "sdc1 $f0, ($8) \n\t"
++ "sdc1 $f0, ($10) \n\t"
++ "sdc1 $f0, ($11) \n\t"
++ "sdc1 $f0, ($12) \n\t"
++
++ "addiu $8, $8, 8 \n\t"
++
++ "sub $13, $8, %4 \n\t"
++
++ "bltz $13, 1b \n\t"
++ "nop \n\t"
++
++ : "+r" (ptr)
++ : "r" (((long)buf - (long)ptr - w)), "r" ((long)-wrap), "r" ((long)-wrap*3), "r" (*(ptr+width+2*w))
++ : "$8", "$9", "$10", "$11", "$12", "$13", "$f0"
++ );
++
++ ptr= last_line + (i + 1) * wrap - w;
++
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "move $9, %0 \n\t"
++
++ "1: \n\t"
++
++ "add $10, $9, %1 \n\t"
++ "ldc1 $f0, ($10) \n\t"
++
++ "add $11, $9, %2 \n\t"
++ "add $12, $11, %2 \n\t"
++ "add $13, $9, %3 \n\t"
++
++ "sdc1 $f0, ($9) \n\t"
++ "sdc1 $f0, ($11) \n\t"
++ "sdc1 $f0, ($12) \n\t"
++ "sdc1 $f0, ($13) \n\t"
++
++ "addiu $9, $9, 8 \n\t"
++
++ "sub $14, $9, %4 \n\t"
++
++ "bltz $14, 1b \n\t"
++ "nop \n\t"
++ : "+r" (ptr)
++ : "r" ((long)last_line - (long)ptr - w), "r" ((long)wrap), "r" ((long)wrap*3), "r" (ptr+width+2*w)
++ : "$9", "$10", "$11", "$12", "$13", "$14", "$f0"
++
++ );
++ }
++}
++
++void MPV_common_init_loongson2(MpegEncContext *s)
++{
++ s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_loongson2;
++ s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_loongson2;
++
++// draw_edges = draw_edges_loongson2;
++
++}
+diff -Nru ffmpeg.orig/libavcodec/mips/Makefile ffmpeg/libavcodec/mips/Makefile
+--- ffmpeg.orig/libavcodec/mips/Makefile 2011-12-09 21:40:31.700782047 +0100
++++ ffmpeg/libavcodec/mips/Makefile 2011-12-09 21:40:50.836821045 +0100
+@@ -1,3 +1,9 @@
+ OBJS-$(HAVE_MMI) += ps2/dsputil_mmi.o \
+ ps2/idct_mmi.o \
+ ps2/mpegvideo_mmi.o \
++
++OBJS-$(HAVE_LOONGSON2MMI) += loongson2/idct_loongson2.o \
++ loongson2/dsputil_loongson2.o \
++ loongson2/idct_loongson2_xvid.o \
++ loongson2/mpegvideo_loongson2.o \
++ loongson2/motion_est_loongson2.o
+diff -Nru ffmpeg.orig/libavcodec/mpegvideo.c ffmpeg/libavcodec/mpegvideo.c
+--- ffmpeg.orig/libavcodec/mpegvideo.c 2011-12-09 21:40:31.644781931 +0100
++++ ffmpeg/libavcodec/mpegvideo.c 2011-12-09 21:40:50.868821109 +0100
+@@ -182,6 +182,9 @@
+ #elif ARCH_BFIN
+ MPV_common_init_bfin(s);
+ #endif
++#ifdef HAVE_LOONGSON2MMI
++ MPV_common_init_loongson2(s);
++#endif
+
+ /* load & permutate scantables
+ note: only wmv uses different ones
+diff -Nru ffmpeg.orig/libavcodec/mpegvideo.h ffmpeg/libavcodec/mpegvideo.h
+--- ffmpeg.orig/libavcodec/mpegvideo.h 2011-12-09 21:40:31.728782103 +0100
++++ ffmpeg/libavcodec/mpegvideo.h 2011-12-09 21:40:50.892821159 +0100
+@@ -704,6 +704,7 @@
+ void MPV_common_init_mmx(MpegEncContext *s);
+ void MPV_common_init_axp(MpegEncContext *s);
+ void MPV_common_init_mlib(MpegEncContext *s);
++void MPV_common_init_loongson2(MpegEncContext *s);
+ void MPV_common_init_mmi(MpegEncContext *s);
+ void MPV_common_init_arm(MpegEncContext *s);
+ void MPV_common_init_altivec(MpegEncContext *s);
+diff -Nru ffmpeg.orig/libavcodec/options.c ffmpeg/libavcodec/options.c
+--- ffmpeg.orig/libavcodec/options.c 2011-12-09 21:40:31.820782292 +0100
++++ ffmpeg/libavcodec/options.c 2011-12-09 21:45:31.645390878 +0100
+@@ -251,6 +251,8 @@
+ {"simple", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLE }, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"simplemmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"libmpeg2mmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_LIBMPEG2MMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
++{"libmpeg2loongson2", NULL, 0, AV_OPT_TYPE_CONST, FF_IDCT_LIBMPEG2LOONGSON2, INT_MIN, INT_MAX, V|E|D, "idct"},
++{"xvidloongson2", NULL, 0, AV_OPT_TYPE_CONST, FF_IDCT_XVIDLOONGSON2, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"ps2", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_PS2 }, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"mlib", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_MLIB }, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"arm", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
diff --git a/extra/ffmpegthumbnailer/PKGBUILD b/extra/ffmpegthumbnailer/PKGBUILD
new file mode 100644
index 000000000..568d9f583
--- /dev/null
+++ b/extra/ffmpegthumbnailer/PKGBUILD
@@ -0,0 +1,34 @@
+# $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.7
+pkgrel=2
+pkgdesc="Lightweight video thumbnailer that can be used by file managers."
+url="http://code.google.com/p/ffmpegthumbnailer/"
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ffmpeg' 'libjpeg' 'libpng')
+optdepends=('gvfs: support for gio uris')
+source=("http://ffmpegthumbnailer.googlecode.com/files/$pkgname-$pkgver.tar.gz"
+ 'ffmpegthumbnailer.desktop')
+options=('!libtool')
+sha1sums=('b8f5371aa995fefd1fb75e306e8cd76e8c9f3a73'
+ 'bdd3ae35a5c6f0e1f4b0c7926f72b3429b2eaa53')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --enable-gio
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # FS#24105: Generate thumbnails in nautilus
+ install -Dm644 ${srcdir}/ffmpegthumbnailer.desktop \
+ ${pkgdir}/usr/share/thumbnailers/ffmpegthumbnailer.desktop
+}
diff --git a/extra/ffmpegthumbnailer/ffmpegthumbnailer.desktop b/extra/ffmpegthumbnailer/ffmpegthumbnailer.desktop
new file mode 100644
index 000000000..79203e5bc
--- /dev/null
+++ b/extra/ffmpegthumbnailer/ffmpegthumbnailer.desktop
@@ -0,0 +1,4 @@
+[Thumbnailer Entry]
+TryExec=ffmpegthumbnailer
+Exec=ffmpegthumbnailer -s %s -i %u -o %o -c png -f -t 10
+MimeType=video/flv;video/webm;video/mkv;video/mp4;video/mpeg;video/avi;video/ogg;video/quicktime;video/x-avi;video/x-flv;video/x-mp4;video/x-mpeg;video/x-webm;video/x-mkv;application/x-extension-webm;video/x-matroska;video/x-ms-wmv;video/x-msvideo;video/x-msvideo/avi;video/x-theora/ogg;video/x-theora/ogv;video/x-ms-asf;video/x-m4v;
diff --git a/extra/fftw/PKGBUILD b/extra/fftw/PKGBUILD
new file mode 100644
index 000000000..4a0262131
--- /dev/null
+++ b/extra/fftw/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 136896 2011-09-02 17:27:59Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fftw
+pkgver=3.3
+pkgrel=1
+pkgdesc="A library for computing the discrete Fourier transform (DFT)"
+arch=('i686' 'x86_64' 'mips64el')
+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
+sha1sums=('e44493ba4babeacba184568e727876d9aed44205')
+
+# 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
+
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ if [ "$CARCH" = "mips64el" ] ; then
+ sse2=""
+ sse=""
+ aligndouble=""
+ else
+ sse2="--enable-sse2"
+ sse="--enable-sse"
+ aligndouble="-malign-double"
+ fi
+
+ # use upstream default CFLAGS while keeping our -march/-mtune
+ CFLAGS+=" -O3 -fomit-frame-pointer $aligndouble -fstrict-aliasing -ffast-math"
+
+ CONFIGURE="./configure F77=gfortran --prefix=/usr \
+ --enable-shared --enable-threads"
+
+ msg "Build & install double precision"
+ $CONFIGURE $sse2
+ make
+ make DESTDIR=${pkgdir} install
+ make clean
+
+ msg "build & install long double precission"
+ $CONFIGURE --enable-long-double
+ make
+ make DESTDIR=${pkgdir} install
+ make clean
+
+ msg "build & install single precision"
+ $CONFIGURE --enable-float $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/flac/PKGBUILD b/extra/flac/PKGBUILD
new file mode 100644
index 000000000..85653bc9f
--- /dev/null
+++ b/extra/flac/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 135033 2011-08-09 23:31:20Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgbase=flac
+pkgname=('flac' 'flac-doc')
+pkgver=1.2.1
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+url="http://flac.sourceforge.net/"
+license=('BSD' 'GPL')
+depends=('libogg')
+makedepends=('nasm' 'xmms')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('nasm') # xmms doesn't build on mips
+options=('!libtool' '!makeflags')
+source=(http://downloads.sf.net/sourceforge/${pkgbase}/${pkgbase}-${pkgver}.tar.gz
+ flac-1.2.1-gcc-4.3-includes.patch)
+md5sums=('153c8b15a54da428d1f0fadc756c22c7'
+ 'b9d245422bbc547b18a72897366bea77')
+sha1sums=('bd54354900181b59db3089347cc84ad81e410b38'
+ '7e9f8c2ef4d9daf5ddd20df63b608fe19b8c1560')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ patch -Np1 -i "${srcdir}/flac-1.2.1-gcc-4.3-includes.patch"
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared \
+ --disable-sse --disable-rpath --with-pic
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make check
+}
+
+package_flac() {
+ pkgdesc="Free Lossless Audio Codec"
+ optdepends=('xmms: for using the xmms plugin')
+[ "$CARCH" = "mips64el" ] && \
+ unset optdepends
+ options=('!libtool' '!docs')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING.Xiph "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_flac-doc() {
+ pkgdesc="Developer documentation for the Free Lossless Audio Codec"
+ depends=('flac')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" -C doc install
+ install -D -m644 COPYING.Xiph "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
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..a77c78bbf
--- /dev/null
+++ b/extra/fltk/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 142179 2011-11-05 20:03:57Z eric $
+# Maintainer:
+
+pkgbase=fltk
+pkgname=('fltk' 'fltk-docs' 'fltk-games')
+pkgver=1.3.0
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:LGPL')
+url="http://www.fltk.org/"
+makedepends=('mesa' 'doxygen' 'libjpeg' 'libpng' 'libxft' 'libxinerama' \
+ 'alsa-lib' 'desktop-file-utils')
+source=(http://ftp.easysw.com/pub/$pkgbase/$pkgver/$pkgbase-$pkgver-source.tar.gz)
+md5sums=('44d5d7ba06afdd36ea17da6b4b703ca3')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ sed -i -e 's/$(LINKFLTK)/$(LINKSHARED)/' \
+ -e 's/$(LINKFLTKIMG)/$(LINKSHARED)/' test/Makefile
+ ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared
+ make
+ cd documentation
+ make html
+}
+
+package_fltk() {
+ pkgdesc="Graphical user interface toolkit for X"
+ depends=('libjpeg' 'libpng' 'libxft' 'libxinerama' 'hicolor-icon-theme' \
+ 'desktop-file-utils' 'xdg-utils')
+ options=('!docs')
+ install=fltk.install
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+ (cd fluid; make DESTDIR="$pkgdir" install install-linux)
+ chmod 644 "$pkgdir"/usr/lib/*.a
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_fltk-docs() {
+ pkgdesc="Graphical user interface toolkit for X (documentation)"
+
+ cd "$srcdir/$pkgbase-$pkgver/documentation"
+ install -d "$pkgdir"/usr/share/doc/fltk/
+ for _file in html/* ; do
+ install -m644 $_file "$pkgdir"/usr/share/doc/fltk/
+ done
+ cd ../test
+ make DESTDIR="$pkgdir" install
+ install -D -m644 ../COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_fltk-games() {
+ pkgdesc="Example games that accompany FLTK: blocks, checkers and sudoku"
+ depends=('alsa-lib' 'fltk')
+ install=fltk-games.install
+
+ cd "$srcdir/$pkgbase-$pkgver/test"
+ make DESTDIR="$pkgdir" install-linux
+ (cd ../documentation; make DESTDIR="$pkgdir" install-linux)
+ install -D -m644 ../COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/fltk/fltk-games.install b/extra/fltk/fltk-games.install
new file mode 100644
index 000000000..f3fe2b08b
--- /dev/null
+++ b/extra/fltk/fltk-games.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/fltk/fltk.install b/extra/fltk/fltk.install
new file mode 100644
index 000000000..f89ec8213
--- /dev/null
+++ b/extra/fltk/fltk.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/fluidsynth/PKGBUILD b/extra/fluidsynth/PKGBUILD
new file mode 100644
index 000000000..3b9d55016
--- /dev/null
+++ b/extra/fluidsynth/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 137033 2011-09-05 17:19:25Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fluidsynth
+pkgver=1.1.5
+pkgrel=1
+pkgdesc="A real-time software synthesizer based on the SoundFont 2 specifications"
+arch=(i686 x86_64 'mips64el')
+url="http://www.fluidsynth.org/"
+depends=('glib2' 'jack' 'dbus-core' 'libpulse')
+makedepends=('cmake' 'ladspa' 'doxygen')
+optdepends=('pulseaudio: PulseAudio sound support'
+ 'bash: init script')
+license=('LGPL')
+backup=('etc/conf.d/fluidsynth')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'fluidsynth.conf'
+ 'fluidsynthd')
+md5sums=('657e49e682b316432a4421dbb0313c3e'
+ '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..59b098efe
--- /dev/null
+++ b/extra/fluxbox/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 141366 2011-10-30 03:08:02Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fluxbox
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="A lightweight and highly-configurable window manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fluxbox.org"
+license=('MIT')
+depends=('libxft' 'libxpm' 'libxinerama' 'libxrandr' 'gcc-libs' 'imlib2' 'fribidi')
+optdepends=('xorg-xmessage: for using the fbsetbg and fluxbox-generate_menu utilities')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz \
+ fluxbox.desktop)
+sha1sums=('15ba1b9eaaf170d87fa647b7118a63c05f093b5c'
+ 'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --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/PKGBUILD b/extra/fluxter/PKGBUILD
new file mode 100644
index 000000000..705b34f5d
--- /dev/null
+++ b/extra/fluxter/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 123175 2011-05-09 02:48:19Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fluxter
+pkgver=0.1.0
+pkgrel=5
+pkgdesc="A workspace pager for fluxbox"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://benedict.isomedia.com/homes/stevencooper/projects/fluxter.html"
+license=('GPL')
+depends=('gcc-libs' 'libx11')
+source=(http://benedict.isomedia.com/homes/stevencooper/files/${pkgname}-${pkgver}.tar.gz \
+ fluxter-0.1.0-asneeded.patch)
+md5sums=('6d18553220e8fc33c54762d2e7d31528'
+ '3deb4e816d12a262455bc8281fa82577')
+sha1sums=('d0da4759a21fdadc8a6457195c87b6648b5d69bc'
+ '2fc912d40233577b34cb6c641e066863e487fab0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i ../fluxter-0.1.0-asneeded.patch
+ autoreconf
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/fluxter/fluxter-0.1.0-asneeded.patch b/extra/fluxter/fluxter-0.1.0-asneeded.patch
new file mode 100644
index 000000000..8b6826074
--- /dev/null
+++ b/extra/fluxter/fluxter-0.1.0-asneeded.patch
@@ -0,0 +1,43 @@
+--- Makefile.am
++++ Makefile.am
+@@ -17,4 +17,4 @@
+ NETInterface.cc NETInterface.hh \
+ blackboxstyle.hh
+ EXTRA_DIST = BUGS TODO
+-fluxter_LDADD = @X_LIBS@
++fluxter_LDADD = @LIBS@
+--- configure.in
++++ configure.in
+@@ -18,14 +18,12 @@
+ [
+ test "$CFLAGS" = "" && CFLAGS="-g -Wall -DDEBUG"
+ test "$CXXFLAGS" = "" && CXXFLAGS="-g -Wall -DDEBUG"
+- test "$LDFLAGS" = "" && LDFLAGS=""
+ ])
+
+ AC_DEFUN(AC_SET_NODEBUG,
+ [
+- test "$CFLAGS" = "" && CFLAGS="-O2 -Wall"
+- test "$CXXFLAGS" = "" && CXXFLAGS="-O2 -Wall"
+- test "$LDFLAGS" = "" && LDFLAGS="-s"
++ test "$CFLAGS" = "" && CFLAGS="-Wall"
++ test "$CXXFLAGS" = "" && CXXFLAGS="-Wall"
+ ])
+
+
+@@ -71,12 +69,12 @@
+
+ CFLAGS="$CFLAGS $X_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $X_CFLAGS"
+-LDFLAGS="$LDFLAGS $X_LIBS $X_PRE_LIBS"
++LIBS="$LIBS $X_LIBS $X_PRE_LIBS"
+ dnl Checks for X libraries.
+-AC_CHECK_LIB(X11, XOpenDisplay, LDFLAGS="$LDFLAGS -lX11",
++AC_CHECK_LIB(X11, XOpenDisplay, LIBS="$LIBS -lX11",
+ AC_MSG_ERROR(XOpenDisplay not found in -lX11))
+
+-LDFLAGS="$LDFLAGS $X_EXTRA_LIBS"
++LIBS="$LIBS $X_EXTRA_LIBS"
+
+ dnl Checks for header files.
+ AC_HEADER_STDC
diff --git a/extra/folks/PKGBUILD b/extra/folks/PKGBUILD
new file mode 100644
index 000000000..6f6d25f5e
--- /dev/null
+++ b/extra/folks/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142520 2011-11-11 10:53:28Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=folks
+pkgver=0.6.5
+pkgrel=1
+pkgdesc="Library to aggregates people into metacontacts"
+arch=(i686 x86_64 'mips64el')
+url="http://telepathy.freedesktop.org/wiki/Folks"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libgee' 'libxml2' 'evolution-data-server' 'libsocialweb')
+makedepends=('gobject-introspection' 'intltool')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.6/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('86fd13cb32f3e85a96f9bc999616307323c967baddca3f9f3b402f23629bd5ee')
+
+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/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..73953f1f8
--- /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.1
+pkgdesc="A library for configuring and customizing font access"
+arch=(i686 x86_64 'mips64el')
+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..55401aa90
--- /dev/null
+++ b/extra/fontforge/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 124359 2011-05-20 08:42:23Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fontforge
+pkgver=20110222
+pkgrel=2
+pkgdesc='Outline and bitmap font editor'
+arch=('i686' 'x86_64' 'mips64el')
+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-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++/PKGBUILD b/extra/foobillard++/PKGBUILD
new file mode 100644
index 000000000..7e77ed5b8
--- /dev/null
+++ b/extra/foobillard++/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 141931 2011-11-03 08:55:49Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=foobillard++
+pkgver=3.41beta
+pkgrel=1
+pkgdesc="An OpenGL billiard game"
+arch=(mips64el)
+url="http://foobillardplus.sourceforge.net/"
+license=('GPL2')
+depends=('bzip2' 'freetype2' 'libpng' 'mesa' 'sdl_net')
+replaces=('foobillard')
+source=(http://downloads.sourceforge.net/foobillardplus/foobillardplus-${pkgver}.tar.gz)
+sha1sums=('41d6db473557386ffeacd98b9a2ee26198e42c6a')
+
+build() {
+ cd "${srcdir}/foobillardplus-${pkgver}"
+ sed -i 's|$prefix/foobillardplus|$prefix|' configure
+ sed -i 's|$prefix/data|$prefix/share/foobillardplus|' configure
+ sed -i 's|"/data"|"/share/foobillardplus"|' src/language.c
+ sed -i 's|/opt/foobillardplus/bin/||' foobillardplus.desktop
+ sed -i 's|/opt/foobillardplus/||' foobillardplus.desktop
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/foobillardplus-${pkgver}"
+ install -Dm755 src/foobillardplus "${pkgdir}/usr/bin/foobillardplus"
+ install -d "${pkgdir}/usr/share/foobillardplus"
+ cp -R data/* "${pkgdir}/usr/share/foobillardplus"
+ install -Dm644 foobillardplus.desktop "${pkgdir}/usr/share/applications/foobillardplus.desktop"
+ install -Dm644 foobillardplus.png "${pkgdir}/usr/share/pixmaps/foobillardplus.png"
+ install -Dm644 foobillardplus.xbm "${pkgdir}/usr/share/pixmaps/foobillardplus.xbm"
+ find "${pkgdir}" -depth -type d -name .svn -exec rm -rf {} \;
+}
diff --git a/extra/foomatic/PKGBUILD b/extra/foomatic/PKGBUILD
new file mode 100644
index 000000000..5354a6c25
--- /dev/null
+++ b/extra/foomatic/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 130674 2011-07-07 16:52:03Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="foomatic"
+pkgname=('foomatic-db' 'foomatic-filters' 'foomatic-db-engine' 'foomatic-db-nonfree')
+arch=('i686' 'x86_64' 'mips64el') # needs to be changed in the subpackages when makepkg will support it
+_snapdate=20110707
+_relver=4.0.7
+pkgver=${_relver}_${_snapdate}
+pkgrel=1
+epoch=1
+makedepends=('cups>=1.4.7' '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=('!emptydirs')
+md5sums=('20abd25c1c98b2dae68709062a132a7d'
+ 'fcfa8eb9ce5494b81b58ae983fc2aeb5'
+ '88d467d9099188b170185564bd33d7b7'
+ 'e12969b36dc0b59be6a973ee522d707e')
+
+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
+ install -v -Dm644 ${srcdir}/${pkgname}-${_snapdate}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
+
+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
+ make DESTDIR=${pkgdir} install
+}
+
+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
+ 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
+ /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
+# install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/foomatic-db-nonfree/COPYING
+}
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..a88f7bdb6
--- /dev/null
+++ b/extra/fortune-mod/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 128484 2011-06-24 04:37:24Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Dale Blount <archlinux@dale.us>
+
+pkgname=fortune-mod
+pkgver=1.99.1
+pkgrel=5
+pkgdesc="The Fortune Cookie Program from BSD games"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make REGEXDEFS='-DHAVE_REGEX_H -DPOSIX_REGEX -DHAVE_STDBOOL' \
+ COOKIEDIR=/usr/share/fortune \
+ LOCALDIR=/usr/local/share/fortune all fortune/fortune.man
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ 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
+ 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..0b999c706
--- /dev/null
+++ b/extra/fping/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 143741 2011-11-28 19:17:54Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=fping
+pkgver=2.4b2
+pkgrel=5
+pkgdesc="A utility to ping multiple hosts at once"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://packages.qa.debian.org/"
+license=('custom')
+depends=('glibc')
+source=("http://ftp.de.debian.org/debian/pool/main/f/fping/fping_2.4b2-to-ipv6.orig.tar.gz"
+ 'fping_2.4b2-to-ipv6-16.1.diff'
+ 'fping-2.4b2_p161-min-time.patch')
+md5sums=('3ad516765514249a40d3c5b6caab812a'
+ '4881e981971379a0948b31719e4505f5'
+ '36753d9556eba1a6159c20c8db3e2232')
+
+build() {
+ cd $srcdir/$pkgname-2.4b2_to-ipv6
+
+ patch -Np1 -i ${srcdir}/fping_2.4b2-to-ipv6-16.1.diff
+ patch -Np1 -i ${srcdir}/fping-2.4b2_p161-min-time.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-2.4b2_to-ipv6
+
+ make DESTDIR="${pkgdir}" install
+
+ # install license
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+ chmod 4555 ${pkgdir}/usr/sbin/fping
+}
diff --git a/extra/fping/fping-2.4b2_p161-min-time.patch b/extra/fping/fping-2.4b2_p161-min-time.patch
new file mode 100644
index 000000000..5e5ccd40f
--- /dev/null
+++ b/extra/fping/fping-2.4b2_p161-min-time.patch
@@ -0,0 +1,47 @@
+--- old/fping.c 2010-08-24 16:59:38.947000447 +0100
++++ new/fping.c 2010-08-24 16:55:52.101000443 +0100
+@@ -25,6 +25,7 @@
+ * Original author: Roland Schemers <schemers@stanford.edu>
+ * IPv6 Support: Jeroen Massar <jeroen@unfix.org / jeroen@ipng.nl>
+ * Bugfixes, byte order & senseful seq.-numbers: Stephan Fuhrmann (stephan.fuhrmann AT 1und1.de)
++ * Fixes: min_reply_i in splits and compiler warning. Alex Ghoth (alex AT ghoth.net)
+ *
+ *
+ * RCS header information no longer used. It has been moved to the
+@@ -743,7 +744,7 @@
+
+ if( ( ping_data_size > MAX_PING_DATA ) || ( ping_data_size < MIN_PING_DATA ) )
+ {
+- fprintf( stderr, "%s: data size %u not valid, must be between %u and %u\n",
++ fprintf( stderr, "%s: data size %u not valid, must be between %lu and %u\n",
+ prog, ping_data_size, MIN_PING_DATA, MAX_PING_DATA );
+ usage();
+
+@@ -1112,7 +1113,7 @@
+ ht = timeval_diff( &current_time, &cursor->last_send_time );
+
+ if( report_interval && ( loop_flag || count_flag ) &&
+- ( timeval_diff ( &current_time, &last_report_time ) > report_interval ) )
++ ( timeval_diff ( &current_time, &last_report_time ) >= report_interval ) )
+ {
+ print_per_system_splits();
+ gettimeofday( &current_time, &tz );
+@@ -1487,8 +1488,8 @@
+ }/* IF */
+
+ fprintf( stderr, "\n" );
+- h->num_sent_i = h->num_recv_i = h->max_reply_i =
+- h->min_reply_i = h->total_time_i = 0;
++ h->num_sent_i = h->num_recv_i = h->max_reply_i = h->total_time_i = 0;
++ h->min_reply_i = 10000000;
+
+ }/* FOR */
+
+@@ -2377,6 +2378,7 @@
+ p->timeout = timeout;
+ p->running = 1;
+ p->min_reply = 10000000;
++ p->min_reply_i = 10000000;
+
+ if( strlen( p->host ) > max_hostname_len )
+ max_hostname_len = strlen( p->host );
diff --git a/extra/fping/fping_2.4b2-to-ipv6-16.1.diff b/extra/fping/fping_2.4b2-to-ipv6-16.1.diff
new file mode 100644
index 000000000..435723832
--- /dev/null
+++ b/extra/fping/fping_2.4b2-to-ipv6-16.1.diff
@@ -0,0 +1,838 @@
+--- fping-2.4b2-to-ipv6.orig/fping.8
++++ fping-2.4b2-to-ipv6/fping.8
+@@ -1,4 +1,4 @@
+-.TH fping l
++.TH fping 8
+ .SH NAME
+ fping \- send ICMP ECHO_REQUEST packets to network hosts
+ .SH SYNOPSIS
+@@ -12,9 +12,9 @@
+
+
+ .B fping
+-is a
+-.MS ping 8
+-like program which uses the Internet Control
++is a program like
++.B ping(8)
++which uses the Internet Control
+ Message Protocol (ICMP) echo request to determine if a target host is
+ responding.
+ .B fping
+@@ -37,8 +37,7 @@
+ ).
+ .PP
+ Unlike
+-.B ping
+-,
++.B ping,
+ .B fping
+ is meant to be used in scripts, so its output is designed to be
+ easy to parse.
+@@ -130,12 +129,16 @@
+ a target will be made, not including the first try.
+ .IP \fB-s\fR 5
+ Print cumulative statistics upon exit.
++.IP \fB-S\fIaddr\fR 5
++Set source address.
+ .IP \fB-t\fIn\fR 5
+ Initial target timeout in milliseconds (default 500). In the default
+ mode, this is the amount of time that
+ .B fping
+ waits for a response to its first request. Successive timeouts are
+ multiplied by the backoff factor.
++.IP \fB-T\fIn\fR 5
++Select timeout in seconds (default 10).
+ .IP \fB-u\fR 5
+ Show targets that are unreachable.
+ .IP \fB-v\fR 5
+@@ -152,7 +155,7 @@
+ example none the less.
+ .nf
+
+-#!/usr/local/bin/perl
++#!/usr/bin/perl
+ require 'open2.pl';
+
+ $MAILTO = "root";
+@@ -178,7 +181,7 @@
+ that are currently reachable.
+ .nf
+
+-#!/usr/local/bin/perl
++#!/usr/bin/perl
+
+ $hosts_to_backup = `cat /etc/hosts.backup | fping -a`;
+
+--- fping-2.4b2-to-ipv6.orig/fping.c
++++ fping-2.4b2-to-ipv6/fping.c
+@@ -24,7 +24,7 @@
+ *
+ * Original author: Roland Schemers <schemers@stanford.edu>
+ * IPv6 Support: Jeroen Massar <jeroen@unfix.org / jeroen@ipng.nl>
+- *
++ * Bugfixes, byte order & senseful seq.-numbers: Stephan Fuhrmann (stephan.fuhrmann AT 1und1.de)
+ *
+ *
+ * RCS header information no longer used. It has been moved to the
+@@ -42,7 +42,6 @@
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+-#define IPV6 1 /* This should be a compiler option, or even better be done from the Makefile... ;) */
+
+ #ifndef _NO_PROTO
+ #if !__STDC__ && !defined( __cplusplus ) && !defined( FUNCPROTO ) \
+@@ -101,13 +100,8 @@
+ #endif
+ #include <netinet/in_systm.h>
+
+-/* Linux has bizarre ip.h and ip_icmp.h */
+-#if defined( __linux__ )
+-#include "linux.h"
+-#else
+ #include <netinet/ip.h>
+ #include <netinet/ip_icmp.h>
+-#endif /* defined(__linux__) */
+
+ #include <arpa/inet.h>
+ #include <netdb.h>
+@@ -150,7 +144,11 @@
+ #define MIN_PING_DATA sizeof( PING_DATA )
+ #define MAX_IP_PACKET 65536 /* (theoretical) max IP packet size */
+ #define SIZE_IP_HDR 20
++#ifndef IPV6
+ #define SIZE_ICMP_HDR ICMP_MINLEN /* from ip_icmp.h */
++#else
++#define SIZE_ICMP_HDR sizeof(FPING_ICMPHDR)
++#endif
+ #define MAX_PING_DATA ( MAX_IP_PACKET - SIZE_IP_HDR - SIZE_ICMP_HDR )
+
+ /* sized so as to be like traditional ping */
+@@ -192,7 +190,7 @@
+ "",
+ "",
+ "ICMP Time Exceeded", /* 11 */
+- "ICMP Paramter Problem", /* 12 */
++ "ICMP Parameter Problem", /* 12 */
+ "ICMP Timestamp Request", /* 13 */
+ "ICMP Timestamp Reply", /* 14 */
+ "ICMP Information Request", /* 15 */
+@@ -283,6 +281,12 @@
+ u_int count = 1;
+ u_int trials;
+ u_int report_interval = 0;
++int src_addr_present = 0;
++#ifndef IPV6
++struct in_addr src_addr;
++#else
++struct in6_addr src_addr;
++#endif
+
+ /* global stats */
+ long max_reply = 0;
+@@ -292,6 +296,7 @@
+ int max_hostname_len = 0;
+ int num_jobs = 0; /* number of hosts still to do */
+ int num_hosts; /* total number of hosts */
++int max_seq_sent = 0; /* maximum sequence number sent so far */
+ int num_alive = 0, /* total number alive */
+ num_unreachable = 0, /* total number unreachable */
+ num_noaddress = 0; /* total number of addresses not found */
+@@ -408,6 +413,11 @@
+ struct protoent *proto;
+ char *buf;
+ uid_t uid;
++#ifndef IPV6
++ struct sockaddr_in sa;
++#else
++ struct sockaddr_in6 sa;
++#endif
+ /* check if we are root */
+
+ if( geteuid() )
+@@ -439,7 +449,7 @@
+
+ #ifdef IPV6
+ /*
+- * let the kerel pass extension headers of incoming packets,
++ * let the kernel pass extension headers of incoming packets,
+ * for privileged socket options
+ */
+ #ifdef IPV6_RECVHOPOPTS
+@@ -474,6 +484,35 @@
+ sizeof(opton)))
+ err(1, "setsockopt(IPV6_RTHDR)");
+ #endif
++#ifndef USE_SIN6_SCOPE_ID
++#ifdef IPV6_RECVPKTINFO
++ if (setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &opton,
++ sizeof(opton)))
++ err(1, "setsockopt(IPV6_RECVPKTINFO)");
++#else /* old adv. API */
++ if (setsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, &opton,
++ sizeof(opton)))
++ err(1, "setsockopt(IPV6_PKTINFO)");
++#endif
++#endif /* USE_SIN6_SCOPE_ID */
++#ifdef IPV6_RECVHOPLIMIT
++ if (setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &opton,
++ sizeof(opton)))
++ err(1, "setsockopt(IPV6_RECVHOPLIMIT)");
++#else /* old adv. API */
++ if (setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &opton,
++ sizeof(opton)))
++ err(1, "setsockopt(IPV6_HOPLIMIT)");
++#endif
++#ifdef IPV6_CHECKSUM
++#ifndef SOL_RAW
++#define SOL_RAW IPPROTO_IPV6
++#endif
++ opton = 2;
++ if (setsockopt(s, SOL_RAW, IPV6_CHECKSUM, &opton,
++ sizeof(opton)))
++ err(1, "setsockopt(SOL_RAW,IPV6_CHECKSUM)");
++#endif
+ #endif
+
+ if( ( uid = getuid() ) )
+@@ -491,7 +530,7 @@
+
+ /* get command line options */
+
+- while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:" ) ) != EOF )
++ while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:S:I:T:" ) ) != EOF )
+ {
+ switch( c )
+ {
+@@ -502,7 +541,7 @@
+ break;
+
+ case 'r':
+- if( !( retry = ( u_int )atoi( optarg ) ) )
++ if( ( retry = ( u_int )atoi( optarg ) ) < 0 )
+ usage();
+
+ break;
+@@ -639,6 +678,33 @@
+ generate_flag = 1;
+ break;
+
++ case 'S':
++#ifndef IPV6
++ if( ! inet_pton( AF_INET, optarg, &src_addr ) )
++#else
++ if( ! inet_pton( AF_INET6, optarg, &src_addr ) )
++#endif
++ usage();
++ src_addr_present = 1;
++ break;
++
++ case 'I':
++#ifdef SO_BINDTODEVICE
++ if (setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, optarg,
++ strlen(optarg)))
++ err(1, "setsockopt(AF_INET, SO_BINDTODEVICE)");
++#else
++ fprintf( stderr,
++ "Warning: SO_BINDTODEVICE not supported, argument -I %s ignored\n",
++ optarg );
++#endif
++ break;
++
++ case 'T':
++ if ( ! ( select_time = ( u_int )atoi( optarg ) * 100 ) )
++ usage();
++ break;
++
+ default:
+ usage();
+ break;
+@@ -821,7 +887,7 @@
+ errno_crash_and_burn( "fopen" );
+
+
+- while( fgets( line, 132, ping_file ) )
++ while( fgets( line, sizeof(line), ping_file ) )
+ {
+ if( sscanf( line, "%s", host ) != 1 )
+ continue;
+@@ -962,6 +1028,22 @@
+ if( !num_hosts )
+ exit( 2 );
+
++ /* set the source address */
++
++ if( src_addr_present )
++ {
++ memset( &sa, 0, sizeof( sa ) );
++#ifndef IPV6
++ sa.sin_family = AF_INET;
++ sa.sin_addr = src_addr;
++#else
++ sa.sin6_family = AF_INET6;
++ sa.sin6_addr = src_addr;
++#endif
++ if ( bind( s, (struct sockaddr *)&sa, sizeof( sa ) ) < 0 )
++ errno_crash_and_burn( "cannot bind source address" );
++ }
++
+ /* allocate array to hold outstanding ping requests */
+
+ table = ( HOST_ENTRY** )malloc( sizeof( HOST_ENTRY* ) * num_hosts );
+@@ -1112,7 +1194,7 @@
+ /* but allow time for the last one to come in */
+ if( count_flag )
+ {
+- if( ( cursor->num_sent >= count ) && ( ht > cursor->timeout ) )
++ if( ( cursor->num_sent >= count ) && ( cursor->num_recv >= count || ht > cursor->timeout ) )
+ {
+ remove_job( cursor );
+ continue;
+@@ -1153,6 +1235,7 @@
+
+ finish();
+
++ return 0;
+ } /* main() */
+
+
+@@ -1382,15 +1465,15 @@
+ if( h->num_recv_i <= h->num_sent_i )
+ {
+ fprintf( stderr, " xmt/rcv/%%loss = %d/%d/%d%%",
+- h->num_sent_i, h->num_recv_i,
+- ( ( h->num_sent_i - h->num_recv_i ) * 100 ) / h->num_sent_i );
++ h->num_sent_i, h->num_recv_i, h->num_sent_i > 0 ?
++ ( ( h->num_sent_i - h->num_recv_i ) * 100 ) / h->num_sent_i : 0 );
+
+ }/* IF */
+ else
+ {
+ fprintf( stderr, " xmt/rcv/%%return = %d/%d/%d%%",
+- h->num_sent_i, h->num_recv_i,
+- ( ( h->num_recv_i * 100 ) / h->num_sent_i ) );
++ h->num_sent_i, h->num_recv_i, h->num_sent_i > 0 ?
++ ( ( h->num_recv_i * 100 ) / h->num_sent_i ) : 0 );
+
+ }/* ELSE */
+
+@@ -1504,12 +1587,15 @@
+ icp = ( FPING_ICMPHDR* )buffer;
+
+ gettimeofday( &h->last_send_time, &tz );
++ int myseq = h->num_sent * num_hosts + h->i;
++ max_seq_sent = myseq > max_seq_sent ? myseq : max_seq_sent;
++
+ #ifndef IPV6
+ icp->icmp_type = ICMP_ECHO;
+ icp->icmp_code = 0;
+ icp->icmp_cksum = 0;
+- icp->icmp_seq = h->i;
+- icp->icmp_id = ident;
++ icp->icmp_seq = htons(myseq);
++ icp->icmp_id = htons(ident);
+
+ pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR );
+ pdp->ping_ts = h->last_send_time;
+@@ -1519,8 +1605,8 @@
+ #else
+ icp->icmp6_type = ICMP6_ECHO_REQUEST;
+ icp->icmp6_code = 0;
+- icp->icmp6_seq = h->i;
+- icp->icmp6_id = ident;
++ icp->icmp6_seq = htons(myseq);
++ icp->icmp6_id = htons(ident);
+
+ pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR );
+ pdp->ping_ts = h->last_send_time;
+@@ -1667,25 +1753,25 @@
+ }/* IF */
+
+ #ifndef IPV6
+- if( icp->icmp_id != ident )
++ if( ntohs(icp->icmp_id) != ident )
+ #else
+- if( icp->icmp6_id != ident )
++ if( ntohs(icp->icmp6_id) != ident )
+ #endif
+ return 1; /* packet received, but not the one we are looking for! */
+
+ num_pingreceived++;
+
+ #ifndef IPV6
+- if( icp->icmp_seq >= ( n_short )num_hosts )
++ if( ntohs(icp->icmp_seq) > max_seq_sent )
+ #else
+- if( icp->icmp6_seq >= ( n_short )num_hosts )
++ if( ntohs(icp->icmp6_seq) > max_seq_sent )
+ #endif
+ return( 1 ); /* packet received, don't worry about it anymore */
+
+ #ifndef IPV6
+- n = icp->icmp_seq;
++ n = ntohs(icp->icmp_seq) % num_hosts;
+ #else
+- n = icp->icmp6_seq;
++ n = ntohs(icp->icmp6_seq) % num_hosts;
+ #endif
+ h = table[n];
+
+@@ -1824,6 +1910,7 @@
+
+ }/* IF */
+
++ fflush( stdout );
+ return num_jobs;
+
+ } /* wait_for_reply() */
+@@ -1875,11 +1962,11 @@
+ sent_icmp = ( struct icmp* )( c + 28 );
+
+ if( ( sent_icmp->icmp_type == ICMP_ECHO ) &&
+- ( sent_icmp->icmp_id == ident ) &&
+- ( sent_icmp->icmp_seq < ( n_short )num_hosts ) )
++ ( ntohs(sent_icmp->icmp_id) == ident ) &&
++ ( ntohs(sent_icmp->icmp_seq) <= ( n_short )max_seq_sent ) )
+ {
+ /* this is a response to a ping we sent */
+- h = table[sent_icmp->icmp_seq];
++ h = table[ntohs(sent_icmp->icmp_seq) % num_hosts];
+
+ if( p->icmp_code > ICMP_UNREACH_MAXTYPE )
+ {
+@@ -1888,11 +1975,11 @@
+
+ #else
+ if( ( sent_icmp->icmp6_type == ICMP_ECHO ) &&
+- ( sent_icmp->icmp6_id == ident ) &&
+- ( sent_icmp->icmp6_seq < ( n_short )num_hosts ) )
++ ( ntohs(sent_icmp->icmp6_id) == ident ) &&
++ ( ntohs(sent_icmp->icmp6_seq) <= ( n_short )max_seq_sent ) )
+ {
+ /* this is a response to a ping we sent */
+- h = table[sent_icmp->icmp6_seq];
++ h = table[ntohs(sent_icmp->icmp6_seq) % num_hosts];
+
+ if( p->icmp6_code > ICMP_UNREACH_MAXTYPE )
+ {
+@@ -1930,24 +2017,24 @@
+ case ICMP_PARAMPROB:
+ sent_icmp = ( FPING_ICMPHDR* )( c + 28 );
+ #ifndef IPV6
+- if( ( sent_icmp->icmp_type = ICMP_ECHO ) &&
+- ( sent_icmp->icmp_id = ident ) &&
+- ( sent_icmp->icmp_seq < ( n_short )num_hosts ) )
++ if( ( sent_icmp->icmp_type == ICMP_ECHO ) &&
++ ( ntohs(sent_icmp->icmp_id) == ident ) &&
++ ( ntohs(sent_icmp->icmp_seq) <= ( n_short )max_seq_sent ) )
+ {
+ /* this is a response to a ping we sent */
+- h = table[sent_icmp->icmp_seq];
++ h = table[ntohs(sent_icmp->icmp_seq) % num_hosts];
+ fprintf( stderr, "%s from %s for ICMP Echo sent to %s",
+ icmp_type_str[p->icmp_type], inet_ntoa( addr->sin_addr ), h->host );
+
+ if( inet_addr( h->host ) == -1 )
+ fprintf( stderr, " (%s)", inet_ntoa( h->saddr.sin_addr ) );
+ #else
+- if( ( sent_icmp->icmp6_type = ICMP_ECHO ) &&
+- ( sent_icmp->icmp6_id = ident ) &&
+- ( sent_icmp->icmp6_seq < ( n_short )num_hosts ) )
++ if( ( sent_icmp->icmp6_type == ICMP_ECHO ) &&
++ ( ntohs(sent_icmp->icmp6_id) == ident ) &&
++ ( ntohs(sent_icmp->icmp6_seq) <= ( n_short )max_seq_sent ) )
+ {
+ /* this is a response to a ping we sent */
+- h = table[sent_icmp->icmp6_seq];
++ h = table[ntohs(sent_icmp->icmp6_seq) % num_hosts];
+ fprintf( stderr, "%s from %s for ICMP Echo sent to %s",
+ icmp_type_str[p->icmp6_type], addr_ascii, h->host );
+
+@@ -2165,20 +2252,33 @@
+ struct addrinfo *res, hints;
+ int ret_ga;
+ char *hostname;
++ size_t len;
+
+ /* getaddrinfo */
+ bzero(&hints, sizeof(struct addrinfo));
+- hints.ai_flags = AI_CANONNAME;
++ hints.ai_flags = name_flag ? AI_CANONNAME : 0;
+ hints.ai_family = AF_INET6;
+ hints.ai_socktype = SOCK_RAW;
+ hints.ai_protocol = IPPROTO_ICMPV6;
+
+ ret_ga = getaddrinfo(name, NULL, &hints, &res);
+- if (ret_ga) errx(1, "%s", gai_strerror(ret_ga));
++ if (ret_ga) {
++ if(!quiet_flag)
++ warnx("%s", gai_strerror(ret_ga));
++ num_noaddress++;
++ return;
++ }
+ if (res->ai_canonname) hostname = res->ai_canonname;
+ else hostname = name;
+- if (!res->ai_addr) errx(1, "getaddrinfo failed");
+- (void)memcpy(&dst, res->ai_addr, sizeof(FPING_SOCKADDR)); /*res->ai_addrlen);*/
++ if (!res->ai_addr) {
++ if(!quiet_flag)
++ warnx("getaddrinfo failed");
++ num_noaddress++;
++ return;
++ }
++ len = res->ai_addrlen;
++ if (len > sizeof(FPING_SOCKADDR)) len = sizeof(FPING_SOCKADDR);
++ (void)memcpy(&dst, res->ai_addr, len);
+ add_addr(name, name, &dst);
+ #endif
+ } /* add_name() */
+@@ -2730,9 +2830,11 @@
+ fprintf( stderr, " (in looping and counting modes, default %d)\n", perhost_interval / 100 );
+ fprintf( stderr, " -q quiet (don't show per-target/per-ping results)\n" );
+ fprintf( stderr, " -Q n same as -q, but show summary every n seconds\n" );
+- fprintf( stderr, " -r n number of retries (default %d)\n", retry );
++ fprintf( stderr, " -r n number of retries (default %d)\n", DEFAULT_RETRY );
+ fprintf( stderr, " -s print final stats\n" );
++ fprintf( stderr, " -S addr set source address\n" );
+ fprintf( stderr, " -t n individual target initial timeout (in millisec) (default %d)\n", timeout / 100 );
++ fprintf( stderr, " -T n set select timeout (default %d)\n", select_time / 100 );
+ fprintf( stderr, " -u show targets that are unreachable\n" );
+ fprintf( stderr, " -v show version\n" );
+ fprintf( stderr, " targets list of targets to check (if no -f specified)\n" );
+--- fping-2.4b2-to-ipv6.orig/debian/fping.docs
++++ fping-2.4b2-to-ipv6/debian/fping.docs
+@@ -0,0 +1 @@
++README
+--- fping-2.4b2-to-ipv6.orig/debian/lintian.overrides
++++ fping-2.4b2-to-ipv6/debian/lintian.overrides
+@@ -0,0 +1 @@
++fping: setuid-binary
+--- fping-2.4b2-to-ipv6.orig/debian/fping.dirs
++++ fping-2.4b2-to-ipv6/debian/fping.dirs
+@@ -0,0 +1,4 @@
++usr/bin
++usr/sbin
++usr/share/man/man8
++usr/share/lintian/overrides
+--- fping-2.4b2-to-ipv6.orig/debian/copyright
++++ fping-2.4b2-to-ipv6/debian/copyright
+@@ -0,0 +1,33 @@
++This package was split from netstd by Herbert Xu herbert@debian.org on
++Sat, 30 Oct 1999 16:39:06 +1000.
++
++It is maintained by Anibal Monsalve Salazar <anibal@debian.org>.
++
++netstd was created by Peter Tobias tobias@et-inf.fho-emden.de on
++Wed, 20 Jul 1994 17:23:21 +0200.
++
++It was downloaded from http://www.fping.com/.
++
++Copyright:
++
++Upstream maintainer: David Papp <david@remote.net>
++Original author: Roland Schemers <schemers@stanford.edu>
++IPv6 Support: Jeroen Massar <jeroen@unfix.org / jeroen@ipng.nl>
++
++
++Copyright (c) 1992, 1994, 1997
++Board of Trustees
++Leland Stanford Jr. University
++
++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 Stanford University. 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.
++
+--- fping-2.4b2-to-ipv6.orig/debian/control
++++ fping-2.4b2-to-ipv6/debian/control
+@@ -0,0 +1,20 @@
++Source: fping
++Section: net
++Priority: optional
++Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
++Standards-Version: 3.8.0
++Build-Depends: debhelper (>= 5)
++Homepage: http://fping.sourceforge.net/
++
++Package: fping
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Conflicts: suidmanager (<< 0.50)
++Replaces: netstd
++Description: sends ICMP ECHO_REQUEST packets to network hosts
++ fping is a ping like program which uses the Internet Control Message Protocol
++ (ICMP) echo request to determine if a target host is responding. fping
++ differs from ping in that you can specify any number of targets on the command
++ line, or specify a file containing the lists of targets to ping. Instead of
++ sending to one target until it times out or replies, fping will send out a
++ ping packet and move on to the next target in a round-robin fashion.
+--- fping-2.4b2-to-ipv6.orig/debian/rules
++++ fping-2.4b2-to-ipv6/debian/rules
+@@ -0,0 +1,78 @@
++#!/usr/bin/make -f
++# GNU copyright 1997 to 1999 by Joey Hess.
++# Copyright (c) 1999 Herbert Xu <herbert@debian.org>
++# Copyright (c) 2004-2005 Anibal Monsalve Salazar <anibal@debian.org>
++
++# Uncomment this to turn on verbose mode.
++export DH_VERBOSE=1
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++
++ mkdir build build/ipv4 build/ipv6
++ cp -a $$(find * -maxdepth 0 ! -name build) build
++ cd build/ipv4; ../configure
++ cd build/ipv6; ../configure
++
++ touch configure-stamp
++
++build: build-stamp
++build-stamp: configure-stamp
++ dh_testdir
++
++ $(MAKE) -C build/ipv4
++ $(MAKE) -C build/ipv6 CFLAGS='-g -O2 -DIPV6=1'
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++
++ rm -rf build build-stamp configure-stamp
++
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ install build/ipv4/fping debian/fping/usr/bin
++ install build/ipv6/fping debian/fping/usr/bin/fping6
++ cp fping.8 debian/fping/usr/share/man/man8
++ ln -s fping.8 debian/fping/usr/share/man/man8/fping6.8
++
++ install -g 0 -o 0 -m 644 -p debian/lintian.overrides debian/fping/usr/share/lintian/overrides/fping
++
++ touch install-stamp
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++ dh_installcron
++ dh_installinfo
++ dh_installchangelogs ChangeLog
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++ chmod 4755 debian/fping/usr/bin/fping*
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean configure binary-indep binary-arch binary install
+--- fping-2.4b2-to-ipv6.orig/debian/compat
++++ fping-2.4b2-to-ipv6/debian/compat
+@@ -0,0 +1 @@
++5
+--- fping-2.4b2-to-ipv6.orig/debian/changelog
++++ fping-2.4b2-to-ipv6/debian/changelog
+@@ -0,0 +1,174 @@
++fping (2.4b2-to-ipv6-16.1) unstable; urgency=low
++
++ * NMU during Moenchengladbach BSP
++ * Fixes FTBFS on kfreebsd (Closes: #555398)
++ * Fixes typo "Paramter" in binary
++
++ -- Axel Beckert <abe@deuxchevaux.org> Sat, 23 Jan 2010 16:22:02 +0100
++
++fping (2.4b2-to-ipv6-16) unstable; urgency=low
++
++ * Fix the following bugs
++ - Network byte order sensitivity was missing completely.
++ Added hopefully all missing calls.
++ - The sequence numbering scheme used led to packet drops.
++ Changed it to a more senseful numbering scheme.
++ - Some minor C programming mistakes ('=' instead of '==').
++ Patch by Stephan Fuhrmann; closes: #502569
++ * Add support for command line select timeout setting
++ Patch by Marton Balint; closes: #502575
++ * Remove symlinks in /usr/sbin; closes: #377732
++ * Standards-Version is 3.8.0
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Sat, 18 Oct 2008 12:04:52 +1100
++
++fping (2.4b2-to-ipv6-15) unstable; urgency=low
++
++ * Added interface binding (-I) for fping
++ Patch by Peter Naulls <peter@mushroomnetworks.com>
++ Closes: #439014
++ * Fixed a couple of typos in fping.8. Closes: #423180
++ * Added homepage control header
++ * Bumped Standards-Version to 3.7.3
++ * Fixed the following lintian issue:
++ - debian-rules-sets-DH_COMPAT
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Mon, 03 Mar 2008 17:46:17 +1100
++
++fping (2.4b2-to-ipv6-14) unstable; urgency=low
++
++ * Set Standards-Version to 3.7.2.
++ * Set DH_COMPAT to 5.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Fri, 23 Jun 2006 20:56:39 +1000
++
++fping (2.4b2-to-ipv6-13) unstable; urgency=low
++
++ * Fixed stdout flush problem, closes: #340146.
++ Patch by Bart Martens <bart.martens@advalvas.be>.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Fri, 30 Dec 2005 08:30:09 +1100
++
++fping (2.4b2-to-ipv6-12) unstable; urgency=low
++
++ * Fixed "problem with option -r (retry limit)", closes: #318402.
++ Patch by Qingning Huo <qingningh@lanware.co.uk>.
++ * Set Standards-Version to 3.6.2 in debian/control and DH_COMPAT
++ to 4 in debian/rules..
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Sat, 08 Oct 2005 21:26:35 +1000
++
++fping (2.4b2-to-ipv6-11) unstable; urgency=low
++
++ * Fixed "would be useful to specify 'source address' like ping for multi
++ homed machines", closes: #198486.
++ Patch by Marc Haber <mh+debian-bugs@zugschlus.de>.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Thu, 02 Jun 2005 08:14:54 +1000
++
++fping (2.4b2-to-ipv6-10) unstable; urgency=low
++
++ * Fixed "unnecessary delay with the -c option after the last packet"
++ (Closes: #293856). Patch by Niko Tyni <ntyni@iki.fi>
++ * New maintainer's email address.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Sun, 06 Feb 2005 23:25:57 +1100
++
++fping (2.4b2-to-ipv6-9) unstable; urgency=low
++
++ * Fixed "fping6 always does reverse lookup" (Closes: #273647).
++ Patch by Jeroen Massar and forwarded by Bernhard Schmidt <berni@birkenwald.de>
++
++ -- Anibal Monsalve Salazar <A.Monsalve.Salazar@IEEE.org> Mon, 10 Jan 2005 00:01:32 +1100
++
++fping (2.4b2-to-ipv6-8) unstable; urgency=low
++
++ * New maintainer.
++
++ -- Anibal Monsalve Salazar <A.Monsalve.Salazar@IEEE.org> Thu, 20 May 2004 09:42:08 +1000
++
++fping (2.4b2-to-ipv6-7) unstable; urgency=low
++
++ * Build fping in build/ipv[46] instead of build and build-ipv6.
++ * Made DNS errors non-fatal for IPv6 (closes: #198056).
++
++ -- Herbert Xu <herbert@debian.org> Fri, 20 Jun 2003 21:36:30 +1000
++
++fping (2.4b2-to-ipv6-6) unstable; urgency=low
++
++ * Do not use incorrect linux.h file (closes: #85468).
++
++ -- Herbert Xu <herbert@debian.org> Sat, 17 May 2003 14:13:11 +1000
++
++fping (2.4b2-to-ipv6-5) unstable; urgency=low
++
++ * Fixed yet another divide by zero bug (closes: #148445).
++
++ -- Herbert Xu <herbert@debian.org> Tue, 4 Jun 2002 12:18:03 +1000
++
++fping (2.4b2-to-ipv6-4) unstable; urgency=low
++
++ * Made fping6 setuid (closes: #136386).
++ * Moved fping back into bin.
++ * Partially applied IPv6 patch to fix IPv6 checksums (closes: #136479).
++
++ -- Herbert Xu <herbert@debian.org> Sun, 7 Apr 2002 20:36:56 +1000
++
++fping (2.4b2-to-ipv6-3) unstable; urgency=low
++
++ * Added compatibility symlink for fping (closes: #135203).
++
++ -- Herbert Xu <herbert@debian.org> Sat, 23 Feb 2002 08:34:11 +1100
++
++fping (2.4b2-to-ipv6-2) unstable; urgency=low
++
++ * Turned setuid bit on again since the code before dropping privilegs is
++ minimal.
++ * Fixed another divide by zero error (closes: #132370).
++
++ -- Herbert Xu <herbert@debian.org> Thu, 7 Feb 2002 20:10:48 +1100
++
++fping (2.4b2-to-ipv6-1) unstable; urgency=low
++
++ * New upstream release.
++ * Install fping into sbin as done by upstream.
++ * Turned setuid bit off.
++
++ -- Herbert Xu <herbert@debian.org> Fri, 1 Feb 2002 22:11:59 +1100
++
++fping (2.2b2-3) unstable; urgency=low
++
++ * Removed INSTALL file from package (closes: #84050).
++ * Fixed alignment bug.
++
++ -- Herbert Xu <herbert@debian.org> Sat, 10 Feb 2001 19:25:18 +1100
++
++fping (2.2b2-2) unstable; urgency=low
++
++ * Made changes for dpkg-statoverride (closes: #83838).
++
++ -- Herbert Xu <herbert@debian.org> Sun, 28 Jan 2001 21:53:05 +1100
++
++fping (2.2b2-1) unstable; urgency=low
++
++ * New upstream release.
++ * Fixed typo that prevented -d from working (closes: #83255).
++ * Drop root privileges after opening the socket (closes: #81589).
++ * Fixed the options [tip], they were out by a factor of 10
++ (Richard Kettlewell, closes: #83742).
++
++ -- Herbert Xu <herbert@debian.org> Sun, 28 Jan 2001 00:09:41 +1100
++
++fping (2.2b1-2) unstable; urgency=low
++
++ * Fixed typo in control file, spotted by William Ono (closes: #49909).
++
++ -- Herbert Xu <herbert@debian.org> Mon, 15 May 2000 12:27:03 +1000
++
++fping (2.2b1-1) unstable; urgency=low
++
++ * Initial release.
++ * Fixed divide by zero error (closes: #29902).
++
++ -- Herbert Xu <herbert@debian.org> Sat, 30 Oct 1999 16:36:19 +1000
++
diff --git a/extra/fprintd/PKGBUILD b/extra/fprintd/PKGBUILD
new file mode 100644
index 000000000..bb5c2d2b5
--- /dev/null
+++ b/extra/fprintd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142462 2011-11-10 09:32:21Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Nikolay Rysev <mad.f3ka@gmail.com>
+
+pkgname=fprintd
+pkgver=0.4.1
+pkgrel=3
+pkgdesc="D-Bus service to access fingerprint readers"
+arch=(i686 x86_64)
+url="http://www.freedesktop.org/wiki/Software/fprint/fprintd"
+license=(GPL)
+depends=(libfprint dbus-glib polkit)
+makedepends=(intltool gtk-doc)
+groups=(fprint)
+options=(!libtool)
+_snap=V_${pkgver//./_}
+source=(http://cgit.freedesktop.org/libfprint/$pkgname/snapshot/$_snap.tar.bz2)
+md5sums=('58fcac035c181dce8f49c374181aa2ae')
+
+build() {
+ cd "$srcdir/$_snap"
+ ./autogen.sh --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$_snap"
+ make DESTDIR="$pkgdir" pammoddir="/lib/security" install
+}
diff --git a/extra/freealut/PKGBUILD b/extra/freealut/PKGBUILD
new file mode 100644
index 000000000..01c3b1a78
--- /dev/null
+++ b/extra/freealut/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137589 2011-09-09 23:35:10Z allan $
+# Maintainer:
+# Contributor: Arkamririon <Arkamririon@gmx.net>
+
+pkgname=freealut
+pkgver=1.1.0
+pkgrel=4
+pkgdesc="OpenAL Utility Toolkit (ALUT)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.openal.org"
+license=("LGPL")
+depends=('openal')
+options=('!libtool')
+source=(http://connect.creativelabs.com/openal/Downloads/ALUT/$pkgname-$pkgver.tar.gz)
+md5sums=('e089b28a0267faabdb6c079ee173664a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/freeciv/PKGBUILD b/extra/freeciv/PKGBUILD
new file mode 100644
index 000000000..d284831b3
--- /dev/null
+++ b/extra/freeciv/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143020 2011-11-21 02:06:36Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=freeciv
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="A multiuser clone of the famous Microprose game of Civilization"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freeciv.org/"
+license=('GPL')
+depends=('gtk2' 'sdl_mixer' 'hicolor-icon-theme')
+options=('!libtool')
+install=freeciv.install
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('9d9ee9f48f4c945fc6525139d340443d5a25aac4')
+
+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..92859e9f9
--- /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' 'mips64el')
+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..c55c55f31
--- /dev/null
+++ b/extra/freenx/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 140055 2011-10-06 06:24:35Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+#Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+pkgname=freenx
+pkgver=0.7.3
+pkgrel=10
+pkgdesc="Free Software (GPL) Implementation of the NX Server"
+arch=(i686 x86_64 'mips64el')
+url="http://freenx.berlios.de"
+license=('GPL')
+depends=('nxserver' 'gnu-netcat' 'inetutils' 'openssh' 'expect' 'xorg-xauth' 'xorg-fonts-misc' 'coreutils' 'xorg-xmessage' 'xorg-xrdb' 'xorg-xpr' 'xorg-xset' 'xorg-sessreg')
+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..360dcb568
--- /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.91
+pkgrel=1
+pkgdesc='Library for accessing Sybase and MS SQL Server databases'
+url='http://www.freetds.org'
+arch=('i686' 'x86_64' 'mips64el')
+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=('b14db5823980a32f0643d1a84d3ec3ad')
+
+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..a9b9a792c
--- /dev/null
+++ b/extra/freetype2/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142921 2011-11-18 09:26:09Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=freetype2
+pkgver=2.4.8
+pkgrel=1
+pkgdesc="TrueType font rendering library"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://freetype.sourceforge.net"
+depends=('zlib' 'bzip2' 'sh')
+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=('dbf2caca1d3afd410a29217a9809d397'
+ '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"
+
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/freetype-${pkgver}"
+ make -k check
+}
+
+package() {
+ cd "${srcdir}/freetype-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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/PKGBUILD b/extra/fribidi/PKGBUILD
new file mode 100644
index 000000000..e1c1d636b
--- /dev/null
+++ b/extra/fribidi/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137683 2011-09-10 12:05:16Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Nezmer <Nezmer@gmail.com>
+
+pkgname=fribidi
+pkgver=0.19.2
+pkgrel=2
+pkgdesc="A Free Implementation of the Unicode Bidirectional Algorithm"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/frozen-bubble/PKGBUILD b/extra/frozen-bubble/PKGBUILD
new file mode 100644
index 000000000..c3ce7383a
--- /dev/null
+++ b/extra/frozen-bubble/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 127529 2011-06-15 21:23:24Z remy $
+# 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=3
+pkgdesc="A game in which you throw colorful bubbles and build groups to destroy the bubbles"
+arch=(i686 x86_64 'mips64el')
+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')
+
+build() {
+ cd "$srcdir/$pkgname-$_pkgver"
+ unset CFLAGS
+ # install module in vendor directories
+ perl Build.PL installdirs=vendor
+ perl Build
+}
+
+check() {
+ cd "$srcdir/$pkgname-$_pkgver"
+ perl Build test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$_pkgver"
+ perl Build install destdir="$pkgdir"
+
+ 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..25317e58e
--- /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' 'mips64el')
+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..02bae5641
--- /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' 'mips64el')
+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..840803673
--- /dev/null
+++ b/extra/ftgl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143589 2011-11-26 21:44:46Z 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=3
+pkgdesc="OpenGL library to use arbitrary fonts"
+arch=(i686 x86_64 'mips64el')
+url="http://ftgl.wiki.sourceforge.net/"
+license=(MIT)
+depends=(freetype2 mesa)
+makedepends=(doxygen glut)
+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..cc37b7383
--- /dev/null
+++ b/extra/ftjam/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 136989 2011-09-04 19:07:07Z eric $
+# Maintainer: Roman Kyrylych <roman@gmail.com>
+# Contributor: Roman Kyrylych <roman@gmail.com>
+
+pkgname=ftjam
+pkgver=2.5.3rc2
+pkgrel=3
+pkgdesc='FT Jam - an enhanced version of the Jam build tool'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freetype.org/jam/"
+license=('custom')
+depends=('glibc')
+provides=('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'
+ 'ef8ff7da77fe60e25d1e3e740600f1f0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 "${srcdir}/license.txt" "${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
+}
diff --git a/extra/ftjam/license.txt b/extra/ftjam/license.txt
new file mode 100644
index 000000000..4b633251a
--- /dev/null
+++ b/extra/ftjam/license.txt
@@ -0,0 +1,7 @@
+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.
diff --git a/extra/fuse/PKGBUILD b/extra/fuse/PKGBUILD
new file mode 100644
index 000000000..92d96cdf0
--- /dev/null
+++ b/extra/fuse/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 141256 2011-10-27 14:45:14Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Mark Rosenstand <mark@archlinux.org>
+
+pkgname=fuse
+pkgver=2.8.6
+pkgrel=1
+pkgdesc="A library that makes it possible to implement a filesystem in a userspace program."
+arch=('i686' 'x86_64' 'mips64el')
+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=('c2c0f9fff8bfee217da200888123e5abb5b498f2'
+ '3b42e37a741d4651099225987dc40e7f02a716ad')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # fix building with glibc-2.14
+ sed -i '1i#define _GNU_SOURCE' util/fusermount.c
+
+ ./configure --prefix=/usr --enable-lib \
+ --enable-util --bindir=/bin
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # 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/
+ ln -s ../../lib/libfuse.so.${pkgver} ${pkgdir}/usr/lib/libfuse.so.${pkgver}
+ ln -s libfuse.so.${pkgver} ${pkgdir}/lib/libfuse.so.2
+ mv ${pkgdir}/usr/lib/libulockmgr.so.1.0.1 ${pkgdir}/lib/
+ ln -s ../../lib/libulockmgr.so.1.0.1 ${pkgdir}/usr/lib/libulockmgr.so.1.0.1
+ ln -s libulockmgr.so.1.0.1 ${pkgdir}/lib/libulockmgr.so.1
+
+ # install sample config file
+ install -Dm644 ${srcdir}/fuse.conf ${pkgdir}/etc/fuse.conf
+ # Fix udev rule location
+ install -d -m755 "${pkgdir}/lib"
+ mv "${pkgdir}/etc/udev" "${pkgdir}/lib/"
+
+ # remove udev rules (should already be in udev package}
+ rm -f ${pkgdir}/lib/udev/rules.d/99-fuse.rules
+}
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..f186d64c7
--- /dev/null
+++ b/extra/fuse/fuse.install
@@ -0,0 +1,10 @@
+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
+}
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/PKGBUILD b/extra/fvwm/PKGBUILD
new file mode 100644
index 000000000..d45e204f3
--- /dev/null
+++ b/extra/fvwm/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140040 2011-10-06 00:22:58Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fvwm
+pkgver=2.6.3
+pkgrel=1
+pkgdesc="A multiple large virtual desktop window manager originally derived from twm"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fvwm.org"
+license=('GPL' 'custom')
+depends=('imlib' 'fribidi' 'perl' 'libstroke' 'libxpm' 'librsvg' 'libxinerama' 'libxcursor')
+makedepends=('libxslt')
+provides=('fvwm-devel')
+conflicts=('fvwm-devel')
+replaces=('fvwm-devel')
+options=('!emptydirs' '!makeflags')
+source=(ftp://ftp.fvwm.org/pub/fvwm/version-${pkgver%%.*}/${pkgname}-${pkgver}.tar.bz2 fvwm.desktop)
+sha1sums=('7a04dae0e4a17f4d908589e704b48246b7c05e39'
+ '6fd8fd767f32f88cc8b4743a2ba49bcfcdb32bcb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --with-stroke-library
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 sample.fvwmrc/{decor_examples,DecorMwm,DecorWin95,new-features,system.*} "${pkgdir}/usr/share/doc/fvwm"
+ install -D -m644 ../fvwm.desktop "${pkgdir}/usr/share/xsessions/fvwm.desktop"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/fvwm/fvwm.desktop b/extra/fvwm/fvwm.desktop
new file mode 100644
index 000000000..e297a6109
--- /dev/null
+++ b/extra/fvwm/fvwm.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=FVWM
+Comment=The fvwm window manager
+Type=XSession
+Exec=/usr/bin/fvwm
+TryExec=/usr/bin/fvwm
diff --git a/extra/fwbuilder/PKGBUILD b/extra/fwbuilder/PKGBUILD
new file mode 100644
index 000000000..384b1b6df
--- /dev/null
+++ b/extra/fwbuilder/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 139474 2011-10-02 02:49:30Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=fwbuilder
+pkgver=5.0.0.3568
+pkgrel=2
+pkgdesc="Object-oriented GUI and set of compilers for various firewall platforms"
+url="http://www.fwbuilder.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libxslt' 'net-snmp' 'qt')
+conflicts=('libfwbuilder')
+install=fwbuilder.install
+source=("http://sourceforge.net/projects/fwbuilder/files/Current_Packages/5.0.0/fwbuilder-${pkgver}.tar.gz")
+md5sums=('0324edab10329dde029953d646aa8dad')
+
+build() {
+ cd "${srcdir}/fwbuilder-${pkgver}"
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/fwbuilder-${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/PKGBUILD b/extra/fyre/PKGBUILD
new file mode 100644
index 000000000..990b441c7
--- /dev/null
+++ b/extra/fyre/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143668 2011-11-28 09:29:53Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fyre
+pkgver=1.0.1
+pkgrel=4
+pkgdesc="Rendering of the Peter de Jong map"
+arch=("i686" "x86_64" 'mips64el')
+url="http://fyre.navi.cx/"
+license=('GPL')
+depends=('openexr' 'libglade' 'gnet' 'shared-mime-info' 'hicolor-icon-theme' 'desktop-file-utils')
+install=fyre.install
+source=(http://releases.navi.cx/fyre/fyre-${pkgver}.tar.bz2)
+sha1sums=('41c0ec45eff16cc1bba081c5c855a3980e404835')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make update_xdgmime=/bin/false update_fdodesktop=/bin/false gtk_update_icon_cache=/bin/false \
+ prefix="${pkgdir}/usr" install
+}
diff --git a/extra/fyre/fyre.install b/extra/fyre/fyre.install
new file mode 100644
index 000000000..388efbb11
--- /dev/null
+++ b/extra/fyre/fyre.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gamin/PKGBUILD b/extra/gamin/PKGBUILD
new file mode 100644
index 000000000..9de513ac9
--- /dev/null
+++ b/extra/gamin/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 30749 2010-10-20 11:18:33Z schuay $
+# Maintainer:
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Pulphix <crimea.v@libero.it>
+
+pkgname=gamin
+pkgver=0.1.10
+pkgrel=6
+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' 'mips64el')
+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"
+ 'fix-deprecated-const.patch')
+md5sums=('b4ec549e57da470c04edd5ec2876a028'
+ 'f679aeb48fe9dd376c8828cc9b6941ab')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i "${srcdir}"/fix-deprecated-const.patch
+
+ # 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/extra/gamin/fix-deprecated-const.patch b/extra/gamin/fix-deprecated-const.patch
new file mode 100644
index 000000000..3d5f6133f
--- /dev/null
+++ b/extra/gamin/fix-deprecated-const.patch
@@ -0,0 +1,56 @@
+Description: Don't use deprecated G_CONST_RETURN. Fixes building with newer glib versions.
+Author: Matthias Klose <doko@ubuntu.com>
+Bug-Ubuntu: https://launchpad.net/bugs/829504
+
+Index: gamin/server/gam_node.c
+===================================================================
+--- gamin.orig/server/gam_node.c 2011-10-18 16:09:04.873780685 +0200
++++ gamin/server/gam_node.c 2011-10-18 16:09:01.965780543 +0200
+@@ -122,7 +122,7 @@
+ * it has finished with the string. If it must keep it longer, it
+ * should makes its own copy. The returned string must not be freed.
+ */
+-G_CONST_RETURN char *
++const char *
+ gam_node_get_path(GamNode * node)
+ {
+ g_assert(node);
+Index: gamin/server/gam_node.h
+===================================================================
+--- gamin.orig/server/gam_node.h 2011-10-18 16:09:04.729780677 +0200
++++ gamin/server/gam_node.h 2011-10-18 16:09:01.961780544 +0200
+@@ -58,7 +58,7 @@
+ void gam_node_set_is_dir (GamNode *node,
+ gboolean is_dir);
+
+-G_CONST_RETURN char *gam_node_get_path (GamNode *node);
++const char *gam_node_get_path (GamNode *node);
+
+ GList *gam_node_get_subscriptions (GamNode *node);
+
+Index: gamin/server/gam_subscription.c
+===================================================================
+--- gamin.orig/server/gam_subscription.c 2011-10-18 16:09:04.817780682 +0200
++++ gamin/server/gam_subscription.c 2011-10-18 16:09:01.965780543 +0200
+@@ -141,7 +141,7 @@
+ * @param sub the GamSubscription
+ * @returns The path being monitored. It should not be freed.
+ */
+-G_CONST_RETURN char *
++const char *
+ gam_subscription_get_path(GamSubscription * sub)
+ {
+ if (sub == NULL)
+Index: gamin/server/gam_subscription.h
+===================================================================
+--- gamin.orig/server/gam_subscription.h 2011-10-18 16:09:04.929780687 +0200
++++ gamin/server/gam_subscription.h 2011-10-18 16:09:01.965780543 +0200
+@@ -21,7 +21,7 @@
+
+ int gam_subscription_get_reqno (GamSubscription *sub);
+
+-G_CONST_RETURN char *gam_subscription_get_path (GamSubscription *sub);
++const char *gam_subscription_get_path (GamSubscription *sub);
+
+ GamListener *gam_subscription_get_listener (GamSubscription *sub);
+
diff --git a/extra/garcon/PKGBUILD b/extra/garcon/PKGBUILD
new file mode 100644
index 000000000..4badc4ab2
--- /dev/null
+++ b/extra/garcon/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143709 2011-11-28 15:22:07Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Xavier Devlamynck <magicrhesus@ouranos.be>
+
+pkgname=garcon
+pkgver=0.1.9
+pkgrel=1
+pkgdesc="Implementation of the freedesktop.org menu specification"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://wiki.xfce.org/dev/garcon"
+license=('LGPL')
+groups=('xfce4')
+depends=('glib2' 'libxfce4util')
+makedepends=('pkgconfig' 'intltool' 'xfce4-dev-tools')
+replaces=('libxfce4menu')
+options=('!libtool' '!makeflags')
+source=(http://archive.xfce.org/src/xfce/garcon/0.1/garcon-$pkgver.tar.bz2)
+sha256sums=('485e23c8ec1af0d3af423aa244e05467dd2f96afbb66efc70ca7689222cf31d5')
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gc/PKGBUILD b/extra/gc/PKGBUILD
new file mode 100644
index 000000000..f54416b69
--- /dev/null
+++ b/extra/gc/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 123615 2011-05-11 19:36:33Z jgc $
+# Maintainer: Daniel Isenmann <daniel [at] archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+pkgname=gc
+pkgver=7.2alpha6
+pkgrel=1
+pkgdesc="A garbage collector for C and C++"
+arch=(i686 x86_64 'mips64el')
+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=('319d0b18cc4eb735c8038ece9df055e4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # Installing a single file twice fails.
+ sed -ri 's/(am__append_6 =) .*$/\1/' Makefile.in
+ ./configure --prefix=/usr --enable-cplusplus
+ make
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/share/gc"
+ install -m755 -d "${pkgdir}/usr/share/doc/gc"
+ install -m644 doc/README{,.{changes,contributors,environment,linux}} \
+ "${pkgdir}/usr/share/doc/gc/"
+
+ sed -i -e 's/GC_MALLOC 1L/gc 3/' doc/gc.man
+ install -m755 -d "${pkgdir}/usr/share/man/man3"
+ install -m644 doc/gc.man "${pkgdir}/usr/share/man/man3/gc.3"
+}
diff --git a/extra/gcalctool/PKGBUILD b/extra/gcalctool/PKGBUILD
new file mode 100644
index 000000000..0a3431588
--- /dev/null
+++ b/extra/gcalctool/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 139265 2011-10-01 18:56:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gcalctool
+pkgver=6.2.0
+pkgrel=1
+pkgdesc="GNOME Scientific calculator"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('ddc2efe25220e9341832304dfd9e5e2390a70bb6bd70d1afeb49da88023cdffb')
+
+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/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..4c322fb2c
--- /dev/null
+++ b/extra/gcin/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 145012 2011-12-14 10:17:16Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=gcin
+pkgver=2.5.4
+pkgrel=1
+pkgdesc='Input method server supporting various input methods'
+url='http://hyperrate.com/dir.php?eid=67'
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gtk2' 'libxtst')
+makedepends=('qt' 'gtk3' 'anthy' 'libchewing')
+optdepends=('qt: support for qt4 input method'
+ 'gtk3: support for gtk3 input method'
+ 'anthy: support for anthy input method'
+ 'libchewing: support for chewing input method')
+source=("http://www.csie.nctu.edu.tw/~cp76/gcin/download/${pkgname}-${pkgver}.tar.xz"
+ 'qt4-lib64.patch')
+sha1sums=('4c0d3582eb370b4e295268801806c3bdd47a6940'
+ '4b121e9a86a2ca25869c69b7d4d9623a0c8f55fc')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../qt4-lib64.patch
+ sed '/include suffixes-rule/a \
+ CFLAGS+='"${CFLAGS}"' \
+ LDFLAGS+='"${LDFLAGS}"' \
+ OPTFLAGS=' \
+ -i Makefile
+
+ ./configure --prefix=/usr --use_i18n=Y
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gcin/install b/extra/gcin/install
new file mode 100644
index 000000000..c16d11b5e
--- /dev/null
+++ b/extra/gcin/install
@@ -0,0 +1,14 @@
+post_install() {
+ echo -n "updating gtk immodules... "
+ [ -x /usr/bin/gtk-query-immodules-2.0 ] && /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ [ -x /usr/bin/gtk-query-immodules-3.0 ] && /usr/bin/gtk-query-immodules-3.0 > /usr/lib/gtk-3.0/3.0.0/immodules.cache
+ echo "done."
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gcin/qt4-lib64.patch b/extra/gcin/qt4-lib64.patch
new file mode 100644
index 000000000..abc15950e
--- /dev/null
+++ b/extra/gcin/qt4-lib64.patch
@@ -0,0 +1,31 @@
+diff -aur old/configure new/configure
+--- old/configure 2011-11-07 06:51:12.000000000 +1100
++++ new/configure 2011-11-25 14:02:10.819256960 +1100
+@@ -188,7 +188,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"
+ pkg-config --libs QtCore QtGui > /dev/null 2> /dev/null
+ if [ $? = 0 ]; then
+diff -aur old/qt4-im/Makefile new/qt4-im/Makefile
+--- old/qt4-im/Makefile 2011-06-08 23:03:50.000000000 +1000
++++ new/qt4-im/Makefile 2011-11-25 14:05:28.844110772 +1100
+@@ -1,5 +1,5 @@
+ include ../config.mak
+-QT=qt4
++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/gconf-editor/PKGBUILD b/extra/gconf-editor/PKGBUILD
new file mode 100644
index 000000000..d47432967
--- /dev/null
+++ b/extra/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 'mips64el')
+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/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..ae8bb0c3f
--- /dev/null
+++ b/extra/gconf-perl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143700 2011-11-28 13:20:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gconf-perl
+pkgver=1.044
+pkgrel=6
+pkgdesc="Gnome2-GConf perl bindings for gconf"
+arch=('i686' 'x86_64' 'mips64el')
+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/Gnome2-GConf-${pkgver}.tar.gz
+ disable-orbit.patch)
+md5sums=('ea386003b18f067524833b0eeb271330'
+ '14852fc936ce7b552eb204913d55fd1c')
+
+build() {
+ cd "${srcdir}/Gnome2-GConf-${pkgver}"
+ patch -Np1 -i "${srcdir}/disable-orbit.patch"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/Gnome2-GConf-${pkgver}"
+ dbus-launch --exit-with-session make test
+}
+
+package() {
+ cd "${srcdir}/Gnome2-GConf-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gconf-perl/disable-orbit.patch b/extra/gconf-perl/disable-orbit.patch
new file mode 100644
index 000000000..da526ec2e
--- /dev/null
+++ b/extra/gconf-perl/disable-orbit.patch
@@ -0,0 +1,30 @@
+Description: Disable gconf_engine_key_is_writable
+ This symbol is not available in libgconf when it is configured without
+ ORBit support, which is currently the case in Debian.
+Author: Colin Watson <cjwatson@ubuntu.com>
+Bug-Debian: http://bugs.debian.org/649055
+Forwarded: no
+Last-Update: 2011-11-17
+
+Index: b/xs/GConfEngine.xs
+===================================================================
+--- a/xs/GConfEngine.xs
++++ b/xs/GConfEngine.xs
+@@ -350,6 +350,8 @@
+ if (err)
+ gperl_croak_gerror (NULL, err);
+
++#if 0 /* requires gconf to be configured with ORBit support */
++
+ ##gboolean gconf_engine_key_is_writable (GConfEngine *conf,
+ ## const gchar *key,
+ ## GError **err);
+@@ -366,6 +368,8 @@
+ OUTPUT:
+ RETVAL
+
++#endif
++
+ guint
+ gconf_engine_notify_add (engine, namespace_section, func, data=NULL)
+ GConfEngine * engine
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..7134cc0b2
--- /dev/null
+++ b/extra/gconf/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 141600 2011-10-31 15:48:45Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gconf
+pkgver=3.2.3
+pkgrel=1.1
+pkgdesc="A configuration database system"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('libxml2' 'polkit' 'libldap' 'dbus-glib' 'gtk3')
+makedepends=('intltool' 'gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gconf.install
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-${pkgver}.tar.xz
+ gconf-merge-schema
+ gconfpkg
+ gconf-reload.patch
+ 01_xml-gettext-domain.patch)
+sha256sums=('9eb55dd1d009b6eba9c32e3fae87d3aa45a33629a5e2031ed9f5acb05efaa149'
+ '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 \
+ --disable-orbit
+
+ 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/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..9e9238284
--- /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 'mips64el')
+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/PKGBUILD b/extra/gd/PKGBUILD
new file mode 100644
index 000000000..101641945
--- /dev/null
+++ b/extra/gd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137764 2011-09-10 16:29:02Z pierre $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=gd
+pkgver=2.0.36RC1
+pkgrel=4
+pkgdesc="Library for the dynamic creation of images by programmers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.libgd.org/"
+license=('custom')
+depends=('perl' 'libpng' 'fontconfig' 'libjpeg')
+options=('!libtool')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'libpng14.patch')
+md5sums=('e876979ca3130623a4e7866d9579171a'
+ '7921556f4960e8d66cf4fb67ea7101b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/libpng14.patch
+ ./configure --prefix=/usr --without-xpm
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
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..13c0207d5
--- /dev/null
+++ b/extra/gdb/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 137004 2011-09-05 05:59:05Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdb
+pkgver=7.3.1
+pkgrel=1
+pkgdesc="The GNU Debugger"
+arch=('i686' 'x86_64' 'mips64el')
+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=('b89a5fac359c618dda97b88645ceab47')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --disable-nls \
+ --with-system-readline \
+ --with-python=/usr/bin/python2 \
+ --with-system-gdbinit=/etc/gdb/gdbinit
+ make
+}
+
+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..986ec547c
--- /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..4aacf4e32
--- /dev/null
+++ b/extra/gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 136355 2011-08-27 09:31:43Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gdk-pixbuf2
+pkgver=2.24.0
+pkgrel=1
+pkgdesc="An image loading library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libpng' 'libtiff' 'libjpeg' 'libx11')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.24/gdk-pixbuf-${pkgver}.tar.xz)
+sha256sums=('67c11d3aa40441c1cea42c365bf2d6a9a9dd52fae2d359a707ad5e8abb4d28a7')
+
+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..df31e3cfa
--- /dev/null
+++ b/extra/gdl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 139625 2011-10-03 20:22:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdl
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="GNOME Docking Library"
+arch=(i686 x86_64 mips64el)
+license=('GPL')
+url="http://www.gnome.org/"
+depends=('gtk3')
+makedepends=('gtk-doc' 'intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('f4839224b7837efb8fbec8666f8a3bb1ce9ea110f06c57a8b9438faa0abab533')
+
+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/gdm/PKGBUILD b/extra/gdm/PKGBUILD
new file mode 100644
index 000000000..72a36a17e
--- /dev/null
+++ b/extra/gdm/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 140873 2011-10-20 05:42:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdm
+pkgver=3.2.1.1
+pkgrel=1
+pkgdesc="Gnome Display Manager (a reimplementation of xdm)"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org"
+backup=('etc/pam.d/gdm-autologin' 'etc/pam.d/gdm-fingerprint' 'etc/pam.d/gdm' 'etc/pam.d/gdm-password'
+ 'etc/pam.d/gdm-smartcard' 'etc/pam.d/gdm-welcome' 'etc/gdm/custom.conf')
+groups=('gnome-extra')
+options=('!libtool')
+depends=('libcanberra' 'libxklavier' 'gnome-session' 'gnome-settings-daemon' 'metacity' 'upower' 'accountsservice' 'consolekit' 'xorg-xrdb' 'nss')
+makedepends=('intltool' 'gnome-doc-utils' 'xorg-server' 'gobject-introspection')
+optdepends=('gnome-shell: new login interface')
+install=gdm.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz
+ fix_external_program_directories.patch
+ gdm-vt-allocation-hack.patch
+ gdm
+ gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam)
+sha256sums=('85a1383f93870fb5d47a938cc2e04b6f0d74cb611a2b5d94d9651b78a5ccffbd'
+ '2014ae3a6077546f7c07e80a6acc8a1c80c6765ad319ec389f52500c5a4fb363'
+ '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215'
+ '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550'
+ 'b30dfa217718b43ff3aa4e8af08985963175b79ff30698ec54e8396d2905922d'
+ '5bc3ff3ea7b31219dfcb7d9fc0eb2819eca1c5573a0f426d288a17560a69633e'
+ 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19'
+ '92aded0804bad8a609fd150448ad4a2edb8166c17cb4e2b581559e80603bbb6c'
+ 'df74b0dcfb17ea43cc1e268a27cd256c552672457db1af40b285452d16b3e2fd'
+ '39bf3824cc505043dc3136356da16dab9df9f369f1077435a324be2ac16cf834')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix_external_program_directories.patch"
+ patch -Np1 -i "${srcdir}/gdm-vt-allocation-hack.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gdm \
+ --localstatedir=/var \
+ --with-at-spi-registryd-directory=/usr/lib/at-spi2-core \
+ --disable-scrollkeeper \
+ --disable-static \
+ --without-tcp-wrappers
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ 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
+
+ for i in gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam;do
+ install -m644 "${srcdir}/${i}" "${pkgdir}/etc/pam.d/${i%.pam}"
+ done
+
+ install -Dm755 "${srcdir}/gdm" "${pkgdir}/etc/rc.d/gdm"
+
+ chmod 1770 "${pkgdir}/var/log/gdm"
+ chmod 700 "${pkgdir}/var/lib/gdm/.config/dconf"
+ rm -rf "${pkgdir}/var/run" "${pkgdir}/var/gdm" "${pkgdir}/etc/gconf"
+}
diff --git a/extra/gdm/fix_external_program_directories.patch b/extra/gdm/fix_external_program_directories.patch
new file mode 100644
index 000000000..997ea5405
--- /dev/null
+++ b/extra/gdm/fix_external_program_directories.patch
@@ -0,0 +1,34 @@
+diff -Nur gdm-3.2.0.orig/daemon/gdm-server.c gdm-3.2.0/daemon/gdm-server.c
+--- gdm-3.2.0.orig/daemon/gdm-server.c 2011-10-02 01:13:37.772372528 +0000
++++ gdm-3.2.0/daemon/gdm-server.c 2011-10-02 01:14:58.036444496 +0000
+@@ -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-3.2.0.orig/data/gdm-shell.session.in gdm-3.2.0/data/gdm-shell.session.in
+--- gdm-3.2.0.orig/data/gdm-shell.session.in 2011-10-02 01:17:01.394246573 +0000
++++ gdm-3.2.0/data/gdm-shell.session.in 2011-10-02 01:16:22.210552560 +0000
+@@ -1,5 +1,5 @@
+ [GNOME Session]
+ Name=Display Manager
+ RequiredComponents=gnome-shell;gnome-settings-daemon;
+-IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated'
++IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && /usr/lib/gnome-session/gnome-session-check-accelerated'
+ FallbackSession=gdm-fallback
+diff -Nur gdm-3.2.0.orig/gui/simple-chooser/gdm-chooser-session.c gdm-3.2.0/gui/simple-chooser/gdm-chooser-session.c
+--- gdm-3.2.0.orig/gui/simple-chooser/gdm-chooser-session.c 2011-10-02 01:13:37.775705892 +0000
++++ gdm-3.2.0/gui/simple-chooser/gdm-chooser-session.c 2011-10-02 01:14:58.036444496 +0000
+@@ -131,7 +131,7 @@
+ ret = FALSE;
+
+ error = NULL;
+- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon", &error);
++ g_spawn_command_line_async ("/usr/lib/gnome-settings-daemon/gnome-settings-daemon", &error);
+ if (error != NULL) {
+ g_warning ("Error starting settings daemon: %s", error->message);
+ g_error_free (error);
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..c77c78917
--- /dev/null
+++ b/extra/gdm/gdm-autologin.pam
@@ -0,0 +1,18 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_permit.so
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_unix.so
+
+password required pam_deny.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so revoke
+session required pam_limits.so
+session required pam_unix.so
diff --git a/extra/gdm/gdm-fingerprint.pam b/extra/gdm/gdm-fingerprint.pam
new file mode 100644
index 000000000..5b74bf6d6
--- /dev/null
+++ b/extra/gdm/gdm-fingerprint.pam
@@ -0,0 +1,18 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_fprintd.so
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_unix.so
+
+password required pam_deny.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so revoke
+session required pam_limits.so
+session required pam_unix.so
diff --git a/extra/gdm/gdm-password.pam b/extra/gdm/gdm-password.pam
new file mode 100644
index 000000000..aa4d4dd47
--- /dev/null
+++ b/extra/gdm/gdm-password.pam
@@ -0,0 +1,20 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_unix.so nullok
+auth optional pam_gnome_keyring.so
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_unix.so
+
+password required pam_unix.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so force revoke
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_gnome_keyring.so auto_start
diff --git a/extra/gdm/gdm-smartcard.pam b/extra/gdm/gdm-smartcard.pam
new file mode 100644
index 000000000..baacb8bed
--- /dev/null
+++ b/extra/gdm/gdm-smartcard.pam
@@ -0,0 +1,18 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_pkcs11.so wait_for_card card_only
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_unix.so
+
+password required pam_pkcs11.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so revoke
+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-welcome.pam b/extra/gdm/gdm-welcome.pam
new file mode 100644
index 000000000..cc3811c19
--- /dev/null
+++ b/extra/gdm/gdm-welcome.pam
@@ -0,0 +1,12 @@
+#%PAM-1.0
+auth required pam_env.so
+auth required pam_permit.so
+
+account required pam_nologin.so
+account required pam_unix.so
+
+password required pam_deny.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so force revoke
diff --git a/extra/gdm/gdm.install b/extra/gdm/gdm.install
new file mode 100644
index 000000000..fda42d319
--- /dev/null
+++ b/extra/gdm/gdm.install
@@ -0,0 +1,31 @@
+pkgname=gdm
+
+post_install() {
+ getent group gdm >/dev/null 2>&1 || groupadd -g 120 gdm
+ getent passwd gdm > /dev/null 2>&1 || usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
+ passwd -l gdm > /dev/null
+ chown -R gdm:gdm /var/lib/gdm > /dev/null
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gconfpkg --install ${pkgname}
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ dconf update
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ dconf update
+ 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..c6e1eb377
--- /dev/null
+++ b/extra/gdome2/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 127384 2011-06-14 06:53:04Z andrea $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdome2
+pkgver=0.8.1
+pkgrel=3.1
+pkgdesc="Gnome DOM Engine"
+url="http://gdome2.cs.unibo.it/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('libxml2' 'glib2')
+options=(!libtool)
+source=("http://gdome2.cs.unibo.it/tarball/${pkgname}-${pkgver}.tar.gz")
+md5sums=('bfc114e59eec50cbda8e4ece751ff022')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ if [ "$CARCH" = mips64el ]; then
+ CFLAGS="$CFLAGS -fpic"
+ CXXFLAGS="$CXXFLAGS -fpic"
+ fi
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --host=${CARCH} --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gecko-sharp-2.0/PKGBUILD b/extra/gecko-sharp-2.0/PKGBUILD
new file mode 100644
index 000000000..87cc99e47
--- /dev/null
+++ b/extra/gecko-sharp-2.0/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 137770 2011-09-10 17:09:41Z pierre $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=gecko-sharp-2.0
+pkgver=0.13
+pkgrel=4
+pkgdesc="C# bindings for gtkmozembed"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL' 'MPL')
+url="http://www.mono-project.com/"
+depends=('xulrunner' 'gtk-sharp-2')
+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="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd ${srcdir}/gecko-sharp-2.0-${pkgver}
+ patch -Np1 -i ${srcdir}/gecko-sharp-2.0-0.12-xulrunner.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/gecko-sharp-2.0-${pkgver}
+ make GACUTIL="/usr/bin/gacutil /root ${pkgdir}/usr/lib" \
+ DESTDIR=${pkgdir} install
+}
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..14c922a82
--- /dev/null
+++ b/extra/gedit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144900 2011-12-09 12:16:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gedit
+pkgver=3.2.5
+pkgrel=1
+pkgdesc="A text editor for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gtksourceview3' 'gsettings-desktop-schemas' 'libpeas' 'enchant' 'iso-codes' 'libsm' 'desktop-file-utils' 'python2-gobject' 'dconf')
+makedepends=('gnome-doc-utils' 'intltool')
+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.xz)
+sha256sums=('0cec1916b4ba878531d32163767a8d39b72eea8d6893103238c82d3a27127c81')
+
+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/extra/gedit/gedit.install b/extra/gedit/gedit.install
new file mode 100644
index 000000000..9d88a1341
--- /dev/null
+++ b/extra/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/extra/geeqie/PKGBUILD b/extra/geeqie/PKGBUILD
new file mode 100644
index 000000000..1b30d10e4
--- /dev/null
+++ b/extra/geeqie/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 139879 2011-10-05 19:06:37Z andrea $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=geeqie
+pkgver=1.0
+pkgrel=6
+pkgdesc="A lightweight image browser and viewer (fork of GQview)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://geeqie.sourceforge.net/"
+license=('GPL3')
+depends=('exiv2' 'gtk2' 'lcms' 'desktop-file-utils')
+makedepends=('intltool' 'doxygen' 'gnome-doc-utils')
+optdepends=('librsvg: SVG rendering')
+replaces=('gqview-devel')
+install=geeqie.install
+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/geeqie/geeqie.install b/extra/geeqie/geeqie.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/extra/geeqie/geeqie.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/gegl/0.1.6-ffmpeg.patch b/extra/gegl/0.1.6-ffmpeg.patch
new file mode 100644
index 000000000..51fb95d28
--- /dev/null
+++ b/extra/gegl/0.1.6-ffmpeg.patch
@@ -0,0 +1,33 @@
+diff -urN gegl-0.1.6.old//operations/external/ff-load.c gegl-0.1.6/operations/external/ff-load.c
+--- gegl-0.1.6.old//operations/external/ff-load.c 2011-01-24 19:03:30.000000000 -0300
++++ gegl-0.1.6/operations/external/ff-load.c 2011-05-04 09:59:48.910379742 -0300
+@@ -69,17 +69,17 @@
+ {
+ switch (err)
+ {
+- case AVERROR_NUMEXPECTED:
++ case AVERROR(EDOM):
+ g_warning ("%s: Incorrect image filename syntax.\n"
+ "Use '%%d' to specify the image number:\n"
+ " for img1.jpg, img2.jpg, ..., use 'img%%d.jpg';\n"
+ " for img001.jpg, img002.jpg, ..., use 'img%%03d.jpg'.\n",
+ filename);
+ break;
+- case AVERROR_INVALIDDATA:
++ case AVERROR(EINVAL):
+ g_warning ("%s: Error while parsing header\n", filename);
+ break;
+- case AVERROR_NOFMT:
++ case AVERROR(EILSEQ):
+ g_warning ("%s: Unknown format\n", filename);
+ break;
+ default:
+@@ -278,7 +278,7 @@
+ for (i = 0; i< p->ic->nb_streams; i++)
+ {
+ AVCodecContext *c = p->ic->streams[i]->codec;
+- if (c->codec_type == CODEC_TYPE_VIDEO)
++ if (c->codec_type == AVMEDIA_TYPE_VIDEO)
+ {
+ p->video_st = p->ic->streams[i];
+ p->video_stream = i;
diff --git a/extra/gegl/PKGBUILD b/extra/gegl/PKGBUILD
new file mode 100644
index 000000000..93a8cbd50
--- /dev/null
+++ b/extra/gegl/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 144902 2011-12-09 12:21:40Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gegl
+pkgver=0.1.8
+pkgrel=1
+pkgdesc="Graph based image processing framework"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gegl.org/"
+license=('GPL3' 'LGPL3')
+depends=('babl' '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)
+sha1sums=('3d4d902580f5c5122b01b5188b6b5da03089ecac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-sdl --with-openexr --with-librsvg \
+ --with-libavformat --with-jasper --disable-docs
+ make
+}
+
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# make check
+#}
+
+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..0eb84efd5
--- /dev/null
+++ b/extra/genius/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 134294 2011-08-02 19:07:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@soulfly.nl>
+
+pkgname=genius
+pkgver=1.0.14
+pkgrel=1
+pkgdesc="Advanced calculator including a mathematical programming language"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('90ed181e6bb0b4a8a5adcad1eb8273c55685345e7f322b3591b59be02e41bb5f')
+
+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..279078fe1
--- /dev/null
+++ b/extra/geoip/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 136949 2011-09-03 12:23:55Z foutrelis $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=geoip
+pkgver=1.4.8
+pkgrel=1
+pkgdesc="Non-DNS IP-to-country resolver C library & utils"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.maxmind.com/app/c"
+license=('GPL')
+depends=('zlib')
+backup=('etc/geoip/GeoIP.conf')
+options=('!libtool')
+source=(http://www.maxmind.com/download/geoip/api/c/GeoIP-${pkgver}.tar.gz)
+md5sums=('05b7300435336231b556df5ab36f326d')
+
+build() {
+ cd "${srcdir}/GeoIP-${pkgver}"
+
+ autoreconf -i
+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc/geoip
+ make
+}
+
+check() {
+ cd "${srcdir}/GeoIP-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/GeoIP-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gettext-mono/PKGBUILD b/extra/gettext-mono/PKGBUILD
new file mode 100644
index 000000000..5741a1640
--- /dev/null
+++ b/extra/gettext-mono/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144881 2011-12-08 21:14:16Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=gettext-mono
+pkgver=0.18.1.1
+pkgrel=1
+pkgdesc="mono assemblies for GNU internationalization library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/gettext"
+license=('GPL')
+depends=('mono>=2.10.6')
+source=(ftp://ftp.gnu.org/pub/gnu/gettext/gettext-$pkgver.tar.gz)
+md5sums=('3dd55b952826d2b32f51308f2f91aa89')
+
+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..bfd5fbe2b
--- /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' 'mips64el')
+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..6a85287d8
--- /dev/null
+++ b/extra/ggv/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 134236 2011-08-02 16:46:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=ggv
+pkgver=2.12.0
+pkgrel=4
+pkgdesc="Postscript viewer"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('libgnomeui' 'ghostscript' 'desktop-file-utils')
+makedepends=('intltool' 'gnome-doc-utils' 'pkgconfig' 'gnome-common')
+url="http://www.gnome.org"
+install=ggv.install
+options=('!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/ggv/2.12/ggv-${pkgver}.tar.bz2)
+md5sums=('418f0ef3f8b82bb0c423a2a1cf6769f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed '/AC_PATH_XTRA/d' -i configure.in
+ intltoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/ggv \
+ --localstatedir=/var
+ make
+ make GCONF_DISABLE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ 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
+ 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..530fa77bd
--- /dev/null
+++ b/extra/ggz-client-libs/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 123871 2011-05-14 00:20:19Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ggz-client-libs
+pkgver=0.0.14.1
+pkgrel=2
+pkgdesc="GGZ client library, used by the GGZ Gaming Zone server (ggzd), the ggzcore library and other components"
+arch=('i686' 'x86_64' 'mips64el')
+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 "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ggz-gtk-client/PKGBUILD b/extra/ggz-gtk-client/PKGBUILD
new file mode 100644
index 000000000..4f886abb8
--- /dev/null
+++ b/extra/ggz-gtk-client/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 143018 2011-11-21 01:24:00Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: dazzy
+
+pkgname=ggz-gtk-client
+pkgver=0.0.14.1
+pkgrel=5
+pkgdesc="GGZ Gaming Zone GTK+ client"
+arch=('i686' 'x86_64')
+url="http://www.ggzgamingzone.org/"
+license=('GPL')
+depends=('gtk2' 'ggz-client-libs')
+options=('!libtool')
+source=(http://ftp.ggzgamingzone.org/pub/ggz/${pkgver}/ggz-gtk-client-${pkgver}.tar.gz
+ gtk2.patch)
+md5sums=('87f67ff01f867bd04ba894a7c6a9f7fc'
+ '368f993d07befd41681ac76ef532b448')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/gtk2.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ggz-gtk-client/gtk2.patch b/extra/ggz-gtk-client/gtk2.patch
new file mode 100644
index 000000000..b8332f401
--- /dev/null
+++ b/extra/ggz-gtk-client/gtk2.patch
@@ -0,0 +1,40 @@
+--- ggz-gtk-client-0.0.14.1/ggz-gtk/props.c 2008-01-05 20:03:36.000000000 +0100
++++ ggz-gtk-client-0.0.14.1.PATCHED/ggz-gtk/props.c 2010-08-04 01:53:37.573425091 +0200
+@@ -1203,7 +1203,7 @@
+ gtk_box_pack_start (GTK_BOX (vbox9), color_table, TRUE, TRUE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (color_table), 3);
+
+- h_spin_adj = gtk_adjustment_new (1, 0, 15, 1, 1, 1);
++ h_spin_adj = gtk_adjustment_new (1, 0, 15, 1, 1, 0);
+ h_spin = gtk_spin_button_new (GTK_ADJUSTMENT (h_spin_adj), 1, 0);
+ gtk_widget_ref (h_spin);
+ g_object_set_data_full(G_OBJECT (dlg_props), "h_spin", h_spin,
+@@ -1213,7 +1213,7 @@
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (h_spin), TRUE);
+
+- n_spin_adj = gtk_adjustment_new (1, 0, 15, 1, 1, 1);
++ n_spin_adj = gtk_adjustment_new (1, 0, 15, 1, 1, 0);
+ n_spin = gtk_spin_button_new (GTK_ADJUSTMENT (n_spin_adj), 1, 0);
+ gtk_widget_ref (n_spin);
+ g_object_set_data_full(G_OBJECT (dlg_props), "n_spin", n_spin,
+@@ -1223,7 +1223,7 @@
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (n_spin), TRUE);
+
+- f_spin_adj = gtk_adjustment_new (1, 0, 15, 1, 1, 1);
++ f_spin_adj = gtk_adjustment_new (1, 0, 15, 1, 1, 0);
+ f_spin = gtk_spin_button_new (GTK_ADJUSTMENT (f_spin_adj), 1, 0);
+ gtk_widget_ref (f_spin);
+ g_object_set_data_full(G_OBJECT (dlg_props), "f_spin", f_spin,
+--- ggz-gtk-client-0.0.14.1/ggz-gtk/xtext.c 2008-01-05 20:03:36.000000000 +0100
++++ ggz-gtk-client-0.0.14.1.PATCHED/ggz-gtk/xtext.c 2010-08-04 01:52:36.446764446 +0200
+@@ -720,7 +720,7 @@
+ xtext->overdraw = FALSE;
+ xtext->tint_red = xtext->tint_green = xtext->tint_blue = TINT_VALUE;
+
+- xtext->adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 1, 1, 1, 1);
++ xtext->adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 1, 1, 1, 0);
+ g_object_ref (G_OBJECT (xtext->adj));
+ gtk_object_sink ((GtkObject *) xtext->adj);
+
diff --git a/extra/ghc/PKGBUILD b/extra/ghc/PKGBUILD
new file mode 100644
index 000000000..11a545a29
--- /dev/null
+++ b/extra/ghc/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 128106 2011-06-22 10:54:11Z vesa $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Special note for devs looking to upgrade this package:
+# ghc places a unique hash for each library when it is built.
+# Libraries depend on versions specified by those hashes.
+# This implies that all libraries need to be rebuilt when ghc is rebuilt.
+# Also, due to dependency loop problems, haskell-ghc-paths and haddock
+# do not carry version dependencies. You will have to remember to build them too.
+pkgname=ghc
+pkgver=7.0.3
+pkgrel=2
+pkgdesc="The Glasgow Haskell Compiler"
+arch=(i686 x86_64 'mips64el')
+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
+
+ ./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
+}
+
+md5sums=('10bc5e9ae1b581404376efb85f260ff3'
+ '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..dd4817556
--- /dev/null
+++ b/extra/ghex/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 138657 2011-09-27 14:19:40Z ibiru $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=ghex
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A simple binary editor for the Gnome desktop"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://live.gnome.org/Ghex"
+depends=('gtk3' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+install=ghex.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/ghex/3.0/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('c1b44a962ff1d6c7f1ad012ef1971a227e6d00a0de6f1275cbb714db1a96c674')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ghex/ghex.install b/extra/ghex/ghex.install
new file mode 100644
index 000000000..084bc82ee
--- /dev/null
+++ b/extra/ghex/ghex.install
@@ -0,0 +1,20 @@
+pkgname=ghex
+
+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
+ gconfpkg --uninstall $pkgname
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/giblib/PKGBUILD b/extra/giblib/PKGBUILD
new file mode 100644
index 000000000..2d938de2e
--- /dev/null
+++ b/extra/giblib/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137679 2011-09-10 11:58:36Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=giblib
+pkgver=1.2.4
+pkgrel=5
+pkgdesc="A library that feh uses as a wrapper to imlib2"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freshmeat.net/projects/giblib/"
+license=('MIT')
+depends=('imlib2' 'libxext' 'freetype2')
+options=('!libtool')
+source=("http://linuxbrit.co.uk/downloads/${pkgname}-${pkgver}.tar.gz")
+md5sums=('c810ef5389baf24882a1caca2954385e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" docsdir=/usr/share/doc/giblib install
+
+ # Install custom license
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/gif2png/PKGBUILD b/extra/gif2png/PKGBUILD
new file mode 100644
index 000000000..2dce9385e
--- /dev/null
+++ b/extra/gif2png/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143743 2011-11-28 19:26:51Z 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=2
+pkgdesc="A GIF to PNG image format converter"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ 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..99b3f6fe6
--- /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' 'mips64el')
+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..14306db02
--- /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' 'mips64el')
+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..9a5ac4635
--- /dev/null
+++ b/extra/gimp-dbp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 128499 2011-06-24 05:56:11Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gimp-dbp
+pkgver=1.1.9
+pkgrel=2
+pkgdesc="David's batch processor for the GIMP"
+arch=(i686 x86_64 'mips64el')
+url="http://members.ozemail.com.au/~hodsond/dbp.html"
+license=('GPL')
+depends=('gimp')
+source=(http://www.ozemail.com.au/~hodsond/dbpSrc-${pkgver//./-}.tgz)
+md5sums=('1106625707798ab8ea1317ac6bece1c5')
+
+build() {
+ cd "${srcdir}/dbp-${pkgver}"
+ sed -i "s|<string>|<cstring>|" op.h
+ make
+}
+
+package() {
+ cd "${srcdir}/dbp-${pkgver}"
+ install -D -m755 dbp "${pkgdir}/usr/lib/gimp/2.0/plug-ins/dbp"
+}
diff --git a/extra/gimp-devel/PKGBUILD b/extra/gimp-devel/PKGBUILD
new file mode 100644
index 000000000..2b80e462a
--- /dev/null
+++ b/extra/gimp-devel/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 140571 2011-10-17 08:14:44Z jgc $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gimp-devel
+pkgver=2.7.3
+pkgrel=2
+pkgdesc="GNU Image Manipulation Program (Development Version)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gimp.org/"
+license=('GPL3' 'LGPL3')
+depends=('pygtk' 'lcms' 'libxpm' 'libwmf' 'librsvg' 'libmng' 'dbus-glib' \
+ 'jasper' 'libexif' 'gegl' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'libwebkit' 'poppler-glib' 'alsa-lib' 'iso-codes' 'curl')
+optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
+ 'libwebkit: for the help browser or web-page plug-ins'
+ 'poppler-glib: for pdf support'
+ 'alsa-lib: for MIDI event controller module'
+ 'curl: for URI support')
+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=('851b55dc4af966e62ef5c8b679bcc623'
+ 'bb27bc214261d36484093e857f015f38')
+sha1sums=('bea6edc3423774ace8dd86222314f4ef2278cdd8'
+ '110ce9798173b19a662d086ed7b882b4729f06cf')
+
+build() {
+ cd "${srcdir}/gimp-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-mp --enable-gimp-console --enable-python --with-libcurl \
+ --with-gif-compression=lzw --without-aa --without-gvfs
+ make
+}
+
+package() {
+ cd "${srcdir}/gimp-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ 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 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 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..41f576c52
--- /dev/null
+++ b/extra/gimp-gap/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 138172 2011-09-18 06:56:19Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gimp-gap
+pkgver=2.6.0
+pkgrel=3
+pkgdesc="A Plug-In collection to edit and create animations for the Gimp"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gimp.org/downloads/"
+depends=('gimp' '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"
+ [ "$CARCH" = "x86_64" ] && CFLAGS+="-fPIC"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/gimp-refocus/PKGBUILD b/extra/gimp-refocus/PKGBUILD
new file mode 100644
index 000000000..ad1457deb
--- /dev/null
+++ b/extra/gimp-refocus/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 128457 2011-06-24 02:06:37Z eric $
+# Maintainer: Tobias Kieslich <tobias@justdreams.de>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gimp-refocus
+pkgver=0.9.0
+pkgrel=3
+pkgdesc="A sharpen plugin for gimp using FIR Wiener filtering"
+arch=(i686 x86_64 'mips64el')
+url="http://refocus.sourceforge.net/"
+license=('GPL2')
+depends=('gimp')
+source=(http://downloads.sourceforge.net/sourceforge/refocus/refocus-${pkgver}.tar.gz \
+ refocus-gimp-2.0.patch refocus-mirror-fix.patch refocus-gimp-preview.patch)
+md5sums=('8d4eac4ef45c904fb5e73021696bec94'
+ '8ef9dfe697cd20be2be14c1ee53a240a'
+ '532593cba030feab8ffa7800fc9cd782'
+ '6b55dbdc656646c765064cf21e1a3c57')
+
+build() {
+ cd "${srcdir}/refocus-${pkgver}"
+ patch -Np0 -i ../refocus-gimp-2.0.patch
+ patch -Np0 -i ../refocus-mirror-fix.patch
+ patch -Np0 -i ../refocus-gimp-preview.patch
+ aclocal
+ autoconf
+ automake --add-missing
+ ./configure --prefix=/usr --bindir=/usr/lib/gimp/2.0/plug-ins
+ make
+}
+
+package() {
+ cd "${srcdir}/refocus-${pkgver}"
+ make DESTDIR="${pkgdir}" 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..ce7dfb73c
--- /dev/null
+++ b/extra/gimp-ufraw/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143849 2011-11-30 06:25:30Z eric $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=gimp-ufraw
+pkgver=0.18
+pkgrel=3
+pkgdesc="Standalone or gimp plugin converter for raw files"
+url="http://ufraw.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gtkimageview' 'exiv2' 'lcms' 'bzip2' 'desktop-file-utils')
+makedepends=('gimp' 'cinepaint')
+optdepends=('gimp: to use the gimp import plugin for raw images'
+ 'cinepaint: to use the cinepaint import plugin for raw images')
+install=gimp-ufraw.install
+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-ufraw/gimp-ufraw.install b/extra/gimp-ufraw/gimp-ufraw.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/extra/gimp-ufraw/gimp-ufraw.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/gimp/PKGBUILD b/extra/gimp/PKGBUILD
new file mode 100644
index 000000000..eb1b6fd3f
--- /dev/null
+++ b/extra/gimp/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 140569 2011-10-17 08:14:42Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+
+pkgname=gimp
+pkgver=2.6.11
+pkgrel=7
+pkgdesc="GNU Image Manipulation Program"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gimp.org/"
+license=('GPL' 'LGPL')
+depends=('pygtk' 'lcms' 'libxpm' 'libwmf' 'libxmu' 'librsvg' 'libmng' 'dbus-glib' \
+ 'libexif' 'gegl' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'libwebkit' 'poppler-glib' 'alsa-lib' 'iso-codes' 'curl')
+optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
+ 'libwebkit: for the help browser'
+ 'poppler-glib: for pdf support'
+ 'alsa-lib: for MIDI event controller module'
+ 'curl: for URI support')
+options=('!libtool' '!makeflags')
+conflicts=('gimp-devel')
+install=gimp.install
+#source=(ftp://ftp.gimp.org/pub/gimp/v${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 linux.gpl
+source=(http://mirror.umoss.org/gimp/gimp/v${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 linux.gpl
+ uri-backend-libcurl.patch gimp-poppler-0.18.patch)
+md5sums=('bb2939fe13e54fc7255cef5d097bb5dd'
+ 'bb27bc214261d36484093e857f015f38'
+ 'e894f4b2ffa92c71448fdd350e9b78c6'
+ 'bfc73f80e911ed7a7d500d80973469f1')
+sha1sums=('2f9d596e727bdbf304fa78257c1731d9faf3934c'
+ '110ce9798173b19a662d086ed7b882b4729f06cf'
+ 'a65b0ee6cd1b4345065b7b98c07f2fed15f844f4'
+ '1479a6d80be7adf74f66a3b88057a5029fe892e8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../uri-backend-libcurl.patch
+ patch -p1 < ../gimp-poppler-0.18.patch
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-mp --enable-gimp-console --enable-gimp-remote \
+ --enable-python --with-gif-compression=lzw --with-libcurl \
+ --without-aa --without-hal --without-gvfs --without-gnomevfs
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ 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-poppler-0.18.patch b/extra/gimp/gimp-poppler-0.18.patch
new file mode 100644
index 000000000..0715460bc
--- /dev/null
+++ b/extra/gimp/gimp-poppler-0.18.patch
@@ -0,0 +1,476 @@
+From 69f69eed816b89be9a01a48a1f0643d1fd496118 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Fri, 6 May 2011 11:58:44 +0200
+Subject: [PATCH] patch: poppler-0.17
+
+Squashed commit of the following:
+
+commit 529d940222dfc352d41fbf72de29134421aa4002
+Author: Nils Philippsen <nils@redhat.com>
+Date: Fri May 6 11:50:30 2011 +0200
+
+ use code based on pixbufs instead of cairo surfaces
+
+ this is done to avoid adding to libgimp, thanks to Mukund Sivaraman for
+ hints how to do this
+
+commit f8671d8767d4cdab830dc06310e96c63a88ec0fd
+Author: Mukund Sivaraman <muks@banu.com>
+Date: Thu Apr 21 13:57:13 2011 +0530
+
+ file-pdf-load: Update attribution, removing bogus copyright
+ (cherry picked from commit e999122e0b20b6ccd6bde3ce039bb64068fc0019)
+
+commit 89a78f2590d298dac2f42e6d9a3016fc5d672c70
+Author: Nils Philippsen <nils@redhat.com>
+Date: Thu Apr 21 13:52:18 2011 +0200
+
+ file-pdf-load: Use better API + cleanups
+
+ * fixes issues with poppler 0.17 completely
+ * uses new libgimp API to pass surfaces instead of pixbufs
+ * uses GTK+ 3 API to convert surfaces to pixbufs where available
+ (backported from commit 7bdadd80ba479d6ff904e276d805e16f6b940ee2)
+
+commit 4e92302c4a14a961f112587a0ad86696c88da2f8
+Author: Nils Philippsen <nils@redhat.com>
+Date: Thu Apr 21 13:38:08 2011 +0200
+
+ file-pdf-load: Don't use deprecated API (bug #646947)
+
+ (cherry picked from commit 9b3e1c91fd2eac69da6947ec9c7fbf10096ba237)
+
+ Conflicts:
+
+ plug-ins/common/file-pdf.c
+---
+ plug-ins/common/file-pdf.c | 323 ++++++++++++++++++++++++++++++++++++++------
+ 1 files changed, 283 insertions(+), 40 deletions(-)
+
+diff --git a/plug-ins/common/file-pdf.c b/plug-ins/common/file-pdf.c
+index a43b459..43c2b7d 100644
+--- a/plug-ins/common/file-pdf.c
++++ b/plug-ins/common/file-pdf.c
+@@ -4,6 +4,9 @@
+ *
+ * Copyright (C) 2005 Nathan Summers
+ *
++ * Some code in render_page_to_surface() borrowed from
++ * poppler.git/glib/poppler-page.cc.
++ *
+ * 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
+@@ -80,16 +83,20 @@ static gboolean load_dialog (PopplerDocument *doc,
+ static PopplerDocument * open_document (const gchar *filename,
+ GError **error);
+
+-static GdkPixbuf * get_thumbnail (PopplerDocument *doc,
++static cairo_surface_t * get_thumb_surface (PopplerDocument *doc,
++ gint page,
++ gint preferred_size);
++
++static GdkPixbuf * get_thumb_pixbuf (PopplerDocument *doc,
+ gint page,
+ gint preferred_size);
+
+ static gint32 layer_from_pixbuf (gint32 image,
+- const gchar *layer_name,
+- gint position,
+- GdkPixbuf *buf,
+- gdouble progress_start,
+- gdouble progress_scale);
++ const gchar *layer_name,
++ gint position,
++ GdkPixbuf *pixbuf,
++ gdouble progress_start,
++ gdouble progress_scale);
+
+ /**
+ ** the following was formerly part of
+@@ -433,11 +440,12 @@ run (const gchar *name,
+ }
+ else
+ {
+- gdouble width = 0;
+- gdouble height = 0;
+- gdouble scale;
+- gint32 image = -1;
+- GdkPixbuf *pixbuf = NULL;
++ gdouble width = 0;
++ gdouble height = 0;
++ gdouble scale;
++ gint32 image = -1;
++ gint num_pages = 0;
++ GdkPixbuf *pixbuf = NULL;
+
+ /* Possibly retrieve last settings */
+ gimp_get_data (LOAD_PROC, &loadvals);
+@@ -455,7 +463,10 @@ run (const gchar *name,
+ g_object_unref (page);
+ }
+
+- pixbuf = get_thumbnail (doc, 0, param[1].data.d_int32);
++ num_pages = poppler_document_get_n_pages (doc);
++
++ pixbuf = get_thumb_pixbuf (doc, 0, param[1].data.d_int32);
++
+ g_object_unref (doc);
+ }
+
+@@ -548,6 +559,187 @@ open_document (const gchar *filename,
+ return doc;
+ }
+
++/* FIXME: Remove this someday when we depend fully on GTK+ >= 3 */
++
++#if (!GTK_CHECK_VERSION (3, 0, 0))
++
++static cairo_format_t
++gdk_cairo_format_for_content (cairo_content_t content)
++{
++ switch (content)
++ {
++ case CAIRO_CONTENT_COLOR:
++ return CAIRO_FORMAT_RGB24;
++ case CAIRO_CONTENT_ALPHA:
++ return CAIRO_FORMAT_A8;
++ case CAIRO_CONTENT_COLOR_ALPHA:
++ default:
++ return CAIRO_FORMAT_ARGB32;
++ }
++}
++
++static cairo_surface_t *
++gdk_cairo_surface_coerce_to_image (cairo_surface_t *surface,
++ cairo_content_t content,
++ int src_x,
++ int src_y,
++ int width,
++ int height)
++{
++ cairo_surface_t *copy;
++ cairo_t *cr;
++
++ copy = cairo_image_surface_create (gdk_cairo_format_for_content (content),
++ width,
++ height);
++
++ cr = cairo_create (copy);
++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
++ cairo_set_source_surface (cr, surface, -src_x, -src_y);
++ cairo_paint (cr);
++ cairo_destroy (cr);
++
++ return copy;
++}
++
++static void
++convert_alpha (guchar *dest_data,
++ int dest_stride,
++ guchar *src_data,
++ int src_stride,
++ int src_x,
++ int src_y,
++ int width,
++ int height)
++{
++ int x, y;
++
++ src_data += src_stride * src_y + src_x * 4;
++
++ for (y = 0; y < height; y++) {
++ guint32 *src = (guint32 *) src_data;
++
++ for (x = 0; x < width; x++) {
++ guint alpha = src[x] >> 24;
++
++ if (alpha == 0)
++ {
++ dest_data[x * 4 + 0] = 0;
++ dest_data[x * 4 + 1] = 0;
++ dest_data[x * 4 + 2] = 0;
++ }
++ else
++ {
++ dest_data[x * 4 + 0] = (((src[x] & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
++ dest_data[x * 4 + 1] = (((src[x] & 0x00ff00) >> 8) * 255 + alpha / 2) / alpha;
++ dest_data[x * 4 + 2] = (((src[x] & 0x0000ff) >> 0) * 255 + alpha / 2) / alpha;
++ }
++ dest_data[x * 4 + 3] = alpha;
++ }
++
++ src_data += src_stride;
++ dest_data += dest_stride;
++ }
++}
++
++static void
++convert_no_alpha (guchar *dest_data,
++ int dest_stride,
++ guchar *src_data,
++ int src_stride,
++ int src_x,
++ int src_y,
++ int width,
++ int height)
++{
++ int x, y;
++
++ src_data += src_stride * src_y + src_x * 4;
++
++ for (y = 0; y < height; y++) {
++ guint32 *src = (guint32 *) src_data;
++
++ for (x = 0; x < width; x++) {
++ dest_data[x * 3 + 0] = src[x] >> 16;
++ dest_data[x * 3 + 1] = src[x] >> 8;
++ dest_data[x * 3 + 2] = src[x];
++ }
++
++ src_data += src_stride;
++ dest_data += dest_stride;
++ }
++}
++
++/**
++ * gdk_pixbuf_get_from_surface:
++ * @surface: surface to copy from
++ * @src_x: Source X coordinate within @surface
++ * @src_y: Source Y coordinate within @surface
++ * @width: Width in pixels of region to get
++ * @height: Height in pixels of region to get
++ *
++ * Transfers image data from a #cairo_surface_t and converts it to an RGB(A)
++ * representation inside a #GdkPixbuf. This allows you to efficiently read
++ * individual pixels from cairo surfaces. For #GdkWindows, use
++ * gdk_pixbuf_get_from_window() instead.
++ *
++ * This function will create an RGB pixbuf with 8 bits per channel.
++ * The pixbuf will contain an alpha channel if the @surface contains one.
++ *
++ * Return value: (transfer full): A newly-created pixbuf with a reference
++ * count of 1, or %NULL on error
++ */
++static GdkPixbuf *
++gdk_pixbuf_get_from_surface (cairo_surface_t *surface,
++ gint src_x,
++ gint src_y,
++ gint width,
++ gint height)
++{
++ cairo_content_t content;
++ GdkPixbuf *dest;
++
++ /* General sanity checks */
++ g_return_val_if_fail (surface != NULL, NULL);
++ g_return_val_if_fail (width > 0 && height > 0, NULL);
++
++ content = cairo_surface_get_content (surface) | CAIRO_CONTENT_COLOR;
++ dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
++ !!(content & CAIRO_CONTENT_ALPHA),
++ 8,
++ width, height);
++
++ surface = gdk_cairo_surface_coerce_to_image (surface, content,
++ src_x, src_y,
++ width, height);
++ cairo_surface_flush (surface);
++ if (cairo_surface_status (surface) || dest == NULL)
++ {
++ cairo_surface_destroy (surface);
++ return NULL;
++ }
++
++ if (gdk_pixbuf_get_has_alpha (dest))
++ convert_alpha (gdk_pixbuf_get_pixels (dest),
++ gdk_pixbuf_get_rowstride (dest),
++ cairo_image_surface_get_data (surface),
++ cairo_image_surface_get_stride (surface),
++ 0, 0,
++ width, height);
++ else
++ convert_no_alpha (gdk_pixbuf_get_pixels (dest),
++ gdk_pixbuf_get_rowstride (dest),
++ cairo_image_surface_get_data (surface),
++ cairo_image_surface_get_stride (surface),
++ 0, 0,
++ width, height);
++
++ cairo_surface_destroy (surface);
++ return dest;
++}
++
++#endif
++
+ static gint32
+ layer_from_pixbuf (gint32 image,
+ const gchar *layer_name,
+@@ -566,6 +758,54 @@ layer_from_pixbuf (gint32 image,
+ return layer;
+ }
+
++static cairo_surface_t *
++render_page_to_surface (PopplerPage *page,
++ int width,
++ int height,
++ double scale)
++{
++ cairo_surface_t *surface;
++ cairo_t *cr;
++
++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
++ cr = cairo_create (surface);
++
++ cairo_save (cr);
++ cairo_translate (cr, 0.0, 0.0);
++
++ if (scale != 1.0)
++ cairo_scale (cr, scale, scale);
++
++ poppler_page_render (page, cr);
++ cairo_restore (cr);
++
++ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
++ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
++ cairo_paint (cr);
++
++ cairo_destroy (cr);
++
++ return surface;
++}
++
++static GdkPixbuf *
++render_page_to_pixbuf (PopplerPage *page,
++ int width,
++ int height,
++ double scale)
++{
++ GdkPixbuf *pixbuf;
++ cairo_surface_t *surface;
++
++ surface = render_page_to_surface (page, width, height, scale);
++ pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
++ cairo_image_surface_get_width (surface),
++ cairo_image_surface_get_height (surface));
++ cairo_surface_destroy (surface);
++
++ return pixbuf;
++}
++
+ static gint32
+ load_image (PopplerDocument *doc,
+ const gchar *filename,
+@@ -597,7 +837,7 @@ load_image (PopplerDocument *doc,
+ gdouble page_width;
+ gdouble page_height;
+
+- GdkPixbuf *buf;
++ GdkPixbuf *pixbuf;
+ gint width;
+ gint height;
+
+@@ -627,15 +867,13 @@ load_image (PopplerDocument *doc,
+ gimp_image_set_resolution (image_ID, resolution, resolution);
+ }
+
+- buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, width, height);
+-
+- poppler_page_render_to_pixbuf (page, 0, 0, width, height, scale, 0, buf);
++ pixbuf = render_page_to_pixbuf (page, width, height, scale);
+
+- layer_from_pixbuf (image_ID, page_label, i, buf,
++ layer_from_pixbuf (image_ID, page_label, i, pixbuf,
+ doc_progress, 1.0 / pages->n_pages);
+
+ g_free (page_label);
+- g_object_unref (buf);
++ g_object_unref(pixbuf);
+
+ doc_progress = (double) (i + 1) / pages->n_pages;
+ gimp_progress_update (doc_progress);
+@@ -676,30 +914,22 @@ load_image (PopplerDocument *doc,
+ return image_ID;
+ }
+
+-static GdkPixbuf *
+-get_thumbnail (PopplerDocument *doc,
+- gint page_num,
+- gint preferred_size)
++static cairo_surface_t *
++get_thumb_surface (PopplerDocument *doc,
++ gint page_num,
++ gint preferred_size)
+ {
+ PopplerPage *page;
+- GdkPixbuf *pixbuf;
++ cairo_surface_t *surface;
+
+ page = poppler_document_get_page (doc, page_num);
+
+ if (! page)
+ return NULL;
+
+- /* XXX: Remove conditional when we depend on poppler 0.8.0, but also
+- * add configure check to make sure POPPLER_WITH_GDK is enabled!
+- */
+-#ifdef POPPLER_WITH_GDK
+- pixbuf = poppler_page_get_thumbnail_pixbuf (page);
+-#else
+- pixbuf = poppler_page_get_thumbnail (page);
+-#endif
+-
++ surface = poppler_page_get_thumbnail (page);
+
+- if (! pixbuf)
++ if (! surface)
+ {
+ gdouble width;
+ gdouble height;
+@@ -712,15 +942,28 @@ get_thumbnail (PopplerDocument *doc,
+ width *= scale;
+ height *= scale;
+
+- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
+- width, height);
+-
+- poppler_page_render_to_pixbuf (page,
+- 0, 0, width, height, scale, 0, pixbuf);
++ surface = render_page_to_surface (page, width, height, scale);
+ }
+
+ g_object_unref (page);
+
++ return surface;
++}
++
++static GdkPixbuf *
++get_thumb_pixbuf (PopplerDocument *doc,
++ gint page_num,
++ gint preferred_size)
++{
++ cairo_surface_t *surface;
++ GdkPixbuf *pixbuf;
++
++ surface = get_thumb_surface (doc, page_num, preferred_size);
++ pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
++ cairo_image_surface_get_width (surface),
++ cairo_image_surface_get_height (surface));
++ cairo_surface_destroy (surface);
++
+ return pixbuf;
+ }
+
+@@ -769,8 +1012,8 @@ thumbnail_thread (gpointer data)
+ idle_data->page_no = i;
+
+ /* FIXME get preferred size from somewhere? */
+- idle_data->pixbuf = get_thumbnail (thread_data->document, i,
+- THUMBNAIL_SIZE);
++ idle_data->pixbuf = get_thumb_pixbuf (thread_data->document, i,
++ THUMBNAIL_SIZE);
+
+ g_idle_add (idle_set_thumbnail, idle_data);
+
+--
+1.7.5
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/gimp/uri-backend-libcurl.patch b/extra/gimp/uri-backend-libcurl.patch
new file mode 100644
index 000000000..85da2fc7f
--- /dev/null
+++ b/extra/gimp/uri-backend-libcurl.patch
@@ -0,0 +1,77 @@
+diff -aur gimp-2.6.11/plug-ins/file-uri/uri-backend-libcurl.c gimp-2.6.11.patched/plug-ins/file-uri/uri-backend-libcurl.c
+--- gimp-2.6.11/plug-ins/file-uri/uri-backend-libcurl.c 2010-07-03 00:51:59.000000000 +0200
++++ gimp-2.6.11.patched/plug-ins/file-uri/uri-backend-libcurl.c 2011-06-23 19:15:30.000000000 +0200
+@@ -4,9 +4,9 @@
+ * libcurl backend for the URI plug-in
+ * Copyright (C) 2006 Mukund Sivaraman <muks@mukund.org>
+ *
+- * This program is free software; you can redistribute it and/or modify
++ * 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
++ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+@@ -15,8 +15,7 @@
+ * 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.
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+ #include "config.h"
+@@ -24,7 +23,6 @@
+ #include <errno.h>
+
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+
+ #include <glib/gstdio.h>
+@@ -63,7 +61,7 @@
+
+ vinfo = curl_version_info (CURLVERSION_NOW);
+
+- protocols = g_string_new ("http:,ftp:");
++ protocols = g_string_new ("http:,ftp:,gopher:");
+
+ if (vinfo->features & CURL_VERSION_SSL)
+ {
+@@ -153,7 +151,7 @@
+ FILE *out_file;
+ CURL *curl_handle;
+ CURLcode result;
+- gint response_code;
++ glong response_code;
+
+ gimp_progress_init (_("Connecting to server"));
+
+@@ -195,12 +193,12 @@
+
+ curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &response_code);
+
+- if (response_code != 200)
++ if (response_code != 200 && response_code != 226 && response_code != 0)
+ {
+ fclose (out_file);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Opening '%s' for reading resulted in HTTP "
+- "response code: %d"),
++ "response code: %ld"),
+ uri, response_code);
+ curl_easy_cleanup (curl_handle);
+ return FALSE;
+@@ -224,3 +222,10 @@
+
+ return FALSE;
+ }
++
++gchar *
++uri_backend_map_image (const gchar *uri,
++ GimpRunMode run_mode)
++{
++ return NULL;
++}
diff --git a/extra/git/ChangeLog b/extra/git/ChangeLog
new file mode 100644
index 000000000..f0c15233e
--- /dev/null
+++ b/extra/git/ChangeLog
@@ -0,0 +1,57 @@
+Simple version bumps are omitted from the following ChangeLog.
+
+2011-08-16 Dan McGee <dan@archlinux.org>
+ Version 1.7.6.1-1
+ * Enable USE_LIBPCRE for `git grep -P` usage
+
+2011-05-05 Dan McGee <dan@archlinux.org>
+ Version 1.7.5.1-1
+ * Byte compile emacs files (FS#20874)
+ * Respect CFLAGS/LDFLAGS (FS#23963)
+
+2011-04-27 Dan McGee <dan@archlinux.org>
+ Version 1.7.5-1
+ * Add missing optdepends for git send-email (FS#20923)
+
+2011-01-05 Dan McGee <dan@archlinux.org>
+ Version 1.7.3.5-1
+ * More flexible git-daemon RC scripts (FS#20575)
+
+2010-10-01 Allan McRae <allan@archlinux.org>
+ Version 1.7.3.1-2
+ * Python 2/3 rebuild
+
+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..d20eeb882
--- /dev/null
+++ b/extra/git/PKGBUILD
@@ -0,0 +1,86 @@
+# $Id: PKGBUILD 144099 2011-12-03 18:17:43Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=git
+pkgver=1.7.8
+pkgrel=1
+pkgdesc="the fast distributed version control system"
+arch=(i686 x86_64 'mips64el')
+url="http://git-scm.com/"
+license=('GPL2')
+depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.14.0' 'openssl' 'pcre')
+makedepends=('python2' 'emacs')
+optdepends=('tk: gitk and git gui'
+ 'perl-libwww: git svn'
+ 'perl-term-readkey: git svn'
+ 'perl-mime-tools: git send-email'
+ 'perl-net-smtp-ssl: git send-email TLS support'
+ 'perl-authen-sasl: 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"
+source=("http://git-core.googlecode.com/files/git-$pkgver.tar.gz"
+ "http://git-core.googlecode.com/files/git-manpages-$pkgver.tar.gz"
+ 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 \
+ CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
+ USE_LIBPCRE=1 \
+ NO_CROSS_DIRECTORY_HARDLINKS=1
+
+ cd contrib/emacs
+ make prefix=/usr
+}
+
+package() {
+ export PYTHON_PATH='/usr/bin/python2'
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix=/usr gitexecdir=/usr/lib/git-core \
+ CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
+ USE_LIBPCRE=1 \
+ 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
+ cd contrib/emacs
+ make prefix=/usr DESTDIR="$pkgdir" install
+
+ # 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
+}
+
+sha1sums=('7453e737e008f7319a5eca24a9ef3c5fb1f13398'
+ '93315f7f51d7f27d3e421c9b0d64afa27f3d16df'
+ 'f2b41828bd912b72e2cb3e14677739c4f370de66'
+ '149e2da1ecb48872ddb31c0945afeaad1f9653d7')
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/gjs/PKGBUILD b/extra/gjs/PKGBUILD
new file mode 100644
index 000000000..c262561c3
--- /dev/null
+++ b/extra/gjs/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 139275 2011-10-01 18:57:14Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gjs
+pkgver=1.30.0
+pkgrel=1
+pkgdesc="Javascript Bindings for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/Gjs"
+license=('GPL')
+depends=('cairo' 'dbus-glib' 'gobject-introspection' 'js')
+options=('!libtool')
+source=(http://download.gnome.org/sources/${pkgname}/1.30/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('ffe01980dd183abd96b2cc861d2e86ef12751d0a1af86daa4c491b82c74ac7b9')
+
+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/extra/gksu/PKGBUILD b/extra/gksu/PKGBUILD
new file mode 100644
index 000000000..5790bb56d
--- /dev/null
+++ b/extra/gksu/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143680 2011-11-28 11:06:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Eduardo Lopes (eduol@gmx.net)
+
+pkgname=gksu
+pkgver=2.0.2
+pkgrel=4
+pkgdesc="A graphical frontend for su"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nongnu.org/gksu/index.html"
+license=('GPL')
+depends=('libgksu>=2.0.12' 'xorg-xauth')
+makedepends=('gtk-doc' 'intltool')
+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
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-nautilus-extension
+ 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..4388acfec
--- /dev/null
+++ b/extra/glade-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 125153 2011-05-25 19:04:01Z foutrelis $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=glade-perl
+_realname=Gtk2-GladeXML
+pkgver=1.007
+pkgrel=4
+pkgdesc="Gtk2-GladeXML perl bindings for glade 2.x"
+arch=(i686 x86_64 'mips64el')
+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..0b90d2b4c
--- /dev/null
+++ b/extra/glade/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140391 2011-10-12 06:17:27Z ibiru $
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=glade
+pkgver=3.10.2
+pkgrel=1
+pkgdesc="User interface builder for GTK+ and GNOME."
+arch=(i686 x86_64 mips64el)
+license=('GPL' 'LGPL')
+depends=('gtk3' 'libxml2' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'python2' 'gtk-doc' 'gobject-introspection' 'python2-gobject2')
+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.xz)
+sha256sums=('0f59ffbd7e1e595396593fedcdb85c51fd01ed05d5ef7c6f724f3a0bcf24d5c4')
+
+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/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..51a9e9ea3
--- /dev/null
+++ b/extra/glew/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 138482 2011-09-24 16:46:38Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: SleepyDog
+
+pkgname=glew
+pkgver=1.7.0
+pkgrel=1
+pkgdesc="The OpenGL Extension Wrangler Library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://glew.sourceforge.net"
+license=('BSD' 'MIT' 'GPL')
+depends=('libxmu' 'libxi' 'mesa')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tgz)
+sha1sums=('9266f2360c1687a96f2ea06419671d370b2928d1')
+
+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.all
+ install -D -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ rm "${pkgdir}"/usr/lib/{libGLEW,libGLEWmx}.a
+ chmod 0755 "${pkgdir}"/usr/lib/libGLEW*.so.${pkgver}
+}
diff --git a/extra/glhack/PKGBUILD b/extra/glhack/PKGBUILD
new file mode 100644
index 000000000..914d30c34
--- /dev/null
+++ b/extra/glhack/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 137858 2011-09-12 05:04:42Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=glhack
+pkgver=1.2
+pkgrel=5
+pkgdesc="A port of Nethack, a single player dungeon exploration game in 2D"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://glhack.sourceforge.net/"
+license=('custom')
+depends=('sdl' 'libpng' 'libgl')
+makedepends=('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
+ sed -i 's|/var/lib/games/glhack|/var/games/glhack|' include/unixconf.h
+ sed -i -e 's|PREFIX = /usr|PREFIX = $(DESTDIR)/usr|' Makefile
+ sed -i -e 's|VARDIR = /var/lib/games/glhack|VARDIR = $(DESTDIR)/var/games/glhack|' Makefile
+ sed -i -e 's|/usr/man/man6|$(DESTDIR)/usr/share/man/man6|' doc/Makefile
+ sed -i -e 's|GAMEDIR = $(PREFIX)/lib/games/$(GAME)|GAMEDIR = $(PREFIX)/share/$(GAME)|' Makefile
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}"/usr/share/man/man{5,6}
+ make DESTDIR="$pkgdir" install
+ 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-networking/PKGBUILD b/extra/glib-networking/PKGBUILD
new file mode 100644
index 000000000..c09e20c45
--- /dev/null
+++ b/extra/glib-networking/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140877 2011-10-20 05:42:23Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=glib-networking
+pkgver=2.30.1
+pkgrel=1
+pkgdesc="Network-related giomodules for glib"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libproxy' 'gnutls' 'libgcrypt' 'ca-certificates' 'gsettings-desktop-schemas')
+makedepends=('intltool')
+options=('!libtool')
+install=glib-networking.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.xz)
+sha256sums=('5acc7e76cb66734379d9ad983985c671af12591b84e93cd698fe8ea25d29f7d3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/glib-networking --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/glib-networking/glib-networking.install b/extra/glib-networking/glib-networking.install
new file mode 100644
index 000000000..595f1c75b
--- /dev/null
+++ b/extra/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/extra/glib-perl/PKGBUILD b/extra/glib-perl/PKGBUILD
new file mode 100644
index 000000000..762697f54
--- /dev/null
+++ b/extra/glib-perl/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143682 2011-11-28 11:19:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=glib-perl
+pkgver=1.241
+pkgrel=1
+pkgdesc="Perl wrappers for glib 2.x, including GObject"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+options=('!emptydirs')
+depends=('glib2>=2.24.1' 'perl>=5.14')
+makedepends=('perl-extutils-depends>=0.302' 'perl-extutils-pkgconfig>=1.12')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/Glib-${pkgver}.tar.gz)
+md5sums=('412118238a372041b130c27d7992f5c3')
+
+build() {
+ cd "${srcdir}/Glib-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/Glib-${pkgver}"
+ make test
+}
+
+package() {
+ cd "${srcdir}/Glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/glib/PKGBUILD b/extra/glib/PKGBUILD
new file mode 100644
index 000000000..1bb00ade4
--- /dev/null
+++ b/extra/glib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 135061 2011-08-10 01:01:44Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=glib
+pkgver=1.2.10
+pkgrel=9
+pkgdesc="Common C routines used by Gtk+ and other libs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('glibc')
+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
+ patch -Np0 -i ../aclocal-fixes.patch
+
+ [ "$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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..c0046feba
--- /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..7599f84f9
--- /dev/null
+++ b/extra/glibmm/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142936 2011-11-18 15:46:22Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=glibmm
+pkgname=('glibmm' 'glibmm-docs')
+pkgver=2.30.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+makedepends=('glib2' 'libsigc++2.0' 'pkgconfig')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+options=('!libtool')
+url="http://www.gtkmm.org/"
+sha256sums=('69582b584666cab1dc4253faffee548054730bc058e28466871e6a954d7ff897')
+
+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/extra/glpk/PKGBUILD b/extra/glpk/PKGBUILD
new file mode 100644
index 000000000..c7d7845c1
--- /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' 'mips64el')
+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/PKGBUILD b/extra/glsof/PKGBUILD
new file mode 100644
index 000000000..2b0820bda
--- /dev/null
+++ b/extra/glsof/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 144348 2011-12-04 22:01:25Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=glsof
+pkgver=1.6.1
+_fmver=1.6.1
+_qver=1.0.0
+pkgrel=1
+pkgdesc="Two separate GUI utilities (Queries and Filemonitor) to the lsof command line utility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://glsof.sourceforge.net/"
+license=('GPL3')
+depends=('sh' 'java-runtime' 'lsof')
+source=(http://downloads.sourceforge.net/sourceforge/glsof/filemonitor-${_fmver}.tar.gz)
+if [ "$CARCH" = "i686" ]; then
+ source=(${source[@]} http://downloads.sourceforge.net/sourceforge/glsof/queries-${_qver}/queries_linux32.tar.gz \
+ glsof-filemonitor glsof-queries)
+ sha1sums=('afafaafefcfc5f4bb76f6cbe7c4a39a478e351c2'
+ 'd5a17d66dd02cd78bad5ffdda0b936c7848e4890'
+ '197b58f40880995d6442fd42a58fa1f4594fd19d'
+ '2797c326904af16a254c3e39b8c529ea14ef37e5')
+elif [ "$CARCH" = "x86_64" ]; then
+ source=(${source[@]} http://downloads.sourceforge.net/sourceforge/glsof/queries-${_qver}/queries_linux64.tar.gz \
+ glsof-filemonitor glsof-queries)
+ sha1sums=('afafaafefcfc5f4bb76f6cbe7c4a39a478e351c2'
+ 'c5dd12e9b2860f1c427ed7cd482e898978051d2c'
+ '197b58f40880995d6442fd42a58fa1f4594fd19d'
+ '2797c326904af16a254c3e39b8c529ea14ef37e5')
+fi
+
+package() {
+ cd "${srcdir}"
+ install -D -m755 glsof-filemonitor "${pkgdir}/usr/bin/glsof-filemonitor"
+ install -D -m755 glsof-queries "${pkgdir}/usr/bin/glsof-queries"
+ install -D -m644 filemonitor/filemonitor.jar "${pkgdir}/usr/share/java/glsof/filemonitor.jar"
+ install -D -m644 queries_linux??/queries.jar "${pkgdir}/usr/share/java/glsof/queries.jar"
+ install -D -m644 queries_linux??/queries.pdf "${pkgdir}/usr/share/doc/glsof/queries.pdf"
+}
diff --git a/extra/glsof/glsof-filemonitor b/extra/glsof/glsof-filemonitor
new file mode 100644
index 000000000..616e23ac7
--- /dev/null
+++ b/extra/glsof/glsof-filemonitor
@@ -0,0 +1,2 @@
+#!/bin/sh
+java -jar /usr/share/java/glsof/filemonitor.jar
diff --git a/extra/glsof/glsof-queries b/extra/glsof/glsof-queries
new file mode 100644
index 000000000..1e9c4fc9d
--- /dev/null
+++ b/extra/glsof/glsof-queries
@@ -0,0 +1,2 @@
+#!/bin/sh
+java -jar /usr/share/java/glsof/queries.jar
diff --git a/extra/gluezilla/PKGBUILD b/extra/gluezilla/PKGBUILD
new file mode 100644
index 000000000..f59c0421e
--- /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 'mips64el')
+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..34618a3ed
--- /dev/null
+++ b/extra/gmetadom/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 137758 2011-09-10 15:29:12Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gmetadom
+pkgver=0.2.6
+pkgrel=3
+pkgdesc="C++ bindings for GDome2 DOM implementation"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ export LDFLAGS=${LDFLAGS/,--as-needed}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..96177510c
--- /dev/null
+++ b/extra/gmime/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142226 2011-11-06 17:01:40Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gmime
+pkgver=2.4.28
+pkgrel=1
+pkgdesc="Core mime parsing library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://spruce.sourceforge.net/gmime/"
+depends=('glib2' 'zlib')
+makedepends=('gtk-sharp-2' 'pkgconfig')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('8487faf949ca60c7fb814338e6457d4b4260fcba361158667e1f3fe3e7cce13e')
+
+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..aab6f690a
--- /dev/null
+++ b/extra/gmpc/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 136735 2011-08-31 19:33:21Z eric $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=gmpc
+pkgver=11.8.16
+pkgrel=1
+pkgdesc="A GTK2 client for MPD"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gmpclient.org/home"
+license=('GPL')
+depends=('libunique' 'libmpd' 'libsoup' 'sqlite3' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('gob2' 'intltool' 'vala')
+options=('!libtool')
+install=gmpc.install
+source=(http://download.sarine.nl/Programs/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('223aeb000e41697d8fdf54ccedee89d5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|GNOME;AudioVideo;|GTK;AudioVideo;Player;|' data/gmpc.desktop.in
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/PKGBUILD b/extra/gnet/PKGBUILD
new file mode 100644
index 000000000..74f641527
--- /dev/null
+++ b/extra/gnet/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 122722 2011-05-06 08:12:47Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gnet
+pkgver=2.0.8
+pkgrel=2
+pkgdesc="A simple network library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/GNetLibrary"
+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 "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnokii/PKGBUILD b/extra/gnokii/PKGBUILD
new file mode 100644
index 000000000..cce1c878e
--- /dev/null
+++ b/extra/gnokii/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 119495 2011-04-11 19:26:23Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=gnokii
+pkgver=0.6.30
+pkgrel=2
+pkgdesc="Tools and user space driver for use with mobile phones"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnokii.org/"
+license=('GPL')
+depends=('libusb-compat' 'libxpm' 'bluez' 'libical')
+makedepends=('gtk2' 'libmysqlclient' 'postgresql-libs' '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..272287501
--- /dev/null
+++ b/extra/gnome-alsamixer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 136003 2011-08-21 09:18:58Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gnome-alsamixer
+pkgver=0.9.6
+pkgrel=4
+pkgdesc="Gnome ALSA mixer"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://launchpad.net/gnome-alsamixer"
+license=('GPL')
+depends=('libgnomeui')
+source=(ftp://ftp.archlinux.org/other/gnome-alsamixer/${pkgname}-${pkgver}.tar.gz
+ gnome-alsamixer-0.9.6-gtk24.patch gnome-alsamixer.desktop)
+md5sums=('387623cfeb079d78325eed2d6bc94251'
+ '82b95a0df43429da5098b4da883f6bd0'
+ 'c7dbc44207bede96e4fafc24a7c7beb3')
+sha1sums=('faece601a4329d2b01b9efe65200021538fc066d'
+ 'b4e3b871676025600170ba54f59db4977b853c08'
+ '31639f7932d088ca76a18c79839682be811f23d0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/gnome-alsamixer-0.9.6-gtk24.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 "${srcdir}/gnome-alsamixer.desktop" \
+ "${pkgdir}/usr/share/applications/gnome-alsamixer.desktop"
+}
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-alsamixer/gnome-alsamixer.desktop b/extra/gnome-alsamixer/gnome-alsamixer.desktop
new file mode 100644
index 000000000..861a22849
--- /dev/null
+++ b/extra/gnome-alsamixer/gnome-alsamixer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=GNOME ALSA Mixer
+Comment=ALSA sound mixer for GNOME
+Comment[es]=Mezclador de sonido ALSA para GNOME
+Comment[fr]=Mélangeur de son ALSA pour GNOME
+Exec=gnome-alsamixer
+Icon=/usr/share/pixmaps/gnome-alsamixer/gnome-alsamixer-icon.png
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;
+StartupNotify=true
diff --git a/extra/gnome-applets/PKGBUILD b/extra/gnome-applets/PKGBUILD
new file mode 100644
index 000000000..87dca22fc
--- /dev/null
+++ b/extra/gnome-applets/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 140879 2011-10-20 05:42:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-applets
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="GNOME Applets"
+arch=(i686 x86_64 'mips64el')
+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://download.gnome.org/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('cba1dff05bf2aad57f0df2ea746a9bf1c3483a0388a70bf501f61d95b1017dc1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/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..e4c84cba3
--- /dev/null
+++ b/extra/gnome-bluetooth/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 140881 2011-10-20 05:42:28Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-bluetooth
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="The GNOME Bluetooth Subsystem"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/GnomeBluetooth"
+license=('GPL' 'LGPL')
+depends=('gtk3' '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}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
+ 61-gnome-bluetooth-rfkill.rules)
+sha256sums=('f67abc26e2a8003b5e3b58e1541ed3955e0ea05a08bfaa8d5dc4b2133d948df0'
+ '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/extra/gnome-bluetooth/gnome-bluetooth.install b/extra/gnome-bluetooth/gnome-bluetooth.install
new file mode 100644
index 000000000..927142ee0
--- /dev/null
+++ b/extra/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/extra/gnome-color-manager/PKGBUILD b/extra/gnome-color-manager/PKGBUILD
new file mode 100644
index 000000000..7ffd1595a
--- /dev/null
+++ b/extra/gnome-color-manager/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144389 2011-12-05 13:07:33Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=gnome-color-manager
+pkgver=3.2.1
+pkgrel=2
+pkgdesc="Color profile manager for the GNOME desktop"
+arch=(i686 x86_64 'mips64el')
+url="http://projects.gnome.org/gnome-color-manager/"
+license=(GPL2)
+depends=('libcanberra' 'vte3' 'exiv2' 'hicolor-icon-theme' 'desktop-file-utils' 'clutter-gtk' 'mash' 'shared-color-profiles' 'shared-color-targets')
+makedepends=('intltool' 'gtk-doc')
+install=gnome-color-manager.install
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('bc4651b58a4dc4b812803e8f81520488e6b452969028f04987cb463b8e218436')
+
+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/gnome-color-manager \
+ --disable-static --disable-man-pages
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/gnome-color-manager/gnome-color-manager.install b/extra/gnome-color-manager/gnome-color-manager.install
new file mode 100644
index 000000000..04fda0ddc
--- /dev/null
+++ b/extra/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/extra/gnome-contacts/PKGBUILD b/extra/gnome-contacts/PKGBUILD
new file mode 100644
index 000000000..ccbdbcb4e
--- /dev/null
+++ b/extra/gnome-contacts/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 141004 2011-10-21 08:06:14Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-contacts
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Contacts Manager for GNOME"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL2')
+groups=(gnome-extra)
+depends=('gtk3' 'folks' 'libnotify' 'gnome-desktop')
+makedepends=('intltool' 'vala')
+install=
+source=(http://download.gnome.org/sources/$pkgname/3.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('9dfd56a40f3b89512a09d9e54c18227ae4bfe9b4cff87a72f7e17f6a35367d88')
+
+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/gnome-control-center/PKGBUILD b/extra/gnome-control-center/PKGBUILD
new file mode 100644
index 000000000..9c5db6383
--- /dev/null
+++ b/extra/gnome-control-center/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142419 2011-11-09 07:46:48Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-control-center
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="The Control Center for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gtk3' 'gsettings-desktop-schemas' 'gnome-menus' 'gnome-desktop' 'gnome-settings-daemon' 'upower' 'libgtop' 'cups-pk-helper' 'accountsservice' 'sound-theme-freedesktop' 'gnome-online-accounts' 'network-manager-applet')
+optdepends=('mesa-demos-libre: provides glxinfo for graphics information'
+ 'apg: adds password generation for user accounts'
+ 'gnome-color-manager: for color management tasks')
+makedepends=('gnome-doc-utils' 'intltool')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-control-center.install
+license=('GPL')
+options=('!libtool' '!emptydirs')
+source=(http://download.gnome.org/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('e675f8cfde06775919eb0c9fa4ee8c61310702989eecac6083098beb5afd9369')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --disable-update-mimedb
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=656229
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
+
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..eb703319f
--- /dev/null
+++ b/extra/gnome-control-center/gnome-control-center.install
@@ -0,0 +1,19 @@
+pkgname=gnome-control-center
+
+post_install() {
+ 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/extra/gnome-desktop-sharp/PKGBUILD b/extra/gnome-desktop-sharp/PKGBUILD
new file mode 100644
index 000000000..8342241c1
--- /dev/null
+++ b/extra/gnome-desktop-sharp/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 144403 2011-12-05 14:57:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gnome-desktop-sharp
+pkgname=('gnome-desktop-sharp' 'libgnome-desktop-sharp' 'gtkhtml-sharp' 'gtksourceview2-sharp' 'rsvg2-sharp' 'vte-sharp' 'wnck-sharp')
+pkgver=2.26.0
+pkgrel=8
+arch=('i686' 'x86_64' 'mips64el')
+license=(LGPL)
+url="http://gtk-sharp.sourceforge.net"
+makedepends=('gnome-sharp' 'gnome-desktop2' 'vte' 'librsvg' 'libwnck' 'gtkhtml' 'gtksourceview2' 'monodoc')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2
+ gnome-desktop-sharp-lib-target.patch)
+md5sums=('4bc990900bb318b2ba0b0e7998bb47d1'
+ '980cd3adf5e745f4caee0a172a51dcc3')
+
+build() {
+ export MONO_SHARED_DIR="$srcdir/wapi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i $srcdir/gnome-desktop-sharp-lib-target.patch
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package_gnome-desktop-sharp() {
+ pkgdesc="GNOME desktop bindings for C#"
+ depends=('libgnome-desktop-sharp' 'gtkhtml-sharp' 'gtksourceview2-sharp' 'rsvg2-sharp' 'vte-sharp' 'wnck-sharp')
+}
+
+package_libgnome-desktop-sharp() {
+ pkgdesc="Mono bindings for libgnome-desktop"
+ depends=('gtk-sharp-2' 'gnome-desktop2')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make -C gnomedesktop install DESTDIR="$pkgdir"
+}
+
+package_gtkhtml-sharp() {
+ pkgdesc="Mono bindings for gtkhtml"
+ depends=('gtk-sharp-2' 'gtkhtml')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make -C gtkhtml install DESTDIR="$pkgdir"
+}
+
+package_gtksourceview2-sharp() {
+ pkgdesc="Mono bindings for gtksourceview2"
+ depends=('gtk-sharp-2' 'gtksourceview2')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make -C gtksourceview install DESTDIR="$pkgdir"
+}
+
+package_rsvg2-sharp() {
+ pkgdesc="Mono bindings for librsvg"
+ depends=('gtk-sharp-2' 'librsvg')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make -C rsvg install DESTDIR="$pkgdir"
+}
+
+package_vte-sharp() {
+ pkgdesc="Mono bindings for libvte"
+ depends=('gtk-sharp-2' 'vte')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make -C vte install DESTDIR="$pkgdir"
+}
+
+package_wnck-sharp() {
+ pkgdesc="Mono bindings for libwnck"
+ depends=('gtk-sharp-2' 'libwnck')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make -C wnck install DESTDIR="$pkgdir"
+}
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..1faf9806b
--- /dev/null
+++ b/extra/gnome-desktop/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140889 2011-10-20 05:42:36Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-desktop
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Library with common API for various GNOME modules"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('4cb00d22360f9ae4bc3fb79efe7868fd54fcbfcd4f7050c71fc97699ec3a86a2')
+
+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/extra/gnome-desktop2/PKGBUILD b/extra/gnome-desktop2/PKGBUILD
new file mode 100644
index 000000000..77b1a8972
--- /dev/null
+++ b/extra/gnome-desktop2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 121039 2011-04-28 07:31:32Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jan@archlinux.org>
+
+_pkgname=gnome-desktop
+pkgname=${_pkgname}2
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="The GNOME Desktop"
+arch=(i686 x86_64 mips64el)
+license=(GPL LGPL)
+depends=(gconf gtk2 startup-notification)
+makedepends=(gnome-doc-utils intltool)
+url="http://www.gnome.org"
+options=(!libtool !emptydirs)
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_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 \
+ --disable-gnome-about --disable-desktop-docs
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/gnome-disk-utility/PKGBUILD b/extra/gnome-disk-utility/PKGBUILD
new file mode 100644
index 000000000..a7eb125c8
--- /dev/null
+++ b/extra/gnome-disk-utility/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 139202 2011-10-01 17:02:00Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Silvio Knizek (killermoehre)
+
+pkgbase=gnome-disk-utility
+pkgname=(gnome-disk-utility libgdu)
+pkgver=3.0.2
+pkgrel=2
+pkgdesc="GNOME libraries and applications for dealing with storage devices"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org"
+makedepends=('dbus-glib' 'libgnome-keyring' 'udisks' 'libunique3' 'libnotify' 'avahi'
+ 'hicolor-icon-theme' 'gtk-doc' 'intltool')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.xz
+ fix-freeze.patch)
+sha256sums=('7983f12ba04e84f164d0cae54bb06ed9b3ebe6c0a1c606d63d067fc395aeb0a5'
+ '818b70360978968457d2c50738347c6726ed8d0c007eb57074881a7e33652526')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${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-static
+ make
+}
+
+package_gnome-disk-utility() {
+ depends=("libgdu=$pkgver-$pkgrel" 'libunique3' 'libnotify' 'hicolor-icon-theme' 'avahi')
+ groups=('gnome-extra')
+ install=gnome-disk-utility.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+### Split libgdu
+
+ mkdir -p "$srcdir"/libgdu/usr/{include/gnome-disk-utility,lib/pkgconfig}
+
+ mv "$pkgdir"/usr/lib/libgdu.so* "$srcdir/libgdu/usr/lib"
+ mv {"$pkgdir","$srcdir/libgdu"}/usr/include/gnome-disk-utility/gdu
+ mv {"$pkgdir","$srcdir/libgdu"}/usr/lib/pkgconfig/gdu.pc
+}
+
+package_libgdu() {
+ pkgdesc="$pkgdesc (library)"
+ depends=('dbus-glib' 'libgnome-keyring' 'udisks')
+
+ mv "$srcdir"/libgdu/* "$pkgdir"
+}
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-documents/PKGBUILD b/extra/gnome-documents/PKGBUILD
new file mode 100644
index 000000000..6865f4fdc
--- /dev/null
+++ b/extra/gnome-documents/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142279 2011-11-07 20:29:49Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=gnome-documents
+pkgver=0.2.1
+pkgrel=2
+pkgdesc="Documents Manager for GNOME"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL')
+groups=('gnome-extra')
+depends=('clutter-gtk' 'evince' 'gjs' 'gtk3' 'gnome-desktop' 'gnome-online-accounts' 'libgdata' 'tracker')
+makedepends=('intltool')
+optdepends=('unoconv: Support for Libreoffice document types')
+options=('!libtool')
+install=gnome-documents.install
+source=(http://download.gnome.org/sources/$pkgname/0.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('f04356d6620a3fa47cfdb4b72c80ac3748ca229fe24b57ccf229536afa934f52')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-documents
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gnome-documents/gnome-documents.install b/extra/gnome-documents/gnome-documents.install
new file mode 100644
index 000000000..95114273e
--- /dev/null
+++ b/extra/gnome-documents/gnome-documents.install
@@ -0,0 +1,13 @@
+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
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gnome-games/PKGBUILD b/extra/gnome-games/PKGBUILD
new file mode 100644
index 000000000..fb899dd13
--- /dev/null
+++ b/extra/gnome-games/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 140893 2011-10-20 05:42:40Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-games
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Some Games for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libsm' 'gconf' 'desktop-file-utils' 'libcanberra' 'clutter-gtk' 'hicolor-icon-theme' 'librsvg' 'python2-gobject' 'dconf')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection')
+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.xz)
+sha256sums=('b40fe59537fd58af1bd8163897684883b730ee0f0257d23b493b13e21d105a3b')
+
+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
+
+ sed -i 's_#! /usr/bin/env python_#!/usr/bin/env python2_' ${pkgdir}/usr/bin/gnome-sudoku
+}
diff --git a/extra/gnome-games/gnome-games.install b/extra/gnome-games/gnome-games.install
new file mode 100644
index 000000000..1f67c2e01
--- /dev/null
+++ b/extra/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/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..39807dce4
--- /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' 'mips64el')
+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..9274a5956
--- /dev/null
+++ b/extra/gnome-keyring/PKGBUILD
@@ -0,0 +1,32 @@
+#$Id: PKGBUILD 142880 2011-11-17 18:34:39Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gnome-keyring
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="GNOME Password Management daemon"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'LGPL')
+depends=('gtk3' 'dconf' 'libgcrypt' 'libcap-ng' 'p11-kit' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' '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.xz)
+sha256sums=('f4cdc2c492a9b0157d59439310093e611e1f718a16f7ee2391ac03aadacfaaa3')
+
+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 --disable-update-mime
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..e899ab5a2
--- /dev/null
+++ b/extra/gnome-keyring/gnome-keyring.install
@@ -0,0 +1,15 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-mime-database /usr/share/mime 1> /dev/null
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+ setcap cap_ipc_lock=ep /usr/bin/gnome-keyring-daemon
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gnome-media/PKGBUILD b/extra/gnome-media/PKGBUILD
new file mode 100644
index 000000000..6d96303ff
--- /dev/null
+++ b/extra/gnome-media/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 139627 2011-10-03 20:26:30Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-media
+pkgver=2.91.2
+pkgrel=3
+pkgdesc="GNOME Media Tools"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libgnome-media-profiles' 'libcanberra' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+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/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-menus/PKGBUILD b/extra/gnome-menus/PKGBUILD
new file mode 100644
index 000000000..a136ea22c
--- /dev/null
+++ b/extra/gnome-menus/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 139303 2011-10-01 18:57:57Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-menus
+pkgver=3.2.0.1
+pkgrel=1
+pkgdesc="GNOME menu specifications"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glib2' 'python2')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+license=('GPL' 'LGPL')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz
+ menus.patch)
+sha256sums=('17e2ea745b1e80fba4f6ec03c4bac561aa6e7ca275fcc79a3df3d318cb64972b'
+ '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/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-nettool/PKGBUILD b/extra/gnome-nettool/PKGBUILD
new file mode 100644
index 000000000..026215dfc
--- /dev/null
+++ b/extra/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 mips64el)
+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/extra/gnome-nettool/gnome-nettool.install b/extra/gnome-nettool/gnome-nettool.install
new file mode 100644
index 000000000..738f7859f
--- /dev/null
+++ b/extra/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/extra/gnome-online-accounts/PKGBUILD b/extra/gnome-online-accounts/PKGBUILD
new file mode 100644
index 000000000..7edd769fe
--- /dev/null
+++ b/extra/gnome-online-accounts/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140899 2011-10-20 05:42:46Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-online-accounts
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="GNOME service to access online accounts"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL')
+depends=('libwebkit3' 'json-glib' 'libnotify' 'rest' 'hicolor-icon-theme')
+makedepends=('intltool' 'libxslt' 'gobject-introspection' 'docbook-xsl')
+options=(!libtool)
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/3.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('549c210c358fd05598a00cb7a8d8f5b0fd6e18f7cb321c3c1641fb18f1312234')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --libexec=/usr/lib/gnome-online-accounts
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gnome-online-accounts/gnome-online-accounts.install b/extra/gnome-online-accounts/gnome-online-accounts.install
new file mode 100644
index 000000000..2e02b7952
--- /dev/null
+++ b/extra/gnome-online-accounts/gnome-online-accounts.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-panel/PKGBUILD b/extra/gnome-panel/PKGBUILD
new file mode 100644
index 000000000..d627522a0
--- /dev/null
+++ b/extra/gnome-panel/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 140901 2011-10-20 05:42:50Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-panel
+pkgver=3.2.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+pkgdesc="The GNOME Panel"
+url="http://www.gnome.org"
+depends=('gnome-menus' 'gnome-desktop' 'evolution-data-server' 'librsvg' 'libwnck3' 'libsm' 'dconf' 'telepathy-glib')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection' 'networkmanager' 'libcanberra')
+install=gnome-panel.install
+groups=('gnome')
+replaces=('gnome-panel-bonobo')
+provides=("gnome-panel-bonobo=${pkgver}")
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('ae5ed578f9f54ad763bf5e46fd5431cdbc06fa2eefea03b390c90a3ffb18870d')
+
+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 \
+ --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-panel-3.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-panel/gnome-panel.install b/extra/gnome-panel/gnome-panel.install
new file mode 100644
index 000000000..e3175df5e
--- /dev/null
+++ b/extra/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/extra/gnome-perl/PKGBUILD b/extra/gnome-perl/PKGBUILD
new file mode 100644
index 000000000..cf5d1a776
--- /dev/null
+++ b/extra/gnome-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 125159 2011-05-25 19:04:51Z foutrelis $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-perl
+_realname=Gnome2
+pkgver=1.042
+pkgrel=6
+pkgdesc="Perl bindings for libgnome"
+arch=('i686' 'x86_64' 'mips64el')
+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..6304baeba
--- /dev/null
+++ b/extra/gnome-phone-manager/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140561 2011-10-17 08:06:31Z heftig $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-phone-manager
+pkgver=0.68
+pkgrel=1
+pkgdesc="Control your mobile phone from your GNOME desktop."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/PhoneManager"
+license=('GPL')
+depends=('evolution-data-server' 'gnokii' 'gnome-bluetooth' 'gnome-icon-theme' 'libcanberra')
+makedepends=('intltool' 'gnome-common')
+options=('!emptydirs' '!libtool')
+install=gnome-phone-manager.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/gnome-phone-manager/${pkgver}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('3777b62ee36492274532ece965f4688600457014f17a6f21dd01fb63bbb77f8f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ 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 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..bd98ec59c
--- /dev/null
+++ b/extra/gnome-pilot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 139311 2011-10-01 18:58:09Z ibiru $
+# Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-pilot
+pkgver=2.91.93
+pkgrel=1
+pkgdesc="Pilot Support for Gnome"
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('56fbb1c54621dcda9cde4c7ac0754d5d9d68ae2ae1eb63acffb00817e4a8dd21')
+
+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
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
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..0d91ed969
--- /dev/null
+++ b/extra/gnome-power-manager/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140903 2011-10-20 05:42:55Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-power-manager
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Power management tools."
+arch=(i686 x86_64 'mips64el')
+url="http://www.gnome.org/projects/gnome-power-manager/"
+license=('GPL')
+depends=('gtk3' 'upower' 'dconf' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils')
+options=(!emptydirs)
+install=gnome-power-manager.install
+groups=(gnome-extra)
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('11bc604dd237e28eb08a67e6d507c3edebb96a43a3483390bd0c8100a206dbdb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-power-manager \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..4666938db
--- /dev/null
+++ b/extra/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/extra/gnome-python-desktop/PKGBUILD b/extra/gnome-python-desktop/PKGBUILD
new file mode 100644
index 000000000..9aac85d4d
--- /dev/null
+++ b/extra/gnome-python-desktop/PKGBUILD
@@ -0,0 +1,100 @@
+# $Id: PKGBUILD 144401 2011-12-05 14:48:25Z 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-evolution' 'python-gnomedesktop' 'python-gnomekeyring' 'python-gtop' 'python-metacity' 'python-rsvg' 'python-totem-plparser' 'python-wnck')
+pkgver=2.32.0
+pkgrel=9
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'LGPL')
+options=('!libtool')
+makedepends=('intltool' 'pkg-config' 'gnome-python' 'evolution-data-server' 'libgtop' 'totem-plparser' 'gnome-desktop2' 'metacity' 'librsvg')
+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}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --enable-metacity
+ make
+}
+
+package_gnome-python-desktop() {
+ depends=('python-evolution' 'python-gnomedesktop' 'python-gnomekeyring' 'python-gtop' 'python-metacity' 'python-rsvg' 'python-totem-plparser' 'python-wnck' 'gnome-python')
+ pkgdesc="Python bindings for the GNOME desktop environment"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make install-pkgconfigDATA 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-gnomedesktop() {
+ depends=('pygtk' 'gnome-desktop2' 'python2-gnomevfs')
+ pkgdesc="Python bindings for gnome-desktop 2.x"
+
+ 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-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}"
+}
diff --git a/extra/gnome-python-extras/PKGBUILD b/extra/gnome-python-extras/PKGBUILD
new file mode 100644
index 000000000..19dbcdbb6
--- /dev/null
+++ b/extra/gnome-python-extras/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 139493 2011-10-02 11:50:40Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gnome-python-extras
+pkgname=('gnome-python-extras' 'python2-egg' 'python2-gksu2' 'python2-gtkhtml2' 'python2-gtkspell')
+pkgver=2.25.3
+pkgrel=11
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.daa.com.au/~james/pygtk/"
+license=('GPL' 'LGPL')
+makedepends=('libgtkhtml' 'gtkspell' 'libgksu' 'libgnomeui' '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
+}
+
+package_gnome-python-extras() {
+ pkgdesc="Gnome Python interfaces for libraries not part of the core platform"
+ depends=('python2-egg' 'python2-gksu2' 'python2-gtkhtml2' '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-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-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..26966b96d
--- /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 'mips64el')
+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..1672f4955
--- /dev/null
+++ b/extra/gnome-screensaver/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 139315 2011-10-01 18:58:16Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-screensaver
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Screensaver designed to integrate well with the GNOME desktop."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://live.gnome.org/GnomeScreensaver"
+backup=(etc/pam.d/gnome-screensaver)
+depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop' 'gsettings-desktop-schemas')
+makedepends=('pkgconfig' 'intltool' 'libxss')
+groups=('gnome')
+options=(!emptydirs)
+install=gnome-screensaver.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
+ gnome-screensaver.pam)
+sha256sums=('305f4a5be8736c4cf5e55b8288b7e177907bafa26e39273d1bb65ad1862295ed'
+ '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/extra/gnome-screensaver/gnome-screensaver.install b/extra/gnome-screensaver/gnome-screensaver.install
new file mode 100644
index 000000000..3b0e06046
--- /dev/null
+++ b/extra/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/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..1e098f700
--- /dev/null
+++ b/extra/gnome-session/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140905 2011-10-20 05:42:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-session
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="The GNOME Session Handler"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'LGPL')
+depends=('upower' 'gtk3' 'gconf' 'json-glib' 'startup-notification' 'hicolor-icon-theme' 'libxtst' 'polkit-gnome' 'libgl' 'gsettings-desktop-schemas' 'consolekit' 'libsm' 'dconf')
+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.xz)
+sha256sums=('a87dcf57fec83cc8fad4e7b84542c5005a70a2107d184f247f0b112f07a043b3')
+
+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/extra/gnome-session/gnome-session.install b/extra/gnome-session/gnome-session.install
new file mode 100644
index 000000000..74cf4ed22
--- /dev/null
+++ b/extra/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/extra/gnome-settings-daemon/PKGBUILD b/extra/gnome-settings-daemon/PKGBUILD
new file mode 100644
index 000000000..93768bae2
--- /dev/null
+++ b/extra/gnome-settings-daemon/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142417 2011-11-09 07:29:52Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-settings-daemon
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="The GNOME Settings daemon"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libgnomekbd' 'gnome-desktop' 'libnotify' 'hicolor-icon-theme' 'libcanberra-pulse' 'gsettings-desktop-schemas' 'nss' 'gconf' 'dconf' 'pulseaudio' 'pulseaudio-alsa' 'upower')
+makedepends=('intltool' 'gtk-doc' 'gnome-desktop')
+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.xz)
+sha256sums=('d91cac869e23f36942720485f04c3029fd5286fafb6ad12b07377e527b1f6884')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-settings-daemon --disable-static --enable-pulse \
+ --with-pnpids=/usr/share/libgnome-desktop-3.0/pnp.ids
+ #https://bugzilla.gnome.org/show_bug.cgi?id=656231
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..483fb9450
--- /dev/null
+++ b/extra/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/extra/gnome-sharp/PKGBUILD b/extra/gnome-sharp/PKGBUILD
new file mode 100644
index 000000000..c530818c4
--- /dev/null
+++ b/extra/gnome-sharp/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 119246 2011-04-11 14:46:11Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+
+pkgbase=gnome-sharp
+pkgname=('gnome-sharp' 'art-sharp' 'gconf-sharp' 'gconf-sharp-peditors' 'libgnome-sharp' 'gnome-vfs-sharp')
+pkgver=2.24.2
+pkgrel=1
+arch=(i686 x86_64 mips64el)
+license=(LGPL)
+url="http://gtk-sharp.sourceforge.net"
+makedepends=('gtk-sharp-2' 'libgnomeui' 'monodoc')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/gnome-sharp/2.24/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('3b38f53960c736d4afb8f04204efe98b')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package_gnome-sharp() {
+ pkgdesc="GNOME bindings for C#"
+ depends=('art-sharp' 'gconf-sharp' 'gconf-sharp-peditors' 'libgnome-sharp' 'gnome-vfs-sharp')
+}
+
+package_art-sharp() {
+ pkgdesc="Mono bindings for libart"
+ depends=('gtk-sharp-2' 'libart-lgpl')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C art install DESTDIR="${pkgdir}"
+}
+
+package_gconf-sharp() {
+ pkgdesc="Mono bindings for GConf"
+ depends=('gtk-sharp-2' 'gconf')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gconf/GConf install DESTDIR="${pkgdir}"
+ make -C gconf/tools install DESTDIR="${pkgdir}"
+}
+
+package_gconf-sharp-peditors() {
+ pkgdesc="Mono bindings for GConf - Property Editing classes"
+ depends=('gconf-sharp' 'libgnome-sharp')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gconf/GConf.PropertyEditors install DESTDIR="${pkgdir}"
+}
+
+package_libgnome-sharp() {
+ pkgdesc="Mono bindings for libgnome"
+ depends=('art-sharp' 'gnome-vfs-sharp' 'libgnomeui')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnome install DESTDIR="${pkgdir}"
+}
+
+package_gnome-vfs-sharp() {
+ pkgdesc="Mono bindings for GNOME-VFS"
+ depends=('gtk-sharp-2' 'gnome-vfs')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnomevfs install DESTDIR="${pkgdir}"
+}
diff --git a/extra/gnome-shell/PKGBUILD b/extra/gnome-shell/PKGBUILD
new file mode 100644
index 000000000..3116f3315
--- /dev/null
+++ b/extra/gnome-shell/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 140909 2011-10-20 05:43:08Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Flamelab <panosfilip@gmail.com
+
+pkgname=gnome-shell
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="The next generation GNOME Shell"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/GnomeShell"
+license=('GPL2')
+depends=('mutter' 'gjs' 'libcroco' 'gnome-bluetooth' 'gnome-desktop' 'gnome-menus' 'libpulse' 'folks' 'telepathy-logger' 'networkmanager' 'caribou' 'nautilus' 'telepathy-mission-control')
+makedepends=('intltool' 'gnome-doc-utils')
+optdepends=('network-manager-applet: shell integration for networkmanager')
+options=('!libtool' '!emptydirs')
+install=gnome-shell.install
+groups=(gnome)
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/3.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('ac05e3133bd279c84812d8d3d8e362f8b33563cdc3e7a6aefa9c0b1c2aeab0eb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ PYTHON=/usr/bin/python2 ./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/extra/gnome-shell/gnome-shell.install b/extra/gnome-shell/gnome-shell.install
new file mode 100644
index 000000000..a07105c24
--- /dev/null
+++ b/extra/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/extra/gnome-speech/PKGBUILD b/extra/gnome-speech/PKGBUILD
new file mode 100644
index 000000000..ce1124fef
--- /dev/null
+++ b/extra/gnome-speech/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137673 2011-09-10 11:43:42Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-speech
+pkgver=0.4.25
+pkgrel=2
+pkgdesc="Gnome Text-to-Speech"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://www.gnome.org"
+depends=('libbonobo')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-system-monitor/PKGBUILD b/extra/gnome-system-monitor/PKGBUILD
new file mode 100644
index 000000000..7f26b0a44
--- /dev/null
+++ b/extra/gnome-system-monitor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140912 2011-10-20 05:43:17Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-system-monitor
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="A system monitor for GNOME"
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('f9ecca05609c0ff346727e0f24e32ba5284aea47dfe958e2b6d4a7912e5c1180')
+
+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/extra/gnome-system-monitor/gnome-system-monitor.install b/extra/gnome-system-monitor/gnome-system-monitor.install
new file mode 100644
index 000000000..e2957a570
--- /dev/null
+++ b/extra/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/extra/gnome-terminal/PKGBUILD b/extra/gnome-terminal/PKGBUILD
new file mode 100644
index 000000000..c4ee90d1c
--- /dev/null
+++ b/extra/gnome-terminal/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140914 2011-10-20 05:43:22Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-terminal
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="The GNOME Terminal Emulator"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gconf' 'vte3' 'gsettings-desktop-schemas' 'libsm')
+makedepends=('gnome-doc-utils' 'intltool' 'gtk2')
+options=('!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-terminal.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('c36a6bce466447526cb73779ee8e861f079e86cef68a50f7c8fbed540d5f373e')
+
+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 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-themes-standard/PKGBUILD b/extra/gnome-themes-standard/PKGBUILD
new file mode 100644
index 000000000..a6d46c6ab
--- /dev/null
+++ b/extra/gnome-themes-standard/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140916 2011-10-20 05:43:25Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=gnome-themes-standard
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Default themes for the GNOME desktop"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://abattis.org/cantarell/"
+license=('GPL2')
+depends=('cantarell-fonts' 'gtk3' 'gtk-engines' 'librsvg')
+makedepends=('intltool')
+groups=('gnome')
+replaces=('gnome-themes')
+conflicts=('gnome-themes')
+source=(http://download.gnome.org/sources/$pkgname/3.2/$pkgname-${pkgver}.tar.xz)
+sha256sums=('ab9e7f6001f4f18420df6a66407ace4340ee815b31e571bc55de7983370e26f3')
+
+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/gnome-user-share/PKGBUILD b/extra/gnome-user-share/PKGBUILD
new file mode 100644
index 000000000..f860a5fad
--- /dev/null
+++ b/extra/gnome-user-share/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140919 2011-10-20 05:43:32Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-user-share
+pkgver=3.0.1
+pkgrel=1
+pkgdesc="Easy to use user-level file sharing for GNOME."
+arch=('i686' 'x86_64' 'mips64el')
+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' 'libunique3')
+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.xz)
+sha256sums=('9d1188c316e536ad6f84b595f118040474f8b9017acd492e80bce30d0c5d54ea')
+
+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/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..50c0ecbb1
--- /dev/null
+++ b/extra/gnome-utils/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 140921 2011-10-20 05:43:36Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-utils
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Common GNOME utilities for viewing disk usage, logs and fonts, taking screenshots, managing dictionaries and searching files"
+arch=(i686 x86_64 mips64el)
+license=('GPL')
+depends=('libgtop' 'libcanberra' 'libsm' 'gconf' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'desktop-file-utils' 'dconf')
+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.xz)
+sha256sums=('3ac1942dbf4d9d394e2fcc5f30a4480b1b1e5d44ee0c2d4f61689f4a221ba328')
+
+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/extra/gnome-utils/gnome-utils.install b/extra/gnome-utils/gnome-utils.install
new file mode 100644
index 000000000..a04bda405
--- /dev/null
+++ b/extra/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/extra/gnome-vfs-perl/PKGBUILD b/extra/gnome-vfs-perl/PKGBUILD
new file mode 100644
index 000000000..885b50ad2
--- /dev/null
+++ b/extra/gnome-vfs-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 125162 2011-05-25 19:05:23Z foutrelis $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-vfs-perl
+_realname=Gnome2-VFS
+pkgver=1.081
+pkgrel=4
+pkgdesc="Gnome2-VFS perl bindings for gnome-vfs"
+arch=(i686 x86_64 'mips64el')
+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..5d67ca6f1
--- /dev/null
+++ b/extra/gnome-vfs/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 136438 2011-08-29 09:40:33Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-vfs
+pkgver=2.24.4
+pkgrel=6
+pkgdesc="The GNOME Virtual File System"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('gconf' 'bzip2' 'avahi' 'smbclient' 'gnome-mime-data' 'krb5' 'gnutls' 'libgcrypt')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gnome-common')
+options=('!libtool' '!emptydirs')
+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
+ gnutls-config.patch
+ gcrypt-config.patch)
+sha256sums=('62de64b5b804eb04104ff98fcd6a8b7276d510a49fbd9c0feb568f8996444faa'
+ '66c7cfb12995c0dd94a2caea95c7e3c55981993f05a79c585d60915ff131955d'
+ 'c059e218f310da683778919d36e7862f7e763384805f6453d328fbaf507a8114')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ #Fix build with new gnutls
+ patch -Np1 -i "${srcdir}/gnutls-config.patch"
+ #fix build with new libgcrypt >= 1.5.0
+ patch -Np1 -i "${srcdir}/gcrypt-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 --disable-hal \
+ --enable-avahi --disable-howl \
+ --disable-openssl --enable-gnutls
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-vfs/gcrypt-config.patch b/extra/gnome-vfs/gcrypt-config.patch
new file mode 100644
index 000000000..8ce91870a
--- /dev/null
+++ b/extra/gnome-vfs/gcrypt-config.patch
@@ -0,0 +1,31 @@
+# Allow gnome-vfs-2.24 to build with libgcrypt >= 1.5.0
+--- gnome-vfs-2.24.4/configure.in 2010-07-01 12:36:09.000000000 -0300
++++ gnome-vfs-2.24.4-libgcrypt//configure.in 2011-07-22 15:55:02.296325640 -0300
+@@ -689,6 +689,16 @@
+ AM_CONDITIONAL(HAVE_SSL, test x$have_ssl = xtrue)
+
+ dnl ****************************
++dnl LibGCrypt 1.5.0
++dnl ****************************
++
++AM_PATH_LIBGCRYPT(1.5.0)
++
++if test "x${LIBGCRYPT_LIBS}" = "x"; then
++ AC_MSG_ERROR([unable to find libgcrypt])
++fi
++
++dnl ****************************
+ dnl DNS-SD implementations
+ dnl ****************************
+ AM_CONDITIONAL(HAVE_AVAHI, false)
+@@ -1045,8 +1055,8 @@
+ dnl ==============================================================================
+
+ PKG_CHECK_MODULES(LIBGNOMEVFS, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement)
+-LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS $OPENSSL_CFLAGS $LIBGNUTLS_CFLAGS $HOWL_CFLAGS $AVAHI_CFLAGS"
+-LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS $OPENSSL_LIBS $LIBGNUTLS_LIBS $HOWL_LIBS $AVAHI_LIBS $RESOLVER_LIBS"
++LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS $OPENSSL_CFLAGS $LIBGNUTLS_CFLAGS $HOWL_CFLAGS $AVAHI_CFLAGS $LIBGCRYPT_CFLAGS"
++LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS $OPENSSL_LIBS $LIBGNUTLS_LIBS $HOWL_LIBS $AVAHI_LIBS $RESOLVER_LIBS $LIBGCRYPT_LIBS"
+ AC_SUBST(LIBGNOMEVFS_CFLAGS)
+ AC_SUBST(LIBGNOMEVFS_LIBS)
+
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-vfsmm/PKGBUILD b/extra/gnome-vfsmm/PKGBUILD
new file mode 100644
index 000000000..1816b9be4
--- /dev/null
+++ b/extra/gnome-vfsmm/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 137756 2011-09-10 15:24:38Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=gnome-vfsmm
+pkgver=2.26.0
+pkgrel=2
+pkgdesc="A C++ wrapper for gnome-vfs."
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('gnome-vfs' 'glibmm')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnomecanvas-perl/PKGBUILD b/extra/gnomecanvas-perl/PKGBUILD
new file mode 100644
index 000000000..88516d278
--- /dev/null
+++ b/extra/gnomecanvas-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 125156 2011-05-25 19:04:24Z foutrelis $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnomecanvas-perl
+_realname=Gnome2-Canvas
+pkgver=1.002
+pkgrel=8
+pkgdesc="Gnome2-Canvas perl bindings for libgnomecanvas"
+arch=('i686' 'x86_64' 'mips64el')
+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..c4f500162
--- /dev/null
+++ b/extra/gnu-netcat/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137726 2011-09-10 14:19:00Z pierre $
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=gnu-netcat
+pkgver=0.7.1
+pkgrel=4
+pkgdesc="GNU rewrite of netcat, the network piping application"
+depends=('glibc' 'texinfo')
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/netcat-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..37e19bfb2
--- /dev/null
+++ b/extra/gnucash/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 141031 2011-10-22 05:09:05Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Mark Schneider <queueRAM@gmail.com>
+
+pkgname=gnucash
+pkgver=2.4.8
+pkgrel=1
+pkgdesc="A personal and small-business financial-accounting application"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnucash.org"
+license=("GPL")
+depends=('gtkhtml' 'slib' 'goffice' 'libgnomeui' 'libdbi-drivers' 'aqbanking' 'desktop-file-utils')
+makedepends=('intltool')
+optdepends=('evince: for print preview'
+ '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)
+sha1sums=('cdd8793bc8e8cbb433a0237007023f4973a51781')
+
+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..d98c53d73
--- /dev/null
+++ b/extra/gnuchess/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 137508 2011-09-08 07:31:10Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gnuchess
+pkgver=6.0.1
+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' 'mips64el')
+license=('GPL')
+depends=('glibc' 'ncurses' 'readline')
+source=(ftp://ftp.gnu.org/pub/gnu/chess/$pkgname-$pkgver.tar.gz)
+md5sums=('041888218f73886f146fa7fbf92190de')
+
+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..b90240431
--- /dev/null
+++ b/extra/gnugo/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 123739 2011-05-12 20:48:23Z andrea $
+# Maintainer:
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=gnugo
+pkgver=3.8
+pkgrel=2
+pkgdesc="A program that plays the game of Go"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+ 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..e13e70e06
--- /dev/null
+++ b/extra/gnumeric/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 139544 2011-10-03 12:22:49Z jgc $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=gnumeric
+pkgver=1.10.17
+pkgrel=1
+pkgdesc="A GNOME Spreadsheet Program"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org/projects/gnumeric/"
+license=('GPL')
+depends=('goffice' 'gconf' 'desktop-file-utils' 'hicolor-icon-theme')
+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.xz)
+sha256sums=('8f105a10dc0dd47e14df2879591d2f28482fd03809fa95977dd4d1470a02f963')
+
+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..43bb5d030
--- /dev/null
+++ b/extra/gnupg/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 127729 2011-06-17 22:03:38Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=gnupg
+pkgver=1.4.11
+pkgrel=3
+pkgdesc="GNU Privacy Guard - a PGP replacement tool"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ gnupg_1.4.11_mips_gcc4.4.patch)
+install=gnupg.install
+url="http://www.gnupg.org/"
+md5sums=('411744e1ef8ce90b87938c4203f001f1'
+ '2d919d48c847e9856dabdbb66328f09a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/gnupg_1.4.11_mips_gcc4.4.patch
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --enable-noexecstack
+ make
+ #ln -s ${pkgname}-${pkgver}/scripts .. # seems obsolete now
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check #All 27 tests passed
+}
+
+package () {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # 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/gnupg/gnupg_1.4.11_mips_gcc4.4.patch b/extra/gnupg/gnupg_1.4.11_mips_gcc4.4.patch
new file mode 100644
index 000000000..5fcbdc628
--- /dev/null
+++ b/extra/gnupg/gnupg_1.4.11_mips_gcc4.4.patch
@@ -0,0 +1,47 @@
+## mips_gcc4.4 by Werner Koch
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Build fails on mips(el) due to changes the removal
+## DP: of the 'h' constraint for MIPS in gcc-4.4.x versions.
+## DP: <URL:http://lists.gnupg.org/pipermail/gnupg-devel/2010-October/025805.html>
+
+diff -Nur gnupg-1.4.11.orig/mpi/longlong.h gnupg-1.4.11/mpi/longlong.h
+--- gnupg-1.4.11.orig/mpi/longlong.h 2010-06-01 13:01:46.000000000 +0200
++++ gnupg-1.4.11/mpi/longlong.h 2010-10-28 22:01:19.000000000 +0200
+@@ -710,12 +710,13 @@
+ ************** MIPS *****************
+ ***************************************/
+ #if defined (__mips__) && W_TYPE_SIZE == 32
+-#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR >= 4 )
+-#define umul_ppmm(w1, w0, u, v) \
++#if (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
++#define umul_ppmm(w1, w0, u, v) \
+ do { \
+- UDItype __ll = (UDItype)(u) * (v); \
+- w1 = __ll >> 32; \
+- w0 = __ll; \
++ UDItype _r; \
++ _r = (UDItype) u * v; \
++ (w1) = _r >> 32; \
++ (w0) = (USItype) _r; \
+ } while (0)
+ #elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+ #define umul_ppmm(w1, w0, u, v) \
+@@ -742,7 +743,16 @@
+ ************** MIPS/64 **************
+ ***************************************/
+ #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
+-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
++# if (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
++ typedef unsigned int UTItype __attribute__ ((mode (TI)));
++ # define umul_ppmm(w1, w0, u, v) \
++ do { \
++ UTItype _r; \
++ _r = (UTItype) u * v; \
++ (w1) = _r >> 64; \
++ (w0) = (UDItype) _r; \
++ } while (0)
++# elif if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+ #define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("dmultu %2,%3" \
+ : "=l" ((UDItype)(w0)), \
diff --git a/extra/gnupg2/PKGBUILD b/extra/gnupg2/PKGBUILD
new file mode 100644
index 000000000..4ecc4aee3
--- /dev/null
+++ b/extra/gnupg2/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 134651 2011-08-07 10:18:11Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=gnupg2
+pkgver=2.0.18
+pkgrel=1
+pkgdesc="GNU Privacy Guard 2 - a PGP replacement tool"
+arch=('i686' 'x86_64' 'mips64el')
+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=('2f37e0722666a0fedbe4d9f9227ac4d7')
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..9f5b437c4
--- /dev/null
+++ b/extra/gnuplot/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 122810 2011-05-06 10:03:29Z 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.3
+pkgrel=1
+pkgdesc="Plotting package which outputs to X11, PostScript, PNG, GIF, and others"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnuplot.info"
+license=('custom')
+depends=('readline' 'gd' 'wxgtk' 'cairo' 'libjpeg' 'lua')
+makedepends=('texinfo' 'emacs' 'texlive-core' 'texlive-latexextra')
+install=gnuplot.install
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+sha1sums=('a4d315b9288739e3cbaa04d8ddda7861b4009bd4')
+
+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..13e2761f2
--- /dev/null
+++ b/extra/gnutls/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142708 2011-11-13 11:53:41Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnutls
+pkgver=3.0.8
+pkgrel=1
+pkgdesc="A library which provides a secure layer over a reliable transport layer"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3' 'LGPL')
+url="http://www.gnu.org/software/gnutls/"
+install=gnutls.install
+options=('!libtool' '!zipman')
+depends=('gcc-libs' 'libtasn1' 'readline' 'zlib' 'nettle>=2.4' 'p11-kit')
+[ "$CARCH" = "mips64el" ] || makedepends=('valgrind')
+source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.xz)
+md5sums=('bce40a4e9bec343b266707eb9819132b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-zlib \
+ --disable-static \
+ --disable-guile \
+ --disable-valgrind-tests # breaks make check. errors have been reported upstream
+ 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/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..aedce43a2
--- /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 'mips64el')
+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..5e1fee3fd
--- /dev/null
+++ b/extra/gobject-introspection/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 139334 2011-10-01 18:58:44Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gobject-introspection
+pkgver=1.30.0
+pkgrel=1.1
+pkgdesc="Introspection system for GObject-based libraries"
+url="http://live.gnome.org/GObjectInstrospection"
+arch=('x86_64' 'i686' 'mips64el')
+license=('LGPL' 'GPL')
+depends=('glib2' 'python2')
+makedepends=('cairo')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.30/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('8e4274579096e983fad3148cdab50295a4701e45cd9a4e02f7242fc0a04c47b2')
+
+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/extra/goffice/PKGBUILD b/extra/goffice/PKGBUILD
new file mode 100644
index 000000000..07866eafe
--- /dev/null
+++ b/extra/goffice/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 139546 2011-10-03 12:22:52Z jgc $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=goffice
+pkgver=0.8.17
+pkgrel=1
+pkgdesc="A library of document-centric objects and utilities built on top of GLib and Gtk+"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnome.org"
+license=('GPL')
+options=('!libtool')
+depends=('gtk2' 'gconf' 'libgsf')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
+ use-apiver-for-dirs.patch)
+sha256sums=('165070beb67b84580afe80a8a100b674a81d553ab791acd72ac0c655f4fadb15'
+ '4507a49f6ccb13e55c0b3cc6831b7e0dcec7badb58a3661190e843f8607fa270')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/use-apiver-for-dirs.patch"
+ autoreconf -fi
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/goffice/use-apiver-for-dirs.patch b/extra/goffice/use-apiver-for-dirs.patch
new file mode 100644
index 000000000..3d0909da3
--- /dev/null
+++ b/extra/goffice/use-apiver-for-dirs.patch
@@ -0,0 +1,32 @@
+--- configure.in.orig 2011-09-07 08:45:49.687783970 +0000
++++ configure.in 2011-09-07 09:12:55.709382840 +0000
+@@ -418,7 +418,7 @@
+ fi
+
+ dnl **************************************************
+-AC_SUBST(GETTEXT_PACKAGE, goffice-${VERSION})
++AC_SUBST(GETTEXT_PACKAGE, goffice-${GOFFICE_API_VER})
+ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
+ [The package name, for gettext])
+ AM_GLIB_GNU_GETTEXT
+@@ -638,9 +638,9 @@
+ dnl ******************
+ dnl
+ dnl These are changed in goffice.c for WIN32 packages
+-AC_SUBST(goffice_datadir, '${datadir}/goffice/${VERSION}')
+-AC_SUBST(goffice_libdir, '${libdir}/goffice/${VERSION}')
+-AC_SUBST(goffice_icondir, '${datadir}/pixmaps/goffice/${VERSION}')
++AC_SUBST(goffice_datadir, '${datadir}/goffice/${GOFFICE_API_VER}')
++AC_SUBST(goffice_libdir, '${libdir}/goffice/${GOFFICE_API_VER}')
++AC_SUBST(goffice_icondir, '${datadir}/pixmaps/goffice/${GOFFICE_API_VER}')
+ AC_SUBST(goffice_localedir, '${prefix}/${DATADIRNAME}/locale')
+ dnl
+ AC_SUBST(goffice_plugindir, '${goffice_libdir}/plugins')
+--- libgoffice.pc.in.orig 2010-02-18 22:49:39.000000000 +0000
++++ libgoffice.pc.in 2011-09-07 09:18:53.655992532 +0000
+@@ -11,4 +11,4 @@
+ Libs.private: @EXTRA_LIBS@
+ Cflags: -I${includedir}/libgoffice-@GOFFICE_API_VER@ @EXTRA_INCLUDES@
+
+-PluginDir=${libdir}/goffice/@VERSION@/plugins
++PluginDir=${libdir}/goffice/@GOFFICE_API_VER@/plugins
diff --git a/extra/gpart/PKGBUILD b/extra/gpart/PKGBUILD
new file mode 100644
index 000000000..b6760e42f
--- /dev/null
+++ b/extra/gpart/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 143745 2011-11-28 20:14:39Z 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=5
+pkgdesc="Partition table rescue/guessing tool"
+arch=('i686' 'x86_64' 'mips64el')
+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-reiserfs-3.6.patch'
+ 'gpart-0.1h-l64seek.patch'
+ 'gpart-0.1h-openmode.patch')
+md5sums=('ee3a2d2dde70bcf404eb354b3d1ee6d4'
+ '81eee5d9985df9bf9c23624e46cf945f'
+ 'ae6d86b0268618d34e618824dcd82754'
+ '8161c02116ee4575906587eb09e35bde'
+ '5da425c355740cbf06286755c902b996'
+ '9cd7f91c321a83cc1aa202744d1c7cd2'
+ 'c982a01385e99b86b32de536c1fbecfb')
+
+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 -Np2 -i ${srcdir}/gpart-0.1h-reiserfs-3.6.patch
+ patch -Np1 -i ${srcdir}/gpart-0.1h-l64seek.patch
+ patch -Np1 -i ${srcdir}/gpart-0.1h-openmode.patch
+
+ sed -i -e "/^CFLAGS/s: -O2 : ${CFLAGS} :" make.defs
+ sed -i -e "/^LDFLAGS/s:=:=${LDFLAGS} :" make.defs
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+}
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-l64seek.patch b/extra/gpart/gpart-0.1h-l64seek.patch
new file mode 100644
index 000000000..8a14411a5
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-l64seek.patch
@@ -0,0 +1,71 @@
+--- gpart-0.1h.orig/src/l64seek.c
++++ gpart-0.1h/src/l64seek.c
+@@ -25,30 +25,11 @@
+ } ostck[OSTACKLEN];
+ static int osptr = -1;
+
+-#if defined(__linux__) && defined(__i386__)
+-_syscall5(int,_llseek,uint,fd,ulong,hi,ulong,lo,loff_t *,res,uint,wh)
+-#endif
+-
+-
+-
+ off64_t l64seek(int fd,off64_t offset,int whence)
+ {
+ off64_t ret = (off64_t)-1;
+
+-#if defined(__linux__) && defined(__i386__)
+- int iret;
+- unsigned long ohi, olo;
+-
+- ohi = (unsigned long)((offset >> 32) & 0xFFFFFFFF);
+- olo = (unsigned long)(offset & 0xFFFFFFFF);
+- iret = _llseek(fd,ohi,olo,&ret,whence);
+- if (iret == -1)
+- ret = (off64_t)-1;
+-#endif
+-
+-#if defined(__FreeBSD__) || (defined(__linux__) && defined(__alpha__))
+ ret = lseek(fd,offset,whence);
+-#endif
+
+ return (ret);
+ }
+--- gpart-0.1h.orig/src/l64seek.h
++++ gpart-0.1h/src/l64seek.h
+@@ -17,6 +17,8 @@
+ #ifndef _L64SEEK_H
+ #define _L64SEEK_H
+
++#include <sys/stat.h>
++#include <sys/types.h>
+ #include <unistd.h>
+
+ /*
+@@ -25,19 +27,7 @@
+ * offsets.
+ */
+
+-
+-#if defined(__linux__)
+-# include <linux/unistd.h>
+-# include <sys/types.h>
+- typedef int64_t off64_t;
+-#endif
+-
+-
+-#if defined(__FreeBSD__)
+- typedef off_t off64_t;
+-#endif
+-
+-
++typedef loff_t off64_t;
+ typedef off64_t s64_t;
+
+ off64_t l64seek(int fd, off64_t offset, int whence);
+@@ -45,5 +35,4 @@
+ int l64opush(int);
+ s64_t l64opop(int);
+
+-
+ #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-openmode.patch b/extra/gpart/gpart-0.1h-openmode.patch
new file mode 100644
index 000000000..ca13cc942
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-openmode.patch
@@ -0,0 +1,11 @@
+--- gpart.orig/src/gpart.c 2008-10-19 15:06:06.000000000 +0000
++++ gpart/src/gpart.c 2008-11-25 07:34:47.000000000 +0000
+@@ -1221,7 +1221,7 @@ static int make_mbr_backup(disk_desc *d,
+ {
+ int fd, ret = 0;
+
+- if ((fd = open(bfile,O_WRONLY|O_CREAT)) < 0)
++ if ((fd = open(bfile,O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)) < 0)
+ return (ret);
+
+ if (write(fd,d->d_pt.t_boot,512) == 512)
diff --git a/extra/gpart/gpart-0.1h-reiserfs-3.6.patch b/extra/gpart/gpart-0.1h-reiserfs-3.6.patch
new file mode 100644
index 000000000..257015d2b
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-reiserfs-3.6.patch
@@ -0,0 +1,443 @@
+diff -rupN ./gpart-0.1h.orig/README ./gpart-0.1h/README
+--- ./gpart-0.1h.orig/README Wed Feb 7 20:58:12 2001
++++ ./gpart-0.1h/README Fri Jan 10 16:29:43 2003
+@@ -24,25 +24,25 @@
+
+ - Currently recognized partitions/filesystems types ---------------------
+
+- Modname Typ Description
+- fat 0x01 "Primary DOS with 12 bit FAT"
+- 0x04 "Primary DOS with 16 bit FAT (<= 32MB)"
+- 0x06 "Primary 'big' DOS (> 32MB)"
+- 0x0B "DOS or Windows 95 with 32 bit FAT"
+- 0x0C "DOS or Windows 95 with 32 bit FAT, LBA"
+- ntfs 0x07 "OS/2 HPFS, NTFS, QNX or Advanced UNIX"
+- hpfs 0x07 "OS/2 HPFS, NTFS, QNX or Advanced UNIX"
+- ext2 0x83 "Linux ext2 filesystem"
+- lswap 0x82 "Linux swap"
+- bsddl 0xA5 "FreeBSD/NetBSD/386BSD"
+- s86dl 0x82 "Solaris/x86 disklabel"
+- minix 0x80 "Minix V1"
+- 0x81 "Minix V2"
+- rfs 0x83 "Reiser filesystem"
+- hmlvm 0xFE "Linux LVM physical volumes"
+- qnx4 0x4F "QNX 4.x"
+- beos 0xEB "BeOS fs"
+- xfs 0x83 "SGI XFS filesystem"
++ Modname Typ Description
++ fat 0x01 "Primary DOS with 12 bit FAT"
++ 0x04 "Primary DOS with 16 bit FAT (<= 32MB)"
++ 0x06 "Primary 'big' DOS (> 32MB)"
++ 0x0B "DOS or Windows 95 with 32 bit FAT"
++ 0x0C "DOS or Windows 95 with 32 bit FAT, LBA"
++ ntfs 0x07 "OS/2 HPFS, NTFS, QNX or Advanced UNIX"
++ hpfs 0x07 "OS/2 HPFS, NTFS, QNX or Advanced UNIX"
++ ext2 0x83 "Linux ext2 filesystem"
++ lswap 0x82 "Linux swap"
++ bsddl 0xA5 "FreeBSD/NetBSD/386BSD"
++ s86dl 0x82 "Solaris/x86 disklabel"
++ minix 0x80 "Minix V1"
++ 0x81 "Minix V2"
++ reiserfs 0x83 "ReiserFS filesystem"
++ hmlvm 0xFE "Linux LVM physical volumes"
++ qnx4 0x4F "QNX 4.x"
++ beos 0xEB "BeOS fs"
++ xfs 0x83 "SGI XFS filesystem"
+
+
+
+diff -rupN ./gpart-0.1h.orig/man/gpart.man ./gpart-0.1h/man/gpart.man
+--- ./gpart-0.1h.orig/man/gpart.man Wed Feb 7 20:54:18 2001
++++ ./gpart-0.1h/man/gpart.man Fri Jan 10 16:31:52 2003
+@@ -63,8 +63,8 @@ MS Windows NT/2000 filesystem.
+ .I qnx4
+ QNX 4.x filesystem.
+ .TP
+-.I rfs
+-The Reiser filesystem (version 3.5.X, X > 11).
++.I reiserfs
++The Reiser filesystem (version 3.5.X, X > 11, 3.6.X).
+ .TP
+ .I s86dl
+ Sun Solaris on Intel platforms uses a sub-partitioning
+diff -rupN ./gpart-0.1h.orig/src/Makefile ./gpart-0.1h/src/Makefile
+--- ./gpart-0.1h.orig/src/Makefile Tue Jan 30 20:01:08 2001
++++ ./gpart-0.1h/src/Makefile Fri Jan 10 16:32:24 2003
+@@ -19,7 +19,7 @@ CFLAGS+=-DGPART_LANG=\'$(GPART_LANG)\'
+ endif
+
+
+-mod=ext2 lswap fat bsddl ntfs hpfs s86dl minix rfs hmlvm qnx4 beos xfs
++mod=ext2 lswap fat bsddl ntfs hpfs s86dl minix reiserfs hmlvm qnx4 beos xfs
+ modobj=$(foreach m,$(mod),gm_$(m).o)
+ obj=gpart.o gmodules.o disku.o l64seek.o $(modobj)
+ src=$(obj:.o=.c)
+diff -rupN ./gpart-0.1h.orig/src/gm_reiserfs.c ./gpart-0.1h/src/gm_reiserfs.c
+--- ./gpart-0.1h.orig/src/gm_reiserfs.c Thu Jan 1 03:00:00 1970
++++ ./gpart-0.1h/src/gm_reiserfs.c Fri Jan 10 17:25:30 2003
+@@ -0,0 +1,91 @@
++/*
++ * gm_reiserfs.c -- gpart ReiserFS guessing module
++ *
++ * gpart (c) 1999-2001 Michail Brzitwa <mb@ichabod.han.de>
++ * Guess PC-type hard disk partitions.
++ *
++ * gpart 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.
++ *
++ * Created: 21.01.1999 <mb@ichabod.han.de>
++ * Modified: 26.12.2000 Francis Devereux <francis@devereux.tc>
++ * Added reiserfs 3.5.28 support.
++ * Modified: 10.01.2003 Yury Umanets <umka@namesys.com>
++ * Added reiserfs 3.6.x support.
++ *
++ */
++
++#include <string.h>
++#include <errno.h>
++#include "gpart.h"
++#include "gm_reiserfs.h"
++
++static const char rcsid[] = "$Id: gm_reiserfs.c,v 1.5 2003/01/10 16:38:08 mb Exp mb $";
++
++
++int reiserfs_init(disk_desc *d,g_module *m)
++{
++ if ((d == 0) || (m == 0))
++ return (0);
++
++ m->m_desc = "ReiserFS filesystem";
++ return (REISERFS_FIRST_BLOCK * 1024 + SB_V35_SIZE);
++}
++
++
++
++int reiserfs_term(disk_desc *d)
++{
++ return (1);
++}
++
++
++
++int reiserfs_gfun(disk_desc *d,g_module *m)
++{
++ struct reiserfs_super_block_v35 *sb;
++ dos_part_entry *pt = &m->m_part;
++ s64_t size;
++
++ m->m_guess = GM_NO;
++ sb = (struct reiserfs_super_blockv35 *)(d->d_sbuf + REISERFS_FIRST_BLOCK * 1024);
++ if (strncmp(sb->s_magic,REISERFS_SUPER_V35_MAGIC,12) == 0 ||
++ strncmp(sb->s_magic,REISERFS_SUPER_V36_MAGIC,12) == 0)
++ {
++ /*
++ * sanity checks.
++ */
++
++ if (sb->s_block_count < sb->s_free_blocks)
++ return (1);
++
++ if (sb->s_block_count < REISERFS_MIN_BLOCK_AMOUNT)
++ return (1);
++
++ if ((sb->s_state != REISERFS_VALID_FS) &&
++ (sb->s_state != REISERFS_ERROR_FS))
++ return (1);
++
++ if (sb->s_oid_maxsize % 2) /* must be even */
++ return (1);
++
++ if (sb->s_oid_maxsize < sb->s_oid_cursize)
++ return (1);
++
++ if ((sb->s_blocksize != 4096) && (sb->s_blocksize != 8192))
++ return (1);
++
++ /*
++ * ok.
++ */
++
++ m->m_guess = GM_YES;
++ pt->p_start = d->d_nsb;
++ size = sb->s_block_count; size *= sb->s_blocksize; size /= d->d_ssize;
++ pt->p_size = (unsigned long)size;
++ pt->p_typ = 0x83;
++ }
++ return (1);
++}
+diff -rupN ./gpart-0.1h.orig/src/gm_reiserfs.h ./gpart-0.1h/src/gm_reiserfs.h
+--- ./gpart-0.1h.orig/src/gm_reiserfs.h Thu Jan 1 03:00:00 1970
++++ ./gpart-0.1h/src/gm_reiserfs.h Fri Jan 10 17:25:55 2003
+@@ -0,0 +1,82 @@
++/*
++ * gm_reiserfs.h -- gpart ReiserFS guessing module header
++ *
++ * gpart (c) 1999-2001 Michail Brzitwa <mb@ichabod.han.de>
++ * Guess PC-type hard disk partitions.
++ *
++ * gpart 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.
++ *
++ * Created: 21.01.1999 <mb@ichabod.han.de>
++ * Modified: 26.12.2000 Francis Devereux <francis@devereux.tc>
++ * Update support reiserfs version 3.5.28
++ * Modified: 10.01.2003 Yury Umanets <umka@namesys.com>
++ * Added reiserfs 3.6.x support.
++ *
++ */
++
++#ifndef _GM_reiserfs_H
++#define _GM_reiserfs_H
++
++/* imported from asm/types.h */
++typedef __signed__ char __s8;
++typedef unsigned char __u8;
++
++typedef __signed__ short __s16;
++typedef unsigned short __u16;
++
++typedef __signed__ int __s32;
++typedef unsigned int __u32;
++
++/*
++ * taken from ReiserFS v3.5.28, v3.6.x. Reiserfs Copyright 1996-2000 Hans Reiser
++ */
++
++#define REISERFS_SUPER_V35_MAGIC "ReIsErFs"
++#define REISERFS_SUPER_V36_MAGIC "ReIsEr2Fs"
++
++#define REISERFS_FIRST_BLOCK 64
++#define REISERFS_VALID_FS 1
++#define REISERFS_ERROR_FS 2
++#define REISERFS_MIN_BLOCK_AMOUNT 100
++
++struct reiserfs_super_block_v35
++{
++ __u32 s_block_count; /* blocks count */
++ __u32 s_free_blocks; /* free blocks count */
++ __u32 s_root_block; /* root block number */
++ __u32 s_journal_block; /* journal block number */
++ __u32 s_journal_dev; /* journal device number */
++ __u32 s_orig_journal_size; /* size of the journal on FS creation. used to make sure they don't overflow it */
++ __u32 s_journal_trans_max; /* max number of blocks in a transaction. */
++ __u32 s_journal_block_count; /* total size of the journal. can change over time */
++ __u32 s_journal_max_batch; /* max number of blocks to batch into a trans */
++ __u32 s_journal_max_commit_age; /* in seconds, how old can an async commit be */
++ __u32 s_journal_max_trans_age; /* in seconds, how old can a transaction be */
++ __u16 s_blocksize; /* block size */
++ __u16 s_oid_maxsize; /* max size of object id array, see get_objectid() commentary */
++ __u16 s_oid_cursize; /* current size of object id array */
++ __u16 s_state; /* valid or error */
++ char s_magic[12]; /* reiserfs magic string indicates that file system is reiserfs */
++ __u32 s_hash_function_code; /* indicate, what hash fuction is being use to sort names in a directory*/
++ __u16 s_tree_height; /* height of disk tree */
++ __u16 s_bmap_nr; /* amount of bitmap blocks needed to address each block of file system */
++ __u16 s_reserved;
++};
++
++#define SB_V35_SIZE (sizeof(struct reiserfs_super_block_v35))
++
++struct reiserfs_super_block_v36 {
++ struct reiserfs_super_block_v35 s_v35;
++ __u32 s_inode_generation;
++ __u32 s_flags;
++ char s_uuid[16];
++ char s_label[16];
++ char s_unused[88];
++};
++
++#define SB_V36_SIZE (sizeof(struct reiserfs_super_block_v36))
++
++#endif /* _GM_REISERFS_H */
+diff -rupN ./gpart-0.1h.orig/src/gm_rfs.c ./gpart-0.1h/src/gm_rfs.c
+--- ./gpart-0.1h.orig/src/gm_rfs.c Wed Feb 7 21:08:08 2001
++++ ./gpart-0.1h/src/gm_rfs.c Thu Jan 1 03:00:00 1970
+@@ -1,88 +0,0 @@
+-/*
+- * gm_rfs.c -- gpart ReiserFS guessing module
+- *
+- * gpart (c) 1999-2001 Michail Brzitwa <mb@ichabod.han.de>
+- * Guess PC-type hard disk partitions.
+- *
+- * gpart 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.
+- *
+- * Created: 21.01.1999 <mb@ichabod.han.de>
+- * Modified: 26.12.2000 Francis Devereux <francis@devereux.tc>
+- * Added reiserfs 3.5.28 support.
+- *
+- */
+-
+-#include <string.h>
+-#include <errno.h>
+-#include "gpart.h"
+-#include "gm_rfs.h"
+-
+-static const char rcsid[] = "$Id: gm_rfs.c,v 1.5 2001/02/07 18:08:08 mb Exp mb $";
+-
+-
+-int rfs_init(disk_desc *d,g_module *m)
+-{
+- if ((d == 0) || (m == 0))
+- return (0);
+-
+- m->m_desc = "Reiser filesystem";
+- return (REISERFS_FIRST_BLOCK * 1024 + SB_SIZE);
+-}
+-
+-
+-
+-int rfs_term(disk_desc *d)
+-{
+- return (1);
+-}
+-
+-
+-
+-int rfs_gfun(disk_desc *d,g_module *m)
+-{
+- struct reiserfs_super_block *sb;
+- dos_part_entry *pt = &m->m_part;
+- s64_t size;
+-
+- m->m_guess = GM_NO;
+- sb = (struct reiserfs_super_block *)(d->d_sbuf + REISERFS_FIRST_BLOCK * 1024);
+- if (strncmp(sb->s_magic,REISERFS_SUPER_MAGIC,12) == 0)
+- {
+- /*
+- * sanity checks.
+- */
+-
+- if (sb->s_block_count < sb->s_free_blocks)
+- return (1);
+-
+- if (sb->s_block_count < REISERFS_MIN_BLOCK_AMOUNT)
+- return (1);
+-
+- if ((sb->s_state != REISERFS_VALID_FS) &&
+- (sb->s_state != REISERFS_ERROR_FS))
+- return (1);
+-
+- if (sb->s_oid_maxsize % 2) /* must be even */
+- return (1);
+-
+- if (sb->s_oid_maxsize < sb->s_oid_cursize)
+- return (1);
+-
+- if ((sb->s_blocksize != 4096) && (sb->s_blocksize != 8192))
+- return (1);
+-
+- /*
+- * ok.
+- */
+-
+- m->m_guess = GM_YES;
+- pt->p_start = d->d_nsb;
+- size = sb->s_block_count; size *= sb->s_blocksize; size /= d->d_ssize;
+- pt->p_size = (unsigned long)size;
+- pt->p_typ = 0x83;
+- }
+- return (1);
+-}
+diff -rupN ./gpart-0.1h.orig/src/gm_rfs.h ./gpart-0.1h/src/gm_rfs.h
+--- ./gpart-0.1h.orig/src/gm_rfs.h Mon Jan 29 16:34:35 2001
++++ ./gpart-0.1h/src/gm_rfs.h Thu Jan 1 03:00:00 1970
+@@ -1,68 +0,0 @@
+-/*
+- * gm_rfs.h -- gpart ReiserFS guessing module header
+- *
+- * gpart (c) 1999-2001 Michail Brzitwa <mb@ichabod.han.de>
+- * Guess PC-type hard disk partitions.
+- *
+- * gpart 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.
+- *
+- * Created: 21.01.1999 <mb@ichabod.han.de>
+- * Modified: 26.12.2000 Francis Devereux <francis@devereux.tc>
+- * Update support reiserfs version 3.5.28
+- *
+- */
+-
+-#ifndef _GM_RFS_H
+-#define _GM_RFS_H
+-
+-/* imported from asm/types.h */
+-typedef __signed__ char __s8;
+-typedef unsigned char __u8;
+-
+-typedef __signed__ short __s16;
+-typedef unsigned short __u16;
+-
+-typedef __signed__ int __s32;
+-typedef unsigned int __u32;
+-
+-/*
+- * taken from ReiserFS v3.5.28. Reiserfs Copyright 1996-2000 Hans Reiser
+- */
+-
+-#define REISERFS_SUPER_MAGIC "ReIsErFs"
+-#define REISERFS_FIRST_BLOCK 64
+-#define REISERFS_VALID_FS 1
+-#define REISERFS_ERROR_FS 2
+-#define REISERFS_MIN_BLOCK_AMOUNT 100
+-
+-struct reiserfs_super_block
+-{
+- __u32 s_block_count; /* blocks count */
+- __u32 s_free_blocks; /* free blocks count */
+- __u32 s_root_block; /* root block number */
+- __u32 s_journal_block; /* journal block number */
+- __u32 s_journal_dev; /* journal device number */
+- __u32 s_orig_journal_size; /* size of the journal on FS creation. used to make sure they don't overflow it */
+- __u32 s_journal_trans_max; /* max number of blocks in a transaction. */
+- __u32 s_journal_block_count; /* total size of the journal. can change over time */
+- __u32 s_journal_max_batch; /* max number of blocks to batch into a trans */
+- __u32 s_journal_max_commit_age; /* in seconds, how old can an async commit be */
+- __u32 s_journal_max_trans_age; /* in seconds, how old can a transaction be */
+- __u16 s_blocksize; /* block size */
+- __u16 s_oid_maxsize; /* max size of object id array, see get_objectid() commentary */
+- __u16 s_oid_cursize; /* current size of object id array */
+- __u16 s_state; /* valid or error */
+- char s_magic[12]; /* reiserfs magic string indicates that file system is reiserfs */
+- __u32 s_hash_function_code; /* indicate, what hash fuction is being use to sort names in a directory*/
+- __u16 s_tree_height; /* height of disk tree */
+- __u16 s_bmap_nr; /* amount of bitmap blocks needed to address each block of file system */
+- __u16 s_reserved;
+-};
+-
+-#define SB_SIZE (sizeof(struct reiserfs_super_block))
+-
+-
+-#endif /* _GM_RFS_H */
+diff -rupN ./gpart-0.1h.orig/src/gmodules.c ./gpart-0.1h/src/gmodules.c
+--- ./gpart-0.1h.orig/src/gmodules.c Tue Jan 30 20:01:00 2001
++++ ./gpart-0.1h/src/gmodules.c Fri Jan 10 16:31:28 2003
+@@ -154,7 +154,7 @@ void g_mod_addinternals()
+ GMODINS(bsddl);
+ GMODINS(lswap);
+ GMODINS(qnx4);
+- GMODINS(rfs);
++ GMODINS(reiserfs);
+ GMODINS(ntfs);
+ GMODINS(hpfs);
+ GMODINS(minix);
+diff -rupN ./gpart-0.1h.orig/src/gmodules.h ./gpart-0.1h/src/gmodules.h
+--- ./gpart-0.1h.orig/src/gmodules.h Tue Jan 30 20:00:47 2001
++++ ./gpart-0.1h/src/gmodules.h Fri Jan 10 16:31:23 2003
+@@ -63,7 +63,7 @@ g_module *g_mod_setweight(char *,float);
+
+ GMODDECL(bsddl); GMODDECL(ext2); GMODDECL(fat);
+ GMODDECL(hpfs); GMODDECL(lswap); GMODDECL(ntfs);
+-GMODDECL(s86dl); GMODDECL(minix); GMODDECL(rfs);
++GMODDECL(s86dl); GMODDECL(minix); GMODDECL(reiserfs);
+ GMODDECL(hmlvm); GMODDECL(qnx4); GMODDECL(beos);
+ GMODDECL(xfs);
+
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..3109c2cc4
--- /dev/null
+++ b/extra/gparted/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 141724 2011-11-02 15:23:08Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=gparted
+pkgver=0.10.0
+pkgrel=1
+pkgdesc="A Partition Magic clone, frontend to GNU Parted"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gparted.sourceforge.net"
+license=('GPL')
+depends=('parted' 'gtkmm' 'libsigc++')
+makedepends=('intltool' 'pkg-config' 'gnome-doc-utils')
+optdepends=('dosfstools: for FAT16 and FAT32 partitions'
+ 'jfsutils: for jfs partitions'
+ 'ntfsprogs: for ntfs partitions'
+ 'reiserfsprogs: for reiser partitions'
+ 'xfsprogs: for xfs partitions'
+ 'polkit: to run gparted directly from menu'
+ 'gpart: for recovering corrupt partition tables'
+ 'mtools')
+install=gparted.install
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+ 'org.archlinux.pkexec.gparted.policy')
+md5sums=('d5b339eb5bef7a99ff73f750834b37b9'
+ '27c264cfad8fa413d75954dda7a2dd50')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # Install policy file
+ install -Dm644 "${srcdir}/org.archlinux.pkexec.gparted.policy" "${pkgdir}/usr/share/polkit-1/actions/org.archlinux.pkexec.gparted.policy"
+
+ # Install launcher script
+ mkdir -p ${pkgdir}/usr/bin
+ echo '#!/bin/sh' > ${pkgdir}/usr/bin/gparted-pkexec
+ echo 'pkexec "/usr/sbin/gparted" "$@"' >> ${pkgdir}/usr/bin/gparted-pkexec
+ chmod 755 ${pkgdir}/usr/bin/gparted-pkexec
+
+ # Modify desktop file
+ sed -i -e "s/Exec=.*/Exec=gparted-pkexec/" ${pkgdir}/usr/share/applications/gparted.desktop
+}
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/gparted/org.archlinux.pkexec.gparted.policy b/extra/gparted/org.archlinux.pkexec.gparted.policy
new file mode 100644
index 000000000..561cd7d1e
--- /dev/null
+++ b/extra/gparted/org.archlinux.pkexec.gparted.policy
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC
+ "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <action id="org.archlinux.pkexec.gparted">
+ <message>Authentication is required to run the GParted Partition Editor</message>
+ <icon_name>gparted</icon_name>
+ <defaults>
+ <allow_any>auth_admin</allow_any>
+ <allow_inactive>auth_admin</allow_inactive>
+ <allow_active>auth_admin</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gparted</annotate>
+ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
+ </action>
+
+</policyconfig>
+
diff --git a/extra/gperf/PKGBUILD b/extra/gperf/PKGBUILD
new file mode 100644
index 000000000..b16444458
--- /dev/null
+++ b/extra/gperf/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 140657 2011-10-17 19:09:57Z andrea $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gperf
+pkgver=3.0.4
+pkgrel=4.1
+pkgdesc="Perfect hash function generator"
+arch=('x86_64' 'i686' 'mips64el')
+url="http://www.gnu.org/software/gperf/"
+license=('GPL3')
+depends=('gcc-libs' 'texinfo')
+install=gperf.install
+source=("http://ftp.gnu.org/pub/gnu/gperf/${pkgname}-${pkgver}.tar.gz"{,.sig})
+sha1sums=('e32d4aff8f0c730c9a56554377b2c6d82d0951b8'
+ '85b8c44964a70a63d751afa5906796a0417e64ce')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --docdir=/usr/share/gperf/doc/
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gperf/gperf.install b/extra/gperf/gperf.install
new file mode 100644
index 000000000..90ac2a86d
--- /dev/null
+++ b/extra/gperf/gperf.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file=gperf.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/gpgme/PKGBUILD b/extra/gpgme/PKGBUILD
new file mode 100644
index 000000000..4b3767af5
--- /dev/null
+++ b/extra/gpgme/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 131247 2011-07-12 07:42:52Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gpgme
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="A C wrapper library for GnuPG"
+arch=('i686' 'x86_64' 'mips64el')
+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.bz2)
+
+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/*
+}
+md5sums=('90afa8436ce2b2683c001c824bd22601')
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..88de2bc72
--- /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 'mips64el')
+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/PKGBUILD b/extra/gpsd/PKGBUILD
new file mode 100644
index 000000000..6a15d34cf
--- /dev/null
+++ b/extra/gpsd/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 142040 2011-11-04 20:43:48Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Giacomo Rizzo <alt@free-os.it>
+
+pkgname=gpsd
+pkgver=3.3
+pkgrel=1
+pkgdesc="GPS daemon and library to support USB/serial GPS devices"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://catb.org/gpsd/"
+license=('BSD')
+depends=('python2' 'libusb' 'bluez' 'desktop-file-utils')
+optdepends=('php: generate a PHP status page for your GPS'
+ 'php-gd: image support for the PHP status page'
+ 'pygtk: GUI frontends')
+makedepends=('scons' 'docbook-xsl' 'chrpath')
+backup=('etc/conf.d/gpsd' 'lib/udev/rules.d/99-gpsd-usb.rules')
+options=('!libtool')
+install="${pkgname}.install"
+source=("http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig}
+ 'gpsd' 'gpsd.conf.d')
+md5sums=('4cfdcfd88e925f4d0d6c2272fc573ab5'
+ '90086315ed6f266748b9acb338b903a5'
+ '1f3402f8e33a7032b9ae6dfd077234f7'
+ '3e963df3f9f7ef3572ecc648ae829315')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # fix python 2.7 path
+ 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/env python|/usr/bin/env python2|' gegps \
+ gpscat gpsfake gpsprof xgps xgpsspeed
+
+ scons prefix=/usr \
+ systemd=yes \
+ libQgpsmm=no \
+ PYTHONPATH=/usr/bin/python2
+ scons build
+}
+
+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
+
+ export DESTDIR="${pkgdir}"
+ scons install
+
+ install -D -m644 "${srcdir}/gpsd.conf.d" "${pkgdir}/etc/conf.d/gpsd"
+
+ 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
+ install -D -m755 gpsd.hotplug "${pkgdir}/lib/udev/gpsd.hotplug"
+
+ # GPSD needs RPATH
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/libgps{,d}.so.20.0.0
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/bin/{gpsdecode,gpsctl,gpspipe,gpxlogger,lcdgps}
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/sbin/{gpsd,gpsdctl}
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/python2.7/site-packages/gps/{clienthelpers,packet}.so
+
+ 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 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/gpsd/gpsd b/extra/gpsd/gpsd
new file mode 100755
index 000000000..b510a7542
--- /dev/null
+++ b/extra/gpsd/gpsd
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/gpsd ] && . /etc/conf.d/gpsd
+
+NAME=gpsd
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/var/run/$NAME/$NAME.pid
+PID=$(cat $PIDFILE 2>/dev/null)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME"
+ [ ! -d /var/run/$NAME ] && install -d /var/run/$NAME
+ [ -z "$PID" ] && "$DAEMON" -P $PIDFILE -F /var/run/$NAME/$NAME.sock ${GPSD_OPTIONS} ${DEVICES}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $NAME
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping $NAME"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f $PIDFILE &>/dev/null
+ rm_daemon $NAME
+ 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.conf.d b/extra/gpsd/gpsd.conf.d
new file mode 100644
index 000000000..9fef72cb9
--- /dev/null
+++ b/extra/gpsd/gpsd.conf.d
@@ -0,0 +1,5 @@
+# Default settings for gpsd.
+START_DAEMON="true"
+GPSD_OPTIONS=""
+DEVICES=""
+USBAUTO="true"
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..c5de2f9fe
--- /dev/null
+++ b/extra/gptfdisk/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 139468 2011-10-02 00:35:06Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Hokum <hokum_at_mail_dot_ru>
+
+pkgname=gptfdisk
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="A text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.rodsbooks.com/gdisk/"
+license=('GPL2')
+depends=('gcc-libs' 'util-linux' 'popt' 'icu')
+provides=("gdisk=$pkgver")
+conflicts=('gdisk')
+replaces=('gdisk')
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+sha1sums=('3285608c8c3087040d3bec9db1b287fae3cfc4c1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+}
+
+package () {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -d "$pkgdir"/{sbin,usr/share/{doc/gdisk,man/man8}}
+ install -t "$pkgdir/sbin" {,c,s}gdisk fixparts
+ install -m644 -t "$pkgdir/usr/share/man/man8" {{,c,s}gdisk,fixparts}.8
+ install -m644 -t "$pkgdir/usr/share/doc/gdisk" README NEWS
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gqview/PKGBUILD b/extra/gqview/PKGBUILD
new file mode 100644
index 000000000..d79f3ac79
--- /dev/null
+++ b/extra/gqview/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 138174 2011-09-18 07:14:08Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=gqview
+pkgver=2.0.4
+pkgrel=4
+pkgdesc="An image browser and viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gqview.sourceforge.net/"
+license=('GPL')
+depends=('gtk2' 'desktop-file-utils')
+install=gqview.install
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gqview/gqview.install b/extra/gqview/gqview.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/extra/gqview/gqview.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/grantlee/PKGBUILD b/extra/grantlee/PKGBUILD
new file mode 100644
index 000000000..c71f63ce3
--- /dev/null
+++ b/extra/grantlee/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142010 2011-11-03 23:27:16Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=grantlee
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="A string template engine based on the Django template system and written in Qt"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gitorious.org/grantlee/pages/Home"
+license=('LGPL3')
+depends=('qt')
+makedepends=('cmake')
+source=("http://downloads.grantlee.org/${pkgname}-${pkgver}.tar.gz")
+md5sums=('0622ed30630a44b5fac0bfa7e176d3fe')
+
+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..5a6aa519b
--- /dev/null
+++ b/extra/graphicsmagick/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 130047 2011-07-01 15:56:21Z 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=2
+pkgdesc="Image processing system"
+arch=('i686' 'x86_64' 'mips64el')
+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..fab274a09
--- /dev/null
+++ b/extra/graphite/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 142675 2011-11-12 18:27:50Z ibiru $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=graphite
+pkgver=1.0.3
+pkgrel=1
+epoch=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://graphite.sil.org/"
+pkgdesc='reimplementation of the SIL Graphite text processing engine'
+license=('custom_SIL Dual license')
+depends=('gcc-libs')
+makedepends=('cmake' 'freetype2')
+options=('!libtool' '!emptydirs')
+source=("http://downloads.sourceforge.net/project/silgraphite/graphite2/graphite2-${pkgver}.tgz")
+md5sums=('3bf481ca95109b14435125c0dd1f2217')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake -G "Unix Makefiles" ../graphite2-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}"/build
+ ctest
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="$pkgdir/" install
+
+ # licenses
+ mkdir -p "${pkgdir}"/usr/share/licenses/${pkgname}
+ install -m644 "${srcdir}"/graphite2-${pkgver}/COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/
+}
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..2403354bf
--- /dev/null
+++ b/extra/graphviz/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 144296 2011-12-04 10:42:58Z bisson $
+
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: kevin <kevin@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=graphviz
+pkgver=2.28.0
+pkgrel=6
+pkgdesc='Graph visualization software'
+url='http://www.graphviz.org/'
+license=('custom:EPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libltdl' 'gd' 'librsvg' 'libxaw' 'ghostscript' 'pango' 'gts')
+makedepends=('swig' 'mono' 'guile' 'lua' 'ocaml' 'perl' 'php' 'python2' 'r' 'ruby' 'tk' 'qt')
+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'
+ 'qt: gvedit')
+source=("${url}/pub/${pkgname}/stable/SOURCES/${pkgname}-${pkgver}.tar.gz"
+ 'LICENSE')
+sha1sums=('4725d88a13e071ee22e632de551d4a55ca08ee7d'
+ '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..65fba522b
--- /dev/null
+++ b/extra/graphviz/install
@@ -0,0 +1,12 @@
+post_install() {
+ rm -f usr/lib/graphviz/config{,6}
+ usr/bin/dot -c
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/graphviz/config{,6}
+}
diff --git a/extra/grilo-plugins/PKGBUILD b/extra/grilo-plugins/PKGBUILD
new file mode 100644
index 000000000..95d13fa3f
--- /dev/null
+++ b/extra/grilo-plugins/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 144927 2011-12-10 21:25:05Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=grilo-plugins
+pkgver=0.1.18
+pkgrel=1
+pkgdesc="Plugins for Grilo"
+url="http://www.gnome.org"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('grilo')
+makedepends=('gupnp-av' 'libgdata' 'libquvi' 'sqlite3' 'gmime' 'libgcrypt'
+ 'rest' 'libtracker-sparql')
+optdepends=('gupnp-av: uPnP plugin'
+ 'libgdata: Youtube plugin'
+ 'libquvi: Youtube plugin'
+ 'sqlite3: Podcasts plugin'
+ 'gmime: Podcasts plugin'
+ 'sqlite3: Bookmarks plugin'
+ 'sqlite3: Metadata store plugin'
+ 'libgcrypt: Vimeo plugin'
+ 'rest: Blip.tv plugin'
+ 'libtracker-sparql: Tracker plugin')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('7e382f402119f4f270380627a2f49b30a6c43a47ecd645bf5ffe4e0cd99a1c79')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --enable-shoutcast
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/grilo/PKGBUILD b/extra/grilo/PKGBUILD
new file mode 100644
index 000000000..b1b19646b
--- /dev/null
+++ b/extra/grilo/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144926 2011-12-10 21:23:58Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=grilo
+pkgver=0.1.18
+pkgrel=1
+pkgdesc="Framework that provides access to various sources of multimedia content"
+url="http://www.gnome.org"
+arch=(mips64el)
+license=('LGPL')
+depends=('gtk3' 'libxml2' 'libsoup')
+makedepends=('gobject-introspection' 'gtk-doc' 'vala')
+optdepends=('grilo-plugins: Plugins for grilo')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('dc5bc1ea74ed3d47c4ec2d94886234346671509bdc63ce181f98824e7178ae83')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/grip/PKGBUILD b/extra/grip/PKGBUILD
new file mode 100644
index 000000000..d12cfc08c
--- /dev/null
+++ b/extra/grip/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137616 2011-09-10 05:34:08Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Todd Musall <tmusall@comcast.net>
+
+pkgname=grip
+pkgver=3.3.1
+pkgrel=9
+pkgdesc="A cd-player and ripper for the Gnome desktop"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://nostatic.org/grip/"
+depends=('vte' 'curl' 'libgnomeui' 'id3lib' 'cdparanoia')
+optdepends=('yelp: to display the help and notices')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz \
+ grip-3.3.1-invalid-genre-size.patch)
+md5sums=('4b4233999b9f2bc85c711092553ea9aa'
+ '046448be7d1580e86a2211cd8661d855')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/grip-3.3.1-invalid-genre-size.patch"
+ sed -i '/[.] conftest[.]id3/s: c: ./c:' configure
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/grip/grip-3.3.1-invalid-genre-size.patch b/extra/grip/grip-3.3.1-invalid-genre-size.patch
new file mode 100644
index 000000000..c826fc6e2
--- /dev/null
+++ b/extra/grip/grip-3.3.1-invalid-genre-size.patch
@@ -0,0 +1,30 @@
+http://bugs.gentoo.org/285105
+
+--- grip-3.3.1/src/id3.c
++++ grip-3.3.1/src/id3.c
+@@ -252,8 +252,8 @@
+
+ if ( frames[ i ] ) {
+ char *c_data = NULL;
+- char gen[ 5 ] = "( )";
+- char trk[ 4 ] = " ";
++ char gen[ 6 ] = "( )"; /* max unsigned char: 255 */
++ char trk[ 3 ] = " "; /* max CDDA tracks: 99 */
+
+ switch( frameids[ i ] ) {
+ case ID3FID_TITLE:
+@@ -278,12 +278,12 @@
+
+ case ID3FID_CONTENTTYPE:
+ c_data = gen;
+- sprintf( gen, "(%d)", genre ); /* XXX */
++ snprintf( gen, 6, "(%d)", genre );
+ break;
+
+ case ID3FID_TRACKNUM:
+ c_data = trk;
+- sprintf( trk, "%d", tracknum ); /* XXX */
++ snprintf( trk, 3, "%d", tracknum );
+ break;
+
+ default:
diff --git a/extra/gsl/PKGBUILD b/extra/gsl/PKGBUILD
new file mode 100644
index 000000000..228d50dd8
--- /dev/null
+++ b/extra/gsl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 131001 2011-07-09 12:31:33Z 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.15
+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' 'mips64el')
+depends=('glibc' 'bash')
+options=('!libtool')
+sha1sums=('d914f84b39a5274b0a589d9b83a66f44cd17ca8e')
+
+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..b95d4f4e5
--- /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' 'mips64el')
+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/gssdp/PKGBUILD b/extra/gssdp/PKGBUILD
new file mode 100644
index 000000000..2ea27fe5a
--- /dev/null
+++ b/extra/gssdp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 139610 2011-10-03 19:05:04Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=gssdp
+pkgver=0.12.0
+pkgrel=1
+pkgdesc="A GObject-based API for handling resource discovery and announcement over SSDP"
+arch=(mips64el)
+url="http://gupnp.org/"
+license=('LGPL')
+depends=('libsoup')
+makedepends=('gobject-introspection' 'gtk2' 'gtk-doc')
+optdepends=('gtk2: gssdp-device-sniffer')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('7f02903989b4ac7cfb7508898706a5b4a01c9ace2f6345bd96bf8a3faa30ae1a')
+
+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/gstreamer0.10-base/PKGBUILD b/extra/gstreamer0.10-base/PKGBUILD
new file mode 100644
index 000000000..d88467e7b
--- /dev/null
+++ b/extra/gstreamer0.10-base/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 135097 2011-08-10 09:35:11Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=('gstreamer0.10-base')
+pkgname=('gstreamer0.10-base' 'gstreamer0.10-base-plugins')
+pkgver=0.10.35
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+makedepends=('pkgconfig' 'gstreamer0.10>=0.10.35' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'gobject-introspection')
+options=(!libtool !emptydirs)
+url="http://gstreamer.freedesktop.org/"
+source=(${url}/src/gst-plugins-base/gst-plugins-base-${pkgver}.tar.bz2
+ oggstream-fix-crashes-with-0-byte-vorbis-packets.patch
+ theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch)
+sha256sums=('cd24f01bb5258a1f400bc4f2c212bb7cee9ee23c9ffb80d537a24ef366d17103'
+ '2e9d001dbe0ed598c8e86b0081c6ecdf28a1a6b45ffafc639f5cf52fdf0d467f'
+ '8da16aed8c098251903208cc7ac233b7a9df3f024f78c6970e71f3c2e2bdaa17')
+
+build() {
+ cd "${srcdir}/gst-plugins-base-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch"
+ patch -Np1 -i "${srcdir}/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch"
+
+ 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.35' 'orc' 'libxv')
+
+ 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-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch b/extra/gstreamer0.10-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch
new file mode 100644
index 000000000..8ba4c8ed3
--- /dev/null
+++ b/extra/gstreamer0.10-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch
@@ -0,0 +1,22 @@
+From 8bd3bdaf3768b3fb6adc85b3bc681fdce07b786e Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147@gmail.com>
+Date: Wed, 03 Aug 2011 08:18:29 +0000
+Subject: oggstream: Fix crashes with 0-byte vorbis packets
+
+Fixes bug #655574.
+---
+diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c
+index e843f48..77f39d4 100644
+--- a/ext/ogg/gstoggstream.c
++++ b/ext/ogg/gstoggstream.c
+@@ -792,7 +792,7 @@ packet_duration_vorbis (GstOggStream * pad, ogg_packet * packet)
+ int size;
+ int duration;
+
+- if (packet->packet[0] & 1)
++ if (packet->bytes == 0 || packet->packet[0] & 1)
+ return 0;
+
+ mode = (packet->packet[0] >> 1) & ((1 << pad->vorbis_log2_num_modes) - 1);
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch b/extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch
new file mode 100644
index 000000000..b9883d407
--- /dev/null
+++ b/extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch
@@ -0,0 +1,21 @@
+From 7d22d91fca6b9f24ca205eef98031f1ed6a44d33 Mon Sep 17 00:00:00 2001
+From: Philip Jägenstedt <philipj@opera.com>
+Date: Tue, 26 Jul 2011 14:10:17 +0000
+Subject: theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+
+---
+diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
+index 96e12ee..25d68db 100644
+--- a/ext/theora/gsttheoradec.c
++++ b/ext/theora/gsttheoradec.c
+@@ -1440,7 +1440,7 @@ theora_dec_chain_reverse (GstTheoraDec * dec, gboolean discont, GstBuffer * buf)
+
+ /* if we copied a keyframe, flush and decode the decode queue */
+ data = GST_BUFFER_DATA (gbuf);
+- if ((data[0] & 0x40) == 0) {
++ if (data && (data[0] & 0x40) == 0) {
+ GST_DEBUG_OBJECT (dec, "copied keyframe");
+ res = theora_dec_flush_decode (dec);
+ }
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/gstreamer0.10-ffmpeg/PKGBUILD b/extra/gstreamer0.10-ffmpeg/PKGBUILD
new file mode 100644
index 000000000..a5f6db925
--- /dev/null
+++ b/extra/gstreamer0.10-ffmpeg/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 138452 2011-09-23 18:40:52Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gstreamer0.10-ffmpeg
+pkgver=0.10.12
+pkgrel=1
+pkgdesc="Gstreamer FFMpeg Plugin"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('gstreamer0.10-base' 'bzip2')
+makedepends=('pkgconfig' 'yasm' 'sdl')
+url="http://www.gstreamer.net"
+groups=('gstreamer0.10-plugins')
+options=('!libtool')
+source=(http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-${pkgver}.tar.bz2)
+sha256sums=('b17707102b4bfa5e0d5095be3608ee2d4388268eab822c9a0ce7a18011bdd73b')
+
+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
+}
+
+package() {
+ cd "${srcdir}/gst-ffmpeg-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gstreamer0.10-good/PKGBUILD b/extra/gstreamer0.10-good/PKGBUILD
new file mode 100644
index 000000000..c24fdca2f
--- /dev/null
+++ b/extra/gstreamer0.10-good/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 135102 2011-08-10 09:44:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gstreamer0.10-good
+pkgname=('gstreamer0.10-good' 'gstreamer0.10-good-plugins')
+pkgver=0.10.30
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+makedepends=('intltool' 'pkgconfig' 'gstreamer0.10-base>=0.10.34' 'libavc1394' 'libiec61883' 'aalib' 'libshout' 'libdv' 'flac' 'gconf' 'wavpack' 'taglib' 'libsoup-gnome' 'v4l-utils' 'libcaca' 'bzip2' 'gdk-pixbuf2' 'libpulse' 'jack' 'udev')
+url="http://gstreamer.freedesktop.org/"
+options=(!libtool !emptydirs)
+source=(${url}/src/gst-plugins-good/gst-plugins-good-${pkgver}.tar.bz2)
+sha256sums=('b12cba90b27d8423cd0a808939098d19db3996cfb9bf528507c6321782e095f6')
+
+build() {
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --disable-schemas-install \
+ --disable-hal \
+ --disable-esd \
+ --with-package-name="GStreamer Good Plugins (Parabola)" \
+ --with-package-origin="https://parabolagnulinux.org/"
+
+ make
+ sed -e 's/gst sys ext/gst/' -i Makefile
+}
+
+package_gstreamer0.10-good() {
+ depends=('gstreamer0.10-base>=0.10.34' 'bzip2')
+ pkgdesc="GStreamer Multimedia Framework Good plugin libraries"
+
+ 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' 'flac' 'gconf' 'wavpack' 'taglib' 'libsoup-gnome' 'v4l-utils' 'libcaca' 'libpng' 'libjpeg' 'jack' 'libpulse' 'udev')
+ 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
+ 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"
+}
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..610483475
--- /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' 'mips64el')
+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..080217834
--- /dev/null
+++ b/extra/gstreamer0.10-ugly/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142666 2011-11-12 17:45:39Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gstreamer0.10-ugly
+pkgname=('gstreamer0.10-ugly' 'gstreamer0.10-ugly-plugins')
+pkgver=0.10.18
+pkgrel=4
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.34' '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=('04a7009a4efea2844075949c111f5e4d')
+
+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.34')
+
+ 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..e7498d2be
--- /dev/null
+++ b/extra/gstreamer0.10/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 134230 2011-08-02 16:10:38Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gstreamer0.10
+pkgver=0.10.35
+pkgrel=1
+pkgdesc="GStreamer Multimedia Framework"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('libxml2' 'glib2')
+optdepends=('sh: feedback script')
+makedepends=('intltool' 'pkgconfig' 'gtk-doc' 'gobject-introspection')
+options=('!libtool')
+source=(${url}/src/gstreamer/gstreamer-${pkgver}.tar.bz2)
+sha256sums=('817bfea2cd46e2487b97e2ed9218f0299b32a3de1e5e80b4c7868d17e9089786')
+
+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
+}
+
+check() {
+ cd "${srcdir}/gstreamer-${pkgver}"
+ make check
+}
+
+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..49ff79d86
--- /dev/null
+++ b/extra/gthumb/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144352 2011-12-04 23:08:08Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gthumb
+pkgver=2.14.1
+pkgrel=1
+pkgdesc="Image browser and viewer for the GNOME Desktop"
+arch=(i686 x86_64 'mips64el')
+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')
+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.xz)
+sha256sums=('002a6611112273189348871ff7c717fb3c776f5570656389e3d6c5b26bffa11f')
+
+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..d9b0c8f79
--- /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 'mips64el')
+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..7d7f5629a
--- /dev/null
+++ b/extra/gtk-qt-engine/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143698 2011-11-28 13:17:55Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jake VanderKolk <jakevanderkolk@gmail.com>
+
+pkgname=gtk-qt-engine
+pkgver=1.1
+pkgrel=3
+pkgdesc="A GTK engine which makes your GTK2 Apps match your QT theme"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://code.google.com/p/gtk-qt-engine/"
+depends=('libbonoboui' 'kdelibs')
+makedepends=('cmake' '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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtk-sharp-2/PKGBUILD b/extra/gtk-sharp-2/PKGBUILD
new file mode 100644
index 000000000..559d96c43
--- /dev/null
+++ b/extra/gtk-sharp-2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142257 2011-11-07 12:49:15Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+
+pkgname=gtk-sharp-2
+pkgver=2.12.11
+pkgrel=1
+pkgdesc="gtk2 bindings for C#"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+url="http://gtk-sharp.sourceforge.net"
+depends=('mono' 'libglade' 'gtk2')
+makedepends=('pkgconfig' 'monodoc')
+conflicts=('gtk#')
+options=('!libtool' '!makeflags')
+source=(http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-${pkgver}.tar.bz2)
+md5sums=('c278da6a472c6c13b698af012f543c64')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${srcdir}/wapi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/gtk-sharp-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk-sharp-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtk-vnc/PKGBUILD b/extra/gtk-vnc/PKGBUILD
new file mode 100644
index 000000000..a962a152b
--- /dev/null
+++ b/extra/gtk-vnc/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142786 2011-11-15 06:28:23Z eric $
+# 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.4
+pkgrel=1
+pkgdesc="A VNC viewer widget for GTK"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/gtk-vnc"
+license=('LGPL')
+depends=('libgcrypt' 'gtk3')
+optdepends=('gtk2: GTK2 widget')
+makedepends=('intltool' 'pygtk' 'pygobject2-devel' 'gtk-doc' 'gtk2' 'vala' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('c93fdb53c78b52a1cfa067c1a0be0b93d4adfc17ccea1215f20eeab2818308b7')
+
+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/extra/gtk-xfce-engine/PKGBUILD b/extra/gtk-xfce-engine/PKGBUILD
new file mode 100644
index 000000000..27566f053
--- /dev/null
+++ b/extra/gtk-xfce-engine/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 138198 2011-09-18 14:40:18Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=gtk-xfce-engine
+pkgver=2.9.0
+pkgrel=1
+pkgdesc="A port of Xfce engine to GTK+-2.0"
+arch=('i686' 'x86_64' 'mips64el')
+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.9/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e2bc76ab5093ff8472e728e6d6ad5da2')
+sha1sums=('ce0ef1220c98dddabaf7917f8d98579dd65f5009')
+
+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..a2310f25f
--- /dev/null
+++ b/extra/gtk/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 137905 2011-09-12 10:53:48Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gtk
+pkgver=1.2.10
+pkgrel=11
+pkgdesc="The GTK+ toolkit"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+
+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"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-xinput=xfree
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..8758bebc3
--- /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..c76060d9b
--- /dev/null
+++ b/extra/gtk2-perl/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143696 2011-11-28 13:05:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gtk2-perl
+pkgver=1.241
+pkgrel=1
+pkgdesc="Perl bindings for GTK+ 2.x"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('gtk2' 'pango-perl')
+checkdepends=('ttf-dejavu' 'xorg-server-xvfb')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/Gtk2-${pkgver}.tar.gz)
+md5sums=('82ee2af46ef9ab7b560601e3ae6f8f7a')
+
+build() {
+ cd "${srcdir}/Gtk2-${pkgver}"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/Gtk2-${pkgver}"
+ LD_PRELOAD="" Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 :99 &
+ LD_PRELOAD="" DISPLAY=:99 make test
+ kill $!
+}
+
+package() {
+ cd "${srcdir}/Gtk2-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/gtk2/PKGBUILD b/extra/gtk2/PKGBUILD
new file mode 100644
index 000000000..02209a249
--- /dev/null
+++ b/extra/gtk2/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 142844 2011-11-16 23:13:07Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gtk2
+pkgname=('gtk2' 'gtk-update-icon-cache')
+pkgver=2.24.8
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage'
+ '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.xz
+ xid-collision-debug.patch
+ revert-iconview.patch)
+sha256sums=('8a3b29f667933cf52eea2db7b066723edbc80443ca9c75b7cd7cbe8c8b90b93c'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+ '517b3d0797b27324b8fa042ce4b653334ff3b55e48b921de3485505b9ca99fba')
+
+build() {
+ cd "$srcdir/gtk+-$pkgver"
+ patch -Np1 -i "$srcdir/xid-collision-debug.patch"
+ patch -Np1 -i "$srcdir/revert-iconview.patch"
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-xinput=yes
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+ make
+}
+
+package_gtk2() {
+ pkgdesc="GTK+ is a multi-platform toolkit (v2)"
+ install=gtk2.install
+ depends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' '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/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/revert-iconview.patch b/extra/gtk2/revert-iconview.patch
new file mode 100644
index 000000000..e16fc38e3
--- /dev/null
+++ b/extra/gtk2/revert-iconview.patch
@@ -0,0 +1,30 @@
+From 5c3bb1839cac52828756f9ddb98f49d586853991 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc@gnome.org>
+Date: Wed, 16 Nov 2011 22:38:45 +0000
+Subject: Revert "iconview: layout items immediately when setting a GtkTreeModel"
+
+It makes GtkIconView segfault on GTK 2.24.
+
+gtk_icon_view_expose() calls gtk_icon_view_layout() first thing if
+there's a layout queued anyway, so we wouldn't end up in the same
+situation causing the crash the original patch is supposed to fix.
+
+This reverts commit 5a03f4a6a50237d86959f596dda143dfc2f040d1.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=663138
+---
+diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
+index 62877fa..54b3f3b 100644
+--- a/gtk/gtkiconview.c
++++ b/gtk/gtkiconview.c
+@@ -5423,7 +5423,7 @@ gtk_icon_view_set_model (GtkIconView *icon_view,
+
+ gtk_icon_view_build_items (icon_view);
+
+- gtk_icon_view_layout (icon_view);
++ gtk_icon_view_queue_layout (icon_view);
+ }
+
+ g_object_notify (G_OBJECT (icon_view), "model");
+--
+cgit v0.9.0.2
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/gtk3/PKGBUILD b/extra/gtk3/PKGBUILD
new file mode 100644
index 000000000..d120c46b6
--- /dev/null
+++ b/extra/gtk3/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 144950 2011-12-11 21:22:27Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtk3
+pkgver=3.2.2
+pkgrel=4
+pkgdesc="GTK+ is a multi-platform toolkit (v3)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+install=gtk3.install
+depends=('atk' 'cairo' 'gtk-update-icon-cache' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info' 'colord')
+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.2/gtk+-$pkgver.tar.xz
+ settings.ini
+ filechooserdefault_do_not_unref_value_twice.patch
+ moveresize.patch)
+sha256sums=('f7ec82de393cd7ae2aa45022576400941704709d1f0f35fb0b17f3be1f2e7d84'
+ 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621'
+ '0d6b04d5fc12b7c08e0cff4b94d001d5c167a944b72579fb14fd6de2ee4ad9e6'
+ '627f430ccecc95ec61d9a83607469e71e95568c077f7bda849a7fe1c02d0bea7')
+
+build() {
+ cd "$srcdir/gtk+-$pkgver"
+ patch -Np1 -i "$srcdir/filechooserdefault_do_not_unref_value_twice.patch"
+ patch -Np1 -i "$srcdir/moveresize.patch"
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-gtk2-dependency \
+ --disable-schemas-compile
+ #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ 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/extra/gtk3/filechooserdefault_do_not_unref_value_twice.patch b/extra/gtk3/filechooserdefault_do_not_unref_value_twice.patch
new file mode 100644
index 000000000..3a0f8320e
--- /dev/null
+++ b/extra/gtk3/filechooserdefault_do_not_unref_value_twice.patch
@@ -0,0 +1,24 @@
+From aca43f43be3886f1a0befda0178ebb94ea2cf7b1 Mon Sep 17 00:00:00 2001
+From: Benjamin Otte <otte@redhat.com>
+Date: Tue, 29 Nov 2011 19:39:21 +0000
+Subject: filechooserdefault: Don't unref value twice
+
+Double unref was introduced in eb02dacb370e8b4e6ef62328d0c09673b1234b32
+
+https://bugzilla.gnome.org/show_bug.cgi?id=646461
+https://bugzilla.gnome.org/show_bug.cgi?id=664137
+---
+diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
+index e33b91e..a74aacc 100644
+--- a/gtk/gtkfilechooserdefault.c
++++ b/gtk/gtkfilechooserdefault.c
+@@ -10127,7 +10127,6 @@ list_row_activated (GtkTreeView *tree_view,
+ if (is_folder && file)
+ {
+ change_folder_and_display_error (impl, file, FALSE);
+- g_object_unref (file);
+ goto out;
+ }
+
+--
+cgit v0.9.0.2
diff --git a/extra/gtk3/gtk3.install b/extra/gtk3/gtk3.install
new file mode 100644
index 000000000..cd8965d1f
--- /dev/null
+++ b/extra/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/extra/gtk3/moveresize.patch b/extra/gtk3/moveresize.patch
new file mode 100644
index 000000000..a2795fcc8
--- /dev/null
+++ b/extra/gtk3/moveresize.patch
@@ -0,0 +1,47 @@
+From 89c90ed193331d2ee96f323e10aaafd4366f4b0e Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Sat, 10 Dec 2011 02:21:09 +0000
+Subject: Fix move-resize emulation with XI2
+
+https://bugzilla.gnome.org/show_bug.cgi?id=650943
+---
+diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
+index 1ff816e..d48927f 100644
+--- a/gdk/x11/gdkwindow-x11.c
++++ b/gdk/x11/gdkwindow-x11.c
+@@ -4296,6 +4296,33 @@ _gdk_x11_moveresize_handle_event (XEvent *event)
+ if (event->xbutton.button == mv_resize->moveresize_button)
+ finish_drag (mv_resize);
+ break;
++
++#ifdef HAVE_XGENERICEVENTS
++ case GenericEvent:
++ {
++ /* we just assume this is an XI2 event */
++ XIEvent *ev = (XIEvent *) event->xcookie.data;
++ XIDeviceEvent *xev = (XIDeviceEvent *)ev;
++ gint state;
++ switch (ev->evtype)
++ {
++ case XI_Motion:
++ update_pos (mv_resize, xev->root_x, xev->root_y);
++ state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
++ if ((state & button_mask) == 0)
++ finish_drag (mv_resize);
++ break;
++
++ case XI_ButtonRelease:
++ update_pos (mv_resize, xev->root_x, xev->root_y);
++ if (xev->detail == mv_resize->moveresize_button)
++ finish_drag (mv_resize);
++ break;
++ }
++ }
++ break;
++#endif
++
+ }
+ return TRUE;
+ }
+--
+cgit v0.9.0.2
diff --git a/extra/gtk3/settings.ini b/extra/gtk3/settings.ini
new file mode 100644
index 000000000..039000d38
--- /dev/null
+++ b/extra/gtk3/settings.ini
@@ -0,0 +1,2 @@
+[Settings]
+gtk-fallback-icon-theme = gnome
diff --git a/extra/gtkglext/PKGBUILD b/extra/gtkglext/PKGBUILD
new file mode 100644
index 000000000..25b17a369
--- /dev/null
+++ b/extra/gtkglext/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 134243 2011-08-02 17:13:55Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gtkglext
+pkgver=1.2.0
+pkgrel=6
+pkgdesc="opengl extensions for gtk2"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gtkglext.sourceforge.net/"
+license=('LGPL')
+depends=('gtk2' 'mesa' 'libxmu')
+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"
+ sed '/AC_PATH_XTRA/d' -i configure.in
+ autoreconf --force --install
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
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/gtkglextmm/PKGBUILD b/extra/gtkglextmm/PKGBUILD
new file mode 100644
index 000000000..41cbad1ed
--- /dev/null
+++ b/extra/gtkglextmm/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 143747 2011-11-28 20:23:35Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Bastien Bouclet <bastien.bouclet@gmail.com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=gtkglextmm
+pkgver=1.2.0
+pkgrel=8
+pkgdesc="Cpp C++ bindings for gtkglext"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gtkglext.sourceforge.net/"
+depends=('gtkmm' 'gtkglext')
+makedepends=('pkgconfig')
+options=('!libtool')
+license=('GPL')
+source=("http://downloads.sourceforge.net/sourceforge/gtkglext/${pkgname}-${pkgver}.tar.bz2"
+ 'gdkspanfunc.patch')
+md5sums=('27c05f4d45c5fd07b6fb0f044add3056'
+ 'd7c8ea33c748a6857ee629c16b2d9bff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # FS#24706
+ patch -Np1 -i "${srcdir}/gdkspanfunc.patch"
+
+ # automake 1.8 fix
+ sed -i "s|\(AC_DEFUN(\)\(AC_.*_MULTIHEAD\)|\1[\2]|" m4macros/gtkglextmm.m4
+
+ ./configure --prefix=/usr \
+ --disable-gtkglext-test \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtkglextmm/gdkspanfunc.patch b/extra/gtkglextmm/gdkspanfunc.patch
new file mode 100644
index 000000000..ae5672a8c
--- /dev/null
+++ b/extra/gtkglextmm/gdkspanfunc.patch
@@ -0,0 +1,13 @@
+--- a/gtkglext/gtkmm/gl/widget.cc 2004-05-18 03:01:50.000000000 -0300
++++ b/gtkglext/gtkmm/gl/widget.cc 2011-06-12 17:57:13.075541070 -0300
+@@ -17,9 +17,8 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+-#include <gtk/gtkglwidget.h>
+-
+ #include "widget.h"
++#include <gtk/gtkglwidget.h>
+
+ namespace Gtk
+ {
diff --git a/extra/gtkhtml/PKGBUILD b/extra/gtkhtml/PKGBUILD
new file mode 100644
index 000000000..9f55b0792
--- /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 'mips64el')
+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/gtkhtml4/PKGBUILD b/extra/gtkhtml4/PKGBUILD
new file mode 100644
index 000000000..9f5764c6d
--- /dev/null
+++ b/extra/gtkhtml4/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142883 2011-11-17 18:34:43Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtkhtml4
+_pkgbasename=gtkhtml
+pkgver=4.2.2
+pkgrel=1
+pkgdesc="A lightweight HTML renderer/editor widget for GTK3"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('gtk3' '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.xz)
+sha256sums=('e20bb5d461e9ae9d3a8d4e13d544db1813707810ded7cbde9287485f2394dd2c')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gtkhtml4 \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtkimageview/PKGBUILD b/extra/gtkimageview/PKGBUILD
new file mode 100644
index 000000000..587d7cddf
--- /dev/null
+++ b/extra/gtkimageview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143749 2011-11-28 20:31:19Z 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=2
+pkgdesc="Simple image viewer widget for GTK"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}/usr/share"
+}
diff --git a/extra/gtkmathview/PKGBUILD b/extra/gtkmathview/PKGBUILD
new file mode 100644
index 000000000..dc75031e1
--- /dev/null
+++ b/extra/gtkmathview/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 137761 2011-09-10 15:35:20Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtkmathview
+pkgver=0.8.0
+pkgrel=3
+pkgdesc="C++ rendering engine for MathML documents"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://helm.cs.unibo.it/mml-widget/"
+license=('GPL')
+depends=('popt' 'gtk2' 't1lib' 'gmetadom')
+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
+ patch -Np1 -i ${srcdir}/gtkmathview-0.8.0-cond-t1.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..00f5ccec6
--- /dev/null
+++ b/extra/gtkmm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 130876 2011-07-08 15:25:31Z ibiru $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gtkmm
+pkgname=('gtkmm' 'gtkmm-docs')
+pkgver=2.24.2
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('c90c7a29c20dd6d795925bd66ad1ff40be07cea0e4c03f4d6105a8c07448953d')
+
+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/extra/gtkmm3/PKGBUILD b/extra/gtkmm3/PKGBUILD
new file mode 100644
index 000000000..ae812c133
--- /dev/null
+++ b/extra/gtkmm3/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 139350 2011-10-01 18:59:11Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=gtkmm3
+_pkgbasename=gtkmm
+pkgname=('gtkmm3' 'gtkmm3-docs')
+pkgver=3.2.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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}/3.2/${_pkgbasename}-${pkgver}.tar.xz)
+sha256sums=('6195dac58454e287ae17d380c028827f0a49669a3b93f85e2d4f6eb9459674f2')
+
+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/extra/gtkpod/PKGBUILD b/extra/gtkpod/PKGBUILD
new file mode 100644
index 000000000..f56c3498e
--- /dev/null
+++ b/extra/gtkpod/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 138768 2011-09-28 01:47:51Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=gtkpod
+pkgver=2.1.0
+pkgrel=1
+pkgdesc="A platform independent GUI for Apple's iPod using GTK2"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gtkpod.sourceforge.net"
+license=('GPL')
+depends=('anjuta' 'curl' 'dconf' 'flac' 'libid3tag' 'libgpod>=0.8.0')
+makedepends=('flex' 'intltool')
+optdepends=('libmp4v2: MP4/h264 support'
+ 'vorbis-tools: OGG support'
+ 'id3v2: mp3 conversion support')
+install=gtkpod.install
+source=(http://downloads.sourceforge.net/gtkpod/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8e01f7cf2db1a421140eab561aee26d7')
+
+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..c5d357a38
--- /dev/null
+++ b/extra/gtkpod/gtkpod.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gtksourceview2/PKGBUILD b/extra/gtksourceview2/PKGBUILD
new file mode 100644
index 000000000..08f887870
--- /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' 'mips64el')
+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/gtksourceview3/PKGBUILD b/extra/gtksourceview3/PKGBUILD
new file mode 100644
index 000000000..03c3c7c0f
--- /dev/null
+++ b/extra/gtksourceview3/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 141679 2011-11-02 07:51:31Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtksourceview3
+_pkgbasename=gtksourceview
+pkgver=3.2.3
+pkgrel=1
+pkgdesc="A text widget adding syntax highlighting and more to GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('73d9c6702ccecd06846132cfb50191092cb50a4bcb3ff810a5605868f0855947')
+
+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/extra/gtkspell/PKGBUILD b/extra/gtkspell/PKGBUILD
new file mode 100644
index 000000000..272c319ed
--- /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' 'mips64el')
+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/gts/PKGBUILD b/extra/gts/PKGBUILD
new file mode 100644
index 000000000..57d38d906
--- /dev/null
+++ b/extra/gts/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 143014 2011-11-20 23:59:13Z bisson $
+
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Thomas Dziedzic <gostrc at gmail>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gts
+pkgver=0.7.6
+pkgrel=2
+pkgdesc='Provides useful functions to deal with 3D surfaces meshed with interconnected triangles'
+url='http://gts.sourceforge.net/'
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('glib2')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('000720bebecf0b153eb28260bd30fbd979dcc040')
+options=('!libtool')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gucharmap/PKGBUILD b/extra/gucharmap/PKGBUILD
new file mode 100644
index 000000000..51ab892ac
--- /dev/null
+++ b/extra/gucharmap/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142885 2011-11-17 18:34:47Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gucharmap
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Gnome Unicode Charmap"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org"
+depends=('gconf' 'hicolor-icon-theme')
+makedepends=('gtk-doc' 'intltool' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+install=gucharmap.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('da1e422d387ff4df8bfb61e8a340483f88b0d23e4309a776848dbeb4093a5a21')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --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/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..54e90fd83
--- /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 'mips64el')
+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/gupnp-av/PKGBUILD b/extra/gupnp-av/PKGBUILD
new file mode 100644
index 000000000..16dcc2de5
--- /dev/null
+++ b/extra/gupnp-av/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 139612 2011-10-03 19:05:21Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Thijs Vermeir <thijsvermeir@gmail.com>
+# Contributor: Denis Zawada <deno@rootnode.net>
+
+pkgname=gupnp-av
+pkgver=0.10.1
+pkgrel=1
+pkgdesc="Library to ease handling and implementation of UPnP A/V profiles"
+arch=('i686' 'x86_64')
+url="http://gupnp.org/"
+license=('LGPL')
+depends=('gupnp')
+makedepends=('gobject-introspection' 'gtk-doc')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('41aeb5d243426b293c315788b41bc79a2be1f466eeff114cf6c89a37140f507e')
+
+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/gupnp/PKGBUILD b/extra/gupnp/PKGBUILD
new file mode 100644
index 000000000..5c8810754
--- /dev/null
+++ b/extra/gupnp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 139611 2011-10-03 19:05:21Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=gupnp
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="An object-oriented UPNP framework"
+arch=('i686' 'x86_64')
+url="http://gupnp.org/"
+license=('LGPL')
+depends=('gssdp')
+makedepends=('gobject-introspection' 'gtk-doc')
+optdepends=('python2: gupnp-binding-tool')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('82f4758b26ef0531cf6301f526fe705f06c329eaef403bb30925128fcbb6a71a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i '1s|^#!.*python$|&2|' tools/gupnp-binding-tool
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --with-context-manager=linux
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/gutenprint/PKGBUILD b/extra/gutenprint/PKGBUILD
new file mode 100644
index 000000000..37327b798
--- /dev/null
+++ b/extra/gutenprint/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 143830 2011-11-29 16:30:26Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=gutenprint
+pkgver=5.2.7
+pkgrel=3
+pkgdesc="Top quality printer drivers for POSIX systems"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+install=gutenprint.install
+depends=('readline' 'gnutls>=2.12.3') # needs to be checked. build log says -Lgnutls but namcap doesn't detect it
+makedepends=('gimp>=2.6.11' 'gtk2>=2.24.4' 'cups>=1.4.6' 'foomatic-db-engine' 'ghostscript>=9.02')
+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 buildfix.patch)
+url="http://gimp-print.sourceforge.net/"
+replaces=('gimp-print')
+options=('!libtool' '!emptydirs')
+md5sums=('b19029972bf28f6efd693270daf8f5de'
+ '2354cdecf1fbab32eca84266c8c72e7d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/buildfix.patch
+ ./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/buildfix.patch b/extra/gutenprint/buildfix.patch
new file mode 100644
index 000000000..6b17a4029
--- /dev/null
+++ b/extra/gutenprint/buildfix.patch
@@ -0,0 +1,22 @@
+diff -up gutenprint-5.2.7/src/cups/commandtocanon.c.build gutenprint-5.2.7/src/cups/commandtocanon.c
+--- gutenprint-5.2.7/src/cups/commandtocanon.c.build 2011-06-07 13:32:37.372042304 +0100
++++ gutenprint-5.2.7/src/cups/commandtocanon.c 2011-06-07 13:32:41.270970750 +0100
+@@ -13,6 +13,7 @@
+
+ #include <cups/cups.h>
+ #include <ctype.h>
++#include <stdio.h>
+ #include <stdlib.h>
+
+
+diff -up gutenprint-5.2.7/src/cups/commandtoepson.c.build gutenprint-5.2.7/src/cups/commandtoepson.c
+--- gutenprint-5.2.7/src/cups/commandtoepson.c.build 2007-12-24 17:19:20.000000000 +0000
++++ gutenprint-5.2.7/src/cups/commandtoepson.c 2011-06-07 13:32:35.656073794 +0100
+@@ -30,6 +30,7 @@
+
+ #include <cups/cups.h>
+ #include <ctype.h>
++#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+
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..8ce7b917d
--- /dev/null
+++ b/extra/gv/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 122132 2011-05-02 09:38:25Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gv
+pkgver=3.7.2
+pkgrel=1
+pkgdesc="A program to view PostScript and PDF documents"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/gv/"
+license=('GPL')
+depends=('xaw3d' 'ghostscript' 'desktop-file-utils')
+install=gv.install
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz gv.desktop gv.png)
+md5sums=('eb47d465755b7291870af66431c6f2e1'
+ 'cf04652952f2d0903bc7578b4826f50c'
+ 'ab0e3879dbe39e59ad1c923020c28a86')
+sha1sums=('d9573e17f5d88d150fccb257ce205dbceab83e8a'
+ 'c8230fe08ee6d22525678a97832f44941237d174'
+ '35b9168e526527001b1b5b8ee34a5b69d9369590')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/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..0c048cd5b
--- /dev/null
+++ b/extra/gv/gv.install
@@ -0,0 +1,18 @@
+infodir=usr/share/info
+file=gv.info.gz
+
+post_install() {
+ update-desktop-database -q
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ update-desktop-database -q
+ [ -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..eea981de0
--- /dev/null
+++ b/extra/gvfs/PKGBUILD
@@ -0,0 +1,113 @@
+# $Id: PKGBUILD 140933 2011-10-20 05:43:53Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gvfs
+pkgname=('gvfs' 'gvfs-smb' 'gvfs-afc' 'gvfs-afp' 'gvfs-gphoto2' 'gvfs-obexftp')
+pkgver=1.10.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+makedepends=('libsoup-gnome' 'libcdio' 'fuse' 'bluez' 'smbclient' 'libgphoto2' 'libarchive' 'libgdu' 'pkgconfig' 'intltool' 'libimobiledevice' 'avahi' 'dconf')
+url="http://www.gnome.org"
+options=(!libtool)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.xz)
+sha256sums=('cd30facee5ad6cd0fafc5337bbf7c06a0bff3936f9ff2ae31519b301efcc9288')
+
+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' 'libgdu' 'libcdio' 'fuse' 'libarchive' 'avahi' 'dconf')
+ 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'
+ 'gvfs-afp: Apple Filing Protocol (AFP) 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,afp,afp-browse,gphoto2,obexftp}
+ rm usr/share/gvfs/mounts/{smb,smb-browse,afc,afp,afp-browse,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"
+}
+
+package_gvfs-afp() {
+ pkgdesc="Apple Filing Protocol (AFP) backend for gvfs"
+ depends=("gvfs=${pkgver}")
+ install=gvfs-module.install
+ install -m755 -d "${pkgdir}/usr/lib/gvfs"
+ install -m755 -d "${pkgdir}/usr/share/gvfs/mounts"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -m755 .libs/gvfsd-afp{,-browse} "${pkgdir}/usr/lib/gvfs/"
+ install -m644 afp{,-browse}.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-smb.install b/extra/gvfs/gvfs-smb.install
new file mode 100644
index 000000000..0b8783c7b
--- /dev/null
+++ b/extra/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/extra/gvfs/gvfs.install b/extra/gvfs/gvfs.install
new file mode 100644
index 000000000..9458b1513
--- /dev/null
+++ b/extra/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/extra/gweled/PKGBUILD b/extra/gweled/PKGBUILD
new file mode 100644
index 000000000..ce87fb21e
--- /dev/null
+++ b/extra/gweled/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 130072 2011-07-01 21:54:59Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gweled
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A puzzle game similar to Bejeweled (aka Diamond Mine)"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="https://launchpad.net/gweled/"
+depends=('gtk2' 'librsvg' 'libmikmod' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=gweled.install
+source=(http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('746ac14523c968e78140c2f0501fd7cf')
+sha1sums=('ff4a59935c9e1eb4a202e723baabaab39f526714')
+
+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..88bcf528a
--- /dev/null
+++ b/extra/habak/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 136978 2011-09-04 12:05:11Z pierre $
+# Maintainer: Ronald van Haren <ronald@archlinux.org>
+# Contributor: Simo Leone <simo@archlinux.org>
+
+pkgname=habak
+pkgver=0.2.5
+pkgrel=4
+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' 'mips64el')
+options=('!makeflags')
+md5sums=('bee5c394989367f7a4c5cb9ec99d307c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ export LDFLAGS=${LDFLAGS/,--sort-common,--as-needed//}
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -m755 -D habak $pkgdir/usr/bin/habak
+}
diff --git a/extra/happy/PKGBUILD b/extra/happy/PKGBUILD
new file mode 100644
index 000000000..f9cb98065
--- /dev/null
+++ b/extra/happy/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 127724 2011-06-17 20:54:42Z eric $
+# 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' 'mips64el')
+license=("custom:BSD3")
+depends=(gmp)
+makedepends=(ghc=7.0.2 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 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
diff --git a/extra/haskell-cgi/PKGBUILD b/extra/haskell-cgi/PKGBUILD
new file mode 100644
index 000000000..1ebe591af
--- /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=3.1
+pkgdesc="A library for writing CGI programs"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-2' 'haskell-mtl=2.0.1.0-3.1' 'haskell-network=2.3.0.2-2.1' 'haskell-parsec=3.1.1-2.1' 'haskell-xhtml=3000.2.0.1-7.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-deepseq/PKGBUILD b/extra/haskell-deepseq/PKGBUILD
new file mode 100644
index 000000000..92818f74c
--- /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=2.1
+pkgdesc="Fully evaluate data structures"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-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..a397c16a1
--- /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=4.1
+pkgdesc="Martin Erwig's Functional Graph Library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=()
+depends=('ghc=7.0.3-2' 'haskell-mtl=2.0.1.0-3.1')
+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 -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=('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..c47b76613
--- /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=7.1
+pkgdesc="A binding for the OpenGL Utility Toolkit"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=()
+depends=('ghc=7.0.3-2' 'haskell-opengl=2.2.3.0-7.1' '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 -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-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-haskell-src/PKGBUILD b/extra/haskell-haskell-src/PKGBUILD
new file mode 100644
index 000000000..dfc85c3a6
--- /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=2.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' 'mips64el')
+depends=('ghc=7.0.3-2' 'haskell-syb=0.3-2.1' 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..203bc1589
--- /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=9.1
+pkgdesc="HTML combinator library"
+url="http://hackage.haskell.org/package/html"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-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..f0f33d5cb
--- /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=3.1
+pkgdesc="A library for client-side HTTP"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-2' sh 'haskell-network=2.3.0.2-2.1' 'haskell-parsec=3.1.1-2.1' 'haskell-mtl=2.0.1.0-3.1')
+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..c2009a927
--- /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=2.1
+pkgdesc="A unit testing framework for Haskell"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-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-mtl/PKGBUILD b/extra/haskell-mtl/PKGBUILD
new file mode 100644
index 000000000..932f9360c
--- /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=3.1
+pkgdesc="Monad transformer library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-transformers=0.2.2.0-3.1')
+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..2d1b78c75
--- /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=2.1
+pkgdesc="Networking-related facilities"
+url="http://hackage.haskell.org/package/network"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-parsec=3.1.1-2.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..909a68239
--- /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=7.1
+pkgdesc="A binding for the OpenGL graphics system"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-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 -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-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..7b13af989
--- /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=3.1
+pkgdesc="Parallel programming library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-deepseq=1.1.0.2-2.1')
+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..fe0fca0ab
--- /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=2.1
+pkgdesc="Monadic parser combinators"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-mtl=2.0.1.0-3.1')
+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..02dbe7c29
--- /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=4
+pkgdesc="The Haskell Platform"
+url="http://hackage.haskell.org/platform/"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-2'
+ 'haskell-glut=2.1.2.1-7.1'
+ 'haskell-http=4000.1.1-3.1'
+ 'haskell-hunit=1.2.2.3-2.1'
+ 'haskell-opengl=2.2.3.0-7.1'
+ 'haskell-quickcheck=2.4.0.1-3.1'
+ 'haskell-cgi=3001.1.7.4-3.1'
+ 'haskell-deepseq=1.1.0.2-2.1'
+ 'haskell-fgl=5.4.2.3-4.1'
+ 'haskell-haskell-src=1.0.1.4-2.1'
+ 'haskell-html=1.0.1.2-9.1'
+ 'haskell-mtl=2.0.1.0-3.1'
+ 'haskell-network=2.3.0.2-2.1'
+ 'haskell-parallel=3.1.0.1-3.1'
+ 'haskell-parsec=3.1.1-2.1'
+ 'haskell-regex-base=0.93.2-4.1'
+ 'haskell-regex-posix=0.94.4-2.1'
+ 'haskell-regex-compat=0.93.1-4.1'
+ 'haskell-stm=2.2.0.1-2.1'
+ 'haskell-syb=0.3-2.1'
+ 'haskell-text=0.11.0.5-2.1'
+ 'haskell-transformers=0.2.2.0-3.1'
+ 'haskell-xhtml=3000.2.0.1-7.1'
+ 'haskell-zlib=0.5.3.1-2.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..0a338c9b5
--- /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=3.1
+pkgdesc="Automatic testing of Haskell programs"
+url="http://hackage.haskell.org/package/QuickCheck"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 haskell-mtl=2.0.1.0-3.1 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..dc920b63a
--- /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=4.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' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-mtl=2.0.1.0-3.1')
+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..40812c431
--- /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=4.1
+pkgdesc="Replaces and enhances Text.Regex"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-regex-base=0.93.2-4.1' 'haskell-regex-posix=0.94.4-2.1')
+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..230d09237
--- /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=2.1
+pkgdesc="The posix regex backend for regex-base"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-2 sh 'haskell-regex-base=0.93.2-4.1')
+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..352bd33c5
--- /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=2.1
+pkgdesc="A modular composable concurrency abstraction."
+url="http://hackage.haskell.org/package/stm"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-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..bcb5512f2
--- /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=2.1
+pkgdesc="A library for client-side HTTP"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-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-text/PKGBUILD b/extra/haskell-text/PKGBUILD
new file mode 100644
index 000000000..a246e2abf
--- /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=2.1
+pkgdesc="An efficient packed Unicode text type."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ghc=7.0.3-2' sh 'haskell-deepseq=1.1.0.2-2.1')
+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..8ae36ebf1
--- /dev/null
+++ b/extra/haskell-transformers/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# $Id: PKGBUILD 128119 2011-06-22 11:19:38Z vesa $
+
+_hkgname=transformers
+pkgname=haskell-transformers
+pkgver=0.2.2.0
+pkgrel=3.1
+pkgdesc="Concrete functor and monad transformers"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64' 'mips64el')
+depends=(ghc=7.0.3-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-xhtml/PKGBUILD b/extra/haskell-xhtml/PKGBUILD
new file mode 100644
index 000000000..eb11375cb
--- /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=7.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' 'mips64el')
+depends=(ghc=7.0.3-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..03a459007
--- /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=2.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' 'mips64el')
+depends=(ghc=7.0.3-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..0d5bd65d5
--- /dev/null
+++ b/extra/hd2u/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143751 2011-11-28 20:37:55Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=hd2u
+pkgver=1.0.3
+pkgrel=4
+pkgdesc="Dos2Unix text file converter"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make BUILD_ROOT="$pkgdir" install
+}
diff --git a/extra/hddtemp/PKGBUILD b/extra/hddtemp/PKGBUILD
new file mode 100644
index 000000000..32b3c6b03
--- /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' 'mips64el')
+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..e4804547e
--- /dev/null
+++ b/extra/hdf5/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 130965 2011-07-09 08:59:26Z ronald $
+# 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.7
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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')
+sha1sums=('be1daff26f066aca0b5be52d86dada6757fc4b95')
+
+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
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver/_/-}
+
+ make -j1 DESTDIR=${pkgdir} 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..6f2a335b1
--- /dev/null
+++ b/extra/help2man/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143753 2011-11-28 20:42:11Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Paul Mattal <paul@mattal.com>
+
+pkgname=help2man
+pkgver=1.40.4
+pkgrel=2
+pkgdesc="Conversion tool to create man files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/help2man/"
+license=('GPL')
+depends=('perl-locale-gettext')
+install=help2man.install
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4d79dc7cb7c20019c2a3650d35259c45')
+
+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/help2man/help2man.install b/extra/help2man/help2man.install
new file mode 100644
index 000000000..ab6585b91
--- /dev/null
+++ b/extra/help2man/help2man.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(help2man.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/hercules/PKGBUILD b/extra/hercules/PKGBUILD
new file mode 100644
index 000000000..1dd88290c
--- /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 'mips64el')
+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..4ed53a1ef
--- /dev/null
+++ b/extra/hexedit/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143768 2011-11-29 01:46:32Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Paul Mattal <pjmattal@elys.com>
+
+pkgname=hexedit
+pkgver=1.2.12
+pkgrel=5
+pkgdesc="Hex Editor for Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://rigaux.org/hexedit.html"
+license=('GPL')
+depends=('ncurses')
+source=("http://rigaux.org/${pkgname}-${pkgver}.src.tgz")
+md5sums=('0d2f48610006278cd93359fea9a06d5c')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ CFLAGS="$CFLAGS -Wall"
+
+ ./configure
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/extra/hplip/PKGBUILD b/extra/hplip/PKGBUILD
new file mode 100644
index 000000000..badee29f3
--- /dev/null
+++ b/extra/hplip/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 144358 2011-12-05 03:45:19Z eric $
+# Maintainer : Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Morgan LEFIEUX <comete@archlinuxfr.org>
+
+pkgname=hplip
+pkgver=3.11.10
+pkgrel=2
+pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://hplipopensource.com"
+license=('GPL')
+depends=('python2' 'ghostscript>=8.64-6' 'foomatic-db' 'foomatic-db-engine'
+ 'net-snmp>=5.7.1')
+makedepends=('python2-qt' 'python2-gobject2' 'sane' 'rpcbind' 'cups')
+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'
+ 'python2-gobject2: for running hp-toolbox'
+ 'hplip-plugin: binary blobs for specific devices')
+replaces=('hpijs')
+options=('!libtool')
+install=hplip.install
+source=(http://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz{,.asc})
+md5sums=('6143f30f3b6905ef22105176a3b80db0'
+ '396bbd8c5cc92aa8295e5bcb508692f3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ export PYTHON=python2
+ find . -type f -exec sed -i 's~^#.*env python~#!/usr/bin/env python2~' {} +
+ sed -i '1s|#!/usr/bin/python|#!/usr/bin/python2|' base/magic.py
+ sed -i 's|python ./print.py|python2 ./print.py|' scan.py
+ sed -i 's|python ./testpage.py|python2 ./testpage.py|' setup.py
+ sed -i 's|python ./setup.py|python2 ./setup.py|' ui4/devmgr5.py ui4/nodevicesdialog.py
+ sed -i 's|python %HOME%|python2 %HOME%|' base/utils.py
+ sed -i 's|python ./plugin.py|python2 ./plugin.py|' base/pkit.py
+
+ # fix sysfs rules
+ sed -i -e "s|SYSFS|ATTR|g" \
+ -e "s|sysfs|attr|g" \
+ data/rules/56-hpmud_support.rules
+
+ ./configure --prefix=/usr \
+ --enable-qt4 \
+ --enable-foomatic-rip-hplip-install \
+ --enable-foomatic-ppd-install \
+ --enable-hpcups-install \
+ --enable-new-hpcups \
+ --enable-cups-ppd-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 rulesdir=/lib/udev/rules.d DESTDIR="$pkgdir/" install
+ # remove config provided by sane and autostart of hp-daemon
+ rm -rf "$pkgdir"/etc/{sane.d,xdg}
+}
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..26d4e4876
--- /dev/null
+++ b/extra/hpoj/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 139478 2011-10-02 02:49:35Z eric $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+
+pkgname=hpoj
+pkgver=0.91
+pkgrel=17
+pkgdesc="Hewlett-Packard OfficeJet, PSC, LaserJet, and PhotoSmart printer multi-function peripherals (MFPs) drivers"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://hpoj.sourceforge.net"
+license=('GPL' 'custom')
+depends=('perl' 'libusb-compat' 'net-snmp' '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..969b98476
--- /dev/null
+++ b/extra/hspell/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 143756 2011-11-28 20:54:27Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgbase=hspell
+pkgname=('hspell' 'hunspell-he')
+pkgver=1.1
+pkgrel=1.1
+arch=(i686 x86_64 'mips64el')
+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}/${pkgbase}-${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/CVE-2007-6110.patch b/extra/htdig/CVE-2007-6110.patch
new file mode 100644
index 000000000..57b0e3b78
--- /dev/null
+++ b/extra/htdig/CVE-2007-6110.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/htdig/PKGBUILD b/extra/htdig/PKGBUILD
new file mode 100644
index 000000000..f40457224
--- /dev/null
+++ b/extra/htdig/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 122102 2011-05-02 07:10:01Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=htdig
+pkgver=3.2.0b6
+pkgrel=7
+pkgdesc="Scripts and HTML code needed for using ht://Dig as a web search engine"
+url="http://www.htdig.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('openssl')
+options=('!libtool' 'emptydirs')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'gcc4.3.patch'
+ 'CVE-2007-6110.patch')
+md5sums=('8b9b9587a411ac7dd278fa5413428960'
+ '2aeda683f95b58efc0978d7fe951de59'
+ '0d9099d3b5a32d322a8e0240f85a3578')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i "${srcdir}/gcc4.3.patch"
+ patch -p1 -i "${srcdir}/CVE-2007-6110.patch"
+
+ ./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 \
+ --localstatedir=/var/lib/htdig \
+ --with-ssl
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/htop/ChangeLog b/extra/htop/ChangeLog
new file mode 100644
index 000000000..df71cf644
--- /dev/null
+++ b/extra/htop/ChangeLog
@@ -0,0 +1,22 @@
+2011-10-19 Andrea Scarpino <andrea@archlinux.org>
+ * Enable cgroup support (FS#26155)
+ * Add lsof and strace optional depends (FS#25778)
+ * Fix crash when column is less than 40 (closes FS#25823)
+
+2011-05-17 Angel Velasquez <angvp@archlinux.org>
+ * Added patch to fix --sort-key (closes FS#23224)
+
+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..3038722a8
--- /dev/null
+++ b/extra/htop/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 143218 2011-11-23 13:59:27Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=htop
+pkgver=1.0
+pkgrel=1
+pkgdesc="Interactive process viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://htop.sourceforge.net/"
+license=('GPL')
+depends=('ncurses')
+makedepends=('python2')
+optdepends=('lsof' 'strace')
+options=('!emptydirs')
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('325112ca7947ea1f6d6441f631e00384')
+
+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 \
+ --enable-cgroup
+ 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..6b06a1d1c
--- /dev/null
+++ b/extra/hugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144049 2011-12-02 20:54:20Z ibiru $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=hugin
+pkgver=2011.2.0
+pkgrel=2
+pkgdesc="A frontend to the panorama-tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://hugin.sourceforge.net/"
+license=('GPL')
+depends=('wxgtk' 'boost-libs' 'enblend-enfuse' 'exiv2' 'autopano-sift-c'
+ 'lapack' 'desktop-file-utils' 'make' 'perl-exiftool')
+makedepends=('zip' 'cmake' 'boost' 'tclap')
+install=hugin.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('79dfdac229b4e58f50c893c1238bdd0921ad9da6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+ cmake "${srcdir}/${pkgname}-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_EXE_LINKER_FLAGS="-lpthread" \
+ -DENABLE_LAPACK=yes
+ make
+}
+
+package(){
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/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..7996411ee
--- /dev/null
+++ b/extra/hunspell/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125861 2011-05-30 15:55:43Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
+
+pkgname=hunspell
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="Spell checker and morphological analyzer library and program"
+arch=('i686' 'x86_64' 'mips64el')
+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=('3121aaf3e13e5d88dfff13fb4a5f1ab8')
+
+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..b24becb80
--- /dev/null
+++ b/extra/hwloc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143086 2011-11-22 17:32:42Z stephane $
+# Maintainer : Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sylvain HENRY <hsyl20@yahoo.fr>
+# Contributor: Hervé YVIQUEL <elldekaa@gmail.com>
+
+pkgname=hwloc
+pkgver=1.3
+pkgrel=1
+pkgdesc="Portable Hardware Locality is a portable abstraction of hierarchical architectures"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.open-mpi.org/projects/hwloc/"
+license=('BSD')
+depends=('sh' 'pciutils')
+makedepends=('pkg-config')
+optdepends=('cairo: Graphical output' 'libxml2: XML export')
+options=('!libtool' '!docs')
+source=(http://www.open-mpi.org/software/hwloc/v1.3/downloads/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('4d4de0f48f8b9a1eaf75d55bc93e0e624f6194eb')
+
+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/hydrogen/PKGBUILD b/extra/hydrogen/PKGBUILD
new file mode 100644
index 000000000..b56f92c4c
--- /dev/null
+++ b/extra/hydrogen/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 135233 2011-08-11 10:28:18Z 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' 'mips64el')
+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
+ lrdf_raptor2.patch)
+md5sums=('e96f291d60e58f5d62fe616cee577dc0'
+ '2124851e890f46158189b5fa90006d40')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export QTDIR=/usr
+ patch -Np1 -i "${srcdir}/lrdf_raptor2.patch"
+ 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/hydrogen/lrdf_raptor2.patch b/extra/hydrogen/lrdf_raptor2.patch
new file mode 100644
index 000000000..ec176b716
--- /dev/null
+++ b/extra/hydrogen/lrdf_raptor2.patch
@@ -0,0 +1,11 @@
+diff -baur hydrogen-0.9.5.old/Sconstruct hydrogen-0.9.5/Sconstruct
+--- hydrogen-0.9.5.old/Sconstruct 2011-08-11 18:00:07.889112348 +0800
++++ hydrogen-0.9.5/Sconstruct 2011-08-11 18:00:34.945632437 +0800
+@@ -83,6 +83,7 @@
+ includes.append( './' )
+ includes.append( 'gui/src/' )
+ includes.append( '3rdparty/install/include' )
++ includes.append( '/usr/include/raptor2' )
+
+ if sys.platform == "darwin":
+ ldflags.append( '-L/opt/local/lib' )
diff --git a/extra/hylafax/PKGBUILD b/extra/hylafax/PKGBUILD
new file mode 100644
index 000000000..f3dc2e868
--- /dev/null
+++ b/extra/hylafax/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 135136 2011-08-10 12:54:02Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=hylafax
+pkgver=6.0.5
+pkgrel=2
+pkgdesc="Fax Server"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ configure-6.0.5.patch)
+
+# 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}
+ mkdir -p $pkgdir/var/{spool/hylafax,lock}
+ cd $srcdir/${pkgname}-${pkgver}
+
+ cp ../config.local .
+ # fix compiling
+ patch -Np0 -i ../configure-6.0.5.patch
+ ./configure --nointeractive --with-OPTIMIZER="${CFLAGS}"
+ make
+}
+
+package () {
+ cd $srcdir/${pkgname}-${pkgver}
+ make ROOT=$pkgdir install
+ install -D -m 755 $srcdir/hylafax $pkgdir/etc/rc.d/hylafax
+ install -D -m 744 $srcdir/hylafax.cron.daily $pkgdir/etc/cron.daily/hylafax
+ # 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 \
+ $pkgdir/var/spool/hylafax/bin/notify.awk
+ # fix permission on /var/lock
+ chmod 1777 $pkgdir/var/lock
+
+ install -D -m644 COPYRIGHT $startdir/pkg/usr/share/licenses/$pkgname/COPYRIGHT
+}
+md5sums=('eb9ac942354ad708e20e4583cec6615f'
+ '6602288a405324d8c8e3c5eac2bf19fd'
+ '52beffe7dc296b4f9ce9fd0387f7804e'
+ '0d2ce24d918226a852539aebf57d3f4a'
+ '51d9f639bb76e5e39cdc8e2ac07e208d')
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/configure-6.0.5.patch b/extra/hylafax/configure-6.0.5.patch
new file mode 100644
index 000000000..e1f1126a5
--- /dev/null
+++ b/extra/hylafax/configure-6.0.5.patch
@@ -0,0 +1,11 @@
+--- configure.old 2011-08-08 10:19:37.619657223 +0200
++++ configure 2011-08-08 10:20:26.422189170 +0200
+@@ -2882,7 +2882,7 @@
+ echo '#define HAS_FCHMOD 1'
+ Note "... configure use of fchmod"
+ CheckFuncDecl fchmod 'extern int fchmod(int, mode_t);' \
+- unistd.h libc.h $OSFCNH sys/stat.h
++ unistd.h $OSFCNH sys/stat.h libc.h
+ }
+ CheckFuncDecl mknod 'extern int mknod(const char*, mode_t, dev_t);' \
+ unistd.h sys/stat.h
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..bd97d42bd
--- /dev/null
+++ b/extra/hylafax/hylafax.install
@@ -0,0 +1,44 @@
+
+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
+}
diff --git a/extra/hyphen/PKGBUILD b/extra/hyphen/PKGBUILD
new file mode 100644
index 000000000..65fda4b8c
--- /dev/null
+++ b/extra/hyphen/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 140476 2011-10-15 10:01:23Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgbase=hyphen
+pkgname=('hyphen' 'hyphen-en')
+pkgver=2.8.3
+pkgrel=1.1
+arch=('i686' 'x86_64' 'mips64el')
+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=('86261f06c097d3e425a2f6d0b0635380')
+
+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/$pkgbase-$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/$pkgbase-$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
+}
diff --git a/extra/i8kutils/PKGBUILD b/extra/i8kutils/PKGBUILD
new file mode 100644
index 000000000..4d80f1568
--- /dev/null
+++ b/extra/i8kutils/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 138168 2011-09-18 03:14:27Z eric $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=i8kutils
+pkgver=1.33
+pkgrel=2
+pkgdesc="Dell Inspiron/Latitude kernel driver and utilities"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://people.debian.org/~dz/i8k/"
+license=('GPL2')
+depends=('glibc')
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}_${pkgver}.tar.gz)
+md5sums=('1ab077b301dbb0f4be8ef52eb3b97628')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -D -m755 i8kctl "$pkgdir/usr/bin/i8kctl"
+ install -D -m755 i8kbuttons "$pkgdir/usr/bin/i8kbuttons"
+ install -D -m644 i8kbuttons.1 "$pkgdir/usr/share/man/man1/i8kbuttons.1"
+ install -D -m644 i8kctl.1 "$pkgdir/usr/share/man/man1/i8kctl.1"
+ ln -fs ./i8kctl "$pkgdir/usr/bin/i8kfan"
+}
diff --git a/extra/icedtea-web-java7/PKGBUILD b/extra/icedtea-web-java7/PKGBUILD
new file mode 100644
index 000000000..d5424ed9e
--- /dev/null
+++ b/extra/icedtea-web-java7/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 136836 2011-09-02 07:59:01Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=icedtea-web-java7
+pkgname=('icedtea-web-java7' 'icedtea-web-java7-doc')
+pkgver=1.1.4
+#_date=20110925
+#pkgrel=0.${_date}.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://icedtea.classpath.org/wiki/IcedTea-Web"
+license=('GPL2')
+makedepends=('jdk7-openjdk' 'zip' 'xulrunner')
+source=(#ftp://ftp.archlinux.org/other/$pkgname/${pkgbase}-${_date}.tar.xz
+ http://icedtea.classpath.org/download/source/${pkgbase/-java7/}-$pkgver.tar.gz
+ #http://icedtea.classpath.org/download/source/${pkgname}-${pkgver}.tar.gz
+ icedtea-web-1.1.4-npapi-fix.patch)
+md5sums=('1ed24b7e58da26471187dfae80b020b6'
+ '81ac36e05ea1b55f1580bdb28c24f4db')
+_javaver=7
+_jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+mksource() {
+ mkdir /tmp/${pkgbase}-${_date}
+ pushd /tmp/${pkgbase}-${_date}
+ hg clone http://icedtea.classpath.org/hg/icedtea-web ${pkgbase}-${_date}
+ rm -rf ${pkgbase}-${_date}/.hg*
+ tar -cvJf /tmp/${pkgbase}-${_date}/${pkgbase}-${_date}.tar.xz *
+ popd
+}
+
+build() {
+ cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
+
+ . /etc/profile.d/jre.sh
+ . /etc/profile.d/jdk.sh
+
+ #autoreconf --force --install
+
+ # fix build with Xulrunner 8
+ patch -Np1 -i ${srcdir}/icedtea-web-1.1.4-npapi-fix.patch
+
+ ./configure --prefix=${_jvmdir} \
+ --datarootdir=/usr/share \
+ --with-jdk-home=${_jvmdir}
+ make
+}
+
+check() {
+ cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
+ make -k check
+}
+
+
+package_icedtea-web-java7() {
+
+ 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=('jre7-openjdk' 'gtk2' 'desktop-file-utils')
+ install=${pkgname}.install
+
+ cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
+ # possible make target (see bottom of Makefile.am: install-exec-local install-data-local
+ make DESTDIR="${pkgdir}" install-exec-local install-data-local
+
+ # 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 -rf ${pkgdir}/usr/share/doc
+
+ # link binaries into /usr/bin + jre/bin
+ install -m755 -d ${pkgdir}/usr/bin
+ install -m755 -d ${pkgdir}/${_jvmdir}/jre/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}/lib/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/
+}
+
+package_icedtea-web-java7-doc() {
+
+ pkgdesc="icedtea-web browser plugin + Java WebStart - documentation files"
+
+ cd "${srcdir}"/icedtea-web* #${pkgbase}-${_date}"
+# install -m755 -d ${pkgdir}/${_jvmdir}/jre/lib
+ make DESTDIR="${pkgdir}" install-data-local
+ # remove javaws about and man page
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/man
+ rm -rf ${pkgdir}/usr/share/icedtea-web # conflicting and unneeded file it seems
+}
diff --git a/extra/icedtea-web-java7/icedtea-web-1.1.4-npapi-fix.patch b/extra/icedtea-web-java7/icedtea-web-1.1.4-npapi-fix.patch
new file mode 100644
index 000000000..79ca0a6c0
--- /dev/null
+++ b/extra/icedtea-web-java7/icedtea-web-1.1.4-npapi-fix.patch
@@ -0,0 +1,12 @@
+diff -up ./plugin/icedteanp/IcedTeaNPPlugin.cc.sav ./plugin/icedteanp/IcedTeaNPPlugin.cc
+--- ./plugin/icedteanp/IcedTeaNPPlugin.cc.sav 2011-11-08 17:27:29.046520865 -0500
++++ ./plugin/icedteanp/IcedTeaNPPlugin.cc 2011-11-08 17:27:40.469611421 -0500
+@@ -2262,7 +2262,7 @@ NP_Initialize (NPNetscapeFuncs* browserT
+
+ // Returns a string describing the MIME type that this plugin
+ // handles.
+-char*
++const char*
+ NP_GetMIMEDescription ()
+ {
+ PLUGIN_DEBUG ("NP_GetMIMEDescription\n");
diff --git a/extra/icedtea-web-java7/icedtea-web-java7.install b/extra/icedtea-web-java7/icedtea-web-java7.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/extra/icedtea-web-java7/icedtea-web-java7.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/icedtea-web/PKGBUILD b/extra/icedtea-web/PKGBUILD
new file mode 100644
index 000000000..35d3d66a9
--- /dev/null
+++ b/extra/icedtea-web/PKGBUILD
@@ -0,0 +1,86 @@
+# $Id: PKGBUILD 142413 2011-11-09 05:54:47Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=icedtea-web
+pkgname=('icedtea-web' 'icedtea-web-doc')
+pkgver=1.1.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://icedtea.classpath.org/wiki/IcedTea-Web"
+license=('GPL2')
+makedepends=('openjdk6' 'zip' 'xulrunner')
+source=(http://icedtea.classpath.org/download/source/$pkgname-$pkgver.tar.gz
+ icedtea-web-1.1.4-npapi-fix.patch)
+md5sums=('1ed24b7e58da26471187dfae80b020b6'
+ '81ac36e05ea1b55f1580bdb28c24f4db')
+
+build() {
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fix build with Xulrunner 8
+ patch -Np1 -i ${srcdir}/icedtea-web-1.1.4-npapi-fix.patch
+
+ ./configure --prefix=/usr/lib/jvm/java-6-openjdk \
+ --datarootdir=/usr/share
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+
+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')
+ install=$pkgname.install
+
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd "$srcdir/$pkgname-$pkgver"
+ # possible make target (see bottom of Makefile.am: install-exec-local install-data-local
+ make DESTDIR="$pkgdir" install-exec-local install-data-local
+
+ # 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 -rf ${pkgdir}/usr/share/doc
+
+ # link binaries into /usr/bin + jre/bin
+ install -m755 -d ${pkgdir}/usr/bin
+ install -m755 -d ${pkgdir}/${_jvmdir}/jre/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}/lib/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 -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/man
+ rm -rf ${pkgdir}/usr/share/icedtea-web # conflicting and unneeded file it seems
+}
diff --git a/extra/icedtea-web/icedtea-web-1.1.4-npapi-fix.patch b/extra/icedtea-web/icedtea-web-1.1.4-npapi-fix.patch
new file mode 100644
index 000000000..79ca0a6c0
--- /dev/null
+++ b/extra/icedtea-web/icedtea-web-1.1.4-npapi-fix.patch
@@ -0,0 +1,12 @@
+diff -up ./plugin/icedteanp/IcedTeaNPPlugin.cc.sav ./plugin/icedteanp/IcedTeaNPPlugin.cc
+--- ./plugin/icedteanp/IcedTeaNPPlugin.cc.sav 2011-11-08 17:27:29.046520865 -0500
++++ ./plugin/icedteanp/IcedTeaNPPlugin.cc 2011-11-08 17:27:40.469611421 -0500
+@@ -2262,7 +2262,7 @@ NP_Initialize (NPNetscapeFuncs* browserT
+
+ // Returns a string describing the MIME type that this plugin
+ // handles.
+-char*
++const char*
+ NP_GetMIMEDescription ()
+ {
+ PLUGIN_DEBUG ("NP_GetMIMEDescription\n");
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/PKGBUILD b/extra/icewm/PKGBUILD
new file mode 100644
index 000000000..7058d8b7a
--- /dev/null
+++ b/extra/icewm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 127320 2011-06-13 04:06:23Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=icewm
+pkgver=1.3.7
+pkgrel=1
+pkgdesc="A Window Manager designed for speed, usability, and consistency"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.icewm.org/"
+license=('LGPL')
+depends=('libxrandr' 'libxft' 'libsm' 'libxinerama' 'gdk-pixbuf2')
+makedepends=('xorg-mkfontdir')
+source=(http://downloads.sourceforge.net/sourceforge/icewm/${pkgname}-${pkgver}.tar.gz)
+md5sums=('224695231aedb2b91db3254a13e1c8dd')
+sha1sums=('ce8d86190e275dc7db2d8c28472a579264120803')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-shaped-decorations --enable-gradients
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install install-man install-docs install-desktop
+}
diff --git a/extra/icu/PKGBUILD b/extra/icu/PKGBUILD
new file mode 100644
index 000000000..d66fbebf8
--- /dev/null
+++ b/extra/icu/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 141339 2011-10-29 15:01:45Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Art Gramlich <art@gramlich-net.com>
+
+pkgname=icu
+pkgver=4.8.1.1
+pkgrel=1.1
+pkgdesc="International Components for Unicode library"
+arch=(i686 x86_64 'mips64el')
+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
+ icu.8198.revert.icu5431.patch)
+md5sums=('ea93970a0275be6b42f56953cd332c17'
+ 'ebd5470fc969c75e52baf4af94a9ee82')
+
+build() {
+ cd ${srcdir}/icu/source
+ # fix Malayalam encoding https://bugzilla.redhat.com/show_bug.cgi?id=654200
+ patch -Rp3 -i ${srcdir}/icu.8198.revert.icu5431.patch
+ ./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/icu/icu.8198.revert.icu5431.patch b/extra/icu/icu.8198.revert.icu5431.patch
new file mode 100644
index 000000000..4c3e78b8e
--- /dev/null
+++ b/extra/icu/icu.8198.revert.icu5431.patch
@@ -0,0 +1,129 @@
+Index: icu/trunk/source/layout/IndicReordering.cpp
+===================================================================
+--- icu/trunk/source/layout/IndicReordering.cpp (revision 25772)
++++ icu/trunk/source/layout/IndicReordering.cpp (revision 26090)
+@@ -126,4 +126,8 @@
+ FeatureMask fSMFeatures;
+
++ LEUnicode fPreBaseConsonant;
++ LEUnicode fPreBaseVirama;
++ le_int32 fPBCIndex;
++ FeatureMask fPBCFeatures;
+
+ void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass)
+@@ -172,5 +176,6 @@
+ fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups),
+ fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0),
+- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0)
++ fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0),
++ fPreBaseConsonant(0), fPreBaseVirama(0), fPBCIndex(0), fPBCFeatures(0)
+ {
+ // nothing else to do...
+@@ -191,4 +196,6 @@
+ fVMabove = fVMpost = 0;
+ fSMabove = fSMbelow = 0;
++
++ fPreBaseConsonant = fPreBaseVirama = 0;
+ }
+
+@@ -386,4 +393,12 @@
+ }
+
++ void notePreBaseConsonant(le_uint32 index,LEUnicode PBConsonant, LEUnicode PBVirama, FeatureMask features)
++ {
++ fPBCIndex = index;
++ fPreBaseConsonant = PBConsonant;
++ fPreBaseVirama = PBVirama;
++ fPBCFeatures = features;
++ }
++
+ void noteBaseConsonant()
+ {
+@@ -465,4 +480,20 @@
+ }
+
++ void writePreBaseConsonant()
++ {
++ // The TDIL spec says that consonant + virama + RRA should produce a rakar in Malayalam. However,
++ // it seems that almost none of the fonts for Malayalam are set up to handle this.
++ // So, we're going to force the issue here by using the rakar as defined with RA in most fonts.
++
++ if (fPreBaseConsonant == 0x0d31) { // RRA
++ fPreBaseConsonant = 0x0d30; // RA
++ }
++
++ if (fPreBaseConsonant != 0) {
++ writeChar(fPreBaseConsonant, fPBCIndex, fPBCFeatures);
++ writeChar(fPreBaseVirama,fPBCIndex-1,fPBCFeatures);
++ }
++ }
++
+ le_int32 getOutputIndex()
+ {
+@@ -723,4 +754,5 @@
+ }
+
++
+ IndicClassTable::CharClass charClass = CC_RESERVED;
+ IndicClassTable::CharClass nextClass = CC_RESERVED;
+@@ -730,7 +762,9 @@
+ le_bool seenVattu = FALSE;
+ le_bool seenBelowBaseForm = FALSE;
++ le_bool seenPreBaseForm = FALSE;
+ le_bool hasNukta = FALSE;
+ le_bool hasBelowBaseForm = FALSE;
+ le_bool hasPostBaseForm = FALSE;
++ le_bool hasPreBaseForm = FALSE;
+
+ if (postBase < markStart && classTable->isNukta(chars[postBase])) {
+@@ -746,12 +780,20 @@
+ hasBelowBaseForm = IndicClassTable::hasBelowBaseForm(charClass) && !hasNukta;
+ hasPostBaseForm = IndicClassTable::hasPostBaseForm(charClass) && !hasNukta;
++ hasPreBaseForm = IndicClassTable::hasPreBaseForm(charClass) && !hasNukta;
+
+ if (IndicClassTable::isConsonant(charClass)) {
+ if (postBaseLimit == 0 || seenVattu ||
+ (baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) ||
+- !(hasBelowBaseForm || hasPostBaseForm)) {
++ !(hasBelowBaseForm || hasPostBaseForm || hasPreBaseForm)) {
+ break;
+ }
+
++ // Note any pre-base consonants
++ if ( baseConsonant == lastConsonant && lastConsonant > 0 &&
++ hasPreBaseForm && classTable->isVirama(chars[baseConsonant - 1])) {
++ output.notePreBaseConsonant(lastConsonant,chars[lastConsonant],chars[lastConsonant-1],tagArray2);
++ seenPreBaseForm = TRUE;
++
++ }
+ // consonants with nuktas are never vattus
+ seenVattu = IndicClassTable::isVattu(charClass) && !hasNukta;
+@@ -786,10 +828,12 @@
+
+ // write any pre-base consonants
++ output.writePreBaseConsonant();
++
+ le_bool supressVattu = TRUE;
+
+ for (i = baseLimit; i < baseConsonant; i += 1) {
+ LEUnicode ch = chars[i];
+- // Don't put 'blwf' on first consonant.
+- FeatureMask features = (i == baseLimit? tagArray2 : tagArray1);
++ // Don't put 'pstf' or 'blwf' on anything before the base consonant.
++ FeatureMask features = tagArray1 & ~( pstfFeatureMask | blwfFeatureMask );
+
+ charClass = classTable->getCharClass(ch);
+@@ -842,5 +886,5 @@
+
+ // write below-base consonants
+- if (baseConsonant != lastConsonant) {
++ if (baseConsonant != lastConsonant && !seenPreBaseForm) {
+ for (i = bcSpan + 1; i < postBase; i += 1) {
+ output.writeChar(chars[i], i, tagArray1);
+@@ -872,5 +916,5 @@
+ // write post-base consonants
+ // FIXME: does this put the right tags on post-base consonants?
+- if (baseConsonant != lastConsonant) {
++ if (baseConsonant != lastConsonant && !seenPreBaseForm) {
+ if (postBase <= lastConsonant) {
+ for (i = postBase; i <= lastConsonant; i += 1) {
diff --git a/extra/id3/PKGBUILD b/extra/id3/PKGBUILD
new file mode 100644
index 000000000..12929c8ce
--- /dev/null
+++ b/extra/id3/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137772 2011-09-10 18:35:00Z eric $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=id3
+pkgver=0.78
+pkgrel=3
+pkgdesc="Utility to edit id3v1 and id3v2 tags"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freshmeat.net/projects/id3"
+license=('BSD')
+depends=('gcc-libs')
+options=('!makeflags')
+source=(http://linux-bsd-unix.strefa.pl/${pkgname}-${pkgver}.tar.gz
+ id3-0.78-gcc44.patch)
+md5sums=('bbc2a5d8022006330e6bb51034fafb43'
+ '51370be8d2624efee3683efab608a7f1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/id3-0.78-gcc44.patch
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..332f24875
--- /dev/null
+++ b/extra/id3lib/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 123876 2011-05-14 00:23:46Z andrea $
+# Maintainer:
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=id3lib
+pkgver=3.8.3
+pkgrel=11
+pkgdesc="An open-source, cross-platform software development library for reading, writing, and manipulating ID3v1 and ID3v2 tags"
+arch=(i686 x86_64 'mips64el')
+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 "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/patch_id3lib_3.8.3_UTF16_writing_bug.diff
+ patch -p0 -i "${srcdir}"/id3lib-3.8.3-CVE-2007-4460.patch
+ patch -p1 -i "${srcdir}"/id3lib-3.8.3-gcc-4.3.patch
+ ./configure --prefix=/usr
+ sed -i -e 's/^LIBS =/LIBS = -lz -lstdc++/' src/Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" 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..ad7900dc6
--- /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' 'mips64el')
+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..b49d417eb
--- /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' 'mips64el')
+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..6730537bc
--- /dev/null
+++ b/extra/ilmbase/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ilmbase
+pkgver=1.0.2
+pkgrel=1
+depends=('gcc-libs')
+pkgdesc="Base libraries from ILM for OpenEXR"
+arch=(i686 x86_64 mips64el)
+license=('custom')
+options=('!libtool')
+source=(http://savannah.nongnu.org/download/openexr/$pkgname-$pkgver.tar.gz
+ tests-compile-fixes.patch)
+url="http://www.openexr.com"
+md5sums=('26c133ee8ca48e1196fbfb3ffe292ab4'
+ '2687ab9ac01b417ee5cf8c0174b72e43')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i ${srcdir}/tests-compile-fixes.patch
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/$pkgname-$pkgver
+ # one of the tests fails randomly for an unknown reason
+ make check || true
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/ilmbase/tests-compile-fixes.patch b/extra/ilmbase/tests-compile-fixes.patch
new file mode 100644
index 000000000..27dc24ac6
--- /dev/null
+++ b/extra/ilmbase/tests-compile-fixes.patch
@@ -0,0 +1,12 @@
+diff -ur ilmbase-1.0.2/Imath/ImathMatrix.h ilmbase-1.0.2.new/Imath/ImathMatrix.h
+--- ilmbase-1.0.2/Imath/ImathMatrix.h 2010-07-17 00:48:40.000000000 +0200
++++ ilmbase-1.0.2.new/Imath/ImathMatrix.h 2011-04-25 10:15:21.121608420 +0200
+@@ -49,6 +49,8 @@
+ #include "ImathVec.h"
+ #include "ImathShear.h"
+
++#include <cstdlib>
++#include <cstring>
+ #include <iostream>
+ #include <iomanip>
+
diff --git a/extra/imagemagick/PKGBUILD b/extra/imagemagick/PKGBUILD
new file mode 100644
index 000000000..25fa6b756
--- /dev/null
+++ b/extra/imagemagick/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 144992 2011-12-13 18:04:12Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgbase=imagemagick
+pkgname=('imagemagick' 'imagemagick-doc')
+pkgver=6.7.4.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.imagemagick.org/"
+license=('custom')
+depends=('libltdl' 'lcms2' 'libxt' 'xz' 'fontconfig' 'libxext' 'libjpeg-turbo')
+makedepends=('ghostscript' 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'libpng')
+source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \
+ perlmagick.rpath.patch)
+sha1sums=('f0310885972341b74670925b503ad8a8b05ad75d'
+ '23405f80904b1de94ebd7bd6fe2a332471b8c283')
+
+build() {
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+
+ sed '/AC_PATH_XTRA/d' -i configure.ac
+ autoreconf
+ patch -p0 -i ../perlmagick.rpath.patch
+
+ LIBS="$LIBS -L/usr/lib/perl5/core_perl/CORE -lperl" \
+ ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \
+ --enable-openmp --with-wmf --with-openexr --with-xml --with-lcms2 --with-jp2 \
+ --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \
+ --with-perl --with-perl-options="INSTALLDIRS=vendor" \
+ --without-gvc --without-djvu --without-autotrace --without-webp \
+ --without-jbig --without-fpx --without-dps --without-fftw --without-lqr
+ make
+}
+
+check() {
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make check
+}
+
+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/coder.xml'
+ 'etc/ImageMagick/colors.xml'
+ 'etc/ImageMagick/delegates.xml'
+ 'etc/ImageMagick/log.xml'
+ 'etc/ImageMagick/magic.xml'
+ 'etc/ImageMagick/mime.xml'
+ 'etc/ImageMagick/policy.xml'
+ 'etc/ImageMagick/sRGB.icc'
+ 'etc/ImageMagick/thresholds.xml'
+ 'etc/ImageMagick/type.xml'
+ 'etc/ImageMagick/type-dejavu.xml'
+ 'etc/ImageMagick/type-ghostscript.xml'
+ 'etc/ImageMagick/type-windows.xml')
+ options=('!makeflags' '!docs' 'libtool')
+
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make DESTDIR="${pkgdir}" install
+ chmod 755 "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Image/Magick/Magick.so"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE"
+ install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE"
+
+#Cleaning
+ find "${pkgdir}" -name '*.bs' -delete
+ 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/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..a0196e69f
--- /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 'mips64el')
+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..ec068d19b
--- /dev/null
+++ b/extra/imap/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 132404 2011-07-24 11:35:43Z pierre $
+
+pkgname=imap
+pkgver=2007f
+pkgrel=1
+pkgdesc="An IMAP/POP server"
+arch=('i686' 'x86_64' 'mips64el')
+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=('2126fd125ea26b73b20f01fcd5940369'
+ 'e77dedb80c2fec9bf2ef784ed5f976fb'
+ 'cc3eba6453242aa0b1bc8881160b2136'
+ '0a5e27183a9b7e8ec5f6703125371e0a')
+
+build() {
+ 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:" \
+ -i $srcdir/$pkgname-$pkgver/src/osdep/unix/Makefile
+
+ cd $srcdir/$pkgname-$pkgver
+ # NOTE: if you wish to enforce SSL, use SSLTYPE=unix.nopwd
+
+ if [ "$CARCH" == "x86_64" -o "$CARCH" == "mips64el" ]; 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
+
+ # create ssl certs for secure imap
+ for i in imapd ipop3d; do
+ PEM1=$srcdir/pem1
+ PEM2=$srcdir/pem2
+ /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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -d $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
+
+ # install certs
+ 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/PKGBUILD b/extra/imlib/PKGBUILD
new file mode 100644
index 000000000..83746ce4f
--- /dev/null
+++ b/extra/imlib/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 134264 2011-08-02 18:15:21Z jgc $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=imlib
+pkgver=1.9.15
+pkgrel=10
+pkgdesc="General image handling library for X11 and Gtk"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freshmeat.net/projects/imlib/"
+license=('GPL')
+depends=('gtk' 'giflib' 'libpng>=1.4.0' 'libtiff>=3.9.2-2' 'libjpeg>=8')
+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"
+ patch -Np1 -i "${srcdir}/CAN-2004-1026.patch"
+ patch -Np0 -i "${srcdir}/aclocal-fixes.patch"
+ patch -Np1 -i "${srcdir}/libpng14.patch"
+ sed '/AC_PATH_XTRA/d' -i configure.in
+ libtoolize --force
+ cp /usr/bin/libtool .
+ autoreconf --force --install
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-shm --disable-static
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+ make DESTDIR="${pkgdir}" install
+}
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..a67585373
--- /dev/null
+++ b/extra/imlib2/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 136939 2011-09-03 09:44:35Z 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.5
+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' 'mips64el')
+license=('BSD')
+depends=('libtiff' 'giflib' 'bzip2' 'freetype2' 'libxext' 'libpng' 'libid3tag' 'libjpeg-turbo')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/enlightenment/$pkgname-$pkgver.tar.bz2")
+sha1sums=('af86a2c38f4bc3806db57e64e74dc9814ad474a0')
+
+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
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # 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..5360329ce
--- /dev/null
+++ b/extra/indent/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 127328 2011-06-13 05:26:28Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: aurelien <aurelien@archlinux.org>
+# Contributor: Herb Rose (hrose56@yahoo.com)
+
+pkgname=indent
+pkgver=2.2.11
+pkgrel=1
+pkgdesc="A tool to change the appearance of a C program by inserting or deleting whitespace"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://indent.isidore-it.eu/beautify.html"
+depends=('glibc')
+makedepends=('texi2html')
+license=('GPL3')
+install=indent.install
+source=(http://indent.isidore-it.eu/$pkgname-$pkgver.tar.gz indent-2.2.11-segfault.patch)
+md5sums=('98beafca62472805a3739d3867d5d70f'
+ 'e5ded8513547ff4555dec2bb805dd2ab')
+sha1sums=('9b242528bbc4914464117c69ffae9df24d3fa4a7'
+ '31a6dcd5edcac4decac81dbb52bc9415b8b148e4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i ../indent-2.2.11-segfault.patch
+ sed -i 's/-number/-number-sections/' doc/Makefile.in
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" docdir=/usr/share/doc/indent install
+}
diff --git a/extra/indent/indent-2.2.11-segfault.patch b/extra/indent/indent-2.2.11-segfault.patch
new file mode 100644
index 000000000..e91922480
--- /dev/null
+++ b/extra/indent/indent-2.2.11-segfault.patch
@@ -0,0 +1,16 @@
+--- a/man/texinfo2man.c
++++ b/man/texinfo2man.c
+@@ -287,6 +287,13 @@
+ char buf[1024];
+ int line_no = 0;
+
++ if (argc != 3)
++ {
++ fprintf(stderr, "Usage: %s <man template> <info file>\n", argv[0]);
++ fprintf(stderr, " The man page will be written to stdout.\n");
++ return -1;
++ }
++
+ texinfoname = argv[2];
+
+ in = fopen (argv[2], "r");
diff --git a/extra/indent/indent.install b/extra/indent/indent.install
new file mode 100644
index 000000000..c5a87a6d9
--- /dev/null
+++ b/extra/indent/indent.install
@@ -0,0 +1,16 @@
+info_dir=usr/share/info
+info_file=indent.info.gz
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info ${info_dir}/$info_file ${info_dir}/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ 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..9aeda8fef
--- /dev/null
+++ b/extra/inkscape/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 143645 2011-11-28 00:27:02Z bisson $
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=inkscape
+pkgver=0.48.2
+pkgrel=5
+pkgdesc='Vector graphics editor using the SVG file format'
+url='http://inkscape.sourceforge.net/'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL')
+makedepends=('boost' 'pkg-config' 'intltool')
+depends=('gc' 'gtkmm' 'poppler-glib' 'libxslt' 'gsl' 'popt' 'python2'
+ 'gtkspell' 'imagemagick' 'desktop-file-utils' 'hicolor-icon-theme')
+optdepends=('pstoedit: latex formulas'
+ 'texlive-core: latex formulas'
+ 'python2-numpy: some extensions'
+ 'python-lxml: some extensions and filters'
+ 'pyxml: some extensions'
+ 'uniconvertor: reading/writing to some proprietary formats')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('422a4bacd4dc42adafa203244bc9816783cba4d3')
+
+install=install
+
+build() {
+ # Workaround madd.d making a SIGILL on a NaN.
+ [ "$CARCH" == "mips64el" ] && {
+ CFLAGS=${CFLAGS/-march=loongson2f/-march=mips3 -mtune=loongson2f}
+ CXXFLAGS=${CXXFLAGS/-march=loongson2f/-march=mips3 -mtune=loongson2f}
+ }
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ 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' configure share/extensions/uniconv*.py
+ sed -i 's|"python"|"python2"|g' src/main.cpp
+
+ ./configure --prefix=/usr \
+ --with-python \
+ --with-perl \
+ --without-gnome-vfs \
+ --with-xft \
+ --enable-lcms \
+ --enable-poppler-cairo \
+ --disable-dependency-tracking \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/inkscape/install b/extra/inkscape/install
new file mode 100644
index 000000000..6e803bf1d
--- /dev/null
+++ b/extra/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..9f80c9c06
--- /dev/null
+++ b/extra/iperf/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143786 2011-11-29 11:18:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=iperf
+pkgver=2.0.5
+pkgrel=3
+pkgdesc="A tool to measure maximum TCP bandwidth"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://iperf.sourceforge.net"
+depends=('gcc-libs')
+source=("http://downloads.sourceforge.net/iperf/iperf-2.0.5.tar.gz"
+ 'license'
+ 'client.cpp.patch')
+md5sums=('44b5536b67719f4250faed632a3cd016'
+ 'a2879f900b76668b28a1cc922909db18'
+ '82ce63c87cc8bb2f0f94069857ac14a9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # FS#25159
+ patch -Np1 -i ${srcdir}/client.cpp.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 ${srcdir}/license "${pkgdir}/usr/share/licenses/iperf/LICENSE"
+}
diff --git a/extra/iperf/client.cpp.patch b/extra/iperf/client.cpp.patch
new file mode 100644
index 000000000..85f89e765
--- /dev/null
+++ b/extra/iperf/client.cpp.patch
@@ -0,0 +1,17 @@
+--- a/src/Client.cpp 2010-04-01 22:23:17.000000000 +0200
++++ b/src/Client.cpp 2011-07-19 11:03:42.000000000 +0200
+@@ -212,10 +212,10 @@
+ char* readAt = mBuf;
+
+ #if HAVE_THREAD
+- if ( !isUDP( mSettings ) ) {
+- RunTCP();
+- return;
+- }
++// if ( !isUDP( mSettings ) ) {
++// RunTCP();
++// return;
++// }
+ #endif
+
+ // Indicates if the stream is readable
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/iptraf-ng/PKGBUILD b/extra/iptraf-ng/PKGBUILD
new file mode 100644
index 000000000..b47082e86
--- /dev/null
+++ b/extra/iptraf-ng/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 121278 2011-04-30 08:10:51Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Maintainer: sh0 <mee@sh0.org>
+
+pkgname=iptraf-ng
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="A console-based network monitoring utility (a fork of original iptraf)"
+url="https://fedorahosted.org/iptraf-ng/"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('ncurses')
+license=('GPL2')
+replaces=('iptraf')
+options=('!libtool')
+source=(https://fedorahosted.org/releases/i/p/iptraf-ng/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b2adbbbee4c269fb97a1951981c9047c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make CFLAGS="$CFLAGS"
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR=$pkgdir install
+ install -dm755 "${pkgdir}/var/lib/iptraf"
+}
+
+# vim: ts=2: ft=sh
diff --git a/extra/irqbalance/PKGBUILD b/extra/irqbalance/PKGBUILD
new file mode 100644
index 000000000..bb30981e5
--- /dev/null
+++ b/extra/irqbalance/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Martin Striz <ms@poruba.net>
+
+pkgname=irqbalance
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="IRQ balancing daemon for SMP systems"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/irqbalance"
+license=('GPL')
+depends=(glib2 numactl libcap-ng)
+makedepends=(pkgconfig)
+backup=(etc/conf.d/irqbalance)
+source=(http://irqbalance.googlecode.com/files/irqbalance-$pkgver.tar.gz
+ irqbalance.conf.d
+ irqbalance.rc.d)
+md5sums=('6f246481d6295bcb9a79751c03207c96'
+ '336c1ee99818f9ecda1687e34c69fd6b'
+ 'fb82fc5d267d39110baf720d81282a7c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make install DESTDIR="$pkgdir"
+ 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..74702e9ad
--- /dev/null
+++ b/extra/irssi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 125226 2011-05-25 19:11:10Z foutrelis $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+
+pkgname=irssi
+pkgver=0.8.15
+pkgrel=5
+pkgdesc="Modular text mode IRC client with Perl scripting"
+arch=('i686' 'x86_64' 'mips64el')
+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..1d8c77b04
--- /dev/null
+++ b/extra/isapnptools/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 136974 2011-09-04 11:49:36Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=isapnptools
+pkgver=1.27
+pkgrel=3
+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' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..4cd911cbe
--- /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' 'mips64el')
+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..42115abe1
--- /dev/null
+++ b/extra/ivtv-utils/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 143788 2011-11-29 11:25:59Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=ivtv-utils
+pkgver=1.4.1
+pkgrel=4
+pkgdesc="Userspace utilities for Hauppauge PVR cards"
+arch=('i686' 'x86_64' 'mips64el')
+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/40-hpet-permissions.rules b/extra/jack/40-hpet-permissions.rules
new file mode 100644
index 000000000..7af3780f9
--- /dev/null
+++ b/extra/jack/40-hpet-permissions.rules
@@ -0,0 +1,2 @@
+KERNEL=="rtc0", GROUP="audio"
+KERNEL=="hpet", GROUP="audio"
diff --git a/extra/jack/99-audio.conf b/extra/jack/99-audio.conf
new file mode 100644
index 000000000..eb76ef920
--- /dev/null
+++ b/extra/jack/99-audio.conf
@@ -0,0 +1,2 @@
+@audio - rtprio 99
+@audio - memlock unlimited
diff --git a/extra/jack/PKGBUILD b/extra/jack/PKGBUILD
new file mode 100644
index 000000000..67bcb8355
--- /dev/null
+++ b/extra/jack/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 144303 2011-12-04 16:54:45Z 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.121.3
+pkgrel=4
+pkgdesc="A low-latency audio server"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL')
+depends=('libsamplerate' 'readline')
+makedepends=('doxygen' 'libffado' 'celt')
+optdepends=('libffado: FireWire support'
+ 'celt: NetJACK driver')
+[ "$CARCH" = "mips64el" ] && {
+makedepends=('doxygen' 'celt')
+optdepends=('celt: NetJACK driver')
+}
+url="http://jackaudio.org/"
+backup=(etc/security/limits.d/99-audio.conf)
+options=('!libtool')
+provides=("$_longname=$pkgver")
+conflicts=("$_longname")
+replaces=("$_longname")
+source=("http://jackaudio.org/downloads/$_longname-$pkgver.tar.gz"
+ '99-audio.conf'
+ '40-hpet-permissions.rules')
+md5sums=('35f470f7422c37b33eb965033f7a42e8'
+ 'ae65b7c9ebe0fff6c918ba9d97ae342d'
+ '471aad533ff56c5d3cbbf65ce32cadef')
+
+build() {
+ cd "$srcdir/$_longname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib
+ make
+}
+
+package() {
+ cd "$srcdir/$_longname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # configure realtime access/scheduling
+ # see https://bugs.archlinux.org/task/26343
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ # install a missing header forgotten by upstream
+ # see https://bugs.archlinux.org/task/26865
+ install -Dm644 "$srcdir/$_longname-$pkgver/jack/jslist.h" \
+ "$pkgdir/usr/include/jack/jslist.h"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/jade/PKGBUILD b/extra/jade/PKGBUILD
new file mode 100644
index 000000000..d4935a934
--- /dev/null
+++ b/extra/jade/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 123729 2011-05-12 20:42:42Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=jade
+pkgver=1.2.1
+pkgrel=6
+_debpatch=47
+pkgdesc="James Clark's DSSSL Engine"
+url='http://www.jclark.com/jade/'
+arch=('i686' 'x86_64' 'mips64el')
+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}
+
+ export CXXFLAGS="$CXXFLAGS -fpermissive"
+
+ patch -p1 -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 -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/jasper/PKGBUILD b/extra/jasper/PKGBUILD
new file mode 100644
index 000000000..ee6a11d7d
--- /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' 'mips64el')
+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..19e7e1e03
--- /dev/null
+++ b/extra/java-access-bridge/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144415 2011-12-05 16:00:05Z jgc $
+# Maitnainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=java-access-bridge
+pkgver=1.26.2
+pkgrel=3
+pkgdesc="Java bindings for the GNOME accessibility framework"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://www.gnome.org"
+depends=('java-runtime' 'gtk2' 'at-spi' 'libbonobo' 'xorg-xprop')
+makedepends=('intltool' 'pkgconfig' 'java-environment')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/java-commons-daemon/PKGBUILD b/extra/java-commons-daemon/PKGBUILD
new file mode 100644
index 000000000..a37658b7f
--- /dev/null
+++ b/extra/java-commons-daemon/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
+pkgname=('java-commons-daemon' 'java-jsvc')
+pkgbase=java-commons-daemon
+pkgver=1.0.8
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://commons.apache.org/daemon/"
+license=('APACHE')
+_libname=commons-daemon
+source=(http://archive.apache.org/dist/commons/daemon/source/${_libname}-${pkgver}-src.tar.gz)
+md5sums=('323a0bd9e2786256f02c5aed4e887fed')
+makedepends=('apache-ant' 'docbook2x' 'docbook-xsl')
+
+build() {
+ # commons-daemon.jar
+ cd "${srcdir}/${_libname}-${pkgver}-src"
+ ant
+
+ # jsvc
+ cd "${srcdir}/${_libname}-${pkgver}-src/src/native/unix"
+ ./configure
+ make
+ docbook2man man/jsvc.1.xml
+}
+
+package_java-commons-daemon() {
+ pkgdesc="Alternative invocation mechanism for unix-daemon-like java code"
+ depends=('java-runtime')
+
+ cd "${srcdir}/${_libname}-${pkgver}-src"
+
+ install -Dm755 dist/${_libname}-${pkgver}.jar \
+ ${pkgdir}/usr/share/java/${_libname}-${pkgver}.jar
+ ln -s ${_libname}-${pkgver}.jar \
+ ${pkgdir}/usr/share/java/${_libname}.jar
+}
+
+package_java-jsvc() {
+ pkgdesc="Apache application for making Java applications run on UNIX more easily"
+ depends=("java-${_libname}" 'libcap')
+
+ cd "${srcdir}/${_libname}-${pkgver}-src/src/native/unix"
+
+ install -Dm755 jsvc ${pkgdir}/usr/bin/jsvc
+ install -Dm644 JSVC.1 ${pkgdir}/usr/share/man/man1/JSVC.1
+}
+
diff --git a/extra/java7-openjdk/PKGBUILD b/extra/java7-openjdk/PKGBUILD
new file mode 100644
index 000000000..84488e042
--- /dev/null
+++ b/extra/java7-openjdk/PKGBUILD
@@ -0,0 +1,263 @@
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Guillaume ALAUX <guillaume@archlinux.org>
+
+pkgname=('jre7-openjdk' 'jdk7-openjdk' 'openjdk7-src')
+pkgbase=java7-openjdk
+_java_ver=7
+_openjdk_build=b147
+_openjdk_date=27_jun_2011
+_icedtea_ver=2.0
+_date=20110922
+
+# check "${srcdir}/icedtea7"/Makefile.am
+_CORBA_CHANGESET=4d9e4fb8af09
+_HOTSPOT_CHANGESET=b28ae681bae0
+_JAXP_CHANGESET=948e734135ea
+_JAXWS_CHANGESET=a2ebfdc9db7e
+_JDK_CHANGESET=2054526dd141
+_LANGTOOLS_CHANGESET=9b85f1265346
+_OPENJDK_CHANGESET=0a76e5390e68
+
+pkgver=${_java_ver}.${_openjdk_build}_${_icedtea_ver}
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://icedtea.classpath.org"
+license=('custom')
+makedepends=('libcups' 'libxp' 'libxtst' 'libxi' 'libxt' 'libxslt' 'freetype2' #'eclipse-ecj' only for bootstrapping
+ 'alsa-lib' 'xalan-java' 'glib2' 'gtk2' 'apache-ant>=1.6.5' 'giflib'
+ 'libjpeg>=6b' 'zlib' 'rhino' 'libpulse>=0.9.11' 'zip' 'unzip' 'cpio' 'lcms2')
+source=( #ftp://ftp.archlinux.org/other/$pkgname/icedtea7-${_date}-hg.tar.xz
+ http://icedtea.classpath.org/download/source/icedtea-${_icedtea_ver}.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/archive/${_OPENJDK_CHANGESET}.tar.gz # openjdk.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/corba/archive/${_CORBA_CHANGESET}.tar.gz # corba.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/jaxp/archive/${_JAXP_CHANGESET}.tar.gz # jaxp.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/jaxws/archive/${_JAXWS_CHANGESET}.tar.gz # jaxws.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/jdk/archive/${_JDK_CHANGESET}.tar.gz # jdk.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/langtools/archive/${_LANGTOOLS_CHANGESET}.tar.gz # langtools.tar.gz
+ http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/archive/${_HOTSPOT_CHANGESET}.tar.gz # hotspot.tar.gz
+ fontconfig-paths.diff
+ fix_corba_cmds_path.diff
+ openjdk7_fix_jdk_cmds_path.diff
+ openjdk7_nonreparenting-wm.diff
+ jdk7-openjdk.profile
+ jdk7-openjdk.profile.csh
+ jre7-openjdk.profile
+ jre7-openjdk.profile.csh
+ jconsole.desktop
+ policytool.desktop)
+
+#http://www.java.net/download/openjdk/jdk${_java_ver}/promoted/${_openjdk_build}/openjdk-${_java_ver}-fcs-src-${_openjdk_build}-${_openjdk_date}.zip
+
+noextract=("${_OPENJDK_CHANGESET}.tar.gz"
+ "${_CORBA_CHANGESET}.tar.gz"
+ "${_JAXP_CHANGESET}.tar.gz"
+ "${_JAXWS_CHANGESET}.tar.gz"
+ "${_JDK_CHANGESET}.tar.gz"
+ "${_LANGTOOLS_CHANGESET}.tar.gz"
+ "${_HOTSPOT_CHANGESET}.tar.gz")
+md5sums=('752721a037a625001fad7a5fc2013f60'
+ 'ffb12013564794e9abbffbbbd0c58502'
+ '8f8d222d0a6d363d06b40576da5f1ea2'
+ '4abf34372e34cccd74ad337e487ed790'
+ 'f2f40590a83889b8aa1d4631b705092d'
+ 'd3beed0118bbd93d4651af762eb748c7'
+ 'c8617700b4bd6cd5de1257bc36509bed'
+ 'f10b711b0c784df8707808d9d0f52abd'
+ 'ee1afda124d5927345014ab382ef581e'
+ 'f7e7a212e50abb56a6ef1a2b1bd27405'
+ 'c195c4865b84d9e2e0fd71ac6d88eadb'
+ '203640d6e79e41b0065e016818c17ccd'
+ 'b7b8996448c7b4fa7dd2d744488ed3bd'
+ 'cdabafad0ec413d9a983888bf445a443'
+ '612b0fec7e0943c37a6de77c43622007'
+ '62443459da0cb28181feb260dc0e5ce7'
+ '8e346f19a69b11b8dc4fcd8ea9d9d8f1'
+ 'b6357228d29836504a90abe006d86e56')
+
+# source PKGBUILD && mksource
+#makedepends+=('mercurial')
+mksource() {
+ mkdir /tmp/icedtea7-${_date}
+ pushd /tmp/icedtea7-${_date}
+ hg -v clone http://icedtea.classpath.org/hg/icedtea7
+ rm -rf icedtea7/.hg*
+ tar -cvJf /tmp/icedtea7-${_date}/icedtea7-${_date}-hg.tar.xz *
+ popd
+}
+
+build() {
+ cd "${srcdir}/icedtea-${_icedtea_ver}"
+
+ unset JAVA_HOME
+ unset CLASSPATH
+ # default is to build with first found java-environment found in our repos - is jdk7-openjdk
+ [ -f /etc/profile.d/jdk7.sh ] && . /etc/profile.d/jdk7.sh
+
+ unset MAKEFLAGS
+ export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}"
+ export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}"
+
+ . /etc/profile.d/apache-ant.sh
+
+ cp ${srcdir}/*.diff ${srcdir}/icedtea-${_icedtea_ver}/patches
+ export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/openjdk7_fix_jdk_cmds_path.diff patches/openjdk7_nonreparenting-wm.diff"
+
+ # Bootstrap IcedTea with ecj and a GNU Classpath-based JDK:
+# autoreconf --force --install
+
+ ./configure \
+ --disable-bootstrap \
+ --with-parallel-jobs="${MAKEFLAGS/-j}" \
+ --disable-tests \
+ --with-pkgversion=ArchLinux-${pkgver}-${pkgrel}-${CARCH} \
+ --with-jdk-home=${JAVA_HOME} \
+ --with-openjdk-src-zip=${srcdir}/${_OPENJDK_CHANGESET}.tar.gz \
+ --with-hotspot-src-zip=${srcdir}/${_HOTSPOT_CHANGESET}.tar.gz \
+ --with-corba-src-zip=${srcdir}/${_CORBA_CHANGESET}.tar.gz \
+ --with-jaxp-src-zip=${srcdir}/${_JAXP_CHANGESET}.tar.gz \
+ --with-jaxws-src-zip=${srcdir}/${_JAXWS_CHANGESET}.tar.gz \
+ --with-jdk-src-zip=${srcdir}/${_JDK_CHANGESET}.tar.gz \
+ --with-langtools-src-zip=${srcdir}/${_LANGTOOLS_CHANGESET}.tar.gz \
+ --enable-pulse-java \
+# --with-rhino #--help
+
+ #--with-jaxp-drop-zip=${srcdir}/jaxp145_01.zip \
+ #--with-jaf-drop-zip=${srcdir}/jdk7-jaf-2010_08_19.zip \
+ #--with-jaxws-drop-zip=${srcdir}/jdk7-jaxws2_2_4-b03-2011_05_27.zip \
+
+# --enable-systemtap Enable inclusion of SystemTap trace support
+# --enable-nss Enable inclusion of NSS security provider
+# --with-abs-install-dir The absolute path where the j2sdk-image dir will be installed
+
+ make
+}
+
+check() {
+ cd "${srcdir}/icedtea-${_icedtea_ver}"
+ make -k check
+}
+
+package_jre7-openjdk() {
+ pkgdesc="Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - runtime environment"
+ depends=('gcc-libs' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst'
+ 'libxt' 'nss' 'libjpeg' 'freetype2' 'libxrender' 'libpng' 'gsettings-desktop-schemas')
+ optdepends=('icedtea-web-java7: web browser plugin + Java Web Start'
+ 'alsa-lib: for sound'
+ 'giflib: for gif format support')
+ provides=('java-runtime=7')
+ conflicts=('java-runtime')
+# replaces=('openjdk6') # once we remove openjdk6 pkg from the repos
+ backup=(etc/profile.d/jre7.sh)
+ install=jre7-openjdk.install
+
+ _jvmdir=/usr/lib/jvm/java-7-openjdk
+
+ cd "${srcdir}/icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image/jre"
+
+ install -d -m755 ${pkgdir}/${_jvmdir}/jre/
+ cp -a bin 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
+ pushd ../../j2re-image/man
+ install -m755 -d ${pkgdir}/usr/share/man/{,ja/}man1/
+ install -m644 man1/*.1 ${pkgdir}/usr/share/man/man1
+ install -m644 ja_JP.UTF-8/man1/*.1 ${pkgdir}/usr/share/man/ja/man1
+ 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
+
+ # Link binaries into /usr/bin
+ pushd ${pkgdir}/${_jvmdir}/jre/bin
+ install -m755 -d ${pkgdir}/usr/bin/
+ for file in *; do
+ ln -sf ${_jvmdir}/jre/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}/${pkgname}.profile ${pkgdir}/etc/profile.d/jre.sh
+ install -m755 ${srcdir}/${pkgname}.profile.csh ${pkgdir}/etc/profile.d/jre.csh
+
+ # Install license
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgbase}/
+ install -m644 ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README \
+ ${pkgdir}/usr/share/licenses/${pkgbase}
+}
+
+package_jdk7-openjdk() {
+ pkgdesc="Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - SDK"
+ depends=('jre7-openjdk')
+ provides=('java-environment=7')
+ conflicts=('java-environment')
+ # replaces=('openjdk6')
+ backup=(etc/profile.d/jdk7.sh)
+
+ _jvmdir=/usr/lib/jvm/java-7-openjdk
+
+ cd "${srcdir}/icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image"
+
+ # Main files
+ install -m755 -d ${pkgdir}/${_jvmdir}/
+
+ cp -a demo include lib sample ${pkgdir}/${_jvmdir}
+
+ # 'bin' files
+ pushd bin
+ install -m755 -d ${pkgdir}/${_jvmdir}/bin/ \
+ ${pkgdir}/usr/bin/ \
+ ${pkgdir}/usr/share/man/{,ja/}man1/
+
+ # 'java-rmi.cgi' will be handled separately as it should not be in the PATH and has no man page
+ for b in $(ls | grep -v java-rmi.cgi); do
+ if [ -e ../jre/bin/${b} ]; then
+ # Provide a link of the jre binary in the jdk/bin/ directory
+ ln -s ../jre/bin/${b} ${pkgdir}/${_jvmdir}/bin/${b}
+ else
+ # Copy binary to jdk/bin/
+ install -m755 ${b} ${pkgdir}/${_jvmdir}/bin/${b}
+ # Copy man page
+ install -m644 ../man/man1/${b}.1 ${pkgdir}/usr/share/man/man1/${b}.1
+ install -m644 ../man/ja/man1/${b}.1 ${pkgdir}/usr/share/man/ja/man1/${b}.1
+ # Link from /bin/
+ ln -s ${_jvmdir}/bin/${b} ${pkgdir}/usr/bin/${b}
+ fi
+ done
+ popd
+
+ # Handling 'java-rmi.cgi' separately
+ install -m755 -D bin/java-rmi.cgi ${pkgdir}/${_jvmdir}/bin/java-rmi.cgi
+
+ # Desktop files
+ install -m755 -d ${pkgdir}/usr/share/applications/
+ install -m644 ${srcdir}/{jconsole,policytool}.desktop ${pkgdir}/usr/share/applications/
+
+ # Set some variables
+ install -m755 -d ${pkgdir}/etc/profile.d/
+ install -m755 ${srcdir}/${pkgname}.profile ${pkgdir}/etc/profile.d/jdk.sh
+ install -m755 ${srcdir}/${pkgname}.profile.csh ${pkgdir}/etc/profile.d/jdk.csh
+}
+
+package_openjdk7-src() {
+ pkgdesc="Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - sources"
+
+ install -D ${srcdir}/icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image/src.zip \
+ ${pkgdir}/${_jvmdir}/src.zip
+}
diff --git a/extra/java7-openjdk/fix_corba_cmds_path.diff b/extra/java7-openjdk/fix_corba_cmds_path.diff
new file mode 100644
index 000000000..842657880
--- /dev/null
+++ b/extra/java7-openjdk/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/java7-openjdk/fontconfig-paths.diff b/extra/java7-openjdk/fontconfig-paths.diff
new file mode 100644
index 000000000..fa08db629
--- /dev/null
+++ b/extra/java7-openjdk/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/java7-openjdk/jconsole.desktop b/extra/java7-openjdk/jconsole.desktop
new file mode 100644
index 000000000..ffbdd42ad
--- /dev/null
+++ b/extra/java7-openjdk/jconsole.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenJDK Monitoring & Management Console
+Comment=Monitor and manage OpenJDK applications
+Exec=/usr/bin/jconsole
+Icon=java
+Terminal=false
+Type=Application
+StartupWMClass=sun-tools-jconsole-JConsole
+Categories=Development;Monitor;Java;
+Version=1.0
diff --git a/extra/java7-openjdk/jdk7-openjdk.profile b/extra/java7-openjdk/jdk7-openjdk.profile
new file mode 100644
index 000000000..91265cc86
--- /dev/null
+++ b/extra/java7-openjdk/jdk7-openjdk.profile
@@ -0,0 +1,6 @@
+export J2SDKDIR=/usr/lib/jvm/java-7-openjdk
+export J2REDIR=$J2SDKDIR/jre
+export JAVA_HOME=/usr/lib/jvm/java-7-openjdk
+
+# For non-reparenting window managers, enable '_JAVA_AWT_WM_NONREPARENTING'
+# in /etc/profile.d/jre7.sh
diff --git a/extra/java7-openjdk/jdk7-openjdk.profile.csh b/extra/java7-openjdk/jdk7-openjdk.profile.csh
new file mode 100644
index 000000000..cc7dc8ab1
--- /dev/null
+++ b/extra/java7-openjdk/jdk7-openjdk.profile.csh
@@ -0,0 +1 @@
+setenv J2SDKDIR "/usr/lib/jvm/java-7-openjdk"
diff --git a/extra/java7-openjdk/jre7-openjdk.install b/extra/java7-openjdk/jre7-openjdk.install
new file mode 100644
index 000000000..d311e6e44
--- /dev/null
+++ b/extra/java7-openjdk/jre7-openjdk.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/jre7.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/java7-openjdk/jre7-openjdk.profile b/extra/java7-openjdk/jre7-openjdk.profile
new file mode 100644
index 000000000..c86ce857a
--- /dev/null
+++ b/extra/java7-openjdk/jre7-openjdk.profile
@@ -0,0 +1,5 @@
+export J2REDIR=/usr/lib/jvm/java-7-openjdk/jre
+export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-7-openjdk/jre}
+
+# enable this for non-reparenting window managers
+#export _JAVA_AWT_WM_NONREPARENTING=1
diff --git a/extra/java7-openjdk/jre7-openjdk.profile.csh b/extra/java7-openjdk/jre7-openjdk.profile.csh
new file mode 100644
index 000000000..a9aed27d1
--- /dev/null
+++ b/extra/java7-openjdk/jre7-openjdk.profile.csh
@@ -0,0 +1,5 @@
+setenv J2REDIR "/usr/lib/jvm/java-7-openjdk/jre"
+setenv JAVA_HOME "/usr/lib/jvm/java-7-openjdk/jre"
+
+# enable this for non-reparenting window managers
+#setenv _JAVA_AWT_WM_NONREPARENTING 1
diff --git a/extra/java7-openjdk/openjdk7_fix_jdk_cmds_path.diff b/extra/java7-openjdk/openjdk7_fix_jdk_cmds_path.diff
new file mode 100644
index 000000000..c68bd4441
--- /dev/null
+++ b/extra/java7-openjdk/openjdk7_fix_jdk_cmds_path.diff
@@ -0,0 +1,24 @@
+--- openjdk/jdk/make/common/shared/Defs-utils.gmk.old 2011-08-06 15:46:01.000000000 +0200
++++ openjdk/jdk/make/common/shared/Defs-utils.gmk 2011-08-06 15:59:26.000000000 +0200
+@@ -91,10 +91,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
+@@ -141,7 +141,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
diff --git a/extra/java7-openjdk/openjdk7_nonreparenting-wm.diff b/extra/java7-openjdk/openjdk7_nonreparenting-wm.diff
new file mode 100644
index 000000000..ba1a588e1
--- /dev/null
+++ b/extra/java7-openjdk/openjdk7_nonreparenting-wm.diff
@@ -0,0 +1,58 @@
+--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java.orig 2011-08-07 18:45:05.000000000 +0200
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java 2011-08-07 18:45:54.000000000 +0200
+@@ -102,7 +102,8 @@
+ METACITY_WM = 11,
+ COMPIZ_WM = 12,
+ LG3D_WM = 13,
+- MUTTER_WM = 14;
++ MUTTER_WM = 14,
++ OTHER_NONREPARENTING_WM = 15;
+ public String toString() {
+ switch (WMID) {
+ case NO_WM:
+@@ -576,7 +577,7 @@
+ // TODO: according to wikipedia, compiz is now reparenting. This should
+ // probably be updated.
+ 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);
+ }
+
+ /*
+@@ -762,9 +763,17 @@
+ * 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.
+@@ -775,6 +784,8 @@
+ 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;
+ }
+@@ -1289,6 +1300,7 @@
+ 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/java7-openjdk/policytool.desktop b/extra/java7-openjdk/policytool.desktop
new file mode 100644
index 000000000..702b44a6f
--- /dev/null
+++ b/extra/java7-openjdk/policytool.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenJDK Policy Tool
+Comment=Manage OpenJDK policy files
+Exec=/usr/bin/policytool
+Icon=java
+Terminal=false
+Type=Application
+StartupWMClass=sun-security-tools-PolicyTool
+Categories=Development;Java;
+Version=1.0
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..f44742aba
--- /dev/null
+++ b/extra/jhead/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 144342 2011-12-04 21:25:01Z eric $
+# Maintainer: François Charette <francois ατ archlinux δοτ org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=jhead
+pkgver=2.93
+pkgrel=1
+pkgdesc="EXIF JPEG info parser and thumbnail remover"
+url="http://www.sentex.net/~mwandel/jhead/"
+arch=('i686' 'x86_64' 'mips64el')
+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=('23ac51b4aea2df663d684744e282eb7d'
+ '1f0db611d2642a981719f45252762a45')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -D -m755 jhead "${pkgdir}/usr/bin/jhead"
+ install -D -m644 jhead.1 "${pkgdir}/usr/share/man/man1/jhead.1"
+ install -D -m644 ${srcdir}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/js/PKGBUILD b/extra/js/PKGBUILD
new file mode 100644
index 000000000..2f054c7bb
--- /dev/null
+++ b/extra/js/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 132237 2011-07-21 21:43:04Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=js
+pkgver=1.8.5
+pkgrel=3
+pkgdesc="JavaScript interpreter and libraries"
+arch=(i686 x86_64 'mips64el')
+url="https://developer.mozilla.org/En/SpiderMonkey/1.8.5"
+license=('GPL2')
+depends=('nspr' 'gcc-libs')
+makedepends=('python2' 'zip')
+replaces=('spidermonkey')
+conflicts=('spidermonkey')
+source=(http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
+ js185-destdir.patch)
+md5sums=('a4574365938222adca0a6bd33329cb32'
+ '364834a8391888642c53d78c3a949d94')
+build() {
+ cd "$srcdir/$pkgname-$pkgver/js/src"
+
+ patch -Np0 -i $srcdir/js185-destdir.patch
+
+ ./configure --prefix=/usr --with-system-nspr \
+ --enable-threadsafe
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/js/src"
+ make DESTDIR="$pkgdir" install
+
+ install -m 0755 shell/js ${pkgdir}/usr/bin
+
+ #cleanup
+ rm -f "${pkgdir}/usr/lib/libmozjs185-1.0.a"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/js/js185-destdir.patch b/extra/js/js185-destdir.patch
new file mode 100644
index 000000000..87b7b53b3
--- /dev/null
+++ b/extra/js/js185-destdir.patch
@@ -0,0 +1,15 @@
+#https://bugzilla.mozilla.org/show_bug.cgi?id=628723
+
+--- Makefile.in.old 2011-04-10 04:21:19.918608008 -0700
++++ Makefile.in 2011-04-10 04:21:58.088607992 -0700
+@@ -888,8 +888,8 @@
+ ifeq (,$(HOST_BIN_SUFFIX))
+ mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
+ @[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
+- ln -s $(SHLIB_EXACT_VER) $(SHLIB_ABI_VER)
+- ln -s $(SHLIB_ABI_VER) $(SHLIB_ANY_VER)
++ ln -s $(notdir $(SHLIB_EXACT_VER)) $(SHLIB_ABI_VER)
++ ln -s $(notdir $(SHLIB_ABI_VER)) $(SHLIB_ANY_VER)
+ endif
+ endif
+ ifneq (,$(IMPORT_LIBRARY))
diff --git a/extra/json-c/PKGBUILD b/extra/json-c/PKGBUILD
new file mode 100644
index 000000000..8eadb0dce
--- /dev/null
+++ b/extra/json-c/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: congyiwu <congyiwu AT gmail DOT com>
+pkgname=json-c
+pkgver=0.9
+pkgrel=1
+pkgdesc="A JSON implementation in C"
+url="http://oss.metaparadigm.com/json-c/"
+license=("MIT")
+arch=(mips64el)
+depends=('glibc')
+source=(http://oss.metaparadigm.com/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('3a13d264528dcbaf3931b0cede24abae')
+options=(!libtool)
+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/$pkgname/COPYING"
+}
diff --git a/extra/json-glib/PKGBUILD b/extra/json-glib/PKGBUILD
new file mode 100644
index 000000000..92672f290
--- /dev/null
+++ b/extra/json-glib/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 141211 2011-10-26 14:49:31Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=json-glib
+pkgver=0.14.2
+pkgrel=1
+pkgdesc="JSON library built on GLib"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/JsonGlib"
+license=('GPL')
+depends=('glib2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.14/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('b816a5fa3e5664b08679a6972a6e5693d6cc1990ff4a6f94c07554db96be94a7')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/k3b/PKGBUILD b/extra/k3b/PKGBUILD
new file mode 100644
index 000000000..9f1e4287e
--- /dev/null
+++ b/extra/k3b/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142626 2011-11-12 17:15:20Z ibiru $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=k3b
+pkgver=2.0.2
+pkgrel=4
+pkgdesc="Feature-rich and easy to handle CD burning application"
+arch=("i686" "x86_64" 'mips64el')
+url="http://k3b.org/"
+license=('GPL')
+depends=('kdebase-runtime' 'kdemultimedia-kioslave' 'libsamplerate'
+ 'ffmpeg' 'taglib' 'libmpcdec' 'libdvdread' 'cdrdao' 'cdrkit' 'libxft')
+makedepends=('cmake' 'automoc4' 'docbook-xml')
+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')
+install=k3b.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \
+ k3b-2.0.2-ffmpeg.patch)
+sha1sums=('8b30a4d07942e82559b01bc07dea6bcf2defd532'
+ '8120c0e22e6c41ea285ca6060be13723ed91c52b')
+
+build() {
+ cd "${srcdir}"
+ (cd ${pkgname}-${pkgver}; patch -p1 -i "${srcdir}/k3b-2.0.2-ffmpeg.patch")
+ 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/k3b/k3b-2.0.2-ffmpeg.patch b/extra/k3b/k3b-2.0.2-ffmpeg.patch
new file mode 100644
index 000000000..2878b1edc
--- /dev/null
+++ b/extra/k3b/k3b-2.0.2-ffmpeg.patch
@@ -0,0 +1,96 @@
+commit 61ca30beb978f68e72257408777c6433f33129bd
+Author: Michal Malek <michalm@jabster.pl>
+Date: Sun Aug 28 20:18:53 2011 +0200
+
+ Fixed compilation with new FFMPEG
+
+ BUG: 274817
+ FIXED-IN: 2.0.3
+
+diff --git a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+index 0ad59fc..0c5f366 100644
+--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
++++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+@@ -109,7 +109,13 @@ bool K3bFFMpegFile::open()
+ #else
+ ::AVCodecContext* codecContext = d->formatContext->streams[0]->codec;
+ #endif
+- if( codecContext->codec_type != CODEC_TYPE_AUDIO ) {
++ if( codecContext->codec_type !=
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
++ {
+ kDebug() << "(K3bFFMpegFile) not a simple audio stream: " << m_filename;
+ return false;
+ }
+@@ -225,8 +231,11 @@ QString K3bFFMpegFile::typeComment() const
+ QString K3bFFMpegFile::title() const
+ {
+ // FIXME: is this UTF8 or something??
+- if( d->formatContext->title[0] != '\0' )
+- return QString::fromLocal8Bit( d->formatContext->title );
++ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "TITLE", NULL, 0 );
++ if( ade == NULL )
++ return QString();
++ if( ade->value != '\0' )
++ return QString::fromLocal8Bit( ade->value );
+ else
+ return QString();
+ }
+@@ -235,8 +244,11 @@ QString K3bFFMpegFile::title() const
+ QString K3bFFMpegFile::author() const
+ {
+ // FIXME: is this UTF8 or something??
+- if( d->formatContext->author[0] != '\0' )
+- return QString::fromLocal8Bit( d->formatContext->author );
++ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "ARTIST", NULL, 0 );
++ if( ade == NULL )
++ return QString();
++ if( ade->value != '\0' )
++ return QString::fromLocal8Bit( ade->value );
+ else
+ return QString();
+ }
+@@ -245,8 +257,11 @@ QString K3bFFMpegFile::author() const
+ QString K3bFFMpegFile::comment() const
+ {
+ // FIXME: is this UTF8 or something??
+- if( d->formatContext->comment[0] != '\0' )
+- return QString::fromLocal8Bit( d->formatContext->comment );
++ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "COMMENT", NULL, 0 );
++ if( ade == NULL )
++ return QString();
++ if( ade->value != '\0' )
++ return QString::fromLocal8Bit( ade->value );
+ else
+ return QString();
+ }
+@@ -309,8 +324,13 @@ int K3bFFMpegFile::fillOutputBuffer()
+ #if LIBAVCODEC_VERSION_MAJOR < 52
+ int len = ::avcodec_decode_audio(
+ #else
++ #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ int len = ::avcodec_decode_audio3(
++ #else
+ int len = ::avcodec_decode_audio2(
++ #endif
+ #endif
++
+ #ifdef FFMPEG_BUILD_PRE_4629
+ &d->formatContext->streams[0]->codec,
+ #else
+@@ -318,7 +338,11 @@ int K3bFFMpegFile::fillOutputBuffer()
+ #endif
+ (short*)d->alignedOutputBuffer,
+ &d->outputBufferSize,
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ &d->packet );
++#else
+ d->packetData, d->packetSize );
++#endif
+
+ if( d->packetSize <= 0 || len < 0 )
+ ::av_free_packet( &d->packet );
diff --git a/extra/k3b/k3b.install b/extra/k3b/k3b.install
new file mode 100644
index 000000000..413ad60f7
--- /dev/null
+++ b/extra/k3b/k3b.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/k9copy/PKGBUILD b/extra/k9copy/PKGBUILD
new file mode 100644
index 000000000..8e36c9202
--- /dev/null
+++ b/extra/k9copy/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143762 2011-11-29 00:20:34Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Stefano Zamprogno <stefano.zamprogno@gmail.com>
+
+pkgname=k9copy
+pkgver=2.3.7
+pkgrel=2
+pkgdesc="A small utility which allows the copy of DVD under Linux"
+arch=('i686' 'x86_64' 'mips64el')
+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=('bbfda2937f5027d31495df67dc29efa4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+
+ sed -i -e "s:Name=k9copy:Name=K9copy:g" k9copy.desktop k9copy_assistant.desktop
+ sed -i -e "s:CODEC_TYPE_VIDEO:AVMEDIA_TYPE_VIDEO:g" src/import/k9avidecode.cpp
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+
+ make DESTDIR="${pkgdir}" install
+}
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..5fc44e597
--- /dev/null
+++ b/extra/kaffeine/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 122312 2011-05-03 18:56:11Z tpowa $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kaffeine
+pkgver=1.2.2
+pkgrel=1
+pkgdesc='KDE media player'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
+md5sums=('690e48d2e5fe123887109aa9b1bc1c31')
diff --git a/extra/kdeaccessibility/PKGBUILD b/extra/kdeaccessibility/PKGBUILD
new file mode 100644
index 000000000..9ae345965
--- /dev/null
+++ b/extra/kdeaccessibility/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 144651 2011-12-08 09:19:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeaccessibility
+pkgname=('kdeaccessibility-jovie'
+ 'kdeaccessibility-kaccessible'
+ 'kdeaccessibility-kmag'
+ 'kdeaccessibility-kmousetool'
+ 'kdeaccessibility-kmouth')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://accessibility.kde.org'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdelibs' 'speech-dispatcher')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('03f4ac8234dcc49eb93eff3630f76e226e290fff')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+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/jovie/doc
+ 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/kmag/doc
+ 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/kmousetool/doc
+ 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/kmouth/doc
+ 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..55990c6e2
--- /dev/null
+++ b/extra/kdeadmin/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 144653 2011-12-08 09:19:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+ 'kdeadmin-ksystemlog'
+ 'kdeadmin-kuser'
+ 'kdeadmin-system-config-printer-kde')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebindings-python'
+ 'system-config-printer-common')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'syslog-path.patch')
+sha1sums=('1a294315645adbbff348a380196d4300a408b70d'
+ '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -p1 -i ${srcdir}/syslog-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_strigi-analyzer=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdeadmin-kcron() {
+ pkgdesc='Configure and schedule tasks'
+ depends=('kdelibs')
+ cd $srcdir/build/kcron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+ pkgdesc='System log viewer tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/ksystemlog/"
+ cd $srcdir/build/ksystemlog
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksystemlog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+ pkgdesc='User Manager'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/system/kuser/"
+ install='kdeadmin.install'
+ cd $srcdir/build/kuser
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kuser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+ pkgdesc='Configure local and remote Printers'
+ depends=('kdebindings-python' 'system-config-printer-common' 'python2-pyqt')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ 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..a313ced91
--- /dev/null
+++ b/extra/kdeartwork/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 144655 2011-12-08 09:19:19Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+ 'kdeartwork-colorschemes'
+ 'kdeartwork-desktopthemes'
+ 'kdeartwork-emoticons'
+ 'kdeartwork-iconthemes'
+ 'kdeartwork-kscreensaver'
+ 'kdeartwork-sounds'
+ 'kdeartwork-styles'
+ 'kdeartwork-wallpapers'
+ 'kdeartwork-weatherwallpapers')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'xscreensaver' 'eigen'
+ 'kdebase-workspace' 'libkexiv2')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('f397f49a73273baadabcaf45cf18c4d6a3efbe44')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeartwork-aurorae() {
+ pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+ cd $srcdir/build/aurorae
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+ pkgdesc='KDE color schemes'
+ replaces=('kdeaccessibility-colorschemes')
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+ pkgdesc='KDE desktop themes'
+ cd $srcdir/build/desktopthemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+ pkgdesc='KDE emoticons'
+ cd $srcdir/build/emoticons
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+ pkgdesc='KDE icon themes'
+ replaces=('kdeaccessibility-iconthemes')
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/kscreensaver
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+ pkgdesc='KDE sounds'
+ cd $srcdir/build/sounds
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+ pkgdesc='KDE styles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/styles
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwin-styles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+ pkgdesc='KDE wallpapers'
+ cd $srcdir/build/wallpapers
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/HighResolutionWallpapers
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+ pkgdesc='KDE weather wallpapers'
+ cd $srcdir/build/WeatherWallpapers
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdebase-konsole/PKGBUILD b/extra/kdebase-konsole/PKGBUILD
new file mode 100644
index 000000000..69cb5a342
--- /dev/null
+++ b/extra/kdebase-konsole/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144657 2011-12-08 09:19:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebase-konsole
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://kde.org/applications/system/konsole/'
+pkgdesc="Terminal"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/konsole-${pkgver}.tar.bz2")
+sha1sums=('33e1bc6f1043c9bf6186190b66b21483301eac7e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../konsole-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebase-runtime/PKGBUILD b/extra/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..fa02ce80e
--- /dev/null
+++ b/extra/kdebase-runtime/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 144615 2011-12-08 09:18:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE Base Runtime Environment"
+arch=('i686' 'x86_64' 'mips64el')
+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')
+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/kde-runtime-${pkgver}.tar.bz2"
+ 'libqzeitgeist08.patch')
+sha1sums=('bf5c266b7748cda44cc3a2fb231a2d6dde2b09f6'
+ '164c9e4305029cb68a2101cfeeb76c7066c2fd39')
+
+build() {
+ cd "${srcdir}"/kde-runtime-${pkgver}
+ patch -p1 -i "${srcdir}"/libqzeitgeist08.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kde-runtime-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+}
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-runtime/libqzeitgeist08.patch b/extra/kdebase-runtime/libqzeitgeist08.patch
new file mode 100644
index 000000000..f832cd8b2
--- /dev/null
+++ b/extra/kdebase-runtime/libqzeitgeist08.patch
@@ -0,0 +1,102 @@
+--- kde-runtime-4.7.2/activitymanager/CMakeLists.txt~ 2011-10-29 15:46:55.003710230 +0000
++++ kde-runtime-4.7.2/activitymanager/CMakeLists.txt 2011-10-29 15:47:28.910716093 +0000
+@@ -21,7 +21,7 @@
+ )
+ endif(Nepomuk_FOUND)
+
+-# Checking for QtZeitgeist
++# Checking for QZeitgeist
+ macro_optional_find_package(QZeitgeist)
+
+ if (QZEITGEIST_INCLUDE_DIR)
+@@ -30,8 +30,8 @@
+
+ macro_log_feature(
+ QZeitgeist_FOUND
+- "QtZeitgeist" "Qt bindings for Zeitgeist" "http://gitorious.org/kde-zeitgeist/libqzeitgeist/" FALSE ""
+- "RECOMMENDED: Zeitgeist and QtZeitgeist is needed for resource tracking")
++ "QZeitgeist" "Qt bindings for Zeitgeist" "http://gitorious.org/kde-zeitgeist/libqzeitgeist/" FALSE ""
++ "RECOMMENDED: Zeitgeist and QZeitgeist is needed for resource tracking")
+ if (QZeitgeist_FOUND)
+ set(HAVE_QZEITGEIST 1)
+ include_directories(${QZEITGEIST_INCLUDE_DIR})
+--- kde-runtime-4.7.2/activitymanager/ZeitgeistEventBackend.cpp~ 2011-10-29 15:47:40.960836591 +0000
++++ kde-runtime-4.7.2/activitymanager/ZeitgeistEventBackend.cpp 2011-10-29 15:48:57.034930073 +0000
+@@ -21,31 +21,31 @@
+
+ #ifndef HAVE_QZEITGEIST
+ #ifdef __GNUC__
+- #warning "No QtZeitgeist, disabling desktop events processing"
++ #warning "No QZeitgeist, disabling desktop events processing"
+ #endif
+
+ #else // HAVE_QZEITGEIST
+
+ #include "ZeitgeistEventBackend.h"
+
+-#include <QtZeitgeist/QtZeitgeist>
+-#include <QtZeitgeist/Interpretation>
+-#include <QtZeitgeist/Manifestation>
++#include <QZeitgeist/QZeitgeist>
++#include <QZeitgeist/Interpretation>
++#include <QZeitgeist/Manifestation>
+
+ static QString eventInterpretation(Event::Type type)
+ {
+ switch (type) {
+ case Event::Accessed:
+- return QtZeitgeist::Interpretation::Event::ZGAccessEvent;
++ return QZeitgeist::Interpretation::Event::ZGAccessEvent;
+
+ case Event::Opened:
+- return QtZeitgeist::Interpretation::Event::ZGAccessEvent;
++ return QZeitgeist::Interpretation::Event::ZGAccessEvent;
+
+ case Event::Modified:
+- return QtZeitgeist::Interpretation::Event::ZGModifyEvent;
++ return QZeitgeist::Interpretation::Event::ZGModifyEvent;
+
+ case Event::Closed:
+- return QtZeitgeist::Interpretation::Event::ZGLeaveEvent;
++ return QZeitgeist::Interpretation::Event::ZGLeaveEvent;
+
+ }
+
+@@ -57,23 +57,23 @@
+ {
+ switch (reason) {
+ case Event::User:
+- return QtZeitgeist::Manifestation::Event::ZGUserActivity;
++ return QZeitgeist::Manifestation::Event::ZGUserActivity;
+
+ case Event::Heuristic:
+- return QtZeitgeist::Manifestation::Event::ZGHeuristicActivity;
++ return QZeitgeist::Manifestation::Event::ZGHeuristicActivity;
+
+ case Event::Scheduled:
+- return QtZeitgeist::Manifestation::Event::ZGScheduledActivity;
++ return QZeitgeist::Manifestation::Event::ZGScheduledActivity;
+
+ case Event::System:
+- return QtZeitgeist::Manifestation::Event::ZGSystemNotification;
++ return QZeitgeist::Manifestation::Event::ZGSystemNotification;
+
+ case Event::World:
+- return QtZeitgeist::Manifestation::Event::ZGWorldActivity;
++ return QZeitgeist::Manifestation::Event::ZGWorldActivity;
+ }
+
+ // shut up GCC
+- return QtZeitgeist::Manifestation::Event::ZGUserActivity;
++ return QZeitgeist::Manifestation::Event::ZGUserActivity;
+ }
+
+ static QString applicationUri(const QString & application)
+@@ -84,7 +84,6 @@
+
+ ZeitgeistEventBackend::ZeitgeistEventBackend()
+ {
+- QtZeitgeist::init();
+ }
+
+ void ZeitgeistEventBackend::addEvents(const EventList & events)
diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD
new file mode 100644
index 000000000..a186ea25d
--- /dev/null
+++ b/extra/kdebase-workspace/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 144857 2011-12-08 16:10:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-workspace
+_pkgname=kde-workspace
+pkgver=4.7.4
+pkgrel=2
+pkgdesc="KDE Base Workspace"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'libqalculate'
+ 'qimageblitz' 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage'
+ 'libxklavier' 'xorg-xsetroot' 'libxcomposite' 'libxinerama'
+ 'xorg-xrdb')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdebindings-python'
+ 'networkmanager')
+optdepends=('kde-wallpapers: officials KDE wallapers')
+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')
+options=('emptydirs')
+source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.bz2"
+ 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
+ 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch')
+sha1sums=('b7810ba13f6f2a1c4783b153ad9349a1dd27b495'
+ '5db3a245201bd4a50e65aa2ef583cf5490e4f646'
+ 'f7b38af38549242a240f1a90ab9964ca8a366129'
+ '603cc79c4d2b4eae62bb5f244aeecb3a778b5516'
+ '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
+ 'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+ 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
+ 'd509dac592bd8b310df27991b208c95b6d907514')
+
+build() {
+ cd "${srcdir}"/${_pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/kdm-xinitrd.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_libgps=OFF \
+ -DWITH_OpenGLES=OFF \
+ -DKWIN_BUILD_WITH_OPENGLES=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ 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/fix-powerprofiles.patch b/extra/kdebase-workspace/fix-powerprofiles.patch
new file mode 100644
index 000000000..309fcf3db
--- /dev/null
+++ b/extra/kdebase-workspace/fix-powerprofiles.patch
@@ -0,0 +1,23 @@
+From: Dario Freddi <drf@kde.org>
+Date: Tue, 04 Oct 2011 14:09:09 +0000
+Subject: Use full config when reading settings
+X-Git-Url: http://quickgit.kde.org/?p=kde-workspace.git&amp;a=commitdiff&amp;h=8d59876457387d1c72ca3626ae2d267adf100014
+---
+Use full config when reading settings
+
+BUG: 267323
+---
+
+
+--- a/powerdevil/daemon/powerdevilcore.cpp
++++ b/powerdevil/daemon/powerdevilcore.cpp
+@@ -88,7 +88,7 @@ void Core::onBackendReady()
+ {
+ kDebug() << "Backend is ready, KDE Power Management system initialized";
+
+- m_profilesConfig = KSharedConfig::openConfig("powerdevil2profilesrc", KConfig::SimpleConfig);
++ m_profilesConfig = KSharedConfig::openConfig("powerdevil2profilesrc", KConfig::FullConfig);
+
+ // Is it brand new?
+ if (m_profilesConfig->groupList().isEmpty()) {
+
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..f7d6d305b
--- /dev/null
+++ b/extra/kdebase-workspace/kdebase-workspace.install
@@ -0,0 +1,25 @@
+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
+ update-desktop-database -q
+}
+
+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
+ update-desktop-database -q
+}
+
+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-xinitrd.patch b/extra/kdebase-workspace/kdm-xinitrd.patch
new file mode 100644
index 000000000..f5fc0e571
--- /dev/null
+++ b/extra/kdebase-workspace/kdm-xinitrd.patch
@@ -0,0 +1,18 @@
+--- kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c~ 2011-10-04 22:11:24.787771512 +0000
++++ kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c 2011-10-04 22:13:58.612702824 +0000
+@@ -742,6 +742,15 @@
+ "[ -f /etc/xprofile ] && . /etc/xprofile\n"
+ "[ -f $HOME/.xprofile ] && . $HOME/.xprofile\n"
+ "\n"
++"# run all system xinitrc shell scripts.\n"
++"if [ -d /etc/X11/xinit/xinitrc.d ]; then\n"
++" for i in /etc/X11/xinit/xinitrc.d/* ; do\n"
++" if [ -x \"$i\" ]; then\n"
++" . \"$i\"\n"
++" fi\n"
++" done\n"
++"fi\n"
++"\n"
+ "if [ -d /etc/X11/Xresources ]; then\n"
+ " for i in /etc/X11/Xresources/*; do\n"
+ " [ -f $i ] && xrdb -merge $i\n"
diff --git a/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..356046249
--- /dev/null
+++ b/extra/kdebase/PKGBUILD
@@ -0,0 +1,119 @@
+# $Id: PKGBUILD 144637 2011-12-08 09:18:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+ 'kdebase-kdepasswd'
+ 'kdebase-kdialog'
+ 'kdebase-keditbookmarks'
+ 'kdebase-kfind'
+ 'kdebase-konq-plugins'
+ 'kdebase-konqueror'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'pkgconfig' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.bz2")
+sha1sums=('ad4b6d8479bcf8be49b5f53ee8fdcc1b3d1106d6')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../kde-baseapps-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-dolphin() {
+ pkgdesc='File Manager'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ optdepends=('kdegraphics-svgpart: thumbailers for SVG files'
+ 'kdegraphics-thumbnailers: thumbnailers for graphics file'
+ 'ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ cd $srcdir/build/dolphin
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dolphin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+ pkgdesc='Change Password'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ cd $srcdir/build/kdepasswd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdepasswd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+ pkgdesc='A utility for displaying dialog boxes from shell scripts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kdialog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+ pkgdesc='Bookmark Organizer and Editor'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/keditbookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+ pkgdesc='Find Files/Folders'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ url="http://kde.org/applications/utilities/kfind/"
+ install='kdebase.install'
+ cd $srcdir/build/kfind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfind
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konq-plugins() {
+ pkgdesc='Extra plugins for Konqueror'
+ depends=('kdebase-konqueror' 'tidyhtml')
+ replaces=('konq-plugins')
+ install='kdebase.install'
+ cd $srcdir/build/konq-plugins
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+ pkgdesc='KDE File Manager & Web Browser'
+ depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+ optdepends=('kwebkitpart: to enable webkit engine')
+ url="http://kde.org/applications/internet/konqueror/"
+ install='kdebase.install'
+ conflicts=('kdebase-nsplugins')
+ replaces=('kdebase-nsplugins')
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdebase-lib() {
+ pkgdesc='KDE libraries for the basic desktop applications'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/lib
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+ pkgdesc='Display the contents of folders (User´s home folder as default)'
+ depends=('kdebase-workspace' 'kdebase-lib')
+ cd $srcdir/build/plasma
+ make DESTDIR=$pkgdir install
+}
diff --git a/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-kimono/PKGBUILD b/extra/kdebindings-kimono/PKGBUILD
new file mode 100644
index 000000000..bb1c748e5
--- /dev/null
+++ b/extra/kdebindings-kimono/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144659 2011-12-08 09:19:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-kimono
+pkgver=4.7.4
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qyoto' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/stable/${pkgver}/src/kimono-${pkgver}.tar.bz2")
+sha1sums=('8f260e09bffcf74bad18a5168016d0dad5db3656')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kimono-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-korundum/PKGBUILD b/extra/kdebindings-korundum/PKGBUILD
new file mode 100644
index 000000000..7057c3b8c
--- /dev/null
+++ b/extra/kdebindings-korundum/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144855 2011-12-08 14:50:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-korundum
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qtruby' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/stable/${pkgver}/src/korundum-${pkgver}.tar.bz2")
+sha1sums=('e220dc672461aa1369e58de325f980139fcd52f6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../korundum-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-kross/PKGBUILD b/extra/kdebindings-kross/PKGBUILD
new file mode 100644
index 000000000..1e5e85828
--- /dev/null
+++ b/extra/kdebindings-kross/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 144663 2011-12-08 09:19:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdebindings-kross
+pkgname=('kdebindings-kross-python'
+# 'kdebindings-kross-ruby'
+ 'kdebindings-kross-java')
+pkgver=4.7.4
+pkgrel=1
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'openjdk6')
+source=("http://download.kde.org/stable/${pkgver}/src/kross-interpreters-${pkgver}.tar.bz2")
+sha1sums=('416e9f25ff2050d9c5518254a7cc7d4cad22b648')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kross-interpreters-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_ruby=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdebindings-kross-python() {
+ pkgdesc="Python2 language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'python2')
+
+ cd "${srcdir}"/build/python
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-java() {
+ pkgdesc="Java language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'openjdk6')
+
+ cd "${srcdir}"/build/java
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-ruby() {
+ pkgdesc="Ruby language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'ruby')
+
+ cd "${srcdir}"/build/ruby
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-perlkde/PKGBUILD b/extra/kdebindings-perlkde/PKGBUILD
new file mode 100644
index 000000000..91f35ddc1
--- /dev/null
+++ b/extra/kdebindings-perlkde/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144665 2011-12-08 09:19:30Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlkde
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Perl bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-perlqt' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs'
+ 'kdegraphics-okular' 'kdesdk-kate')
+source=("http://download.kde.org/stable/${pkgver}/src/perlkde-${pkgver}.tar.bz2")
+sha1sums=('7116668ecd5baf55734a8349a2f0b04d0e701898')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlkde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-perlqt/PKGBUILD b/extra/kdebindings-perlqt/PKGBUILD
new file mode 100644
index 000000000..685bb939b
--- /dev/null
+++ b/extra/kdebindings-perlqt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144627 2011-12-08 09:18:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlqt
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Perl bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+source=("http://download.kde.org/stable/${pkgver}/src/perlqt-${pkgver}.tar.bz2")
+sha1sums=('b4b3d8ce2b08af62202f5ae79fe57bde60dd9a85')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-python/PKGBUILD b/extra/kdebindings-python/PKGBUILD
new file mode 100644
index 000000000..7d809f25d
--- /dev/null
+++ b/extra/kdebindings-python/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144629 2011-12-08 09:18:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-python
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE bindings for Python"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/pykde4-${pkgver}.tar.bz2")
+sha1sums=('cac4b94098dba73d58fb4f7d73d7c65c306517d1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../pykde4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/extra/kdebindings-qtruby/PKGBUILD b/extra/kdebindings-qtruby/PKGBUILD
new file mode 100644
index 000000000..c96e6c1c9
--- /dev/null
+++ b/extra/kdebindings-qtruby/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144633 2011-12-08 09:18:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qtruby
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Qt bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'ruby')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/stable/${pkgver}/src/qtruby-${pkgver}.tar.bz2")
+sha1sums=('e49e38a59238cf6f5ec9c2d9afc06f3330369fc7')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qtruby-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-qyoto/PKGBUILD b/extra/kdebindings-qyoto/PKGBUILD
new file mode 100644
index 000000000..940613359
--- /dev/null
+++ b/extra/kdebindings-qyoto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144631 2011-12-08 09:18:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qyoto
+pkgver=4.7.4
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'mono')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/stable/${pkgver}/src/qyoto-${pkgver}.tar.bz2")
+sha1sums=('8f2412a8bbb343bdb1e14c0fc6ef3681afe9d601')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qyoto-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-smokegen/PKGBUILD b/extra/kdebindings-smokegen/PKGBUILD
new file mode 100644
index 000000000..943e70baf
--- /dev/null
+++ b/extra/kdebindings-smokegen/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144619 2011-12-08 09:18:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokegen
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A general purpose C++ parser with a plugin infrastructure"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/stable/${pkgver}/src/smokegen-${pkgver}.tar.bz2"
+ 'fix-crash.patch')
+sha1sums=('068d37e2404311b9caa23d78ee7fa262188a8622'
+ 'b209b2b7017622fea3406c5a9636e2334566af01')
+
+build() {
+ cd "${srcdir}"/smokegen-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-crash.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokegen-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-smokegen/fix-crash.patch b/extra/kdebindings-smokegen/fix-crash.patch
new file mode 100644
index 000000000..5864da3f3
--- /dev/null
+++ b/extra/kdebindings-smokegen/fix-crash.patch
@@ -0,0 +1,13 @@
+diff -up smokegen-4.7.0/parser/type_compiler.cpp.orig smokegen-4.7.0/parser/type_compiler.cpp
+diff -up smokegen-4.7.0/type_compiler.cpp.orig smokegen-4.7.0/type_compiler.cpp
+--- smokegen-4.7.0/type_compiler.cpp.orig 2011-08-02 14:34:08.000000000 +0200
++++ smokegen-4.7.0/type_compiler.cpp 2011-08-02 14:34:34.000000000 +0200
+@@ -191,6 +191,8 @@ void TypeCompiler::visitParameterDeclara
+
+ void TypeCompiler::visitPtrOperator(PtrOperatorAST* node)
+ {
++ if ( ! m_session->token_stream ) return;
++ if ( ! token_text(m_session->token_stream->kind(node->op)) ) return;
+ if (token_text(m_session->token_stream->kind(node->op))[0] == '*') {
+ QPair<bool, bool> cv = m_visitor->parseCv(node->cv);
+ pointerDepth.append(cv.first);
diff --git a/extra/kdebindings-smokekde/PKGBUILD b/extra/kdebindings-smokekde/PKGBUILD
new file mode 100644
index 000000000..a84b14362
--- /dev/null
+++ b/extra/kdebindings-smokekde/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144625 2011-12-08 09:18:30Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokekde
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Language independent library for KDE bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/stable/${pkgver}/src/smokekde-${pkgver}.tar.bz2")
+sha1sums=('c3e2bd07158c4bc6a19123d5ae8e81529b52e07b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokekde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdebindings-smokeqt/PKGBUILD b/extra/kdebindings-smokeqt/PKGBUILD
new file mode 100644
index 000000000..cce7f1e7e
--- /dev/null
+++ b/extra/kdebindings-smokeqt/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144621 2011-12-08 09:18:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokeqt
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Language independent library for Qt bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'kdebindings-smokegen')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/stable/${pkgver}/src/smokeqt-${pkgver}.tar.bz2")
+sha1sums=('2b1033732d166946db3096ddbf6eb9a6ddb61877')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokeqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Qwt5=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-blinken/PKGBUILD b/extra/kdeedu-blinken/PKGBUILD
new file mode 100644
index 000000000..dccccf6f1
--- /dev/null
+++ b/extra/kdeedu-blinken/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144667 2011-12-08 09:19:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-blinken
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Memory Enhancement Game"
+url="http://kde.org/applications/education/blinken/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/blinken-${pkgver}.tar.bz2")
+sha1sums=('edeb024db23da00cf896bc41c6e3efa371d9867d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../blinken-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-blinken/kdeedu-blinken.install b/extra/kdeedu-blinken/kdeedu-blinken.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-blinken/kdeedu-blinken.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-cantor/PKGBUILD b/extra/kdeedu-cantor/PKGBUILD
new file mode 100644
index 000000000..cbda53904
--- /dev/null
+++ b/extra/kdeedu-cantor/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144669 2011-12-08 09:19:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-cantor
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE Frontend to Mathematical Software"
+url="http://kde.org/applications/education/cantor/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libspectre')
+makedepends=('cmake' 'automoc4' 'r')
+optdepends=('maxima: Maxima backend'
+ 'octave: Octave backend'
+ 'r: R backend')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/cantor-${pkgver}.tar.bz2")
+sha1sums=('da39832093c1ea6eb28c6b5b4f67cb24473d8fb5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../cantor-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-cantor/kdeedu-cantor.install b/extra/kdeedu-cantor/kdeedu-cantor.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-cantor/kdeedu-cantor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kalgebra/PKGBUILD b/extra/kdeedu-kalgebra/PKGBUILD
new file mode 100644
index 000000000..5993a1545
--- /dev/null
+++ b/extra/kdeedu-kalgebra/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144671 2011-12-08 09:19:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalgebra
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Graph Calculator"
+url="http://kde.org/applications/education/kalgebra/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kalgebra-${pkgver}.tar.bz2")
+sha1sums=('8ef005a50316d7d86b7bc1ed306380d69ce946a0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalgebra-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kalgebra/kdeedu-kalgebra.install b/extra/kdeedu-kalgebra/kdeedu-kalgebra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-kalgebra/kdeedu-kalgebra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kalzium/PKGBUILD b/extra/kdeedu-kalzium/PKGBUILD
new file mode 100644
index 000000000..f1bc07000
--- /dev/null
+++ b/extra/kdeedu-kalzium/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144673 2011-12-08 09:19:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalzium
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Periodic Table of Elements"
+url="http://kde.org/applications/education/kalzium/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs' 'avogadro' 'ocaml')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kalzium-${pkgver}.tar.bz2")
+sha1sums=('6cb65b2c524f529976e4c63a75a7637a181d08d9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalzium-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kalzium/kdeedu-kalzium.install b/extra/kdeedu-kalzium/kdeedu-kalzium.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kalzium/kdeedu-kalzium.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kanagram/PKGBUILD b/extra/kdeedu-kanagram/PKGBUILD
new file mode 100644
index 000000000..33f76b461
--- /dev/null
+++ b/extra/kdeedu-kanagram/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144675 2011-12-08 09:19:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kanagram
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Letter Order Game"
+url="http://kde.org/applications/education/kanagram/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kanagram-${pkgver}.tar.bz2")
+sha1sums=('15fda47cd6685a7e19fb4744ec930b9a4dcfbe05')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kanagram-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kanagram/kdeedu-kanagram.install b/extra/kdeedu-kanagram/kdeedu-kanagram.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kanagram/kdeedu-kanagram.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kbruch/PKGBUILD b/extra/kdeedu-kbruch/PKGBUILD
new file mode 100644
index 000000000..9b885ec49
--- /dev/null
+++ b/extra/kdeedu-kbruch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144677 2011-12-08 09:19:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kbruch
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Exercise Fractions"
+url="http://kde.org/applications/education/kbruch/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kbruch-${pkgver}.tar.bz2")
+sha1sums=('36165292cb9935343d1aa2572935a130b6619f00')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kbruch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kbruch/kdeedu-kbruch.install b/extra/kdeedu-kbruch/kdeedu-kbruch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kbruch/kdeedu-kbruch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kgeography/PKGBUILD b/extra/kdeedu-kgeography/PKGBUILD
new file mode 100644
index 000000000..53ce7a39e
--- /dev/null
+++ b/extra/kdeedu-kgeography/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144679 2011-12-08 09:20:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kgeography
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Geography Trainer"
+url="http://kde.org/applications/education/kgeography/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kgeography-${pkgver}.tar.bz2")
+sha1sums=('4a90c59928a4947c5cd970ed72e5e9cea370d8e6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgeography-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kgeography/kdeedu-kgeography.install b/extra/kdeedu-kgeography/kdeedu-kgeography.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kgeography/kdeedu-kgeography.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-khangman/PKGBUILD b/extra/kdeedu-khangman/PKGBUILD
new file mode 100644
index 000000000..3a2781967
--- /dev/null
+++ b/extra/kdeedu-khangman/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144681 2011-12-08 09:20:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-khangman
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Hangman Game"
+url="http://kde.org/applications/education/khangman/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/khangman-${pkgver}.tar.bz2")
+sha1sums=('c5999ba4218cb0331b906fbcaafa7f497762221d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../khangman-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-khangman/kdeedu-khangman.install b/extra/kdeedu-khangman/kdeedu-khangman.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-khangman/kdeedu-khangman.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kig/PKGBUILD b/extra/kdeedu-kig/PKGBUILD
new file mode 100644
index 000000000..d18a7a4dc
--- /dev/null
+++ b/extra/kdeedu-kig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144683 2011-12-08 09:20:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kig
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Interactive Geometry"
+url="http://kde.org/applications/education/kig/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kig-${pkgver}.tar.bz2")
+sha1sums=('4c76ef89e6210f2f25e719176db4d8a2b31b6222')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kig-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/bin/pykig.py
+}
diff --git a/extra/kdeedu-kig/kdeedu-kig.install b/extra/kdeedu-kig/kdeedu-kig.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-kig/kdeedu-kig.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kiten/PKGBUILD b/extra/kdeedu-kiten/PKGBUILD
new file mode 100644
index 000000000..da0399a4a
--- /dev/null
+++ b/extra/kdeedu-kiten/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144685 2011-12-08 09:20:10Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kiten
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Japanese Reference/Study Tool"
+url="http://kde.org/applications/education/kiten/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kiten-${pkgver}.tar.bz2")
+sha1sums=('8ec806306a7b08cb8ca5e567a48417cd2268e501')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kiten-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kiten/kdeedu-kiten.install b/extra/kdeedu-kiten/kdeedu-kiten.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kiten/kdeedu-kiten.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-klettres/PKGBUILD b/extra/kdeedu-klettres/PKGBUILD
new file mode 100644
index 000000000..abb06b626
--- /dev/null
+++ b/extra/kdeedu-klettres/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144687 2011-12-08 09:20:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-klettres
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Learn The Alphabet"
+url="http://kde.org/applications/education/klettres/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/klettres-${pkgver}.tar.bz2")
+sha1sums=('d2450f7aa24fc0118dd20d2e11d61fca68ba5461')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../klettres-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-klettres/kdeedu-klettres.install b/extra/kdeedu-klettres/kdeedu-klettres.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-klettres/kdeedu-klettres.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kmplot/PKGBUILD b/extra/kdeedu-kmplot/PKGBUILD
new file mode 100644
index 000000000..48ad4fb51
--- /dev/null
+++ b/extra/kdeedu-kmplot/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144689 2011-12-08 09:20:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kmplot
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Mathematical Function Plotter"
+url="http://kde.org/applications/education/kmplot/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kmplot-${pkgver}.tar.bz2")
+sha1sums=('b0b2b748e4ea0f670ffe5c9be01a6997a061a75c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmplot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kmplot/kdeedu-kmplot.install b/extra/kdeedu-kmplot/kdeedu-kmplot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-kmplot/kdeedu-kmplot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kstars/PKGBUILD b/extra/kdeedu-kstars/PKGBUILD
new file mode 100644
index 000000000..1f784900c
--- /dev/null
+++ b/extra/kdeedu-kstars/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144691 2011-12-08 09:20:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kstars
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Desktop Planetarium"
+url="http://kde.org/applications/education/kstars/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'eigen' 'cfitsio' 'libindi')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kstars-${pkgver}.tar.bz2")
+sha1sums=('d4e489093b440e4246c817821187193e4e53be66')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kstars-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xplanet=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kstars/kdeedu-kstars.install b/extra/kdeedu-kstars/kdeedu-kstars.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kstars/kdeedu-kstars.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-ktouch/PKGBUILD b/extra/kdeedu-ktouch/PKGBUILD
new file mode 100644
index 000000000..4674a5ee7
--- /dev/null
+++ b/extra/kdeedu-ktouch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144693 2011-12-08 09:20:19Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-ktouch
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Touch Typing Tutor"
+url="http://kde.org/applications/education/ktouch/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/ktouch-${pkgver}.tar.bz2")
+sha1sums=('92d7e446216bdfdf68e13c9f0ba39d44e02b29c9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktouch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-ktouch/kdeedu-ktouch.install b/extra/kdeedu-ktouch/kdeedu-ktouch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-ktouch/kdeedu-ktouch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kturtle/PKGBUILD b/extra/kdeedu-kturtle/PKGBUILD
new file mode 100644
index 000000000..2c98139ca
--- /dev/null
+++ b/extra/kdeedu-kturtle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144695 2011-12-08 09:20:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kturtle
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Educational Programming Environment"
+url="http://kde.org/applications/education/kturtle/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kturtle-${pkgver}.tar.bz2")
+sha1sums=('b3baa81277417f352d4a0bdca61df75515f30c0d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kturtle-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kturtle/kdeedu-kturtle.install b/extra/kdeedu-kturtle/kdeedu-kturtle.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-kturtle/kdeedu-kturtle.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-kwordquiz/PKGBUILD b/extra/kdeedu-kwordquiz/PKGBUILD
new file mode 100644
index 000000000..61c85dea2
--- /dev/null
+++ b/extra/kdeedu-kwordquiz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144697 2011-12-08 09:20:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kwordquiz
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Flash Card Trainer"
+url="http://kde.org/applications/education/kwordquiz/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kwordquiz-${pkgver}.tar.bz2")
+sha1sums=('c726b0856234ce78fab0ecd61072cdb035e66513')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwordquiz-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-kwordquiz/kdeedu-kwordquiz.install b/extra/kdeedu-kwordquiz/kdeedu-kwordquiz.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-kwordquiz/kdeedu-kwordquiz.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-marble/PKGBUILD b/extra/kdeedu-marble/PKGBUILD
new file mode 100644
index 000000000..29fca5ac8
--- /dev/null
+++ b/extra/kdeedu-marble/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144641 2011-12-08 09:18:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-marble
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Desktop Globe"
+url="http://kde.org/applications/education/marble/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'gpsd')
+optdepends=('gpsd: gps support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/marble-${pkgver}.tar.bz2")
+sha1sums=('e560c355a8d91bbb61b9f2e6c7cb11bd79eba1ab')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../marble-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-marble/kdeedu-marble.install b/extra/kdeedu-marble/kdeedu-marble.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-marble/kdeedu-marble.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-parley/PKGBUILD b/extra/kdeedu-parley/PKGBUILD
new file mode 100644
index 000000000..3c1d22bd0
--- /dev/null
+++ b/extra/kdeedu-parley/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144699 2011-12-08 09:20:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-parley
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Vocabulary Trainer"
+url="http://kde.org/applications/education/parley/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/parley-${pkgver}.tar.bz2")
+sha1sums=('e61d0192dce0e1427ee41ff96f1bcb73c77cbcef')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../parley-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-parley/kdeedu-parley.install b/extra/kdeedu-parley/kdeedu-parley.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdeedu-parley/kdeedu-parley.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdeedu-rocs/PKGBUILD b/extra/kdeedu-rocs/PKGBUILD
new file mode 100644
index 000000000..e2197da44
--- /dev/null
+++ b/extra/kdeedu-rocs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144701 2011-12-08 09:20:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-rocs
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Rocs Graph Theory"
+url="http://kde.org/applications/education/rocs/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/rocs-${pkgver}.tar.bz2")
+sha1sums=('f808118fcd5df59a9a808747be940a88b30cf6f3')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../rocs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-step/PKGBUILD b/extra/kdeedu-step/PKGBUILD
new file mode 100644
index 000000000..a75526795
--- /dev/null
+++ b/extra/kdeedu-step/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144703 2011-12-08 09:20:30Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-step
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Interactive Physical Simulator"
+url="http://kde.org/applications/education/step/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libqalculate' 'gsl' 'eigen')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/step-${pkgver}.tar.bz2")
+sha1sums=('30dba80e6f34124fd5a8ebf6688e261ab109d0d4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../step-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdeedu-step/kdeedu-step.install b/extra/kdeedu-step/kdeedu-step.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu-step/kdeedu-step.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegames/PKGBUILD b/extra/kdegames/PKGBUILD
new file mode 100644
index 000000000..5715c57da
--- /dev/null
+++ b/extra/kdegames/PKGBUILD
@@ -0,0 +1,515 @@
+# $Id: PKGBUILD 144705 2011-12-08 09:20:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+ 'kdegames-bovo'
+ 'kdegames-granatier'
+ 'kdegames-kajongg'
+ 'kdegames-kapman'
+ 'kdegames-katomic'
+ 'kdegames-kbattleship'
+ 'kdegames-kblackbox'
+ 'kdegames-kblocks'
+ 'kdegames-kbounce'
+ 'kdegames-kbreakout'
+ 'kdegames-kdiamond'
+ 'kdegames-kfourinline'
+ 'kdegames-kgoldrunner'
+ 'kdegames-kigo'
+ 'kdegames-killbots'
+ 'kdegames-kiriki'
+ 'kdegames-kjumpingcube'
+ 'kdegames-klines'
+ 'kdegames-klickety'
+ 'kdegames-kmahjongg'
+ 'kdegames-kmines'
+ 'kdegames-knetwalk'
+ 'kdegames-kolf'
+ 'kdegames-kollision'
+ 'kdegames-konquest'
+ 'kdegames-kpatience'
+ 'kdegames-kreversi'
+ 'kdegames-kshisen'
+ 'kdegames-ksirk'
+ 'kdegames-kspaceduel'
+ 'kdegames-ksquares'
+ 'kdegames-ksudoku'
+ 'kdegames-ktron'
+ 'kdegames-ktuberling'
+ 'kdegames-kubrick'
+ 'kdegames-libkdegames'
+ 'kdegames-libkmahjongg'
+ 'kdegames-lskat'
+ 'kdegames-palapeli')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ggz-client-libs' 'twisted'
+ 'kdebindings-python' 'openal')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('a1f97524f868ab9dae0439abcbf4b41f68715598')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdegames-bomber() {
+ pkgdesc='Arcade Bombing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bomber/"
+ install='kdegames.install'
+ cd $srcdir/build/bomber
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bomber
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+ pkgdesc='Five-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bovo/"
+ install='kdegames.install'
+ cd $srcdir/build/bovo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bovo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+ pkgdesc='Granatier'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/granatier/"
+ install='kdegames.install'
+ cd $srcdir/build/granatier
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/granatier
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+ pkgdesc='The ancient Chinese board game for 4 players'
+ depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted')
+ install='kdegames.install'
+ cd $srcdir/build/kajongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kajongg
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+ pkgdesc='Eat pills escaping ghosts'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kapman/"
+ install='kdegames.install'
+ cd $srcdir/build/kapman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+ pkgdesc='Sokoban-like Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/katomic/"
+ install='kdegames.install'
+ cd $srcdir/build/katomic
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/katomic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+ pkgdesc='Battleship Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kbattleship/"
+ install='kdegames-kbattleship.install'
+ cd $srcdir/build/kbattleship
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbattleship
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kbattleship/src/module.dsc \
+ $pkgdir/usr/share/ggz/kbattleship.dsc
+}
+
+package_kdegames-kblackbox() {
+ pkgdesc='Blackbox Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblackbox/"
+ install='kdegames.install'
+ cd $srcdir/build/kblackbox
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblackbox
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+ pkgdesc='Falling Blocks Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblocks/"
+ install='kdegames.install'
+ cd $srcdir/build/kblocks
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblocks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+ pkgdesc='Ball Bouncing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbounce/"
+ install='kdegames.install'
+ cd $srcdir/build/kbounce
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbounce
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+ pkgdesc='Breakout-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbreakout/"
+ install='kdegames.install'
+ cd $srcdir/build/kbreakout
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbreakout
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+ pkgdesc='Three-in-a-row game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kdiamond/"
+ install='kdegames.install'
+ cd $srcdir/build/kdiamond
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdiamond
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+ pkgdesc='Four-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kfourinline/"
+ install='kdegames-kfourinline.install'
+ cd $srcdir/build/kfourinline
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfourinline
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+ pkgdesc='A game of action and puzzle-solving'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/kgoldrunner/"
+ install='kdegames.install'
+ cd $srcdir/build/kgoldrunner
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgoldrunner
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+ pkgdesc='Go Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+ url="http://kde.org/applications/games/kigo/"
+ install='kdegames-kigo.install'
+ cd $srcdir/build/kigo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kigo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+ pkgdesc='Killbots'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/killbots/"
+ install='kdegames.install'
+ cd $srcdir/build/killbots
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/killbots
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+ pkgdesc='Yahtzee-like Dice Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kiriki/"
+ install='kdegames.install'
+ cd $srcdir/build/kiriki
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiriki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+ pkgdesc='Territory Capture Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kjumpingcube/"
+ install='kdegames.install'
+ cd $srcdir/build/kjumpingcube
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kjumpingcube
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+ pkgdesc='Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ replaces=('kdegames-ksame')
+ conflicts=('kdegames-ksame')
+ url="http://kde.org/applications/games/ksame/"
+ install='kdegames.install'
+ cd $srcdir/build/klickety
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klickety
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+ pkgdesc='Tactical Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/klines/"
+ install='kdegames.install'
+ cd $srcdir/build/klines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+ pkgdesc='Mahjongg Solitaire'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kmahjongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kmahjongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+ pkgdesc='Minesweeper-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kmines/"
+ install='kdegames.install'
+ cd $srcdir/build/kmines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+ pkgdesc='Network Construction Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/knetwalk/"
+ install='kdegames.install'
+ cd $srcdir/build/knetwalk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/knetwalk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+ pkgdesc='Miniature Golf'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kolf/"
+ install='kdegames-kolf.install'
+ cd $srcdir/build/kolf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+ pkgdesc='A simple ball dodging game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kollision/"
+ install='kdegames.install'
+ cd $srcdir/build/kollision
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kollision
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+ pkgdesc='Galactic Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/konquest/"
+ install='kdegames.install'
+ cd $srcdir/build/konquest
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/konquest
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+ pkgdesc='Patience Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kpatience/"
+ install='kdegames.install'
+ replaces=('kdegames-kpat')
+ cd $srcdir/build/kpat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kpat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+ pkgdesc='Reversi Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kreversi/"
+ install='kdegames-kreversi.install'
+ cd $srcdir/build/kreversi
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kreversi
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kreversi/module.dsc \
+ $pkgdir/usr/share/ggz/kreversi.dsc
+}
+
+package_kdegames-kshisen() {
+ pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kshisen/"
+ install='kdegames.install'
+ cd $srcdir/build/kshisen
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kshisen
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+ pkgdesc='World Domination Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksirk/"
+ install='kdegames.install'
+ cd $srcdir/build/ksirk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksirk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+ pkgdesc='Space Arcade Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kspaceduel/"
+ install='kdegames-kspaceduel.install'
+ cd $srcdir/build/kspaceduel
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kspaceduel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+ pkgdesc='Connect the dots to create squares'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/ksquares/"
+ install='kdegames-ksquares.install'
+ cd $srcdir/build/ksquares
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksquares
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/ksquares/src/module.dsc \
+ $pkgdir/usr/share/ggz/ksquares.dsc
+}
+
+package_kdegames-ksudoku() {
+ pkgdesc='KSudoku, Sudoku game & more for KDE'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksudoku/"
+ install='kdegames.install'
+ cd $srcdir/build/ksudoku
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksudoku
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+ pkgdesc='Tron-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktron/"
+ install='kdegames.install'
+ cd $srcdir/build/ktron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+ pkgdesc='Picture Game for Children'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktuberling/"
+ install='kdegames-ktuberling.install'
+ cd $srcdir/build/ktuberling
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktuberling
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+ pkgdesc='A 3-D game based on Rubik´s Cube'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kubrick/"
+ install='kdegames.install'
+ cd $srcdir/build/kubrick
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kubrick
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+ pkgdesc='KDE game library'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkdegames
+ make DESTDIR=$pkgdir install
+ for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+ install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+ done
+}
+
+package_kdegames-libkmahjongg() {
+ pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+ pkgdesc='Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/lskat/"
+ install='kdegames-lskat.install'
+ cd $srcdir/build/lskat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lskat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+ pkgdesc='Jigsaw puzzle game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/palapeli/"
+ install='kdegames-palapeli.install'
+ cd $srcdir/build/palapeli
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/palapeli
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdegames/kdegames-kbattleship.install b/extra/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ac4516ed0
--- /dev/null
+++ b/extra/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,24 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kbattleship.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kbattleship.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
diff --git a/extra/kdegames/kdegames-kfourinline.install b/extra/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/extra/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegames/kdegames-kigo.install b/extra/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/extra/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegames/kdegames-kolf.install b/extra/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/extra/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/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-kspaceduel.install b/extra/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/extra/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/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-ktuberling.install b/extra/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/extra/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegames/kdegames-lskat.install b/extra/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/extra/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegames/kdegames-palapeli.install b/extra/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/extra/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/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-gwenview/PKGBUILD b/extra/kdegraphics-gwenview/PKGBUILD
new file mode 100644
index 000000000..7e0d99786
--- /dev/null
+++ b/extra/kdegraphics-gwenview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144707 2011-12-08 09:20:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-gwenview
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A fast and easy to use image viewer for KDE"
+url="http://kde.org/applications/graphics/gwenview/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-lib' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins: extra plugins to share photos')
+install=$pkgname.install
+source=("http://download.kde.org/stable/${pkgver}/src/gwenview-${pkgver}.tar.bz2")
+sha1sums=('598714d18cf7adab8afd4f906070f0915e1cdc95')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../gwenview-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-gwenview/kdegraphics-gwenview.install b/extra/kdegraphics-gwenview/kdegraphics-gwenview.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdegraphics-gwenview/kdegraphics-gwenview.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-kamera/PKGBUILD b/extra/kdegraphics-kamera/PKGBUILD
new file mode 100644
index 000000000..3c1402ec8
--- /dev/null
+++ b/extra/kdegraphics-kamera/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144709 2011-12-08 09:20:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kamera
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Configure Kamera"
+url="http://kde.org/applications/graphics/kamera/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'gphoto2')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/kamera-${pkgver}.tar.bz2")
+sha1sums=('098c71d7588d5163656cb07a476efbfc6755900a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kamera-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-kcolorchooser/PKGBUILD b/extra/kdegraphics-kcolorchooser/PKGBUILD
new file mode 100644
index 000000000..7e18901a7
--- /dev/null
+++ b/extra/kdegraphics-kcolorchooser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144711 2011-12-08 09:20:51Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kcolorchooser
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Color Chooser"
+url="http://kde.org/applications/graphics/kcolorchooser/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kcolorchooser-${pkgver}.tar.bz2")
+sha1sums=('bbfda234e8aec109c63226499fc72355b1c051ca')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcolorchooser-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install b/extra/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-kgamma/PKGBUILD b/extra/kdegraphics-kgamma/PKGBUILD
new file mode 100644
index 000000000..93a78cbed
--- /dev/null
+++ b/extra/kdegraphics-kgamma/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144713 2011-12-08 09:20:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kgamma
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+url="http://kde.org/applications/graphics/kgamma/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+# note on libxxf86vm:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxxf86vm
+depends=('kdebase-runtime' 'libxxf86vm')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/kgamma-${pkgver}.tar.bz2")
+sha1sums=('cd528839b6a9be997ed8d4a2fc87a8b5b8e8de91')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgamma-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-kolourpaint/PKGBUILD b/extra/kdegraphics-kolourpaint/PKGBUILD
new file mode 100644
index 000000000..4859849c8
--- /dev/null
+++ b/extra/kdegraphics-kolourpaint/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144715 2011-12-08 09:21:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kolourpaint
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Paint Program"
+url="http://kde.org/applications/graphics/kolourpaint/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kolourpaint-${pkgver}.tar.bz2")
+sha1sums=('31e23ab6735291ec86ebd83e2eee7afa191a4a59')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kolourpaint-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install b/extra/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-kruler/PKGBUILD b/extra/kdegraphics-kruler/PKGBUILD
new file mode 100644
index 000000000..647c3fc4e
--- /dev/null
+++ b/extra/kdegraphics-kruler/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144717 2011-12-08 09:21:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kruler
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Screen Ruler"
+url="http://kde.org/applications/graphics/kruler/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kruler-${pkgver}.tar.bz2")
+sha1sums=('a854213e5342e382d3b9c4a29d1aada654378d0f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kruler-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-kruler/kdegraphics-kruler.install b/extra/kdegraphics-kruler/kdegraphics-kruler.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdegraphics-kruler/kdegraphics-kruler.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-ksaneplugin/PKGBUILD b/extra/kdegraphics-ksaneplugin/PKGBUILD
new file mode 100644
index 000000000..0985773b5
--- /dev/null
+++ b/extra/kdegraphics-ksaneplugin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144719 2011-12-08 09:21:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksaneplugin
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A scan plugin that implements the scanning"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libksane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/ksaneplugin-${pkgver}.tar.bz2")
+sha1sums=('15f7ca6fbabb757898cc0f18685f5e204e6b3f56')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksaneplugin-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-ksnapshot/PKGBUILD b/extra/kdegraphics-ksnapshot/PKGBUILD
new file mode 100644
index 000000000..3355032f0
--- /dev/null
+++ b/extra/kdegraphics-ksnapshot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144721 2011-12-08 09:21:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksnapshot
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Screen Capture Program"
+url="http://kde.org/applications/graphics/ksnapshot/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdelibs' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/ksnapshot-${pkgver}.tar.bz2")
+sha1sums=('bc40ae740e3a684e47ba1b5af01aeb427bb4336e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksnapshot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install b/extra/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-mobipocket/PKGBUILD b/extra/kdegraphics-mobipocket/PKGBUILD
new file mode 100644
index 000000000..c46dc73a1
--- /dev/null
+++ b/extra/kdegraphics-mobipocket/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144723 2011-12-08 09:21:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-mobipocket
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A collection of plugins to handle mobipocket files"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/mobipocket-${pkgver}.tar.bz2")
+sha1sums=('db278a2ebe4680a94c4963a53c1501cf1f1d9d2a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../mobipocket-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-okular/PKGBUILD b/extra/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..e6605019b
--- /dev/null
+++ b/extra/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144623 2011-12-08 09:18:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.7.4
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.bz2")
+sha1sums=('5f02bbfeff81b55e0fd5d9e973cb927909faccb1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-okular/kdegraphics-okular.install b/extra/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdegraphics-okular/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-okular/staging-i686/PKGBUILD b/extra/kdegraphics-okular/staging-i686/PKGBUILD
new file mode 100644
index 000000000..8b08d240f
--- /dev/null
+++ b/extra/kdegraphics-okular/staging-i686/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144119 2011-12-04 09:06:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.7.4
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.bz2")
+sha1sums=('5f02bbfeff81b55e0fd5d9e973cb927909faccb1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-okular/staging-i686/kdegraphics-okular.install b/extra/kdegraphics-okular/staging-i686/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdegraphics-okular/staging-i686/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdegraphics-strigi-analyzer/PKGBUILD b/extra/kdegraphics-strigi-analyzer/PKGBUILD
new file mode 100644
index 000000000..56f05e2e0
--- /dev/null
+++ b/extra/kdegraphics-strigi-analyzer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144725 2011-12-08 09:21:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-strigi-analyzer
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Strigi analyzers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('39b3b0312663a3ef7a68c972b39bf12fb4cabe8b')
+
+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/kdegraphics-svgpart/PKGBUILD b/extra/kdegraphics-svgpart/PKGBUILD
new file mode 100644
index 000000000..e641d8e40
--- /dev/null
+++ b/extra/kdegraphics-svgpart/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144727 2011-12-08 09:21:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-svgpart
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A KPart for viewving SVGs"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/svgpart-${pkgver}.tar.bz2")
+sha1sums=('38dcb3c468ca359e7b0a0027523b8156de6a06a1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../svgpart-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdegraphics-thumbnailers/PKGBUILD b/extra/kdegraphics-thumbnailers/PKGBUILD
new file mode 100644
index 000000000..1b842c7a8
--- /dev/null
+++ b/extra/kdegraphics-thumbnailers/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144729 2011-12-08 09:21:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-thumbnailers
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Thumbnailers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('0e1636da30c78ad2c186bcd30c0566406b920126')
+
+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/kdelibs/PKGBUILD b/extra/kdelibs/PKGBUILD
new file mode 100644
index 000000000..3a90fada3
--- /dev/null
+++ b/extra/kdelibs/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 144610 2011-12-08 09:18:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5'
+ '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' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install='kdelibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch')
+sha1sums=('78b25e93a8c70ccc1e0f117cce960fe4e1deb8d8'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menus
+ patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Parabola GNU/LinuxLibre' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/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..c77e68041
--- /dev/null
+++ b/extra/kdelibs/kdelibs.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdelibs3/PKGBUILD b/extra/kdelibs3/PKGBUILD
new file mode 100644
index 000000000..e9494adac
--- /dev/null
+++ b/extra/kdelibs3/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 123704 2011-05-12 16:07:27Z andrea $
+# Maintainer:
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kdelibs3
+pkgver=3.5.10
+pkgrel=11
+pkgdesc='KDE3 Core Libraries'
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'openssl.patch')
+md5sums=('43cd55ed15f63b5738d620ef9f9fd568'
+ 'ca50d4515468cfda80946690c53073f3'
+ 'a5aedcc9550809ce6672a7dddf9f5ad4'
+ 'ab14ce2c40698e24e162284d50c6f466'
+ 'f4e0735475b5de59d738d68a9f467b77'
+ '11e49bc6aca497f55610146afe217751'
+ '242f0e4750c019e62e285c0aad0c03b8')
+
+build() {
+ cd "$srcdir"/kdelibs-${pkgver}
+
+ . /etc/profile.d/qt3.sh
+ . "$srcdir"/kde3.profile
+
+ patch -p0 -i "$srcdir"/kde-3.5-1074156.patch
+ patch -p1 -i "$srcdir"/acinclude.patch
+ patch -p1 -i "$srcdir"/kde4-compatibility.patch
+ patch -p1 -i "${srcdir}"/openssl.patch
+
+ 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
+ make
+}
+
+package() {
+ cd "$srcdir"/kdelibs-${pkgver}
+
+ make DESTDIR="$pkgdir" install
+
+ # 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/kdelibs3/openssl.patch b/extra/kdelibs3/openssl.patch
new file mode 100644
index 000000000..a948b884a
--- /dev/null
+++ b/extra/kdelibs3/openssl.patch
@@ -0,0 +1,180 @@
+diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.cc
+--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x 2009-09-04 23:10:53.000000000 +0200
++++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-09-04 23:10:53.000000000 +0200
+@@ -96,9 +96,14 @@ static int (*K_BIO_write) (BIO *b, cons
+ static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *,
+ const EVP_CIPHER *,unsigned char *,int ,
+ pem_password_cb *, void *) = 0L;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L;
++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L;
++#else
+ static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L;
+ static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L;
+ static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L;
++#endif
+ static int (*K_X509_print_fp) (FILE *, X509*) = 0L;
+ static int (*K_i2d_PKCS12) (PKCS12*, unsigned char**) = 0L;
+ static int (*K_i2d_PKCS12_fp) (FILE *, PKCS12*) = 0L;
+@@ -430,9 +435,14 @@ KConfig *cfg;
+ K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl");
+ K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write");
+ K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio");
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp");
++ K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it");
++#else
+ K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth");
+ K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp");
+ K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER");
++#endif
+ K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp");
+ K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12");
+ K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp");
+@@ -594,7 +604,7 @@ KConfig *cfg;
+ K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session");
+ K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION");
+ K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION");
+- K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers");
++ K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers");
+ #endif
+
+
+@@ -982,7 +992,13 @@ int KOpenSSLProxy::PEM_write_bio_X509(BI
+ else return -1;
+ }
+
+-
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) {
++ if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it)
++ return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x);
++ else return -1;
++}
++#else
+ ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) {
+ if (K_X509_asn1_meth) return (K_X509_asn1_meth)();
+ else return 0L;
+@@ -994,7 +1010,7 @@ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out
+ return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x);
+ else return -1;
+ }
+-
++#endif
+
+ int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) {
+ if (K_X509_print_fp) return (K_X509_print_fp)(fp, x);
+diff -up kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.h
+--- kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x 2006-07-22 10:16:39.000000000 +0200
++++ kdelibs-3.5.10/kio/kssl/kopenssl.h 2009-09-04 23:10:53.000000000 +0200
+@@ -48,6 +48,9 @@ class KOpenSSLProxyPrivate;
+ #include <openssl/stack.h>
+ #include <openssl/bn.h>
+ #undef crypt
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++#define STACK _STACK
++#endif
+ #endif
+
+ #include <kstaticdeleter.h>
+@@ -446,12 +449,12 @@ public:
+ */
+ int PEM_write_bio_X509(BIO *bp, X509 *x);
+
+-
++#if OPENSSL_VERSION_NUMBER < 0x10000000L
+ /*
+ * X509_asn1_meth - used for netscape output
+ */
+ ASN1_METHOD *X509_asn1_meth();
+-
++#endif
+
+ /*
+ * ASN1_i2d_fp - used for netscape output
+@@ -531,6 +534,9 @@ public:
+ */
+ void sk_free(STACK *s);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); }
++#endif
+
+ /*
+ * Number of elements in the stack
+@@ -543,6 +549,9 @@ public:
+ */
+ char *sk_value(STACK *s, int n);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); }
++#endif
+
+ /*
+ * Create a new stack
+@@ -555,6 +564,9 @@ public:
+ */
+ int sk_push(STACK *s, char *d);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
++#endif
+
+ /*
+ * Duplicate the stack
+diff -up kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc
+--- kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x 2005-10-10 17:05:44.000000000 +0200
++++ kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc 2009-09-04 23:10:53.000000000 +0200
+@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate
+
+
+ STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> &certs) {
+- STACK_OF(X509) *x509 = sk_new(NULL);
++ STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL));
+ KSSLCertificate *cert = certs.first();
+ while(cert) {
+ sk_X509_push(x509, cert->getCert());
+diff -up kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksslcertificate.cc
+--- kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x 2006-01-19 18:06:12.000000000 +0100
++++ kdelibs-3.5.10/kio/kssl/ksslcertificate.cc 2009-09-04 23:10:53.000000000 +0200
+@@ -1003,17 +1003,31 @@ return qba;
+ QByteArray KSSLCertificate::toNetscape() {
+ QByteArray qba;
+ #ifdef KSSL_HAVE_SSL
+-ASN1_HEADER ah;
+-ASN1_OCTET_STRING os;
+-KTempFile ktf;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ NETSCAPE_X509 nx;
++ ASN1_OCTET_STRING hdr;
++#else
++ ASN1_HEADER ah;
++ ASN1_OCTET_STRING os;
++#endif
++ KTempFile ktf;
+
+- os.data = (unsigned char *)NETSCAPE_CERT_HDR;
+- os.length = strlen(NETSCAPE_CERT_HDR);
+- ah.header = &os;
+- ah.data = (char *)getCert();
+- ah.meth = d->kossl->X509_asn1_meth();
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR;
++ hdr.length = strlen(NETSCAPE_CERT_HDR);
++ nx.header = &hdr;
++ nx.cert = getCert();
++
++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx);
++#else
++ os.data = (unsigned char *)NETSCAPE_CERT_HDR;
++ os.length = strlen(NETSCAPE_CERT_HDR);
++ ah.header = &os;
++ ah.data = (char *)getCert();
++ ah.meth = d->kossl->X509_asn1_meth();
+
+- d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
++#endif
+
+ ktf.close();
+
diff --git a/extra/kdemultimedia/PKGBUILD b/extra/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..978cbd0cc
--- /dev/null
+++ b/extra/kdemultimedia/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 144731 2011-12-08 09:21:22Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdemultimedia
+pkgname=('kdemultimedia-dragonplayer'
+ 'kdemultimedia-ffmpegthumbs'
+ 'kdemultimedia-juk'
+ 'kdemultimedia-kioslave'
+ 'kdemultimedia-kmix'
+ 'kdemultimedia-kscd'
+ 'kdemultimedia-mplayerthumbs')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdelibs' 'tunepimp'
+ 'ffmpeg' 'mplayer' 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'mplayerthumbs.config')
+sha1sums=('e0001afac38e35e3ab7b919d79f74cd57e3c18dd'
+ '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..ef294cd36
--- /dev/null
+++ b/extra/kdenetwork/PKGBUILD
@@ -0,0 +1,111 @@
+# $Id: PKGBUILD 144733 2011-12-08 09:21:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-filesharing'
+ 'kdenetwork-kdnssd'
+ 'kdenetwork-kget'
+ 'kdenetwork-kopete'
+ 'kdenetwork-kppp'
+ 'kdenetwork-krdc'
+ 'kdenetwork-krfb')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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' 'libktorrent' 'libmms' 'mediastreamer')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('15d5bdcda0e05de6247b22b96c6ca4a98da8a278')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+ -DWITH_Xmms=OFF \
+ -DWITH_LibMeanwhile=OFF
+ make
+}
+
+package_kdenetwork-filesharing() {
+ pkgdesc='Konqueror properties dialog plugin to share a directory with the local network'
+ depends=('kdelibs' 'smbclient')
+ install='kdenetwork.install'
+ cd $srcdir/build/filesharing
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kdnssd() {
+ pkgdesc='Monitors the network for DNS-SD services'
+ depends=('kdelibs')
+ cd $srcdir/build/kdnssd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kget() {
+ pkgdesc='Download Manager'
+ depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms')
+ 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
+}
+
+package_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'v4l-utils' 'libgadu' 'mediastreamer')
+ 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..f1bb3f541
--- /dev/null
+++ b/extra/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144617 2011-12-08 09:18:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.7.4
+pkgrel=1
+pkgdesc='KDE PIM Runtime Environment'
+arch=('i686' 'x86_64' 'mips64el')
+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/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('fb02f53673316aaafb65b7c4dd570f3be3b4e935')
+
+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..16140a51b
--- /dev/null
+++ b/extra/kdepim/PKGBUILD
@@ -0,0 +1,252 @@
+# $Id: PKGBUILD 144735 2011-12-08 09:21:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim'
+ 'kdepim-wizards')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
+ 'pilot-link' 'kde-agent')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('233f6c413eeedd4af7cf15106a2af7b8f29977bf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ 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 kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer templateparser plugins/messageviewer \
+ plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdepim-kresources')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/wizards
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/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..32cbf1484
--- /dev/null
+++ b/extra/kdepimlibs/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144612 2011-12-08 09:18:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap')
+install='kdepimlibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('a539e29557c0a30779e752b9349b3a0c000ffbba')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ CXX="g++" \
+ 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..1392bfbbc
--- /dev/null
+++ b/extra/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,603 @@
+# $Id: PKGBUILD 144737 2011-12-08 09:21:34Z 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.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble'
+ 'eigen' 'scim' 'qwt' 'boost' 'libkexiv2')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('2bbf77d77e809733e6a74ff5688e6ff5487bc8bf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeplasma-addons-applets-bball() {
+ pkgdesc='A bouncy ball for plasma'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/bball
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+ pkgdesc='Time displayed in binary format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/binary-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+ pkgdesc='Black Board'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/blackboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+ pkgdesc='Quick Access to the Bookmarks'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+ pkgdesc='A pretty bubble that monitors your system.'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bubblemon
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+ pkgdesc='Calculate simple sums'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/calculator
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+ pkgdesc='View, select, and copy characters from a font collection'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/charselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+ pkgdesc='View comic strips from the Internet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/comic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+ pkgdesc='Communicate using the Social Desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/community
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+ pkgdesc='Look up the meaning of words and their translation into different languages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/dict
+ make DESTDIR=$pkgdir install
+ # FIXME
+ # /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+ rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+ pkgdesc='XEyes clone'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/eyes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+ pkgdesc='Put the pieces in order'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/fifteenPuzzle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+ pkgdesc='Watch for changes in specified files'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fileWatcher
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+ pkgdesc='Display your favorite pictures'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/applets/frame
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+ pkgdesc='Time displayed in a less precise format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fuzzy-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-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..5d7af71ac
--- /dev/null
+++ b/extra/kdeplasma-applets-networkmanagement/PKGBUILD
@@ -0,0 +1,36 @@
+# $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
+epoch=1
+pkgver=0.9.0rc3
+_pkgver=0.8.98
+pkgrel=1
+pkgdesc="KDE control panel and widget network connections"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org/"
+license=('GPL')
+depends=('kdebase-workspace' 'networkmanager')
+makedepends=('cmake' 'python2' 'automoc4' 'mobile-broadband-provider-info'
+ 'openconnect')
+optdepends=('mobile-broadband-provider-info: Database of mobile broadband service providers'
+ 'openconnect: Cisco AnyConnect compatible VPN client')
+install=${pkgname}.install
+source=("ftp://ftp.kde.org/pub/kde/unstable/networkmanagement/${_pkgver}/src/networkmanagement-${_pkgver}.tar.bz2")
+sha1sums=('f46274c4cca722f37eef7418144c0c04bfe21e24')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../networkmanagement-${_pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ 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-kate/PKGBUILD b/extra/kdesdk-kate/PKGBUILD
new file mode 100644
index 000000000..aea73b6b5
--- /dev/null
+++ b/extra/kdesdk-kate/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 144748 2011-12-08 09:52:57Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdesdk-kate
+pkgname=('kdebase-kwrite'
+ 'kdesdk-kate')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('kdelibs ''cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/kate-${pkgver}.tar.bz2"
+ 'pkgbuild-syntax-highlight.patch')
+sha1sums=('b808f01213e0e44607e8f2577f9d1b4f88e14388'
+ 'ab0c5d2a796b0f283154799add161c99f48ffcd5')
+
+build() {
+ cd "${srcdir}"/kate-${pkgver}
+ patch -p1 -i "${srcdir}"/pkgbuild-syntax-highlight.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kate-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_KTEXTEDITOR=OFF
+ make
+}
+
+package_kdebase-kwrite() {
+ pkgdesc="Text Editor"
+ depends=('kdebase-runtime')
+ groups=('kde' 'kdebase')
+ install='kdebase-kwrite.install'
+
+ cd "${srcdir}"/build/kwrite
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/part
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kwrite
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdesdk-kate() {
+ pkgdesc="Advanced Text Editor"
+ depends=('kdebase-kwrite')
+ groups=('kde' 'kdesdk')
+ install='kdesdk-kate.install'
+
+ cd "${srcdir}"/build/kate
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kate
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdesdk-kate/kdebase-kwrite.install b/extra/kdesdk-kate/kdebase-kwrite.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdesdk-kate/kdebase-kwrite.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdesdk-kate/kdesdk-kate.install b/extra/kdesdk-kate/kdesdk-kate.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/kdesdk-kate/kdesdk-kate.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/kdesdk-kate/pkgbuild-syntax-highlight.patch b/extra/kdesdk-kate/pkgbuild-syntax-highlight.patch
new file mode 100644
index 000000000..3c43eca0f
--- /dev/null
+++ b/extra/kdesdk-kate/pkgbuild-syntax-highlight.patch
@@ -0,0 +1,11 @@
+--- kate-4.6.80/part/syntax/data/bash.xml~ 2011-05-23 21:20:34.295137123 +0000
++++ kate-4.6.80/part/syntax/data/bash.xml 2011-05-23 21:20:54.581993368 +0000
+@@ -8,7 +8,7 @@
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
+ ]>
+-<language name="Bash" version="2.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" 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/kdesdk/PKGBUILD b/extra/kdesdk/PKGBUILD
new file mode 100644
index 000000000..0a9da92ae
--- /dev/null
+++ b/extra/kdesdk/PKGBUILD
@@ -0,0 +1,247 @@
+# $Id: PKGBUILD 144767 2011-12-08 10:28:41Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdesdk
+pkgname=('kdesdk-cervisia'
+ 'kdesdk-dolphin-plugins'
+ 'kdesdk-kapptemplate'
+ 'kdesdk-kcachegrind'
+ 'kdesdk-kdeaccounts-plugin'
+ 'kdesdk-kdepalettes'
+ 'kdesdk-kioslave'
+ 'kdesdk-kmtrace'
+ 'kdesdk-kompare'
+ 'kdesdk-kpartloader'
+ 'kdesdk-kprofilemethod'
+# 'kdesdk-kspy'
+ 'kdesdk-kstartperf'
+ 'kdesdk-kuiviewer'
+ 'kdesdk-lokalize'
+ 'kdesdk-okteta'
+ 'kdesdk-poxml'
+# 'kdesdk-scheck'
+ 'kdesdk-scripts'
+ 'kdesdk-strigi-analyzer'
+ 'kdesdk-umbrello')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdesdk')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'subversion' 'antlr2'
+ 'kdepimlibs' 'kdebase-lib')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'fix-python2-path.patch')
+sha1sums=('3a0f61204653dc3f9f975732b6f67659c60ecaf3'
+ '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-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'
+ optdepends=('gimp')
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kdepalettes/KDE_Gimp \
+ $pkgdir/usr/share/gimp/2.0/palettes/KDE.gpl
+}
+
+package_kdesdk-kioslave() {
+ pkgdesc='KDED Subversion Module'
+ depends=('kdebase-runtime' 'subversion')
+ cd $srcdir/build/kioslave
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kmtrace() {
+ pkgdesc='A KDE tool to assist with malloc debugging using glibc´s "mtrace" functionality'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kmtrace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmtrace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kompare() {
+ pkgdesc='Diff/Patch Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kompare/"
+ install='kdesdk.install'
+ cd $srcdir/build/kompare
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kompare
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kpartloader() {
+ pkgdesc='A test application for KParts'
+ depends=('kdebase-runtime')
+ install='kdesdk.install'
+ cd $srcdir/build/kpartloader
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kprofilemethod() {
+ pkgdesc='Macros helping to profile'
+ cd $srcdir/build/kprofilemethod
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kspy() {
+ pkgdesc='An Object Inspector for Qt/KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kspy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kstartperf() {
+ pkgdesc='Startup time measurement tool for KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kstartperf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kuiviewer() {
+ pkgdesc='Qt Designer UI File Viewer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kuiviewer/"
+ install='kdesdk.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-scheck() {
+ pkgdesc='An interface style to highlight accel and style guide conflicts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/scheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scripts() {
+ pkgdesc='KDE SDK scripts'
+ depends=('python2')
+ cd $srcdir/build/scripts
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/scripts
+ make DESTDIR=$pkgdir install
+}
+
+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-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..fa5020736
--- /dev/null
+++ b/extra/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 144739 2011-12-08 09:21:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('f929e598180f420d7fc6e4642ed56af9eee5a22b')
+
+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..c7f21e1b5
--- /dev/null
+++ b/extra/kdeutils/PKGBUILD
@@ -0,0 +1,191 @@
+# $Id: PKGBUILD 144741 2011-12-08 09:21:43Z 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.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'qjson')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('4630f01f36558eb5494fc562086fbd4e488e411e')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+
+ # Use Python2
+ sed -i 's|/usr/bin/python|/usr/bin/python2|' \
+ kcharselect/kcharselect-generate-datafile.py \
+ superkaramba/examples/richtext/rtext.py
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ printer-applet/{authconn,debug,monitor,printer-applet,statereason}.py
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_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/ark/doc
+ 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/filelight/doc
+ 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/kcalc/doc
+ 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/kcharselect/doc
+ 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/kdf/doc
+ 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/kfloppy/doc
+ 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/kgpg/doc
+ 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/kremotecontrol/doc
+ 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/ktimer/doc
+ 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/kwallet/doc
+ 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
+ cd $srcdir/build/printer-applet/doc
+ make DESTDIR=$pkgdir install
+}
+
+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
+ cd $srcdir/build/sweeper/doc
+ 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..bfb042d6a
--- /dev/null
+++ b/extra/kdevelop-pg-qt/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 144905 2011-12-09 16:07:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdevelop-pg-qt
+pkgver=0.9.5
+pkgrel=2
+pkgdesc="KDevelop Parser Generator, a LL(1) parser generator used by KDevelop language plugins"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdevelop')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('b5bcb46a490bfb6a2d04c48cb28e0c77cdde183f')
+
+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..7e5ea3478
--- /dev/null
+++ b/extra/kdevelop-php/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 128655 2011-06-25 11:01:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdevelop-php
+pkgver=1.2.3
+_pkgver=4.2.3
+pkgrel=1
+pkgdesc="PHP language and documentation plugin for KDevelop/Quanta"
+arch=('i686' 'x86_64' 'mips64el')
+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")
+sha1sums=('b0dc43cf01d2005f2ad66872ce6b49b093a7ceb4'
+ 'e399465638457fe015e920227e3aca5a53716804')
+
+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..3f336f03d
--- /dev/null
+++ b/extra/kdevelop/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 135608 2011-08-16 16:20:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=kdevelop
+pkgver=4.2.3
+pkgrel=2
+pkgdesc="A C/C++ development environment for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdebase-workspace' 'kdevplatform' 'kdesdk-okteta' 'kdebase-kwrite')
+makedepends=('cmake' 'automoc4' 'perl')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('e87ae29b343df3fea9bda7d8d85ec696e57b68e4')
+
+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..5c1338e67
--- /dev/null
+++ b/extra/kdevelop/kdevelop.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kdevplatform/PKGBUILD b/extra/kdevplatform/PKGBUILD
new file mode 100644
index 000000000..c9b212884
--- /dev/null
+++ b/extra/kdevplatform/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 144973 2011-12-12 18:32:32Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=kdevplatform
+pkgver=1.2.3
+_pkgver=4.2.3
+pkgrel=2
+pkgdesc="A C/C++ development platform for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdelibs' '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"
+ 'subversion17.patch')
+sha1sums=('c8badd157c2477b1b299403d01d40f68a1ba14cd'
+ '08e2ab2005a7a447f1733e8449a9bc926035fb9e')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/subversion17.patch
+
+ 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/kdevplatform/subversion17.patch b/extra/kdevplatform/subversion17.patch
new file mode 100644
index 000000000..782ac38ea
--- /dev/null
+++ b/extra/kdevplatform/subversion17.patch
@@ -0,0 +1,127 @@
+commit 74dec52749e3c3af2ac6492f50e2676128f35b27
+Author: Milian Wolff <mail@milianw.de>
+Date: Fri Nov 18 16:26:06 2011 +0100
+
+ fix svn api usage: use svn_dirent_canonicalize instead of svn_path_internal_style
+
+ this was suggested by Stephan Sperling
+
+ CCBUG: 284061
+
+diff --git a/plugins/subversion/kdevsvncpp/path.cpp b/plugins/subversion/kdevsvncpp/path.cpp
+index eaa84c1..4dced08 100644
+--- a/plugins/subversion/kdevsvncpp/path.cpp
++++ b/plugins/subversion/kdevsvncpp/path.cpp
+@@ -24,6 +24,7 @@
+
+ // subversion api
+ #include "svn_path.h"
++#include "svn_dirent_uri.h"
+
+ // apr api
+ #include "apr_file_io.h"
+@@ -63,8 +64,7 @@ namespace svn
+ m_path = "";
+ else
+ {
+- const char * int_path =
+- svn_path_internal_style(path, pool.pool());
++ const char * int_path = svn_dirent_canonicalize(path, pool);
+
+ m_path = int_path;
+
+commit cc7f0798d314cdac14b90e427abe22e99c6bd591
+Author: Milian Wolff <mail@milianw.de>
+Date: Fri Nov 18 16:23:36 2011 +0100
+
+ properly initialize client context for compatibility with subversion API
+
+ this should hopefully fix the crash with svn 1.7 in kdevelop, please test
+
+ BUG: 284061
+
+diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp
+index d277591..ddbb657 100644
+--- a/plugins/subversion/kdevsvncpp/context.cpp
++++ b/plugins/subversion/kdevsvncpp/context.cpp
+@@ -65,7 +65,7 @@ public:
+ bool logIsSet;
+ int promptCounter;
+ Pool pool;
+- svn_client_ctx_t ctx;
++ svn_client_ctx_t * ctx;
+ std::string username;
+ std::string password;
+ std::string logMessage;
+@@ -205,26 +205,26 @@ public:
+ svn_auth_open(&ab, providers, pool);
+
+ // initialize ctx structure
+- memset(&ctx, 0, sizeof(ctx));
++ svn_client_create_context(&ctx, pool);
+
+ // get the config based on the configDir passed in
+- svn_config_get_config(&ctx.config, c_configDir, pool);
++ svn_config_get_config(&ctx->config, c_configDir, pool);
+
+ // tell the auth functions where the config is
+ svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
+ c_configDir);
+
+- ctx.auth_baton = ab;
+- ctx.log_msg_func = onLogMsg;
+- ctx.log_msg_baton = this;
+- ctx.notify_func = onNotify;
+- ctx.notify_baton = this;
+- ctx.cancel_func = onCancel;
+- ctx.cancel_baton = this;
++ ctx->auth_baton = ab;
++ ctx->log_msg_func = onLogMsg;
++ ctx->log_msg_baton = this;
++ ctx->notify_func = onNotify;
++ ctx->notify_baton = this;
++ ctx->cancel_func = onCancel;
++ ctx->cancel_baton = this;
+
+ #if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2)
+- ctx.notify_func2 = onNotify2;
+- ctx.notify_baton2 = this;
++ ctx->notify_func2 = onNotify2;
++ ctx->notify_baton2 = this;
+ #endif
+ }
+
+@@ -234,7 +234,7 @@ public:
+ if (!value)
+ param = (void *)"1";
+
+- svn_auth_set_parameter(ctx.auth_baton,
++ svn_auth_set_parameter(ctx->auth_baton,
+ SVN_AUTH_PARAM_NO_AUTH_CACHE,
+ param);
+ }
+@@ -245,7 +245,7 @@ public:
+ username = usr;
+ password = pwd;
+
+- svn_auth_baton_t * ab = ctx.auth_baton;
++ svn_auth_baton_t * ab = ctx->auth_baton;
+ svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
+ username.c_str());
+ svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
+@@ -654,13 +654,13 @@ public:
+
+ Context::operator svn_client_ctx_t * ()
+ {
+- return &(m->ctx);
++ return m->ctx;
+ }
+
+ svn_client_ctx_t *
+ Context::ctx()
+ {
+- return &(m->ctx);
++ return m->ctx;
+ }
+
+ void
diff --git a/extra/kdewebdev/PKGBUILD b/extra/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..d081099ab
--- /dev/null
+++ b/extra/kdewebdev/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 144743 2011-12-08 09:21:45Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdewebdev')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepim-runtime'
+ 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('1e37e877d4f5ec8f6dcd05e828b4a8f0fd743d2c')
+
+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..feb20a0f2
--- /dev/null
+++ b/extra/kdiff3/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 136960 2011-09-03 21:15:57Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=kdiff3
+pkgver=0.9.96
+pkgrel=1
+pkgdesc="A KDE file comparator/merge tool"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('46b96befddf3448a3cb673f018c6f6f9')
+sha1sums=('d7efdacdfd7ea3c7ec9f7dee32aba5962c1709a5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/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..b2121f984
--- /dev/null
+++ b/extra/kexec-tools/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 136323 2011-08-26 10:46:24Z tpowa $
+# Contributor: Camille Moncelier <pix@devlife.org>, simo <simo@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kexec-tools
+pkgver=2.0.2
+pkgrel=4
+pkgdesc="Load another kernel from the currently executing Linux kernel"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kernel.org/pub/linux/utils/kernel/kexec/"
+source=("http://kernel.org/pub/linux/utils/kernel/kexec/kexec-tools-${pkgver}.tar.bz2"
+ 'kexec-tools-2.0.0-purgatory-makefile.patch'
+ 'kexec'
+ 'kexec.conf.d')
+depends=('gawk')
+makedepends=('zlib' 'xz')
+backup=('etc/conf.d/kexec')
+license=('GPL2')
+md5sums=('35d05fed1c97008ac34c5bfb929295eb'
+ 'b96f47c29757fcadfbc50ea6ea22f839'
+ 'be059a103e5989519d22fca99f860a64'
+ '9ca7e31d2c5c66c436a9a2baf20ad9b2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ export LDFLAGS+=" -static"
+ patch -Np1 -i ../kexec-tools-2.0.0-purgatory-makefile.patch
+ ./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..c2e9a78a8
--- /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 "Enabling kexec on reboot"
+ add_daemon kexec
+ stat_done
+ ;;
+
+ stop|load)
+ if [ "$RUNLEVEL" = "6" -o "$1" = "load" ]; then
+ stat_busy "Loading kexec 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 "Disabling kexec on reboot"
+ fi
+ if [ $? -eq 0 ] ; then
+ rm_daemon kexec
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ unload)
+ stat_busy "Unloading kexec 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-tools-2.0.0-purgatory-makefile.patch b/extra/kexec-tools/kexec-tools-2.0.0-purgatory-makefile.patch
new file mode 100644
index 000000000..0c029c8f4
--- /dev/null
+++ b/extra/kexec-tools/kexec-tools-2.0.0-purgatory-makefile.patch
@@ -0,0 +1,20 @@
+diff -up kexec-tools-2.0.0/purgatory/Makefile.orig kexec-tools-2.0.0/purgatory/Makefile
+--- kexec-tools-2.0.0/purgatory/Makefile.orig 2011-03-10 11:39:22.100799291 -0500
++++ kexec-tools-2.0.0/purgatory/Makefile 2011-03-10 11:39:36.422736886 -0500
+@@ -55,14 +55,14 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATO
+ -I$(srcdir)/util_lib/include \
+ -I$(shell $(CC) -print-file-name=include)
+ $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\
+- --no-undefined -nostartfiles -nostdlib -nodefaultlibs \
++ -nostartfiles -nostdlib -nodefaultlibs \
+ -e purgatory_start -r
+
+ $(PURGATORY): $(PURGATORY_OBJS)
+ $(MKDIR) -p $(@D)
+ $(CC) $(LDFLAGS) -o $@ $^
+
+-# $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB)
++# $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB)
+
+ echo::
+ @echo "PURGATORY_SRCS $(PURGATORY_SRCS)"
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..991a7a27d
--- /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/vmlinuz-linux"
+
+# 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/initramfs-linux.img"
diff --git a/extra/kile/PKGBUILD b/extra/kile/PKGBUILD
new file mode 100644
index 000000000..7be9788fd
--- /dev/null
+++ b/extra/kile/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 135613 2011-08-16 16:22:12Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=kile
+pkgver=2.1
+pkgrel=2
+pkgdesc="A user friendly TeX/LaTeX frontend for KDE"
+arch=("i686" "x86_64" 'mips64el')
+license=('GPL2')
+url="http://kile.sourceforge.net/"
+depends=('kdebase-runtime' 'texlive-core' 'kdebase-kwrite')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2")
+sha1sums=('860ac96b68b6026f48b8a9c401c6024ba78e3cdf')
+
+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/kile/kile.install b/extra/kile/kile.install
new file mode 100644
index 000000000..9fe93eeac
--- /dev/null
+++ b/extra/kile/kile.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kino/PKGBUILD b/extra/kino/PKGBUILD
new file mode 100644
index 000000000..432c6b015
--- /dev/null
+++ b/extra/kino/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 141101 2011-10-23 23:38:04Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=kino
+pkgver=1.3.4
+pkgrel=4
+pkgdesc="A non-linear DV editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kinodv.org/"
+license=('GPL')
+depends=('libavc1394' 'libiec61883' 'libdv' 'libglade' 'libxv' 'libsamplerate' 'libsm')
+makedepends=('intltool' 'v4l-utils')
+options=('!libtool')
+install=kino.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'videodev-header.patch')
+md5sums=('52f8ce690e45a089e3edc6c7af61a05c'
+ '940404c0eec3c9d954c289ceb52d15a6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i "${srcdir}"/videodev-header.patch
+
+ ./configure --prefix=/usr \
+ --with-udev-rules-dir=/lib/udev/rules.d
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # Fix permissions
+ chown -R root:root "${pkgdir}/usr/share/kino/help"
+}
diff --git a/extra/kino/kino.install b/extra/kino/kino.install
new file mode 100644
index 000000000..83b78df92
--- /dev/null
+++ b/extra/kino/kino.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-mime-database usr/share/mime 1> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-mime-database usr/share/mime 1> /dev/null
+ update-desktop-database -q
+}
diff --git a/extra/kino/videodev-header.patch b/extra/kino/videodev-header.patch
new file mode 100644
index 000000000..01394fc47
--- /dev/null
+++ b/extra/kino/videodev-header.patch
@@ -0,0 +1,26 @@
+Index: kino-1.3.4/ffmpeg/libavdevice/v4l.c
+===================================================================
+--- kino-1.3.4.orig/ffmpeg/libavdevice/v4l.c 2011-04-11 15:12:41.915593967 +0200
++++ kino-1.3.4/ffmpeg/libavdevice/v4l.c 2011-04-11 15:13:05.825593979 +0200
+@@ -26,7 +26,7 @@
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #define _LINUX_TIME_H 1
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <time.h>
+
+ typedef struct {
+Index: kino-1.3.4/src/v4l.h
+===================================================================
+--- kino-1.3.4.orig/src/v4l.h 2011-04-11 15:12:41.895593967 +0200
++++ kino-1.3.4/src/v4l.h 2011-04-11 15:12:57.555593975 +0200
+@@ -40,7 +40,7 @@
+
+ #define _DEVICE_H_
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+
+ #include "displayer.h"
+
diff --git a/extra/kismet/PKGBUILD b/extra/kismet/PKGBUILD
new file mode 100644
index 000000000..a2450f3ac
--- /dev/null
+++ b/extra/kismet/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 123234 2011-05-09 12:19:16Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Juergen Hoetzel <jason@archlinux.org>
+
+pkgname=kismet
+pkgver=2011_03_R2
+_realver="${pkgver//_/-}"
+pkgrel=2
+pkgdesc="802.11 layer2 wireless network detector, sniffer, and intrusion detection system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kismetwireless.net/"
+license=('GPL')
+depends=('libcap' 'libnl' 'pcre' 'ncurses' 'libpcap>=1.0.0' 'bluez' 'openssl') # already in core: ('linux-api-headers' 'glibc' 'libusb' 'libusb-compat')
+makedepends=() # already in core: ('grep' 'gcc-libs')
+optdepends=('gpsd: log coordinates of detected networks'
+ 'wireshark: provide OUI files used to determine device manufacturer'
+ 'wireshark: mergecap, to merge multiple capture files'
+ 'sox: provide the default kismet sound playback binary'
+ 'festival: text-to-speech support'
+ 'flite: alternative/lightweight text-to-speech support'
+ 'mac80211-driver: full rfmon support'
+ 'ruby: ruby interface')
+backup=('etc/kismet.conf' 'etc/kismet_drone.conf')
+options=()
+install=kismet.install
+changelog=kismet.changelog
+source=("http://www.kismetwireless.net/code/${pkgname}-${_realver}.tar.gz")
+md5sums=('8bf077e8111e6dc8c12cadefdf40aadd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_realver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make dep
+ make
+
+ # Include plugins bundled with kismet
+ make plugins
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_realver}"
+
+ # Install kismet
+ make DESTDIR="$pkgdir" install
+
+ # Install plugins
+ make plugins-install DESTDIR="$pkgdir"
+
+ # the README is very comprehensive, a good idea to include it
+ install -D -m 644 "${srcdir}/kismet-${_realver}/README" "${pkgdir}/usr/share/kismet/README"
+
+ # Our own suid-install, first half (see kismet.install)
+ install -o "root" -g "root" -m 4550 kismet_capture "${pkgdir}/usr/bin/"
+}
+
diff --git a/extra/kismet/kismet.changelog b/extra/kismet/kismet.changelog
new file mode 100644
index 000000000..e66dcfda0
--- /dev/null
+++ b/extra/kismet/kismet.changelog
@@ -0,0 +1,26 @@
+2010-05-07 Angel Velasquez <angvp@archlinux.org>
+ * ChangeLog added
+
+ * Removed old patches from SVN
+
+ * Applied changes from FS#15746 thanks to people who worked on it.
+
+ * Files that are no longer shipped and so should not be backed up:
+ backup=('etc/ap_manuf' 'etc/client_manuf' 'etc/kismet_ui.conf')
+
+ * No longer needed; gpsmap is deprecated and being replaced with a tile-based
+ mapper, as of yet incomplete
+ optdepends=('perl-libwww: fetch maps for gpsmap')
+
+ * Configuration has completely changed, no longer containing
+ references to either prism2 or wlanng
+ sed -i 's/prism2/wlanng/g' conf/kismet.conf
+
+ * Ownership of man pages now defaults to "root" if the group "man" does not exist
+ chown root:root "$pkgdir"/usr/share/man/man{1,5}/*
+
+ * Dependencies no longer needed
+ depends=('gmp' 'imagemagick' 'dbus' 'libjpeg>=7')
+
+ * Options no longer needed
+ options=('!makeflags')
diff --git a/extra/kismet/kismet.install b/extra/kismet/kismet.install
new file mode 100644
index 000000000..0bc806034
--- /dev/null
+++ b/extra/kismet/kismet.install
@@ -0,0 +1,34 @@
+## arg 1: the new package version
+post_install() {
+ post_upgrade
+
+ cat << EOP
+ If you have not done so already, read the README file and the FAQ file.
+ You MUST edit /etc/kismet.conf and configure Kismet for your system, or
+ it will NOT run properly!"
+
+ Kismet has been installed with a SUID ROOT CAPTURE HELPER executeable by
+ users in the group ' kismet '. This WILL ALLOW USERS IN THIS GROUP
+ TO ALTER YOUR NETWORK INTERACE STATES, but is more secure than running
+ all of Kismet as root. ONLY users in this group will be able to
+ run Kismet and capture from physical network devices.
+EOP
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ # Add the group needed to use the limited-functionality binary "kismet_capture"
+ # Change group ownership of "kismet_capture" to this new group
+ # Preserve the file mode bits of "kismet_capture"
+ getent group "kismet" &>/dev/null || /usr/sbin/groupadd -r -g 315 kismet &>/dev/null
+ chown root:kismet "/usr/bin/kismet_capture"
+ chmod 4550 "/usr/bin/kismet_capture"
+}
+
+## arg 1: the old package version
+post_remove() {
+ getent group "kismet" &>/dev/null && /usr/sbin/groupdel kismet &>/dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/kobodeluxe/PKGBUILD b/extra/kobodeluxe/PKGBUILD
new file mode 100644
index 000000000..8a52ce946
--- /dev/null
+++ b/extra/kobodeluxe/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 122903 2011-05-07 08:05:30Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=kobodeluxe
+pkgver=0.5.1
+pkgrel=3
+pkgdesc="An enhanced version of Akira Higuchi's game XKobo, an addictive space shoot'em up"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.olofson.net/kobodl/"
+license=('GPL' 'LGPL')
+depends=('libjpeg' 'libpng' 'sdl_image' 'hicolor-icon-theme' 'gtk-update-icon-cache')
+install=kobodeluxe.install
+source=(http://www.olofson.net/kobodl/download/KoboDeluxe-${pkgver}.tar.gz \
+ kobodeluxe-gcc-4.3.patch kobodeluxe-0.5.1-glibc2.10.patch)
+md5sums=('cf765559461213d651c7be042507b767'
+ '2b76306ec997fdc64986b4425e5b7814'
+ '56115c9a1e3db1b95b731fdcb11f3f4f')
+sha1sums=('12abe182ccde52050cd23077092d0424d25c3e75'
+ '274dc8e7909bc6f9fab31306c85d992af8b62674'
+ '9d1b3b8cef4a16b6a082fed9f93f1dc12b2a3be0')
+
+build() {
+ cd "${srcdir}/KoboDeluxe-${pkgver}"
+ patch -p0 < ../kobodeluxe-gcc-4.3.patch
+ patch -p0 < ../kobodeluxe-0.5.1-glibc2.10.patch
+ ./configure --prefix=/usr --localstatedir=/var --sharedstatedir=/var/games
+ make
+}
+
+package() {
+ cd "${srcdir}/KoboDeluxe-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ tar -xzf icons.tar.gz
+ install -D -m644 icons/KDE/kobo-deluxe.desktop "${pkgdir}/usr/share/applications/kobo-deluxe.desktop"
+ for i in 16 22 32 48 64 128 ; do
+ install -D -m644 icons/KDE/icons/${i}x${i}/kobodl.png "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/kobodl.png"
+ done
+ 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-0.5.1-glibc2.10.patch b/extra/kobodeluxe/kobodeluxe-0.5.1-glibc2.10.patch
new file mode 100644
index 000000000..1095cc1c7
--- /dev/null
+++ b/extra/kobodeluxe/kobodeluxe-0.5.1-glibc2.10.patch
@@ -0,0 +1,11 @@
+--- graphics/window.cpp
++++ graphics/window.cpp
+@@ -398,7 +398,7 @@
+ */
+ if(token)
+ {
+- char *tok = strchr(txt, token);
++ const char *tok = strchr(txt, token);
+ if(tok)
+ tokpos = tok-txt;
+ else
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..54b9f81f6
--- /dev/null
+++ b/extra/kobodeluxe/kobodeluxe.install
@@ -0,0 +1,20 @@
+post_install() {
+ post_upgrade
+}
+
+post_upgrade() {
+ if [ -d usr/share/kobo-deluxe/kobo-deluxe/scores ] ; then
+ mkdir -p var/games/kobo-deluxe/scores/
+ 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
+ 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/koffice/PKGBUILD b/extra/koffice/PKGBUILD
new file mode 100644
index 000000000..01d3dad85
--- /dev/null
+++ b/extra/koffice/PKGBUILD
@@ -0,0 +1,314 @@
+# $Id: PKGBUILD 142654 2011-11-12 17:18:33Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Andrea Scarpino <andrea@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=11
+arch=('i686' 'x86_64' 'mips64el')
+url='http://koffice.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'boost' 'eigen' 'gsl' 'lcms'
+ 'glew' 'qimageblitz' 'kdepimlibs' 'pstoedit' 'poppler-qt' 'libwpd'
+ 'libwpg' 'opengtl' 'libkdcraw' 'oxygen-icons' 'libgsf')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('pkg-config' 'cmake' 'automoc4' 'boost' 'eigen' 'gsl' 'lcms'
+ 'glew' 'qimageblitz' 'kdepimlibs' 'pstoedit' 'poppler-qt' 'libwpd'
+ 'libwpg' 'libkdcraw' 'oxygen-icons' 'libgsf')
+groups=('koffice')
+source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2"
+ 'kde4-koffice-libwpg02.patch' 'gcc46.patch' 'qt48fix.patch')
+sha256sums=('31ba0d98c0d29c7b8ab97efdeb6c618b82177b2b0ec85da088178254da43c099'
+ '69106deb4081d71b5bd8f2e4f5af67ca689e4ce9f2bb49c11dbce5fb3409d612'
+ 'e095c0b2bbedf41da6535a68b2275464dafd3f194566028d0135322f596e4739'
+ 'a20d7412ceeefdf7987b1c5179a740c7ee188e314ffb94cc226967ee194bc2aa')
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ patch -p1 -i "${srcdir}/kde4-koffice-libwpg02.patch"
+ patch -p1 -i "${srcdir}"/gcc46.patch
+ patch -p1 -i "${srcdir}"/qt48fix.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"
+ depends=('shared-mime-info' 'libgsf')
+ optdepends=('libwpd: WordPerfect document importer'
+ 'libwpg: Corel WordPerfect Graphics image importer' 'pstoedit: Karbon EPS import filter'
+ 'libkdcraw: support for raw images' 'poppler: support for pdf'
+ 'koffice-kspread: Kspread filters' 'koffice-karbon: Karbon filters'
+ 'koffice-kplato: Kplato filters')
+ install=filters.install
+ cd "${srcdir}/build/filters"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-interfaces(){
+ pkgdesc="Interfaces for the KDE office suite"
+ depends=('koffice-libs')
+ cd "${srcdir}/build/interfaces"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-libs(){
+ pkgdesc="Libs for the KDE office suite"
+ depends=('kdepimlibs' '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"
+ depends=('desktop-file-utils' 'xdg-utils')
+ 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' 'oxygen-icons')
+ 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=('koffice-libs' 'koffice-templates' 'oxygen-icons')
+ 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=('koffice-kspread' 'oxygen-icons')
+ install=koffice.install
+ 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=('koffice-libs')
+ install=koffice.install
+ 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=('koffice-libs')
+ cd "${srcdir}/build/kounavail"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kplato(){
+ pkgdesc="Project management application for KDE"
+ depends=('koffice-kword' 'oxygen-icons')
+ 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=('koffice-libs' 'koffice-templates' 'oxygen-icons')
+ 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=('glew' 'qimageblitz' 'oxygen-icons' 'koffice-templates' \
+ 'koffice-plugins' 'poppler-qt' 'opengtl')
+ optdepends=('koffice-filters: import/export filters' 'libkdcraw: support for raw images')
+[ "$CARCH" = "mips64el" ] && \
+ depends=('glew' 'qimageblitz' 'oxygen-icons' 'koffice-templates' \
+ 'koffice-plugins' 'poppler-qt')
+ 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=('gsl' 'koffice-templates' 'koffice-plugins' 'oxygen-icons')
+ 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=('koffice-templates' 'koffice-pics' 'oxygen-icons' \
+ '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/gcc46.patch b/extra/koffice/gcc46.patch
new file mode 100644
index 000000000..dcf8a4f85
--- /dev/null
+++ b/extra/koffice/gcc46.patch
@@ -0,0 +1,23 @@
+diff -up koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc.gcc46 koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc
+--- koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc.gcc46 2011-02-17 06:13:40.000000000 -0600
++++ koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc 2011-02-19 21:15:56.597142885 -0600
+@@ -80,6 +80,9 @@ ImageType imfTypeToKisType(Imf::PixelTyp
+ return IT_FLOAT16;
+ case Imf::FLOAT:
+ return IT_FLOAT32;
++ default:
++ // shouldn't reach here
++ return IT_UNSUPPORTED;
+ }
+ }
+
+@@ -93,6 +96,9 @@ const KoColorSpace* kisTypeToColorSpace(
+ case IT_UNKNOWN:
+ case IT_UNSUPPORTED:
+ return 0;
++ default:
++ // shouldn't reach here
++ return 0;
+ }
+ }
+
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..6c87527e2
--- /dev/null
+++ b/extra/koffice/koffice.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/koffice/krita.install b/extra/koffice/krita.install
new file mode 100644
index 000000000..5d458de55
--- /dev/null
+++ b/extra/koffice/krita.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/koffice/qt48fix.patch b/extra/koffice/qt48fix.patch
new file mode 100644
index 000000000..de72926d5
--- /dev/null
+++ b/extra/koffice/qt48fix.patch
@@ -0,0 +1,10 @@
+--- koffice-2.3.3/plugins/chartshape/kdchart/src/KDChartBackgroundAttributes.cpp 2011-02-17 13:10:38.000000000 +0100
++++ koffice-2.3.3/plugins/chartshape/kdchart/src/KDChartBackgroundAttributes.cpp 2011-09-08 15:03:31.932039128 +0200
+@@ -150,7 +150,6 @@ QDebug operator<<(QDebug dbg, const KDCh
+ << "visible="<<ba.isVisible()
+ << "brush="<<ba.brush()
+ << "pixmapmode="<<ba.pixmapMode()
+- << "pixmap="<<ba.pixmap()
+ << ")";
+ return dbg;
+ }
diff --git a/extra/konversation/PKGBUILD b/extra/konversation/PKGBUILD
new file mode 100644
index 000000000..543cfd671
--- /dev/null
+++ b/extra/konversation/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 144356 2011-12-05 01:48:51Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: James Rayner <iphitus@gmail.com>
+# Contributor: Sergio Jovani Guzman <moret@paretux.org>
+
+pkgname=konversation
+pkgver=1.4
+pkgrel=1
+pkgdesc="A user friendly IRC client for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://konversation.kde.org"
+depends=('kdebase-runtime' 'kdepimlibs' 'python')
+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.xz")
+sha1sums=('90741721f68a02d4345b9006a8ae53bc49ef3777')
+
+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 a bunch of symlinks pointing to non-existant files
+ for lang in pt_BR uk sv et de en nl; do
+ rm "${pkgdir}"/usr/share/doc/kde/html/${lang}/konversation/common
+ done
+}
diff --git a/extra/konversation/konversation.install b/extra/konversation/konversation.install
new file mode 100644
index 000000000..5a3809d3f
--- /dev/null
+++ b/extra/konversation/konversation.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/kradio/PKGBUILD b/extra/kradio/PKGBUILD
new file mode 100644
index 000000000..a3c3ed9e2
--- /dev/null
+++ b/extra/kradio/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142630 2011-11-12 17:15:25Z ibiru $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kradio
+pkgver=4.0.2
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+pkgdesc="A comfortable KDE radio application"
+url="http://kradio.sourceforge.net/"
+depends=('kdebase-runtime' 'lirc-utils' 'libmms' 'ffmpeg')
+makedepends=('pkg-config' 'automoc4' 'cmake')
+install=kradio.install
+source=(http://downloads.sourceforge.net/sourceforge/kradio/kradio4-$pkgver.tar.bz2{,.asc} kradio-ffmpeg.diff)
+options=(!libtool)
+
+build() {
+ cd "$srcdir"
+ (cd ${pkgname}4-$pkgver ; patch -p1 -i "$srcdir/kradio-ffmpeg.diff")
+ 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="$pkgdir" install
+}
+md5sums=('18fea3e2bc7100882075187c6a89f7bd'
+ '5f407eb75536f39e79c77a70613e8704'
+ '7d31a4f54602bc109f39cc0a7a1dc50c')
diff --git a/extra/kradio/kradio-ffmpeg.diff b/extra/kradio/kradio-ffmpeg.diff
new file mode 100644
index 000000000..27d224fec
--- /dev/null
+++ b/extra/kradio/kradio-ffmpeg.diff
@@ -0,0 +1,34 @@
+X-Git-Url: http://kradio.git.sourceforge.net/git/gitweb.cgi?p=kradio%2Fkradio;a=blobdiff_plain;f=plugins%2Finternetradio%2Fdecoder_thread.cpp;h=c74d6e20578faf3b5dee877aa6de0c9269f49ad9;hp=4cd6cc0543200e9e274e38fa8badb63556a419c3;hb=4f4ec44f49d83b85702bb002455a57374245d825;hpb=c5dea0c01bf5cc16f49cf3d58b837b2fab02d988
+
+diff --git a/plugins/internetradio/decoder_thread.cpp b/plugins/internetradio/decoder_thread.cpp
+index 4cd6cc0..c74d6e2 100644
+--- a/plugins/internetradio/decoder_thread.cpp
++++ b/plugins/internetradio/decoder_thread.cpp
+@@ -373,7 +373,6 @@ void InternetRadioDecoder::openAVStream(const QString &stream, bool warningsNotE
+
+ //av_log_set_level(255);
+ m_av_pFormatCtx = avformat_alloc_context();
+- memset(m_av_pFormatCtx, 0, sizeof(*m_av_pFormatCtx));
+ m_av_pFormatCtx->probesize = m_maxProbeSize;
+ m_av_pFormatCtx->max_analyze_duration = m_maxAnalyzeTime * AV_TIME_BASE;
+
+@@ -475,7 +474,6 @@ void InternetRadioDecoder::openAVStream(const QString &stream, bool warningsNotE
+ m_av_pFormatCtx_opened = true;
+ }
+ else {
+-
+ // IErrorLogClient::staticLogDebug("InternetRadioDecoder::openAVStream: av_open_input_file start");
+ if (av_open_input_file(&m_av_pFormatCtx, stream.toUtf8(), iformat, 0, &av_params) != 0) {
+ if (warningsNotErrors) {
+@@ -535,7 +533,11 @@ void InternetRadioDecoder::openAVStream(const QString &stream, bool warningsNotE
+ m_av_audioStream = -1;
+ for (unsigned int i = 0; i < m_av_pFormatCtx->nb_streams; i++) {
+ // if (m_av_pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO && m_av_audioStream < 0) {
++#if LIBAVCODEC_VERSION_MAJOR < 53
+ if (m_av_pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO) { // take last stream
++#else
++ if (m_av_pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) { // take last stream
++#endif
+ m_av_audioStream = i;
+ break;
+ }
diff --git a/extra/kradio/kradio.install b/extra/kradio/kradio.install
new file mode 100644
index 000000000..af52669f5
--- /dev/null
+++ b/extra/kradio/kradio.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+}
+
+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/ksensors/PKGBUILD b/extra/ksensors/PKGBUILD
new file mode 100644
index 000000000..43c278c66
--- /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' 'mips64el')
+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..99e58f307
--- /dev/null
+++ b/extra/kshutdown/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 122317 2011-05-03 18:58:40Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kshutdown
+pkgver=2.0
+pkgrel=1
+pkgdesc="Shutdown Utility for KDE"
+arch=(i686 x86_64 'mips64el')
+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=('af9d2bfda919e7712319e14e6ca89610')
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..c7f2f5cde
--- /dev/null
+++ b/extra/ktorrent/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 143237 2011-11-23 19:36:57Z 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.3
+pkgrel=1
+pkgdesc="A powerful BitTorrent client for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+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
+md5sums=('4cdd6597a11a465d91e17ac86320883e'
+ '1f25b94615b0bbfa0457c99fb20de3e6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # build time patch
+ patch -p0 -i "${srcdir}/httpserver.patch"
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_MEDIAPLAYER_PLUGIN=true
+ 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..91944a30f
--- /dev/null
+++ b/extra/ktorrent/ktorrent.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/kwebkitpart/PKGBUILD b/extra/kwebkitpart/PKGBUILD
new file mode 100644
index 000000000..cc44ba19b
--- /dev/null
+++ b/extra/kwebkitpart/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140401 2011-10-12 18:43:47Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kwebkitpart
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A WebKit browser component for KDE"
+url="http://opendesktop.org/content/show.php?content=127960"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("${pkgname}-${pkgver}.tar.bz2"::"http://quickgit.kde.org/?p=${pkgname}.git&a=snapshot&h=d2aba2aa0664fde17f29d526226576aa6b956ee1&fmt=tbz2")
+md5sums=('d87b69fc4945aa9159908f842c3f9e2e')
+
+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/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..64a24ebb6
--- /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 'mips64el')
+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..20a6b9985
--- /dev/null
+++ b/extra/lablgtk2/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 135692 2011-08-17 10:30:13Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=lablgtk2
+pkgver=2.14.2
+pkgrel=4
+pkgdesc=" An Objective Caml interface to gtk2"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+url="http://lablgtk.forge.ocamlcore.org/"
+depends=('gtk2' 'gtkspell' 'libgnomecanvas' 'librsvg' 'libgnomeui' 'gtksourceview2')
+makedepends=('ocaml')
+optdepends=('ocaml: for using the tools')
+source=(https://forge.ocamlcore.org/frs/download.php/561/lablgtk-${pkgver}.tar.gz)
+options=(!makeflags)
+md5sums=('bad77680a72dab8b915cae99d1ec9b1f')
+
+build() {
+ cd "${srcdir}/lablgtk-${pkgver}"
+ ./configure --prefix=/usr
+ make world
+ make opt
+ make DESTDIR="${pkgdir}" install
+ install -m644 META "${pkgdir}/usr/lib/ocaml/lablgtk2/"
+}
diff --git a/extra/ladspa/PKGBUILD b/extra/ladspa/PKGBUILD
new file mode 100644
index 000000000..e7009dfdf
--- /dev/null
+++ b/extra/ladspa/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137623 2011-09-10 08:28:05Z pierre $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=ladspa
+pkgver=1.13
+pkgrel=3
+pkgdesc="Linux Audio Developer's Simple Plugin API (LADSPA)"
+arch=("i686" "x86_64" 'mips64el')
+license=('LGPL')
+url="http://www.ladspa.org/"
+depends=('gcc-libs')
+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"
+ sed \
+ -e 's/mkdirhier/mkdir -p/' \
+ -e "s#-O3#${CFLAGS} ${LDFLAGS/,--as-needed/}#" \
+ -i makefile
+ make targets
+}
+
+package() {
+ cd "${srcdir}/${pkgname}_sdk/src"
+ make INSTALL_PLUGINS_DIR="${pkgdir}/usr/lib/ladspa/" \
+ INSTALL_INCLUDE_DIR="${pkgdir}/usr/include/" \
+ INSTALL_BINARY_DIR="${pkgdir}/usr/bin/" install
+}
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/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..42579d43a
--- /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.1 $(ALLOBJ) -L.. -lblas -lm -lgfortran -lc
+
diff --git a/extra/lapack/PKGBUILD b/extra/lapack/PKGBUILD
new file mode 100644
index 000000000..9a7dec0c7
--- /dev/null
+++ b/extra/lapack/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 131048 2011-07-09 21:48:17Z 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>
+
+pkgname=lapack
+pkgver=3.3.1
+pkgrel=2
+url="http://www.netlib.org/lapack"
+pkgdesc="Linear Algebra PACKage"
+makedepends=('gcc-fortran')
+depends=("blas=${pkgver}")
+arch=('i686' 'x86_64' 'mips64el')
+license=("custom")
+source=(http://www.netlib.org/${pkgname}/${pkgname}-${pkgver}.tgz
+ lapack-3.1.1-make.inc.patch
+ Makefile.lapack)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/lapack-3.1.1-make.inc.patch"
+ cp -f INSTALL/make.inc.gfortran make.inc
+ cp -f "${srcdir}/Makefile.lapack" SRC/Makefile
+
+ export FC=gfortran
+
+ 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}/${pkgname}-${pkgver}/"
+ popd
+}
+
+package() {
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 "${srcdir}/${pkgname}-${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}/${pkgname}-${pkgver}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/lapack/"
+}
+
+sha1sums=('3ce437e05f0e9a3c8148ec41922f6efeef0ebdac'
+ '71bf7696f1c841339163e82d863dd62e484eb1cf'
+ '128a258fde1b923c0b0b958a8a8ae8aa7657e44b'
+ '2491a151a37f0162b25fc4e4e9a8ac444b574a76')
+sha1sums=('3ce437e05f0e9a3c8148ec41922f6efeef0ebdac'
+ '71bf7696f1c841339163e82d863dd62e484eb1cf'
+ 'bbc51c4204cfc6a8aed1a0b61dc39f57ce801e6d')
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/latex2rtf/PKGBUILD b/extra/latex2rtf/PKGBUILD
new file mode 100644
index 000000000..e80c4c714
--- /dev/null
+++ b/extra/latex2rtf/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 119963 2011-04-17 22:11:07Z remy $
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=latex2rtf
+pkgver=2.1.0
+pkgrel=1
+pkgdesc="LaTeX to RTF converter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://latex2rtf.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'imagemagick' 'ghostscript')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('31e6280312b56c2c38cf6a3fddff21a9910c7d6f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=${pkgdir}/usr MAN_INSTALL=${pkgdir}/usr/share/man/man1 install
+ 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..a251c572a
--- /dev/null
+++ b/extra/lbreakout2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 143790 2011-11-29 11:41:15Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=lbreakout2
+pkgver=2.6.3
+pkgrel=2
+pkgdesc="A breakout game with nice effects, graphics, and sounds"
+arch=('i686' 'x86_64' 'mips64el')
+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..cda54a126
--- /dev/null
+++ b/extra/lcab/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143792 2011-11-29 11:52:09Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lcab
+pkgver=1.0b12
+pkgrel=3
+pkgdesc="A program to make Microsoft cabinet files"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -D -m755 lcab "${pkgdir}/usr/bin/lcab"
+}
diff --git a/extra/lcms/PKGBUILD b/extra/lcms/PKGBUILD
new file mode 100644
index 000000000..97ef4c538
--- /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.1
+pkgdesc="Lightweight color management development library/engine"
+arch=(i686 x86_64 'mips64el')
+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/lcms2/PKGBUILD b/extra/lcms2/PKGBUILD
new file mode 100644
index 000000000..c818e5e30
--- /dev/null
+++ b/extra/lcms2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 127369 2011-06-13 20:26:40Z eric $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=lcms2
+pkgver=2.2
+pkgrel=1
+pkgdesc="Small-footprint color management engine, version 2"
+arch=(i686 x86_64 mips64el)
+license=('MIT')
+depends=('libtiff>=3.9.4')
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/lcms/$pkgname-$pkgver.tar.gz)
+md5sums=('aaf33c7c25675e6163189ba488ae20f5')
+
+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/extra/leafpad/PKGBUILD b/extra/leafpad/PKGBUILD
new file mode 100644
index 000000000..67317dd6a
--- /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' 'mips64el')
+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..8435e0a45
--- /dev/null
+++ b/extra/lensfun/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 135705 2011-08-17 16:07:55Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=lensfun
+pkgver=0.2.5
+pkgrel=2
+pkgdesc="Database of photographic lenses and a library that allows advanced access to the database"
+arch=(i686 x86_64 'mips64el')
+url="http://lensfun.berlios.de/"
+license=('LGPL3')
+depends=('glibc' 'glib2')
+makedepends=('python' 'libpng' 'doxygen')
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ "runtime.cpu.detection.fix.backport.patch")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' configure
+ patch -p0 -i "${srcdir}/runtime.cpu.detection.fix.backport.patch"
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib
+ make all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_PREFIX="$pkgdir" install
+}
+
+md5sums=('a10438dffae68a5988fc54b0393a3755'
+ 'a2033928f263db319de78182ab12fb7d')
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/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..42fe30077
--- /dev/null
+++ b/extra/lesstif/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 143913 2011-11-30 20:33:57Z andrea $
+# Maintainer:
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=lesstif
+pkgver=0.95.2
+pkgrel=4
+pkgdesc="LGPL'd re-implementation of Motif"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lesstif.org/"
+license=('LGPL' 'MIT')
+depends=('freetype2' 'libxt' 'libxp')
+options=('!libtool' '!buildflags')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE'
+ '040_fedora_XxxxProperty-64bit.diff')
+md5sums=('754187dbac09fcf5d18296437e72a32f'
+ 'b1f320192a9154f72d83e9d3d5a25a2f'
+ '30e2c0babc84696af089d55cb9cb2908')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # https://bugs.archlinux.org/task/17712
+ patch -p1 -i "${srcdir}"/040_fedora_XxxxProperty-64bit.diff
+
+ ./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
+
+ # fix linkage against already installed version
+ perl -pi -e 's/^(hardcode_into_libs)=.*/$1=no/' libtool
+
+ make
+
+ # fix linkage against already installed version
+ for f in `find . -name \*.la -type f` ; do
+ perl -pi -e 's/^(relink_command=.*)/# $1/' $f
+ done
+
+ make -C lib/Mrm-2.1
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ make -C lib/Mrm-2.1 DESTDIR="${pkgdir}" install
+ make appdir=/usr/share/X11/app-defaults rootdir=/usr/share/LessTif \
+ DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/lftp/PKGBUILD b/extra/lftp/PKGBUILD
new file mode 100644
index 000000000..3c71a1460
--- /dev/null
+++ b/extra/lftp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 141035 2011-10-22 08:18:19Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=lftp
+pkgver=4.3.3
+pkgrel=1
+pkgdesc="Sophisticated command line based FTP client"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+depends=('gcc-libs' 'readline>=6.2' "gnutls" "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=('91757a201c1030714ac1996f27437cc7')
+
+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
+}
diff --git a/extra/libao/PKGBUILD b/extra/libao/PKGBUILD
new file mode 100644
index 000000000..265e64f2b
--- /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' 'mips64el')
+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..614af1640
--- /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 'mips64el')
+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..0a3102b15
--- /dev/null
+++ b/extra/libass/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143794 2011-11-29 11:56:48Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+
+pkgname=libass
+pkgver=0.10.0
+pkgrel=2
+pkgdesc="A portable library for SSA/ASS subtitles rendering"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/libass/"
+license=('BSD')
+depends=('enca' 'fontconfig' 'libpng' 'fribidi')
+makedepends=('pkg-config')
+options=(!libtool)
+source=("http://libass.googlecode.com/files/${pkgname}-${pkgver}.tar.xz")
+md5sums=('1855bddc4c167f96968dddeeda0eb45c')
+
+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/extra/libassuan/PKGBUILD b/extra/libassuan/PKGBUILD
new file mode 100644
index 000000000..4c330721d
--- /dev/null
+++ b/extra/libassuan/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 131235 2011-07-12 07:35:37Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libassuan
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="A IPC library used by some GnuPG related software"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+install=libassuan.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('3e7d00fd2ee8a0b9c51ac7616ef3f1ec')
diff --git a/extra/libassuan/libassuan.install b/extra/libassuan/libassuan.install
new file mode 100644
index 000000000..07e2672db
--- /dev/null
+++ b/extra/libassuan/libassuan.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(assuan.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/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..93c625931
--- /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' 'mips64el')
+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..38c6764a1
--- /dev/null
+++ b/extra/libatasmart/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 141499 2011-10-31 03:19:13Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libatasmart
+pkgver=0.18
+pkgrel=1.1
+pkgdesc="ATA S.M.A.R.T. Reading and Parsing Library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('udev>=174')
+url="http://0pointer.de/blog/projects/being-smart.html"
+options=('!libtool')
+source=("http://0pointer.de/public/${pkgname}-${pkgver}.tar.gz")
+md5sums=('dc22b7acda1c2230f55ae98737e8b159')
+
+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/libavc1394/PKGBUILD b/extra/libavc1394/PKGBUILD
new file mode 100644
index 000000000..af377fd49
--- /dev/null
+++ b/extra/libavc1394/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137687 2011-09-10 12:13:56Z pierre $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=libavc1394
+pkgver=0.5.4
+pkgrel=1
+pkgdesc="A library to control A/V devices using the 1394ta AV/C commands."
+arch=("i686" "x86_64" 'mips64el')
+url="http://sourceforge.net/projects/libavc1394/"
+license=('LGPL')
+depends=('libraw1394')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/libavc1394/${pkgname}-${pkgver}.tar.gz")
+md5sums=('caf0db059d8b8d35d6f08e6c0e1c7dfe')
+
+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/libbluedevil/PKGBUILD b/extra/libbluedevil/PKGBUILD
new file mode 100644
index 000000000..86bd35dc1
--- /dev/null
+++ b/extra/libbluedevil/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140236 2011-10-10 10:55:52Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libbluedevil
+pkgver=1.9.1
+pkgrel=1
+pkgdesc='A Qt wrapper for bluez used in the new KDE bluetooth stack'
+arch=('i686' 'x86_64' 'mips64el')
+url="https://projects.kde.org/projects/playground/libs/libbluedevil"
+license=('GPL')
+depends=('qt' 'bluez')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('b3f04954f75f78c874cdb462c2454afc')
+
+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/libbluray/PKGBUILD b/extra/libbluray/PKGBUILD
new file mode 100644
index 000000000..cad6d04c5
--- /dev/null
+++ b/extra/libbluray/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 144944 2011-12-11 14:37:09Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Andrew Cook <ariscop@gmail.com>
+
+pkgname=libbluray
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="Library to access Blu-Ray disks for video playback"
+arch=('i686' 'x86_64')
+url="http://www.videolan.org/developers/libbluray.html"
+license=('LGPL2.1')
+depends=('libxml2')
+options=(!libtool)
+source=(ftp://ftp.videolan.org/pub/videolan/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+sha512sums=('b938ca838d6e4ceaac74ca8850efb9d8c312638b70a9b42ebffd63bf703341eab3ce98b6edeea9b3284ba1d0f8b46fe803db1f668e72752e1e23e96435ac77dc')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/libbonobo/PKGBUILD b/extra/libbonobo/PKGBUILD
new file mode 100644
index 000000000..a80eb9217
--- /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 'mips64el')
+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..2dc72c61e
--- /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' 'mips64el')
+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/libburn/PKGBUILD b/extra/libburn/PKGBUILD
new file mode 100644
index 000000000..4cedfdf0d
--- /dev/null
+++ b/extra/libburn/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143527 2011-11-25 17:36:29Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libburn
+pkgver=1.1.8 #.pl01
+pkgrel=1
+pkgdesc="Library for reading, mastering and writing optical discs"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libburnia.pykix.org/"
+license=('GPL')
+depends=('glibc')
+source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('b91d2b8c65483efe447dbc3e3c9545d0')
+
+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..75ebd7d0b
--- /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.1
+pkgdesc="Color AsCii Art library"
+arch=('i686' 'x86_64' 'mips64el')
+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..44c66a08e
--- /dev/null
+++ b/extra/libcanberra/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 139194 2011-10-01 13:46:12Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libcanberra
+pkgname=(libcanberra libcanberra-pulse libcanberra-gstreamer)
+pkgver=0.28
+pkgrel=2
+pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification"
+arch=(i686 x86_64 'mips64el')
+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.xinit)
+sha256sums=('eb1f8b2cabad7f07b6e44d606a91d73e1efca4b46daf92bd553e7222bc68868c'
+ '68a68d66b7491f99d5aa09fe7c6ef4eb38352a2a8ff7997d184d1cbc5e80c0d3')
+
+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 \
+ --with-systemdsystemunitdir=/lib/systemd/system
+ 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 -d "${pkgdir}/usr/share/gconf"
+ mv "${pkgdir}/etc/gconf/schemas" "${pkgdir}/usr/share/gconf/"
+
+ install -D "${srcdir}/libcanberra.xinit" \
+ "${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')
+
+ 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/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/libcanberra/libcanberra.xinit b/extra/libcanberra/libcanberra.xinit
new file mode 100644
index 000000000..2511e9f8a
--- /dev/null
+++ b/extra/libcanberra/libcanberra.xinit
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+case "$DESKTOP_SESSION" in
+ gnome) # Done by gnome-settings-daemon
+ ;;
+ *)
+ # Extra check in case DESKTOP_SESSION is not set correctly
+ if [[ -z $GNOME_DESKTOP_SESSION_ID ]]; then
+ if [[ -z $GTK_MODULES ]]; then
+ GTK_MODULES="canberra-gtk-module"
+ else
+ GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
+ fi
+ export GTK_MODULES
+ fi
+ ;;
+esac
diff --git a/extra/libcap-ng/PKGBUILD b/extra/libcap-ng/PKGBUILD
new file mode 100644
index 000000000..aee0abad5
--- /dev/null
+++ b/extra/libcap-ng/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 139367 2011-10-01 18:59:37Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=libcap-ng
+pkgver=0.6.6
+pkgrel=1
+pkgdesc="A library intended to make programming with POSIX capabilities much easier than the traditional libcap"
+arch=(mips64el)
+url="http://people.redhat.com/sgrubb/libcap-ng/"
+license=('GPL2' 'LGPL2.1')
+depends=('glibc')
+options=('!libtool')
+source=(http://people.redhat.com/sgrubb/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('eb71f967cecb44b4342baac98ef8cb0f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --enable-static=no --with-python=no
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
+
+# vim:set ts=2 sw=2 et:
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..2a03b2494
--- /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' 'mips64el')
+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..f368ad6c8
--- /dev/null
+++ b/extra/libcddb/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137919 2011-09-12 12:54:52Z pierre $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libcddb
+pkgver=1.3.2
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="Library that implements the different protocols (CDDBP, HTTP, SMTP) to access data on a CDDB server (e.g. http://freedb.org)."
+url="http://sourceforge.net/projects/libcddb/"
+license=('LGPL')
+options=('!libtool')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('8bb4a6f542197e8e9648ae597cd6bc8a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libcdio/PKGBUILD b/extra/libcdio/PKGBUILD
new file mode 100644
index 000000000..40ef4c2f9
--- /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" 'mips64el')
+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..5a9304dd1
--- /dev/null
+++ b/extra/libchamplain/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 139369 2011-10-01 18:59:40Z ibiru $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Michael Kanis <mkanis@gmx.de>
+
+pkgname=libchamplain
+pkgver=0.12.0
+pkgrel=1
+pkgdesc="Gtk3 widget for displaying rasterized maps"
+url="http://projects.gnome.org/libchamplain/"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('c6d2b9dc3b8fd1715c95a11b428c9121828953fd02cf301a7eb577c9b5bdba85')
+
+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/extra/libchewing/PKGBUILD b/extra/libchewing/PKGBUILD
new file mode 100644
index 000000000..7c289746d
--- /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' 'mips64el')
+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..044155702
--- /dev/null
+++ b/extra/libcroco/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 142887 2011-11-17 18:34:50Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libcroco
+pkgver=0.6.3
+pkgrel=1
+pkgdesc="A CSS parsing library"
+arch=('x86_64' 'i686' 'mips64el')
+depends=('glib2' 'libxml2')
+makedepends=('intltool')
+license=('LGPL')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/0.6/$pkgname-$pkgver.tar.xz)
+url="http://www.gnome.org"
+sha256sums=('8b7c565bf3eae1dff0a09d128fc3726acc1a492a7de23b25dce803a4f93d42c1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libcue/PKGBUILD b/extra/libcue/PKGBUILD
new file mode 100644
index 000000000..ba69e0e57
--- /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' 'mips64el')
+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..092a06c90
--- /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' 'mips64el')
+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..4776c7fa9
--- /dev/null
+++ b/extra/libdatrie/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 142248 2011-11-07 09:16:13Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Chaiwat Suttipongsakul <cwt114@gmail.com>
+
+pkgname=libdatrie
+pkgver=0.2.5
+pkgrel=1
+pkgdesc="Implementation of double-array structure for representing trie, as proposed by Junichi Aoe."
+url="http://linux.thai.net/projects/datrie"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glibc')
+options=('!libtool' '!emptydirs')
+source=(http://linux.thai.net/pub/thailinux/software/libthai/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c9b057d07198d66e1ac2eff32937d3d4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdbusmenu-qt/PKGBUILD b/extra/libdbusmenu-qt/PKGBUILD
new file mode 100644
index 000000000..ae10da267
--- /dev/null
+++ b/extra/libdbusmenu-qt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 136744 2011-08-31 22:52:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libdbusmenu-qt
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="A library that provides a Qt implementation of the DBusMenu spec"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://launchpad.net/libdbusmenu-qt"
+license=('GPL')
+depends=('qt')
+makedepends=('cmake')
+source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('cc6b7b551377e2a07f6fa5afef0d29ff')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DWITH_DOC=OFF
+ 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..674c62bc5
--- /dev/null
+++ b/extra/libdc1394/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 137888 2011-09-12 08:33:12Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdc1394
+pkgver=2.1.3
+pkgrel=2
+pkgdesc="High level programming interface to control IEEE 1394 based cameras"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://sourceforge.net/projects/libdc1394/"
+depends=('libraw1394>=2.0.7' 'libusb')
+options=('!libtool' '!emptydirs')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'rename-usb_init.patch'
+ 'videodev-compile-fix.patch')
+md5sums=('d8b2cbfae1b329fdeaa638da80427334'
+ 'bc7a4146b4d2d688305d0d42c4111941'
+ '9dd11c96241b14073c3a7dd7e270fb7a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # FS#25652
+ patch -p2 -i "${srcdir}"/rename-usb_init.patch
+ # Fix build when linux/video.h exists
+ patch -p2 -i "${srcdir}"/videodev-compile-fix.patch
+
+
+ autoreconf -i
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdc1394/fix-videodev.h.patch b/extra/libdc1394/fix-videodev.h.patch
new file mode 100644
index 000000000..560337978
--- /dev/null
+++ b/extra/libdc1394/fix-videodev.h.patch
@@ -0,0 +1,53 @@
+From 2ee7e7f98dd6225b40d5cd570c240504be7bc86a Mon Sep 17 00:00:00 2001
+From: David Moore <david.moore@gmail.com>
+Date: Sun, 27 Mar 2011 22:48:15 -0700
+Subject: [PATCH] Conditionally compile dc1394_vloopback only when linux/videodev.h exists
+
+---
+ libdc1394/ChangeLog | 3 +++
+ libdc1394/configure.in | 3 +++
+ libdc1394/examples/Makefile.am | 2 ++
+ 3 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/libdc1394/ChangeLog b/libdc1394/ChangeLog
+index e1355de..536ccae 100644
+--- a/libdc1394/ChangeLog
++++ b/libdc1394/ChangeLog
+@@ -1,3 +1,6 @@
++2011-03-27 David Moore <david.moore@gmail.com>
++ * Conditionally compile dc1394_vloopback only when linux/video.h exists
++
+ 2011-01-02 David Moore <david.moore@gmail.com>
+ * dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN
+ * Update NEWS, README, AUTHORS and version for release 2.1.3.
+diff --git a/libdc1394/configure.in b/libdc1394/configure.in
+index 69babab..bdddc9b 100644
+--- a/libdc1394/configure.in
++++ b/libdc1394/configure.in
+@@ -75,6 +75,9 @@ AM_CONDITIONAL(HAVE_WINDOWS, test x$have_windows = xtrue)
+ AM_CONDITIONAL(HAVE_LIBRAW1394, test x$libraw1394 = xtrue)
+ AM_CONDITIONAL(HAVE_LIBUSB, test "x$LIBUSB_LIBS" != "x")
+
++AC_CHECK_HEADER([linux/videodev.h], [have_videodev=true])
++AM_CONDITIONAL(HAVE_VIDEODEV, test x$have_videodev = xtrue)
++
+ AC_ARG_ENABLE([examples], [AS_HELP_STRING([--disable-examples], [don't build example programs])], [build_examples=$enableval], [build_examples=true])
+
+ AM_CONDITIONAL(MAKE_EXAMPLES, test x$build_examples = xtrue)
+diff --git a/libdc1394/examples/Makefile.am b/libdc1394/examples/Makefile.am
+index fcebf18..035612e 100644
+--- a/libdc1394/examples/Makefile.am
++++ b/libdc1394/examples/Makefile.am
+@@ -8,7 +8,9 @@ A = grab_gray_image grab_partial_image grab_color_image \
+ B = dc1394_reset_bus
+
+ if HAVE_LINUX
++if HAVE_VIDEODEV
+ B += dc1394_vloopback
++endif
+ if HAVE_XV
+ A += dc1394_multiview
+ endif
+--
+1.7.0.1
+
diff --git a/extra/libdc1394/rename-usb_init.patch b/extra/libdc1394/rename-usb_init.patch
new file mode 100644
index 000000000..44e1a5de3
--- /dev/null
+++ b/extra/libdc1394/rename-usb_init.patch
@@ -0,0 +1,53 @@
+From 13b85d2d23548682b617ddc1196f5560a27998bd Mon Sep 17 00:00:00 2001
+From: Damien Douxchamps <ddsf@douxchamps.net>
+Date: Sun, 21 Aug 2011 16:03:22 +0900
+Subject: [PATCH] fix usb_init function name conflict
+
+---
+ libdc1394/dc1394/control.c | 2 +-
+ libdc1394/dc1394/internal.h | 2 +-
+ libdc1394/dc1394/usb/control.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libdc1394/dc1394/control.c b/libdc1394/dc1394/control.c
+index c62e0e2..f250f6a 100644
+--- a/libdc1394/dc1394/control.c
++++ b/libdc1394/dc1394/control.c
+@@ -1955,7 +1955,7 @@ dc1394_new (void)
+ windows_init (d);
+ #endif
+ #ifdef HAVE_LIBUSB
+- usb_init (d);
++ dc1394_usb_init (d);
+ #endif
+
+ int i;
+diff --git a/libdc1394/dc1394/internal.h b/libdc1394/dc1394/internal.h
+index b4d295a..c59e5d3 100644
+--- a/libdc1394/dc1394/internal.h
++++ b/libdc1394/dc1394/internal.h
+@@ -74,7 +74,7 @@ void juju_init(dc1394_t *d);
+ void linux_init(dc1394_t *d);
+ void macosx_init(dc1394_t *d);
+ void windows_init(dc1394_t *d);
+-void usb_init(dc1394_t *d);
++void dc1394_usb_init(dc1394_t *d);
+
+ void register_platform (dc1394_t * d, const platform_dispatch_t * dispatch,
+ const char * name);
+diff --git a/libdc1394/dc1394/usb/control.c b/libdc1394/dc1394/usb/control.c
+index 6509452..19a21a6 100644
+--- a/libdc1394/dc1394/usb/control.c
++++ b/libdc1394/dc1394/usb/control.c
+@@ -378,7 +378,7 @@ usb_dispatch = {
+ };
+
+ void
+-usb_init(dc1394_t * d)
++dc1394_usb_init(dc1394_t * d)
+ {
+ register_platform (d, &usb_dispatch, "usb");
+ }
+--
+1.7.4.1
+
diff --git a/extra/libdc1394/videodev-compile-fix.patch b/extra/libdc1394/videodev-compile-fix.patch
new file mode 100644
index 000000000..8f234b152
--- /dev/null
+++ b/extra/libdc1394/videodev-compile-fix.patch
@@ -0,0 +1,41 @@
+From 2ee7e7f98dd6225b40d5cd570c240504be7bc86a Mon Sep 17 00:00:00 2001
+From: David Moore <david.moore@gmail.com>
+Date: Sun, 27 Mar 2011 22:48:15 -0700
+Subject: [PATCH] Conditionally compile dc1394_vloopback only when linux/videodev.h exists
+
+---
+ libdc1394/configure.in | 3 +++
+ libdc1394/examples/Makefile.am | 2 ++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/libdc1394/configure.in b/libdc1394/configure.in
+index 69babab..bdddc9b 100644
+--- a/libdc1394/configure.in
++++ b/libdc1394/configure.in
+@@ -75,6 +75,9 @@ AM_CONDITIONAL(HAVE_WINDOWS, test x$have_windows = xtrue)
+ AM_CONDITIONAL(HAVE_LIBRAW1394, test x$libraw1394 = xtrue)
+ AM_CONDITIONAL(HAVE_LIBUSB, test "x$LIBUSB_LIBS" != "x")
+
++AC_CHECK_HEADER([linux/videodev.h], [have_videodev=true])
++AM_CONDITIONAL(HAVE_VIDEODEV, test x$have_videodev = xtrue)
++
+ AC_ARG_ENABLE([examples], [AS_HELP_STRING([--disable-examples], [don't build example programs])], [build_examples=$enableval], [build_examples=true])
+
+ AM_CONDITIONAL(MAKE_EXAMPLES, test x$build_examples = xtrue)
+diff --git a/libdc1394/examples/Makefile.am b/libdc1394/examples/Makefile.am
+index fcebf18..035612e 100644
+--- a/libdc1394/examples/Makefile.am
++++ b/libdc1394/examples/Makefile.am
+@@ -8,7 +8,9 @@ A = grab_gray_image grab_partial_image grab_color_image \
+ B = dc1394_reset_bus
+
+ if HAVE_LINUX
++if HAVE_VIDEODEV
+ B += dc1394_vloopback
++endif
+ if HAVE_XV
+ A += dc1394_multiview
+ endif
+--
+1.7.4.1
+
diff --git a/extra/libdca/PKGBUILD b/extra/libdca/PKGBUILD
new file mode 100644
index 000000000..d642da853
--- /dev/null
+++ b/extra/libdca/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 137736 2011-09-10 14:39:31Z pierre $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libdca
+pkgver=0.0.5
+pkgrel=3
+pkgdesc="Free library for decoding DTS Coherent Acoustics streams"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.videolan.org/developers/libdca.html"
+depends=('sh')
+provides=('libdts')
+replaces=('libdts')
+options=('!libtool' '!emptydirs')
+source=("http://download.videolan.org/pub/videolan/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('dab6b2795c66a82a6fcd4f8343343021')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/share/man/man1"/{extract_dts,dtsdec}.1
+ ln -s dcadec.1.gz "${pkgdir}/usr/share/man/man1/dtsdec.1.gz"
+ ln -s extract_dca.1.gz "${pkgdir}/usr/share/man/man1/extract_dts.1.gz"
+ # remove dangling symlink
+ rm "${pkgdir}/usr/lib/libdts.a"
+}
diff --git a/extra/libdiscid/PKGBUILD b/extra/libdiscid/PKGBUILD
new file mode 100644
index 000000000..82c606ebd
--- /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' 'mips64el')
+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..6f3f3eb53
--- /dev/null
+++ b/extra/libdmapsharing/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 125725 2011-05-28 15:53:41Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libdmapsharing
+pkgver=2.9.12
+pkgrel=1
+pkgdesc="A library that implements the DMAP family of protocols"
+arch=('i686' 'x86_64' 'mips64el')
+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=('ec34948df21e9ba0656c917b10fed1c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --with-mdns=avahi
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdmtx/PKGBUILD b/extra/libdmtx/PKGBUILD
new file mode 100644
index 000000000..a8a128035
--- /dev/null
+++ b/extra/libdmtx/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 127675 2011-06-17 17:32:51Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: jose <jose1711 [at] gmail (dot) com>
+
+pkgname=libdmtx
+pkgver=0.7.4
+pkgrel=1
+pkgdesc="A software for reading and writing Data Matrix 2D barcodes"
+url="http://www.libdmtx.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('glibc' 'imagemagick')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('d3a4c0becd92895eb606dbdb78b023e2')
+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..bb52faac4
--- /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' 'mips64el')
+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..ec440bca1
--- /dev/null
+++ b/extra/libdrm/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 144919 2011-12-10 10:45:30Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdrm
+pkgver=2.4.28
+pkgrel=1
+pkgdesc="Userspace interface to kernel DRM services"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+depends=('glibc' 'libpciaccess')
+makedepends=('cairo')
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch
+ COPYING
+ git_fixes.diff
+ #missing files from http://cgit.freedesktop.org/mesa/drm/snapshot/drm-902ee661f1864aaf8325621085f6a1b5a6a3673a.tar.bz2 - https://bugs.freedesktop.org/show_bug.cgi?id=43538
+ rbo.h list.h)
+md5sums=('6488f64119c6439fa4038e9cd7b30b67'
+ 'c722c8406507b7e3a8da7a3030d1d9cf'
+ 'ba65e71c481b94ef0fb6c23c7f21ffa1'
+ '671b87f9670e709e54a19cd292c6330d'
+ '073846ea43fb4d6130062c1897d92e40'
+ 'ce867d3331862c2b87d1a37461b42dbe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+
+ # add a missing file in the release tarball
+ patch -Np1 -i ${srcdir}/git_fixes.diff
+ cp ${srcdir}/{rbo,list}.h "${srcdir}/${pkgname}-${pkgver}"/tests/radeon/
+
+ #libtoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr \
+ --enable-udev \
+ --enable-intel \
+ --enable-radeon \
+ --enable-vmwgfx-experimental-api \
+ --enable-nouveau-experimental-api
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -k check
+}
+
+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/git_fixes.diff b/extra/libdrm/git_fixes.diff
new file mode 100644
index 000000000..5ebcb606a
--- /dev/null
+++ b/extra/libdrm/git_fixes.diff
@@ -0,0 +1,19 @@
+From 902ee661f1864aaf8325621085f6a1b5a6a3673a Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 05 Dec 2011 21:24:48 +0000
+Subject: test/radeon: add missing files for dist
+
+---
+diff --git a/tests/radeon/Makefile.am b/tests/radeon/Makefile.am
+index 021ca72..1775669 100644
+--- a/tests/radeon/Makefile.am
++++ b/tests/radeon/Makefile.am
+@@ -9,4 +9,6 @@ noinst_PROGRAMS = \
+
+ radeon_ttm_SOURCES = \
+ rbo.c \
++ rbo.h \
++ list.h \
+ radeon_ttm.c
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/libdrm/list.h b/extra/libdrm/list.h
new file mode 100644
index 000000000..305c903e1
--- /dev/null
+++ b/extra/libdrm/list.h
@@ -0,0 +1,137 @@
+/*
+ *
+ * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA.
+ * 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 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 COPYRIGHT HOLDERS, AUTHORS 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.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ */
+
+/**
+ * \file
+ * List macros heavily inspired by the Linux kernel
+ * list handling. No list looping yet.
+ *
+ * Is not threadsafe, so common operations need to
+ * be protected using an external mutex.
+ */
+#ifndef _U_DOUBLE_LIST_H_
+#define _U_DOUBLE_LIST_H_
+
+#include <stddef.h>
+
+struct list_head
+{
+ struct list_head *prev;
+ struct list_head *next;
+};
+
+static void list_inithead(struct list_head *item)
+{
+ item->prev = item;
+ item->next = item;
+}
+
+static void list_add(struct list_head *item, struct list_head *list)
+{
+ item->prev = list;
+ item->next = list->next;
+ list->next->prev = item;
+ list->next = item;
+}
+
+static void list_addtail(struct list_head *item, struct list_head *list)
+{
+ item->next = list;
+ item->prev = list->prev;
+ list->prev->next = item;
+ list->prev = item;
+}
+
+static void list_replace(struct list_head *from, struct list_head *to)
+{
+ to->prev = from->prev;
+ to->next = from->next;
+ from->next->prev = to;
+ from->prev->next = to;
+}
+
+static void list_del(struct list_head *item)
+{
+ item->prev->next = item->next;
+ item->next->prev = item->prev;
+}
+
+static void list_delinit(struct list_head *item)
+{
+ item->prev->next = item->next;
+ item->next->prev = item->prev;
+ item->next = item;
+ item->prev = item;
+}
+
+#define LIST_INITHEAD(__item) list_inithead(__item)
+#define LIST_ADD(__item, __list) list_add(__item, __list)
+#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list)
+#define LIST_REPLACE(__from, __to) list_replace(__from, __to)
+#define LIST_DEL(__item) list_del(__item)
+#define LIST_DELINIT(__item) list_delinit(__item)
+
+#define LIST_ENTRY(__type, __item, __field) \
+ ((__type *)(((char *)(__item)) - offsetof(__type, __field)))
+
+#define LIST_IS_EMPTY(__list) \
+ ((__list)->next == (__list))
+
+#ifndef container_of
+#define container_of(ptr, sample, member) \
+ (void *)((char *)(ptr) \
+ - ((char *)&(sample)->member - (char *)(sample)))
+#endif
+
+#define LIST_FOR_EACH_ENTRY(pos, head, member) \
+ for (pos = container_of((head)->next, pos, member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.next, pos, member))
+
+#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \
+ for (pos = container_of((head)->next, pos, member), \
+ storage = container_of(pos->member.next, pos, member); \
+ &pos->member != (head); \
+ pos = storage, storage = container_of(storage->member.next, storage, member))
+
+#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \
+ for (pos = container_of((head)->prev, pos, member), \
+ storage = container_of(pos->member.prev, pos, member); \
+ &pos->member != (head); \
+ pos = storage, storage = container_of(storage->member.prev, storage, member))
+
+#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \
+ for (pos = container_of((start), pos, member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.next, pos, member))
+
+#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \
+ for (pos = container_of((start), pos, member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.prev, pos, member))
+
+#endif /*_U_DOUBLE_LIST_H_*/
diff --git a/extra/libdrm/no-pthread-stubs.patch b/extra/libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..348c2a795
--- /dev/null
+++ b/extra/libdrm/no-pthread-stubs.patch
@@ -0,0 +1,66 @@
+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
+@@ -47,10 +47,6 @@
+ LT_INIT([disable-static])
+
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
+ AC_SUBST(PCIACCESS_CFLAGS)
+ AC_SUBST(PCIACCESS_LIBS)
+--- 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,14 +26,13 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ $(PCIACCESS_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@ @PCIACCESS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @PCIACCESS_LIBS@ @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_bufmgr.c \
+--- 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/libdrm/rbo.h b/extra/libdrm/rbo.h
new file mode 100644
index 000000000..c25c73a4c
--- /dev/null
+++ b/extra/libdrm/rbo.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright © 2011 Red Hat
+ *
+ * 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
+ * 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.
+ *
+ * Authors:
+ * Jerome Glisse <j.glisse@gmail.com>
+ */
+#ifndef RBO_H
+#define RBO_H
+
+#include "list.h"
+
+struct rbo {
+ struct list_head list;
+ int fd;
+ unsigned refcount;
+ unsigned mapcount;
+ unsigned handle;
+ unsigned size;
+ unsigned alignment;
+ void *data;
+};
+
+struct rbo *rbo(int fd, unsigned handle, unsigned size,
+ unsigned alignment, void *ptr);
+int rbo_map(struct rbo *bo);
+void rbo_unmap(struct rbo *bo);
+struct rbo *rbo_incref(struct rbo *bo);
+struct rbo *rbo_decref(struct rbo *bo);
+int rbo_wait(struct rbo *bo);
+
+#endif
diff --git a/extra/libdv/PKGBUILD b/extra/libdv/PKGBUILD
new file mode 100644
index 000000000..1b6756520
--- /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' 'mips64el')
+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..7297fa12d
--- /dev/null
+++ b/extra/libdvbpsi/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143078 2011-11-22 13:07:42Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
+
+pkgname=libdvbpsi
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="A library designed for decoding and generation of MPEG TS and DVB PSI tables"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+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=('b387e07ffd844b61c7a050c47307c0f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/extra/libdvdcss/PKGBUILD b/extra/libdvdcss/PKGBUILD
new file mode 100644
index 000000000..06764d19f
--- /dev/null
+++ b/extra/libdvdcss/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142850 2011-11-17 01:39:31Z eric $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libdvdcss
+pkgver=1.2.11
+pkgrel=1
+pkgdesc="A portable abstraction library for DVD decryption"
+url="http://www.videolan.org/libdvdcss"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://download.videolan.org/pub/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+sha512sums=('32dec992cf2f352a09c4edc39ea16101fc9005f3aecc43460aa1b5834c104d3f2c1efc81051339fa18fd4f33cfa949fd17ffe84414519a92b91d0d8a1ae4c467')
+
+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..03cf079da
--- /dev/null
+++ b/extra/libdvdnav/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 144385 2011-12-05 13:01:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan <arjan@archlinux.org>
+# contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libdvdnav
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="The library for xine-dvdnav plugin."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://http://dvdnav.mplayerhq.hu/"
+depends=('libdvdread')
+options=(!libtool)
+source=(http://dvdnav.mplayerhq.hu/releases/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8c971b08276c89ddcecd26fc44204460fd250dc57346f03476d3077188c47550')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdvdread/PKGBUILD b/extra/libdvdread/PKGBUILD
new file mode 100644
index 000000000..7c2420d59
--- /dev/null
+++ b/extra/libdvdread/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144377 2011-12-05 12:49:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libdvdread
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="Provides a simple foundation for reading DVD video disks"
+arch=(i686 x86_64 'mips64el')
+url="http://dvdnav.mplayerhq.hu"
+license=('GPL')
+depends=('glibc')
+makedepends=('libdvdcss')
+optdepends=('libdvdcss: for decoding encrypted DVDs')
+options=('!libtool')
+source=(http://dvdnav.mplayerhq.hu/releases/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('0bea15da842a4b04a482b009d72dcc6d9c9524ccc1bf67e5748319ec5ada8097')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # http://lists.mplayerhq.hu/pipermail/dvdnav-discuss/2009-February/000986.html (FS#19324)
+
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libebml/PKGBUILD b/extra/libebml/PKGBUILD
new file mode 100644
index 000000000..fe3e45732
--- /dev/null
+++ b/extra/libebml/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143796 2011-11-29 12:02:45Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: 03/08/04 <lefungus@altern.org>
+
+pkgname=libebml
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="Extensible Binary Meta Language library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dl.matroska.org/downloads/libebml/"
+license=('LGPL')
+depends=('gcc-libs')
+source=("http://dl.matroska.org/downloads/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('726cc2bd1a525929ff35ff9854c0ebab')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/extra/libepc/PKGBUILD b/extra/libepc/PKGBUILD
new file mode 100644
index 000000000..76dc2d222
--- /dev/null
+++ b/extra/libepc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143091 2011-11-22 18:13:16Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libepc
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="Easy Publish and Consume Library"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+url="http://live.gnome.org/libepc"
+depends=('gtk3' 'avahi' 'libsoup')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/0.4/$pkgname-$pkgver.tar.xz)
+sha256sums=('57303bc180ef1447e060a64590fd359365390e14a90dddc8b8af8d3a6551e454')
+
+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/libetpan/PKGBUILD b/extra/libetpan/PKGBUILD
new file mode 100644
index 000000000..cd4a89a5d
--- /dev/null
+++ b/extra/libetpan/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 127576 2011-06-16 17:03:09Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libetpan
+pkgver=1.0
+pkgrel=3
+pkgdesc="A portable middleware for email access"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.etpan.org/"
+license=("custom:etpan")
+depends=('db>=5.2.28' 'libsasl>=2.1.23' 'curl>=7.21.' '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..580c70626
--- /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 'mips64el')
+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/60-ffado.rules b/extra/libffado/60-ffado.rules
new file mode 100644
index 000000000..6ab8ef851
--- /dev/null
+++ b/extra/libffado/60-ffado.rules
@@ -0,0 +1,27 @@
+SUBSYSTEM!="firewire", GOTO="ffado_end"
+
+ATTR{vendor}=="0x000166", GROUP="audio", ENV{ID_FFADO}="1" # TC GROUP A/S
+ATTR{vendor}=="0x0001f2", GROUP="audio", ENV{ID_FFADO}="1" # Mark of the Unicorn, Inc.
+ATTR{vendor}=="0x0003db", GROUP="audio", ENV{ID_FFADO}="1" # Apogee Electronics Corp.
+ATTR{vendor}=="0x000595", GROUP="audio", ENV{ID_FFADO}="1" # Alesis Corporation
+ATTR{vendor}=="0x0007f5", GROUP="audio", ENV{ID_FFADO}="1" # Bridgeco Co AG
+ATTR{vendor}=="0x000a92", GROUP="audio", ENV{ID_FFADO}="1" # Presonus Corporation
+ATTR{vendor}=="0x000aac", GROUP="audio", ENV{ID_FFADO}="1" # TerraTec Electronic GmbH
+ATTR{vendor}=="0x000d6c", GROUP="audio", ENV{ID_FFADO}="1" # M-Audio
+ATTR{vendor}=="0x000f1b", GROUP="audio", ENV{ID_FFADO}="1" # Ego Systems Inc.
+ATTR{vendor}=="0x000ff2", GROUP="audio", ENV{ID_FFADO}="1" # Loud Technologies Inc.
+ATTR{vendor}=="0x001260", GROUP="audio", ENV{ID_FFADO}="1" # Stanton Magnetics,inc.
+ATTR{vendor}=="0x00130e", GROUP="audio", ENV{ID_FFADO}="1" # Focusrite Audio Engineering Limited
+ATTR{vendor}=="0x001486", GROUP="audio", ENV{ID_FFADO}="1" # Echo Digital Audio Corporation
+ATTR{vendor}=="0x001564", GROUP="audio", ENV{ID_FFADO}="1" # BEHRINGER Spezielle Studiotechnik GmbH
+ATTR{vendor}=="0x001c2d", GROUP="audio", ENV{ID_FFADO}="1" # FlexRadio Systems
+ATTR{vendor}=="0x001c6a", GROUP="audio", ENV{ID_FFADO}="1" # Weiss Engineering Ltd.
+ATTR{vendor}=="0x0040ab", GROUP="audio", ENV{ID_FFADO}="1" # ROLAND DG CORPORATION
+
+# The devices below abuse another Vendor's ID, and therefore we need more advanced rules for those.
+
+ATTR{vendor}=="0x00000a", ATTR{model}=="0x030000", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # CME, Matrix K FW
+ATTR{vendor}=="0x00000f", ATTR{model}=="0x01006?", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # Mackie, Onyx Firewire
+ATTR{vendor}=="0x000a35", ATTR{units}=="0x000a35:0x00000[12]", GROUP="audio", ENV{ID_FFADO}="1" # RME
+
+LABEL="ffado_end"
diff --git a/extra/libffado/PKGBUILD b/extra/libffado/PKGBUILD
new file mode 100644
index 000000000..3bc12b63f
--- /dev/null
+++ b/extra/libffado/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 142989 2011-11-19 21:35:53Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: galiyosha@gmail.com
+# Contributor: Jon Kristian Nilsen <jokr.nilsen@gmail.com>
+
+pkgname=libffado
+pkgver=2.0.1
+pkgrel=5
+pkgdesc="Driver for FireWire audio devices"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ffado.org/"
+license=('GPL')
+depends=('libiec61883' 'libavc1394' 'libsigc++'
+ 'libxml++' 'alsa-lib' 'dbus')
+makedepends=('scons' 'python2-qt')
+optdepends=('python2: ffado-diag'
+ 'python2-qt: mixer applet')
+provides=('ffado')
+source=("http://www.ffado.org/files/$pkgname-$pkgver.tar.gz"
+ '60-ffado.rules')
+md5sums=('786f31facd417e6207e429f50af0e15e'
+ 'f03a3e950801c4405b8934084651bca8')
+
+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
+ elif [ "$CARCH" = "mips64el" ]; then
+ sed -i "s/-mn32/-mn32 $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
+
+ # add audio device rules
+ # see https://bugs.archlinux.org/task/26342
+ install -Dm644 "$srcdir/60-ffado.rules" \
+ "$pkgdir/lib/udev/rules.d/60-ffado.rules"
+
+ # 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/libfontenc/PKGBUILD b/extra/libfontenc/PKGBUILD
new file mode 100644
index 000000000..3b3393ab0
--- /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 'mips64el')
+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/PKGBUILD b/extra/libfprint/PKGBUILD
new file mode 100644
index 000000000..b5b2ab225
--- /dev/null
+++ b/extra/libfprint/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142730 2011-11-14 08:43:18Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=libfprint
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="Library for fingerprint readers"
+arch=(i686 x86_64)
+url="http://www.freedesktop.org/wiki/Software/fprint/libfprint"
+license=(LGPL)
+depends=(libusb nss gdk-pixbuf2)
+groups=(fprint)
+options=(!libtool !emptydirs)
+_snap=$pkgname-48ec64f68330452b011d14be67653f1d48fb1405
+source=(http://cgit.freedesktop.org/libfprint/$pkgname/snapshot/$_snap.tar.bz2)
+md5sums=('858a0f0d7abd21ac494f9bec904dc156')
+
+build() {
+ cd "$srcdir/$_snap"
+ sed -i '\|^./configure|,+1d' autogen.sh
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$_snap"
+ make DESTDIR="$pkgdir" install
+
+ mkdir -p "$pkgdir/lib/udev/rules.d"
+ mv "$pkgdir"/etc/udev/rules.d/* "$pkgdir/lib/udev/rules.d/"
+}
diff --git a/extra/libfs/PKGBUILD b/extra/libfs/PKGBUILD
new file mode 100644
index 000000000..8802d6d1c
--- /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' 'mips64el')
+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..d4a8f3cba
--- /dev/null
+++ b/extra/libftdi/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125350 2011-05-26 02:17:50Z eric $
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libftdi
+pkgver=0.19
+pkgrel=1
+pkgdesc="A library to talk to FTDI chips"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.intra2net.com/en/developer/libftdi/download.php"
+license=('GPL2' 'LGPL2.1')
+depends=('libusb-compat' 'gcc-libs')
+makedepends=('boost')
+options=('!libtool')
+source=("http://www.intra2net.com/en/developer/libftdi/download/$pkgname-$pkgver.tar.gz")
+md5sums=('e6e25f33b4327b1b7aa1156947da45f3')
+sha1sums=('0f08caf8e754ace69cd682489fae3f7f09920fe1')
+
+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/libgadu/PKGBUILD b/extra/libgadu/PKGBUILD
new file mode 100644
index 000000000..ffc2c48ed
--- /dev/null
+++ b/extra/libgadu/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 125846 2011-05-30 12:25:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=libgadu
+pkgver=1.11.0
+pkgrel=1
+pkgdesc="This library implements the client side of the Gadu-Gadu protocol"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://toxygen.net/libgadu/"
+license=('GPL')
+depends=('openssl')
+options=('!libtool')
+source=("http://toxygen.net/${pkgname}/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('c779891298ce5d081c1e871e1e5b256d')
+
+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/libgda/PKGBUILD b/extra/libgda/PKGBUILD
new file mode 100644
index 000000000..145f1465c
--- /dev/null
+++ b/extra/libgda/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143012 2011-11-20 22:59:47Z heftig $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libgda
+pkgver=5.0.2
+pkgrel=1
+pkgdesc="Data abstraction layer with mysql, pgsql, xml, sqlite providers"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('gtksourceview3' 'libxslt' 'json-glib' 'db' 'ncurses' 'libsoup'
+ 'libmysqlclient' 'postgresql-libs' 'python2' 'libgnome-keyring'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'graphviz' 'gdk-pixbuf2'
+ 'iso-codes' 'openssl' 'libgcrypt' 'libldap')
+makedepends=('intltool' 'gobject-introspection' 'openjdk6' 'gtk-doc' 'vala')
+options=('!libtool')
+url="http://www.gnome-db.org"
+install=libgda.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('53e710a76298a224546803ecee711e610c68cf6938bd908e6d7e3c9bab183593')
+
+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 --enable-json
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgda/libgda.install b/extra/libgda/libgda.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/extra/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/extra/libgdata/PKGBUILD b/extra/libgdata/PKGBUILD
new file mode 100644
index 000000000..57febb731
--- /dev/null
+++ b/extra/libgdata/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 139373 2011-10-01 18:59:45Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgdata
+pkgver=0.10.1
+pkgrel=1
+pkgdesc="GLib-based library for accessing online service APIs using the GData protocol"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libsoup-gnome' 'liboauth')
+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.xz)
+sha256sums=('d7f27b1019905792246336599cadc7470b362806ed5e2c038a9f7c0da257f6ef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgdiplus/PKGBUILD b/extra/libgdiplus/PKGBUILD
new file mode 100644
index 000000000..1b1eb5640
--- /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 'mips64el')
+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..2556215aa
--- /dev/null
+++ b/extra/libgee/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142433 2011-11-09 18:26:23Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libgee
+pkgver=0.6.3
+pkgrel=1
+pkgdesc="GObject collection library"
+url="http://live.gnome.org/Libgee"
+license=('LGPL2.1')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('glib2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/libgee/0.6/$pkgname-$pkgver.tar.xz)
+sha256sums=('6b1ef59e26dd10feed279fdd7cc49c3391e124d31c46ac56c410ba0ce3bd1716')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libggz/PKGBUILD b/extra/libggz/PKGBUILD
new file mode 100644
index 000000000..f3b7a4b3d
--- /dev/null
+++ b/extra/libggz/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 123866 2011-05-14 00:16:35Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libggz
+pkgver=0.0.14.1
+pkgrel=2
+pkgdesc="GGZ base library, used by the GGZ Gaming Zone server (ggzd), the ggzcore library and other components"
+arch=('i686' 'x86_64' 'mips64el')
+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 "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgksu/PKGBUILD b/extra/libgksu/PKGBUILD
new file mode 100644
index 000000000..d707b9f02
--- /dev/null
+++ b/extra/libgksu/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143675 2011-11-28 10:58:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgksu
+pkgver=2.0.12
+pkgrel=4
+pkgdesc="gksu authorization library"
+arch=(i686 x86_64 'mips64el')
+url="http://www.nongnu.org/gksu/index.html"
+license=(GPL)
+depends=('gconf' 'gtk2' 'libgnome-keyring' 'libgtop' 'startup-notification')
+makedepends=('intltool' 'gtk-doc')
+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 --disable-schemas-install
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..e1c71bf59
--- /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 'mips64el')
+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..11b55abe6
--- /dev/null
+++ b/extra/libglademm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137593 2011-09-10 00:04:11Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=libglademm
+pkgver=2.6.7
+pkgrel=2
+pkgdesc="A C++ wrapper for libglade."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gtkmm.sourceforge.net/"
+license=('LGPL')
+depends=('libglade>=2.6.3' 'gtkmm>=2.14.1')
+makedepends=('pkgconfig')
+options=('!libtool')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgme/PKGBUILD b/extra/libgme/PKGBUILD
new file mode 100644
index 000000000..2e874487d
--- /dev/null
+++ b/extra/libgme/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributer: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
+
+pkgname=libgme
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="Video game music file emulation/playback library"
+url="http://game-music-emu.googlecode.com/"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gcc-libs')
+makedepends=('cmake')
+source=(ftp://ftp.archlinux.org/other/game-music-emu/game-music-emu-${pkgver}.tar.xz)
+md5sums=('b72bc337ea4bd6dab7f0288ed4cd598e')
+
+build() {
+ cd "${srcdir}/game-music-emu-${pkgver}"
+ mkdir build
+ cd build
+
+ 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..3b12c60d2
--- /dev/null
+++ b/extra/libgnome-keyring/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 142889 2011-11-17 18:34:54Z ibiru $
+#Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=libgnome-keyring
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="GNOME keyring client library"
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('2bcbe47b1960737866835a516056c36d1a3d82d5ad101c70d5a87e1ad616adb3')
+
+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/extra/libgnome-media-profiles/PKGBUILD b/extra/libgnome-media-profiles/PKGBUILD
new file mode 100644
index 000000000..ee4b19be5
--- /dev/null
+++ b/extra/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 'mips64el')
+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/extra/libgnome-media-profiles/libgnome-media-profiles.install b/extra/libgnome-media-profiles/libgnome-media-profiles.install
new file mode 100644
index 000000000..22b4c8f12
--- /dev/null
+++ b/extra/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/extra/libgnome/PKGBUILD b/extra/libgnome/PKGBUILD
new file mode 100644
index 000000000..a654b2790
--- /dev/null
+++ b/extra/libgnome/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 123229 2011-05-09 11:06:37Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libgnome
+pkgname=('libgnome' 'libgnome-data')
+pkgver=2.32.1
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+makedepends=('intltool' 'gnome-vfs>=2.24.4' 'libbonobo>=2.32.1' 'gconf>=2.32.3' 'gvfs>=1.8.1' 'libcanberra>=0.28')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('b2c63916866485793b87398266dd7778548c1734923c272a94d84ee011b6f7a4')
+
+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.4' 'libbonobo>=2.32.1' 'gconf>=2.32.3' 'gvfs>=1.8.1' 'libcanberra>=0.28')
+
+ 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/${pkgbase}.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..5863266cd
--- /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 'mips64el')
+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..abc32dd66
--- /dev/null
+++ b/extra/libgnomecanvasmm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137754 2011-09-10 15:22:05Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=libgnomecanvasmm
+pkgver=2.26.0
+pkgrel=2
+pkgdesc="A C++ wrapper for libgnomecanvas."
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('gtkmm' 'libgnomecanvas')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnomekbd/PKGBUILD b/extra/libgnomekbd/PKGBUILD
new file mode 100644
index 000000000..c23d9a555
--- /dev/null
+++ b/extra/libgnomekbd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 139375 2011-10-01 18:59:47Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomekbd
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Gnome keyboard library"
+url="http://gswitchit.sourceforge.net"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('libxklavier' '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.xz)
+sha256sums=('810ff305bbf076f6689911cf7b040d2113f501311a866abc37aa6bf5b28e1a2b')
+
+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/extra/libgnomekbd/libgnomekbd.install b/extra/libgnomekbd/libgnomekbd.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/extra/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/extra/libgnomemm/PKGBUILD b/extra/libgnomemm/PKGBUILD
new file mode 100644
index 000000000..7603b20cd
--- /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 'mips64el')
+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/libgnomeui/PKGBUILD b/extra/libgnomeui/PKGBUILD
new file mode 100644
index 000000000..2f88aa992
--- /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' 'mips64el')
+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..4c4b8c8d5
--- /dev/null
+++ b/extra/libgnomeuimm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140505 2011-10-16 04:27:15Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=libgnomeuimm
+pkgver=2.28.0
+pkgrel=2
+pkgdesc="A C++ wrapper for libgnomeui"
+arch=(i686 x86_64 'mips64el')
+url="http://gtkmm.sourceforge.net/"
+license=('GPL')
+depends=('libgnomeui>=2.24.4' 'libgnomecanvasmm>=2.26.0' 'libgnomemm>=2.30.0' 'libglademm>=2.6.7' 'gconfmm>=2.28.2' 'gnome-vfsmm>=2.26.0')
+options=('!libtool')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgphoto2/PKGBUILD b/extra/libgphoto2/PKGBUILD
new file mode 100644
index 000000000..e4516607c
--- /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.1
+pkgdesc="The core library of gphoto2, designed to allow access to digital camera by external programs."
+arch=(i686 x86_64 'mips64el')
+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..e9bbd1e75
--- /dev/null
+++ b/extra/libgpod/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 138079 2011-09-16 07:31:23Z ibiru $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libgpod
+pkgver=0.8.2
+pkgrel=2
+pkgdesc="A shared library to access the contents of an iPod"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('gdk-pixbuf2' 'mutagen' 'sg3_utils' 'libimobiledevice')
+makedepends=('intltool' 'swig' 'docbook-xsl' 'pygobject2-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.bz2)
+options=('!libtool' '!emptydirs')
+md5sums=('ff0fd875fa08f2a6a49dec57ce3367ab')
+
+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..d5343da70
--- /dev/null
+++ b/extra/libgsf/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 124392 2011-05-20 13:18:16Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgbase=libgsf
+pkgname=('libgsf' 'libgsf-gnome')
+pkgver=1.14.21
+pkgrel=1
+arch=(i686 x86_64 'mips64el')
+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=('eef0a9d6eca4e6af6c16b208947e3c958c428b94d22792bdd0b80c08a4b301db')
+
+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..6725257f8
--- /dev/null
+++ b/extra/libgtkhtml/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 121256 2011-04-29 21:48:54Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgtkhtml
+pkgver=2.11.1
+pkgrel=3
+pkgdesc="An HTML library for GTK"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('gtk2>=2.22.1' 'libxml2>=2.7.8')
+makedepends=('perlxml')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgtop/PKGBUILD b/extra/libgtop/PKGBUILD
new file mode 100644
index 000000000..abca78872
--- /dev/null
+++ b/extra/libgtop/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 136578 2011-08-30 12:54:40Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgtop
+pkgver=2.28.4
+pkgrel=1
+pkgdesc="A library that read information about processes and the running system"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('glib2' 'libxau' 'texinfo')
+makedepends=('intltool' 'gobject-introspection')
+install=libgtop.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.xz)
+options=('!libtool')
+url="http://www.gnome.org/"
+sha256sums=('b6619cfd1540267ee81d456d1a26c72c793261586f1b00a7b9a7a229d0abe1d8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-libgtop-smp
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..4cd4ec315
--- /dev/null
+++ b/extra/libguess/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144020 2011-12-02 00:37:26Z bisson $
+
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Kemka Andrey <dr.andru@gmail.com>
+
+pkgname=libguess
+pkgver=1.1
+pkgrel=1
+pkgdesc='High-speed character set detection library'
+url='http://atheme.org/project/libguess'
+license=('BSD')
+depends=('libmowgli')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://distfiles.atheme.org/libguess-${pkgver}.tar.gz")
+sha1sums=('2760e63b71497506208f9d6269ec52f83bfc6f0b')
+
+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/libgusb/PKGBUILD b/extra/libgusb/PKGBUILD
new file mode 100644
index 000000000..73a72f9f5
--- /dev/null
+++ b/extra/libgusb/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144366 2011-12-05 11:59:52Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=libgusb
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="GLib wrapper around libusb1"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://gitorious.org/gusb/"
+license=('LGPL2.1')
+depends=('udev')
+source=(http://people.freedesktop.org/~hughsient/releases/$pkgname-$pkgver.tar.xz)
+options=('!libtool')
+sha256sums=('4eebb56700d9366c513bfa8f9321a60388f61bade0236a90d66854caea97f0e6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/libgweather/PKGBUILD b/extra/libgweather/PKGBUILD
new file mode 100644
index 000000000..e98bc6ae5
--- /dev/null
+++ b/extra/libgweather/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 141132 2011-10-24 16:18:24Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgweather
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Provides access to weather information from the net"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('gconf' 'libsoup-gnome' 'gnome-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gobject-introspection' 'gnome-common')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/"
+install=libgweather.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
+ gettext-not-xml.patch)
+sha256sums=('495f6d0f79947d6e601db3220360b1fcd6ae43608cd1571be5bcd5c05b7388d5'
+ '5b6bf182294b8974a89492237d98b60678b83efcf31de8a0ca1bebd90f3356a3')
+
+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/extra/libgweather/gettext-not-xml.patch b/extra/libgweather/gettext-not-xml.patch
new file mode 100644
index 000000000..db9c64148
--- /dev/null
+++ b/extra/libgweather/gettext-not-xml.patch
@@ -0,0 +1,532 @@
+diff -up libgweather-3.1.3/configure.ac.gettext libgweather-3.1.3/configure.ac
+--- libgweather-3.1.3/configure.ac.gettext 2011-07-04 10:52:13.000000000 -0400
++++ libgweather-3.1.3/configure.ac 2011-07-06 20:26:17.180168365 -0400
+@@ -43,19 +43,16 @@ GNOME_MAINTAINER_MODE_DEFINES
+ LT_PREREQ([2.2.6])
+ LT_INIT([dlopen win32-dll disable-static])
+
++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.6])
+ PKG_PROG_PKG_CONFIG([0.19])
+
+ AC_PROG_CC
+ 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])],
+@@ -191,7 +188,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
+@@ -199,12 +196,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 ***************************************************************************
+@@ -215,6 +206,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-3.1.3/data/Makefile.am.gettext libgweather-3.1.3/data/Makefile.am
+--- libgweather-3.1.3/data/Makefile.am.gettext 2011-04-04 16:52:54.000000000 -0400
++++ libgweather-3.1.3/data/Makefile.am 2011-07-06 20:18:42.244855841 -0400
+@@ -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-3.1.3/libgweather/gweather-location.c.gettext libgweather-3.1.3/libgweather/gweather-location.c
+--- libgweather-3.1.3/libgweather/gweather-location.c.gettext 2010-02-09 07:28:03.000000000 -0500
++++ libgweather-3.1.3/libgweather/gweather-location.c 2011-07-06 20:18:42.251855754 -0400
+@@ -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-3.1.3/libgweather/gweather-timezone.c.gettext libgweather-3.1.3/libgweather/gweather-timezone.c
+--- libgweather-3.1.3/libgweather/gweather-timezone.c.gettext 2010-02-09 07:28:03.000000000 -0500
++++ libgweather-3.1.3/libgweather/gweather-timezone.c 2011-07-06 20:18:42.252855742 -0400
+@@ -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-3.1.3/po-locations/LINGUAS.gettext libgweather-3.1.3/po-locations/LINGUAS
+--- libgweather-3.1.3/po-locations/LINGUAS.gettext 2011-07-06 20:18:42.253855730 -0400
++++ libgweather-3.1.3/po-locations/LINGUAS 2011-07-06 20:18:42.253855730 -0400
+@@ -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-3.1.3/po-locations/Makefile.in.in.gettext libgweather-3.1.3/po-locations/Makefile.in.in
+--- libgweather-3.1.3/po-locations/Makefile.in.in.gettext 2011-07-06 20:18:42.254855718 -0400
++++ libgweather-3.1.3/po-locations/Makefile.in.in 2011-07-06 20:18:42.254855718 -0400
+@@ -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-3.1.3/po-locations/POTFILES.in.gettext libgweather-3.1.3/po-locations/POTFILES.in
+--- libgweather-3.1.3/po-locations/POTFILES.in.gettext 2011-07-06 20:18:42.254855718 -0400
++++ libgweather-3.1.3/po-locations/POTFILES.in 2011-07-06 20:18:42.254855718 -0400
+@@ -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/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..a3a99a4cd
--- /dev/null
+++ b/extra/libhangul/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140549 2011-10-17 07:24:10Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=libhangul
+pkgver=0.1.0
+pkgrel=1
+_filecode=6000
+pkgdesc='Input method library for Korean'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://kldp.net/projects/hangul/'
+license=('LGPL')
+options=('!libtool')
+DLAGENTS=("http::/usr/bin/curl -A '' -fLC - --retry 3 --retry-delay 3 -o %o %u") # moronic httpd bans curl's user-agent
+source=("http://kldp.net/frs/download.php/${_filecode}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('9c6f3a82f2d4068771215f1b9f13a0d4bdbbfc77')
+
+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..56c6f19b2
--- /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' 'mips64el')
+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..09c274fb3
--- /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 'mips64el')
+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..589902094
--- /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' 'mips64el')
+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..a2f678871
--- /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 'mips64el')
+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..67d89a5e1
--- /dev/null
+++ b/extra/libidn/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 122805 2011-05-06 09:19:07Z 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.22
+pkgrel=1
+pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications"
+url="http://www.gnu.org/software/libidn/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3' 'LGPL')
+depends=('glibc' 'texinfo')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+install=libidn.install
+sha1sums=('8358e897c24d534438f6b5694c25e85889d860c3')
+
+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..cec337815
--- /dev/null
+++ b/extra/libiec61883/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144006 2011-12-01 16:55:03Z 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=3
+pkgdesc="A higher level API for streaming DV, MPEG-2 and audio over Linux IEEE 1394"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kernel.org/pub/linux/libs/ieee1394/"
+license=('LGPL')
+depends=('libraw1394')
+options=('!libtool')
+source=("http://ftp.osuosl.org/pub/linux/libs/ieee1394/${pkgname}-${pkgver}.tar.gz")
+md5sums=('8af39fff74988073c3ad53fbab147da9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libieee1284/PKGBUILD b/extra/libieee1284/PKGBUILD
new file mode 100644
index 000000000..58c0d95a0
--- /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' 'mips64el')
+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 PYTHON=/usr/bin/python2
+ 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..fc3667670
--- /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' 'mips64el')
+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..b5e17535b
--- /dev/null
+++ b/extra/libimobiledevice/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 135796 2011-08-18 15:04:27Z andyrtr $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=libimobiledevice
+pkgver=1.1.1
+pkgrel=2.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' 'mips64el')
+license=('GPL2' 'LGPL2.1')
+depends=('glib2' 'gnutls' 'libgcrypt' 'libplist' 'usbmuxd')
+makedepends=('swig' 'python2')
+options=('!libtool')
+source=(http://libimobiledevice.org/downloads/${pkgname}-${pkgver}.tar.bz2
+ swig-version-check.patch)
+md5sums=('cdc13037e822d9ac2e109536701d153a'
+ '8bb215e36fe0e08a72332c108c7842cc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # SWIG version check is wrong (still not fixed upstream)
+ patch -p1 -i "$srcdir"/swig-version-check.patch
+ PYTHON=/usr/bin/python2 ./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..5f39e3bdf
--- /dev/null
+++ b/extra/libindi/PKGBUILD
@@ -0,0 +1,34 @@
+# $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.8
+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' 'mips64el')
+depends=('libnova' 'cfitsio' 'boost-libs')
+makedepends=('pkgconfig' 'cmake' 'boost')
+provides=('indilib')
+replaces=('indilib')
+conflicts=('indilib')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/indi/${pkgname}_${pkgver}.tar.gz")
+md5sums=('ca2b7c56431eb5e08218929e5eb72150')
+
+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/libiodbc/PKGBUILD b/extra/libiodbc/PKGBUILD
new file mode 100644
index 000000000..4266b08f4
--- /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' 'mips64el')
+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..db0de83f1
--- /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' 'mips64el')
+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..471b62f7f
--- /dev/null
+++ b/extra/libisoburn/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143529 2011-11-25 17:39:44Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Gour <Gour <gour@mail.inet.hr>
+
+pkgname=libisoburn
+pkgver=1.1.8
+pkgrel=1
+pkgdesc="frontend for libraries libburn and libisofs"
+url="http://libburnia.pykix.org/wiki/Libisoburn"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('libburn>=1.1.8' 'libisofs>=1.1.6' 'readline')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('78c02d1790d5871524a9f4434934e277')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libisoburn/libisoburn.install b/extra/libisoburn/libisoburn.install
new file mode 100644
index 000000000..69f17be37
--- /dev/null
+++ b/extra/libisoburn/libisoburn.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(xorriso.info xorrisofs.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/libisofs/PKGBUILD b/extra/libisofs/PKGBUILD
new file mode 100644
index 000000000..09ccc5a16
--- /dev/null
+++ b/extra/libisofs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140469 2011-10-15 09:31:03Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Hugo Doria <hugodoria@gmail.com>
+# Contributor: Bjorn Martensen
+
+pkgname=libisofs
+pkgver=1.1.6
+pkgrel=1
+pkgdesc="Library to pack up hard disk files and directories into a ISO 9660 disk image"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libburnia.pykix.org/"
+license=('GPL')
+depends=('acl' 'zlib')
+source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('2f6088ba9ae7ed6cc91a51d2b6f2dfa0')
+
+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..330136d46
--- /dev/null
+++ b/extra/libjpeg-turbo/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 129225 2011-06-26 02:06:08Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Simone Sclavi 'Ito' <darkhado@gmail.com>
+
+pkgname=libjpeg-turbo
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="libjpeg derivative with accelerated baseline JPEG compression and decompression"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libjpeg-turbo.virtualgl.org/"
+license=('GPL' 'custom')
+depends=('glibc')
+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=('03b9c1406c7bfdc204313c2917ce6962')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --with-jpeg8 --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # provide jpegint.h as it is required by various software
+ install -m644 jpegint.h $pkgdir/usr/include/
+
+ # do not distributre libturbojpeg as it is unversioned
+ rm $pkgdir/usr/lib/libturbojpeg.{so,a}
+ rm $pkgdir/usr/include/turbojpeg.h
+ rm $pkgdir/usr/bin/jpgtest
+
+ install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/libjpeg-turbo/LICENSE"
+}
diff --git a/extra/libkdcraw/PKGBUILD b/extra/libkdcraw/PKGBUILD
new file mode 100644
index 000000000..3305f740f
--- /dev/null
+++ b/extra/libkdcraw/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144643 2011-12-08 09:18:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdcraw
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A C++ interface used to decode RAW picture"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'lcms')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('f97516a2da26da3c15075a007bec7c8f9860379b')
+
+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/libkdcraw/libkdcraw.install b/extra/libkdcraw/libkdcraw.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/libkdcraw/libkdcraw.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/libkdeedu/PKGBUILD b/extra/libkdeedu/PKGBUILD
new file mode 100644
index 000000000..e2cfe2cfc
--- /dev/null
+++ b/extra/libkdeedu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144639 2011-12-08 09:18:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdeedu
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Libraries used by KDE Education applications"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+replaces=('kdeedu-libkdeedu' 'kdeedu-data')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('2f508c6efa9ef9561d25578000c7d5bb5ed1c5ee')
+
+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/libkdeedu/libkdeedu.install b/extra/libkdeedu/libkdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/libkdeedu/libkdeedu.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/libkexiv2/PKGBUILD b/extra/libkexiv2/PKGBUILD
new file mode 100644
index 000000000..b85c2918f
--- /dev/null
+++ b/extra/libkexiv2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144645 2011-12-08 09:19:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkexiv2
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A library to manipulate pictures metadata"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('19031140c87d9d7003fef564b6927c6f69d7e3d3')
+
+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/libkipi/PKGBUILD b/extra/libkipi/PKGBUILD
new file mode 100644
index 000000000..40cf07e56
--- /dev/null
+++ b/extra/libkipi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144647 2011-12-08 09:19:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkipi
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="An interface to use kipi-plugins from a KDE application"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('3225ac0c55f5e4fef71a8baee8d3c49efff6adbf')
+
+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/libkipi/libkipi.install b/extra/libkipi/libkipi.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/libkipi/libkipi.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/libksane/PKGBUILD b/extra/libksane/PKGBUILD
new file mode 100644
index 000000000..98d783a80
--- /dev/null
+++ b/extra/libksane/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144649 2011-12-08 09:19:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libksane
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="An image scanning library"
+url="http://kde.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'sane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('3c7a8d5b7fd80175684a0373fae26197e8158565')
+
+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/libksane/libksane.install b/extra/libksane/libksane.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/libksane/libksane.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/libksba/PKGBUILD b/extra/libksba/PKGBUILD
new file mode 100644
index 000000000..f6ef17583
--- /dev/null
+++ b/extra/libksba/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 134460 2011-08-04 06:38:08Z tpowa $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=libksba
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A CMS and X.509 access library"
+arch=(i686 x86_64 mips64el)
+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)
+install=libksba.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('e797f370b69b4dc776499d6a071ae137')
diff --git a/extra/libksba/libksba.install b/extra/libksba/libksba.install
new file mode 100644
index 000000000..3715b8960
--- /dev/null
+++ b/extra/libksba/libksba.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(ksba.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/libktorrent/PKGBUILD b/extra/libktorrent/PKGBUILD
new file mode 100644
index 000000000..40ef899b5
--- /dev/null
+++ b/extra/libktorrent/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143235 2011-11-23 19:29:05Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libktorrent
+pkgver=1.1.3
+pkgrel=1
+pkgdesc="A BitTorrent protocol implementation"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ktorrent.org"
+license=('GPL2')
+depends=('kdelibs')
+makedepends=('automoc4' 'cmake' 'boost' 'doxygen')
+source=("http://ktorrent.org/downloads/4.1.3/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('665b6139ab68b83c6465509e29e839e0')
+
+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..a67e1cdfe
--- /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' 'mips64el')
+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..4963a4649
--- /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 'mips64el')
+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/liblouis/PKGBUILD b/extra/liblouis/PKGBUILD
new file mode 100644
index 000000000..c39052981
--- /dev/null
+++ b/extra/liblouis/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 139381 2011-10-01 19:00:00Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=liblouis
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="Open-source braille translator and back-translator"
+arch=(mips64el)
+url="http://code.google.com/p/liblouis/"
+license=('GPL3')
+depends=(glibc)
+makedepends=(help2man python2)
+optdepends=('python2: for python bindings')
+options=(!libtool)
+install=liblouis.install
+source=(http://liblouis.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+sha1sums=('f670c4fd845b3310ec02140fb26d912bdb1df356')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ cd python
+ LD_PRELOAD+=":$srcdir/$pkgname-$pkgver/liblouis/.libs/liblouis.so"
+ python2 setup.py install --root="$pkgdir" --prefix="/usr" --optimize=1
+}
+# vim:set ts=2 sw=2 et:
diff --git a/extra/liblouis/liblouis.install b/extra/liblouis/liblouis.install
new file mode 100644
index 000000000..2a05ba27a
--- /dev/null
+++ b/extra/liblouis/liblouis.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(liblouis.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/liblqr/PKGBUILD b/extra/liblqr/PKGBUILD
new file mode 100644
index 000000000..445511d75
--- /dev/null
+++ b/extra/liblqr/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 124082 2011-05-16 15:00:24Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=liblqr
+pkgver=0.4.1
+pkgrel=2
+pkgdesc="A seam-carving C/C++ library called Liquid Rescale"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://liblqr.wikidot.com/"
+license=('GPL')
+depends=('glib2')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-1-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+md5sums=('0e24ed3c9fcdcb111062640764d7b87a')
diff --git a/extra/liblrdf/PKGBUILD b/extra/liblrdf/PKGBUILD
new file mode 100644
index 000000000..f740dbff7
--- /dev/null
+++ b/extra/liblrdf/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 139617 2011-10-03 19:42:49Z jgc $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=liblrdf
+pkgver=0.4.0
+pkgrel=9
+pkgdesc="A library for the manipulation of RDF file in LADSPA plugins"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/lrdf" #"http://sourceforge.net/projects/lrdf"
+depends=('raptor' 'ladspa')
+makedepends=('pkgconfig')
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/lrdf/${pkgname}-${pkgver}.tar.gz
+ md5.patch
+ raptor2.diff
+ pkgconfig-raptor.patch)
+groups=('ladspa-plugins')
+md5sums=('327a5674f671c4b360c6353800226877'
+ 'a6d231d052dc188cbc4c1039cf3a2003'
+ '80e938469da06a178e03107ca5b41e55'
+ '982ae1bd4b39c2fb5cba108fbcbfbad1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/md5.patch"
+ patch -Np0 -i "${srcdir}/raptor2.diff"
+ patch -Np1 -i "${srcdir}/pkgconfig-raptor.patch"
+ autoreconf -vfi
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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/liblrdf/pkgconfig-raptor.patch b/extra/liblrdf/pkgconfig-raptor.patch
new file mode 100644
index 000000000..c68f1f1b5
--- /dev/null
+++ b/extra/liblrdf/pkgconfig-raptor.patch
@@ -0,0 +1,9 @@
+--- liblrdf-0.4.0/lrdf.pc.in.orig 2011-10-03 19:28:16.702773254 +0000
++++ liblrdf-0.4.0/lrdf.pc.in 2011-10-03 19:28:43.003017477 +0000
+@@ -7,4 +7,5 @@
+ Version: @VERSION@
+ Description: liblrdf, a lightweight RDF library with extensions for LADSPA
+ Libs: -L${libdir} -llrdf
+-Cflags: -I${includedir}
++Libs.private: @RAPTOR_LIBS@
++Cflags: @RAPTOR_CFLAGS@ -I${includedir}
diff --git a/extra/liblrdf/raptor2.diff b/extra/liblrdf/raptor2.diff
new file mode 100644
index 000000000..77f1ad0e3
--- /dev/null
+++ b/extra/liblrdf/raptor2.diff
@@ -0,0 +1,193 @@
+--- src/Makefile.am
++++ src/Makefile.am
+@@ -4,5 +4,5 @@ lib_LTLIBRARIES = liblrdf.la
+ noinst_HEADERS = lrdf_md5.h md5_loc.h ladspa.h
+
+ liblrdf_la_SOURCES = lrdf.c lrdf_multi.c md5.c
+-liblrdf_la_LIBADD = -lraptor
++liblrdf_la_LIBADD = -lraptor2
+ liblrdf_la_LDFLAGS = -version-info @LRDF_LIBTOOL_VERSION@
+--- src/lrdf.c
++++ src/lrdf.c
+@@ -18,6 +18,7 @@
+ static unsigned int lrdf_uid = 0; /* A unique(ish) id to append to genid's to
+ * avoid clashses */
+
++static raptor_world *world = NULL;
+ static lrdf_statement *triples = NULL;
+ static lrdf_statement *free_triples;
+ static lrdf_string_hash *resources_hash[LRDF_HASH_SIZE];
+@@ -43,8 +44,7 @@ static void lrdf_remove_triple_hash(lrdf_triple_hash ** tbl,
+ lrdf_hash hash, lrdf_statement * s);
+ static void lrdf_add_closure_hash(lrdf_closure_hash ** tbl,
+ lrdf_hash subject, lrdf_hash object);
+-static void lrdf_store(void *user_data,
+- const raptor_statement * statement);
++static void lrdf_store(void *user_data, raptor_statement * statement);
+ void lrdf_free_statements(lrdf_statement * s);
+ void lrdf_copy_statement(lrdf_statement * from, lrdf_statement * to);
+ void lrdf_rebuild_taxonomic_closure(lrdf_closure_hash ** fwd_tbl,
+@@ -71,7 +71,7 @@ void lrdf_init()
+ unsigned int i;
+ struct timeval tv;
+
+- raptor_init();
++ world = raptor_new_world();
+ lrdf_more_triples(256);
+
+ /* A UID to add to genids to make them safer */
+@@ -112,7 +112,8 @@ void lrdf_more_triples(int count)
+
+ void lrdf_cleanup()
+ {
+- raptor_finish();
++ raptor_free_world(world);
++ world = NULL;
+
+ lrdf_free_string_hash(resources_hash);
+ lrdf_free_string_hash(literals_hash);
+@@ -232,26 +233,29 @@ void lrdf_remove_matches(lrdf_statement *pattern)
+ }
+ }
+
+-static void lrdf_store(void *user_data, const raptor_statement * statement)
++static const char *lrdf_term_as_string(char *tmp, int tmp_len,
++ const raptor_term *term)
++{
++ switch (term->type) {
++ case RAPTOR_TERM_TYPE_URI:
++ return (const char *) raptor_uri_as_string(term->value.uri);
++ case RAPTOR_TERM_TYPE_LITERAL:
++ return (const char *) term->value.literal.string;
++ case RAPTOR_TERM_TYPE_BLANK:
++ snprintf(tmp, tmp_len, "_:%s.%x", term->value.blank.string, lrdf_uid);
++ return tmp;
++ default:
++ return "(?)";
++ }
++}
++
++static void lrdf_store(void *user_data, raptor_statement * statement)
+ {
+ lrdf_statement *s = lrdf_alloc_statement();
+ char tmps[128], tmpp[128], tmpo[128];
+- char *subj = (char *) statement->subject,
+- *pred = (char *) statement->predicate,
+- *obj = (char *) statement->object;
+-
+- if (statement->subject_type == RAPTOR_IDENTIFIER_TYPE_ANONYMOUS) {
+- snprintf(tmps, 127, "_:%s.%x", subj, lrdf_uid);
+- subj = tmps;
+- }
+- if (statement->predicate_type == RAPTOR_IDENTIFIER_TYPE_ANONYMOUS) {
+- snprintf(tmpp, 127, "_:%s.%x", pred, lrdf_uid);
+- pred = tmpp;
+- }
+- if (statement->object_type == RAPTOR_IDENTIFIER_TYPE_ANONYMOUS) {
+- snprintf(tmpo, 127, "_:%s.%x", obj, lrdf_uid);
+- obj = tmpo;
+- }
++ const char *subj = lrdf_term_as_string(tmps, 128, statement->subject),
++ *pred = lrdf_term_as_string(tmpp, 128, statement->predicate),
++ *obj = lrdf_term_as_string(tmpo, 128, statement->object);
+
+ s->shash = lrdf_gen_hash(subj);
+ s->phash = lrdf_gen_hash(pred);
+@@ -261,7 +265,7 @@ static void lrdf_store(void *user_data, const raptor_statement * statement)
+
+ s->subject = lrdf_check_hash(resources_hash, s->shash, subj);
+ s->predicate = lrdf_check_hash(resources_hash, s->phash, pred);
+- if (statement->object_type == RAPTOR_IDENTIFIER_TYPE_LITERAL) {
++ if (statement->object->type == RAPTOR_TERM_TYPE_LITERAL) {
+ s->object = lrdf_check_hash(literals_hash, s->ohash, obj);
+ s->object_type = lrdf_literal;
+ } else {
+@@ -537,28 +541,22 @@ void lrdf_rebuild_taxonomic_closure(lrdf_closure_hash ** fwd_tbl,
+ free(pathto);
+ }
+
+-static void lrdf_error_handler(void *data, raptor_locator * locator,
+- const char *message);
++static void lrdf_log_handler(void *data, raptor_log_message *message);
+
+-static void lrdf_error_handler(void *data, raptor_locator * locator,
+- const char *message)
++static void lrdf_log_handler(void *data, raptor_log_message *message)
+ {
+- fprintf(stderr, "liblrdf: error - ");
+- raptor_print_locator(stderr, locator);
+- fprintf(stderr, " - %s\n", message);
+-
+- raptor_parse_abort((raptor_parser*)data);
+-}
++ const char *severity = "error";
++ if (message->level == RAPTOR_LOG_LEVEL_WARN) {
++ severity = "warning";
++ }
+
+-static void lrdf_warning_handler(void *data, raptor_locator * locator,
+- const char *message);
++ fprintf(stderr, "liblrdf: %s - ", severity);
++ raptor_locator_print(message->locator, stderr);
++ fprintf(stderr, " - %s\n", message->text);
+
+-static void lrdf_warning_handler(void *data, raptor_locator * locator,
+- const char *message)
+-{
+- fprintf(stderr, "liblrdf: warning - ");
+- raptor_print_locator(stderr, locator);
+- fprintf(stderr, " - %s\n", message);
++ if (message->level != RAPTOR_LOG_LEVEL_WARN) {
++ raptor_parser_parse_abort((raptor_parser*)data);
++ }
+ }
+
+
+@@ -593,15 +591,15 @@ int lrdf_read_file_intl(const char *uri)
+ lrdf_hash source;
+
+ //printf("lrdf: reading %s\n", uri);
+- ruri = raptor_new_uri(uri);
+- furi = raptor_new_uri(uri);
++ ruri = raptor_new_uri(world, (const unsigned char *) uri);
++ furi = raptor_new_uri(world, (const unsigned char *) uri);
+ source = lrdf_gen_hash(uri);
+ lrdf_check_hash(resources_hash, source, uri);
+
+ if (strstr(uri, ".rdf")) {
+- parser = raptor_new_parser("rdfxml");
++ parser = raptor_new_parser(world, "rdfxml");
+ } else {
+- parser = raptor_new_parser("ntriples");
++ parser = raptor_new_parser(world, "ntriples");
+ }
+ if (!parser) {
+ fprintf(stderr, "liblrdf: failed to create parser\n");
+@@ -609,12 +607,11 @@ int lrdf_read_file_intl(const char *uri)
+ return 1;
+ }
+
+- raptor_set_error_handler(parser, parser, lrdf_error_handler);
+- raptor_set_warning_handler(parser, NULL, lrdf_warning_handler);
+- raptor_set_statement_handler(parser, &source, lrdf_store);
+- raptor_set_default_generate_id_parameters(parser, NULL, ++lrdf_uid);
++ raptor_world_set_log_handler(world, parser, lrdf_log_handler);
++ raptor_parser_set_statement_handler(parser, &source, lrdf_store);
++ raptor_world_set_generate_bnodeid_parameters(world, NULL, ++lrdf_uid);
+
+- if (raptor_parse_file(parser, furi, ruri)) {
++ if (raptor_parser_parse_file(parser, furi, ruri)) {
+ raptor_free_uri(furi);
+ raptor_free_uri(ruri);
+ raptor_free_parser(parser);
+--- configure.ac
++++ configure.ac
+@@ -18,7 +18,7 @@
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS([errno.h limits.h stdlib.h string.h unistd.h])
+
+-PKG_CHECK_MODULES(RAPTOR, raptor >= 0.9.11)
++PKG_CHECK_MODULES(RAPTOR, raptor2 >= 0.9.11)
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
diff --git a/extra/libmad/PKGBUILD b/extra/libmad/PKGBUILD
new file mode 100644
index 000000000..14f32b061
--- /dev/null
+++ b/extra/libmad/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 120663 2011-04-25 21:54:20Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libmad
+pkgver=0.15.1b
+pkgrel=5
+pkgdesc="A high-quality MPEG audio decoder"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.underbit.com/products/mad/"
+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)
+md5sums=('1be543bc30c56fb6bea1d7bf6a64e66c'
+ 'fbcca0267a423bae45389666f4cb04d5'
+ '8d8bd64a2842dd59153b3a6642059e23'
+ '3329b032118a68e18908197e65b3198d'
+ '3e52afe2103f367810a18bef9e82eb9f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/libmad.patch"
+ patch -p1 -i "${srcdir}/amd64-64bit.diff"
+ patch -p1 -i "${srcdir}/frame_length.diff"
+ patch -p1 -i "${srcdir}/optimize.diff"
+ CFLAGS="$CFLAGS -ftree-vectorize -ftree-vectorizer-verbose=1"
+ autoconf
+ ./configure --prefix=/usr --enable-fpm=default
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..dff82cef1
--- /dev/null
+++ b/extra/libmatroska/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143895 2011-11-30 19:46:58Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor 03/08/04 <lefungus@altern.org>
+
+pkgname=libmatroska
+pkgver=1.3.0
+pkgrel=2
+pkgdesc="Matroska library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dl.matroska.org/downloads/libmatroska/"
+license=('LGPL')
+depends=('libebml')
+source=("http://dl.matroska.org/downloads/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('f4a8c411f09d39c754eb726efd616043')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+
+ make sharedlib
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/extra/libmcrypt/PKGBUILD b/extra/libmcrypt/PKGBUILD
new file mode 100644
index 000000000..2f1b20aa7
--- /dev/null
+++ b/extra/libmcrypt/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 136970 2011-09-04 11:35:09Z pierre $
+# 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=3
+pkgdesc="A library which provides a uniform interface to several symmetric encryption algorithms"
+url="http://mcrypt.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('glibc')
+options=('!libtool' '!emptydirs')
+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
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libmikmod/PKGBUILD b/extra/libmikmod/PKGBUILD
new file mode 100644
index 000000000..dd1dd5d3b
--- /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' 'mips64el')
+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..322a4fdd5
--- /dev/null
+++ b/extra/libmms/PKGBUILD
@@ -0,0 +1,25 @@
+#$Id: PKGBUILD 134220 2011-08-02 15:22:22Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmms
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="MMS stream protocol library"
+arch=(i686 x86_64 'mips64el')
+url="http://sourceforge.net/projects/libmms/"
+license=(LGPL)
+depends=('glib2')
+options=('!libtool')
+source=(http://download.sourceforge.net/libmms/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9f63aa363deb4874e072a45850161bff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libmng/PKGBUILD b/extra/libmng/PKGBUILD
new file mode 100644
index 000000000..8e022137d
--- /dev/null
+++ b/extra/libmng/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 137860 2011-09-12 05:28:13Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libmng
+pkgver=1.0.10
+pkgrel=4
+pkgdesc="A collection of routines used to create and manipulate MNG format graphics files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.libmng.com/"
+license=('custom')
+depends=('zlib' 'libjpeg')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('eaf1476a3bb29f6190bca660e6abef16')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ln -s makefiles/configure.in .
+ ln -s makefiles/Makefile.am .
+ autoreconf --force --install
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ 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..874946404
--- /dev/null
+++ b/extra/libmodplug/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 127953 2011-06-20 06:04:33Z andrea $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
+
+pkgname=libmodplug
+pkgver=0.8.8.3
+pkgrel=1
+pkgdesc="A MOD playing library"
+arch=(i686 x86_64 'mips64el')
+url="http://modplug-xmms.sourceforge.net/"
+license=('custom')
+depends=('gcc-libs')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/modplug-xmms/${pkgname}-${pkgver}.tar.gz")
+md5sums=('8a9c713f0f56894163ddc61f9a0d1f71')
+
+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/extra/libmowgli/PKGBUILD b/extra/libmowgli/PKGBUILD
new file mode 100644
index 000000000..7d4ca777a
--- /dev/null
+++ b/extra/libmowgli/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 144018 2011-12-02 00:36:56Z bisson $
+
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Brad Gordon <brad@rpgcyco.net>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=libmowgli
+pkgver=1.0.0
+pkgrel=1
+pkgdesc='Performance and usability-oriented extensions to C'
+url='http://www.atheme.org/project/mowgli'
+license=('custom')
+depends=('glibc')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://distfiles.atheme.org/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('403473582e3086c1acaafed59b9915f29a5d0ce0')
+
+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/extra/libmp3splt/PKGBUILD b/extra/libmp3splt/PKGBUILD
new file mode 100644
index 000000000..af01492ea
--- /dev/null
+++ b/extra/libmp3splt/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 131866 2011-07-16 10:20:18Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libmp3splt
+pkgver=0.7
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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=('dadb166361e2a28955032a1b9f10ed38')
diff --git a/extra/libmp4v2/PKGBUILD b/extra/libmp4v2/PKGBUILD
new file mode 100644
index 000000000..997a491f5
--- /dev/null
+++ b/extra/libmp4v2/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 137907 2011-09-12 11:57:06Z pierre $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmp4v2
+pkgver=1.9.1
+pkgrel=2
+pkgdesc="MPEG-4 library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('MPL')
+url="http://code.google.com/p/mp4v2/"
+depends=('gcc-libs')
+options=('!libtool')
+source=("http://mp4v2.googlecode.com/files/mp4v2-${pkgver}.tar.bz2")
+md5sums=('986701929ef15b03155ac4fb16444797')
+
+build() {
+ cd ${srcdir}/mp4v2-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/mp4v2-${pkgver}
+ make DESTDIR=${pkgdir} install
+ make DESTDIR=${pkgdir} install-man
+}
diff --git a/extra/libmpcdec/PKGBUILD b/extra/libmpcdec/PKGBUILD
new file mode 100644
index 000000000..de27d8451
--- /dev/null
+++ b/extra/libmpcdec/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 141656 2011-11-01 10:26:35Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmpcdec
+pkgver=1.2.6
+pkgrel=3
+pkgdesc="Musepack decoding library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ 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..3ec83e29a
--- /dev/null
+++ b/extra/libmpd/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 136733 2011-08-31 19:31:16Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+
+pkgname=libmpd
+pkgver=11.8.17
+pkgrel=1
+pkgdesc="Signal based wrapper around libmpdclient"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client"
+license=('GPL')
+depends=('glib2')
+options=('!libtool')
+source=(http://download.sarine.nl/Programs/gmpc/${pkgver%.*}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5ae3d87467d52aef3345407adb0a2488')
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libmpdclient/PKGBUILD b/extra/libmpdclient/PKGBUILD
new file mode 100644
index 000000000..fb6dc9072
--- /dev/null
+++ b/extra/libmpdclient/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 141673 2011-11-02 05:35:47Z bisson $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=libmpdclient
+pkgver=2.6
+pkgrel=1
+pkgdesc='Asynchronous API library for interfacing MPD in the C, C++ & Objective C languages'
+url='http://mpd.wikia.com/wiki/ClientLib:libmpdclient'
+license=('custom:BSD')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/musicpd/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('39bdcf5399fb98e34b8b6110057b64f4d1945333')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${pkgdir}"
+ install -d usr/share/licenses/libmpdclient
+ ln -s ../../doc/libmpdclient/COPYING usr/share/licenses/libmpdclient/COPYING
+}
diff --git a/extra/libmpeg2/PKGBUILD b/extra/libmpeg2/PKGBUILD
new file mode 100644
index 000000000..192d24571
--- /dev/null
+++ b/extra/libmpeg2/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 134366 2011-08-03 07:11:36Z jgc $
+# Contributor: Sarah Hay <sarah@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libmpeg2
+pkgver=0.5.1
+pkgrel=3
+pkgdesc="Library for decoding MPEG-1 and MPEG-2 video streams."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libmpeg2.sourceforge.net/"
+depends=('glibc')
+makedepends=('sdl' 'libxv')
+optdepends=('sdl: requiered for mpeg2dec'
+ 'libxv: requiered for mpeg2dec')
+source=(http://libmpeg2.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz
+ libmpeg2-0.5.1-gcc4.6.patch)
+license=('GPL2')
+options=(!libtool)
+provides=('mpeg2dec')
+md5sums=('0f92c7454e58379b4a5a378485bbd8ef'
+ '8b36660297e6ffde6aa9733136bff405')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libmpeg2-0.5.1-gcc4.6.patch"
+
+ sed '/AC_PATH_XTRA/d' -i configure.ac
+ autoreconf --force --install
+
+ ./configure --prefix=/usr --enable-shared --disable-static
+ make OPT_CFLAGS="${CFLAGS}" \
+ MPEG2DEC_CFLAGS="${CFLAGS}" \
+ LIBMPEG2_CFLAGS=""
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch b/extra/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch
new file mode 100644
index 000000000..9c0e185be
--- /dev/null
+++ b/extra/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch
@@ -0,0 +1,128 @@
+--- libmpeg2-0.5.1/libmpeg2/idct_mmx.c.orig 2011-05-13 09:23:02.557758717 -0300
++++ libmpeg2-0.5.1/libmpeg2/idct_mmx.c 2011-05-13 09:23:06.346778580 -0300
+@@ -39,7 +39,6 @@
+ #define rounder(bias) {round (bias), round (bias)}
+ #define rounder_sse2(bias) {round (bias), round (bias), round (bias), round (bias)}
+
+-
+ #if 0
+ /* C row IDCT - it is just here to document the MMXEXT and MMX versions */
+ static inline void idct_row (int16_t * row, int offset,
+@@ -464,10 +463,10 @@ static inline void sse2_idct_col (int16_
+ /* Almost identical to mmxext version: */
+ /* just do both 4x8 columns in paraller */
+
+- static const short t1_vector[] ATTR_ALIGN(16) = {T1,T1,T1,T1,T1,T1,T1,T1};
+- static const short t2_vector[] ATTR_ALIGN(16) = {T2,T2,T2,T2,T2,T2,T2,T2};
+- static const short t3_vector[] ATTR_ALIGN(16) = {T3,T3,T3,T3,T3,T3,T3,T3};
+- static const short c4_vector[] ATTR_ALIGN(16) = {C4,C4,C4,C4,C4,C4,C4,C4};
++ static/* const*/ short t1_vector[] ATTR_ALIGN(16) = {T1,T1,T1,T1,T1,T1,T1,T1};
++ static/* const*/ short t2_vector[] ATTR_ALIGN(16) = {T2,T2,T2,T2,T2,T2,T2,T2};
++ static/* const*/ short t3_vector[] ATTR_ALIGN(16) = {T3,T3,T3,T3,T3,T3,T3,T3};
++ static/* const*/ short c4_vector[] ATTR_ALIGN(16) = {C4,C4,C4,C4,C4,C4,C4,C4};
+
+ #if defined(__x86_64__)
+
+@@ -710,10 +709,10 @@ static inline void sse2_idct_col (int16_
+ /* MMX column IDCT */
+ static inline void idct_col (int16_t * const col, const int offset)
+ {
+- static const short t1_vector[] ATTR_ALIGN(8) = {T1,T1,T1,T1};
+- static const short t2_vector[] ATTR_ALIGN(8) = {T2,T2,T2,T2};
+- static const short t3_vector[] ATTR_ALIGN(8) = {T3,T3,T3,T3};
+- static const short c4_vector[] ATTR_ALIGN(8) = {C4,C4,C4,C4};
++ static/* const*/ short t1_vector[] ATTR_ALIGN(8) = {T1,T1,T1,T1};
++ static/* const*/ short t2_vector[] ATTR_ALIGN(8) = {T2,T2,T2,T2};
++ static/* const*/ short t3_vector[] ATTR_ALIGN(8) = {T3,T3,T3,T3};
++ static/* const*/ short c4_vector[] ATTR_ALIGN(8) = {C4,C4,C4,C4};
+
+ /* column code adapted from peter gubanov */
+ /* http://www.elecard.com/peter/idct.shtml */
+@@ -847,33 +846,33 @@ static inline void idct_col (int16_t * c
+ }
+
+
+-static const int32_t rounder0[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder0[] ATTR_ALIGN(8) =
+ rounder ((1 << (COL_SHIFT - 1)) - 0.5);
+-static const int32_t rounder4[] ATTR_ALIGN(8) = rounder (0);
+-static const int32_t rounder1[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder4[] ATTR_ALIGN(8) = rounder (0);
++static/* const*/ int32_t rounder1[] ATTR_ALIGN(8) =
+ rounder (1.25683487303); /* C1*(C1/C4+C1+C7)/2 */
+-static const int32_t rounder7[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder7[] ATTR_ALIGN(8) =
+ rounder (-0.25); /* C1*(C7/C4+C7-C1)/2 */
+-static const int32_t rounder2[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder2[] ATTR_ALIGN(8) =
+ rounder (0.60355339059); /* C2 * (C6+C2)/2 */
+-static const int32_t rounder6[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder6[] ATTR_ALIGN(8) =
+ rounder (-0.25); /* C2 * (C6-C2)/2 */
+-static const int32_t rounder3[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder3[] ATTR_ALIGN(8) =
+ rounder (0.087788325588); /* C3*(-C3/C4+C3+C5)/2 */
+-static const int32_t rounder5[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder5[] ATTR_ALIGN(8) =
+ rounder (-0.441341716183); /* C3*(-C5/C4+C5-C3)/2 */
+
+
+ #define declare_idct(idct,table,idct_row_head,idct_row,idct_row_tail,idct_row_mid) \
+ static inline void idct (int16_t * const block) \
+ { \
+- static const int16_t table04[] ATTR_ALIGN(16) = \
++ static/* const*/ int16_t table04[] ATTR_ALIGN(16) = \
+ table (22725, 21407, 19266, 16384, 12873, 8867, 4520); \
+- static const int16_t table17[] ATTR_ALIGN(16) = \
++ static/* const*/ int16_t table17[] ATTR_ALIGN(16) = \
+ table (31521, 29692, 26722, 22725, 17855, 12299, 6270); \
+- static const int16_t table26[] ATTR_ALIGN(16) = \
++ static/* const*/ int16_t table26[] ATTR_ALIGN(16) = \
+ table (29692, 27969, 25172, 21407, 16819, 11585, 5906); \
+- static const int16_t table35[] ATTR_ALIGN(16) = \
++ static/* const*/ int16_t table35[] ATTR_ALIGN(16) = \
+ table (26722, 25172, 22654, 19266, 15137, 10426, 5315); \
+ \
+ idct_row_head (block, 0*8, table04); \
+@@ -900,29 +899,29 @@ static inline void idct (int16_t * const
+
+ static inline void sse2_idct (int16_t * const block)
+ {
+- static const int16_t table04[] ATTR_ALIGN(16) =
++ static/* const*/ int16_t table04[] ATTR_ALIGN(16) =
+ sse2_table (22725, 21407, 19266, 16384, 12873, 8867, 4520);
+- static const int16_t table17[] ATTR_ALIGN(16) =
++ static/* const*/ int16_t table17[] ATTR_ALIGN(16) =
+ sse2_table (31521, 29692, 26722, 22725, 17855, 12299, 6270);
+- static const int16_t table26[] ATTR_ALIGN(16) =
++ static/* const*/ int16_t table26[] ATTR_ALIGN(16) =
+ sse2_table (29692, 27969, 25172, 21407, 16819, 11585, 5906);
+- static const int16_t table35[] ATTR_ALIGN(16) =
++ static/* const*/ int16_t table35[] ATTR_ALIGN(16) =
+ sse2_table (26722, 25172, 22654, 19266, 15137, 10426, 5315);
+
+- static const int32_t rounder0_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder0_128[] ATTR_ALIGN(16) =
+ rounder_sse2 ((1 << (COL_SHIFT - 1)) - 0.5);
+- static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0);
+- static const int32_t rounder1_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0);
++ static/* const*/ int32_t rounder1_128[] ATTR_ALIGN(16) =
+ rounder_sse2 (1.25683487303); /* C1*(C1/C4+C1+C7)/2 */
+- static const int32_t rounder7_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder7_128[] ATTR_ALIGN(16) =
+ rounder_sse2 (-0.25); /* C1*(C7/C4+C7-C1)/2 */
+- static const int32_t rounder2_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder2_128[] ATTR_ALIGN(16) =
+ rounder_sse2 (0.60355339059); /* C2 * (C6+C2)/2 */
+- static const int32_t rounder6_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder6_128[] ATTR_ALIGN(16) =
+ rounder_sse2 (-0.25); /* C2 * (C6-C2)/2 */
+- static const int32_t rounder3_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder3_128[] ATTR_ALIGN(16) =
+ rounder_sse2 (0.087788325588); /* C3*(-C3/C4+C3+C5)/2 */
+- static const int32_t rounder5_128[] ATTR_ALIGN(16) =
++ static/* const*/ int32_t rounder5_128[] ATTR_ALIGN(16) =
+ rounder_sse2 (-0.441341716183); /* C3*(-C5/C4+C5-C3)/2 */
+
+ #if defined(__x86_64__)
diff --git a/extra/libmsn/PKGBUILD b/extra/libmsn/PKGBUILD
new file mode 100644
index 000000000..5d2d00ee5
--- /dev/null
+++ b/extra/libmsn/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144375 2011-12-05 12:44:46Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Charly Ghislain <charlyghislain@gmail.com>
+
+pkgname=libmsn
+pkgver=4.2.1
+pkgrel=1
+pkgdesc="A reusable, open-source, fully documented library for connecting to Microsoft's MSN"
+url="http://sourceforge.net/projects/libmsn/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('openssl')
+makedepends=('cmake')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('38e46e589720eefd71f92b6b76993bf0')
+
+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/libmspack/PKGBUILD b/extra/libmspack/PKGBUILD
new file mode 100644
index 000000000..c4391f5d0
--- /dev/null
+++ b/extra/libmspack/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 136796 2011-09-01 15:19:12Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=libmspack
+pkgver=0.3alpha
+pkgrel=1
+pkgdesc="A library for Microsoft compression formats"
+arch=('i686' 'x86_64' 'mips64el')
+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=('08d08455b6d58ea649b35febd23f6386')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/extra/libmtp/PKGBUILD b/extra/libmtp/PKGBUILD
new file mode 100644
index 000000000..78018661f
--- /dev/null
+++ b/extra/libmtp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 127351 2011-06-13 11:09:19Z stephane $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+
+pkgname=libmtp
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="library implementation of the Media Transfer Protocol"
+arch=("i686" "x86_64" 'mips64el')
+url="http://libmtp.sourceforge.net"
+license=('LGPL')
+depends=('libusb-compat')
+makedepends=('doxygen')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('fd7b293436528f4c780a9da6e5cc5398')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-udev-rules=52-libmtp.rules
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libmusicbrainz3/PKGBUILD b/extra/libmusicbrainz3/PKGBUILD
new file mode 100644
index 000000000..1ac244274
--- /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' 'mips64el')
+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/libmygpo-qt/PKGBUILD b/extra/libmygpo-qt/PKGBUILD
new file mode 100644
index 000000000..682d26792
--- /dev/null
+++ b/extra/libmygpo-qt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142810 2011-11-15 16:35:49Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libmygpo-qt
+pkgver=1.0.5
+pkgrel=1
+pkgdesc="A C++/Qt client library for gpodder.net"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://wiki.gpodder.org/wiki/Libmygpo-qt"
+license=('LGPL2.1')
+depends=('qjson')
+makedepends=('cmake')
+source=("http://stefan.derkits.at/files/${pkgname}/${pkgname}.${pkgver}.tar.gz")
+md5sums=('37af04b1e944f982e35b69c04b5d1b0f')
+
+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/libmythes/PKGBUILD b/extra/libmythes/PKGBUILD
new file mode 100644
index 000000000..8a86b2f38
--- /dev/null
+++ b/extra/libmythes/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144883 2011-12-08 21:25:55Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=libmythes
+pkgver=1.2.1
+pkgrel=2
+epoch=1
+pkgdesc="a simple thesaurus"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://hunspell.sourceforge.net/ "
+license=('custom')
+depends=('glibc' 'perl')
+makedepends=('hunspell')
+options=('!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..3bf7490a8
--- /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' 'mips64el')
+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..b0abc4d66
--- /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.1.1
+pkgrel=1
+pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://nice.freedesktop.org"
+license=('LGPL')
+depends=('gstreamer0.10')
+options=('!libtool')
+source=(http://nice.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('0906c3523eb78cb3caad170cc75af4b0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libnotify/PKGBUILD b/extra/libnotify/PKGBUILD
new file mode 100644
index 000000000..cde614593
--- /dev/null
+++ b/extra/libnotify/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 136391 2011-08-28 17:53:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libnotify
+pkgver=0.7.4
+pkgrel=1
+pkgdesc="Desktop notification library"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('e3c58345112672c2cbb05a67512ff6c7028892df7a34746e2162fe76d9877019')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libnova/PKGBUILD b/extra/libnova/PKGBUILD
new file mode 100644
index 000000000..7824a8b06
--- /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' 'mips64el')
+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/liboauth/PKGBUILD b/extra/liboauth/PKGBUILD
new file mode 100644
index 000000000..a316de674
--- /dev/null
+++ b/extra/liboauth/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 139509 2011-10-02 17:00:45Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Martin Häger <martin.haeger@gmail.com>
+
+pkgname=liboauth
+pkgver=0.9.4
+pkgrel=2
+pkgdesc='C library implementing OAuth Core RFC 5849'
+arch=(mips64el)
+url='http://liboauth.sourceforge.net'
+license=('MIT')
+depends=('curl')
+options=('!libtool')
+source=("$url/pool/$pkgname-$pkgver.tar.gz")
+sha256sums=('77e372359caca5375fbcc63ac638f349e6c93c98d291992d8ebb9bb8291ca549')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING.MIT "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/extra/libofa/PKGBUILD b/extra/libofa/PKGBUILD
new file mode 100644
index 000000000..b41468114
--- /dev/null
+++ b/extra/libofa/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 122092 2011-05-02 06:40:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libofa
+pkgver=0.9.3
+pkgrel=3
+pkgdesc="An open-source audio fingerprint by MusicIP"
+arch=(i686 x86_64 'mips64el')
+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 -p0 -i ${srcdir}/gcc-4.patch
+ patch -p1 -i ${srcdir}/gcc4.3.patch
+ patch -p1 -i ${srcdir}/gcc4.5.patch
+ ./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/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..2d8983d95
--- /dev/null
+++ b/extra/libofx/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 127929 2011-06-20 00:18:32Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgbase=libofx
+pkgname=('libofx' 'libofx-doc')
+pkgver=0.9.4
+pkgrel=1
+pkgdesc="API for the OFX banking standard"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libofx.sourceforge.net"
+license=('GPL')
+depends=('opensp' 'curl' 'libxml++')
+checkdepends=('gnupg')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f2419bf8d01c0cff74efe7084e0a26c5')
+sha1sums=('7370245c011ac4ea9313ba24a88c70e0eb9c317b')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ make check
+}
+
+package_libofx() {
+ options=('!libtool' '!docs')
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+package_libofx-doc() {
+ pkgdesc="Documention of the OFX banking standard API"
+ depends=()
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install-docDATA
+ make -C doc DESTDIR="$pkgdir" install
+}
diff --git a/extra/libogg/PKGBUILD b/extra/libogg/PKGBUILD
new file mode 100644
index 000000000..13274421d
--- /dev/null
+++ b/extra/libogg/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 134991 2011-08-09 20:12:08Z eric $
+# Maintainer:
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=libogg
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="Ogg bitstream and framing library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('84a35715170f2cd4c77a4448772b95d5'
+ 'a4d786b1b1955cb85b64fd16cbbee3f9')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+
+# install BSD license
+ install -Dm644 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..d227719e6
--- /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' 'mips64el')
+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..ce429f367
--- /dev/null
+++ b/extra/liborigin2/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 144053 2011-12-02 20:54:26Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgbase=liborigin2
+pkgname=('liborigin2' 'liborigin2-docs')
+pkgver=20100913
+pkgrel=6
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ '966ef25cb42d192a694a71eedf484c1c')
+
+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=('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..64b708065
--- /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' 'mips64el')
+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..853b2751e
--- /dev/null
+++ b/extra/libotr/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 121299 2011-04-30 13:17:51Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Bug <Bug2000@gmail.com>
+
+pkgname=libotr
+pkgver=3.2.0
+pkgrel=2
+pkgdesc='Off-the-Record Messaging Library and Toolkit'
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libots/PKGBUILD b/extra/libots/PKGBUILD
new file mode 100644
index 000000000..1caa0736a
--- /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' 'mips64el')
+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..9d938f483
--- /dev/null
+++ b/extra/libpano13/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 126350 2011-06-05 00:52:37Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libpano13
+pkgver=2.9.18
+pkgrel=1
+pkgdesc="Basic library to calculate panoramical pictures - core functions of the panotools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://panotools.sourceforge.net/"
+license=('GPL2')
+depends=('libpng' 'libtiff')
+makedepends=('openjdk6')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/panotools/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9c3a4fce8b6f1d79e395896ce5d8776e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-java=${JAVA_HOME}
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libpciaccess/PKGBUILD b/extra/libpciaccess/PKGBUILD
new file mode 100644
index 000000000..0ec358dd2
--- /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 'mips64el')
+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/libpeas/PKGBUILD b/extra/libpeas/PKGBUILD
new file mode 100644
index 000000000..5b5b2be1e
--- /dev/null
+++ b/extra/libpeas/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 139383 2011-10-01 19:00:04Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=libpeas
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A GObject-based plugins engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('gtk3' 'hicolor-icon-theme' 'gobject-introspection')
+makedepends=('gtk-doc' 'intltool' 'vala' 'python2-gobject' 'gjs' 'seed')
+optdepends=('gjs: gobject-based plugin engine - gjs runtime loader'
+ 'seed: gbject-based plugin engine - seed runtime loader')
+options=('!libtool')
+install=libpeas.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.xz)
+sha256sums=('871868ff44352367a4b4602352f60fd20eb99794ade454f3b120d87c1560f31c')
+
+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/extra/libpeas/libpeas.install b/extra/libpeas/libpeas.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/extra/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/extra/libplist/PKGBUILD b/extra/libplist/PKGBUILD
new file mode 100644
index 000000000..8032f5d86
--- /dev/null
+++ b/extra/libplist/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 120143 2011-04-20 11:59:42Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=libplist
+pkgver=1.4
+pkgrel=1.1
+pkgdesc="A library to handle Apple Property List format whereas it's binary or XML"
+url="http://libimobiledevice.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2' 'LGPL2.1')
+depends=('glib2' 'libxml2' 'python2')
+makedepends=('cmake' 'swig')
+source=(http://www.libimobiledevice.org/downloads/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2ad226abe1131a72e7ecbb2b921ad92f54b8e787c2281c89b00145b519479a71')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../"${pkgname}-${pkgver}" \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libpng/PKGBUILD b/extra/libpng/PKGBUILD
new file mode 100644
index 000000000..45de74b8c
--- /dev/null
+++ b/extra/libpng/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 130820 2011-07-08 07:28:34Z andyrtr $
+# 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.8
+_apngver=1.4.7
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('zlib' 'sh')
+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=('2ce595d571f2b06a9403ed5bcfa4ecbd'
+ '4842a4cba3487a64084ca0a7417ff1c7')
+
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..7c0b48819
--- /dev/null
+++ b/extra/libproxy/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 24494 2009-01-17 20:42:01Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libproxy
+pkgver=0.4.7
+pkgrel=1
+pkgdesc="A library that provides automatic proxy configuration management"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('gcc-libs')
+optdepends=('kdelibs: KDE configuration module'
+ 'networkmanager: NetworkManager configuration module'
+ 'perl: Perl bindings'
+ 'python2: Python bindings')
+makedepends=('cmake' 'networkmanager' 'automoc4' 'python2' 'kdelibs' 'perl')
+url="http://libproxy.googlecode.com"
+source=(http://libproxy.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('509e03a488a61cd62bfbaf3ab6a2a7a5')
+
+build() {
+ cd "${srcdir}"
+ 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=Release \
+ -WITH_WEBKIT=OFF \
+ -WITH_MOZJS=OFF \
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
+ -DCMAKE_C_FLAGS="${CFLAGS}" \
+ ../${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libpst/PKGBUILD b/extra/libpst/PKGBUILD
new file mode 100644
index 000000000..b9d706267
--- /dev/null
+++ b/extra/libpst/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 144055 2011-12-02 20:54:29Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libpst
+pkgname=('libpst' 'libpst-docs')
+pkgver=0.6.53
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+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)
+sha1sums=('b8e5972429091fd0e915fd3eb695b68adbe1f7cc')
+
+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..d34fc9d6c
--- /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' 'mips64el')
+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/libqzeitgeist/PKGBUILD b/extra/libqzeitgeist/PKGBUILD
new file mode 100644
index 000000000..c2aca401d
--- /dev/null
+++ b/extra/libqzeitgeist/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 141345 2011-10-29 16:06:26Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libqzeitgeist
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="A Qt interface to the Zeitgeist event tracking system"
+url="https://projects.kde.org/projects/kdesupport/libqzeitgeist"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('qt')
+makedepends=('cmake' 'automoc4' 'python2' 'zeitgeist')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('97bdea6a1865db7d5f29c93e3a492f24')
+
+build() {
+ cd "${srcdir}"
+
+ # Fix python2 path
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ ${pkgname}-${pkgver}/scripts/onto2cpp.py
+
+ 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/libraw1394/PKGBUILD b/extra/libraw1394/PKGBUILD
new file mode 100644
index 000000000..3f61231e3
--- /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' 'mips64el')
+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)
+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/PKGBUILD b/extra/libreoffice/PKGBUILD
new file mode 100644
index 000000000..aea20a745
--- /dev/null
+++ b/extra/libreoffice/PKGBUILD
@@ -0,0 +1,912 @@
+# $Id: PKGBUILD 142694 2011-11-12 21:17:53Z ibiru $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgbase="libreoffice"
+pkgname=('libreoffice-common'
+ 'libreoffice-base'
+ 'libreoffice-calc'
+ 'libreoffice-draw'
+ 'libreoffice-gnome'
+ 'libreoffice-impress'
+ 'libreoffice-kde4'
+ 'libreoffice-math'
+ 'libreoffice-writer'
+ 'libreoffice-en-US'
+ #'libreoffice-extension-barcode' #
+ 'libreoffice-extension-hunart'
+ #'libreoffice-extension-lightproof' # no source integration
+ #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity
+ 'libreoffice-extension-ct2n'
+ 'libreoffice-extension-numbertext'
+ 'libreoffice-extension-oooblogger'
+ 'libreoffice-extension-pdfimport'
+ 'libreoffice-extension-presentation-minimizer'
+ 'libreoffice-extension-scripting-python'
+ 'libreoffice-extension-typo')
+[ "${CARCH}" != "mips64el" ] && pkgname+=('libreoffice-sdk' \
+ 'libreoffice-sdk-doc' \
+ 'libreoffice-extension-diagram' \
+ 'libreoffice-extension-google-docs' \
+ 'libreoffice-extension-nlpsolver' \
+ 'libreoffice-extension-presenter-screen' \
+ 'libreoffice-extension-report-builder' \
+ 'libreoffice-extension-scripting-beanshell' \
+ 'libreoffice-extension-scripting-javascript' \
+ 'libreoffice-extension-validator' \
+ 'libreoffice-extension-watch-window' \
+ 'libreoffice-extension-wiki-publisher')
+_LOver=3.4.4.2
+pkgver=3.4.4
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+#_LO_tree="3.4"
+_OFFICEUPD="340"
+license=('LGPL3')
+url="http://www.libreoffice.org/"
+makedepends=( # makedepends
+ 'sane' 'perl-archive-zip' 'zip' 'p7zip-libre' 'xulrunner' 'unixodbc' 'boost'
+ 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient'
+ 'vigra' 'libldap' 'libmythes' 'libwpg' 'imagemagick'
+ 'gstreamer0.10-base'
+ #'saxon' - currently broken
+ # the depends from libreoffice main pkg
+ "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'dbus-glib' "icu>=4.6" 'libxslt'
+ 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' # 'graphite'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' # keep gtk2 for install script
+ 'ttf-dejavu') # to satisfy regression tests
+
+# http://download.documentfoundation.org/mirrors/all.html
+# http://wiki.documentfoundation.org/Mirrors
+
+[ "${CARCH}" != "mips64el" ] && makedepends+=('hsqldb-java' 'apache-ant' 'beanshell' 'junit' 'mesa' 'java-environment' 'libgl' 'lucene')
+
+#_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
+_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
+_additional_source_url="http://hg.services.openoffice.org/binaries"
+source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations
+ ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
+ ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
+ ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+ ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
+ ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
+ ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
+ ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
+ ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-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}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
+ ${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
+ ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
+ ${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
+ ${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
+ ${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
+ ${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
+ ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
+ ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
+ ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
+ ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
+ ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
+ ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ http://download.go-oo.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
+ http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
+ http://download.go-oo.org/src/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
+ buildfix_boost.diff
+ buildfix_ct2n.diff
+ vbahelper.visibility.patch
+ scp2-more-reasonable-file-access-rights.diff
+ oracle-recognition.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=549e54fb2f8113502743c443d6deadfe648dede1
+ RemovetheoslSecuritygetHomeDircheck.diff::http://cgit.freedesktop.org/libreoffice/ure/patch/?id=bc9b86940a707e9e2e1076f2954f38075398b5d7)
+noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
+ ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
+ 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+ 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
+ fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
+ 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
+ 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
+ a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
+ 3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
+ 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
+ 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
+ af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
+ eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
+ 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
+ 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
+ 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
+ f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
+ 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
+ d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
+ 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
+ ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
+ db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
+ ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
+ 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ 7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
+ 41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
+ 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
+ bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
+ 23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
+ b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
+ b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
+ 9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
+ dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
+ b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
+ 90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2)
+md5sums=('be8b13f83045f0a53b69fe76d6d72e9c'
+ 'db423cbb1cee416b718138044a5de930'
+ '31944d2139d6d81ef1131bd513530621'
+ 'f447fd4ffe54aab9561c6caa262754b3'
+ '97fe698737a35c8803712d4e08007620'
+ 'acff44d97a5106d9b53c747dabeb0800'
+ '620d43a0b9f36388f423e030513864ef'
+ '4c5b1ed870363eca2602f0cb42a8415a'
+ '702c6ca31525d7d2c2ded86c77b0bd2e'
+ 'ac9b3acf78f43c1395d0e2dedc860f30'
+ 'd8d2c41cb86bc8ba2a07e001a5317abb'
+ '4d4af2fc06dbe33ec2307df812f7abe1'
+ '1398a566eb76598bf3005e187fc2386c'
+ 'dd962d2d57f88b9e07e665adad3cabbc'
+ 'fff0fc9cd16ef1eb2b2ed5d0a6e77f95'
+ 'e54d41d39e63d04ac4a88ce79e37af98'
+ 'dbc71403040f447683bf55d1f0be3cad'
+ '69ce5b72f44b008d0e78767c5b1dbf39'
+ '34a2e8ae6b81a042966740263c53e135'
+ '1f24ab1d39f4a51faf22244c94a6203f'
+ '35c94d2df8893241173de1d16b6034c0'
+ '798b2ffdc8bcfe7bca2cf92b62caf685'
+ 'fdb27bfe2dbe2e7b57ae194d9bf36bab'
+ 'ada24d37d8d638b3d8a9985e80bc2978'
+ '2a177023f9ea8ec8bd00837605c5df1b'
+ 'a7983f859eafb2677d7ff386a023bc40'
+ '3c219630e4302863a9a83d0efde889db'
+ '2ae988b339daec234019a7066f96733e'
+ '2c9b0f83ed5890af02c0df1c1776f39b'
+ 'af3c3acf618de6108d65fcdc92b492e1'
+ 'eeb2c7ddf0d302fba4bfc6e97eac9624'
+ '39bb3fcea1514f1369fcfc87542390fd'
+ '3404ab6b1792ae5f16bbd603bd1e1d03'
+ '97b2d4dba862397f446b217e2b623e71'
+ 'f94d9870737518e3b597f9265f4e9803'
+ '8ce2fcd72becf06c41f7201d15373ed9'
+ 'd8bd5eed178db6e2b18eeed243f85aa8'
+ '3bdf40c0d199af31923e900d082ca2dd'
+ 'ace6ab49184e329db254e454a010f56d'
+ 'db60e4fde8dd6d6807523deb71ee34dc'
+ 'ba2930200c9f019c2d93a8c88c651a0f'
+ '18f577b374d60b3c760a3a3350407632'
+ '0ff7d225d087793c8c2c680d77aac3e7'
+ '185d60944ea767075d27247c3162b3bc'
+ '90401bca927835b6fbae4a707ed187c8'
+ '451ccf439a36a568653b024534669971'
+ '7e7efc5d4a03126bb9ae3ae9aa2c4e87'
+ '41c9b65ad60af4b3255bbecdfef11736'
+ 'bbdd5639ada63e3130761daaecae1a10'
+ '23bd75552206dfcd8fd4e29137dcac84'
+ 'b8cbca7b3363e6ca2d02bc0ba2b63904'
+ 'b632bdd25649cc4067bcb410bae23d2b'
+ '9d60b6cfa3ef1926848710bbcd11115b'
+ 'dbaafd21de055e582d92d7d32fe9da13'
+ 'b7b2d0e04e142f26dd96119c80757d1f'
+ 'bc228237108cab7745897a9f466b6d39'
+ 'eee273f501ff45dc5f1365e78c6d57c0'
+ '43b145db28e6c0d73578ae6fd35e510d'
+ '37638431e7e40baf2e47966ebb9bc0e9'
+ '3c6c62e77c30649a3dfe73512947cc9a'
+ 'eb35d4c715e0dfc23bbc706996033829')
+
+build() {
+
+ if [ "${CARCH}" != "mips64el" ] ; then
+ unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH; unset EXTRAOPTS
+ [ -z "${JAVA_HOME}" ] && . /etc/profile.d/jdk.sh || . /etc/profile.d/openjdk6.sh
+ [ -z "${MOZ_PLUGIN_PATH}" ] && . /etc/profile.d/mozilla-common.sh
+ [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
+ extraconf="--enable-opengl --enable-ext-scripting-beanshell --with-system-lucene --with-ant-home=\"/usr/share/java/apache-ant\" --with-lucene-core-jar=/usr/share/java/lucene-core.jar --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar --with-java-target-version=1.5 --enable-odk --enable-ext-diagram --enable-ext-google-docs --enable-ext-nlpsolver --enable-ext-report-builder --enable-ext-scripting-javascript --enable-ext-validator --enable-ext-watch-window --enable-ext-wiki-publisher"
+ else
+ extraconf="--disable-opengl --without-java --without-system-lucene --without-system-hsqldb --without-system-beanshell --without-system-jfreereport --without-system-saxon --without-system-mesa-headers --without-junit"
+ fi
+
+ # move all LibO sources into one build directory
+ mkdir ${srcdir}/build && cd ${srcdir}/build
+ for i in libreoffice-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}; do #,translations
+ mv ${srcdir}/$i/* .
+ done
+# mv ${srcdir}/libreoffice-bootstrap-${_LOver}/* .
+# ./bin/unpack-sources ${srcdir}/build
+
+ # move external sources into place
+ mkdir ${srcdir}/ext_sources && cd ${srcdir}/ext_sources
+ for source in "${noextract[@]}"; do
+ ln -s ${srcdir}/$source .
+ done
+
+ cd ${srcdir}/build
+
+ # buildfixes & bugfixes
+ #patch -Np1 -i ${srcdir}/buildfix_boost.diff
+ patch -Np1 -i ${srcdir}/buildfix_ct2n.diff
+ patch -Np0 -i ${srcdir}/vbahelper.visibility.patch
+ patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff
+ patch -Np1 -i ${srcdir}/oracle-recognition.diff
+ patch -Np1 -i ${srcdir}/RemovetheoslSecuritygetHomeDircheck.diff
+ # Checks if --hash-style is accepted, not if --hash-style=both is accepted.
+ [ "${CARCH}" = "mips64el" ] && sed -i 's/--hash-style=both/--hash-style=sysv/' ${srcdir}/build/solenv/gbuild/platform/unxgcc.mk
+
+ # unset C(XX)FLAGS
+ # http://www.openoffice.org/issues/show_bug.cgi?id=103205
+# unset CFLAGS
+# unset CXXFLAGS
+
+ #use the CFLAGS but remove the LibO overridden ones
+ for i in $CFLAGS; do
+ case "$i" in
+ -O?|-pipe|-Wall|-g|-fexceptions) continue;;
+ esac
+ ARCH_FLAGS="$ARCH_FLAGS $i"
+ done
+
+ # python2 fix
+ export PYTHON=python2
+
+ # 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
+
+ # needed for 0003-distro-install-fix-en-US-only-installation.patch
+ autoconf -f
+
+ # non-SMP test build
+# export MAKEFLAGS="-j1"
+ ./configure --with-build-version="${_LOver} Parabola GNU/Linux-libre build-${pkgrel}" --with-vendor="Parabola GNU/Linux-libre" \
+ --with-unix-wrapper="libreoffice" \
+ --enable-split-app-modules \
+ --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \
+ --with-external-tar="${srcdir}/ext_sources" \
+ --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
+ --with-install-dirname="${pkgbase}" --libdir=/usr/lib --mandir=/usr/share/man \
+ --disable-verbose \
+ --with-lang="" \
+ --enable-cairo\
+ --enable-crashdump \
+ --enable-dbus \
+ --enable-evolution2\
+ --enable-gio\
+ --disable-gnome-vfs\
+ --disable-kde\
+ --enable-kde4\
+ --enable-ldap \
+ --enable-lockdown\
+ --enable-ext-barcode \
+ --enable-ext-hunart \
+ --disable-ext-lightproof \
+ --disable-ext-mysql-connector \
+ --with-system-mysql \
+ --enable-ext-ct2n \
+ --enable-ext-numbertext \
+ --enable-ext-oooblogger \
+ --enable-ext-pdfimport \
+ --enable-ext-presenter-console \
+ --enable-ext-presenter-minimizer \
+ --enable-ext-scripting-python \
+ --enable-ext-typo \
+ --without-fonts\
+ --without-afms\
+ --without-ppds\
+ --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-libwps \
+ --with-system-redland\
+ --without-system-saxon\
+ --with-system-libtextcat \
+ --with-external-libtextcat-data \
+ --with-openldap\
+ --without-system-boost\
+ --with-system-cairo\
+ --with-system-libs\
+ --with-system-mozilla\
+ --with-system-mythes\
+ --with-system-xrender-headers\
+ --with-system-headers\
+ --with-alloc=system\
+ $extraconf \
+ $EXTRAOPTS || return 1
+
+#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool
+
+#--with-servlet-api-jar=JARFILE
+# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136
+# --with-system-saxon\
+# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\
+
+ touch src.downloaded
+ #./download
+ unset MAKEFLAGS
+ ./bootstrap
+ make
+
+ # fake installation to create split file lists
+ mkdir $srcdir/fakeinstall
+ make DESTDIR=${srcdir}/fakeinstall distro-pack-install
+}
+
+#check() {
+# cd ${srcdir}/build
+# make check
+#}
+
+package_libreoffice-common() {
+
+ pkgdesc="common files for LibreOffice - a productivity suite that is compatible with other major office suites"
+ install=${pkgbase}.install
+ depends=('libreoffice-langpack' "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libxaw' "neon>=0.28.6"
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libxslt' "icu>=4.6"
+ 'redland' 'hyphen' 'gcc-libs' 'sh' 'libtextcat' #'graphite'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2') # keep gtk2 for install script
+ #'java-runtime'
+ #'saxon'
+ [ "${CARCH}" != "mips64el" ] && depends+=('libgl')
+ optdepends=('libreoffice-langpack: additional language 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'
+ 'libmythes: for use in thesaurus'
+ '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'
+ 'sane: for scanner access'
+ 'unixodbc: adds ODBC database support'
+ 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress')
+ [ "${CARCH}" != "mips64el" ] && optdepends+=('java-runtime: adds java support' \
+ 'hsqldb-java: default database format for OpenOffice.org' \
+ 'beanshell: interactive java -- good for prototyping /macros' \
+ 'lucene: full-text search engine library for Java needed in the help section')
+ backup=(etc/libreoffice/sofficerc
+ etc/libreoffice/bootstraprc
+ etc/libreoffice/psprint.conf)
+ groups=('libreoffice')
+ provides=('go-openoffice')
+ conflicts=('go-openoffice')
+ replaces=('go-openoffice' 'openoffice-base' 'libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/common_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/common_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+
+ # # remove version in menu entry and make it visible
+# sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
+# echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
+
+ # 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.4/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.4/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 {} \;
+}
+
+package_libreoffice-base() {
+ pkgdesc="GUI Spreadsheet Applicationdatabase front-end for LibreOffice. Allows creation and management of databases through a GUI."
+ depends=('libreoffice-common')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/base_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/base_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-calc() {
+ pkgdesc="Spreadsheet application for LibreOffice."
+ depends=('libreoffice-common' 'lpsolve' )
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/calc_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/calc_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-draw() {
+ pkgdesc="Drawing Application for LibreOffice."
+ depends=('libreoffice-common')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/draw_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/draw_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-gnome() {
+ pkgdesc="Plug-in for LibreOffice that enables integration into the Gnome and other gtk desktop environment."
+ depends=('libreoffice-common' 'dbus-glib')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/gnome_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/gnome_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-impress() {
+ pkgdesc="Presentation Application for LibreOffice."
+ depends=('libreoffice-common')
+ [ "${CARCH}" != "mips64el" ] && optdepends=('mesa: for the OGLTrans extension')
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/impress_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/impress_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-kde4() {
+ pkgdesc="Plug-in for LibreOffice that enables integration into the KDE4 desktop environment."
+ depends=('libreoffice-common' 'kdelibs')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/kde4_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/kde4_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-math() {
+ pkgdesc="Equation Editor Applicationfor LibreOffice."
+ depends=('libreoffice-common')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/math_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/math_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-sdk() {
+ pkgdesc="Software Development Kit for LibreOffice."
+ depends=('libreoffice-common' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/sdk_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/sdk_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+
+ # fix installation paths
+ sed -i -e "s,@OO_SDK_NAME@,libreoffice-sdk," \
+ -e "s,@OO_SDK_HOME@,/usr/lib/libreoffice/basis3.4/sdk," \
+ -e "s,@OFFICE_HOME@,/usr/lib/libreoffice," \
+ -e "s,@OFFICE_BASE_HOME@,/usr/lib/libreoffice/basis3.4," \
+ -e "s,@OO_SDK_URE_HOME@,/usr/lib/libreoffice/ure," \
+ -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \
+ -e "s,@OO_SDK_JAVA_HOME@,\$J2SDKDIR," \
+ -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \
+ -e "s,@SDK_AUTO_DEPLOYMENT@,NO," ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/setsdkenv_unix.{csh,sh}.in
+}
+
+package_libreoffice-sdk-doc() {
+ pkgdesc="Software Development Kit documentation for LibreOffice"
+ depends=('libreoffice-common' 'libreoffice-sdk')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/sdk_doc_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/sdk_doc_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+
+ #fix permissions
+ find ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/examples -type f -exec chmod -x {} \;
+}
+
+package_libreoffice-writer() {
+ pkgdesc="Word Processor Applicationfor LibreOffice."
+ depends=('libreoffice-common' 'libwpd>=0.9.2' 'libwps' 'libxml2')
+ optdepends=('libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images')
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/writer_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/writer_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-en-US() {
+ pkgdesc="English (US) language pack for LibreOffice"
+ #arch=('any')
+ provides=('openoffice-en-US' 'libreoffice-langpack')
+ replaces=(openoffice-en-US)
+ conflicts=(openoffice-en-US)
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/file-lists/lang_en_US_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/build/file-lists/lang_en_US_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
+}
+
+package_libreoffice-extension-barcode() {
+
+ pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw "
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
+ chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
+}
+
+package_libreoffice-extension-diagram() {
+
+ pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram
+}
+
+package_libreoffice-extension-google-docs() {
+
+ pkgdesc="Google Documents extension for LibreOffice"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs
+}
+
+package_libreoffice-extension-hunart() {
+
+ pkgdesc="Hungarian cross-reference toolbar extension"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart
+}
+
+#package_libreoffice-extension-lightproof() {
+
+# pkgdesc="Lightproof extension for LibreOffice"
+ #arch=('any')
+# depends=('libreoffice-common')
+# groups=('libreoffice-extensions')
+
+# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof
+#}
+
+#package_libreoffice-extension-mysql-connector() {
+
+# pkgdesc="MySQL Connector extension for LibreOffice"
+ #arch=('any')
+# depends=('libreoffice-common')
+# groups=('libreoffice-extensions')
+
+# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector
+#}
+
+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-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
+}
+
+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-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n
+}
+
+package_libreoffice-extension-numbertext() {
+
+ pkgdesc="NUMBERTEXT/MONEYTEXT extensions"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext
+}
+
+package_libreoffice-extension-oooblogger() {
+
+ pkgdesc="An extensions for blogging"
+ #arch=('any')
+ depends=('libreoffice-common' 'coreutils' 'python')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger
+}
+
+package_libreoffice-extension-pdfimport() {
+
+ pkgdesc="This extension allows you to import and modify PDF documents"
+ depends=('libreoffice-common' 'poppler')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport
+}
+
+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-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen
+}
+
+package_libreoffice-extension-presentation-minimizer() {
+
+ pkgdesc="This extension reduce the file size of the current presentation"
+ depends=('libreoffice-common' 'gcc-libs')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer
+}
+
+package_libreoffice-extension-report-builder() {
+
+ pkgdesc="This extension creates smart-looking database reports"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder
+}
+
+package_libreoffice-extension-scripting-beanshell() {
+
+ pkgdesc="LibreOffice extension - Enables support for scripts in BeanShell"
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell
+}
+
+package_libreoffice-extension-scripting-javascript() {
+
+ pkgdesc="LibreOffice extension - Enables support for scripts in JavaScript"
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript
+}
+
+package_libreoffice-extension-scripting-python() {
+
+ pkgdesc="LibreOffice extension - Enables support for scripts in Python"
+ depends=('libreoffice-common' 'python')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python
+}
+
+package_libreoffice-extension-typo() {
+
+ pkgdesc="Typography toolbar extension"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+ find ${pkgdir} -type d -exec chmod 755 {} \;
+ #chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+}
+
+package_libreoffice-extension-validator() {
+
+ pkgdesc="Validator extension for LibreOffice"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator
+}
+
+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-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
+}
+
+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-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window
+}
diff --git a/extra/libreoffice/buildfix_boost.diff b/extra/libreoffice/buildfix_boost.diff
new file mode 100644
index 000000000..d8608d0d4
--- /dev/null
+++ b/extra/libreoffice/buildfix_boost.diff
@@ -0,0 +1,40 @@
+From bae4fdbd105142cd3f317445eddc826da529a732 Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Tue, 05 Apr 2011 14:07:02 +0000
+Subject: silence some more of that annoying gcc#47679
+
+---
+diff --git a/boost/boost.gcc47679.patch b/boost/boost.gcc47679.patch
+index 1c804aa..9b33a5f 100644
+--- a/boost/boost.gcc47679.patch
++++ b/boost/boost.gcc47679.patch
+@@ -36,3 +36,26 @@
+ template <int MaxDigits>
+ inline bool allow_more_digits(std::size_t i)
+ {
++--- misc/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
+++++ misc/build/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
++@@ -31,6 +31,8 @@
++
++ #include "boost/optional/optional_fwd.hpp"
++
+++#include <string.h>
+++
++ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
++ // VC6.0 has the following bug:
++ // When a templated assignment operator exist, an implicit conversion
++@@ -114,6 +116,11 @@
++
++ public:
++
+++ aligned_storage()
+++ {
+++ memset(&dummy_, 0, sizeof(dummy_));
+++ }
+++
++ void const* address() const { return &dummy_.data[0]; }
++ void * address() { return &dummy_.data[0]; }
++ } ;
+--
+cgit v0.8.3-6-g21f6
+
diff --git a/extra/libreoffice/buildfix_ct2n.diff b/extra/libreoffice/buildfix_ct2n.diff
new file mode 100644
index 000000000..979587f79
--- /dev/null
+++ b/extra/libreoffice/buildfix_ct2n.diff
@@ -0,0 +1,17 @@
+From 90de903b28cb1884042be0eae3f8a55458c5bc29 Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Tue, 12 Apr 2011 19:35:51 +0000
+Subject: duplicate NULLs
+
+---
+diff --git a/ct2n/prj/build.lst b/ct2n/prj/build.lst
+index 91f44b7..714d926 100644
+--- a/ct2n/prj/build.lst
++++ b/ct2n/prj/build.lst
+@@ -1,3 +1,3 @@
+-ct2n ct2n : solenv NULL NULL
++ct2n ct2n : solenv NULL
+ ct2n ct2n usr1 - all ct2n_mkout NULL
+ ct2n ct2n nmake - all ct2n_ct2n NULL
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/libreoffice/fix-nobody-temp-dir.patch b/extra/libreoffice/fix-nobody-temp-dir.patch
new file mode 100644
index 000000000..a36465c05
--- /dev/null
+++ b/extra/libreoffice/fix-nobody-temp-dir.patch
@@ -0,0 +1,11 @@
+--- bridges/source/cpp_uno/shared/vtablefactory.cxx.orig 2011-11-05 19:38:58.812005183 +0100
++++ bridges/source/cpp_uno/shared/vtablefactory.cxx 2011-11-05 19:40:01.654548478 +0100
+@@ -263,7 +263,7 @@
+
+ for (int i = strDirectory.getLength() == 0 ? 1 : 0; i < 2; ++i)
+ {
+- if (!strDirectory.getLength())
++ if (strDirectory.getLength() < 2)
+ strDirectory = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/tmp" ));
+
+ strDirectory += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/.execoooXXXXXX" ));
diff --git a/extra/libreoffice/libreoffice.install b/extra/libreoffice/libreoffice.install
new file mode 100644
index 000000000..809472f89
--- /dev/null
+++ b/extra/libreoffice/libreoffice.install
@@ -0,0 +1,47 @@
+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 https://wiki.archlinux.org/index.php/LibreOffice"
+echo "-------------------------------------------------------------------"
+echo "LibreOffice has been split into several packages:"
+echo "- libreoffice-common"
+echo "- libreoffice-{base,calc,draw,impress,math,writer} - frontend applications"
+echo "- libreoffice-{gnome,kde4} - desktop integration plugins"
+echo "- libreoffice-{sdk,sdk-doc} - add-on and doc for programming using"
+echo " the LibreOffice APIs and for creating"
+echo " extensions (UNO components)."
+echo "-------------------------------------------------------------------"
+echo " * you need to install at least one libreoffice-langpack"
+echo " * you may want to pacman -Ss libreoffice-extensions"
+echo " to see what additional 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
+ if [ "`vercmp $2 3.4.2rc1`" -lt 0 ]; then
+ # important upgrade notice
+ echo "LibreOffice has been split into several packages:"
+ echo "- libreoffice-common"
+ echo "- libreoffice-{base,calc,draw,impress,math,writer} - frontend applications"
+ echo "- libreoffice-{gnome,kde4} - desktop integration plugins"
+ echo "- libreoffice-{sdk,sdk-doc} - add-on and doc for programming using"
+ echo " the LibreOffice APIs and for creating"
+ echo " extensions (UNO components)."
+ echo "Now you need to install at least one libreoffice-langpack!"
+ fi
+}
+
+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/libreoffice/scp2-more-reasonable-file-access-rights.diff b/extra/libreoffice/scp2-more-reasonable-file-access-rights.diff
new file mode 100644
index 000000000..fd61cb4ca
--- /dev/null
+++ b/extra/libreoffice/scp2-more-reasonable-file-access-rights.diff
@@ -0,0 +1,15 @@
+--- scp2/inc/macros.inc.old 2011-05-18 17:51:47.000000000 +0200
++++ scp2/inc/macros.inc 2011-07-18 19:58:27.000000000 +0200
+@@ -92,10 +92,10 @@
+ #endif
+
+ #define BIN_FILE_BODY \
+- UnixRights = 555
++ UnixRights = 755
+
+ #define TXT_FILE_BODY \
+- UnixRights = 444
++ UnixRights = 644
+
+ #define USER_FILE_BODY \
+ UnixRights = 644
diff --git a/extra/libreoffice/vbahelper.visibility.patch b/extra/libreoffice/vbahelper.visibility.patch
new file mode 100644
index 000000000..5739100d0
--- /dev/null
+++ b/extra/libreoffice/vbahelper.visibility.patch
@@ -0,0 +1,33 @@
+--- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000
++++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000
+@@ -238,7 +238,7 @@
+
+ // including a HelperInterface implementation
+ template< typename Ifc1 >
+-class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
++class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
+ {
+ typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase;
+ protected:
+--- sc/Library_vbaobj.mk
++++ sc/Library_vbaobj.mk
+@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
+ sc/source/ui/vba/vbaquerytable \
+ sc/source/ui/vba/vbarange \
+ sc/source/ui/vba/vbasheetobject \
+- sc/source/ui/vba/vbasheetobjects \
+ sc/source/ui/vba/vbastyle \
+ sc/source/ui/vba/vbastyles \
+ sc/source/ui/vba/vbatextboxshape \
+@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
+ sc/source/ui/vba/vbawsfunction \
+ ))
+
++$(eval $(call gb_Library_add_cxxobjects,vbaobj,\
++ sc/source/ui/vba/vbasheetobjects \
++ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
++))
++
+ ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
+ $(eval $(call gb_Library_set_ldflags,vbaobj,\
+ $$(LDFLAGS) \
diff --git a/extra/librsvg/PKGBUILD b/extra/librsvg/PKGBUILD
new file mode 100644
index 000000000..42c12b653
--- /dev/null
+++ b/extra/librsvg/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142891 2011-11-17 18:34:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=librsvg
+pkgver=2.34.2
+pkgrel=1
+pkgdesc="A SVG viewing library"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('gdk-pixbuf2' 'pango' 'libcroco')
+makedepends=('intltool' 'gtk2')
+optdepends=('gtk2: for rsvg-view support')
+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.xz)
+sha256sums=('5de701325b84c0a15ab6892f49ffd6471722044bfe0b350725bf420642ee4464')
+
+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
+ 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..20b70ea56
--- /dev/null
+++ b/extra/libsamplerate/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 136113 2011-08-23 03:20:21Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libsamplerate
+pkgver=0.1.8
+pkgrel=1.1
+pkgdesc="Secret Rabbit Code - aka Sample Rate Converter for audio"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1c7fb25191b4e6e3628d198a66a84f47')
+sha1sums=('e5fe82c4786be2fa33ca6bd4897db4868347fe70')
+
+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
+}
diff --git a/extra/libsexy/PKGBUILD b/extra/libsexy/PKGBUILD
new file mode 100644
index 000000000..c507f0713
--- /dev/null
+++ b/extra/libsexy/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 141654 2011-11-01 10:11:25Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libsexy
+pkgver=0.1.11
+pkgrel=3
+pkgdesc="Doing naughty things to good widgets."
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ 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..decc80456
--- /dev/null
+++ b/extra/libshout/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137685 2011-09-10 12:10:13Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+pkgname=libshout
+pkgver=2.2.2
+pkgrel=4
+epoch=1
+pkgdesc="Library for accessing a shoutcast/icecast server"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libvorbis' 'libtheora' 'speex')
+url="http://www.icecast.org/"
+options=('!libtool' '!emptydirs')
+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
+ make LDFLAGS+=-lspeex
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libsidplay/PKGBUILD b/extra/libsidplay/PKGBUILD
new file mode 100644
index 000000000..5aa4368dc
--- /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' 'mips64el')
+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..52a249faa
--- /dev/null
+++ b/extra/libsigc++/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 132743 2011-07-25 18:52:55Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=libsigc++
+pkgname=('libsigc++' 'libsigc++-docs')
+pkgver=2.2.10
+pkgrel=1
+arch=(i686 x86_64 'mips64el')
+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=('d3d810c2ad469edfb2d4db29643bef189b7613019eadbd4a72823af3c73c959c')
+
+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..030de8269
--- /dev/null
+++ b/extra/libsigsegv/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137667 2011-09-10 11:21:14Z pierre $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Johannes Weiner <hannes@saeurebad.de>
+
+pkgname=libsigsegv
+pkgver=2.6
+pkgrel=2
+arch=('x86_64' 'i686' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libsm/PKGBUILD b/extra/libsm/PKGBUILD
new file mode 100644
index 000000000..a68ea74a1
--- /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 'mips64el')
+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..d13dd6dce
--- /dev/null
+++ b/extra/libsmbios/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 144413 2011-12-05 15:46:35Z 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.28
+pkgrel=1
+pkgdesc="A library for providing access to as much BIOS information as possible"
+arch=(i686 x86_64 'mips64el')
+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=('4e167e8d108e287defc3c461f50ef159')
+
+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..3c8303ed8
--- /dev/null
+++ b/extra/libsndfile/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 133971 2011-07-31 04:15:25Z heftig $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libsndfile
+pkgver=1.0.25
+pkgrel=1
+pkgdesc="A C library for reading and writing files containing sampled sound"
+arch=('i686' 'x86_64' 'mips64el')
+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=('e2b7bb637e01022c7d20f95f9c3990a2')
+sha1sums=('e95d9fca57f7ddace9f197071cbcfb92fa16748e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-sqlite
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libsocialweb/PKGBUILD b/extra/libsocialweb/PKGBUILD
new file mode 100644
index 000000000..4d85c1103
--- /dev/null
+++ b/extra/libsocialweb/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 139385 2011-10-01 19:00:09Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=libsocialweb
+pkgver=0.25.19
+pkgrel=2
+pkgdesc="A personal social data server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'gconf' 'libsoup-gnome' 'rest' 'dbus-glib' 'libgnome-keyring'
+ 'json-glib')
+makedepends=('intltool' 'gtk-doc' 'vala' 'gobject-introspection')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.xz)
+sha256sums=('377b165fed92e1d4f6c7a2430191388633ad25421a72d640e9e60dfdf1d54625')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/libsocialweb \
+ --enable-all-services=yes \
+ --with-online=always \
+ --enable-vala-bindings
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/libsoup/PKGBUILD b/extra/libsoup/PKGBUILD
new file mode 100644
index 000000000..353bc6673
--- /dev/null
+++ b/extra/libsoup/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 140935 2011-10-20 05:43:56Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libsoup
+pkgname=('libsoup' 'libsoup-gnome')
+pkgver=2.36.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+options=('!libtool' '!emptydirs')
+sha256sums=('73722407ff5fa7fcff2dae384aa04d85e7900c0e3fed46389f1289a1409e1f65')
+
+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/extra/libspectre/PKGBUILD b/extra/libspectre/PKGBUILD
new file mode 100644
index 000000000..beac5f96b
--- /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 'mips64el')
+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..4da9183cd
--- /dev/null
+++ b/extra/libssh/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 138141 2011-09-17 12:41:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: ice-man <icemanf@gmail.com>
+# Contributor: sergeantspoon <sergeantspoon@archlinux.us>
+
+pkgname=libssh
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="Library for accessing ssh client services through C libraries"
+url="http://www.libssh.org/"
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('openssl')
+makedepends=('cmake' 'doxygen')
+source=("https://red.libssh.org/attachments/download/27/${pkgname}-${pkgver}.tar.gz")
+md5sums=('38b67c48af7a9204660a3e08f97ceba6')
+
+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..461240c0e
--- /dev/null
+++ b/extra/libstdc++5/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 137600 2011-09-10 01:24:58Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libstdc++5
+pkgver=3.3.6
+pkgrel=4
+pkgdesc="GNU Standard C++ library version 3"
+arch=('i686' 'x86_64' 'mips64el')
+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="-march=${CARCH/_/-} -O2 -pipe"
+ export CXXFLAGS="-march=${CARCH/_/-} -O2 -pipe"
+
+ cd ${srcdir}/gcc-${pkgver}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ patch -Np0 -i $srcdir/gcc-3.4.3-no_multilib_amd64.patch
+ fi
+
+ # fix build issue with recent gcc
+ sed -i "s#O_CREAT#O_CREAT, 0666#" gcc/collect2.c
+
+ # 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"
+}
+
+package() {
+ cd ${srcdir}/gcc-build
+ make DESTDIR=${pkgdir} install-target-libstdc++-v3
+
+ # 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/PKGBUILD b/extra/libstroke/PKGBUILD
new file mode 100644
index 000000000..c81b0a90f
--- /dev/null
+++ b/extra/libstroke/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 137618 2011-09-10 07:13:27Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libstroke
+pkgver=0.5.1
+pkgrel=5
+pkgdesc="A stroke (mouse gesture) translation library"
+arch=('i686' 'x86_64' 'mips64el')
+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 \
+ libstroke-0.5.1-m4_syntax.patch)
+md5sums=('51b9a4e309ac15cfcab96191eed03cb2'
+ '60bbaf355355c3c66c8015b0f7feca85'
+ '96413a77e1d39d1a3223e8eb6be8ef01'
+ '93c47eef46a0cc4011a246485c5a6620')
+sha1sums=('48bd2b98faa8681ccd97eda7a09442845dbf1b7b'
+ 'a0c3bd9e894650475ba3049b0ef3d7f9580c203d'
+ 'ee5a3635c31dba00b070a942c512cc0d53056188'
+ 'c9240937776b0572e3927e1c56d78309413c5209')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../libgstroke-Makefile.am.patch
+ patch -p1 < ../libstroke-Makefile.am.patch
+ patch -p1 < ../libstroke-0.5.1-m4_syntax.patch
+
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake --add-missing --force --copy
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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-0.5.1-m4_syntax.patch b/extra/libstroke/libstroke-0.5.1-m4_syntax.patch
new file mode 100644
index 000000000..70bb720ee
--- /dev/null
+++ b/extra/libstroke/libstroke-0.5.1-m4_syntax.patch
@@ -0,0 +1,58 @@
+--- libstroke-0.5.1/libstroke.m4 {cset 02bc4a5e-e9e6-4055-a406-5007a0ac3e55}
++++ libstroke-0.5.1/libstroke.m4 {local clone}
+@@ -26,7 +26,7 @@
+ dnl if different from name
+ dnl description (optional) used to construct help string
+ dnl
+-AC_DEFUN(smr_ARG_WITHLIB, [
++AC_DEFUN([smr_ARG_WITHLIB], [
+
+ ifelse($2, , smr_lib=[$1], smr_lib=[$2])
+
+@@ -74,7 +74,7 @@
+ dnl extra-flags (optional) flags required when compiling the
+ dnl header, typically more includes; for ex. X_CFLAGS
+ dnl
+-AC_DEFUN(smr_ARG_WITHINCLUDES, [
++AC_DEFUN([smr_ARG_WITHINCLUDES], [
+
+ AC_ARG_WITH([$1]-includes,
+ [ --with-$1-includes=DIR set directory for $1 headers],
+@@ -116,7 +116,7 @@
+ dnl x-libs (optional) extra libraries, if needed to link with lib
+ dnl x-flags (optional) extra flags, if needed to include header files
+ dnl
+-AC_DEFUN(smr_CHECK_LIB,
++AC_DEFUN([smr_CHECK_LIB],
+ [
+ ifelse($2, , smr_lib=[$1], smr_lib=[$2])
+ ifelse($5, , , smr_header=[$5])
+--- libstroke-0.5.1/libgstroke.m4 2011-09-10 02:59:55.000000000 -0400
++++ libstroke-0.5.1/libgstroke.m4 2011-09-10 03:01:14.000000000 -0400
+@@ -26,7 +26,7 @@
+ dnl if different from name
+ dnl description (optional) used to construct help string
+ dnl
+-AC_DEFUN(smr_ARG_WITHLIB, [
++AC_DEFUN([smr_ARG_WITHLIB], [
+
+ ifelse($2, , smr_lib=[$1], smr_lib=[$2])
+
+@@ -74,7 +74,7 @@
+ dnl extra-flags (optional) flags required when compiling the
+ dnl header, typically more includes; for ex. X_CFLAGS
+ dnl
+-AC_DEFUN(smr_ARG_WITHINCLUDES, [
++AC_DEFUN([smr_ARG_WITHINCLUDES], [
+
+ AC_ARG_WITH([$1]-includes,
+ [ --with-$1-includes=DIR set directory for $1 headers],
+@@ -116,7 +116,7 @@
+ dnl x-libs (optional) extra libraries, if needed to link with lib
+ dnl x-flags (optional) extra flags, if needed to include header files
+ dnl
+-AC_DEFUN(smr_CHECK_LIB,
++AC_DEFUN([smr_CHECK_LIB],
+ [
+ ifelse($2, , smr_lib=[$1], smr_lib=[$2])
+ ifelse($5, , , smr_header=[$5])
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..8a72695ee
--- /dev/null
+++ b/extra/libtasn1/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 119236 2011-04-11 12:58:31Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=libtasn1
+pkgver=2.9
+pkgrel=1.1
+pkgdesc="The ASN.1 library used in GNUTLS"
+arch=(i686 x86_64 'mips64el')
+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=('f4f4035b84550100ffeb8ad4b261dea9')
+
+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
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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/libtextcat/PKGBUILD b/extra/libtextcat/PKGBUILD
new file mode 100644
index 000000000..85e0e4459
--- /dev/null
+++ b/extra/libtextcat/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 122957 2011-05-07 14:06:48Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libtextcat
+pkgver=2.2
+pkgrel=8
+pkgdesc="Library that implements N-gram-based text categorization"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://software.wise-guys.nl/libtextcat/"
+license=('BSD')
+depends=('glibc')
+options=(!libtool)
+source=(http://software.wise-guys.nl/download/${pkgname}-${pkgver}.tar.gz
+ # from http://hg.services.openoffice.org/hg/DEV300/raw-file/tip/libtextcat/data/new_fingerprints/fpdb.conf
+ fpdb.conf
+ libtextcat-2.2-exportapi.patch
+ libtextcat-2.2-OOo.patch)
+md5sums=('128cfc86ed5953e57fe0f5ae98b62c2e'
+ 'f4fafe97d3aa184f5476e4918dba045d'
+ '4c46fcb825ec13e9f7ae3728f5f4c834'
+ '1d5f1026392365c58f7a7406e923f886')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/libtextcat-2.2-exportapi.patch
+ patch -Np1 -i ${srcdir}/libtextcat-2.2-OOo.patch
+ autoreconf -fi
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+# install -D -m644 src/textcat.h ${pkgdir}/usr/include/textcat.h
+
+ install -dm755 ${pkgdir}/usr/share/libtextcat/{LM,ShortTexts}
+ install -m644 ${srcdir}/fpdb.conf ${pkgdir}/usr/share/libtextcat
+ install -m644 langclass/conf.txt ${pkgdir}/usr/share/libtextcat
+ install -m644 langclass/LM/*.lm ${pkgdir}/usr/share/libtextcat/LM
+ install -m644 langclass/ShortTexts/*.txt ${pkgdir}/usr/share/libtextcat/ShortTexts
+
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ sed -i 's|LM|/usr/share/libtextcat/LM|' ${pkgdir}/usr/share/libtextcat/conf.txt
+}
+
diff --git a/extra/libtextcat/fpdb.conf b/extra/libtextcat/fpdb.conf
new file mode 100644
index 000000000..329184d51
--- /dev/null
+++ b/extra/libtextcat/fpdb.conf
@@ -0,0 +1,86 @@
+#
+# A sample config file for the language models
+# provided with Gertjan van Noords language guesser
+# (http://odur.let.rug.nl/~vannoord/TextCat/)
+#
+# Notes:
+# - You may consider eliminating a couple of small languages from this
+# list because they cause false positives with big languages and are
+# bad for performance. (Do you really want to recognize Drents?)
+# - Putting the most probable languages at the top of the list
+# improves performance, because this will raise the threshold for
+# likely candidates more quickly.
+#
+
+# this file have been modified (to OOo by Jocelyn MERAND joc.mer@gmail.com) to include country and encoding
+# guess strings are made as following : language-country-encoding
+
+afrikaans.lm af--utf8
+albanian.lm sq--utf8
+amharic_utf.lm am--utf8
+arabic.lm ar--utf8
+basque.lm eu--utf8
+belarus.lm be--utf8
+bosnian.lm bs--utf8
+breton.lm br--utf8
+catalan.lm ca--utf8
+chinese_simplified.lm zh-CN-utf8
+chinese_traditional.lm zh-TW-utf8
+croatian.lm hr--utf8
+czech.lm cs--utf8
+danish.lm da--utf8
+dutch.lm nl--utf8
+english.lm en--utf8
+esperanto.lm eo--utf8
+estonian.lm et--utf8
+finnish.lm fi--utf8
+french.lm fr--utf8
+frisian.lm fy--utf8
+georgian.lm ka--utf8
+german.lm de--utf8
+greek.lm el--utf8
+hebrew.lm he--utf8
+hindi.lm hi--utf8
+hungarian.lm hu--utf8
+icelandic.lm is--utf8
+indonesian.lm id--utf8
+irish_gaelic.lm ga--utf8
+italian.lm it--utf8
+japanese.lm ja--utf8
+korean.lm ko--utf8
+latin.lm la--utf8
+latvian.lm lv--utf8
+lithuanian.lm lt--utf8
+luxembourgish.lm lb--utf8
+malay.lm ms--utf8
+manx_gaelic.lm gv--utf8
+marathi.lm mr--utf8
+mongolian_cyrillic.lm mn--utf8
+nepali.lm ne--utf8
+norwegian.lm nb--utf8 # Norwegian (Bokmal)
+persian.lm fa--utf8 # Farsi
+polish.lm pl--utf8
+portuguese.lm pt-PT-utf8
+quechua.lm qu--utf8
+romanian.lm ro--utf8
+romansh.lm rm--utf8
+russian.lm ru--utf8
+sanskrit.lm sa--utf8
+scots.lm sco--utf8
+scots_gaelic.lm gd--utf8
+serbian.lm sr--utf-8
+serbian-latin.lm sh--utf-8
+slovak_ascii.lm sk-SK-utf8
+slovenian.lm sl--utf8
+spanish.lm es--utf8
+swahili.lm sw--utf8
+swedish.lm sv--utf8
+tagalog.lm tl--utf8
+tamil.lm ta--utf8
+thai.lm th--utf8
+turkish.lm tr--utf8
+ukrainian.lm uk--utf8
+vietnamese.lm vi--utf8
+welsh.lm cy--utf8
+yiddish_utf.lm yi--utf8
+zulu.lm zu--utf8
diff --git a/extra/libtextcat/libtextcat-2.2-OOo.patch b/extra/libtextcat/libtextcat-2.2-OOo.patch
new file mode 100644
index 000000000..70f9d8d23
--- /dev/null
+++ b/extra/libtextcat/libtextcat-2.2-OOo.patch
@@ -0,0 +1,634 @@
+diff -ruN libtextcat-2.2.part1/src/constants.h libtextcat-2.2/src/constants.h
+--- libtextcat-2.2.part1/src/constants.h 2007-07-25 10:46:49.000000000 +0100
++++ libtextcat-2.2/src/constants.h 2007-07-25 10:47:25.000000000 +0100
+@@ -39,6 +39,8 @@
+ */
+ #include <limits.h>
+
++#define _UTF8_
++
+ #define DESCRIPTION "out of place"
+
+ /* Reported matches are those fingerprints with a score less than best
+@@ -59,14 +61,21 @@
+ /* Maximum number of n-grams in a fingerprint */
+ #define MAXNGRAMS 400
+
+-/* Maximum size of an n-gram? */
+-#define MAXNGRAMSIZE 5
++/* Maximum number of character of an n-gram? */
++#define MAXNGRAMSYMBOL 5
++
++/* Maximum size of the string representing an n-gram (must be greater than number of symbol) */
++#ifdef _UTF8_
++#define MAXNGRAMSIZE 20
++#else
++#define MAXNGRAMSIZE MAXNGRAMSYMBOL
++#endif
+
+ /* Which characters are not acceptable in n-grams? */
+ #define INVALID(c) (isspace((int)c) || isdigit((int)c))
+
+ /* Minimum size (in characters) for accepting a document */
+-#define MINDOCSIZE 25
++#define MINDOCSIZE 6
+
+ /* Maximum penalty for missing an n-gram in fingerprint */
+ #define MAXOUTOFPLACE 400
+@@ -76,4 +85,7 @@
+
+ #define MAXSCORE INT_MAX
+
++/* where the fingerprints files are stored */
++#define DEFAULT_FINGERPRINTS_PATH ""
++
+ #endif
+diff -ruN libtextcat-2.2.part1/src/fingerprint.c libtextcat-2.2/src/fingerprint.c
+--- libtextcat-2.2.part1/src/fingerprint.c 2007-07-25 10:46:49.000000000 +0100
++++ libtextcat-2.2/src/fingerprint.c 2007-07-25 10:47:25.000000000 +0100
+@@ -63,6 +63,10 @@
+ * - put table/heap datastructure in a separate file.
+ */
+
++#ifndef _UTF8_
++#define _UTF8_
++#endif
++
+ #include "config.h"
+ #include <stdio.h>
+ #ifdef HAVE_STDLIB_H
+@@ -80,10 +84,12 @@
+ #include "wg_mempool.h"
+ #include "constants.h"
+
++#include "utf8misc.h"
+
+ #define TABLESIZE (1<<TABLEPOW)
+ #define TABLEMASK ((TABLESIZE)-1)
+
++
+ typedef struct {
+
+ sint2 rank;
+@@ -134,29 +140,14 @@
+ }
+
+
+-/* checks if n-gram lex is a prefix of key and of length len */
+-inline int issame( char *lex, char *key, int len )
+-{
+- int i;
+- for (i=0; i<len; i++) {
+- if ( key[i] != lex[i] ) {
+- return 0;
+- }
+- }
+- if ( lex[i] != 0 ) {
+- return 0;
+- }
+- return 1;
+-}
+-
+
+ /* increases frequency of ngram(p,len) */
+-static inline int increasefreq( table_t *t, char *p, int len )
+-{
+- uint4 hash = simplehash( p, len ) & TABLEMASK;
++static int increasefreq( table_t *t, char *p, int len )
++{
++ uint4 hash = simplehash( p, len ) & TABLEMASK;
+ entry_t *entry = t->table[ hash ];
+-
+- while ( entry ) {
++
++ while ( entry ) {
+ if ( issame( entry->str, p, len ) ) {
+ /*** Found it! ***/
+ entry->cnt++;
+@@ -168,7 +159,7 @@
+ }
+
+ /*** Not found, so create ***/
+- entry = wgmempool_alloc( t->pool, sizeof(entry_t) );
++ entry = (entry_t*)(wgmempool_alloc( t->pool, sizeof(entry_t) ));
+ strcpy( entry->str, p );
+ entry->cnt = 1;
+
+@@ -181,12 +172,12 @@
+ #if 0
+
+ /* looks up ngram(p,len) */
+-static entry_t *findfreq( table_t *t, char *p, int len )
+-{
+- uint4 hash = simplehash( p, len ) & TABLEMASK;
++static entry_t *findfreq( table_t *t, char *p, int len )
++{
++ uint4 hash = simplehash( p, len ) & TABLEMASK;
+ entry_t *entry = t->table[ hash ];
+-
+- while ( entry ) {
++
++ while ( entry ) {
+ if ( issame( entry->str, p, len ) ) {
+ return entry;
+ }
+@@ -219,7 +210,7 @@
+ #define GREATER(x,y) ((x).cnt > (y).cnt)
+ #define LESS(x,y) ((x).cnt < (y).cnt)
+
+-inline static void siftup( table_t *t, unsigned int child )
++static void siftup( table_t *t, unsigned int child )
+ {
+ entry_t *heap = t->heap;
+ unsigned int parent = (child-1) >> 1;
+@@ -241,7 +232,7 @@
+ }
+
+
+-inline static void siftdown( table_t *t, unsigned int heapsize, uint4 parent )
++static void siftdown( table_t *t, unsigned int heapsize, uint4 parent )
+ {
+ entry_t *heap = t->heap;
+ unsigned int child = parent*2 + 1;
+@@ -458,21 +449,27 @@
+ return dest;
+ }
+
+-
++/**
++* this function extract all n-gram from past buffer and put them into the table "t"
++* [modified] by Jocelyn Merand to accept utf-8 multi-character symbols to be used in OpenOffice
++*/
+ static void createngramtable( table_t *t, const char *buf )
+ {
+ char n[MAXNGRAMSIZE+1];
+ const char *p = buf;
+ int i;
++ int pointer = 0;
+
+ /*** Get all n-grams where 1<=n<=MAXNGRAMSIZE. Allow underscores only at borders. ***/
+- for (;;p++) {
++ while(1) {
+
+- const char *q = p;
++ const char *q = &p[pointer]; /*[modified] previously p++ above (for(;;p++)) now, it's pointer wich is increased so we have to get the new pointer on the buffer*/
+ char *m = n;
+
+ /*** First char may be an underscore ***/
+- *m++ = *q++;
++ int decay = charcopy(q, m); /*[modified] previously *q++ = *m++*/
++ q = &(p[pointer+decay]); /*[modified] the old copying method do not manage multi-character symbols*/
++ m += decay; /*[modified]*/
+ *m = '\0';
+
+ increasefreq( t, n, 1 );
+@@ -482,19 +479,22 @@
+ }
+
+ /*** Let the compiler unroll this ***/
+- for ( i=2; i<=MAXNGRAMSIZE; i++) {
++ for ( i=2; i<=MAXNGRAMSYMBOL; i++) {
+
+- *m++ = *q;
++ decay = charcopy(q, m); /*[modified] like above*/
++ m += decay;
+ *m = '\0';
+
+ increasefreq( t, n, i );
+
+ if ( *q == '_' ) break;
+- q++;
++ q += decay;
+ if ( *q == '\0' ) {
+ return;
+ }
+ }
++
++ pointer = nextcharstart(p,pointer); /*[modified] p[pointer] must point on the next start of symbol, but whith utf next start is not surely next char*/
+ }
+ return;
+ }
+diff -ruN libtextcat-2.2.part1/src/fingerprint.h.orig libtextcat-2.2/src/fingerprint.h.orig
+--- libtextcat-2.2.part1/src/fingerprint.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ libtextcat-2.2/src/fingerprint.h.orig 2007-07-25 10:47:22.000000000 +0100
+@@ -0,0 +1,55 @@
++#ifndef _FINGERPRINT_H_
++#define _FINGERPRINT_H_
++/*
++ * Copyright (C) 2003 WiseGuys Internet B.V.
++ *
++ * THE BSD LICENSE
++ *
++ * 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 WiseGuys Internet B.V. 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.
++ */
++#include "common.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++extern void *fp_Init(const char *name);
++extern void fp_Done( void *handle );
++extern int fp_Create( void *handle, const char *buffer, uint4 bufsize, uint4 maxngrams );
++extern int fp_Read( void *handle, const char *fname, int maxngrams );
++extern sint4 fp_Compare( void *cat, void *unknown, int cutoff );
++extern void fp_Show( void *handle );
++extern const char *fp_Name( void *handle );
++extern void fp_Print( void *handle, FILE *fp );
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+diff -ruN libtextcat-2.2.part1/src/textcat.c libtextcat-2.2/src/textcat.c
+--- libtextcat-2.2.part1/src/textcat.c 2007-07-25 10:46:49.000000000 +0100
++++ libtextcat-2.2/src/textcat.c 2007-07-25 10:47:25.000000000 +0100
+@@ -74,6 +74,7 @@
+ typedef struct {
+
+ void **fprint;
++ char *fprint_disable;
+ uint4 size;
+ uint4 maxsize;
+
+@@ -112,11 +113,21 @@
+ fp_Done( h->fprint[i] );
+ }
+ wg_free( h->fprint );
++ wg_free( h->fprint_disable );
+ wg_free( h );
+
+ }
+
+-extern void *textcat_Init( const char *conffile )
++/** Replaces older function */
++extern void *textcat_Init( const char *conffile ){
++ return special_textcat_Init( conffile, DEFAULT_FINGERPRINTS_PATH );
++}
++
++/**
++ * Originaly this function had only one parameter (conffile) it has been modified since OOo use
++ * Basicaly prefix is the directory path where fingerprints are stored
++ */
++extern void *special_textcat_Init( const char *conffile, const char *prefix )
+ {
+ textcat_t *h;
+ char line[1024];
+@@ -134,11 +145,13 @@
+ h->size = 0;
+ h->maxsize = 16;
+ h->fprint = (void **)wg_malloc( sizeof(void*) * h->maxsize );
++ h->fprint_disable = (char *)wg_malloc( sizeof(char*) * h->maxsize ); /*added to store the state of languages*/
+
+ while ( wg_getline( line, 1024, fp ) ) {
+ char *p;
+ char *segment[4];
+- int res;
++ char finger_print_file_name[512];
++ int res;
+
+ /*** Skip comments ***/
+ #ifdef HAVE_STRCHR
+@@ -156,17 +169,23 @@
+ /*** Ensure enough space ***/
+ if ( h->size == h->maxsize ) {
+ h->maxsize *= 2;
+- h->fprint = (void *)wg_realloc( h->fprint, sizeof(void*) * h->maxsize );
++ h->fprint = (void **)wg_realloc( h->fprint, sizeof(void*) * h->maxsize );
++ h->fprint_disable = (char *)wg_realloc( h->fprint_disable, sizeof(char*) * h->maxsize );
+ }
+
+ /*** Load data ***/
+ if ((h->fprint[ h->size ] = fp_Init( segment[1] ))==NULL) {
+ goto ERROR;
+ }
+- if ( fp_Read( h->fprint[h->size], segment[0], 400 ) == 0 ) {
++ finger_print_file_name[0] = '\0';
++ strcat(finger_print_file_name, prefix);
++ strcat(finger_print_file_name, segment[0]);
++
++ if ( fp_Read( h->fprint[h->size], finger_print_file_name, 400 ) == 0 ) {
+ textcat_Done(h);
+ goto ERROR;
+- }
++ }
++ h->fprint_disable[h->size] = 0xF0; /*0xF0 is the code for enabled languages, 0x0F is for disabled*/
+ h->size++;
+ }
+
+@@ -203,11 +222,18 @@
+ result = _TEXTCAT_RESULT_SHORT;
+ goto READY;
+ }
+-
++
+ /*** Calculate the score for each category. ***/
+ for (i=0; i<h->size; i++) {
+- int score = fp_Compare( h->fprint[i], unknown, threshold );
+- candidates[i].score = score;
++ int score;
++ if(h->fprint_disable[i] & 0x0F){ /*if this language is disabled*/
++ score = MAXSCORE;
++ }
++ else{
++ score = fp_Compare( h->fprint[i], unknown, threshold );
++ /*printf("Score for %s : %i\n", fp_Name(h->fprint[i]), score);*/
++ }
++ candidates[i].score = score;
+ candidates[i].name = fp_Name( h->fprint[i] );
+ if ( score < minscore ) {
+ minscore = score;
+diff -ruN libtextcat-2.2.part1/src/textcat.h libtextcat-2.2/src/textcat.h
+--- libtextcat-2.2.part1/src/textcat.h 2007-07-25 10:46:49.000000000 +0100
++++ libtextcat-2.2/src/textcat.h 2007-07-25 10:48:18.000000000 +0100
+@@ -55,10 +54,19 @@
+ * Returns: handle on success, NULL on error. (At the moment, the
+ * only way errors can occur, is when the library cannot read the
+ * conffile, or one of the fingerprint files listed in it.)
++ *
++ * Replace older function (and has exacly the same behaviour)
++ * see below
+ */
+ extern void *textcat_Init( const char *conffile );
+
+ /**
++ * Originaly this function had only one parameter (conffile) it has been modified since OOo must be able to load alternativ DB
++ * Basicaly prefix is the directory path where fingerprints are stored
++ */
++extern void *special_textcat_Init( const char *conffile, const char *prefix );
++
++/**
+ * textcat_Done() - Free up resources for handle
+ */
+ extern void textcat_Done( void *handle );
+diff -ruN libtextcat-2.2.part1/src/utf8misc.c libtextcat-2.2/src/utf8misc.c
+--- libtextcat-2.2.part1/src/utf8misc.c 1970-01-01 01:00:00.000000000 +0100
++++ libtextcat-2.2/src/utf8misc.c 2007-07-25 10:48:57.000000000 +0100
+@@ -0,0 +1,132 @@
++/***************************************************************************
++ * Copyright (C) 2006 by Jocelyn Merand *
++ * joc.mer@gmail.com *
++ * *
++ * THE BSD LICENSE
++ *
++ * 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 WiseGuys Internet B.V. 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.
++ ***************************************************************************/
++
++#ifndef _UTF8_MISC_H_
++#include "utf8misc.h"
++#endif
++
++
++int nextcharstart(const char *str, int position){
++ int pointer = position;
++
++ if(str[pointer] & ESCAPE_MASK){ /*if the first bit of the current char is 1*/
++
++ /*then str[pointer] is an escape character*/
++
++ char escape_char = ((str[pointer] & WEIGHT_MASK) << 1); /*and we use it to count (by bit translation) following characters (only the weightest part)*/
++
++ while(escape_char & ESCAPE_MASK && str[pointer]){/*every step, we move the byte of 1 bit left, when first bit is 0, it's finished*/
++ escape_char = escape_char <<1;
++ ++pointer;
++ }
++ }
++ if(str[pointer]){ /*finaly, if we are not on the \0 character, we jump to the next character*/
++ ++pointer;
++ }
++ return pointer;
++}
++
++
++int charcopy(const char *str, char *dest){
++
++ int pointer = 0;
++ if(str[pointer] & ESCAPE_MASK){ /*if the first bit of the current char is 1*/
++
++ /*then str[pointer] is an escape character*/
++
++ char escape_char = ((str[pointer] & WEIGHT_MASK) << 1); /*and we use it to count following characters (only the weightest part)*/
++
++ while(escape_char & ESCAPE_MASK && str[pointer]){ /*every step, we move the byte of 1 bit left, when first bit is 0, it's finished*/
++ dest[pointer] = str[pointer];
++ escape_char = escape_char <<1;
++ ++pointer;
++ }
++ }
++ if(str[pointer]){
++ dest[pointer] = str[pointer];
++ ++pointer;
++ }
++
++ return pointer;
++}
++
++
++int issame( char *lex, char *key, int len )
++{
++ /*printf("[%s] prefix of [%s] with length %i", lex, key, len);*/
++ int char_counter = 0;
++ int pointer = 0;
++ while(char_counter < len) {
++
++ if(key[pointer] & ESCAPE_MASK){ /*if the first bit of the current char is 1*/
++
++ /*then key[pointer] is an escap character*/
++
++ char escape_char = ((key[pointer] & WEIGHT_MASK) << 1); /*and we use it to count (only the weightest part)*/
++
++ while(escape_char & ESCAPE_MASK && key[pointer] == lex[pointer] ){
++ escape_char = escape_char <<1;
++ ++pointer;
++ }
++ }
++ ++char_counter; /*and we are on a new utf8 character*/
++ if ( key[pointer] != lex[pointer] ) {
++ return 0;
++ /*printf(" NO\n", lex, key, len);*/
++ }
++ ++pointer;
++ }
++ if ( lex[pointer] != '\0' ) {
++ return 0;
++ /*printf(" NO\n");*/
++ }
++
++ /*printf(" YES\n");*/
++
++ return 1;
++}
++
++
++extern int utfstrlen(const char* str){
++ int char_counter = 0;
++ int pointer = 0;
++ while(str[pointer]) {
++ pointer = nextcharstart(str, pointer);
++
++ ++char_counter; /*and we are on a new utf8 character*/
++ }
++ return char_counter;
++}
++
+diff -ruN libtextcat-2.2.part1/src/utf8misc.h libtextcat-2.2/src/utf8misc.h
+--- libtextcat-2.2.part1/src/utf8misc.h 1970-01-01 01:00:00.000000000 +0100
++++ libtextcat-2.2/src/utf8misc.h 2007-07-25 10:48:57.000000000 +0100
+@@ -0,0 +1,88 @@
++/***************************************************************************
++ * Copyright (C) 2006 by Jocelyn Merand *
++ * joc.mer@gmail.com *
++ * *
++ * THE BSD LICENSE
++ *
++ * 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 WiseGuys Internet B.V. 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.
++ ***************************************************************************/
++
++#ifndef _UTF8_MISC_H_
++#define _UTF8_MISC_H_
++
++/**
++ * These variables are used in character processing functions
++ * These have been added to manage utf-8 symbols, particularly escape chars
++ */
++#ifdef _UTF8_
++#define ESCAPE_MASK 0x80
++#define WEIGHT_MASK 0xF0
++#else
++#define ESCAPE_MASK 0xFF
++#define WEIGHT_MASK 0x00
++#endif
++
++
++/*
++ * Is used to jump to the next start of char
++ * of course it's only usefull when encoding is utf-8
++ * This function have been added by Jocelyn Merand to use libtextcat in OOo
++ */
++int nextcharstart(const char *str, int position);
++
++
++/*Copy the char in str to dest
++ * of course it's only usefull when encoding is utf8 and the symbol is encoded with more than 1 char
++ * return the number of char jumped
++ * This function have been added by Jocelyn Merand to use libtextcat in OOo
++ */
++int charcopy(const char *str, char *dest);
++
++
++/* checks if n-gram lex is a prefix of key and of length len
++* if _UTF8_ is defined, it uses escap characters and len is not realy the length of lex
++* in this case, len is the number of utf-8 char strlen("€") == 3 but len == 1
++*/
++int issame( char *lex, char *key, int len );
++
++
++/* Counts the number of characters
++* if _UTF8_ is defined, it uses escap characters and the result is not realy the length of str
++* in this case, the result is the number of utf-8 char strlen("€") == 3 but utfstrlen("€") == 1
++*/
++#ifdef __cplusplus
++extern "C" {
++#endif
++extern int utfstrlen(const char* str);
++#ifdef __cplusplus
++}
++#endif
++
++#endif
++
+--- libtextcat-2.2.part2/src/Makefile.am 2007-07-25 10:55:02.000000000 +0100
++++ libtextcat-2.2/src/Makefile.am 2007-07-25 10:55:52.000000000 +0100
+@@ -12,11 +12,11 @@
+
+ libtextcat_includedir = $(includedir)/libtextcat
+ libtextcat_include_HEADERS = \
+- common.h constants.h fingerprint.h textcat.h
++ common.h constants.h fingerprint.h textcat.h utf8misc.h
+
+ lib_LTLIBRARIES = libtextcat.la
+ libtextcat_la_SOURCES = \
+- common.c fingerprint.c textcat.c wg_mempool.c
++ common.c fingerprint.c textcat.c wg_mempool.c utf8misc.c
+
+ bin_PROGRAMS = createfp
+ createfp_SOURCES = createfp.c
diff --git a/extra/libtextcat/libtextcat-2.2-exportapi.patch b/extra/libtextcat/libtextcat-2.2-exportapi.patch
new file mode 100644
index 000000000..acf84e099
--- /dev/null
+++ b/extra/libtextcat/libtextcat-2.2-exportapi.patch
@@ -0,0 +1,305 @@
+diff -ruN libtextcat-2.2.orig/src/common.c libtextcat-2.2/src/common.c
+--- libtextcat-2.2.orig/src/common.c 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/common.c 2007-06-27 17:45:16.000000000 +0100
+@@ -45,7 +45,7 @@
+ #endif
+ #include <stdarg.h>
+ #include <ctype.h>
+-#include "common.h"
++#include "common_impl.h"
+
+ extern void wgmem_error( const char *fmt, ... )
+ {
+@@ -55,8 +55,6 @@
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+-
+- exit(-1);
+ }
+
+
+diff -ruN libtextcat-2.2.orig/src/common_impl.h libtextcat-2.2/src/common_impl.h
+--- libtextcat-2.2.orig/src/common_impl.h 1970-01-01 01:00:00.000000000 +0100
++++ libtextcat-2.2/src/common_impl.h 2007-06-27 17:45:16.000000000 +0100
+@@ -0,0 +1,66 @@
++#ifndef _COMMON_IMPL_H_
++#define _COMMON_IMPL_H_
++/**
++ * common_impl.h -- a mixed bag of helper functions
++ *
++ * Copyright (C) 2003 WiseGuys Internet B.V.
++ *
++ * THE BSD LICENSE
++ *
++ * 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 WiseGuys Internet B.V. 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.
++ */
++
++#include "config.h"
++#ifndef HAVE_MALLOC
++#error "This library needs a GNU like malloc to compile. 'configure' says there isn't one."
++#endif
++#ifndef HAVE_REALLOC
++#error "This library needs a GNU like realloc to compile. 'configure' says there isn't one."
++#endif
++#ifndef HAVE_STRDUP
++#error "This library needs a GNU like strdup to compile. 'configure' says there isn't one."
++#endif
++#ifdef HAVE_INTTYPES_H
++#include <inttypes.h>
++#else
++#ifdef HAVE_STDINT_H
++#include <stdint.h>
++#endif
++#endif
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#include "common.h"
++
++#define WGMIN(x,y) ((x)<=(y)?(x):(y))
++#define WGMAX(x,y) ((x)<=(y)?(y):(x))
++#define __STR__(x) #x
++#define WGSTR(x) __STR__(x)
++
++#endif
+diff -ruN libtextcat-2.2.orig/src/createfp.c libtextcat-2.2/src/createfp.c
+--- libtextcat-2.2.orig/src/createfp.c 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/createfp.c 2007-06-27 17:45:16.000000000 +0100
+@@ -44,7 +44,7 @@
+ #endif
+
+ #include "fingerprint.h"
+-#include "common.h"
++#include "common_impl.h"
+
+ #define BLOCKSIZE 4096
+
+diff -ruN libtextcat-2.2.orig/src/fingerprint.c libtextcat-2.2/src/fingerprint.c
+--- libtextcat-2.2.orig/src/fingerprint.c 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/fingerprint.c 2007-06-27 17:45:16.000000000 +0100
+@@ -76,7 +76,7 @@
+ #endif
+ #include <ctype.h>
+
+-#include "common.h"
++#include "common_impl.h"
+ #include "wg_mempool.h"
+ #include "constants.h"
+
+diff -ruN libtextcat-2.2.orig/src/Makefile.am libtextcat-2.2/src/Makefile.am
+--- libtextcat-2.2.orig/src/Makefile.am 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/Makefile.am 2007-06-27 17:47:40.000000000 +0100
+@@ -8,7 +8,11 @@
+ AM_LDFLAGS = -g
+
+ noinst_HEADERS = \
+- common.h constants.h fingerprint.h textcat.h wg_mempool.h
++ common_impl.h wg_mempool.h
++
++libtextcat_includedir = $(includedir)/libtextcat
++libtextcat_include_HEADERS = \
++ common.h constants.h fingerprint.h textcat.h
+
+ lib_LTLIBRARIES = libtextcat.la
+ libtextcat_la_SOURCES = \
+diff -ruN libtextcat-2.2.orig/src/testtextcat.c libtextcat-2.2/src/testtextcat.c
+--- libtextcat-2.2.orig/src/testtextcat.c 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/testtextcat.c 2007-06-27 17:45:16.000000000 +0100
+@@ -47,7 +47,7 @@
+ #endif
+
+ #include "textcat.h"
+-#include "common.h"
++#include "common_impl.h"
+
+ #define BLOCKSIZE 4096
+
+diff -ruN libtextcat-2.2.orig/src/textcat.c libtextcat-2.2/src/textcat.c
+--- libtextcat-2.2.orig/src/textcat.c 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/textcat.c 2007-06-27 17:45:16.000000000 +0100
+@@ -65,7 +65,7 @@
+ #include <alloca.h>
+ #endif
+
+-#include "common.h"
++#include "common_impl.h"
+ #include "fingerprint.h"
+ #include "textcat.h"
+ #include "constants.h"
+diff -ruN libtextcat-2.2.orig/src/wg_mempool.c libtextcat-2.2/src/wg_mempool.c
+--- libtextcat-2.2.orig/src/wg_mempool.c 2007-06-27 17:02:34.000000000 +0100
++++ libtextcat-2.2/src/wg_mempool.c 2007-06-27 17:45:16.000000000 +0100
+@@ -41,7 +41,7 @@
+ #ifdef HAVE_STRING_H
+ #include <string.h>
+ #endif
+-#include "common.h"
++#include "common_impl.h"
+
+ typedef struct memblock_s {
+ char *pool;
+diff -ru libtextcat-2.2.orig/src/common.h libtextcat-2.2/src/common.h
+--- libtextcat-2.2.orig/src/common.h 2003-05-22 14:02:29.000000000 +0100
++++ libtextcat-2.2/src/common.h 2007-06-28 09:10:42.000000000 +0100
+@@ -1,7 +1,7 @@
+ #ifndef _COMMON_H_
+ #define _COMMON_H_
+ /**
+- * common.h -- a mixed bag of helper functions
++ * common.h
+ *
+ * Copyright (C) 2003 WiseGuys Internet B.V.
+ *
+@@ -36,56 +36,25 @@
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include "config.h"
+-#ifndef HAVE_MALLOC
+-#error "This library needs a GNU like malloc to compile. 'configure' says there isn't one."
+-#endif
+-#ifndef HAVE_REALLOC
+-#error "This library needs a GNU like realloc to compile. 'configure' says there isn't one."
+-#endif
+-#ifndef HAVE_STRDUP
+-#error "This library needs a GNU like strdup to compile. 'configure' says there isn't one."
+-#endif
+ #include <stdio.h>
+-#ifdef HAVE_INTTYPES_H
+ #include <inttypes.h>
+-#else
+-#ifdef HAVE_STDINT_H
+-#include <stdint.h>
+-#endif
+-#endif
+-#ifdef HAVE_SYS_TIME_H
+-#include <sys/time.h>
+-#endif
+ #include <time.h>
+
+-#define WGMIN(x,y) ((x)<=(y)?(x):(y))
+-#define WGMAX(x,y) ((x)<=(y)?(y):(x))
+-#define __STR__(x) #x
+-#define WGSTR(x) __STR__(x)
+-
+-#ifdef HAVE_INTTYPES_H
+-typedef uint32_t uint4;
+-typedef uint16_t uint2;
+-typedef uint8_t uchar;
+-
+-typedef int32_t sint4;
+-typedef int16_t sint2;
+-typedef int8_t schar;
+-
+-typedef int8_t boole;
+-#else
+-typedef unsigned long uint4;
+-typedef unsigned int uint2;
+-typedef unsigned char uchar;
+-
+-typedef long sint4;
+-typedef int sint2;
+-typedef char schar;
+-
+-typedef char boole;
++#include <sys/time.h>
++#ifdef __cplusplus
++extern "C" {
+ #endif
+
++typedef uint32_t uint4;
++typedef uint16_t uint2;
++typedef uint8_t uchar;
++
++typedef int32_t sint4;
++typedef int16_t sint2;
++typedef int8_t schar;
++
++typedef int8_t boole;
++
+ typedef struct wgtimer_s {
+ struct timeval start;
+ struct timeval stop;
+@@ -108,6 +76,8 @@
+ extern char *wg_strgmov( char *dest, const char *src, const char *destlimit );
+ extern char *wg_trim( char *dest, const char *src );
+
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+-
+diff -ru libtextcat-2.2.orig/src/fingerprint.h libtextcat-2.2/src/fingerprint.h
+--- libtextcat-2.2.orig/src/fingerprint.h 2003-05-19 13:16:31.000000000 +0100
++++ libtextcat-2.2/src/fingerprint.h 2007-06-28 09:11:17.000000000 +0100
+@@ -35,6 +35,10 @@
+ */
+ #include "common.h"
+
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ extern void *fp_Init(const char *name);
+ extern void fp_Done( void *handle );
+ extern int fp_Create( void *handle, const char *buffer, uint4 bufsize, uint4 maxngrams );
+@@ -44,4 +48,8 @@
+ extern const char *fp_Name( void *handle );
+ extern void fp_Print( void *handle, FILE *fp );
+
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- libtextcat-2.2.orig/src/textcat.h 2007-06-28 09:19:26.000000000 +0100
++++ libtextcat-2.2/src/textcat.h 2007-06-28 09:20:19.000000000 +0100
+@@ -37,6 +37,10 @@
+ */
+ #include <stdio.h>
+
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ #define _TEXTCAT_RESULT_UNKOWN "UNKNOWN"
+ #define _TEXTCAT_RESULT_SHORT "SHORT"
+
+@@ -77,4 +81,9 @@
+ * textcat_Version() - Returns a string describing the version of this classifier.
+ */
+ extern char *textcat_Version();
++
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
diff --git a/extra/libthai/PKGBUILD b/extra/libthai/PKGBUILD
new file mode 100644
index 000000000..cf684ed66
--- /dev/null
+++ b/extra/libthai/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142250 2011-11-07 09:20:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Chaiwat Suttipongsakul <cwt114@gmail.com>
+
+pkgname=libthai
+pkgver=0.1.16
+pkgrel=1
+pkgdesc="Thai language support routines"
+url="http://linux.thai.net/projects/libthai"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('libdatrie')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+source=(http://linux.thai.net/pub/thailinux/software/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('631ae09f531db6c94aedcc7ce226d6a5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libtheora/PKGBUILD b/extra/libtheora/PKGBUILD
new file mode 100644
index 000000000..d40c8a8d0
--- /dev/null
+++ b/extra/libtheora/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 137894 2011-09-12 09:56:42Z pierre $
+# Maintainer: Tom Killian <tom@archlinux.org>
+# Committer: dorphell <dorphell@archlinux.org>
+
+pkgname=libtheora
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="An open video codec developed by the Xiph.org"
+arch=('i686' 'x86_64' 'mips64el')
+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 --build=$CHOST --target=$CHOST --host=$CHOST
+ make
+}
+
+package() {
+ cd "${srcdir}/libtheora-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libtiff/PKGBUILD b/extra/libtiff/PKGBUILD
new file mode 100644
index 000000000..15a09199d
--- /dev/null
+++ b/extra/libtiff/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 119577 2011-04-12 14:21:49Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libtiff
+pkgver=3.9.5
+pkgrel=1.1
+pkgdesc="Library for manipulation of TIFF images"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('8fc7ce3b4e1d0cc8a319336967815084')
+sha1sums=('f40aab20fb2f609b5cbc1171c40b66a1445e3773')
+
+build() {
+ cd "${srcdir}/tiff-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libtorrent-rasterbar/PKGBUILD b/extra/libtorrent-rasterbar/PKGBUILD
new file mode 100644
index 000000000..7974c9390
--- /dev/null
+++ b/extra/libtorrent-rasterbar/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 144057 2011-12-02 20:54:34Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=libtorrent-rasterbar
+pkgver=0.15.9
+pkgrel=1
+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' 'mips64el')
+license=('custom')
+depends=('boost-libs' 'python2')
+makedepends=('boost')
+options=('!libtool' '!emptydirs')
+source=(http://libtorrent.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+sha1sums=('d86eb9d4452d07715a355d3a67312f162d6eff3a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./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..6beff607b
--- /dev/null
+++ b/extra/libunique/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143972 2011-12-01 07:46:29Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libunique
+pkgver=1.1.6
+pkgrel=5
+pkgdesc="Library for writing single instance applications"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ remove_G_CONST_RETURN.patch)
+sha256sums=('e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb'
+ 'bf99ddbf9104502ea498a6812ec2d700f61f4dbbaa2471cd52174b0b27070769'
+ '194ebfcc4c9297c44bbcfe5d45474310983121cdad881b72265d79cf4ec44235')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/unique-gdbus.patch"
+ patch -Np1 -i "${srcdir}/remove_G_CONST_RETURN.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/extra/libunique/remove_G_CONST_RETURN.patch b/extra/libunique/remove_G_CONST_RETURN.patch
new file mode 100644
index 000000000..7c70ba0c9
--- /dev/null
+++ b/extra/libunique/remove_G_CONST_RETURN.patch
@@ -0,0 +1,117 @@
+diff -Nur libunique-1.1.6.orig/unique/uniqueapp.c libunique-1.1.6/unique/uniqueapp.c
+--- libunique-1.1.6.orig/unique/uniqueapp.c 2011-12-01 07:38:17.748122298 +0000
++++ libunique-1.1.6/unique/uniqueapp.c 2011-12-01 07:39:59.132319788 +0000
+@@ -781,7 +781,7 @@
+ }
+
+
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_command_to_string (UniqueApp *app,
+ gint command)
+ {
+@@ -863,7 +863,7 @@
+ return retval;
+ }
+
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_response_to_string (UniqueResponse response)
+ {
+ GEnumClass *enum_class;
+diff -Nur libunique-1.1.6.orig/unique/uniquebackend.c libunique-1.1.6/unique/uniquebackend.c
+--- libunique-1.1.6.orig/unique/uniquebackend.c 2011-12-01 07:38:17.748122298 +0000
++++ libunique-1.1.6/unique/uniquebackend.c 2011-12-01 07:39:24.418677950 +0000
+@@ -111,7 +111,7 @@
+ *
+ * Return value: FIXME
+ */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_name (UniqueBackend *backend)
+ {
+ g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+@@ -154,7 +154,7 @@
+ *
+ * Return value: FIXME
+ */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_startup_id (UniqueBackend *backend)
+ {
+ g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+diff -Nur libunique-1.1.6.orig/unique/uniquebackend.h libunique-1.1.6/unique/uniquebackend.h
+--- libunique-1.1.6.orig/unique/uniquebackend.h 2011-12-01 07:38:17.748122298 +0000
++++ libunique-1.1.6/unique/uniquebackend.h 2011-12-01 07:42:13.833467492 +0000
+@@ -94,10 +94,10 @@
+
+ UniqueBackend * unique_backend_create (void);
+
+-G_CONST_RETURN gchar *unique_backend_get_name (UniqueBackend *backend);
++const gchar *unique_backend_get_name (UniqueBackend *backend);
+ void unique_backend_set_name (UniqueBackend *backend,
+ const gchar *name);
+-G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend *backend);
++const gchar *unique_backend_get_startup_id (UniqueBackend *backend);
+ void unique_backend_set_startup_id (UniqueBackend *backend,
+ const gchar *startup_id);
+ GdkScreen * unique_backend_get_screen (UniqueBackend *backend);
+diff -Nur libunique-1.1.6.orig/unique/uniqueinternals.h libunique-1.1.6/unique/uniqueinternals.h
+--- libunique-1.1.6.orig/unique/uniqueinternals.h 2011-12-01 07:38:17.748122298 +0000
++++ libunique-1.1.6/unique/uniqueinternals.h 2011-12-01 07:41:17.142977914 +0000
+@@ -44,11 +44,11 @@
+ * and then back into an id
+ */
+ UniqueResponse unique_response_from_string (const gchar *response);
+-G_CONST_RETURN gchar *unique_response_to_string (UniqueResponse response);
++const gchar *unique_response_to_string (UniqueResponse response);
+
+ gint unique_command_from_string (UniqueApp *app,
+ const gchar *command);
+-G_CONST_RETURN gchar *unique_command_to_string (UniqueApp *app,
++const gchar *unique_command_to_string (UniqueApp *app,
+ gint command);
+
+ G_END_DECLS
+diff -Nur libunique-1.1.6.orig/unique/uniquemessage.c libunique-1.1.6/unique/uniquemessage.c
+--- libunique-1.1.6.orig/unique/uniquemessage.c 2011-12-01 07:38:17.748122298 +0000
++++ libunique-1.1.6/unique/uniquemessage.c 2011-12-01 07:41:45.743225713 +0000
+@@ -185,7 +185,7 @@
+ *
+ * Since: 1.0.2
+ */
+-G_CONST_RETURN guchar *
++const guchar *
+ unique_message_data_get (UniqueMessageData *message_data,
+ gsize *length)
+ {
+@@ -525,7 +525,7 @@
+ * owned by the #UniqueMessageData structure and should not be
+ * modified or freed
+ */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_message_data_get_startup_id (UniqueMessageData *message_data)
+ {
+ g_return_val_if_fail (message_data != NULL, NULL);
+diff -Nur libunique-1.1.6.orig/unique/uniquemessage.h libunique-1.1.6/unique/uniquemessage.h
+--- libunique-1.1.6.orig/unique/uniquemessage.h 2011-12-01 07:38:17.748122298 +0000
++++ libunique-1.1.6/unique/uniquemessage.h 2011-12-01 07:40:47.576064565 +0000
+@@ -48,7 +48,7 @@
+ void unique_message_data_set (UniqueMessageData *message_data,
+ const guchar *data,
+ gsize length);
+-G_CONST_RETURN guchar *unique_message_data_get (UniqueMessageData *message_data,
++const guchar *unique_message_data_get (UniqueMessageData *message_data,
+ gsize *length);
+
+ gboolean unique_message_data_set_text (UniqueMessageData *message_data,
+@@ -63,7 +63,7 @@
+ gchar * unique_message_data_get_filename (UniqueMessageData *message_data);
+
+ GdkScreen * unique_message_data_get_screen (UniqueMessageData *message_data);
+-G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
++const gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
+ guint unique_message_data_get_workspace (UniqueMessageData *message_data);
+
+ G_END_DECLS
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/libunique3/PKGBUILD b/extra/libunique3/PKGBUILD
new file mode 100644
index 000000000..f6a5549e4
--- /dev/null
+++ b/extra/libunique3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 127496 2011-06-15 15:11:19Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=libunique3
+pkgver=3.0.2
+pkgrel=1
+pkgdesc="Library for writing single instance applications for GTK3"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('a8f02ce073e2b920cca8ac45d418e7cb64438ad0814780c5912c6d63f8a4e038')
+
+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/extra/libupnp/PKGBUILD b/extra/libupnp/PKGBUILD
new file mode 100644
index 000000000..6bf68ba0f
--- /dev/null
+++ b/extra/libupnp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143080 2011-11-22 13:19:50Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: kastor <kastor@fobos.org.ar>
+
+pkgname=libupnp
+pkgver=1.6.14
+pkgrel=1
+pkgdesc="Portable Open Source UPnP Development Kit"
+arch=('i686' 'x86_64' 'mips64el')
+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=('a0497cf15b3e15f7e7ede88b3d04861b')
+
+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-driver-intel/PKGBUILD b/extra/libva-driver-intel/PKGBUILD
new file mode 100644
index 000000000..371c319db
--- /dev/null
+++ b/extra/libva-driver-intel/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 141738 2011-11-02 16:42:28Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+pkgname=libva-driver-intel
+pkgver=1.0.15
+pkgrel=1
+pkgdesc="VA-API implementation for Intel G45 chipsets and Intel HD Graphics for Intel Core processor family."
+arch=('i686' 'x86_64')
+url="http://freedesktop.org/wiki/Software/vaapi"
+license=('MIT')
+depends=('libva')
+options=('!libtool')
+source=(http://cgit.freedesktop.org/vaapi/intel-driver/snapshot/intel-driver-${pkgver}.tar.bz2)
+md5sums=('9dbd642f18993335146480a3a2987874')
+
+build() {
+ cd ${srcdir}/intel-driver-${pkgver}
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/intel-driver-${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/PKGBUILD b/extra/libva/PKGBUILD
new file mode 100644
index 000000000..592f4a510
--- /dev/null
+++ b/extra/libva/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 141737 2011-11-02 16:40:27Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+pkgname=libva
+pkgver=1.0.15
+pkgrel=1
+pkgdesc="Video Acceleration (VA) API for Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freedesktop.org/wiki/Software/vaapi"
+license=('MIT')
+depends=('libgl' 'libdrm' 'libxfixes')
+makedepends=('mesa')
+optdepends=('vdpau-video: vdpau back-end for nvidia'
+ 'libva-driver-intel: back-end for intel cards')
+options=('!libtool')
+install=libva.install
+source=(http://cgit.freedesktop.org/libva/snapshot/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ad8a94ba87ff0563a533c3c142816794')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./autogen.sh
+ ./configure --prefix=/usr
+ 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.install b/extra/libva/libva.install
new file mode 100644
index 000000000..4d8b8e24a
--- /dev/null
+++ b/extra/libva/libva.install
@@ -0,0 +1,5 @@
+post_upgrade() {
+ if [ "$(vercmp $2 1.0.15-1)" -lt 0 ]; then
+ echo 'Starting with libva version 1.0.15, the intel back-end is now in libva-driver-intel.'
+ fi
+}
diff --git a/extra/libvdpau/PKGBUILD b/extra/libvdpau/PKGBUILD
new file mode 100644
index 000000000..c23c73b79
--- /dev/null
+++ b/extra/libvdpau/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143891 2011-11-30 19:04:39Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libvdpau
+pkgver=0.4.1
+pkgrel=2
+pkgdesc="Nvidia VDPAU library"
+arch=(i686 x86_64 'mips64el')
+url='http://cgit.freedesktop.org/~aplattner/libvdpau'
+depends=('gcc-libs')
+conflicts=('nvidia-utils<190.42-2')
+options=('!libtool')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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/02_64-bit_JESS_fix.patch b/extra/libvisual-plugins/02_64-bit_JESS_fix.patch
new file mode 100644
index 000000000..1d7f99e56
--- /dev/null
+++ b/extra/libvisual-plugins/02_64-bit_JESS_fix.patch
@@ -0,0 +1,58 @@
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/JESS/renderer.c libvisual-plugins-0.4.0.new/plugins/actor/JESS/renderer.c
+--- libvisual-plugins-0.4.0/plugins/actor/JESS/renderer.c 2006-02-06 05:47:26.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/JESS/renderer.c 2007-07-04 18:12:58.000000000 +1000
+@@ -282,7 +282,7 @@
+
+ void render_deformation(JessPrivate *priv, int defmode)
+ {
+- uint32_t bmax;
++ intptr_t bmax;
+ uint32_t *tab1 = NULL, *tab2, *tab3, *tab4, i;
+ uint8_t *pix = priv->pixel, *buf = priv->buffer, *aux;
+
+@@ -294,7 +294,7 @@
+ tab2 = priv->table2;
+ tab3 = priv->table3;
+ tab4 = priv->table4;
+- bmax = priv->resx * priv->resy + (uint32_t) priv->pixel;
++ bmax = priv->resx * priv->resy + (intptr_t) priv->pixel;
+
+ switch(defmode)
+ {
+@@ -352,7 +352,7 @@
+ }
+ for (i = 0; i < priv->resy * priv->resx; i++)
+ {
+- aux = (uint8_t *) ((*(tab1) << 2 ) + (uint32_t) priv->buffer);
++ aux = (uint8_t *) ((*(tab1) << 2 ) + (intptr_t) priv->buffer);
+ *(pix++) = *(aux++) ;
+ *(pix++) = *(aux++);
+ *(pix++) = *(aux);
+@@ -373,7 +373,8 @@
+ /* j'ai mis pixel par defaut... */
+
+ uint8_t *pix = priv->pixel;
+- uint32_t bmax,pitch_4;
++ intptr_t bmax;
++ uint32_t pitch_4;
+
+ pix = priv->pixel;
+ if (priv->pixel == NULL)
+@@ -387,7 +388,7 @@
+ if (priv->video == 8)
+ {
+ if (visual_cpu_get_mmx ()) {
+- bmax = priv->resx * (priv->resy-1) + (uint32_t) priv->pixel;
++ bmax = priv->resx * (priv->resy-1) + (intptr_t) priv->pixel;
+ #if defined(VISUAL_ARCH_X86) || defined(VISUAL_ARCH_X86_64)
+ __asm __volatile
+ ("\n\t pxor %%mm6, %%mm6"
+@@ -423,7 +424,7 @@
+ else
+ {
+ pitch_4 = priv->pitch+4;
+- bmax = priv->pitch*(priv->resy-1) + (uint32_t) priv->pixel;
++ bmax = priv->pitch*(priv->resy-1) + (intptr_t) priv->pixel;
+
+ if (visual_cpu_get_mmx ()) {
+ #if defined(VISUAL_ARCH_X86) || defined(VISUAL_ARCH_X86_64)
diff --git a/extra/libvisual-plugins/03_build_against_gl_fixes.patch b/extra/libvisual-plugins/03_build_against_gl_fixes.patch
new file mode 100644
index 000000000..b21558232
--- /dev/null
+++ b/extra/libvisual-plugins/03_build_against_gl_fixes.patch
@@ -0,0 +1,372 @@
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/bumpscope/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/bumpscope/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/bumpscope/Makefile.am 2006-02-23 20:03:24.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/bumpscope/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_bumpscope.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_bumpscope_la_LDFLAGS = -module -avoid-version
++actor_bumpscope_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_bumpscope_la_SOURCES = actor_bumpscope.c \
+ actor_bumpscope.h \
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/corona/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/corona/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/corona/Makefile.am 2006-02-23 20:03:24.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/corona/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_corona.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CXXFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_corona_la_LDFLAGS = -module -avoid-version
++actor_corona_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_corona_la_SOURCES = actor_corona.cpp \
+ autopal.h \
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/gdkpixbuf/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/gdkpixbuf/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/gdkpixbuf/Makefile.am 2006-02-24 00:34:48.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/gdkpixbuf/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_gdkpixbuf.la
+
+-LIBS += $(LIBVISUAL_LIBS) $(GTK_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS) $(GTK_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_gdkpixbuf_la_LDFLAGS = -module -avoid-version
++actor_gdkpixbuf_la_LIBADD = $(LIBVISUAL_LIBS) $(GTK_LIBS)
+
+ actor_gdkpixbuf_la_SOURCES = actor_gdkpixbuf.c
+
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/gstreamer/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/gstreamer/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/gstreamer/Makefile.am 2006-02-23 20:03:27.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/gstreamer/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,14 +2,13 @@
+
+ actor_plugin_LTLIBRARIES = actor_gstreamer.la
+
+-LIBS += $(LIBVISUAL_LIBS) $(GSTREAMER_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS) $(GSTREAMER_CFLAGS)
+
+ INCLUDES = $(all_includes) \
+ -I$(top_srcdir)
+
+ actor_gstreamer_la_LDFLAGS = -module -avoid-version
++actor_gstreamer_la_LIBADD = $(LIBVISUAL_LIBS) $(GSTREAMER_LIBS)
+
+ actor_gstreamer_la_SOURCES = actor_gstreamer.c
+
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/infinite/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/infinite/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/infinite/Makefile.am 2006-02-23 20:03:27.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/infinite/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_infinite.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_infinite_la_LDFLAGS = -module -avoid-version
++actor_infinite_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_infinite_la_SOURCES = compute.c compute.h \
+ display.c display.h \
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/jakdaw/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/jakdaw/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/jakdaw/Makefile.am 2006-02-23 20:03:28.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/jakdaw/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_jakdaw.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_jakdaw_la_LDFLAGS = -module -avoid-version
++actor_jakdaw_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_jakdaw_la_SOURCES = actor_jakdaw.c \
+ actor_jakdaw.h \
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/JESS/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/JESS/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/JESS/Makefile.am 2006-02-23 20:03:24.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/JESS/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_JESS.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_JESS_la_LDFLAGS = -module -avoid-version
++actor_JESS_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_JESS_la_SOURCES = analyser.c analyser.h analyser_struct.h\
+ distorsion.c distorsion.h\
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/lv_analyzer/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/lv_analyzer/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/lv_analyzer/Makefile.am 2006-02-23 20:03:28.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/lv_analyzer/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,14 +2,13 @@
+
+ actor_plugin_LTLIBRARIES = actor_lv_analyzer.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) \
+ -I$(top_srcdir)
+
+ actor_lv_analyzer_la_LDFLAGS = -module -avoid-version
++actor_lv_analyzer_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_lv_analyzer_la_SOURCES = actor_lv_analyzer.c
+
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/lv_gltest/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/lv_gltest/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/lv_gltest/Makefile.am 2006-02-24 22:24:49.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/lv_gltest/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -4,5 +4,5 @@
+
+ actor_lv_gltest_la_CFLAGS = -I$(top_srcdir) $(LIBVISUAL_CFLAGS) $(X_CFLAGS)
+ actor_lv_gltest_la_LDFLAGS = -module -avoid-version
+-actor_lv_gltest_la_LIBS = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL -lGLU
++actor_lv_gltest_la_LIBADD = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL -lGLU
+ actor_lv_gltest_la_SOURCES = actor_lv_gltest.c
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/lv_scope/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/lv_scope/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/lv_scope/Makefile.am 2006-02-23 20:03:29.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/lv_scope/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_lv_scope.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_lv_scope_la_LDFLAGS = -module -avoid-version
++actor_lv_scope_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_lv_scope_la_SOURCES = actor_lv_scope.c
+
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/madspin/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/madspin/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/madspin/Makefile.am 2006-02-24 22:24:49.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/madspin/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -10,5 +10,5 @@
+
+ actor_madspin_la_CFLAGS = -I$(top_srcdir) $(LIBVISUAL_CFLAGS) -DSTAR_DIR=\""$(imagesdir)/"\"
+ actor_madspin_la_LDFLAGS = -module -avoid-version
+-actor_madspin_la_LIBS = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL
++actor_madspin_la_LIBADD = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL
+ actor_madspin_la_SOURCES = madspin.c
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/nastyfft/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/nastyfft/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/nastyfft/Makefile.am 2006-02-24 22:24:50.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/nastyfft/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -4,5 +4,5 @@
+
+ actor_nastyfft_la_CFLAGS = -I$(top_srcdir) $(LIBVISUAL_CFLAGS) $(X_CFLAGS)
+ actor_nastyfft_la_LDFLAGS = -module -avoid-version
+-actor_nastyfft_la_LIBS = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL -lGLU
++actor_nastyfft_la_LIBADD = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL -lGLU
+ actor_nastyfft_la_SOURCES = actor_nastyfft.c
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/oinksie/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/oinksie/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/oinksie/Makefile.am 2006-02-23 20:03:31.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/oinksie/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ actor_plugin_LTLIBRARIES = actor_oinksie.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ actor_oinksie_la_LDFLAGS = -module -avoid-version
++actor_oinksie_la_LIBADD = $(LIBVISUAL_LIBS)
+
+ actor_oinksie_la_SOURCES = actor_oinksie.c\
+ oinksie.c oinksie.h\
+diff -Nur libvisual-plugins-0.4.0/plugins/actor/pseudotoad_flower/Makefile.am libvisual-plugins-0.4.0.new/plugins/actor/pseudotoad_flower/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/actor/pseudotoad_flower/Makefile.am 2006-03-09 00:06:58.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/actor/pseudotoad_flower/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -4,7 +4,7 @@
+
+ actor_flower_la_LDFLAGS = -module -avoid-version
+ actor_flower_la_CFLAGS = -I$(top_srcdir) $(LIBVISUAL_CFLAGS) $(X_CFLAGS)
+-actor_flower_la_LIBS = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL -lGLU
++actor_flower_la_LIBADD = $(LIBVISUAL_LIBS) $(X_LIBS) -lGL -lGLU
+
+ actor_flower_la_SOURCES = \
+ actor_flower.c \
+diff -Nur libvisual-plugins-0.4.0/plugins/input/alsa/Makefile.am libvisual-plugins-0.4.0.new/plugins/input/alsa/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/input/alsa/Makefile.am 2006-02-23 20:03:35.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/input/alsa/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,12 +2,11 @@
+
+ input_plugin_LTLIBRARIES = input_alsa.la
+
+-LIBS += $(ALSA_LIBS) $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(ALSA_CFLAGS) $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir) -I$(top_builddir)
+
+ input_alsa_la_LDFLAGS = -module -avoid-version
++input_alsa_la_LIBADD = $(ALSA_LIBS) $(LIBVISUAL_LIBS)
+
+ input_alsa_la_SOURCES = input_alsa.c
+diff -Nur libvisual-plugins-0.4.0/plugins/input/debug/Makefile.am libvisual-plugins-0.4.0.new/plugins/input/debug/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/input/debug/Makefile.am 2006-02-23 20:03:36.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/input/debug/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,11 +2,10 @@
+
+ input_plugin_LTLIBRARIES = input_debug.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir) -I$(top_builddir)
+
+ input_debug_la_LDFLAGS = -module -avoid-version
++input_debug_la_LIBADD = $(LIBVISUAL_LIBS)
+ input_debug_la_SOURCES = input_debug.c
+diff -Nur libvisual-plugins-0.4.0/plugins/input/esd/Makefile.am libvisual-plugins-0.4.0.new/plugins/input/esd/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/input/esd/Makefile.am 2006-02-23 20:03:37.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/input/esd/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,11 +2,10 @@
+
+ input_plugin_LTLIBRARIES = input_esd.la
+
+-LIBS += $(LIBESD_LIBS) $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBESD_CFLAGS) $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ input_esd_la_LDFLAGS = -module -avoid-version
++input_esd_la_LIBADD = $(LIBESD_LIBS) $(LIBVISUAL_LIBS)
+ input_esd_la_SOURCES = input_esd.c
+diff -Nur libvisual-plugins-0.4.0/plugins/input/jack/Makefile.am libvisual-plugins-0.4.0.new/plugins/input/jack/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/input/jack/Makefile.am 2006-02-23 20:03:37.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/input/jack/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,13 +2,12 @@
+
+ input_plugin_LTLIBRARIES = input_jack.la
+
+-LIBS += $(LIBJACK_LIBS) $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBJACK_CFLAGS) $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ input_jack_la_LDFLAGS = -module -avoid-version
++input_jack_la_LIBADD = $(LIBJACK_LIBS) $(LIBVISUAL_LIBS)
+
+ input_jack_la_SOURCES = input_jack.c
+
+diff -Nur libvisual-plugins-0.4.0/plugins/input/mplayer/Makefile.am libvisual-plugins-0.4.0.new/plugins/input/mplayer/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/input/mplayer/Makefile.am 2006-02-23 20:03:38.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/input/mplayer/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,12 +2,11 @@
+
+ input_plugin_LTLIBRARIES = input_mplayer.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ input_mplayer_la_LDFLAGS = -module -avoid-version
++input_mplayer_la_LIBADD = $(LIBVISUAL_LIBS)
+ input_mplayer_la_SOURCES = input_mplayer.c
+
+diff -Nur libvisual-plugins-0.4.0/plugins/morph/alphablend/Makefile.am libvisual-plugins-0.4.0.new/plugins/morph/alphablend/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/morph/alphablend/Makefile.am 2006-02-23 20:03:38.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/morph/alphablend/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,11 +2,10 @@
+
+ morph_plugin_LTLIBRARIES = morph_alphablend.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ morph_alphablend_la_LDFLAGS = -module -avoid-version
++morph_alphablend_la_LIBADD = $(LIBVISUAL_LIBS)
+ morph_alphablend_la_SOURCES = morph_alphablend.c
+diff -Nur libvisual-plugins-0.4.0/plugins/morph/flash/Makefile.am libvisual-plugins-0.4.0.new/plugins/morph/flash/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/morph/flash/Makefile.am 2006-02-23 20:03:39.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/morph/flash/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,11 +2,10 @@
+
+ morph_plugin_LTLIBRARIES = morph_flash.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ morph_flash_la_LDFLAGS = -module -avoid-version
++morph_flash_la_LIBADD = $(LIBVISUAL_LIBS)
+ morph_flash_la_SOURCES = morph_flash.c
+diff -Nur libvisual-plugins-0.4.0/plugins/morph/slide/Makefile.am libvisual-plugins-0.4.0.new/plugins/morph/slide/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/morph/slide/Makefile.am 2006-02-23 20:03:39.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/morph/slide/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,11 +2,10 @@
+
+ morph_plugin_LTLIBRARIES = morph_slide.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ morph_slide_la_LDFLAGS = -module -avoid-version
++morph_slide_la_LIBADD = $(LIBVISUAL_LIBS)
+ morph_slide_la_SOURCES = morph_slide.c
+diff -Nur libvisual-plugins-0.4.0/plugins/morph/tentacle/Makefile.am libvisual-plugins-0.4.0.new/plugins/morph/tentacle/Makefile.am
+--- libvisual-plugins-0.4.0/plugins/morph/tentacle/Makefile.am 2006-02-23 20:03:39.000000000 +1100
++++ libvisual-plugins-0.4.0.new/plugins/morph/tentacle/Makefile.am 2007-07-04 18:19:43.000000000 +1000
+@@ -2,11 +2,10 @@
+
+ morph_plugin_LTLIBRARIES = morph_tentacle.la
+
+-LIBS += $(LIBVISUAL_LIBS)
+-
+ AM_CFLAGS = $(LIBVISUAL_CFLAGS)
+
+ INCLUDES = $(all_includes) -I$(top_srcdir)
+
+ morph_tentacle_la_LDFLAGS = -module -avoid-version
++morph_tentacle_la_LIBADD = $(LIBVISUAL_LIBS)
+ morph_tentacle_la_SOURCES = morph_tentacle.c
diff --git a/extra/libvisual-plugins/04_lv_analyzer_build_fix.patch b/extra/libvisual-plugins/04_lv_analyzer_build_fix.patch
new file mode 100644
index 000000000..1fc5f7fc7
--- /dev/null
+++ b/extra/libvisual-plugins/04_lv_analyzer_build_fix.patch
@@ -0,0 +1,12 @@
+diff -Nur libvisual-plugins-0.4.0/configure.ac libvisual-plugins-0.4.0.new/configure.ac
+--- libvisual-plugins-0.4.0/configure.ac 2006-03-17 03:50:41.000000000 +1100
++++ libvisual-plugins-0.4.0.new/configure.ac 2007-07-04 18:22:38.000000000 +1000
+@@ -361,7 +361,7 @@
+ [ENABLE_ANALYZER=$enableval],
+ [ENABLE_ANALYZER=yes])
+
+-if test "$ENABLE_ANALYZER" = xyes; then
++if test "$ENABLE_ANALYZER" = "yes"; then
+ build_actor_plugins="$build_actor_plugins lv_analyzer"
+ fi
+
diff --git a/extra/libvisual-plugins/050_all_automagic.patch b/extra/libvisual-plugins/050_all_automagic.patch
new file mode 100644
index 000000000..9c25fac72
--- /dev/null
+++ b/extra/libvisual-plugins/050_all_automagic.patch
@@ -0,0 +1,50 @@
+--- configure.ac.old 2007-02-24 23:09:08.000000000 +0100
++++ configure.ac 2007-02-24 23:13:15.000000000 +0100
+@@ -89,7 +89,18 @@
+
+ dnl Libraries
+
++dnl List of plugins to build
++build_input_plugins=""
++build_actor_plugins=""
++build_morph_plugins=""
++
+ dnl EsounD
++AC_ARG_ENABLE([esd], AS_HELP_STRING([--disable-esd],
++ [Do not build esound input plugin @<:@default=enabled@:>@]),
++ [ENABLE_INPUT_ESD=$enableval],
++ [ENABLE_INPUT_ESD=yes])
++
++if test "$ENABLE_INPUT_ESD" = "yes"; then
+ PKG_CHECK_MODULES([LIBESD], [esound >= esound_required_version],
+ [HAVE_ESD="yes"], [HAVE_ESD="no"])
+
+@@ -98,8 +109,15 @@
+ else
+ AC_MSG_WARN([*** EsounD not found or too old. The EsounD input plugin won't be built])
+ fi
++fi
+
+ dnl JACK
++AC_ARG_ENABLE([jack], AS_HELP_STRING([--disable-jack],
++ [Do not build jack input plugin @<:@default=enabled@:>@]),
++ [ENABLE_INPUT_JACK=$enableval],
++ [ENABLE_INPUT_JACK=yes])
++
++if test "$ENABLE_INPUT_JACK" = "yes"; then
+ PKG_CHECK_MODULES([LIBJACK], [jack >= jack_required_version], [HAVE_JACK="yes"], [HAVE_JACK="no"])
+ if test "$HAVE_JACK" = "yes"; then
+ build_input_plugins="$build_input_plugins jack"
+@@ -107,11 +125,7 @@
+ AC_MSG_WARN([*** libjack is too old. You can download a newer version at
+ http://jackit.sf.net/. The jackit input plugin won't be built])
+ fi
+-
+-dnl List of plugins to build
+-build_input_plugins=""
+-build_actor_plugins=""
+-build_morph_plugins=""
++fi
+
+ dnl GdkPixbuf
+ AC_ARG_ENABLE([gdkpixbuf-plugin],
diff --git a/extra/libvisual-plugins/05_fix_po.patch b/extra/libvisual-plugins/05_fix_po.patch
new file mode 100644
index 000000000..a5413ef1b
--- /dev/null
+++ b/extra/libvisual-plugins/05_fix_po.patch
@@ -0,0 +1,127 @@
+diff -Nur libvisual-plugins-0.4.0/po/Makefile.in.in libvisual-plugins-0.4.0.new/po/Makefile.in.in
+--- libvisual-plugins-0.4.0/po/Makefile.in.in 2006-03-21 05:48:28.000000000 +1100
++++ libvisual-plugins-0.4.0.new/po/Makefile.in.in 2007-07-09 21:50:13.000000000 +1000
+@@ -28,7 +28,7 @@
+
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+-MKINSTALLDIRS = @MKINSTALLDIRS@
++MKINSTALLDIRS = mkinstalldirs
+ mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+ GMSGFMT = @GMSGFMT@
+diff -Nur libvisual-plugins-0.4.0/po/mkinstalldirs libvisual-plugins-0.4.0.new/po/mkinstalldirs
+--- libvisual-plugins-0.4.0/po/mkinstalldirs 1970-01-01 10:00:00.000000000 +1000
++++ libvisual-plugins-0.4.0.new/po/mkinstalldirs 2006-03-21 05:48:42.000000000 +1100
+@@ -0,0 +1,111 @@
++#! /bin/sh
++# mkinstalldirs --- make directory hierarchy
++# Author: Noah Friedman <friedman@prep.ai.mit.edu>
++# Created: 1993-05-16
++# Public domain
++
++errstatus=0
++dirmode=""
++
++usage="\
++Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
++
++# process command line arguments
++while test $# -gt 0 ; do
++ case $1 in
++ -h | --help | --h*) # -h for help
++ echo "$usage" 1>&2
++ exit 0
++ ;;
++ -m) # -m PERM arg
++ shift
++ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
++ dirmode=$1
++ shift
++ ;;
++ --) # stop option processing
++ shift
++ break
++ ;;
++ -*) # unknown option
++ echo "$usage" 1>&2
++ exit 1
++ ;;
++ *) # first non-opt arg
++ break
++ ;;
++ esac
++done
++
++for file
++do
++ if test -d "$file"; then
++ shift
++ else
++ break
++ fi
++done
++
++case $# in
++ 0) exit 0 ;;
++esac
++
++case $dirmode in
++ '')
++ if mkdir -p -- . 2>/dev/null; then
++ echo "mkdir -p -- $*"
++ exec mkdir -p -- "$@"
++ fi
++ ;;
++ *)
++ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
++ echo "mkdir -m $dirmode -p -- $*"
++ exec mkdir -m "$dirmode" -p -- "$@"
++ fi
++ ;;
++esac
++
++for file
++do
++ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
++ shift
++
++ pathcomp=
++ for d
++ do
++ pathcomp="$pathcomp$d"
++ case $pathcomp in
++ -*) pathcomp=./$pathcomp ;;
++ esac
++
++ if test ! -d "$pathcomp"; then
++ echo "mkdir $pathcomp"
++
++ mkdir "$pathcomp" || lasterr=$?
++
++ if test ! -d "$pathcomp"; then
++ errstatus=$lasterr
++ else
++ if test ! -z "$dirmode"; then
++ echo "chmod $dirmode $pathcomp"
++ lasterr=""
++ chmod "$dirmode" "$pathcomp" || lasterr=$?
++
++ if test ! -z "$lasterr"; then
++ errstatus=$lasterr
++ fi
++ fi
++ fi
++ fi
++
++ pathcomp="$pathcomp/"
++ done
++done
++
++exit $errstatus
++
++# Local Variables:
++# mode: shell-script
++# sh-indentation: 2
++# End:
++# mkinstalldirs ends here
diff --git a/extra/libvisual-plugins/PKGBUILD b/extra/libvisual-plugins/PKGBUILD
new file mode 100644
index 000000000..01c7c74d6
--- /dev/null
+++ b/extra/libvisual-plugins/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 135107 2011-08-10 10:33:28Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=libvisual-plugins
+pkgver=0.4.0
+pkgrel=4
+pkgdesc="plugins for libvisual"
+arch=("i686" "x86_64" 'mips64el')
+license=('GPL')
+url="http://www.localhost.nl/~synap/libvisual/"
+depends=('libvisual' 'gtk2' 'mesa' 'alsa-lib' 'jack')
+makedepends=('pkgconfig' 'namcap')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/libvisual/libvisual-plugins-${pkgver}.tar.gz
+ 02_64-bit_JESS_fix.patch
+ 03_build_against_gl_fixes.patch
+ 04_lv_analyzer_build_fix.patch
+ 05_fix_po.patch
+ 050_all_automagic.patch)
+md5sums=('4330e9287f9d6fae02f482f428a1e77b'
+ 'f9cfb607bfcbfef60830fae4e7dc6963'
+ '116701408747dbb87dc134434478ebe2'
+ '01678a8f1584c76a44e59d81003a1109'
+ '6189b7427c4e11c8b8d6c6266d6a1629'
+ 'b50ae94c424a5f0af235deffa8451eb6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/02_64-bit_JESS_fix.patch"
+ patch -Np1 -i "${srcdir}/03_build_against_gl_fixes.patch"
+ patch -Np1 -i "${srcdir}/04_lv_analyzer_build_fix.patch"
+ patch -Np0 -i "${srcdir}/050_all_automagic.patch"
+
+ autoreconf -fi
+ # Apply later as autoreconf overwrites po/Makefile.in.in
+ patch -Np1 -i "${srcdir}/05_fix_po.patch"
+
+ ./configure --prefix=/usr \
+ --disable-gstreamer-plugin \
+ --disable-gforce \
+ --disable-esd
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libvisual/PKGBUILD b/extra/libvisual/PKGBUILD
new file mode 100644
index 000000000..4a5f8a0b0
--- /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" 'mips64el')
+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..1c62d5b3a
--- /dev/null
+++ b/extra/libvncserver/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140764 2011-10-18 19:48:49Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libvncserver
+pkgver=0.9.8.1
+pkgrel=1
+pkgdesc="A cross-platform C libraries that allow you to easily implement VNC server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libvncserver.sourceforge.net/"
+license=('GPL')
+depends=('libjpeg' 'gnutls' 'libgcrypt')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/LibVNCServer-${pkgver}.tar.gz")
+md5sums=('51e972bd26c098b0b8d4687af6afbeb1')
+
+build() {
+ cd "${srcdir}/LibVNCServer-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/LibVNCServer-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libvorbis/PKGBUILD b/extra/libvorbis/PKGBUILD
new file mode 100644
index 000000000..2c7b35a34
--- /dev/null
+++ b/extra/libvorbis/PKGBUILD
@@ -0,0 +1,33 @@
+# $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=2
+pkgdesc="Vorbis codec library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ if [ "$CARCH" = "mips64el" ]; then
+ CFLAGS=${CFLAGS/loongson2f/mips3} ./configure --prefix=/usr --disable-static
+ else
+ CFLAGS=${CFLAGS/-march=$CARCH} ./configure --prefix=/usr --disable-static
+ fi
+ 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..fe6c58d41
--- /dev/null
+++ b/extra/libvpx/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 135632 2011-08-16 21:19:30Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libvpx
+pkgver=0.9.7.p1
+realver=0.9.7-p1
+pkgrel=1
+pkgdesc="The VP8 Codec SDK"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.webmproject.org/"
+license=('BSD')
+depends=('glibc')
+makedepends=('yasm')
+source=(http://webm.googlecode.com/files/${pkgname}-v${realver}.tar.bz2
+ mips64el.patch)
+sha1sums=('dacfefaf3363f781de43858f09cdd0b0d469e6fc'
+ '4fd775826a4d737102f831c451235a58947f2cde')
+
+build() {
+ cd "${srcdir}/${pkgname}-v${realver}"
+
+ if [ "$CARCH" = "mips64el" ]; then
+ extra="--target=mips64el-linux-gcc"
+ patch -Np1 -i ${srcdir}/mips64el.patch
+ fi
+
+ ./configure --prefix=/usr --enable-vp8 \
+ --enable-runtime-cpu-detect \
+ --enable-shared \
+ --enable-postproc \
+ --enable-pic \
+ --disable-install-docs \
+ --disable-install-srcs $extra
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-v${realver}"
+ make DIST_DIR="$pkgdir/usr" install
+ install -D -m 0644 LICENSE "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libwebkit/PKGBUILD b/extra/libwebkit/PKGBUILD
new file mode 100644
index 000000000..40985ac43
--- /dev/null
+++ b/extra/libwebkit/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 139389 2011-10-01 19:00:15Z ibiru $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=libwebkit
+pkgname=(libwebkit libwebkit3)
+pkgver=1.6.1
+pkgrel=1
+pkgdesc="An opensource web content engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://webkitgtk.org/"
+license=('custom')
+depends=('libxt' 'libxslt' 'sqlite3' 'icu' 'gstreamer0.10-base' 'libsoup' 'enchant')
+checkdepends=('hspell')
+makedepends=('gperf' 'gtk-doc' 'gobject-introspection' 'python2' 'gtk2' 'gtk3')
+options=('!libtool' '!emptydirs')
+install=libwebkit.install
+source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz
+ fix-mips-n32.patch)
+md5sums=('c11743694b1b71dad287b2e7a9e73b05'
+ '1e1971b0214f6705ceb4f816c4b52af9')
+
+build() {
+ cd "${srcdir}/webkit-${pkgver}"
+ mkdir build-gtk{2,3}
+
+ # WebKit knows only O32, not aligning memory on N32, also wants to
+ # use nonavailable JIT for all MIPS.
+ patch -Np1 -i "${srcdir}/fix-mips-n32.patch"
+
+ # ld needs more virtual memory than is available on MIPS n32, these
+ # options should reduce it.
+ if [ "${CARCH}" == "mips64el" ] ; then
+ export LDFLAGS="${LDFLAGS} -Wl,--reduce-memory-overhead -Wl,--no-keep-memory"
+ fi
+
+ ( 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-introspection \
+ --with-font-backend=freetype --enable-gtk-doc \
+ --with-unicode-backend=icu \
+ --enable-spellcheck "$@"
+ make all stamp-po
+}
+
+check() {
+ cd "${srcdir}/webkit-${pkgver}"
+ make -C build-gtk2 check
+ make -C build-gtk3 check
+}
+
+package_libwebkit() {
+ pkgdesc+=" (for GTK2)"
+ depends+=(gtk2)
+
+ 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/extra/libwebkit/fix-mips-n32.patch b/extra/libwebkit/fix-mips-n32.patch
new file mode 100644
index 000000000..0acc0daf6
--- /dev/null
+++ b/extra/libwebkit/fix-mips-n32.patch
@@ -0,0 +1,25 @@
+--- webkit-1.4.1.orig/Source/JavaScriptCore/wtf/Platform.h 2011-06-30 12:14:01.572119909 +0200
++++ webkit-1.4.1/Source/JavaScriptCore/wtf/Platform.h 2011-06-30 12:17:00.352382262 +0200
+@@ -139,8 +139,9 @@
+
+ /* CPU(MIPS) - MIPS 32-bit */
+ /* Note: Only O32 ABI is tested, so we enable it for O32 ABI for now. */
++/* N32 is also tested, without JIT. */
+ #if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_)) \
+- && defined(_ABIO32)
++ && (defined(_ABIO32) || defined(_ABIN32))
+ #define WTF_CPU_MIPS 1
+ #if defined(__MIPSEB__)
+ #define WTF_CPU_BIG_ENDIAN 1
+@@ -1009,9 +1010,9 @@
+ #define ENABLE_JIT 0
+ #endif
+
+-/* The JIT is enabled by default on all x86, x64-64, ARM & MIPS platforms. */
++/* The JIT is enabled by default on all x86, x64-64, ARM & MIPS O32 platforms. */
+ #if !defined(ENABLE_JIT) \
+- && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(MIPS)) \
++ && (CPU(X86) || CPU(X86_64) || CPU(ARM) || (CPU(MIPS) && defined(_ABIO32))) \
+ && (OS(DARWIN) || !COMPILER(GCC) || GCC_VERSION_AT_LEAST(4, 1, 0)) \
+ && !OS(WINCE)
+ #define ENABLE_JIT 1
diff --git a/extra/libwebkit/libwebkit.install b/extra/libwebkit/libwebkit.install
new file mode 100644
index 000000000..24072f316
--- /dev/null
+++ b/extra/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/extra/libwmf/PKGBUILD b/extra/libwmf/PKGBUILD
new file mode 100644
index 000000000..06f31c7ff
--- /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.1
+pkgdesc="A library for reading vector images in Microsoft's native Windows Metafile Format (WMF)"
+arch=('i686' 'x86_64' 'mips64el')
+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..48b4212dc
--- /dev/null
+++ b/extra/libwnck/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 136665 2011-08-31 12:07:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libwnck
+pkgver=2.30.7
+pkgrel=1
+pkgdesc="Window Navigator Construction Kit"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('8be84d5333f0ade0e61af9f4cbf7685cb7cce2aa0ee32f53bac32107a81fe194')
+
+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/extra/libwnck3/PKGBUILD b/extra/libwnck3/PKGBUILD
new file mode 100644
index 000000000..e9e202629
--- /dev/null
+++ b/extra/libwnck3/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 140937 2011-10-20 05:43:59Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=libwnck3
+_pkgbasename=libwnck
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Window Navigator Construction Kit (GTK+3)"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('eaba586d8e092770e45ab8a3073eb57b5386e1ea7512b5424fa558906f26a3da')
+
+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/extra/libwpd/PKGBUILD b/extra/libwpd/PKGBUILD
new file mode 100644
index 000000000..30b22c16e
--- /dev/null
+++ b/extra/libwpd/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 122922 2011-05-07 10:20:23Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=libwpd
+pkgver=0.9.2
+pkgrel=1
+pkgdesc="Library for importing WordPerfect (tm) documents"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libwpd.sourceforge.net/"
+license=('LGPL')
+depends=('gcc-libs')
+makedepends=('libgsf>=1.14.20')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('da43f18da732f6156cef145d06613960')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ 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..45cb589d9
--- /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' 'mips64el')
+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/libwps/PKGBUILD b/extra/libwps/PKGBUILD
new file mode 100644
index 000000000..d99ebd4cc
--- /dev/null
+++ b/extra/libwps/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 122933 2011-05-07 10:59:22Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Robert McCathie <archaur at rmcc dot com dot au>
+
+pkgname=libwps
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="a Microsoft Works file word processor format import filter library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://libwps.sourceforge.net/"
+license=('LGPL')
+depends=('libwpd>=0.9.2')
+options=(!libtool)
+source=("http://downloads.sourceforge.net/project/libwps/$pkgname/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2")
+#md5sums=('83d4029aebf290c0a9a8fee9c99638d3')
+#md5sums=('9e436bff44c60dc8b97cba0c7fc11a5c')
+md5sums=('29721a16f25967d59969d5f0ae485b4a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i -e 's: -Wall -Werror -pedantic::' configure.in
+ touch NEWS AUTHORS ChangeLog
+ autoreconf -fi
+ ./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..f3194756d
--- /dev/null
+++ b/extra/libx11/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 134215 2011-08-02 15:15:42Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libx11
+pkgver=1.4.4
+pkgrel=1
+pkgdesc="X11 client-side library"
+arch=(i686 x86_64 'mips64el')
+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
+ xorg.csh)
+sha1sums=('2d9d38bfd7003ec60eea0b1999ab72cfd5fa3b90'
+ '4b756387426afb2a5bb7a155631ec42348abf5c1'
+ '45b0b310776cf5d9a94b4a18a5c63ddad9de6ba8')
+
+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,csh} "${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.csh b/extra/libx11/xorg.csh
new file mode 100644
index 000000000..26c49a222
--- /dev/null
+++ b/extra/libx11/xorg.csh
@@ -0,0 +1,15 @@
+setenv XDG_DATA_HOME ${HOME}/.local/share
+setenv XDG_CONFIG_HOME ${HOME}/.config
+setenv XDG_CACHE_HOME ${HOME}/.cache
+
+if (! ($?XDG_DATA_DIRS) ) then
+ setenv XDG_DATA_DIRS /usr/share/:/usr/local/share/
+else
+ setenv XDG_DATA_DIRS /usr/share/:/usr/local/share/:${XDG_DATA_DIRS}
+endif
+
+if (! ($?XDG_CONFIG_DIRS) ) then
+ setenv XDG_CONFIG_DIRS /etc/xdg
+else
+ setenv XDG_CONFIG_DIRS /etc/xdg:${XDG_CONFIG_DIRS}
+endif
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/libxau/PKGBUILD b/extra/libxau/PKGBUILD
new file mode 100644
index 000000000..d0af40eb0
--- /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 'mips64el')
+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..c62004a74
--- /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 'mips64el')
+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..9696ea620
--- /dev/null
+++ b/extra/libxcb/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 122471 2011-05-04 08:36:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libxcb
+pkgver=1.7
+pkgrel=2
+pkgdesc="X11 client-side library"
+arch=(i686 x86_64 'mips64el')
+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
+ xcb_auth-fix-memory-leak.patch
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('7540f0587907bce421914f0ddb813810cb2f36f8'
+ '0c9246fd2ea270bfa06cb8ef93df2f8227d83c2a'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+ patch -Np1 -i "${srcdir}/xcb_auth-fix-memory-leak.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/libxcb/xcb_auth-fix-memory-leak.patch b/extra/libxcb/xcb_auth-fix-memory-leak.patch
new file mode 100644
index 000000000..d1000913a
--- /dev/null
+++ b/extra/libxcb/xcb_auth-fix-memory-leak.patch
@@ -0,0 +1,38 @@
+From 5755582444ad0ba79e661ab3173cc38e9e588d83 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 11 Nov 2010 01:49:41 +0000
+Subject: xcb_auth: Fix memory leak in _xcb_get_auth_info.
+
+If the initial get_peer_sock_name(getpeername ...) succeeds, the
+pointer to allocated memory is overwritten by the later call to
+get_peer_sock_name(getsockname ...). Fix that up by freeing
+the allocated memory before overwriting the pointer.
+
+Signed-off-by: Nick Bowler <nbowler@draconx.ca>
+Signed-off-by: Julien Danjou <julien@danjou.info>
+---
+diff --git a/src/xcb_auth.c b/src/xcb_auth.c
+index 1af27fc..4839b78 100644
+--- a/src/xcb_auth.c
++++ b/src/xcb_auth.c
+@@ -327,10 +327,15 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
+ if (!info->namelen)
+ goto no_auth; /* out of memory */
+
+- if (!gotsockname && (sockname = get_peer_sock_name(getsockname, fd)) == NULL)
++ if (!gotsockname)
+ {
+- free(info->name);
+- goto no_auth; /* can only authenticate sockets */
++ free(sockname);
++
++ if ((sockname = get_peer_sock_name(getsockname, fd)) == NULL)
++ {
++ free(info->name);
++ goto no_auth; /* can only authenticate sockets */
++ }
+ }
+
+ ret = compute_auth(info, authptr, sockname);
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/libxcomposite/PKGBUILD b/extra/libxcomposite/PKGBUILD
new file mode 100644
index 000000000..860c1e4f4
--- /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 'mips64el')
+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..aca6b0796
--- /dev/null
+++ b/extra/libxcursor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 130855 2011-07-08 13:02:13Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=libxcursor
+pkgver=1.1.12
+pkgrel=1
+pkgdesc="X cursor management library"
+arch=(i686 x86_64 'mips64el')
+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=('f68d7baed5ecf4b1ae88004dd05ef4680d63ee2c')
+
+build() {
+ cd "${srcdir}/libXcursor-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/libXcursor-${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/libxdamage/PKGBUILD b/extra/libxdamage/PKGBUILD
new file mode 100644
index 000000000..f54fb1363
--- /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 'mips64el')
+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..85b694ad7
--- /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 'mips64el')
+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..69c6a9fe1
--- /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 'mips64el')
+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..5d7bdd2f0
--- /dev/null
+++ b/extra/libxext/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 123247 2011-05-09 13:35:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxext
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="X11 miscellaneous extensions library"
+arch=(i686 x86_64 'mips64el')
+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=('0bf3708177b9320091ebc069e905c042c31d859d')
+
+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..bfcd297e2
--- /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.1
+pkgdesc="a freedesktop.org compliant menu implementation for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+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..e6051915a
--- /dev/null
+++ b/extra/libxfce4ui/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 124354 2011-05-20 06:47:50Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Xavier Devlamynck <magicrhesus@ouranos.be>
+
+pkgname=libxfce4ui
+pkgver=4.8.0
+pkgrel=3.1
+pkgdesc="share commonly used Xfce widgets among the Xfce applications"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=('libxfce4util>=4.8.0' 'gtk2' "xfconf>=4.8.0" 'libsm' '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..f6cbca3aa
--- /dev/null
+++ b/extra/libxfce4util/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 138125 2011-09-17 02:23:22Z allan $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=libxfce4util
+pkgver=4.8.2
+pkgrel=1.1
+pkgdesc="Basic utility non-GUI functions for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=('glib2')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/libxfce4util/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3376a77637a4292a863027d595548ee2')
+
+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..cd5e7168a
--- /dev/null
+++ b/extra/libxfcegui4/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 124284 2011-05-18 17:58:51Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=libxfcegui4
+pkgver=4.8.1
+pkgrel=3.1
+pkgdesc="Various gtk widgets for Xfce"
+arch=(i686 x86_64 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=('startup-notification' "xfconf>=4.8.0" "libglade" 'libsm' 'hicolor-icon-theme')
+makedepends=('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..95c88ce88
--- /dev/null
+++ b/extra/libxfixes/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 119203 2011-04-11 10:42:49Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxfixes
+pkgver=5.0
+pkgrel=1
+pkgdesc="X11 miscellaneous 'fixes' extension library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'fixesproto>=5.0')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2)
+sha1sums=('3e4d374e9026111a04cd669d4b3434273fc34fe0')
+
+build() {
+ cd "${srcdir}/libXfixes-${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/libxfont/PKGBUILD b/extra/libxfont/PKGBUILD
new file mode 100644
index 000000000..2040b2742
--- /dev/null
+++ b/extra/libxfont/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 135207 2011-08-11 07:14:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxfont
+pkgver=1.4.4
+pkgrel=1
+pkgdesc="X11 font rasterisation library"
+arch=(i686 x86_64 'mips64el')
+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=('189dd7a3756cb80bcf41b779bf05ec3c366e3041')
+
+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..1ec28e76e
--- /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' 'mips64el')
+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..8c5197122
--- /dev/null
+++ b/extra/libxi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 130682 2011-07-07 17:24:45Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxi
+pkgver=1.4.3
+pkgrel=1
+pkgdesc="X11 Input extension library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ XExtInt-align-classes-n32.diff)
+sha1sums=('c66cfdee74e8d169a7992b5f257395e653ca761b'
+ '30931831efa9a7f8a888f41bb9284fa32f2e2392')
+
+build() {
+ cd "${srcdir}/libXi-${pkgver}"
+ patch -Nup0 < "${srcdir}/XExtInt-align-classes-n32.diff"
+ ./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/libxi/XExtInt-align-classes-n32.diff b/extra/libxi/XExtInt-align-classes-n32.diff
new file mode 100644
index 000000000..dc5cc4db3
--- /dev/null
+++ b/extra/libxi/XExtInt-align-classes-n32.diff
@@ -0,0 +1,31 @@
+--- src/XExtInt.c.orig 2011-06-14 20:46:50.254164713 +0200
++++ src/XExtInt.c 2011-06-14 22:08:38.173047738 +0200
+@@ -1419,6 +1419,13 @@
+ for (i = 0; i < nclasses; i++)
+ {
+ int l = 0;
++#ifdef _ABIN32
++ /* On MIPS n32 doubles must be 8 byte aligned, but longs take
++ 4 bytes, so next_block could make this structure
++ unaligned. */
++ if(len % 8 != 0)
++ len += 8 - len % 8;
++#endif
+ any_wire = (xXIAnyInfo*)ptr_wire;
+ switch(any_wire->type)
+ {
+@@ -1467,6 +1474,14 @@
+
+ for (i = 0; i < nclasses; i++)
+ {
++#ifdef _ABIN32
++ /* On MIPS n32 doubles must be 8 byte aligned, but longs take
++ 4 bytes, so next_block could make this structure
++ unaligned. */
++ if(((size_t) ptr_lib) % 8 != 0)
++ ptr_lib += 8 - ((size_t) ptr_lib) % 8;
++#endif
++
+ any_lib = (XIAnyClassInfo*)ptr_lib;
+ any_wire = (xXIAnyInfo*)ptr_wire;
+
diff --git a/extra/libxinerama/PKGBUILD b/extra/libxinerama/PKGBUILD
new file mode 100644
index 000000000..53aba3ae1
--- /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 'mips64el')
+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..32c0d5adf
--- /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 'mips64el')
+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..5b6d40daf
--- /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' 'mips64el')
+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..1779f53c5
--- /dev/null
+++ b/extra/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 'mips64el')
+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/extra/libxmi/PKGBUILD b/extra/libxmi/PKGBUILD
new file mode 100644
index 000000000..e8cedeacf
--- /dev/null
+++ b/extra/libxmi/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 141631 2011-11-01 00:42:15Z giovanni $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Tobias Kieslich [tobias.justdreams.de]
+
+pkgname=libxmi
+pkgver=1.2
+pkgrel=5
+pkgdesc="A library for rasterizing 2-D vector graphics"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/libxmi/libxmi.html"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+install=libxmi.install
+source=(http://mirrors.usc.edu/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4e6935484f0ad71b531920bf4c546b47')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ autoreconf --force --install
+ ./configure --prefix=/usr --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libxmi/libxmi.install b/extra/libxmi/libxmi.install
new file mode 100644
index 000000000..5d9821e43
--- /dev/null
+++ b/extra/libxmi/libxmi.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libxmi.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/extra/libxml++/PKGBUILD b/extra/libxml++/PKGBUILD
new file mode 100644
index 000000000..6d4dc8db8
--- /dev/null
+++ b/extra/libxml++/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 137178 2011-09-06 09:14:31Z ibiru $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgbase=libxml++
+pkgname=('libxml++' 'libxml++-docs')
+pkgver=2.34.2
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://libxmlplusplus.sourceforge.net/"
+makedepends=('pkgconfig' 'glibmm-docs' 'libxml2' 'glibmm')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.34/${pkgbase}-${pkgver}.tar.xz)
+sha256sums=('77daba20ab76631071d4ed4cc18fa2e981160ca05ae661e8d146f2b0728f9baa')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_libxml++() {
+ pkgdesc="C++ bindings to libxml2"
+ depends=('libxml2' 'glibmm')
+ 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..987b3fa83
--- /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.1
+pkgdesc="XML parsing library, version 2"
+arch=(i686 x86_64 'mips64el')
+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..24374eb55
--- /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' 'mips64el')
+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..1b6cfa728
--- /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' 'mips64el')
+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..2b5734e3b
--- /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.1
+pkgdesc="X11 pixmap library"
+arch=(i686 x86_64 'mips64el')
+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..21f4de688
--- /dev/null
+++ b/extra/libxrandr/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143893 2011-11-30 19:05:26Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libxrandr
+pkgver=1.3.2
+pkgrel=2
+pkgdesc="X11 RandR extension library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('0c844a4c5237f96794f0c18a5af16dc5ab7a36ec')
+
+build() {
+ cd "${srcdir}/libXrandr-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/libXrandr-${pkgver}"
+ 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..1ff10819b
--- /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 'mips64el')
+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..2f3cdc8f8
--- /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 'mips64el')
+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..372d98220
--- /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.1
+pkgdesc="XML stylesheet transformation library"
+arch=('i686' 'x86_64' 'mips64el')
+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..c48afc968
--- /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 'mips64el')
+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..5676be5c2
--- /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 'mips64el')
+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..adbb507e7
--- /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 'mips64el')
+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..17446b190
--- /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 'mips64el')
+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..626ff5a95
--- /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 'mips64el')
+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..09c80014b
--- /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 'mips64el')
+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..fb98a7fed
--- /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' 'mips64el')
+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..e8e6d0839
--- /dev/null
+++ b/extra/libytnef/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andre Klitzing <aklitzing () online () de>
+
+pkgname=libytnef
+pkgver=1.5
+pkgrel=3
+pkgdesc="Yerase's TNEF Stream Reader library (decode winmail.dat)"
+url="http://freshmeat.net/projects/ytnef/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!libtool')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/ytnef/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6c44b955f33cf714c75a7bbe895cc352')
+
+build() {
+ # Install updated config.guess and config.sub
+ cp "$srcdir/config.guess" "$srcdir/config.sub" "$srcdir/${pkgname}-${pkgver}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/lib/libytnef.a"
+}
diff --git a/extra/libytnef/config.guess b/extra/libytnef/config.guess
new file mode 100755
index 000000000..f7dd69ecc
--- /dev/null
+++ b/extra/libytnef/config.guess
@@ -0,0 +1,1516 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
+
+timestamp='2011-08-20'
+
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner. Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/extra/libytnef/config.sub b/extra/libytnef/config.sub
new file mode 100755
index 000000000..0d2cddec7
--- /dev/null
+++ b/extra/libytnef/config.sub
@@ -0,0 +1,1766 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
+
+timestamp='2011-09-09'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 \
+ | ns16k | ns32k \
+ | open8 \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+ | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/extra/libzip/PKGBUILD b/extra/libzip/PKGBUILD
new file mode 100644
index 000000000..5c485cce0
--- /dev/null
+++ b/extra/libzip/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 122444 2011-05-04 07:26:57Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libzip
+pkgver=0.10
+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' 'mips64el')
+depends=('zlib')
+options=('!libtool')
+source=("http://www.nih.at/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'fix-headers.patch')
+md5sums=('47cdfcbc08c8bea0b52fdee4bf591622'
+ '249395bd3a426c4c4e993e9d4753e1dd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i "${srcdir}/fix-headers.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libzip/fix-headers.patch b/extra/libzip/fix-headers.patch
new file mode 100644
index 000000000..759171070
--- /dev/null
+++ b/extra/libzip/fix-headers.patch
@@ -0,0 +1,15 @@
+diff -urN libzip-0.10rc1.old/lib/Makefile.am libzip-0.10rc1/lib/Makefile.am
+--- libzip-0.10rc1.old/lib/Makefile.am 2011-03-05 01:07:33.921722002 +0100
++++ libzip-0.10rc1/lib/Makefile.am 2011-03-05 20:29:30.349388003 +0100
+@@ -2,8 +2,9 @@
+
+ lib_LTLIBRARIES = libzip.la
+ noinst_HEADERS = zipint.h
+-include_HEADERS = zip.h
+-libinclude_HEADERS = zipconf.h
++include_HEADERS = \
++ zip.h \
++ zipconf.h
+
+ # also update CMakeLists.txt when changing version
+ libzip_la_LDFLAGS=-no-undefined -version-info 2:0
diff --git a/extra/libzvt/PKGBUILD b/extra/libzvt/PKGBUILD
new file mode 100644
index 000000000..02cac3521
--- /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 'mips64el')
+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..3b2767f66
--- /dev/null
+++ b/extra/licq/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 137082 2011-09-06 03:22:00Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=licq
+pkgver=1.5.1
+pkgrel=1
+pkgdesc="Advanced graphical ICQ clone and more for Unix"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.licq.org"
+license=('GPL')
+depends=('libxss' 'qt' 'openssl')
+makedepends=('cmake' 'boost')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/licq/licq-${pkgver}.tar.bz2)
+md5sums=('7dbf9f4f190fdae4c34ab6edefb34997')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # licq
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+
+ # qt4-gui
+ cd ../plugins/qt4-gui
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_MODULE_PATH="${srcdir}/${pkgname}-${pkgver}/cmake" ..
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+
+ cd ../plugins/qt4-gui/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/lighttpd/PKGBUILD b/extra/lighttpd/PKGBUILD
new file mode 100644
index 000000000..0cb1b9276
--- /dev/null
+++ b/extra/lighttpd/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 143810 2011-11-29 13:33:30Z stephane $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=lighttpd
+pkgver=1.4.29
+pkgrel=3
+pkgdesc='a secure, fast, compliant and very flexible web-server'
+license=('custom')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lighttpd.net/"
+depends=('pcre' 'bzip2' 'libldap' 'util-linux')
+makedepends=('fcgi' 'libmysqlclient' 'lua' 'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')
+optdepends=('libxml2: mod_webdav'
+ 'lua: mod_cml/mod_magnet'
+ 'libmysqlclient: mod_mysql_vhost'
+ 'sqlite3: mod_webdav')
+backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd')
+options=('!libtool' 'emptydirs')
+source=("http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.bz2"
+ "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.bz2.asc"
+ 'lighttpd.rc.d' 'lighttpd.logrotate.d' 'lighttpd.conf')
+md5sums=('e6e67b09986cb504db630b5a86b2dd76'
+ 'de2afb4ed6a088fd7fa5f13c387a08f0'
+ '268386e71f5748dc1d887b9a0ab65589'
+ '913e2157fa78d990c32146f387d44c2b'
+ 'acdaa94299e6299cb5085e6d88babeca')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/lighttpd/modules \
+ --sysconfdir=/etc/lighttpd \
+ --with-mysql \
+ --with-ldap \
+ --with-attr \
+ --with-openssl \
+ --with-kerberos5 \
+ --without-fam \
+ --with-webdav-props \
+ --with-webdav-locks \
+ --with-gdbm \
+ --with-memcache \
+ --with-lua
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -D -m755 $srcdir/lighttpd.rc.d $pkgdir/etc/rc.d/lighttpd
+ install -D -m644 $srcdir/lighttpd.logrotate.d $pkgdir/etc/logrotate.d/lighttpd
+ install -D -m644 $srcdir/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf
+ install -d -m755 -o http -g http $pkgdir/var/{log,cache}/lighttpd/
+
+ pushd doc/config >/dev/null
+ find . -type f ! -name 'Makefile*' -exec install -D -m644 {} ${pkgdir}/usr/share/doc/lighttpd/config/{} \;
+ popd >/dev/null
+
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/lighttpd/lighttpd.conf b/extra/lighttpd/lighttpd.conf
new file mode 100644
index 000000000..4ca1b23a4
--- /dev/null
+++ b/extra/lighttpd/lighttpd.conf
@@ -0,0 +1,12 @@
+# This is a minimal example config
+# See /usr/share/doc/lighttpd
+# and http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
+
+server.port = 80
+server.username = "http"
+server.groupname = "http"
+server.document-root = "/srv/http"
+server.errorlog = "/var/log/lighttpd/error.log"
+dir-listing.activate = "enable"
+index-file.names = ( "index.html" )
+mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png" )
diff --git a/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..88f0a1474
--- /dev/null
+++ b/extra/lighttpd/lighttpd.rc.d
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+pid_file='/var/run/lighttpd/lighttpd-angel.pid'
+
+get_pid() {
+ if [ -r "${pid_file}" ]; then
+ cat "${pid_file}"
+ else
+ pgrep -f /usr/sbin/lighttpd-angel
+ fi
+}
+
+test_config() {
+ stat_busy 'Checking configuration'
+ if [ $(id -u) -ne 0 ]; then
+ stat_append '(This script must be run as root)'
+ stat_die
+ fi
+
+ if [ ! -r /etc/lighttpd/lighttpd.conf ]; then
+ stat_append '(/etc/lighttpd/lighttpd.conf not found)'
+ stat_die
+ fi
+
+ /usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_append '(error in /etc/lighttpd/lighttpd.conf)'
+ stat_die
+ fi
+
+ local piddir=$(dirname "${pid_file}")
+ if [ ! -d "${piddir}" ]; then
+ install -d -m755 -o http -g http "${piddir}"
+ fi
+
+ stat_done
+}
+
+start() {
+ stat_busy 'Starting lighttpd'
+
+ local PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ nohup /usr/sbin/lighttpd-angel -D -f /etc/lighttpd/lighttpd.conf >>/var/log/lighttpd/lighttpd-angel.log 2>&1 &
+ if [ $? -gt 0 ]; then
+ stat_die
+ else
+ echo $! > "${pid_file}"
+ add_daemon lighttpd
+ stat_done
+ fi
+ else
+ stat_die
+ fi
+}
+
+stop() {
+ stat_busy 'Stopping lighttpd'
+ local PID=$(get_pid)
+ [ -n "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ [ -f "${pid_file}" ] && rm -f "${pid_file}"
+ rm_daemon lighttpd
+ stat_done
+ fi
+}
+
+gracefull-stop() {
+ stat_busy 'Stopping lighttpd gracefully'
+ local PID=$(get_pid)
+ [ -n "$PID" ] && kill -INT $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ [ -f "${pid_file}" ] && rm -f "${pid_file}"
+ rm_daemon lighttpd
+ stat_done
+ fi
+}
+
+reload() {
+ stat_busy 'Reloading lighttpd'
+ local PID=$(get_pid)
+ [ -n "$PID" ] && kill -HUP $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_die
+ else
+ stat_done
+ fi
+}
+
+
+case "$1" in
+ start)
+ test_config
+ start
+ ;;
+ stop)
+ test_config
+ stop
+ ;;
+ gracefull-stop)
+ test_config
+ stop
+ ;;
+ reload)
+ test_config
+ reload
+ ;;
+ restart)
+ test_config
+ stop
+ while [ -n "$(get_pid)" ]; do
+ sleep 1
+ done
+ start
+ ;;
+ status)
+ stat_busy 'Checking lighttpd status'
+ ck_status lighttpd
+ ;;
+ *)
+ echo "usage: $0 {start|stop|gracefull-stop|reload|restart|status}"
+esac
+
+exit 0
diff --git a/extra/link-grammar/PKGBUILD b/extra/link-grammar/PKGBUILD
new file mode 100644
index 000000000..410fd6601
--- /dev/null
+++ b/extra/link-grammar/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143897 2011-11-30 19:52:19Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=link-grammar
+pkgver=4.7.4
+pkgrel=2
+pkgdesc="A Grammar Checking library"
+arch=('i686' 'x86_64' 'mips64el')
+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..7093d16f2
--- /dev/null
+++ b/extra/linux_logo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 140770 2011-10-19 00:51:32Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=linux_logo
+pkgver=5.11
+pkgrel=1
+pkgdesc="Text-based logo and system information program"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+sha1sums=('bd22808f165574cb3bc98c579aa48c0acab65f39')
+
+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..1b7022396
--- /dev/null
+++ b/extra/liquidwar/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 141061 2011-10-22 20:45:31Z eric $
+# Maintainer: Jeff Mickey <jeff@archlinux.org>
+
+pkgname=liquidwar
+pkgver=5.6.4
+pkgrel=6
+pkgdesc="A unique multiplayer wargame"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ufoot.org/liquidwar/"
+license=('GPL')
+depends=('allegro4')
+makedepends=('python2')
+install=liquidwar.install
+source=(http://www.ufoot.org/download/$pkgname/v5/$pkgver/$pkgname-$pkgver.tar.gz
+ http://www.ufoot.org/sig/$pkgname-$pkgver.tar.gz.sig liquidwar-5.6.4-ovflfix.patch)
+sha1sums=('a3006c4da9517c3af3b7bf165b2c86fa369a71c6'
+ 'a262967d60e0f04ac5b99693144ef6b0038bb6c4'
+ 'e2102792c54a01b7cd14adb6d72404044175ec7e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p0 -i "$srcdir/liquidwar-5.6.4-ovflfix.patch"
+ sed -i 's/python/python2/' doc/Makefile.in
+ [ "$CARCH" == "x86_64" ] && EXTRAOPTS="--disable-asm"
+ LIBS='-lm' PYTHON=yes ./configure --prefix=/usr $EXTRAOPTS
+ make GAMEDIR=/usr/bin DATADIR=/usr/share/liquidwar
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" GAMEDIR=/usr/bin DATADIR=/usr/share/liquidwar install_nolink
+}
diff --git a/extra/liquidwar/liquidwar-5.6.4-ovflfix.patch b/extra/liquidwar/liquidwar-5.6.4-ovflfix.patch
new file mode 100644
index 000000000..446385624
--- /dev/null
+++ b/extra/liquidwar/liquidwar-5.6.4-ovflfix.patch
@@ -0,0 +1,18 @@
+--- src/wwwsrv.c.old 2010-10-26 14:16:31.000000000 +0200
++++ src/wwwsrv.c 2010-10-26 14:17:35.000000000 +0200
+@@ -100,12 +100,12 @@
+
+ data->privacy = privacy;
+ data->log = log;
+- strncpy (data->metaserver, metaserver, URL_SIZE);
++ strncpy (data->metaserver, metaserver, sizeof(data->metaserver));
+ data->port = port;
+ data->busy_players = busy_players;
+ data->max_players = max_players;
+- strncpy (data->password, password, URL_SIZE);
+- strncpy (data->comment, comment, URL_SIZE);
++ strncpy (data->password, password, sizeof(data->password));
++ strncpy (data->comment, comment, sizeof(data->comment));
+ }
+
+ /*------------------------------------------------------------------*/
diff --git a/extra/liquidwar/liquidwar.install b/extra/liquidwar/liquidwar.install
new file mode 100644
index 000000000..9c98acbc7
--- /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/PKGBUILD b/extra/lirc/PKGBUILD
new file mode 100644
index 000000000..502905d48
--- /dev/null
+++ b/extra/lirc/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 142392 2011-11-08 22:38:56Z thomas $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgbase=lirc
+pkgname=('lirc' 'lirc-utils')
+pkgver=0.9.0
+pkgrel=8
+epoch=1
+_extramodules=extramodules-3.1-LIBRE
+_kernver="$(cat /lib/modules/${_extramodules}/version)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lirc.org/"
+license=('GPL')
+makedepends=('help2man' 'linux-libre-headers>=3.1' 'linux-libre-headers<3.2' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2')
+options=('!makeflags' '!strip')
+source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2
+ lirc_wpc8769l.patch
+ lircd-handle-large-config.patch
+ lirc_atiusb-kfifo.patch
+ kernel-2.6.39.patch
+ lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
+md5sums=('b232aef26f23fe33ea8305d276637086'
+ '1cce37e18e3f6f46044abab29016d18f'
+ 'b70cc9640505205446ec47b7d4779f38'
+ '1f8b104a2365d9f93404b143f499059b'
+ '087a7d102e1c96bf1179f38db2b0b237'
+ '8d0e238dc0eda95e340fe570605da492'
+ '85f7fdac55e5256967241864049bf5e9'
+ '3deb02604b37811d41816e9b4385fcc3'
+ '5b1f8c9cd788a39a6283f93302ce5c6e'
+ 'f0c0ac930326168035f0c8e24357ae55'
+ '69d099e6deedfa3c1ee2b6e82d9b8bfb')
+
+build() {
+ cd "${srcdir}/lirc-${pkgver}"
+ patch -Np1 -i "${srcdir}/lirc_wpc8769l.patch"
+ patch -Np1 -i "${srcdir}/lircd-handle-large-config.patch"
+ patch -Np1 -i "${srcdir}/lirc_atiusb-kfifo.patch"
+ patch -Np1 -i "${srcdir}/kernel-2.6.39.patch"
+
+ 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' 'linux-libre>=3.1' 'linux-libre<3.2')
+ replaces=('lirc+pctv')
+ install=lirc.install
+
+ cd "${srcdir}/lirc-${pkgver}/drivers"
+ make DESTDIR="${pkgdir}" moduledir="/lib/modules/${_extramodules}" install
+
+ # set the kernel we've built for inside the install script
+ sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${_extramodules}/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')
+ backup=('etc/conf.d/lircd.conf' 'etc/conf.d/irexec.conf')
+
+ 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/kernel-2.6.39.patch b/extra/lirc/kernel-2.6.39.patch
new file mode 100644
index 000000000..7353d61ca
--- /dev/null
+++ b/extra/lirc/kernel-2.6.39.patch
@@ -0,0 +1,54 @@
+diff -ru lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c
+--- lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c 2011-03-25 23:28:18.000000000 +0100
++++ lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c 2011-06-07 17:02:20.356580306 +0200
+@@ -48,7 +48,6 @@
+ #include <linux/slab.h>
+ #include <linux/module.h>
+ #include <linux/kmod.h>
+-#include <linux/smp_lock.h>
+ #include <linux/completion.h>
+ #include <linux/uaccess.h>
+ #include <linux/usb.h>
+diff -ru lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c
+--- lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c 2011-03-25 23:28:18.000000000 +0100
++++ lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c 2011-06-07 17:04:19.725933627 +0200
+@@ -555,8 +555,8 @@
+ kfree(ir);
+ return -EINVAL;
+ }
+- printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n",
+- adap->id, addr, ir->c.name);
++ printk(KERN_INFO "lirc_i2c: chip found @ 0x%02x (%s)\n",
++ addr, ir->c.name);
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ /* register device */
+diff -ru lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c
+--- lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-03-25 23:28:18.000000000 +0100
++++ lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-06-07 17:07:23.984935411 +0200
+@@ -361,14 +361,14 @@
+ size = count << 3;
+
+ ldata = (unsigned long *) data_buf;
+- next_one = generic_find_next_le_bit(ldata, size, 0);
++ next_one = find_next_zero_bit_le(ldata, size, 0);
+
+ if (next_one > 0)
+ put_pulse_bit(next_one
+ * WPC8769L_USECS_PER_BIT);
+
+ while (next_one < size) {
+- next_zero = generic_find_next_zero_le_bit(ldata,
++ next_zero = find_next_zero_bit_le(ldata,
+ size, next_one + 1);
+
+ put_space_bit(
+@@ -376,7 +376,7 @@
+ * WPC8769L_USECS_PER_BIT);
+
+ if (next_zero < size) {
+- next_one = generic_find_next_le_bit(ldata,
++ next_one = find_next_bit_le(ldata,
+ size, next_zero + 1);
+
+ put_pulse_bit(
diff --git a/extra/lirc/lirc.install b/extra/lirc/lirc.install
new file mode 100644
index 000000000..1e7c4f4a1
--- /dev/null
+++ b/extra/lirc/lirc.install
@@ -0,0 +1,16 @@
+EXTRAMODULES=extramodules-3.1-ARCH
+
+post_install() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $(cat /lib/modules/$EXTRAMODULES/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/lirc_atiusb-kfifo.patch b/extra/lirc/lirc_atiusb-kfifo.patch
new file mode 100644
index 000000000..a64984dce
--- /dev/null
+++ b/extra/lirc/lirc_atiusb-kfifo.patch
@@ -0,0 +1,31 @@
+From ec3c5660e67c122e2d5eb9cfa838c9709fccf8e0 Mon Sep 17 00:00:00 2001
+From: Jason Martin <publicmsu@gmail.com>
+Date: Fri, 3 Jun 2011 00:12:51 -0400
+Subject: [PATCH] lirc_atiusb: fix buffer alloc to work with new kfifo
+
+I came across posts with regards to lirc_atiusb and its compatibility
+with newer kernels, and their use of kfifo.I spent a little bit of time
+this evening, and was able to correct the issues with the driver, and
+now have a functioning lirc_atiusb device under the 2.6.38 kernel.
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ drivers/lirc_atiusb/lirc_atiusb.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/lirc_atiusb/lirc_atiusb.c b/drivers/lirc_atiusb/lirc_atiusb.c
+index 52080de..bf2b631 100644
+--- a/drivers/lirc_atiusb/lirc_atiusb.c
++++ b/drivers/lirc_atiusb/lirc_atiusb.c
+@@ -1048,7 +1048,7 @@ static struct atirf_dev *new_irctl(struct usb_interface *intf)
+ goto new_irctl_failure_check;
+ }
+
+- if (lirc_buffer_init(driver->rbuf, dclen, 1)) {
++ if (lirc_buffer_init(driver->rbuf, dclen, 2)) {
+ mem_failure = 4;
+ goto new_irctl_failure_check;
+ }
+--
+1.7.0.1
+
diff --git a/extra/lirc/lirc_wpc8769l.patch b/extra/lirc/lirc_wpc8769l.patch
new file mode 100644
index 000000000..e4e2a049b
--- /dev/null
+++ b/extra/lirc/lirc_wpc8769l.patch
@@ -0,0 +1,88 @@
+From 413e83bf504fe9a9a177f27742220cfcb184b034 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Juan=20Jes=C3=BAs=20Garc=C3=ADa=20de=20Soria=20Lucena?= <skandalfo@gmail.com>
+Date: Wed, 30 Mar 2011 16:46:35 -0400
+Subject: [PATCH] Make lirc_wpc8769l functional again
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ drivers/lirc_wpc8769l/lirc_wpc8769l.c | 28 +++++++++++++++++-----------
+ 1 files changed, 17 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/lirc_wpc8769l/lirc_wpc8769l.c b/drivers/lirc_wpc8769l/lirc_wpc8769l.c
+index f820d11..4d04063 100644
+--- a/drivers/lirc_wpc8769l/lirc_wpc8769l.c
++++ b/drivers/lirc_wpc8769l/lirc_wpc8769l.c
+@@ -816,10 +816,6 @@ static int set_use_inc(void *data)
+ /* Reset last timeout value. */
+ lastus = 0;
+
+- /* Init the read buffer. */
+- if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0)
+- return -ENOMEM;
+-
+ /* Acquire the IRQ. */
+ result = request_irq(irq, irq_handler,
+ IRQF_DISABLED | IRQF_SHARED,
+@@ -863,9 +859,6 @@ static void set_use_dec(void *data)
+ /* Free the IRQ. */
+ free_irq(irq, THIS_MODULE);
+ dprintk("Freed IRQ %d\n", irq);
+-
+- /* Free the RX buffer. */
+- lirc_buffer_free(&rbuf);
+ }
+
+ static struct lirc_driver driver = {
+@@ -1065,19 +1058,29 @@ static int __init lirc_wpc8769l_module_init(void)
+ /* Do load-time checks. */
+ wpc8769l_power_up_and_check_if_we_woke_us_up();
+
++ /* Init the read buffer. */
++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) {
++ rc = -ENOMEM;
++ goto exit_platform_exit;
++ }
++
+ /* Configure the driver hooks. */
+ driver.features = LIRC_CAN_REC_MODE2;
++ driver.dev = &lirc_wpc8769l_platform_dev->dev;
+ driver.minor = lirc_register_driver(&driver);
+ if (driver.minor < 0) {
+ eprintk("lirc_register_driver failed!\n");
+ rc = -EIO;
+- goto exit_platform_exit;
++ goto exit_release_buffer;
+ }
+
+ iprintk("Driver loaded.\n");
+
+ return 0; /* Everything OK. */
+
++exit_release_buffer:
++ lirc_buffer_free(&rbuf);
++
+ exit_platform_exit:
+ lirc_wpc8769l_platform_exit();
+
+@@ -1095,12 +1098,15 @@ module_init(lirc_wpc8769l_module_init);
+
+ static void __exit lirc_wpc8769l_module_exit(void)
+ {
+- /* Unregister the platform driver and device. */
+- lirc_wpc8769l_platform_exit();
+-
+ /* Unregister the LIRC driver. */
+ lirc_unregister_driver(driver.minor);
+
++ /* Free the buffer. */
++ lirc_buffer_free(&rbuf);
++
++ /* Unregister the platform driver and device. */
++ lirc_wpc8769l_platform_exit();
++
+ /* Release the second range. */
+ if (baseport2)
+ release_region(baseport2, WPC8769L_IO_REGION_2_SIZE);
+--
+1.7.0.1
+
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-handle-large-config.patch b/extra/lirc/lircd-handle-large-config.patch
new file mode 100644
index 000000000..85bc20518
--- /dev/null
+++ b/extra/lirc/lircd-handle-large-config.patch
@@ -0,0 +1,39 @@
+From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001
+From: Jarod Wilson <jarod@redhat.com>
+Date: Wed, 6 Apr 2011 11:04:12 -0400
+Subject: [PATCH] lircd: handle larger config files in write_socket better
+
+Pointed out by Michael Zanetti on list, irsend LIST has issues with long
+config files, which didn't exist in maintainer mode, as we were using a
+do while loop to make sure we spit out everything. Just use that loop
+all the time.
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ daemons/lircd.c | 8 ++------
+ 1 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/daemons/lircd.c b/daemons/lircd.c
+index 6c21a3a..ddcca05 100644
+--- a/daemons/lircd.c
++++ b/daemons/lircd.c
+@@ -231,14 +231,10 @@ inline int write_socket(int fd, const char *buf, int len)
+ int done, todo = len;
+
+ while (todo) {
+-#ifdef SIM_REC
+ do {
+ done = write(fd, buf, todo);
+- }
+- while (done < 0 && errno == EAGAIN);
+-#else
+- done = write(fd, buf, todo);
+-#endif
++ } while (done < 0 && errno == EAGAIN);
++
+ if (done <= 0)
+ return (done);
+ buf += done;
+--
+1.7.0.1
+
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..8b5dbf8b6
--- /dev/null
+++ b/extra/live-media/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 144603 2011-12-07 21:23:41Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
+
+pkgname=live-media
+pkgver=2011.12.02
+pkgrel=1
+pkgdesc="A set of C++ libraries for multimedia streaming"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://live555.com/liveMedia"
+depends=('gcc-libs')
+source=("http://live555.com/liveMedia/public/live.${pkgver}.tar.gz")
+
+build() {
+ cd ${srcdir}/live
+
+ sed \
+ -e 's/$(INCLUDES) -I. -O2 -DSOCKLEN_T/$(INCLUDES) -I. '"${CFLAGS}"' -fPIC -DSOCKLEN_T/g' \
+ -e 's/\(LIBRARY_LINK =\).*/\1 $(LD) '"${LDFLAGS}"' -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
+}
+md5sums=('4f10d93d33f6714a980fd1655ead69cd')
diff --git a/extra/llvm/PKGBUILD b/extra/llvm/PKGBUILD
new file mode 100644
index 000000000..2c2310b2d
--- /dev/null
+++ b/extra/llvm/PKGBUILD
@@ -0,0 +1,199 @@
+# $Id: PKGBUILD 144867 2011-12-08 20:35:39Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@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=3.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://llvm.org/"
+license=('custom:University of Illinois/NCSA Open Source License')
+makedepends=('libffi' 'python2' 'ocaml')
+source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tar.gz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz
+ clang-plugin-loader-registry.patch
+ cindexer-clang-path.patch
+ clang-pure64.patch
+ enable-lto.patch
+ fix-gold-lto-linking.patch)
+sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477'
+ 'b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d'
+ 'a0a4494f2a692789670be37fd390906dcaa37b1824f740bdaaea21182f2f3a9c'
+ '3074df5322900e087377a8e03a02115463ccc0011c25917c2f06df11facd9b92'
+ '288a82fbff17bc554f5863734246500e637882af33ee8511019d5e0d6cd20524'
+ 'cf8922a932e1859f3783bef2af8ac1e90ce96f8eec79928392327b71b3d7cb89'
+ '24d275cdf170f53844bc7174b065fb51b6ddbb9642ced34702cde1f0f74d9192')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver.src"
+
+ # 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.src" 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
+
+ # 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 clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799)
+ patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch"
+
+ if [[ $CARCH == x86_64 ]]; then
+ # Adjust linker path
+ patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch"
+ fi
+
+ # Make -flto work
+ # Use gold instead of default linker, and always use the plugin
+ patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch"
+
+ # Fix libLTO.so location in gold plugin
+ patch -Np1 -i "$srcdir/fix-gold-lto-linking.patch"
+
+ # Apply strip option to configure
+ _optimized_switch="enable"
+ [[ $(check_option strip) == n ]] && _optimized_switch="disable"
+
+ # Include location of libffi headers in CPPFLAGS
+ export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
+
+ # Force the use of GCC instead of clang
+ CC=gcc CXX=g++ \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib/llvm \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-libffi \
+ --enable-targets=all \
+ --disable-expensive-checks \
+ --disable-debug-runtime \
+ --disable-assertions \
+ --with-binutils-include=/usr/include \
+ --$_optimized_switch-optimized
+
+ make REQUIRES_RTTI=1
+}
+
+package_llvm() {
+ pkgdesc="Low Level Virtual Machine"
+ depends=('perl' 'libffi')
+
+ cd "$srcdir/$pkgname-$pkgver.src"
+
+ # 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"
+ # Copy missing file into the expected location
+ cp bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/Release/
+ # -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.*
+
+ # 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.src"
+
+ 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/"
+ depends=("llvm=$pkgver-$pkgrel" 'gcc')
+
+ # Fix installation path for clang docs
+ sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \
+ "$srcdir/llvm-$pkgver.src/Makefile.config"
+
+ cd "$srcdir/llvm-$pkgver.src/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.src/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.src/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$/&2/' \
+ "$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/extra/llvm/bug-9869-operator-h-c++0x.patch b/extra/llvm/bug-9869-operator-h-c++0x.patch
new file mode 100644
index 000000000..b95d7d772
--- /dev/null
+++ b/extra/llvm/bug-9869-operator-h-c++0x.patch
@@ -0,0 +1,57 @@
+--- llvm/trunk/include/llvm/Operator.h 2011/02/07 16:40:21 125006
++++ llvm/trunk/include/llvm/Operator.h 2011/05/08 01:59:22 131062
+@@ -186,28 +186,46 @@
+ };
+
+ class AddOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {
++ ~AddOperator(); // DO NOT IMPLEMENT
++};
+ class SubOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {
++ ~SubOperator(); // DO NOT IMPLEMENT
++};
+ class MulOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
++ ~MulOperator(); // DO NOT IMPLEMENT
++};
+ class ShlOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {
++ ~ShlOperator(); // DO NOT IMPLEMENT
++};
+
+
+ class SDivOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {
++ ~SDivOperator(); // DO NOT IMPLEMENT
++};
+ class UDivOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {
++ ~UDivOperator(); // DO NOT IMPLEMENT
++};
+ class AShrOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {
++ ~AShrOperator(); // DO NOT IMPLEMENT
++};
+ class LShrOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {
++ ~LShrOperator(); // DO NOT IMPLEMENT
++};
+
+
+
+ class GEPOperator
+ : public ConcreteOperator<Operator, Instruction::GetElementPtr> {
++ ~GEPOperator(); // DO NOT IMPLEMENT
++
+ enum {
+ IsInBounds = (1 << 0)
+ };
diff --git a/extra/llvm/cindexer-clang-path.patch b/extra/llvm/cindexer-clang-path.patch
new file mode 100644
index 000000000..ddaab690e
--- /dev/null
+++ b/extra/llvm/cindexer-clang-path.patch
@@ -0,0 +1,10 @@
+--- tools/libclang/CIndexer.cpp.orig 2011-04-07 13:08:24.000000000 +0300
++++ tools/libclang/CIndexer.cpp 2011-04-07 13:11:52.224884642 +0300
+@@ -80,6 +80,7 @@ std::string CIndexer::getClangResourcesP
+
+ // We now have the CIndex directory, locate clang relative to it.
+ LibClangPath.eraseComponent();
++ LibClangPath.eraseComponent();
+ #endif
+
+ LibClangPath.appendComponent("clang");
diff --git a/extra/llvm/clang-plugin-loader-registry.patch b/extra/llvm/clang-plugin-loader-registry.patch
new file mode 100644
index 000000000..f46eb9fce
--- /dev/null
+++ b/extra/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/extra/llvm/clang-pure64.patch b/extra/llvm/clang-pure64.patch
new file mode 100644
index 000000000..9bbbfaa8b
--- /dev/null
+++ b/extra/llvm/clang-pure64.patch
@@ -0,0 +1,13 @@
+Index: lib/Driver/Tools.cpp
+===================================================================
+--- lib/Driver/Tools.cpp (revision 123373)
++++ lib/Driver/Tools.cpp (working copy)
+@@ -3306,7 +3306,7 @@
+ else if (ToolChain.getArch() == llvm::Triple::ppc64)
+ CmdArgs.push_back("/lib64/ld64.so.1");
+ else
+- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
++ CmdArgs.push_back("/lib/ld-linux-x86-64.so.2");
+ }
+
+ CmdArgs.push_back("-o");
diff --git a/extra/llvm/clang-toolchains-gcc-versions.patch b/extra/llvm/clang-toolchains-gcc-versions.patch
new file mode 100644
index 000000000..7624842a8
--- /dev/null
+++ b/extra/llvm/clang-toolchains-gcc-versions.patch
@@ -0,0 +1,12 @@
+diff -upr clang-2.9.orig/lib/Driver/ToolChains.cpp clang-2.9/lib/Driver/ToolChains.cpp
+--- clang-2.9.orig/lib/Driver/ToolChains.cpp 2011-03-21 23:29:27.000000000 +0200
++++ clang-2.9/lib/Driver/ToolChains.cpp 2011-04-08 00:03:34.000000000 +0300
+@@ -1449,7 +1449,7 @@ Linux::Linux(const HostInfo &Host, const
+ GccTriple = "i586-suse-linux";
+ }
+
+- const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
++ const char* GccVersions[] = {"4.6.2", "4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
+ "4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2",
+ "4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1",
+ "4.2"};
diff --git a/extra/llvm/enable-lto.patch b/extra/llvm/enable-lto.patch
new file mode 100644
index 000000000..3c8691b17
--- /dev/null
+++ b/extra/llvm/enable-lto.patch
@@ -0,0 +1,32 @@
+Index: lib/Driver/ToolChains.cpp
+===================================================================
+--- lib/Driver/ToolChains.cpp (revision 123373)
++++ lib/Driver/ToolChains.cpp (working copy)
+@@ -1398,7 +1398,7 @@
+ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+ GCCInstallation.getTriple() + "/bin").str());
+
+- Linker = GetProgramPath("ld");
++ Linker = GetProgramPath("ld.gold");
+
+ LinuxDistro Distro = DetectLinuxDistro(Arch);
+
+Index: lib/Driver/Tools.cpp
+===================================================================
+--- lib/Driver/Tools.cpp (revision 123373)
++++ lib/Driver/Tools.cpp (working copy)
+@@ -3412,11 +3412,11 @@
+ }
+ }
+
+- if (Args.hasArg(options::OPT_use_gold_plugin)) {
++ // if (Args.hasArg(options::OPT_use_gold_plugin)) {
+ CmdArgs.push_back("-plugin");
+- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
++ std::string Plugin = ToolChain.getDriver().Dir + "/../lib/llvm/LLVMgold.so";
+ CmdArgs.push_back(Args.MakeArgString(Plugin));
+- }
++ // }
+
+ C.addCommand(new Command(JA, *this, ToolChain.Linker.c_str(), CmdArgs));
+ }
diff --git a/extra/llvm/fix-gold-lto-linking.patch b/extra/llvm/fix-gold-lto-linking.patch
new file mode 100644
index 000000000..84d166471
--- /dev/null
+++ b/extra/llvm/fix-gold-lto-linking.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-3.0.src.orig/tools/gold/Makefile llvm-3.0.src/tools/gold/Makefile
+--- llvm-3.0.src.orig/tools/gold/Makefile 2011-05-31 23:00:45.000000000 +0300
++++ llvm-3.0.src/tools/gold/Makefile 2011-12-04 22:06:59.000000000 +0200
+@@ -26,6 +26,6 @@ LINK_COMPONENTS := support
+ # Because off_t is used in the public API, the largefile parts are required for
+ # ABI compatibility.
+ CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+-CXXFLAGS+=$(SharedLibDir)/$(SharedPrefix)LTO$(SHLIBEXT)
++CXXFLAGS+=-L $(SharedLibDir) -lLTO
+
+ include $(LEVEL)/Makefile.common
diff --git a/extra/lm_sensors/PKGBUILD b/extra/lm_sensors/PKGBUILD
new file mode 100644
index 000000000..d2ea6d729
--- /dev/null
+++ b/extra/lm_sensors/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 134304 2011-08-02 20:34:25Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=lm_sensors
+pkgver=3.3.1
+pkgrel=2
+pkgdesc="Collection of user space tools for general SMBus access and hardware monitoring"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lm-sensors.org/"
+license=('GPL' 'LGPL')
+depends=('perl' 'sysfsutils')
+makedepends=('rrdtool')
+optdepends=('rrdtool: for logging with sensord')
+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 healthd healthd.conf healthd.rc sensord.conf \
+ sensord.rc daemonarg.patch linux_3.0.patch)
+md5sums=('8c0eebda8524fc87da1393b4564d279b'
+ 'c370f5e620bfe41113354a1e22c0c18c'
+ '232bedf043dd5dedde82df1a399c682c'
+ '6549050897c237514aeaa2bb6cfd29ea'
+ 'f8af587038b0e2a89c441f7eeaa5e640'
+ '970408d2e509dc4138927020efefe323'
+ '96a8dd468e81d455ec9b165bdf33e0b7'
+ '41a5c20854bbff00ea7174bd2276b736'
+ '40c8eb16af8249a0f1d851fc1057ea15'
+ '5c1be382963145f7191d9c4e45ca9f67')
+sha1sums=('cb819e5a93adb36ef00e6d3c5363f5f474efa78a'
+ 'b2e664b9b87759991f02d0a1e8cac5e95098c0a5'
+ 'a068ac0a3115a6191a487e11422506baa922b40a'
+ '78b5cd36c3cb8e98b972cdd8c4a12687d79a79a8'
+ '6c4e8a2d89dd2fd3ca2f0f4f3b1230111e01b0fc'
+ 'e662881f5d3f3f35a1bc97ba45d2c471dd28c37f'
+ 'de8d4d65406815c389f8a04e2a8508a1ae6749c8'
+ '72a60251d1d55a67307dab4105d9f3f01a080af4'
+ '34241388c4001bfb6e49b7e10da1217e29a258d6'
+ '5662828085cdd981f0dc7cf8f79d3d6e2b72f50c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's|/etc/sysconfig|/etc/conf.d|' \
+ -e 's|/etc/init.d/lm_sensors|/etc/rc.d/sensors|' prog/{detect/sensors-detect,init/lm_sensors.service}
+ patch -p1 < ../daemonarg.patch
+ patch -p0 < ../linux_3.0.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 -m644 prog/init/lm_sensors.service "${pkgdir}/lib/systemd/system/lm_sensors.service"
+ 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/linux_3.0.patch b/extra/lm_sensors/linux_3.0.patch
new file mode 100644
index 000000000..da02a3d49
--- /dev/null
+++ b/extra/lm_sensors/linux_3.0.patch
@@ -0,0 +1,11 @@
+--- prog/detect/sensors-detect 2011-08-02 10:23:46.000000000 +0200
++++ prog/detect/sensors-detect 2011-08-02 10:24:04.000000000 +0200
+@@ -2472,7 +2472,7 @@
+
+ sub initialize_kernel_version
+ {
+- `uname -r` =~ /(\d+)\.(\d+)\.(\d+)(.*)/;
++ `uname -r` =~ /(\d+)\.(\d+)(.*)/;
+ @kernel_version = ($1, $2, $3, $4);
+ chomp($kernel_arch = `uname -m`);
+
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.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..17cbb2b01
--- /dev/null
+++ b/extra/loudmouth/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id
+# 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=3
+pkgdesc="A lightweight Jabber client library written in C/Glib"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+url="http://groups.google.com/group/loudmouth-dev"
+depends=('glib2' 'gnutls' 'libidn')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/lpsolve/PKGBUILD b/extra/lpsolve/PKGBUILD
new file mode 100644
index 000000000..3d70f3bf0
--- /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' 'mips64el')
+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..96dcb9eb1
--- /dev/null
+++ b/extra/lsdvd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 124465 2011-05-22 11:21:47Z andrea $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=lsdvd
+pkgver=0.16
+pkgrel=5
+pkgdesc="A C application for reading the contents of a DVD and printing the contents to your terminal"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/lsdvd/"
+depends=('libdvdread')
+license=('GPL2')
+#Special thanks to Mathieu Clabaut <mathieu.clabaut@gmail.com> for patches
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ stdint_usage.patch)
+md5sums=('340e1abe5c5e5abf7ff8031e78f49ee7'
+ '6cbcbfde873f894bd3c784f65141b2fc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/stdint_usage.patch"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..44b249d78
--- /dev/null
+++ b/extra/lsof/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 140198 2011-10-09 08:36:54Z 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.85
+pkgrel=1.1
+pkgdesc="Lists open files for running Unix processes"
+arch=('i686' 'x86_64' 'mips64el')
+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=('102ee2081172bbe76dccaa6cceda8573'
+ '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..98b2c33fe
--- /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' 'mips64el')
+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..65828bc12
--- /dev/null
+++ b/extra/lua/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 142952 2011-11-19 04:33:22Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lua
+pkgver=5.1.4
+pkgrel=9
+_patchver=5.1.4-4
+pkgdesc="A powerful light-weight programming language designed for extending applications"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lua.org/"
+depends=('readline')
+license=('MIT')
+options=('!makeflags' '!emptydirs')
+source=(http://www.lua.org/ftp/${pkgname}-${pkgver}.tar.gz
+ http://www.lua.org/ftp/patch-lua-${_patchver}
+ lua-arch.patch lua-5.1-cflags.diff)
+md5sums=('d0870f2de55d59c1c8419f36e8fac150'
+ '329d8695e3e6f1267190e220559f7b6c'
+ '6c5953f63904bf20a0183cdab05b80de'
+ '249582bf1fd861ccf492d2c35a9fe732')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i "${srcdir}/patch-lua-${_patchver}" -d src
+ patch -p1 -i "${srcdir}/lua-arch.patch"
+ [ "$CARCH" == "x86_64" ] && patch -p1 -i "${srcdir}/lua-5.1-cflags.diff"
+ [ "$CARCH" == "x86_64" ] && export CFLAGS="$CFLAGS -fPIC"
+ [ "$CARCH" == "mips64el" ] && patch -p1 -i "${srcdir}/lua-5.1-cflags.diff"
+ [ "$CARCH" == "mips64el" ] && 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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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" \
+ install
+ install -D -m644 etc/lua.pc "${pkgdir}/usr/lib/pkgconfig/lua.pc"
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT"
+
+ # Install the documentation
+ install -d "${pkgdir}/usr/share/doc/lua"
+ install -m644 doc/*.{gif,png,css,html} "${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/lxsplit/PKGBUILD b/extra/lxsplit/PKGBUILD
new file mode 100644
index 000000000..85de80fd7
--- /dev/null
+++ b/extra/lxsplit/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 137625 2011-09-10 08:31:27Z pierre $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lxsplit
+pkgver=0.2.4
+pkgrel=2
+pkgdesc="Command-line file splitter/joiner compatible with any HJSplit version"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://lxsplit.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/sourceforge/lxsplit/lxsplit-${pkgver}.tar.gz")
+md5sums=('ed21a08c167c08d4d81c820782947cb1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -d ${pkgdir}/usr/bin
+ make INSTALL_PATH=${pkgdir}/usr/bin install
+}
diff --git a/extra/lynx/PKGBUILD b/extra/lynx/PKGBUILD
new file mode 100644
index 000000000..0b24738ae
--- /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 'mips64el')
+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..c81995711
--- /dev/null
+++ b/extra/lyx/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 144059 2011-12-02 20:54:39Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=lyx
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="An advanced open-source document processor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lyx.org"
+depends=('qt' 'texlive-core' 'python2' 'perl' 'imagemagick' 'enchant' 'boost-libs' 'libmythes')
+makedepends=('boost')
+license=('GPL')
+source=(ftp://ftp.lip6.fr/pub/lyx/stable/2.0.x/$pkgname-$pkgver.tar.xz
+ lyx.desktop lyxrc.dist)
+backup=('etc/lyx/lyxrc.dist')
+install=lyx.install
+sha1sums=('225b4d853f38463e986a9b42a39cac432da56d8a'
+ 'e2b8f6d6cdeec41e1d5795167f5557e4a6ea28ad'
+ '56416642cc3da2a13b87b84e6b87c1a239f3d09a')
+
+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
+ export CXXFLAGS="$CXXFLAGS -fpermissive"
+ ./configure --prefix=/usr \
+ --with-frontend=qt4 --without-included-boost \
+ --without-included-mythes
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # install desktop entry
+ install -Dm644 "${srcdir}/lyx.desktop" \
+ "${pkgdir}/usr/share/applications/lyx.desktop"
+ install -Dm644 "lib/images/lyx.png" \
+ "${pkgdir}/usr/share/pixmaps/lyx.png"
+
+ # install default config file
+ install -Dm644 "${srcdir}/lyxrc.dist" "${pkgdir}/etc/lyx/lyxrc.dist"
+ ln -sf /etc/lyx/lyxrc.dist "${pkgdir}/usr/share/lyx/lyxrc.dist"
+}
diff --git a/extra/lyx/lyx.desktop b/extra/lyx/lyx.desktop
new file mode 100644
index 000000000..649b30c98
--- /dev/null
+++ b/extra/lyx/lyx.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=LyX Document Processor
+GenericName=Document Processor
+Comment=High level LaTeX frontend
+Exec=lyx %F
+TryExec=lyx
+Icon=lyx
+StartupNotify=false
+StartupWMClass=Lyx
+Terminal=false
+Categories=Office;WordProcessor;Qt;
+MimeType=text/x-lyx;application/x-lyx;
diff --git a/extra/lyx/lyx.install b/extra/lyx/lyx.install
new file mode 100644
index 000000000..c15c17b3a
--- /dev/null
+++ b/extra/lyx/lyx.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove () {
+ post_install
+}
+
+
+
diff --git a/extra/lyx/lyxrc.dist b/extra/lyx/lyxrc.dist
new file mode 100644
index 000000000..dd18694f9
--- /dev/null
+++ b/extra/lyx/lyxrc.dist
@@ -0,0 +1,14 @@
+### This file is part of
+### ========================================================
+### LyX, The Document Processor
+###
+### Copyright 1995 Matthias Ettrich
+### Copyright 1995-2011 The LyX Team.
+###
+### ========================================================
+
+# The file lyxrc.dist gives initial global options for all LyX users.
+# Almost all settings here can be overridden through the preferences in LyX.
+
+\thesaurusdir_path "/usr/share/mythes"
+\hunspelldir_path "/usr/share/myspell"
diff --git a/extra/lzo/PKGBUILD b/extra/lzo/PKGBUILD
new file mode 100644
index 000000000..ec49ec493
--- /dev/null
+++ b/extra/lzo/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 123754 2011-05-12 20:58:30Z andrea $
+# Maintainer:
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=lzo
+pkgver=1.08
+pkgrel=6
+pkgdesc='A portable lossless data compression library written in ANSI C'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url='http://www.oberhumer.com/opensource/lzo'
+depends=('glibc')
+makedepends=('nasm')
+options=('!libtool')
+source=("http://www.oberhumer.com/opensource/lzo/download/LZO-v1/${pkgname}-${pkgver}.tar.gz"
+ 'nasm-gcc3.patch')
+md5sums=('ab94d3da364c7cbd5b78d76f1875b0f6'
+ '43fb13762383b572d22152f8815ea4a5')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ patch -p0 -i "${srcdir}"/nasm-gcc3.patch
+ autoconf
+ ./configure --prefix=/usr --enable-shared
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+}
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..6ee369002
--- /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' 'mips64el')
+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..0afbbe4e3
--- /dev/null
+++ b/extra/m17n-lib/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140555 2011-10-17 07:25:46Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Camille Moncelier <pix@devlife.org>
+
+pkgname=m17n-lib
+pkgver=1.6.3
+pkgrel=1
+pkgdesc='Multilingual text processing library (runtimes)'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.m17n.org/m17n-lib/'
+license=('GPL')
+depends=('libxft' 'm17n-db' 'fribidi' 'libxml2' 'gd' 'libotf')
+optdepends=('anthy: to use the anthy input method')
+options=('!libtool' '!emptydirs')
+source=("http://www.m17n.org/m17n-lib-download/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('b3a725b1c417f167f6b2c6b7889b7d728a1e6b8f')
+
+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/mahjong/PKGBUILD b/extra/mahjong/PKGBUILD
new file mode 100644
index 000000000..82050d483
--- /dev/null
+++ b/extra/mahjong/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 136995 2011-09-04 21:27:03Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+pkgname=mahjong
+pkgver=1.11
+pkgrel=1
+pkgdesc="The classical game of Mah Jong (not the solitare version) with network support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.stevens-bradfield.com/MahJong/"
+license=('GPL' 'custom')
+depends=('gtk2')
+source=(http://mahjong.julianbradfield.org/Source/mj-$pkgver-src.tar.gz)
+md5sums=('c0cd19620eb3fcef3e0a83eaed6c3780')
+
+build() {
+ cd "$srcdir/mj-$pkgver-src"
+ sed -i 's/& Calling/Calling/' gui-dial.c
+ make
+}
+
+package() {
+ cd "$srcdir/mj-$pkgver-src"
+ make DESTDIR="$pkgdir/usr/" MANDIR=share/man/man1 install install.man
+ install -D -m644 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..2ee30ffae
--- /dev/null
+++ b/extra/mail-notification/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 139560 2011-10-03 13:09:05Z jgc $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=mail-notification
+pkgver=5.4
+pkgrel=9
+pkgdesc="Tray icon application that informs you if you have new mail"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nongnu.org/mailnotify/"
+license=('GPL3' 'FDL')
+depends=('gmime' 'libnotify>=0.7.1' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
+makedepends=('gob2' 'intltool' 'evolution' 'gnome-doc-utils' 'gtk2')
+options=('!libtool' '!emptydirs')
+install=mail-notification.install
+source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}.tar.bz2
+ dont-update-cache.patch
+ remove-ubuntu-special-case.patch
+ mail-notification-5.4-evolution.patch
+ gmime-2.4.patch
+ mail-notification-5.4-sasl_encode64.patch
+ mail-notification-5.4-evolution-gtkhtml.patch
+ mail-notification-5.4-camel_headers.patch
+ mail-notification-5.4-icons.patch
+ mail-notification-5.4-weak.patch
+ mail-notification-5.4-popup-attach.patch
+ mail-notification-5.4-kde-trayicon.patch
+ mail-notification-5.4-evolution-3-0-support.patch
+ mail-notification-5.4-gtk3-support.patch
+ mail-notification-5.4-add-fallback-icon.patch)
+md5sums=('c8dc33a61251acb5474e56eab6b18f43'
+ '6007bc30e789dab0a8282038e0335eb9'
+ '9cadd61bbd9c324b2916ec980231e0f2'
+ 'aa6f80820899f904c25988772f70ade9'
+ '447cc20f035b9cf1a391027684ce1297'
+ '125513ed059f62469377eb0ab794dbed'
+ 'c595a3962ab13a65be24a941e28faa9c'
+ 'f79939f593b2e8659e302df72c2b54b1'
+ '244b7ef2aec7656e8df390be87c10e2b'
+ '31bde95dfd39449959d8b3316f91429c'
+ 'cdead6a88d1779f69a5f40dc75d5cb84'
+ 'c7991b831834724eddc1c6802c3e06a6'
+ 'b370b1085ebb2814bd5d345a6d2b45ea'
+ '1ba948759110787dd57097cff157b75a'
+ '09df61b4dc29c676ac81ff9054e840ac')
+
+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}/mail-notification-5.4-evolution.patch"
+ patch -Np1 -i "${srcdir}/gmime-2.4.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-sasl_encode64.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution-gtkhtml.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-camel_headers.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-icons.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-weak.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-popup-attach.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-kde-trayicon.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-evolution-3-0-support.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-gtk3-support.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-add-fallback-icon.patch"
+
+ gtk-builder-convert ui/mailbox-properties-dialog.glade ui/mailbox-properties-dialog.ui
+ gtk-builder-convert ui/properties-dialog.glade ui/properties-dialog.ui
+
+ ./jb configure prefix=/usr sysconfdir=/etc \
+ localstatedir=/var destdir="${pkgdir}" \
+ gconf-schemas-dir=/etc/gconf/schemas install-gconf-schemas=no \
+ cflags="${CFLAGS}" cppflags="${CXXFLAGS}" ldflags="${LDFLAGS}" \
+ library-mode=0755
+ ./jb build
+ GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 ./jb install
+
+ rm -f "${pkgdir}/usr/share/mail-notification/"*.glade
+ install -m644 ui/mailbox-properties-dialog.ui "${pkgdir}/usr/share/mail-notification/"
+ install -m644 ui/properties-dialog.ui "${pkgdir}/usr/share/mail-notification/"
+
+ 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/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-add-fallback-icon.patch b/extra/mail-notification/mail-notification-5.4-add-fallback-icon.patch
new file mode 100644
index 000000000..41c28e870
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-add-fallback-icon.patch
@@ -0,0 +1,16 @@
+--- src/mn-stock.c.orig 2011-02-17 17:42:39.886767087 +0100
++++ src/mn-stock.c 2011-02-17 17:49:37.415541177 +0100
+@@ -86,6 +86,13 @@
+ gtk_icon_source_set_icon_name(icon_source, icons[i].icon_name);
+ gtk_icon_set_add_source(icon_set, icon_source);
+ gtk_icon_source_free(icon_source);
++
++ /* Add a fallback icon */
++ icon_source = gtk_icon_source_new();
++ gtk_icon_source_set_icon_name(icon_source, "mail-notification");
++ gtk_icon_source_set_state_wildcarded(icon_source, TRUE);
++ gtk_icon_set_add_source(icon_set, icon_source);
++ gtk_icon_source_free(icon_source);
+ }
+ else if (icons[i].source_stock_id)
+ {
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-evolution-3-0-support.patch b/extra/mail-notification/mail-notification-5.4-evolution-3-0-support.patch
new file mode 100644
index 000000000..51938b5fa
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-evolution-3-0-support.patch
@@ -0,0 +1,122 @@
+--- jbsrc/lib/src/extras/jb-evolution-plugin.c.evolution30 2011-02-02 00:09:33.945696868 +0100
++++ jbsrc/lib/src/extras/jb-evolution-plugin.c 2011-02-02 00:28:09.096275028 +0100
+@@ -41,7 +41,7 @@
+ if (! minversion)
+ minversion = "2.12";
+
+- packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.15 gtkhtml-editor-3.14", minversion);
++ packages = g_strdup_printf("evolution-plugin-3.0 >= %s libgtkhtml-4.0 gtkhtml-editor-4.0", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
+@@ -53,7 +53,7 @@
+ char *plugindir;
+
+ jb_message_checking("for the Evolution plugin directory");
+- plugindir = jb_get_package_variable("evolution-plugin", "plugindir");
++ plugindir = jb_get_package_variable("evolution-plugin-3.0", "plugindir");
+ jb_message_result_string(plugindir ? plugindir : "not found");
+
+ if (! plugindir)
+--- src/mn-evolution-plugin.c.orig 2011-02-09 00:07:37.422002566 +0100
++++ src/mn-evolution-plugin.c 2011-02-09 00:12:43.652678682 +0100
+@@ -25,6 +25,7 @@
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <dbus/dbus-glib-bindings.h>
+ #include <camel/camel.h>
++#include <libedataserver/eds-version.h>
+ #include <mail/em-event.h>
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
+@@ -240,7 +241,11 @@
+ EMEventTargetFolder *folder)
+ {
+ if (evo_server)
++#if EDS_CHECK_VERSION(3,1,0)
++ mn_evolution_server_folder_changed(evo_server, e_mail_folder_uri_build(folder->store, folder->folder_name));
++#else
+ mn_evolution_server_folder_changed(evo_server, folder->uri);
++#endif
+ }
+
+ void
+@@ -249,10 +250,16 @@
+ {
+ if (evo_server)
+ {
+- char *url;
++#if EDS_CHECK_VERSION(2,91,0)
++ const char *url = camel_folder_get_uri(message->folder);
++#else
++ char *url = mail_tools_folder_to_url(message->folder);
++#endif
+
+- url = mail_tools_folder_to_url(message->folder);
+ mn_evolution_server_message_reading(evo_server, url);
++
++#if !EDS_CHECK_VERSION(2,91,0)
+ g_free(url);
++#endif
+ }
+ }
+--- build/src/mn-evolution-server.c.orig 2011-02-09 00:17:38.850944227 +0100
++++ build/src/mn-evolution-server.c 2011-02-09 22:21:54.155346478 +0100
+@@ -496,11 +496,15 @@
+
+ if (! folder)
+ {
+- folder = mail_tool_uri_to_folder(uri, 0,
+ #if EDS_CHECK_VERSION(2,91,0)
+- NULL,
++ static EMailSession * session = NULL;
++ if (!session)
++ session = e_mail_session_new();
++
++ folder = e_mail_session_uri_to_folder_sync(session, uri, 0, NULL, NULL);
++#else
++ folder = mail_tool_uri_to_folder(uri, 0, NULL);
+ #endif
+- NULL);
+ if (folder)
+ self_cache_folder(uri, folder);
+ else
+@@ -677,7 +681,12 @@
+ folder = self_lookup_folder(folder_uri, err);
+ if (folder)
+ {
++#if EDS_CHECK_VERSION(3,1,0)
++ *ret = g_strdup(camel_folder_get_display_name(folder));
++#else
+ *ret = g_strdup(camel_folder_get_name(folder));
++#endif
++
+ #if EDS_CHECK_VERSION(2,31,0)
+ g_object_unref(folder);
+ #else
+@@ -725,8 +734,12 @@
+ shell = e_shell_get_default ();
+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+- browser = e_mail_browser_new (shell_backend);
++ browser = e_mail_browser_new (E_MAIL_BACKEND(shell_backend));
++#if EDS_CHECK_VERSION(3,1,0)
++ e_mail_reader_set_folder (E_MAIL_READER (browser), folder);
++#else
+ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
++#endif
+ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
+ gtk_widget_show (browser);
+ #else
+--- build/src/mn-evolution-folder-tree-server.c.orig 2011-06-17 22:01:49.226886994 +0200
++++ build/src/mn-evolution-folder-tree-server.c 2011-06-18 00:34:23.046889847 +0200
+@@ -444,7 +444,9 @@
+ {
+ #line 61 "src/mn-evolution-folder-tree-server.gob"
+
+-#if EDS_CHECK_VERSION(2,91,0)
++#if EDS_CHECK_VERSION(3,1,0)
++ selfp->tree = em_folder_tree_new(NULL, NULL);
++#elif EDS_CHECK_VERSION(2,91,0)
+ selfp->session = e_mail_session_new();
+ selfp->tree = em_folder_tree_new(selfp->session);
+ #elif EDS_CHECK_VERSION(2,29,0)
diff --git a/extra/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch b/extra/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch
new file mode 100644
index 000000000..283ef36d6
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch
@@ -0,0 +1,12 @@
+diff -Nrbu mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c mail-notification-5.4-OK/jbsrc/lib/src/extras/jb-evolution-plugin.c
+--- mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c 2008-04-27 18:47:43.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/lib/src/extras/jb-evolution-plugin.c 2009-08-21 19:48:22.000000000 +0400
+@@ -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.15 gtkhtml-editor-3.14", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
diff --git a/extra/mail-notification/mail-notification-5.4-evolution.patch b/extra/mail-notification/mail-notification-5.4-evolution.patch
new file mode 100644
index 000000000..87514c22d
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-evolution.patch
@@ -0,0 +1,244 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c
+--- mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c 2008-05-22 19:47:48.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c 2010-10-12 16:50:15.000000000 +0400
+@@ -25,7 +25,10 @@
+ #line 24 "src/mn-evolution-folder-tree-server.gob"
+
+ #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"
+@@ -441,10 +444,17 @@
+ {
+ #line 61 "src/mn-evolution-folder-tree-server.gob"
+
++#if EDS_CHECK_VERSION(2,91,0)
++ selfp->session = e_mail_session_new();
++ selfp->tree = em_folder_tree_new(selfp->session);
++#elif 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);
+ gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree);
+@@ -469,6 +479,10 @@
+ {
+ #line 80 "src/mn-evolution-folder-tree-server.gob"
+
++#if EDS_CHECK_VERSION(2,91,0)
++ g_object_unref(selfp->session);
++ selfp->session = NULL;
++#endif
+ g_signal_handlers_disconnect_by_func(selfp->plug, self_plug_destroy_h, self);
+ }}
+ #line 475 "mn-evolution-folder-tree-server.c"
+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 2008-05-22 19:47:48.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-10-12 16:50:40.000000000 +0400
+@@ -27,12 +27,22 @@
+ #include <stdio.h>
+ #include <libintl.h>
+ #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>
++#if EDS_CHECK_VERSION(2,91,0)
++#include <mail/e-mail-session.h>
++#else
+ #include <mail/mail-session.h>
++#endif
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
+ #include "mn-evolution-folder-tree-server.h"
+@@ -391,10 +397,18 @@
+ info = g_new0(FolderInfo, 1);
+ info->uri = g_strdup(uri);
+ info->folder = folder;
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_ref(folder);
++#else
+ camel_object_ref(folder);
++#endif
+
+ /* uncache the folder when it is deleted */
++#if EDS_CHECK_VERSION(2,31,0)
++ g_signal_connect(folder, "deleted", G_CALLBACK(self_folder_deleted_cb), info);
++#else
+ camel_object_hook_event(folder, "deleted", self_folder_deleted_cb, info);
++#endif
+
+ g_hash_table_replace(folders, info->uri, info);
+ }}
+@@ -413,8 +427,13 @@
+ {
+ #line 105 "src/mn-evolution-server.gob"
+
++#if EDS_CHECK_VERSION(2,31,0)
++ g_signal_handlers_disconnect_by_func(info->folder, self_folder_deleted_cb, info);
++ g_object_unref(info->folder);
++#else
+ camel_object_unhook_event(info->folder, "deleted", self_folder_deleted_cb, info);
+ camel_object_unref(info->folder);
++#endif
+ g_free(info->uri);
+ g_free(info);
+ }}
+@@ -461,7 +480,11 @@
+ if (info)
+ {
+ folder = info->folder;
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_ref(folder);
++#else
+ camel_object_ref(folder);
++#endif
+ }
+ }
+ else
+@@ -469,7 +492,11 @@
+
+ if (! folder)
+ {
+- folder = mail_tool_uri_to_folder(uri, 0, NULL);
++ folder = mail_tool_uri_to_folder(uri, 0,
++#if EDS_CHECK_VERSION(2,91,0)
++ NULL,
++#endif
++ NULL);
+ if (folder)
+ self_cache_folder(uri, folder);
+ else
+@@ -595,14 +622,23 @@
+
+ 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));
+ }
+
+ camel_folder_free_summary(folder, summary);
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -638,7 +674,11 @@
+ if (folder)
+ {
+ *ret = g_strdup(camel_folder_get_name(folder));
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -673,6 +713,19 @@
+ 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() */
+@@ -683,8 +736,13 @@
+ 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
+
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -721,7 +779,11 @@
+ if (folder)
+ {
+ status = camel_folder_set_message_flags(folder, message_uid, flags, flags);
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+
+ if (! status)
+ g_set_error(err,
+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 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-10-12 16:50:15.000000000 +0400
+@@ -204,7 +204,7 @@
+ }
+
+ int
+-e_plugin_lib_enable (EPluginLib *ep, int enable)
++e_plugin_lib_enable (EPlugin *ep, int enable)
+ {
+ static gboolean enabled = FALSE;
+ GError *err = NULL;
+--- mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h.orig 2010-11-13 13:55:01.571934066 +0100
++++ mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h 2010-11-13 13:56:07.019487418 +0100
+@@ -4,6 +4,10 @@
+ #define __MN_EVOLUTION_FOLDER_TREE_SERVER_PRIVATE_H__
+
+ #include "mn-evolution-folder-tree-server.h"
++#include <libedataserver/eds-version.h>
++#if EDS_CHECK_VERSION(2,91,0)
++#include <mail/e-mail-session.h>
++#endif
+
+ #ifdef __cplusplus
+ extern "C" {
+@@ -23,6 +23,9 @@
+ #line 41 "src/mn-evolution-folder-tree-server.gob"
+ GtkWidget * tree;
+ #line 26 "mn-evolution-folder-tree-server-private.h"
++#if EDS_CHECK_VERSION(2,91,0)
++ EMailSession * session;
++#endif
+ };
+
+ #ifdef __cplusplus
diff --git a/extra/mail-notification/mail-notification-5.4-gtk3-support.patch b/extra/mail-notification/mail-notification-5.4-gtk3-support.patch
new file mode 100644
index 000000000..6a29f8622
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-gtk3-support.patch
@@ -0,0 +1,1416 @@
+--- build/src/mn-dialog.c.orig 2011-02-02 23:08:09.816659245 +0100
++++ build/src/mn-dialog.c 2011-02-02 23:09:16.988113774 +0100
+@@ -106,8 +106,7 @@
+ #line 27 "src/mn-dialog.gob"
+
+ gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+- gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+- gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
++ gtk_box_set_spacing(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(self))), 2);
+
+ #line 113 "mn-dialog.c"
+ }
+--- jbsrc/jb.c.orig 2011-02-02 23:40:33.567924712 +0100
++++ jbsrc/jb.c 2011-02-02 23:39:39.680803618 +0100
+@@ -163,7 +163,7 @@
+ {
+ jb_check_glibc();
+
+- 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("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-3.0 libgnome-2.0 >= 2.14.0 gnome-vfs-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.6",
+--- build/src/mn-file-chooser-button.c.orig 2011-02-02 23:38:01.503049512 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-02 23:38:16.988222034 +0100
+@@ -358,7 +358,7 @@
+ g_signal_connect(selfp->dialog, "response", G_CALLBACK(self_response_h), self);
+ }
+
+- if (! GTK_WIDGET_VISIBLE(selfp->dialog))
++ if (! gtk_widget_get_visible(selfp->dialog))
+ {
+ GtkWindow *parent;
+
+--- build/src/mn-sound-player.c.orig 2011-02-02 23:55:02.436500397 +0100
++++ build/src/mn-sound-player.c 2011-02-02 23:55:09.125141055 +0100
+@@ -27,7 +27,7 @@
+ #include <sys/types.h>
+ #include <signal.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-conf.h"
+ #include "mn-locked-callback.h"
+ #include "mn-util.h"
+--- build/src/mn-file-chooser-button.c.orig 2011-02-02 23:55:21.857457045 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-02 23:55:30.422996901 +0100
+@@ -25,7 +25,7 @@
+ #line 39 "src/mn-file-chooser-button.gob"
+
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+
+ #line 32 "mn-file-chooser-button.c"
+--- build/src/mn-message.c.orig 2011-02-02 23:55:41.160420099 +0100
++++ build/src/mn-message.c 2011-02-02 23:55:47.755065850 +0100
+@@ -26,7 +26,7 @@
+
+ #include <errno.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include <libgnomevfs/gnome-vfs.h>
+ #include "mn-conf.h"
+ #include "mn-util.h"
+--- build/src/mn-file-chooser-button.c.orig 2011-02-03 00:15:16.178407712 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-03 00:18:17.865681563 +0100
+@@ -463,6 +463,7 @@
+
+ GDK_THREADS_ENTER();
+
++#if 0
+ if (results)
+ {
+ GnomeVFSGetFileInfoResult *result = results->data;
+@@ -494,6 +495,7 @@
+ }
+ }
+ }
++#endif
+
+ selfp->async_handle = NULL;
+ g_object_unref(self);
+--- build/src/mn-evolution-folder-tree-server.c.orig 2011-02-07 20:17:09.574274620 +0100
++++ build/src/mn-evolution-folder-tree-server.c 2011-02-07 20:23:25.196053994 +0100
+@@ -25,6 +25,7 @@
+ #line 24 "src/mn-evolution-folder-tree-server.gob"
+
+ #include <dbus/dbus.h>
++#include <gtk/gtkx.h>
+ #include <libedataserver/eds-version.h>
+ #if !EDS_CHECK_VERSION(2,29,0)
+ #include <mail/mail-component.h>
+@@ -71,7 +72,7 @@
+ static void mn_evolution_folder_tree_server_finalize (MNEvolutionFolderTreeServer * self);
+ #line 70 "mn-evolution-folder-tree-server.c"
+ #line 84 "src/mn-evolution-folder-tree-server.gob"
+-static void mn_evolution_folder_tree_server_plug_destroy_h (GtkObject * object, gpointer user_data);
++static void mn_evolution_folder_tree_server_plug_destroy_h (GtkWidget * object, gpointer user_data);
+ #line 73 "mn-evolution-folder-tree-server.c"
+ #line 104 "src/mn-evolution-folder-tree-server.gob"
+ static void mn_evolution_folder_tree_server_selected_h (EMFolderTree * tree, const char * full_name, const char * uri, guint32 flags, gpointer user_data);
+@@ -456,7 +457,7 @@
+ selfp->tree = em_folder_tree_new_with_model(model);
+ #endif
+
+- selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
++ selfp->plug = gtk_plug_new((Window) selfp->id);
+ gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree);
+ gtk_widget_show_all(selfp->plug);
+
+@@ -490,7 +491,7 @@
+
+ #line 84 "src/mn-evolution-folder-tree-server.gob"
+ static void
+-mn_evolution_folder_tree_server_plug_destroy_h (GtkObject * object, gpointer user_data)
++mn_evolution_folder_tree_server_plug_destroy_h (GtkWidget * object, gpointer user_data)
+ {
+ #line 482 "mn-evolution-folder-tree-server.c"
+ #define __GOB_FUNCTION__ "MN:Evolution:Folder:Tree:Server::plug_destroy_h"
+--- src/eggtrayicon.h.orig 2011-02-07 20:25:26.352057350 +0100
++++ src/eggtrayicon.h 2011-02-07 20:27:54.495032920 +0100
+@@ -23,10 +23,9 @@
+ #ifndef __EGG_TRAY_ICON_H__
+ #define __EGG_TRAY_ICON_H__
+
+-#include <gtk/gtkplug.h>
+-#ifdef GDK_WINDOWING_X11
++#include <gtk/gtk.h>
++#include <gtk/gtkx.h>
+ #include <gdk/gdkx.h>
+-#endif
+
+ G_BEGIN_DECLS
+
+--- build/src/mn-mail-icon.c.orig 2011-02-07 20:24:58.971663075 +0100
++++ build/src/mn-mail-icon.c 2011-02-07 20:30:33.714401306 +0100
+@@ -833,11 +833,13 @@
+ #line 239 "src/mn-mail-icon.gob"
+
+ GtkWidget *widget = user_data;
++ GtkAllocation allocation;
+
+- gdk_window_get_origin(widget->window, x, y);
++ gdk_window_get_origin(gtk_widget_get_window(widget), x, y);
++ gtk_widget_get_allocation(widget, &allocation);
+
+- *x += widget->allocation.x;
+- *y += widget->allocation.y;
++ *x += allocation.x;
++ *y += allocation.y;
+
+ if (*y > gdk_screen_get_height(gtk_widget_get_screen(widget)) / 2)
+ {
+@@ -847,7 +849,7 @@
+ *y -= req.height;
+ }
+ else
+- *y += widget->allocation.height;
++ *y += allocation.height;
+
+ *push_in = TRUE;
+ }}
+--- build/src/mn-mail-icon-widget.c.orig 2011-02-07 20:31:19.475816763 +0100
++++ build/src/mn-mail-icon-widget.c 2011-02-07 21:53:48.858814715 +0100
+@@ -64,9 +64,13 @@
+ #line 65 "mn-mail-icon-widget.c"
+ #line 110 "src/mn-mail-icon-widget.gob"
+ static void ___7_mn_mail_icon_widget_size_request (GtkWidget * widget, GtkRequisition * requisition);
++static void
++mn_mail_icon_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width);
++static void
++mn_mail_icon_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height);
+ #line 68 "mn-mail-icon-widget.c"
+ #line 132 "src/mn-mail-icon-widget.gob"
+-static gboolean ___8_mn_mail_icon_widget_expose_event (GtkWidget * widget, GdkEventExpose * event);
++static gboolean ___8_mn_mail_icon_widget_draw (GtkWidget * widget, cairo_t *cr);
+ #line 71 "mn-mail-icon-widget.c"
+ #line 244 "src/mn-mail-icon-widget.gob"
+ static GdkPixbuf * mn_mail_icon_widget_render_icon (MNMailIconWidget * self);
+@@ -187,9 +191,10 @@
+ parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
+
+ #line 110 "src/mn-mail-icon-widget.gob"
+- gtk_widget_class->size_request = ___7_mn_mail_icon_widget_size_request;
++ gtk_widget_class->get_preferred_width = mn_mail_icon_widget_get_preferred_width;
++ gtk_widget_class->get_preferred_height = mn_mail_icon_widget_get_preferred_height;
+ #line 132 "src/mn-mail-icon-widget.gob"
+- gtk_widget_class->expose_event = ___8_mn_mail_icon_widget_expose_event;
++ gtk_widget_class->draw = ___8_mn_mail_icon_widget_draw;
+ #line 194 "mn-mail-icon-widget.c"
+ g_object_class->dispose = ___dispose;
+ g_object_class->finalize = ___finalize;
+@@ -234,7 +239,7 @@
+ {
+ #line 93 "src/mn-mail-icon-widget.gob"
+
+- GTK_WIDGET_SET_FLAGS(self, GTK_NO_WINDOW);
++ gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
+
+ gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-icon");
+
+@@ -457,9 +462,28 @@
+ #undef __GOB_FUNCTION__
+ #undef PARENT_HANDLER
+
++static void
++mn_mail_icon_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
++{
++ GtkRequisition requisition;
++
++ ___7_mn_mail_icon_widget_size_request (widget, &requisition);
++ *minimal_width = *natural_width = requisition.width;
++}
++
++static void
++mn_mail_icon_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
++{
++ GtkRequisition requisition;
++
++ ___7_mn_mail_icon_widget_size_request (widget, &requisition);
++
++ *minimal_height = *natural_height = requisition.height;
++}
++
+ #line 132 "src/mn-mail-icon-widget.gob"
+ static gboolean
+-___8_mn_mail_icon_widget_expose_event (GtkWidget * widget G_GNUC_UNUSED, GdkEventExpose * event)
++___8_mn_mail_icon_widget_draw (GtkWidget * widget G_GNUC_UNUSED, cairo_t *cr)
+ #line 464 "mn-mail-icon-widget.c"
+ #define PARENT_HANDLER(___widget,___event) \
+ ((GTK_WIDGET_CLASS(parent_class)->expose_event)? \
+@@ -472,7 +496,7 @@
+
+ Self *self = SELF(widget);
+
+- if (! GTK_WIDGET_DRAWABLE(widget) || ! selfp->stock_id)
++ if (! gtk_widget_is_drawable(widget) || ! selfp->stock_id)
+ return FALSE;
+
+ if (selfp->is_on)
+@@ -480,23 +504,34 @@
+ int x;
+ int y;
+ GdkRectangle image_area;
++ GtkAllocation allocation;
++ GtkRequisition requisition;
+
+ /* note: widget->requisition is the pixbuf size, see size_request() */
+
+- x = floor(widget->allocation.x + ((widget->allocation.width - widget->requisition.width) * ICON_XALIGN));
+- y = floor(widget->allocation.y + ((widget->allocation.height - widget->requisition.height) * ICON_YALIGN));
++ gtk_widget_get_allocation(widget, &allocation);
++ gtk_widget_get_requisition(widget, &requisition);
++
++ x = floor(allocation.x + ((allocation.width - requisition.width) * ICON_XALIGN));
++ y = floor(allocation.y + ((allocation.height - requisition.height) * ICON_YALIGN));
+
+ image_area.x = x;
+ image_area.y = y;
+- image_area.width = widget->requisition.width;
+- image_area.height = widget->requisition.height;
++ image_area.width = requisition.width;
++ image_area.height = requisition.height;
+
++#if 0
+ if (gdk_rectangle_intersect(&event->area, &image_area, &image_area))
++#endif
+ {
+ GdkPixbuf *pixbuf;
+
+ pixbuf = self_render_icon(self);
++ gdk_cairo_set_source_pixbuf(cr, pixbuf, image_area.x, image_area.y);
++ cairo_move_to(cr, image_area.x - x, image_area.y - y);
++ cairo_paint(cr);
+
++#if 0
+ gdk_draw_pixbuf(widget->window,
+ NULL,
+ pixbuf,
+@@ -509,6 +544,7 @@
+ GDK_RGB_DITHER_NORMAL,
+ 0,
+ 0);
++#endif
+
+ g_object_unref(pixbuf);
+ }
+@@ -523,13 +559,16 @@
+ int box_y;
+ int box_width;
+ int box_height;
++ GtkAllocation allocation;
++
++ gtk_widget_get_allocation(widget, &allocation);
+
+ if (! selfp->count_layout)
+ {
+ const char *size;
+ char *markup;
+
+- if (widget->allocation.height < 32)
++ if (allocation.height < 32)
+ size = "small";
+ else
+ size = "medium";
+@@ -546,17 +585,16 @@
+ box_width = count_rect.width + COUNT_BOX_XPAD * 2;
+ box_height = count_rect.height + COUNT_BOX_YPAD * 2;
+
+- box_x = widget->allocation.x + widget->allocation.width - box_width - COUNT_BOX_XMARGIN;
+- box_y = widget->allocation.y + widget->allocation.height - box_height - COUNT_BOX_YMARGIN;
++ box_x = allocation.x + allocation.width - box_width - COUNT_BOX_XMARGIN;
++ box_y = allocation.y + allocation.height - box_height - COUNT_BOX_YMARGIN;
+
+ count_x = box_x - count_rect.x + COUNT_BOX_XPAD;
+ count_y = box_y - count_rect.y + COUNT_BOX_YPAD;
+
+- gtk_paint_box(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_box(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ GTK_SHADOW_OUT,
+- &event->area,
+ widget,
+ NULL,
+ box_x,
+@@ -564,11 +602,10 @@
+ box_width,
+ box_height);
+
+- gtk_paint_layout(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_layout(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ FALSE,
+- &event->area,
+ widget,
+ NULL,
+ count_x,
+--- build/src/mn-mailbox-properties-dialog.c.orig 2011-02-07 21:57:31.257251776 +0100
++++ build/src/mn-mailbox-properties-dialog.c 2011-02-07 21:56:56.989854854 +0100
+@@ -456,7 +456,7 @@
+ MNMailboxProperties *properties;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+- PKGDATADIR G_DIR_SEPARATOR_S "mailbox-properties-dialog.glade",
++ PKGDATADIR G_DIR_SEPARATOR_S "mailbox-properties-dialog.ui",
+ "notebook",
+ "mn_mailbox_properties_dialog_",
+ "notebook", &self->notebook,
+@@ -1290,7 +1290,7 @@
+ {
+ #line 686 "src/mn-mailbox-properties-dialog.gob"
+
+- if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
++ if (gtk_widget_is_sensitive(gtk_window_get_default_widget(GTK_WINDOW(self))))
+ gtk_window_activate_default(GTK_WINDOW(self));
+ else
+ {
+@@ -1313,9 +1313,9 @@
+ if (elem->data == entry)
+ break;
+
+- if (GTK_WIDGET_MAPPED(elem->data)
+- && GTK_WIDGET_VISIBLE(elem->data)
+- && GTK_WIDGET_SENSITIVE(elem->data))
++ if (gtk_widget_get_mapped(elem->data)
++ && gtk_widget_get_visible(elem->data)
++ && gtk_widget_get_sensitive(elem->data))
+ next = elem->data;
+ }
+ while (! next);
+--- build/src/mn-mailbox-view.c.orig 2011-02-07 22:18:49.962462920 +0100
++++ build/src/mn-mailbox-view.c 2011-02-07 23:01:39.990363248 +0100
+@@ -412,23 +412,23 @@
+ binding_set = gtk_binding_set_by_class(class);
+
+ /* Delete removes a row */
+- gtk_binding_entry_add_signal(binding_set, GDK_Delete, 0, "activate-remove", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_KP_Delete, 0, "activate-remove", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Delete, 0, "activate-remove", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_KP_Delete, 0, "activate-remove", 0);
+
+ /* HIG 2.0 cut/copy/paste shortcuts */
+- gtk_binding_entry_add_signal(binding_set, GDK_x, GDK_CONTROL_MASK, "activate-cut", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_c, GDK_CONTROL_MASK, "activate-copy", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_v, GDK_CONTROL_MASK, "activate-paste", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_x, GDK_CONTROL_MASK, "activate-cut", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_c, GDK_CONTROL_MASK, "activate-copy", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_v, GDK_CONTROL_MASK, "activate-paste", 0);
+
+ /* cut/copy/paste shortcuts taken from gtkentry.c */
+- gtk_binding_entry_add_signal(binding_set, GDK_Delete, GDK_SHIFT_MASK, "activate-cut", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_CONTROL_MASK, "activate-copy", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_SHIFT_MASK, "activate-paste", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Delete, GDK_SHIFT_MASK, "activate-cut", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Insert, GDK_CONTROL_MASK, "activate-copy", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK, "activate-paste", 0);
+
+ /* HIG 2.0 properties */
+- gtk_binding_entry_add_signal(binding_set, GDK_Return, GDK_MOD1_MASK, "activate-properties", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Return, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
+
+ #line 434 "mn-mailbox-view.c"
+ }
+@@ -934,14 +934,13 @@
+ #line 183 "src/mn-mailbox-view.gob"
+
+ GtkSelectionData *data;
+-
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+ if (data)
+ {
+ GSList *configurations;
+ GSList *l;
+
+- memcpy(&configurations, data->data, data->length);
++ memcpy(&configurations, gtk_selection_data_get_data(data), gtk_selection_data_get_length(data));
+
+ MN_LIST_FOREACH(l, configurations)
+ {
+@@ -962,14 +961,14 @@
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+ if (data)
+ {
+- if (data->format == 8 && data->length > 0)
++ if (gtk_selection_data_get_format(data) == 8 && gtk_selection_data_get_length(data) > 0)
+ {
+ char *gnome_copied_files;
+ gboolean status;
+ MNGnomeCopiedFilesType type;
+ GSList *uri_list;
+
+- gnome_copied_files = g_strndup(data->data, data->length);
++ gnome_copied_files = g_strndup(gtk_selection_data_get_data(data), gtk_selection_data_get_length(data));
+ status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+ g_free(gnome_copied_files);
+
+--- build/src/mn-shell.c.orig 2011-02-07 23:02:17.852293679 +0100
++++ build/src/mn-shell.c 2011-02-07 23:04:39.223548403 +0100
+@@ -158,7 +158,7 @@
+ static void mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data);
+ #line 160 "mn-shell.c"
+ #line 499 "src/mn-shell.gob"
+-static void mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data);
++static void mn_shell_icon_destroy_h (GtkWidget * object, gpointer user_data);
+ #line 163 "mn-shell.c"
+ #line 508 "src/mn-shell.gob"
+ static void mn_shell_update_sensitivity (MNShell * self);
+@@ -1006,7 +1006,7 @@
+
+ #line 499 "src/mn-shell.gob"
+ static void
+-mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
++mn_shell_icon_destroy_h (GtkWidget * object, gpointer user_data)
+ {
+ #line 1004 "mn-shell.c"
+ #define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
+--- build/src/mn-text-table.c.orig 2011-02-07 23:05:08.799927792 +0100
++++ build/src/mn-text-table.c 2011-02-07 23:18:06.480056895 +0100
+@@ -69,9 +69,11 @@
+ #line 70 "mn-text-table.c"
+ #line 104 "src/mn-text-table.gob"
+ static void ___4_mn_text_table_size_request (GtkWidget * widget, GtkRequisition * requisition);
++static void mn_text_table_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width);
++static void mn_text_table_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height);
+ #line 73 "mn-text-table.c"
+ #line 115 "src/mn-text-table.gob"
+-static gboolean ___5_mn_text_table_expose_event (GtkWidget * widget, GdkEventExpose * event);
++static gboolean ___5_mn_text_table_draw (GtkWidget * widget, cairo_t *cr);
+ #line 76 "mn-text-table.c"
+ #line 165 "src/mn-text-table.gob"
+ static void mn_text_table_set_dirty (MNTextTable * self);
+@@ -188,9 +190,10 @@
+ parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
+
+ #line 104 "src/mn-text-table.gob"
+- gtk_widget_class->size_request = ___4_mn_text_table_size_request;
++ gtk_widget_class->get_preferred_width = mn_text_table_get_preferred_width;
++ gtk_widget_class->get_preferred_height = mn_text_table_get_preferred_height;
+ #line 115 "src/mn-text-table.gob"
+- gtk_widget_class->expose_event = ___5_mn_text_table_expose_event;
++ gtk_widget_class->draw = ___5_mn_text_table_draw;
+ #line 257 "src/mn-text-table.gob"
+ c->clear = ___real_mn_text_table_clear;
+ #line 197 "mn-text-table.c"
+@@ -216,7 +219,7 @@
+ {
+ #line 80 "src/mn-text-table.gob"
+
+- GTK_WIDGET_SET_FLAGS(self, GTK_NO_WINDOW);
++ gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
+
+ g_object_connect(self,
+ "swapped-signal::style-set", self_context_changed, self,
+@@ -290,9 +293,29 @@
+ #undef __GOB_FUNCTION__
+ #undef PARENT_HANDLER
+
++static void
++mn_text_table_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width)
++{
++ GtkRequisition requisition;
++
++ ___4_mn_text_table_size_request (widget, &requisition);
++
++ *minimal_width = *natural_width = requisition.width;
++}
++
++static void
++mn_text_table_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height)
++{
++ GtkRequisition requisition;
++
++ ___4_mn_text_table_size_request (widget, &requisition);
++
++ *minimal_height = *natural_height = requisition.height;
++}
++
+ #line 115 "src/mn-text-table.gob"
+ static gboolean
+-___5_mn_text_table_expose_event (GtkWidget * widget G_GNUC_UNUSED, GdkEventExpose * event)
++___5_mn_text_table_draw (GtkWidget * widget G_GNUC_UNUSED, cairo_t *cr)
+ #line 297 "mn-text-table.c"
+ #define PARENT_HANDLER(___widget,___event) \
+ ((GTK_WIDGET_CLASS(parent_class)->expose_event)? \
+@@ -304,10 +327,14 @@
+ #line 117 "src/mn-text-table.gob"
+
+ Self *self = SELF(widget);
++ GtkAllocation allocation;
+ int i;
+- int y = widget->allocation.y;
++ int y;
++
++ gtk_widget_get_allocation(widget, &allocation);
++ y = 0;
+
+- if (! GTK_WIDGET_DRAWABLE(widget))
++ if (! gtk_widget_is_drawable(widget))
+ return FALSE;
+
+ self_relayout(self);
+@@ -316,7 +343,7 @@
+ {
+ Row *row = g_ptr_array_index(selfp->rows, i);
+ int j;
+- int x = widget->allocation.x;
++ int x = 0;
+ int column = 0;
+
+ MN_ARRAY_FOREACH(j, row->cells)
+@@ -324,11 +351,10 @@
+ MNTextTableCell *cell = g_ptr_array_index(row->cells, j);
+
+ if (cell->layout)
+- gtk_paint_layout(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_layout(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ FALSE,
+- &event->area,
+ widget,
+ NULL,
+ x,
+--- build/src/mn-tooltips.c.orig 2011-02-07 23:19:05.903761972 +0100
++++ build/src/mn-tooltips.c 2011-02-07 23:41:19.368621912 +0100
+@@ -104,7 +104,7 @@
+ static void mn_tooltips_set_tip_widget_real (MNTooltips * self, GtkWidget * widget, GtkWidget * tip_widget, int border_width);
+ #line 106 "mn-tooltips.c"
+ #line 287 "src/mn-tooltips.gob"
+-static gboolean mn_tooltips_paint_window (MNTooltips * self);
++static gboolean mn_tooltips_paint_window (MNTooltips * self, cairo_t *cr);
+ #line 109 "mn-tooltips.c"
+ #line 308 "src/mn-tooltips.gob"
+ static void mn_tooltips_draw_tips (MNTooltips * self);
+@@ -422,7 +422,13 @@
+
+ if (! selfp->window)
+ {
++ GtkStyleContext *ctx;
++
+ selfp->window = gtk_window_new(GTK_WINDOW_POPUP);
++
++ ctx = gtk_widget_get_style_context(GTK_WIDGET(selfp->window));
++ gtk_style_context_add_class(ctx, "tooltip");
++
+ self_update_screen(self, TRUE);
+ gtk_widget_set_app_paintable(selfp->window, TRUE);
+ gtk_window_set_resizable(GTK_WINDOW(selfp->window), FALSE);
+@@ -430,7 +430,7 @@
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->window), selfp->border_width);
+
+ g_signal_connect_swapped(selfp->window,
+- "expose-event",
++ "draw",
+ G_CALLBACK(self_paint_window),
+ self);
+
+@@ -490,7 +490,7 @@
+
+ if (selfp->active_data
+ && selfp->active_data->widget == widget
+- && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
++ && gtk_widget_is_drawable(selfp->active_data->widget))
+ {
+ if (data->tip_widget)
+ g_object_unref(data->tip_widget);
+@@ -594,7 +594,7 @@
+
+ #line 287 "src/mn-tooltips.gob"
+ static gboolean
+-mn_tooltips_paint_window (MNTooltips * self)
++mn_tooltips_paint_window (MNTooltips * self, cairo_t *cr)
+ {
+ #line 600 "mn-tooltips.c"
+ #define __GOB_FUNCTION__ "MN:Tooltips::paint_window"
+@@ -608,18 +608,13 @@
+
+ GtkRequisition req;
+
+- gtk_widget_size_request(selfp->window, &req);
+- gtk_paint_flat_box(selfp->window->style,
+- selfp->window->window,
+- GTK_STATE_NORMAL,
+- GTK_SHADOW_OUT,
+- NULL,
+- selfp->window,
+- "tooltip",
+- 0,
+- 0,
+- req.width,
+- req.height);
++ gtk_widget_size_request(GTK_WIDGET(selfp->window), &req);
++ gtk_render_background(gtk_widget_get_style_context(GTK_WIDGET(selfp->window)),
++ cr,
++ 0,
++ 0,
++ req.width,
++ req.height);
+
+ return FALSE;
+ }}
+@@ -651,10 +650,11 @@
+ gint monitor_num, px, py;
+ GdkRectangle monitor;
+ int screen_width;
++ GtkAllocation allocation;
+
+ if (! selfp->window)
+ self_force_window(self);
+- else if (GTK_WIDGET_VISIBLE(selfp->window))
++ else if (gtk_widget_get_visible(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+
+ gtk_widget_ensure_style(selfp->window);
+@@ -670,7 +670,7 @@
+
+ data = selfp->active_data;
+
+- child = GTK_BIN(selfp->window)->child;
++ child = gtk_bin_get_child(GTK_BIN(selfp->window));
+ if (child)
+ gtk_container_remove(GTK_CONTAINER(selfp->window), child);
+
+@@ -684,14 +684,16 @@
+ w = requisition.width;
+ h = requisition.height;
+
+- gdk_window_get_origin(widget->window, &x, &y);
+- if (GTK_WIDGET_NO_WINDOW(widget))
++ gtk_widget_get_allocation(selfp->window, &allocation);
++
++ gdk_window_get_origin(gtk_widget_get_window(widget), &x, &y);
++ if (! gtk_widget_get_has_window(widget))
+ {
+- x += widget->allocation.x;
+- y += widget->allocation.y;
++ x += allocation.x;
++ y += allocation.y;
+ }
+
+- x += widget->allocation.width / 2;
++ x += allocation.width / 2;
+
+ if (! keyboard_mode)
+ gdk_window_get_pointer(gdk_screen_get_root_window(screen), &x, NULL, NULL);
+@@ -712,11 +714,11 @@
+ else if (x < monitor.x)
+ x = monitor.x;
+
+- if ((y + h + widget->allocation.height + 4) > monitor.y + monitor.height
++ if ((y + h + allocation.height + 4) > monitor.y + monitor.height
+ && (y - 4) > monitor.y)
+ y = y - h - 4;
+ else
+- y = y + widget->allocation.height + 4;
++ y = y + allocation.height + 4;
+
+ /*
+ * The following block is not part of GTK+ and has been added to
+@@ -760,7 +762,7 @@
+
+ Self *self = SELF(data);
+
+- if (selfp->active_data && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
++ if (selfp->active_data && gtk_widget_is_drawable(selfp->active_data->widget))
+ self_draw_tips(self);
+
+ selfp->timeout_id = 0;
+@@ -785,7 +787,7 @@
+
+ if (selfp->window)
+ {
+- if (GTK_WIDGET_VISIBLE(selfp->window))
++ if (gtk_widget_get_visible(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+ gtk_widget_hide(selfp->window);
+ }
+@@ -802,7 +804,7 @@
+ {
+ TooltipsData *data = l->data;
+
+- if (data->widget == widget && GTK_WIDGET_DRAWABLE(widget))
++ if (data->widget == widget && gtk_widget_is_drawable(widget))
+ {
+ selfp->active_data = data;
+ break;
+@@ -937,7 +939,7 @@
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+- GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
++ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(toplevel));
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(TRUE));
+
+@@ -966,7 +968,7 @@
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+- GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
++ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(toplevel));
+
+ if (focus)
+ self_hide_tip(focus);
+@@ -1057,24 +1059,24 @@
+ break;
+
+ case GDK_ENTER_NOTIFY:
+- if (! (GTK_IS_MENU_ITEM(widget) && GTK_MENU_ITEM(widget)->submenu))
++ if (! (GTK_IS_MENU_ITEM(widget) && gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget))))
+ self_start_delay(self, widget);
+ break;
+
+ case GDK_LEAVE_NOTIFY:
+ self_set_active_widget(self, NULL);
+- selfp->use_sticky_delay = selfp->window && GTK_WIDGET_VISIBLE(selfp->window);
++ selfp->use_sticky_delay = selfp->window && gtk_widget_get_visible(selfp->window);
+ break;
+
+ case GDK_MOTION_NOTIFY:
+ /* Handle menu items specially ... pend popup for each motion
+ * on other widgets, we ignore motion.
+ */
+- if (GTK_IS_MENU_ITEM(widget) && ! GTK_MENU_ITEM(widget)->submenu)
++ if (GTK_IS_MENU_ITEM(widget) && ! gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)))
+ {
+ /* Completely evil hack to make sure we get the LEAVE_NOTIFY
+ */
+- GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
++ //GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
+ self_set_active_widget(self, NULL);
+ self_start_delay(self, widget);
+ break;
+--- src/nautilus-cell-renderer-pixbuf-emblem.c.orig 2011-02-08 00:16:43.847831409 +0100
++++ src/nautilus-cell-renderer-pixbuf-emblem.c 2011-02-08 00:32:59.128682767 +0100
+@@ -39,17 +39,16 @@
+ GtkWidget *widget);
+ static void nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+- GdkRectangle *rectangle,
++ const GdkRectangle *rectangle,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height);
+ static void nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+- GdkWindow *window,
++ cairo_t *cr,
+ GtkWidget *widget,
+- GdkRectangle *background_area,
+- GdkRectangle *cell_area,
+- GdkRectangle *expose_area,
++ const GdkRectangle *background_area,
++ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
+
+ enum {
+@@ -356,7 +355,7 @@
+ static void
+ nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+- GdkRectangle *cell_area,
++ const GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+@@ -368,6 +367,10 @@
+ gint pixbuf_height = 0;
+ gint calc_width;
+ gint calc_height;
++ int xpad;
++ int ypad;
++ gfloat xalign;
++ gfloat yalign;
+
+ if (!cellpixbuf->pixbuf && cellinfo->stock_id)
+ nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (cellpixbuf, widget);
+@@ -385,8 +388,11 @@
+ pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_closed));
+ }
+
+- calc_width = (gint) cell->xpad * 2 + pixbuf_width;
+- calc_height = (gint) cell->ypad * 2 + pixbuf_height;
++ gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
++ gtk_cell_renderer_get_alignment(cell, &xalign, &yalign);
++
++ calc_width = (gint) xpad * 2 + pixbuf_width;
++ calc_height = (gint) ypad * 2 + pixbuf_height;
+
+ if (x_offset) *x_offset = 0;
+ if (y_offset) *y_offset = 0;
+@@ -394,14 +400,14 @@
+ if (cell_area && pixbuf_width > 0 && pixbuf_height > 0) {
+ if (x_offset) {
+ *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
+- 1.0 - cell->xalign : cell->xalign) *
+- (cell_area->width - calc_width - 2 * cell->xpad));
+- *x_offset = MAX (*x_offset, 0) + cell->xpad;
++ 1.0 - xalign : xalign) *
++ (cell_area->width - calc_width - 2 * xpad));
++ *x_offset = MAX (*x_offset, 0) + xpad;
+ }
+ if (y_offset) {
+- *y_offset = (cell->yalign *
+- (cell_area->height - calc_height - 2 * cell->ypad));
+- *y_offset = MAX (*y_offset, 0) + cell->ypad;
++ *y_offset = (yalign *
++ (cell_area->height - calc_height - 2 * ypad));
++ *y_offset = MAX (*y_offset, 0) + ypad;
+ }
+ }
+
+@@ -414,11 +420,10 @@
+
+ static void
+ nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+- GdkWindow *window,
++ cairo_t *cr,
+ GtkWidget *widget,
+- GdkRectangle *background_area,
+- GdkRectangle *cell_area,
+- GdkRectangle *expose_area,
++ const GdkRectangle *background_area,
++ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
+
+ {
+@@ -429,13 +434,19 @@
+ GdkRectangle pix_emblem_rect;
+ GdkRectangle draw_rect;
+ gboolean stock_pixbuf = FALSE;
++ gboolean is_expander = FALSE;
++ gboolean is_expanded = FALSE;
++ int xpad;
++ int ypad;
++
++ g_object_get(cell, "is-expander", &is_expander, "is-expanded", &is_expanded, NULL);
+
+ pixbuf = cellpixbuf->pixbuf;
+- if (cell->is_expander) {
+- if (cell->is_expanded &&
++ if (is_expander) {
++ if (is_expanded &&
+ cellpixbuf->pixbuf_expander_open != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_open;
+- } else if (!cell->is_expanded &&
++ } else if (!is_expanded &&
+ cellpixbuf->pixbuf_expander_closed != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_closed;
+ }
+@@ -456,15 +467,20 @@
+ if (stock_pixbuf)
+ pixbuf = cellpixbuf->pixbuf;
+
++ gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
++
+ pix_rect.x += cell_area->x;
+ pix_rect.y += cell_area->y;
+- pix_rect.width -= cell->xpad * 2;
+- pix_rect.height -= cell->ypad * 2;
++ pix_rect.width -= xpad * 2;
++ pix_rect.height -= ypad * 2;
+
++ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect)) {
++#if 0
+ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
++
+ gdk_draw_pixbuf (window,
+- widget->style->black_gc,
++ gtk_widget_get_style(widget)->black_gc,
+ pixbuf,
+ /* pixbuf 0, 0 is at pix_rect.x, pix_rect.y */
+ draw_rect.x - pix_rect.x,
+@@ -475,6 +491,11 @@
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
++#endif
++
++ cairo_move_to (cr, draw_rect.x - pix_rect.x, draw_rect.y - pix_rect.y);
++ gdk_cairo_set_source_pixbuf (cr, pixbuf, draw_rect.x, draw_rect.y);
++ cairo_paint (cr);
+ }
+
+ if (cellpixbuf->pixbuf_emblem) {
+@@ -482,8 +503,11 @@
+ pix_emblem_rect.height = gdk_pixbuf_get_height (cellpixbuf->pixbuf_emblem);
+ pix_emblem_rect.x = pix_rect.x;
+ pix_emblem_rect.y = pix_rect.y + pix_rect.height - pix_emblem_rect.height;
++ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect)) {
++#if 0
+ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
++
+ gdk_draw_pixbuf (window,
+ widget->style->black_gc,
+ cellpixbuf->pixbuf_emblem,
+@@ -496,6 +520,11 @@
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
++#endif
++
++ cairo_move_to (cr, draw_rect.x - pix_emblem_rect.x, draw_rect.y - pix_emblem_rect.y);
++ gdk_cairo_set_source_pixbuf (cr, cellpixbuf->pixbuf_emblem, draw_rect.x, draw_rect.y);
++ cairo_paint (cr);
+ }
+ }
+ }
+--- src/nautilus-cell-renderer-pixbuf-emblem.h.orig 2011-02-07 22:18:12.336471764 +0100
++++ src/nautilus-cell-renderer-pixbuf-emblem.h 2011-02-08 00:20:30.461758697 +0100
+@@ -25,18 +25,18 @@
+ #ifndef NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+
+-#include <gtk/gtkcellrenderer.h>
++#include <gtk/gtk.h>
+
+ #define NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM \
+ (nautilus_cell_renderer_pixbuf_emblem_get_type ())
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+- (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
++ (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+- (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
++ (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
+ #define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+- (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
++ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+ #define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+- (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
++ (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+
+ typedef struct _NautilusCellRendererPixbufEmblem NautilusCellRendererPixbufEmblem;
+ typedef struct _NautilusCellRendererPixbufEmblemClass NautilusCellRendererPixbufEmblemClass;
+--- build/src/mn-authenticated-mailbox.c.orig 2011-02-08 00:34:16.332610802 +0100
++++ build/src/mn-authenticated-mailbox.c 2011-02-08 00:36:23.706936717 +0100
+@@ -25,7 +25,7 @@
+ #line 29 "src/mn-authenticated-mailbox.gob"
+
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-mailbox-private.h"
+ #include "mn-shell.h"
+ #include "mn-util.h"
+@@ -859,6 +859,7 @@
+
+ /* keep the title in sync with gnome-authentication-manager */
+
++#if 0
+ /* translators: header capitalization */
+ selfp->auth_dialog = gnome_password_dialog_new(_("Authentication Required"),
+ message,
+@@ -891,6 +892,9 @@
+ gtk_widget_destroy(selfp->auth_dialog);
+
+ return ok;
++#else
++ return FALSE;
++#endif
+ }}
+ #line 896 "mn-authenticated-mailbox.c"
+ #undef __GOB_FUNCTION__
+--- build/src/mn-about-dialog.c.orig 2011-02-08 22:20:54.469841262 +0100
++++ build/src/mn-about-dialog.c 2011-02-08 22:21:13.309839037 +0100
+@@ -111,9 +111,11 @@
+ {
+ #line 32 "src/mn-about-dialog.gob"
+
++#if 0
+ gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+ gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+-
++#endif
++
+ #line 118 "mn-about-dialog.c"
+ }
+ }
+--- build/src/mn-autodetect-mailbox-properties.c.orig 2011-02-08 22:21:58.639427345 +0100
++++ build/src/mn-autodetect-mailbox-properties.c 2011-02-08 22:22:43.564035901 +0100
+@@ -355,10 +355,9 @@
+
+ toplevel = gtk_widget_get_toplevel(GTK_WIDGET(button));
+ /* translators: header capitalization */
+- selfp->chooser = gtk_file_chooser_dialog_new_with_backend(_("Select a File or Folder"),
++ selfp->chooser = gtk_file_chooser_dialog_new(_("Select a File or Folder"),
+ GTK_WINDOW(toplevel),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+- "gnome-vfs",
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, 1,
+ NULL);
+--- build/src/mn-pi-mailbox-properties.c.orig 2011-02-08 22:30:08.051375715 +0100
++++ build/src/mn-pi-mailbox-properties.c 2011-02-08 22:30:21.398665261 +0100
+@@ -415,7 +415,7 @@
+ int i;
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+- gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
++ gtk_widget_set_sensitive(self->port_spin[i], gtk_widget_get_sensitive(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
+
+ g_object_notify(G_OBJECT(self), "complete");
+ }}
+--- src/eggtrayicon.c.orig 2011-02-07 23:42:30.405791829 +0100
++++ src/eggtrayicon.c 2011-02-08 23:06:16.092968325 +0100
+@@ -25,7 +25,7 @@
+
+ #include "eggtrayicon.h"
+
+-#include <gdkconfig.h>
++#include <gdk/gdk.h>
+ #if defined (GDK_WINDOWING_X11)
+ #include <gdk/gdkx.h>
+ #include <X11/Xatom.h>
+@@ -258,7 +258,7 @@
+ {
+ GdkWindow *gdkwin;
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (widget),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+@@ -290,7 +290,7 @@
+ ev.window = window;
+ ev.message_type = icon->system_tray_opcode_atom;
+ ev.format = 32;
+- ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window);
++ ev.data.l[0] = gdk_x11_get_server_time (gtk_widget_get_window(GTK_WIDGET (icon)));
+ ev.data.l[1] = message;
+ ev.data.l[2] = data1;
+ ev.data.l[3] = data2;
+@@ -342,12 +342,12 @@
+ {
+ GdkWindow *gdkwin;
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+
+- if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
++ if (dock_if_realized && gtk_widget_get_realized (GTK_WIDGET(icon)))
+ egg_tray_icon_send_dock_request (icon);
+
+ egg_tray_icon_get_orientation_property (icon);
+@@ -355,10 +355,16 @@
+ }
+
+ static gboolean
+-transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
++transparent_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
+ {
+- gdk_window_clear_area (widget->window, event->area.x, event->area.y,
++#if 0
++ gdk_window_clear_area (gtk_widget_get_window(widget), event->area.x, event->area.y,
+ event->area.width, event->area.height);
++#endif
++ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
++ //gdk_cairo_region (cr, event->region);
++ cairo_fill (cr);
++
+ return FALSE;
+ }
+
+@@ -366,20 +372,20 @@
+ make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
+ gpointer user_data)
+ {
+- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++ //gdk_window_set_back_pixmap (gtk_widget_get_window(widget), NULL, TRUE);
+ }
+
+ static void
+ make_transparent (GtkWidget *widget, gpointer user_data)
+ {
+- if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
++ if (! gtk_widget_get_has_window (widget) || gtk_widget_get_app_paintable (widget))
+ return;
+
+ gtk_widget_set_app_paintable (widget, TRUE);
+ gtk_widget_set_double_buffered (widget, FALSE);
+- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
+- g_signal_connect (widget, "expose_event",
+- G_CALLBACK (transparent_expose_event), NULL);
++ //gdk_window_set_back_pixmap (gtk_widget_get_window(widget), NULL, TRUE);
++ g_signal_connect (widget, "draw",
++ G_CALLBACK (transparent_draw), NULL);
+ g_signal_connect_after (widget, "style_set",
+ G_CALLBACK (make_transparent_again), NULL);
+ }
+@@ -391,7 +397,7 @@
+
+ g_return_if_fail (icon->manager_window != None);
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+--- build/src/mn-properties-dialog.c.orig 2011-02-08 23:37:12.605200174 +0100
++++ build/src/mn-properties-dialog.c 2011-02-08 23:37:18.601881191 +0100
+@@ -183,7 +183,7 @@
+ GtkTreeSelection *selection;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+- PKGDATADIR G_DIR_SEPARATOR_S "properties-dialog.glade",
++ PKGDATADIR G_DIR_SEPARATOR_S "properties-dialog.ui",
+ "main_vbox",
+ "mn_properties_dialog_",
+ "notebook", &selfp->notebook,
+--- src/mn-util.c.orig 2011-02-08 00:01:25.167207512 +0100
++++ src/mn-util.c 2011-02-09 00:01:35.718285446 +0100
+@@ -26,8 +26,7 @@
+ #include <gmodule.h>
+ #include <glib/gi18n.h>
+ #include <gobject/gvaluecollector.h>
+-#include <gnome.h>
+-#include <glade/glade.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+ #include "mn-mailboxes.h"
+ #include "mn-shell.h"
+@@ -303,49 +302,55 @@
+ return pixbuf;
+ }
+
+-static GladeXML *
++static GtkBuilder *
+ mn_glade_xml_new (const char *filename, const char *root, const char *domain)
+ {
+- GladeXML *xml;
++ GtkBuilder *builder;
++ GError *err = NULL;
+
+ g_return_val_if_fail(filename != NULL, NULL);
+
+- xml = glade_xml_new(filename, root, domain);
+- if (! xml)
+- mn_show_fatal_error_dialog(NULL, "Unable to load interface \"%s\".", filename);
++ builder = gtk_builder_new();
++ gtk_builder_set_translation_domain(builder, domain);
++ if (! gtk_builder_add_from_file(builder, filename, &err)) {
++ mn_show_fatal_error_dialog(NULL, "Unable to load interface \"%s\": %s.", filename, err->message);
++ g_error_free(err);
++ g_object_unref(builder);
++ return NULL;
++ }
+
+- return xml;
++ return builder;
+ }
+
+ static GtkWidget *
+-mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name)
++mn_glade_xml_get_widget (GtkBuilder *builder, const char *widget_name)
+ {
+ GtkWidget *widget;
+
+- g_return_val_if_fail(GLADE_IS_XML(xml), NULL);
++ g_return_val_if_fail(GTK_IS_BUILDER(builder), NULL);
+ g_return_val_if_fail(widget_name != NULL, NULL);
+
+- widget = glade_xml_get_widget(xml, widget_name);
++ widget = GTK_WIDGET(gtk_builder_get_object(builder, widget_name));
+ if (! widget)
+- mn_show_fatal_error_dialog(NULL, "Widget \"%s\" not found in interface \"%s\".", widget_name, xml->filename);
++ mn_show_fatal_error_dialog(NULL, "Widget \"%s\" not found in interface.", widget_name);
+
+ return widget;
+ }
+
+ static void
+-create_interface_connect_cb (const char *handler_name,
++create_interface_connect_cb (GtkBuilder *builder,
+ GObject *object,
+ const char *signal_name,
+- const char *signal_data,
++ const char *handler_name,
+ GObject *connect_object,
+- gboolean after,
++ GConnectFlags flags,
+ gpointer user_data)
+ {
+ static GModule *module = NULL;
+ ContainerCreateInterfaceConnectInfo *info = user_data;
+ char *cb_name;
+ GCallback cb;
+- GConnectFlags flags;
++ GConnectFlags cflags;
+
+ if (! module)
+ {
+@@ -359,11 +364,9 @@
+ mn_show_fatal_error_dialog(NULL, "Signal handler \"%s\" not found.", cb_name);
+ g_free(cb_name);
+
+- flags = G_CONNECT_SWAPPED;
+- if (after)
+- flags |= G_CONNECT_AFTER;
++ cflags = G_CONNECT_SWAPPED;
+
+- g_signal_connect_data(object, signal_name, cb, info->container, NULL, flags);
++ g_signal_connect_data(object, signal_name, cb, info->container, NULL, cflags);
+ }
+
+ void
+@@ -373,7 +376,7 @@
+ const char *callback_prefix,
+ ...)
+ {
+- GladeXML *xml;
++ GtkBuilder *xml;
+ GtkWidget *child;
+ ContainerCreateInterfaceConnectInfo info;
+ va_list args;
+@@ -387,14 +390,16 @@
+ xml = mn_glade_xml_new(filename, child_name, NULL);
+ child = mn_glade_xml_get_widget(xml, child_name);
+
+- if (GTK_IS_DIALOG(container))
+- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(container)->vbox), child, TRUE, TRUE, 0);
+- else
++ if (GTK_IS_DIALOG(container)) {
++ gtk_widget_unparent(child);
++ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(container))), child, TRUE, TRUE, 0);
++ } else {
+ gtk_container_add(container, child);
++ }
+
+ info.container = container;
+ info.callback_prefix = callback_prefix;
+- glade_xml_signal_autoconnect_full(xml, create_interface_connect_cb, &info);
++ gtk_builder_connect_signals_full(xml, create_interface_connect_cb, &info);
+
+ va_start(args, callback_prefix);
+
+@@ -422,7 +427,7 @@
+
+ toplevel = gtk_widget_get_toplevel(widget);
+
+- return GTK_WIDGET_TOPLEVEL(toplevel) ? GTK_WINDOW(toplevel) : NULL;
++ return gtk_widget_get_toplevel(toplevel) ? GTK_WINDOW(toplevel) : NULL;
+ }
+
+ static void
+@@ -493,9 +498,11 @@
+ gpointer user_data)
+ {
+ GtkAdjustment *adjustment;
++ GtkAllocation allocation;
+
++ gtk_widget_get_allocation(widget, &allocation);
+ adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(widget));
+- gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
++ gtk_adjustment_set_value(adjustment, (double) y / (allocation.height - 2) * (gtk_adjustment_get_upper(adjustment) - gtk_adjustment_get_page_size(adjustment)));
+
+ return TRUE; /* we're forcibly in a drop zone */
+ }
+@@ -562,7 +569,7 @@
+ MNMailbox *mailbox;
+
+ /* text/x-moz-url is encoded in UCS-2 but in format 8: broken */
+- if (selection_data->format != 8 || selection_data->length <= 0 || (selection_data->length % 2) != 0)
++ if (gtk_selection_data_get_format(selection_data) != 8 || gtk_selection_data_get_length(selection_data) <= 0 || (gtk_selection_data_get_length(selection_data) % 2) != 0)
+ {
+ mn_show_error_dialog(mn_widget_get_parent_window(widget),
+ _("A drag and drop error has occurred"),
+@@ -570,8 +577,8 @@
+ return;
+ }
+
+- char_data = (const guint16 *) selection_data->data;
+- char_len = selection_data->length / 2;
++ char_data = (const guint16 *) gtk_selection_data_get_data(selection_data);
++ char_len = gtk_selection_data_get_length(selection_data) / 2;
+
+ url = g_string_new(NULL);
+ for (i = 0; i < char_len && char_data[i] != '\n'; i++)
+@@ -1322,7 +1329,7 @@
+ }
+
+ static void
+-dialog_run_nonmodal_destroy_h (GtkObject *object, gpointer user_data)
++dialog_run_nonmodal_destroy_h (GtkWidget *object, gpointer user_data)
+ {
+ RunNonmodalInfo *info = user_data;
+
+@@ -1375,7 +1382,7 @@
+
+ g_object_ref(dialog);
+
+- if (! GTK_WIDGET_VISIBLE(dialog))
++ if (! gtk_widget_get_visible(dialog))
+ gtk_widget_show(GTK_WIDGET(dialog));
+
+ g_object_connect(dialog,
+--- src/mn-main.c.gtk3 2008-05-22 17:45:35.000000000 +0200
++++ src/mn-main.c 2011-02-08 23:32:33.800030659 +0100
+@@ -21,7 +21,7 @@
+ #include <stdlib.h>
+ #include <signal.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include <libgnomevfs/gnome-vfs.h>
+ #include <libnotify/notify.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+@@ -452,7 +452,7 @@
+
+ gnome_program_init(PACKAGE,
+ VERSION,
+- LIBGNOMEUI_MODULE,
++ LIBGNOME_MODULE,
+ argc,
+ argv,
+ GNOME_PARAM_HUMAN_READABLE_NAME, _("Mail Notification"),
+@@ -460,6 +460,8 @@
+ GNOME_PARAM_GOPTION_CONTEXT, option_context,
+ NULL);
+
++ gtk_init(&argc, &argv);
++
+ if (arg_version)
+ {
+ print_version();
+@@ -497,7 +499,9 @@
+ if (! gnome_vfs_init())
+ mn_show_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+
++#if 0
+ gnome_authentication_manager_init();
++#endif
+
+ /* must be called before init_gmime() */
+ mn_conf_init();
+--- src/mn-conf.c.gtk3 2008-05-22 17:45:35.000000000 +0200
++++ src/mn-conf.c 2011-02-07 20:07:01.630580132 +0100
+@@ -23,7 +23,7 @@
+ #include <errno.h>
+ #include <stdarg.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+ #include "mn-conf.h"
+ #include "mn-shell.h"
+--- data/mail-notification.desktop.in.orig 2011-07-08 13:46:52.327548264 +0200
++++ data/mail-notification.desktop.in 2011-07-08 13:47:00.732704467 +0200
+@@ -5,7 +5,7 @@
+ _Comment=Get notified when new mail arrives
+ Type=Application
+ Categories=GNOME;GTK;Network;Email;
+-Exec=mail-notification --sm-disable
++Exec=mail-notification
+ Terminal=false
+ StartupNotify=true
+ X-GNOME-DocPath=mail-notification/mail-notification.xml
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..48d54742a
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-icons.patch
@@ -0,0 +1,39 @@
+diff -Nrbu mail-notification-5.4/src/mn-stock.c mail-notification-5.4-OK/src/mn-stock.c
+--- mail-notification-5.4/src/mn-stock.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-stock.c 2010-05-24 19:36:03.000000000 +0400
+@@ -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_LOCAL, NULL, "stock_folder" },
+- { MN_STOCK_REMOTE, NULL, "stock_internet" },
+- { MN_STOCK_UNKNOWN, NULL, "stock_unknown" },
++ { MN_STOCK_MAIL, NULL, "mail-message-new" },
++ { MN_STOCK_NO_MAIL, NULL, "mail-notification" },
++ { MN_STOCK_LOCAL, NULL, "folder" },
++ { MN_STOCK_REMOTE, NULL, "applications-internet" },
++ { MN_STOCK_UNKNOWN, NULL, "dialog-question" },
+ { MN_STOCK_ERROR, NULL, NULL, GTK_STOCK_DIALOG_ERROR },
+ #if WITH_GMAIL
+ { MN_STOCK_GMAIL, PKGDATADIR G_DIR_SEPARATOR_S "gmail.png" },
+@@ -48,14 +48,14 @@
+ { MN_STOCK_HOTMAIL, PKGDATADIR G_DIR_SEPARATOR_S "hotmail.png" },
+ #endif
+ #if WITH_MBOX || WITH_MOZILLA || WITH_MH || WITH_MAILDIR || WITH_SYLPHEED
+- { MN_STOCK_SYSTEM_MAILBOX, NULL, "system" },
++ { MN_STOCK_SYSTEM_MAILBOX, NULL, "applications-system" },
+ #endif
+ #if WITH_EVOLUTION
+ { MN_STOCK_EVOLUTION_MAILBOX, NULL, "evolution" },
+ #endif
+- { MN_STOCK_MAIL_READER, NULL, "stock_mail-handling" },
+- { MN_STOCK_OPEN_MESSAGE, NULL, "stock_mail-open" },
+- { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "stock_mark" }
++ { MN_STOCK_MAIL_READER, NULL, "mail-unread" },
++ { MN_STOCK_OPEN_MESSAGE, NULL, "mail-read" },
++ { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "mail-mark-read" }
+ };
+ GtkIconFactory *factory;
+ GtkIconTheme *icon_theme;
diff --git a/extra/mail-notification/mail-notification-5.4-kde-trayicon.patch b/extra/mail-notification/mail-notification-5.4-kde-trayicon.patch
new file mode 100644
index 000000000..a3bdc8372
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-kde-trayicon.patch
@@ -0,0 +1,72 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-shell.c mail-notification-5.4-OK/build/src/mn-shell.c
+--- mail-notification-5.4/build/src/mn-shell.c 2010-10-11 17:45:23.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-shell.c 2010-10-11 17:45:48.000000000 +0400
+@@ -313,6 +313,29 @@
+ #undef __GOB_FUNCTION__
+
+ static void
++mn_shell_init_icon_base (MNShell * self)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (MN_IS_SHELL (self));
++
++ self->icon = MN_MAIL_ICON(mn_mail_icon_new());
++ mn_add_weak_pointer(&self->icon);
++
++ g_object_connect(self->icon,
++ "signal::activate", self_icon_activate_h, self,
++ "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
++ "signal::activate-open-latest-message", self_icon_activate_open_latest_message_h, self,
++ "swapped-signal::activate-consider-new-mail-as-read", self_consider_new_mail_as_read, self,
++ "swapped-signal::activate-update", self_update, self,
++ "signal::activate-properties", self_icon_activate_properties_h, self,
++ "signal::activate-help", self_icon_activate_help_h, self,
++ "signal::activate-about", self_icon_activate_about_h, self,
++ "swapped-signal::activate-remove", self_quit, self,
++ "signal::destroy", self_icon_destroy_h, self,
++ NULL);
++}
++
++static void
+ mn_shell_init (MNShell * o G_GNUC_UNUSED)
+ {
+ #define __GOB_FUNCTION__ "MN:Shell::init"
+@@ -793,22 +816,7 @@
+ {
+ #line 360 "src/mn-shell.gob"
+
+- self->icon = MN_MAIL_ICON(mn_mail_icon_new());
+- mn_add_weak_pointer(&self->icon);
+-
+- g_object_connect(self->icon,
+- "signal::activate", self_icon_activate_h, self,
+- "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
+- "signal::activate-open-latest-message", self_icon_activate_open_latest_message_h, self,
+- "swapped-signal::activate-consider-new-mail-as-read", self_consider_new_mail_as_read, self,
+- "swapped-signal::activate-update", self_update, self,
+- "signal::activate-properties", self_icon_activate_properties_h, self,
+- "signal::activate-help", self_icon_activate_help_h, self,
+- "signal::activate-about", self_icon_activate_about_h, self,
+- "swapped-signal::activate-remove", self_quit, self,
+- "signal::destroy", self_icon_destroy_h, self,
+- NULL);
+-
++ mn_shell_init_icon_base(self);
+ self_update_sensitivity(self);
+ self_update_tooltip(self);
+ self_update_icon(self);
+@@ -1094,7 +1102,13 @@
+ }
+ else
+ {
+- gtk_widget_hide(GTK_WIDGET(self->icon));
++ /* Re-create the icon as a regular gtk_widget_hide causes the
++ * icon to remain visible on non-GNOME environments. We can't
++ * use the callback self_icon_destroy_h here as it can cause an
++ * endless recursion */
++ g_signal_handlers_disconnect_by_func(self->icon, self_icon_destroy_h, self);
++ gtk_widget_destroy(GTK_WIDGET(self->icon));
++ mn_shell_init_icon_base(self);
+ mn_mail_icon_set_blinking(self->icon, FALSE);
+ }
+ }}
diff --git a/extra/mail-notification/mail-notification-5.4-popup-attach.patch b/extra/mail-notification/mail-notification-5.4-popup-attach.patch
new file mode 100644
index 000000000..b8d5f6a09
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-popup-attach.patch
@@ -0,0 +1,45 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-popup.c mail-notification-5.4-OK/build/src/mn-popup.c
+--- mail-notification-5.4/build/src/mn-popup.c 2008-05-22 19:47:49.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-popup.c 2010-10-11 17:42:32.000000000 +0400
+@@ -177,6 +177,29 @@
+ #undef __GOB_FUNCTION__
+
+ static void
++mn_popup_wait_for_icon_to_become_ready (void)
++{
++ int x, y;
++ int count = 0;
++
++ /* When the tray icon is created, it can still take some time before
++ * it has arrived at the correct position. This is especially the case
++ * on KDE environments. To work around this, add a little delay of at
++ * most 2 seconds before showing a popup which is attached to the notification */
++ do {
++ gdk_window_get_origin (gtk_widget_get_window (mn_shell->icon), &x, &y);
++
++ if (x != 0 || y != 0) {
++ break;
++ }
++
++ g_usleep(G_USEC_PER_SEC / 10);
++ count++;
++ } while (count < 20);
++}
++
++
++static void
+ mn_popup_init (MNPopup * o G_GNUC_UNUSED)
+ {
+ #define __GOB_FUNCTION__ "MN:Popup::init"
+@@ -299,8 +322,10 @@
+ "icon-name", "stock_mail",
+ NULL);
+
+- if (mn_conf_get_enum_value(MN_TYPE_POPUP_POSITION, MN_CONF_POPUPS_POSITION) == MN_POPUP_POSITION_ATTACHED)
++ if (mn_conf_get_enum_value(MN_TYPE_POPUP_POSITION, MN_CONF_POPUPS_POSITION) == MN_POPUP_POSITION_ATTACHED) {
++ mn_popup_wait_for_icon_to_become_ready();
+ g_object_set(self, "attach-widget", mn_shell->icon, NULL);
++ }
+
+ g_string_free(body, TRUE);
+
diff --git a/extra/mail-notification/mail-notification-5.4-sasl_encode64.patch b/extra/mail-notification/mail-notification-5.4-sasl_encode64.patch
new file mode 100644
index 000000000..80a7304d1
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-sasl_encode64.patch
@@ -0,0 +1,24 @@
+diff -up mail-notification-5.4/build/src/mn-pop3-mailbox.c mail-notification-5.4-OK/build/src/mn-pop3-mailbox.c
+--- mail-notification-5.4/build/src/mn-pop3-mailbox.c 2009-05-19 10:29:58.448201837 +0200
++++ mail-notification-5.4-OK/build/src/mn-pop3-mailbox.c 2009-05-19 10:23:29.356204287 +0200
+@@ -619,7 +619,7 @@ mn_pop3_mailbox_enter_auth_cb (MNClientS
+
+ if (initial_clientoutlen > 0)
+ {
+- char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
++ char buf64[initial_clientoutlen * 2 + 1]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
+diff -up mail-notification-5.4/src/mn-client-session.c mail-notification-5.4-OK/src/mn-client-session.c
+--- mail-notification-5.4/src/mn-client-session.c 2008-05-22 17:45:35.000000000 +0200
++++ mail-notification-5.4-OK/src/mn-client-session.c 2009-05-19 10:29:09.112211055 +0200
+@@ -1030,7 +1030,7 @@ mn_client_session_write (MNClientSession
+ static int
+ write_base64 (MNClientSession *session, const char *buf, unsigned int len)
+ {
+- char buf64[len * 2]; /* Base64 is 33% larger than the data it encodes */
++ char buf64[len * 2 + 1]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
diff --git a/extra/mail-notification/mail-notification-5.4-weak.patch b/extra/mail-notification/mail-notification-5.4-weak.patch
new file mode 100644
index 000000000..2e2a233aa
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-weak.patch
@@ -0,0 +1,11 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-shell.c mail-notification-5.4-OK/build/src/mn-shell.c
+--- mail-notification-5.4/build/src/mn-shell.c 2008-05-22 19:47:49.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-shell.c 2010-05-24 19:39:48.000000000 +0400
+@@ -1008,6 +1008,7 @@
+ Self *self = user_data;
+
+ /* The Notification Area applet has been terminated. Recreate the icon. */
++ mn_remove_weak_pointer(&self->icon);
+ self_init_icon(self);
+ }}
+ #line 1014 "mn-shell.c"
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..24a513b52
--- /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' 'mips64el')
+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..fdd755c8f
--- /dev/null
+++ b/extra/manedit/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 143901 2011-11-30 20:13:10Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=manedit
+pkgver=1.2.1
+pkgrel=4
+pkgdesc="An editor specifically tailored for UNIX manual pages"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://freecode.com/projects/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
+
+ 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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # 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
+
+ # 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/mash/PKGBUILD b/extra/mash/PKGBUILD
new file mode 100644
index 000000000..b14b6b5af
--- /dev/null
+++ b/extra/mash/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 139393 2011-10-01 19:00:18Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=mash
+pkgver=0.1.0
+pkgrel=2
+pkgdesc="A small library for using 3D models within a Clutter scene"
+arch=(mips64el)
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('clutter')
+makedepends=('gtk-doc' 'gobject-introspection')
+source=(http://www.clutter-project.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('81f4b01d5661010dd742d4a82f9af4555624601ba3fb4e0780cfe2b34c13c24f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/maxima/PKGBUILD b/extra/maxima/PKGBUILD
new file mode 100644
index 000000000..8d63f8280
--- /dev/null
+++ b/extra/maxima/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 144879 2011-12-08 21:06:55Z juergen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir@archlinux.org>
+
+pkgname=maxima
+pkgver=5.25.1
+pkgrel=3
+pkgdesc="Maxima - a sophisticated computer algebra system"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://maxima.sourceforge.net"
+if [ "${CARCH}" == "mips64el" ] ; then
+ depends=('clisp' 'texinfo' 'sh')
+else
+ depends=('sbcl=1.0.54' 'texinfo' 'sh')
+fi
+makedepends=('python2')
+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")
+sha1sums=('9c9ea66434c9ca96549092c3640c3ba5a4fba44b'
+ '4398ebb1ec85ccfa12f37516a56d60c26f74b18b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # set correct python executable to create docs
+ sed -i "s|${PYTHONBIN:-python}|python2|" doc/info/extract_categories.sh
+
+ if [ "${CARCH}" == "mips64el" ] ; then
+ lisp="--enable-clisp --with-default-lisp=clisp"
+ else
+ lisp="--enable-sbcl --with-default-lisp=sbcl"
+ fi
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info \
+ --libexecdir=/usr/lib $lisp
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install some freedesktop.org compatibility
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+
+ # make sure, we have a nice icon for the desktop file at the right place ;)
+ install -d ${pkgdir}/usr/share/pixmaps/
+ ln -s /usr/share/maxima/${pkgver}/xmaxima/maxima-new.png \
+ ${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/mcpp/PKGBUILD b/extra/mcpp/PKGBUILD
new file mode 100644
index 000000000..1e05b23cb
--- /dev/null
+++ b/extra/mcpp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137665 2011-09-10 11:18:34Z pierre $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=mcpp
+pkgver=2.7.2
+pkgrel=3
+pkgdesc="Matsui's CPP implementation precisely conformed to standards"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ ./configure --prefix=/usr --enable-mcpplib --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ 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..72b2bcc3d
--- /dev/null
+++ b/extra/mcrypt/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 136972 2011-09-04 11:41:22Z pierre $
+# 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=2
+pkgdesc="A program for encrypting files or streams"
+url="http://mcrypt.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('mhash' 'libmcrypt' 'zlib')
+source=("http://downloads.sourceforge.net/$pkgname/${pkgname}-${pkgver}.tar.gz")
+md5sums=('97639f8821b10f80943fa17da302607e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/mediastreamer/PKGBUILD b/extra/mediastreamer/PKGBUILD
new file mode 100644
index 000000000..ed4634c49
--- /dev/null
+++ b/extra/mediastreamer/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142632 2011-11-12 17:15:28Z ibiru $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Adrià Arrufat <swiftscythe@gmail.com>
+
+pkgname=mediastreamer
+pkgver=2.7.3
+pkgrel=4
+pkgdesc="A library written in C that allows you to create and run audio and video streams"
+arch=('i686' 'x86_64' 'mips64el')
+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/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ "disable-v4l1.patch")
+md5sums=('5213307f557d86aa648f1a53a885138c'
+ '7ee15689eed1adbdcf0ddab8fadca34a')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver/
+ patch -p2 -i "${srcdir}"/disable-v4l1.patch
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/mediastreamer/
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/mediastreamer/disable-v4l1.patch b/extra/mediastreamer/disable-v4l1.patch
new file mode 100644
index 000000000..9f6cb84d4
--- /dev/null
+++ b/extra/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/extra/memcached/ChangeLog b/extra/memcached/ChangeLog
new file mode 100644
index 000000000..d1f1e44d0
--- /dev/null
+++ b/extra/memcached/ChangeLog
@@ -0,0 +1,24 @@
+2011-02-07 Ionut Biru <ibiru@archlinux.org>
+ * Rebuild 1.4.5 against libevent 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..e87dc16b8
--- /dev/null
+++ b/extra/memcached/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142481 2011-11-10 15:13:21Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Michael Irwin <6d6469@gmail.com>
+
+pkgname=memcached
+pkgver=1.4.10
+pkgrel=1
+pkgdesc="A distributed memory object caching system"
+arch=(i686 x86_64 'mips64el')
+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)
+changelog=ChangeLog
+sha256sums=('2cc3de341b561464da29fc5d5e2a4facc0f6aafc151f0e1d94228705e0758fdf'
+ '0e57a0f528b387f1f04f628ec74856c615d82d44f4d6bc041c33b3814ce13d0a'
+ '72efa639c5a39c7c14f07cc51731ebbf82299870d9cf31cf3aaa981bc084b4eb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./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
+ # This POS is entirely RedHat specific, so not including it now
+ #install -D -m 755 scripts/memcached.service "$pkgdir"/lib/systemd/system/memcached.service
+ #sed -i -e 's#^EnvironmentFile.*#EnvironmentFile=/etc/conf.d/memcached#' "$pkgdir"/lib/systemd/system/memcached.service
+ install -D -m 644 "$srcdir/memcached.conf" "$pkgdir"/etc/conf.d/memcached
+ install -D -m 755 "$srcdir/memcached.sh" "$pkgdir"/etc/rc.d/memcached
+}
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/mercurial/PKGBUILD b/extra/mercurial/PKGBUILD
new file mode 100644
index 000000000..ecd33c675
--- /dev/null
+++ b/extra/mercurial/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 144344 2011-12-04 21:37:38Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=mercurial
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="A scalable distributed SCM tool"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mercurial.selenic.com/"
+license=('GPL')
+depends=('python2')
+optdepends=('tk: for the hgk GUI')
+backup=('etc/mercurial/hgrc')
+source=("http://mercurial.selenic.com/release/${pkgname}-${pkgver}.tar.gz"
+ 'mercurial.profile')
+md5sums=('16576b3089a88a84a35edc30e17a03a9'
+ '43e1d36564d4c7fbe9a091d3ea370a44')
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=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"
+ install -m644 doc/{hgrc.5,hgignore.5} "${pkgdir}/usr/share/man/man5"
+ install -m755 contrib/hgk "${pkgdir}/usr/bin"
+ install -m644 -D contrib/zsh_completion "${pkgdir}/usr/share/zsh/site-functions/_hg"
+ install -m644 -D contrib/bash_completion "${pkgdir}/etc/bash_completion.d/hg"
+ install -d "${pkgdir}/usr/share/emacs/site-lisp"
+ install -m644 contrib/{mq.el,mercurial.el} "${pkgdir}/usr/share/emacs/site-lisp"
+
+ vimpath="${pkgdir}/usr/share/vim/vimfiles"
+ install -Dm644 contrib/vim/HGAnnotate.vim "${vimpath}/syntax/HGAnnotate.vim"
+
+ # set some variables
+ install -m755 -d ${pkgdir}/etc/profile.d
+ install -m755 ${srcdir}/mercurial.profile "${pkgdir}/etc/profile.d/mercurial.sh"
+
+ # install configuration file
+ install -m755 -d ${pkgdir}/etc/mercurial
+ install -m644 contrib/sample.hgrc "${pkgdir}/etc/mercurial/hgrc"
+}
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..6264b49c4
--- /dev/null
+++ b/extra/mesa/PKGBUILD
@@ -0,0 +1,338 @@
+# $Id: PKGBUILD 143633 2011-11-27 22:29:58Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=mesa
+pkgname=('mesa' 'libgl' 'libglapi' 'libgles' 'libegl' 'khrplatform-devel' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri') # 'llvm-dri')
+[[ "$CARCH" = "mips64el" ]] && pkgname=('mesa' 'libglapi' 'libgl' 'libgles')
+# prepare 7.12/8.0
+#pkgname=('mesa' 'libgl' 'libglapi' 'libgles' 'libegl' 'ati-dri' 'intel-dri' 'nouveau-dri') # 'llvm-dri')
+
+#_git=true
+_gitdate=20111031
+_git=false
+
+if [ "${_git}" = "true" ]; then
+ #pkgver=7.10.99.git20110709
+ pkgver=7.11
+ else
+ pkgver=7.11.2
+fi
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('glproto>=1.4.14' 'libdrm>=2.4.26' 'libxxf86vm>=1.1.1' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libx11>=1.4.3' 'libxt>=1.1.1'
+ 'gcc-libs>=4.6.1' 'python2' 'libxml2' 'imake' 'udev')
+[ "$CARCH" = "mips64el" ] || makedepends+=('dri2proto=2.6' 'llvm')
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+source=(LICENSE)
+if [ "${_git}" = "true" ]; then
+ # mesa git shot from 7.11 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.11&id=1ae00c5960af83bea9545a18a1754bad83d5cbd0
+ #source=(${source[@]} 'ftp://ftp.archlinux.org/other/mesa/mesa-1ae00c5960af83bea9545a18a1754bad83d5cbd0.tar.bz2')
+ source=(${source[@]} "MesaLib-git${_gitdate}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-ef9f16f6322a89fb699fbe3da868b10f9acaef98.tar.bz2")
+ else
+ source=(${source[@]} "ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2"
+ #source=(${source[@]} "MesaLib-git${_gitdate}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-4464ee1a9aa3745109cee23531e3fb2323234d07.tar.bz2"
+)
+fi
+[ "$CARCH" = "mips64el" ] && \
+ source+=(mesa-7.5-mips-wmb.patch mesa-loongson.patch)
+
+build() {
+ cd ${srcdir}/?esa-*
+
+
+if [ "$CARCH" = "mips64el" ]; then
+ # WMB for MIPS patch from Fedora and Gentoo
+ patch -Np1 -i $srcdir/mesa-7.5-mips-wmb.patch
+ patch -Np1 -i $srcdir/mesa-loongson.patch
+
+ configure=configure
+ if [ ! -f configure ]; then
+ autoreconf -vfi
+ configure=autogen.sh
+ fi
+
+ ./${configure} --prefix=/usr \
+ --enable-glx-tls \
+ --with-driver=xlib \
+ --enable-xcb \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl
+else
+if [ "${_git}" = "true" ]; then
+ autoreconf -vfi
+ ./autogen.sh --prefix=/usr \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --with-gallium-drivers=r300,r600,nouveau,swrast \
+ --enable-gallium-llvm \
+ --enable-gallium-egl --enable-shared-glapi\
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --enable-texture-float \
+ --enable-shared-dricore
+
+ # --enable-gallium-svga \
+
+ else
+ autoreconf -vfi
+ ./configure --prefix=/usr \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --with-gallium-drivers=r300,r600,nouveau,swrast \
+ --enable-gallium-llvm \
+ --enable-gallium-egl --enable-shared-glapi\
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --enable-texture-float \
+ --enable-shared-dricore
+fi
+fi
+
+ make
+}
+
+package_libgl() {
+ depends=('libdrm>=2.4.26' 'libxxf86vm>=1.1.1' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libglapi' 'gcc-libs')
+ pkgdesc="Mesa 3-D graphics library and DRI software rasterizer"
+ [[ "$CARCH" = "mips64el" ]] && pkgdesc="Mesa 3-D graphics library (Xlib)"
+
+ cd ${srcdir}/?esa-*
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
+
+ bin/minstall lib/libGL.so* "${pkgdir}/usr/lib/"
+
+ if [ "$CARCH" != "mips64el" ]; then
+ bin/minstall lib/libdricore.so* "${pkgdir}/usr/lib/"
+ bin/minstall lib/libglsl.so* "${pkgdir}/usr/lib/"
+
+ cd src/mesa/drivers/dri
+ make -C ${srcdir}/?esa-*/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+
+ 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"
+
+ fi
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgl/"
+}
+
+package_libglapi() {
+ depends=('glibc')
+ pkgdesc="free implementation of the GL API -- shared library. The Mesa GL API module is responsible for dispatching all the gl* functions"
+
+ cd ${srcdir}/?esa-*
+ install -m755 -d "${pkgdir}/usr/lib"
+ bin/minstall lib/libglapi.so* "${pkgdir}/usr/lib/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libglapi"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libglapi/"
+}
+
+package_libgles() {
+ depends=('libglapi' 'khrplatform-devel')
+ pkgdesc="Mesa GLES libraries and headers"
+
+ cd ${srcdir}/?esa-*
+ 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 -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgles/"
+}
+
+package_libegl() {
+ depends=('libglapi' 'libdrm' 'libxext' 'libxfixes' 'udev' 'khrplatform-devel')
+ pkgdesc="Mesa EGL libraries and headers"
+
+ cd ${srcdir}/?esa-*
+ make -C src/gallium/targets/egl-static DESTDIR="${pkgdir}" install
+ 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/"
+ install -m755 -d "${pkgdir}/usr/include/EGL"
+ 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/"
+ install -m755 -d "${pkgdir}/usr/lib/egl"
+ 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 docs/egl.html "${pkgdir}/usr/share/doc/libegl/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libegl"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libegl/"
+}
+
+package_khrplatform-devel() {
+ depends=('')
+ pkgdesc="Khronos platform development package"
+
+ cd ${srcdir}/?esa-*
+ install -m755 -d "${pkgdir}/usr/include/KHR"
+ bin/minstall include/KHR/khrplatform.h "${pkgdir}/usr/include/KHR/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/khrplatform-devel"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/khrplatform-devel/"
+}
+
+package_mesa() {
+ depends=('libgl' 'libx11>=1.4.3' 'libxt>=1.1.1' 'gcc-libs>=4.6')
+[ "$CARCH" = "mips64el" ] || depends+=('dri2proto>=2.6' 'glproto>=1.4.14') #dri2proto + glproto needed for gl.pc
+ optdepends=('opengl-man-pages: for the OpenGL API man pages')
+ pkgdesc="Mesa 3-D graphics libraries and include files"
+
+ cd ${srcdir}/?esa-*
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/lib/libGL.so"*
+ rm -f "${pkgdir}/usr/lib/libglapi.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 -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
+}
+
+package_ati-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI radeon/r200 + Gallium3D r300,r600 drivers for AMD/ATI Radeon"
+ conflicts=('xf86-video-ati<6.9.0-6')
+
+ # classic mesa drivers for radeon,r200
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/radeon DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/r200 DESTDIR="${pkgdir}" install
+ # gallium3D driver for r300,r600
+ make -C ${srcdir}/?esa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/?esa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+}
+
+package_intel-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Intel"
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/i810 DESTDIR="${pkgdir}" install # dead in 7.12
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/i915 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/i965 DESTDIR="${pkgdir}" install
+}
+
+package_unichrome-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/unichrome DESTDIR="${pkgdir}" install
+}
+
+package_mach64-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Mach64"
+ conflicts=('xf86-video-mach64<6.8.2')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/mach64 DESTDIR="${pkgdir}" install
+}
+
+package_mga-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Matrox"
+ conflicts=('xf86-video-mga<1.4.11')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/mga DESTDIR="${pkgdir}" install
+}
+
+package_r128-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Rage128"
+ conflicts=('xf86-video-r128<6.8.1')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/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')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/savage DESTDIR="${pkgdir}" install
+}
+
+package_sis-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for SiS"
+ conflicts=('xf86-video-sis<0.10.2')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/sis DESTDIR="${pkgdir}" install
+}
+
+package_tdfx-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for 3dfx"
+ conflicts=('xf86-video-tdfx<1.4.3')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/tdfx DESTDIR="${pkgdir}" install
+}
+
+package_nouveau-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau"
+
+ # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/nouveau DESTDIR="${pkgdir}" install
+ # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so
+ make -C ${srcdir}/?esa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+}
+
+#package_llvm-dri() {
+# depends=("libgl=${pkgver}")
+# pkgdesc="Mesa common LLVM support"
+
+#if [ "${_git}" = "true" ]; then
+# cd ${srcdir}/mesa-*/src/gallium
+# else
+# cd "${srcdir}/Mesa-${pkgver}/src/gallium"
+#fi
+
+ # gallium llvmpipe
+#if [ "${_git}" = "true" ]; then
+# make -C drivers/llvmpipe DESTDIR="${pkgdir}" install
+# #make -C targets/dri-swrast DESTDIR="${pkgdir}" install
+# else
+# make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+#fi
+#}
+md5sums=('5c65a0fe315dd347e09b1f2826a1df5a'
+ '0837c52698fe3252369c3fdb5195afcc'
+ 'c7788f2495060bf133771aef6ad25929'
+ '598c24dccfcdcc99c07d883f7c09f36a')
diff --git a/extra/mesa/mesa-7.5-mips-wmb.patch b/extra/mesa/mesa-7.5-mips-wmb.patch
new file mode 100644
index 000000000..06c3d1835
--- /dev/null
+++ b/extra/mesa/mesa-7.5-mips-wmb.patch
@@ -0,0 +1,11 @@
+--- mesa-20090921/src/mesa/drivers/dri/sis/sis_context.h.orig 2010-03-31 23:31:37.252554011 +0800
++++ mesa-20090921/src/mesa/drivers/dri/sis/sis_context.h 2010-03-31 23:32:06.616553941 +0800
+@@ -404,6 +404,8 @@
+ #define MMIO_WMB() __asm __volatile("" : : : "memory")
+ #elif defined(__ia64__)
+ #define MMIO_WMB() __asm __volatile("mf" : : : "memory")
++#elif defined(__mips__)
++#define MMIO_WMB() __asm __volatile("" : : : "memory")
+ #else
+ #error platform needs WMB
+ #endif
diff --git a/extra/mesa/mesa-loongson.patch b/extra/mesa/mesa-loongson.patch
new file mode 100644
index 000000000..fa82abe49
--- /dev/null
+++ b/extra/mesa/mesa-loongson.patch
@@ -0,0 +1,11 @@
+--- Mesa-6.5.2/include/GL/internal/sarea.h.orig 2007-03-01 05:27:22.000000000 +0800
++++ Mesa-6.5.2/include/GL/internal/sarea.h 2007-03-01 05:27:49.000000000 +0800
+@@ -44,6 +44,8 @@
+ /* SAREA area needs to be at least a page */
+ #if defined(__alpha__)
+ #define SAREA_MAX 0x2000
++#elif defined(__mips__)
++#define SAREA_MAX 0x4000
+ #elif defined(__ia64__)
+ #define SAREA_MAX 0x10000 /* 64kB */
+ #else
diff --git a/extra/metacity/PKGBUILD b/extra/metacity/PKGBUILD
new file mode 100644
index 000000000..12e0c3b39
--- /dev/null
+++ b/extra/metacity/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 128306 2011-06-22 17:53:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=metacity
+pkgver=2.34.1
+pkgrel=1
+pkgdesc="A window manager for GNOME"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('startup-notification' 'gconf' 'zenity' 'libcanberra' 'libgtop' 'libwnck' 'libsm')
+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}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('f144cb43925ca00d8eaac129a14df3260c54a32324b5cd0a4d78b0fd7ff1028a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./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.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..ec87ecba0
--- /dev/null
+++ b/extra/metalog/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 137711 2011-09-10 13:12:33Z pierre $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=metalog
+pkgver=1.0
+pkgrel=2
+pkgdesc="Metalog is a modern replacement for syslogd and klogd"
+url="http://metalog.sourceforge.net"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('pcre')
+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')
+
+build() {
+ cd $srcdir/$pkgname-1
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-1
+ make DESTDIR=$pkgdir install
+ install -D -m755 $srcdir/metalog $pkgdir/etc/rc.d/metalog
+ install -D -m644 $srcdir/metalog.confd $pkgdir/etc/conf.d/metalog
+ install -D -m644 metalog.conf $pkgdir/etc/metalog.conf
+}
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..1fac0fedc
--- /dev/null
+++ b/extra/mhash/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 122885 2011-05-07 03:21:34Z eric $
+# Contributor: gregor <gregor@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=mhash
+pkgver=0.9.9.9
+pkgrel=2
+pkgdesc="A thread-safe hash library which provides a uniform interface to hash algorithms (MD5, SHA1, HAVAL, etc)"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/midori/PKGBUILD b/extra/midori/PKGBUILD
new file mode 100644
index 000000000..7bc946085
--- /dev/null
+++ b/extra/midori/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142825 2011-11-16 00:02:11Z eric $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: rabyte <rabyte.at.gmail.dot.com>
+# Contributor: Johannes Krampf <wuischke.at.amule.dot.org>
+
+pkgname=midori
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="A lightweight web browser based on Gtk WebKit"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.twotoasts.de/index.php?/pages/midori_summary.html"
+license=('LGPL2.1')
+install=midori.install
+depends=('libwebkit>=1.3.13' 'libunique' 'hicolor-icon-theme' 'desktop-file-utils' 'libnotify>=0.7.1' 'libxss')
+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/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+md5sums=('4ec9c3daa332ebe865cba6aa8256ef63')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # python2
+ export PYTHON=/usr/bin/python2
+ sed -i -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" wscript waf
+
+ ./configure --prefix=/usr \
+ --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..4da5511fd
--- /dev/null
+++ b/extra/midori/midori.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ 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/midori/webkit_search.diff b/extra/midori/webkit_search.diff
new file mode 100644
index 000000000..620cdc96f
--- /dev/null
+++ b/extra/midori/webkit_search.diff
@@ -0,0 +1,59 @@
+From 648d869e4ff69f121da97484a0fd553b005ca751 Mon Sep 17 00:00:00 2001
+From: Christian Dywan <christian@twotoasts.de>
+Date: Wed, 21 Sep 2011 21:50:51 +0000
+Subject: Use DOM API to get selected text in WebKitGTK+ 1.5.1
+
+Fixes: https://bugs.launchpad.net/midori/+bug/799603
+---
+diff --git a/midori/midori-view.c b/midori/midori-view.c
+index 0d7a96e..e426e7f 100644
+--- a/midori/midori-view.c
++++ b/midori/midori-view.c
+@@ -39,9 +39,11 @@
+ #include <sys/utsname.h>
+ #endif
+
++#if !WEBKIT_CHECK_VERSION (1, 5, 1)
+ /* This is unstable API, so we need to declare it */
+ gchar*
+ webkit_web_view_get_selected_text (WebKitWebView* web_view);
++#endif
+
+ static void
+ midori_view_construct_web_view (MidoriView* view);
+@@ -4167,10 +4169,33 @@ midori_view_get_link_uri (MidoriView* view)
+ gboolean
+ midori_view_has_selection (MidoriView* view)
+ {
++#if WEBKIT_CHECK_VERSION (1, 5, 1)
++ WebKitDOMDocument* doc;
++ WebKitDOMDOMWindow* window;
++ WebKitDOMDOMSelection* selection;
++ WebKitDOMRange* range;
++#endif
++
+ g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE);
+
++
++#if WEBKIT_CHECK_VERSION (1, 5, 1)
++ doc = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (view->web_view));
++ window = webkit_dom_document_get_default_view (doc);
++ selection = webkit_dom_dom_window_get_selection (window);
++ if (selection == NULL)
++ return FALSE;
++
++ range = webkit_dom_dom_selection_get_range_at (selection, 0, NULL);
++ if (range == NULL)
++ return FALSE;
++
++ katze_assign (view->selected_text, webkit_dom_range_get_text (range));
++#else
+ katze_assign (view->selected_text, webkit_web_view_get_selected_text (
+ WEBKIT_WEB_VIEW (view->web_view)));
++#endif
++
+ if (view->selected_text && *view->selected_text)
+ return TRUE;
+ else
+--
+cgit
diff --git a/extra/minicom/PKGBUILD b/extra/minicom/PKGBUILD
new file mode 100644
index 000000000..0ce9aabe5
--- /dev/null
+++ b/extra/minicom/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144449 2011-12-05 22:54:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Denis Tikhomirov <dvtikhomirov@gmail.com>
+
+pkgname=minicom
+pkgver=2.5
+pkgrel=3
+pkgdesc="A serial communication program"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://alioth.debian.org/projects/minicom/"
+license=('GPL')
+depends=('bash' 'ncurses')
+optdepends=('lrzsz: for xmodem, ymodem and zmodem file transfer protocols')
+backup=('etc/minirc.dfl')
+source=("http://alioth.debian.org/frs/download.php/3487/${pkgname}-${pkgver}.tar.gz")
+md5sums=('a5117d4d21e2c9e825edb586ee2fe8d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}/" install
+ install -Dm644 doc/minirc.dfl ${pkgdir}/etc/minirc.dfl
+}
diff --git a/extra/mirage/PKGBUILD b/extra/mirage/PKGBUILD
new file mode 100644
index 000000000..633b00d3c
--- /dev/null
+++ b/extra/mirage/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 120115 2011-04-20 11:08:02Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Scott Horowitz <stonecrest@gmail.com>
+pkgname=mirage
+pkgver=0.9.5.2
+pkgrel=1
+pkgdesc="A simple GTK+ Image Viewer"
+url="http://mirageiv.berlios.de"
+license=("GPL")
+depends=('pygtk' 'desktop-file-utils')
+arch=('i686' 'x86_64' 'mips64el')
+source=(http://download.berlios.de/mirageiv/${pkgname}-${pkgver}.tar.gz)
+install=$pkgname.install
+md5sums=('dace5cf01e5e53317ba8be0f8a74f4bf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py build
+}
+package() {
+ 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..5401bfc0a
--- /dev/null
+++ b/extra/miro/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142634 2011-11-12 17:15:30Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=miro
+pkgver=4.0.3
+pkgrel=2
+pkgdesc="The free and open source internet TV platform"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'gstreamer0.10-ffmpeg' 'ffmpeg' 'mutagen')
+makedepends=('pkg-config')
+install=miro.install
+options=('!makeflags')
+source=("http://ftp.osuosl.org/pub/pculture.org/${pkgname}/src/${pkgname}-${pkgver}.tar.gz"
+ 'ffmpeg.patch')
+sha1sums=('b08cd09d514d1af0b2403ab8dcd725b8c5d4b840'
+ 'f0c851d51318c0e0be8b91463ef901625d2587a9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/ffmpeg.patch"
+ cd 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/ffmpeg.patch b/extra/miro/ffmpeg.patch
new file mode 100644
index 000000000..edf378459
--- /dev/null
+++ b/extra/miro/ffmpeg.patch
@@ -0,0 +1,95 @@
+diff -urN miro-4.0.old/linux/miro-segmenter.c miro-4.0/linux/miro-segmenter.c
+--- miro-4.0.old/linux/miro-segmenter.c 2011-05-25 15:58:21.000000000 +0200
++++ miro-4.0/linux/miro-segmenter.c 2011-05-25 16:09:41.000000000 +0200
+@@ -60,7 +60,7 @@
+ }
+
+ switch (input_codec_context->codec_type) {
+- case CODEC_TYPE_AUDIO:
++ case AVMEDIA_TYPE_AUDIO:
+ output_codec_context->channel_layout = input_codec_context->channel_layout;
+ output_codec_context->sample_rate = input_codec_context->sample_rate;
+ output_codec_context->channels = input_codec_context->channels;
+@@ -72,7 +72,7 @@
+ output_codec_context->block_align = input_codec_context->block_align;
+ }
+ break;
+- case CODEC_TYPE_VIDEO:
++ case AVMEDIA_TYPE_VIDEO:
+ output_codec_context->pix_fmt = input_codec_context->pix_fmt;
+ output_codec_context->width = input_codec_context->width;
+ output_codec_context->height = input_codec_context->height;
+@@ -154,7 +154,7 @@
+ exit(1);
+ }
+
+- ofmt = guess_format("mpegts", NULL, NULL);
++ ofmt = av_guess_format("mpegts", NULL, NULL);
+ if (!ofmt) {
+ fprintf(stderr, "Could not find MPEG-TS muxer\n");
+ exit(1);
+@@ -174,12 +174,12 @@
+
+ for (i = 0; i < ic->nb_streams && (video_index < 0 || audio_index < 0); i++) {
+ switch (ic->streams[i]->codec->codec_type) {
+- case CODEC_TYPE_VIDEO:
++ case AVMEDIA_TYPE_VIDEO:
+ video_index = i;
+ ic->streams[i]->discard = AVDISCARD_NONE;
+ video_st = add_output_stream(oc, ic->streams[i]);
+ break;
+- case CODEC_TYPE_AUDIO:
++ case AVMEDIA_TYPE_AUDIO:
+ audio_index = i;
+ ic->streams[i]->discard = AVDISCARD_NONE;
+ audio_st = add_output_stream(oc, ic->streams[i]);
+@@ -195,7 +195,7 @@
+ exit(1);
+ }
+
+- dump_format(oc, 0, input, 1);
++ av_dump_format(oc, 0, input, 1);
+
+ if (video_st) {
+ codec = avcodec_find_decoder(video_st->codec->codec_id);
+@@ -208,7 +208,7 @@
+ }
+ }
+
+- if (url_fopen(&oc->pb, output_filename, URL_WRONLY) < 0) {
++ if (avio_open(&oc->pb, output_filename, URL_WRONLY) < 0) {
+ fprintf(stderr, "Could not open '%s'\n", output_filename);
+ exit(1);
+ }
+@@ -234,7 +234,7 @@
+ break;
+ }
+
+- if (packet.stream_index == video_index && (packet.flags & PKT_FLAG_KEY)) {
++ if (packet.stream_index == video_index && (packet.flags & AV_PKT_FLAG_KEY)) {
+ segment_time = (double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den;
+ }
+ else if (video_index < 0) {
+@@ -245,10 +245,10 @@
+ }
+
+ if (segment_time - prev_segment_time >= segment_duration) {
+- put_flush_packet(oc->pb);
+- url_fclose(oc->pb);
++ avio_flush(oc->pb);
++ avio_close(oc->pb);
+
+- if (url_fopen(&oc->pb, output_filename, URL_WRONLY) < 0) {
++ if (avio_open(&oc->pb, output_filename, URL_WRONLY) < 0) {
+ fprintf(stderr, "Could not open '%s'\n", output_filename);
+ break;
+ }
+@@ -278,7 +278,7 @@
+ av_freep(&oc->streams[i]);
+ }
+
+- url_fclose(oc->pb);
++ avio_close(oc->pb);
+ av_free(oc);
+
+ return 0;
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..b881f3a30
--- /dev/null
+++ b/extra/mjpegtools/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144422 2011-12-05 18:18:17Z jgc $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Mantainer: Roberto Carvajal <roberto@archlinux.org>
+
+pkgname=mjpegtools
+pkgver=2.0.0
+pkgrel=1
+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 'mips64el')
+license=('GPL')
+url="http://mjpeg.sourceforge.net/"
+depends=('libjpeg' 'libpng' 'sdl' 'gcc-libs' 'libdv' 'texinfo')
+makedepends=('gtk2' 'v4l-utils')
+optdepends=('gtk2: glav GUI')
+options=('!makeflags' '!libtool')
+install=mjpegtools.install
+source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz
+ mjpegtools-v4l-2.6.38.patch)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/mjpegtools-v4l-2.6.38.patch"
+ sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure
+ ./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/"
+}
+md5sums=('903e1e3b967eebcc5fe5626d7517dc46'
+ '44006d6f844017fe57aa123aa43f4508')
diff --git a/extra/mjpegtools/mjpegtools-v4l-2.6.38.patch b/extra/mjpegtools/mjpegtools-v4l-2.6.38.patch
new file mode 100644
index 000000000..6adeb921c
--- /dev/null
+++ b/extra/mjpegtools/mjpegtools-v4l-2.6.38.patch
@@ -0,0 +1,100 @@
+Index: lavtools/lavvideo.c
+===================================================================
+--- lavtools/lavvideo.c.orig
++++ lavtools/lavvideo.c
+@@ -63,7 +63,7 @@ Copyright by Gernot Ziegler.
+ * errors here, check your linux/time.h && sys/time.h header setup.
+ */
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+
+ #include <videodev_mjpeg.h>
+ #include <frequencies.h>
+Index: lavtools/liblavplay.c
+===================================================================
+--- lavtools/liblavplay.c.orig
++++ lavtools/liblavplay.c
+@@ -68,7 +68,8 @@
+ * errors here, check your linux/time.h && sys/time.h header setup.
+ */
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
++#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
+ #else
+ #define VIDEO_MODE_PAL 0
+ #define VIDEO_MODE_NTSC 1
+Index: lavtools/liblavrec.c
+===================================================================
+--- lavtools/liblavrec.c.orig
++++ lavtools/liblavrec.c
+@@ -63,7 +63,8 @@
+ * errors here, check your linux/time.h && sys/time.h header setup.
+ */
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
++#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
+ #ifdef HAVE_SYS_SOUNDCARD_H
+ #include <sys/soundcard.h>
+ #endif
+Index: lavtools/testrec.c
+===================================================================
+--- lavtools/testrec.c.orig
++++ lavtools/testrec.c
+@@ -89,7 +89,7 @@
+ * errors here, check your linux/time.h && sys/time.h header setup.
+ */
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <linux/soundcard.h>
+
+ /* These are explicit prototypes for the compiler, to prepare separation of audiolib.c */
+Index: configure.ac
+===================================================================
+--- configure.ac.orig
++++ configure.ac
+@@ -164,7 +164,7 @@ AC_ARG_WITH([v4l], AC_HELP_STRING([--wit
+ AS_IF([test "x$with_v4l" != "xno"], [
+ case $host in
+ *-*-linux*)
+- AC_CHECK_HEADER(linux/videodev.h,
++ AC_CHECK_HEADER(libv4l1-videodev.h,
+ [have_video4linux=true
+ AC_DEFINE(HAVE_V4L, 1,
+ [Building for Linux - using the video4linux API])], [])
+@@ -173,7 +173,7 @@ esac])
+
+ AS_IF([test "x$have_video4linux" != "xtrue" && test "x$with_v4l" != "xno"],
+ [have_video4linux=false
+- AC_MSG_WARN([videodev.h not found - please install the linux kernel headers programms needing v4l disabled])])
++ AC_MSG_WARN([libv4l1-videodev.h not found - please install the linux kernel headers programms needing v4l disabled])])
+ AM_CONDITIONAL(HAVE_V4L, test x$have_video4linux = xtrue)
+
+ dnl *********************************************************************
+Index: configure
+===================================================================
+--- configure.orig
++++ configure
+@@ -16392,7 +16392,7 @@ if test "x$with_v4l" != "xno"; then :
+
+ case $host in
+ *-*-linux*)
+- ac_fn_c_check_header_mongrel "$LINENO" "linux/videodev.h" "ac_cv_header_linux_videodev_h" "$ac_includes_default"
++ ac_fn_c_check_header_mongrel "$LINENO" "libv4l1-videodev.h" "ac_cv_header_linux_videodev_h" "$ac_includes_default"
+ if test "x$ac_cv_header_linux_videodev_h" = xyes; then :
+ have_video4linux=true
+
+@@ -16407,8 +16407,8 @@ fi
+
+ if test "x$have_video4linux" != "xtrue" && test "x$with_v4l" != "xno"; then :
+ have_video4linux=false
+- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: videodev.h not found - please install the linux kernel headers programms needing v4l disabled" >&5
+-$as_echo "$as_me: WARNING: videodev.h not found - please install the linux kernel headers programms needing v4l disabled" >&2;}
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libv4l1-videodev.h not found - please install the linux kernel headers programms needing v4l disabled" >&5
++$as_echo "$as_me: WARNING: libv4l1-videodev.h not found - please install the linux kernel headers programms needing v4l disabled" >&2;}
+ fi
+ if test x$have_video4linux = xtrue; then
+ HAVE_V4L_TRUE=
diff --git a/extra/mjpegtools/mjpegtools.install b/extra/mjpegtools/mjpegtools.install
new file mode 100644
index 000000000..ef149c761
--- /dev/null
+++ b/extra/mjpegtools/mjpegtools.install
@@ -0,0 +1,14 @@
+infodir=/usr/share/info
+file=mjpeg-howto.info
+
+post_install() {
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/extra/mkvtoolnix/PKGBUILD b/extra/mkvtoolnix/PKGBUILD
new file mode 100644
index 000000000..c45eb034c
--- /dev/null
+++ b/extra/mkvtoolnix/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 144061 2011-12-02 20:54:42Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: xduugu <xduugu@gmx.com>
+
+pkgbase=mkvtoolnix
+pkgname=('mkvtoolnix-cli' 'mkvtoolnix-gtk')
+pkgver=5.1.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.bunkus.org/videotools/mkvtoolnix/index.html"
+makedepends=('libmatroska' 'flac' 'libvorbis' 'file' 'wxgtk'
+ 'boost-libs' 'lzo2' 'xdg-utils' 'boost' 'ruby')
+source=("http://www.bunkus.org/videotools/${pkgbase}/sources/${pkgbase}-${pkgver}.tar.bz2")
+md5sums=('fed878893a7f292969e8bd81c7ab9209')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # Disable automagic curl dep used for online update checking
+ sed -i -e '/curl/d' configure.in
+ export CURL_CFLAGS="" CURL_LIBS=""
+
+ export CFLAGS="${CFLAGS} -DBOOST_FILESYSTEM_VERSION=3"
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=3"
+
+ autoreconf
+
+ ./configure --prefix=/usr \
+ --with-boost-libdir=/usr/lib \
+ --disable-gui
+ rake
+
+ mv src/mkvinfo{,-cli}
+
+ ./configure --prefix=/usr \
+ --with-boost-libdir=/usr/lib
+ rake
+}
+
+package_mkvtoolnix-cli() {
+ pkgdesc="Set of tools to create, edit and inspect Matroska files - CLI version"
+ depends=('libmatroska' 'expat' 'flac' 'libvorbis' 'file' 'boost-libs' 'lzo2')
+ provides=('mkvtoolnix')
+ conflicts=('mkvtoolnix')
+ replaces=('mkvtoolnix')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ rake DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/bin/mkvinfo
+ install -Dm755 src/mkvinfo-cli "${pkgdir}"/usr/bin/mkvinfo
+
+ rm -rf "${pkgdir}"/usr/bin/mmg
+ rm -rf "${pkgdir}"/usr/share/man/ja/man1/mmg.1
+ rm -rf "${pkgdir}"/usr/share/man/man1/mmg.1
+ rm -rf "${pkgdir}"/usr/share/man/nl/man1/mmg.1
+ rm -rf "${pkgdir}"/usr/share/man/zh_CN/man1/mmg.1
+ rm -rf "${pkgdir}"/usr/share/applications
+ rm -rf "${pkgdir}"/usr/share/icons
+ rm -rf "${pkgdir}"/usr/share/mime
+}
+
+package_mkvtoolnix-gtk() {
+ pkgdesc="Set of tools to create, edit and inspect Matroska files - wxGTK GUI"
+ depends=("mkvtoolnix-cli=${pkgver}" 'wxgtk' 'xdg-utils')
+ install=mkvtoolnix.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ rake DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/bin/mkv*
+ install -Dm755 src/mkvinfo "${pkgdir}"/usr/bin/mkvinfo-gtk
+ sed -ri 's/^(Exec=mkvinfo)/\1-gtk/' "${pkgdir}"/usr/share/applications/mkvinfo.desktop
+
+ rm -rf "${pkgdir}"/usr/share/doc
+ rm -rf "${pkgdir}"/usr/share/locale
+ rm -rf "${pkgdir}"/usr/share/man/ja/man1/mkv*
+ rm -rf "${pkgdir}"/usr/share/man/man1/mkv*
+ rm -rf "${pkgdir}"/usr/share/man/nl/man1/mkv*
+ rm -rf "${pkgdir}"/usr/share/man/zh_CN/man1/mkv*
+}
diff --git a/extra/mkvtoolnix/mkvtoolnix.install b/extra/mkvtoolnix/mkvtoolnix.install
new file mode 100644
index 000000000..74d9eb2ef
--- /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
+}
+
+pre_remove() {
+ post_install
+}
diff --git a/extra/moc/PKGBUILD b/extra/moc/PKGBUILD
new file mode 100644
index 000000000..9e460b754
--- /dev/null
+++ b/extra/moc/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 142636 2011-11-12 17:15:33Z ibiru $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=moc
+pkgver=20110528
+pkgrel=4
+pkgdesc="An ncurses console audio player with support for the mp3, ogg, and wave formats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://moc.daper.net/"
+license=('GPL')
+depends=('libmad' 'libid3tag' 'jack' 'curl' 'libltdl' 'file')
+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')
+source=(ftp://ftp.archlinux.org/other/moc/${pkgname}-${pkgver}.tar.xz \
+ gcc-undefined-symbols.diff moc-ffmpeg.patch)
+sha1sums=('f79049136ce6616bfd6af2f5e08246a5921441cf'
+ 'a811a4ac7e049914aab528d3f06a6be6634c2720'
+ 'f7e8eb17a89fea1c08c8a68f5afd1ffdc641ce9d')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ patch -p0 -i ../gcc-undefined-symbols.diff
+ patch -p0 -i ../moc-ffmpeg.patch
+
+# Disabling aac to use the external ffmpeg to play them (FS#13164)
+ ./autogen.sh
+ ./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 --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/moc/gcc-undefined-symbols.diff b/extra/moc/gcc-undefined-symbols.diff
new file mode 100644
index 000000000..09e9b8bda
--- /dev/null
+++ b/extra/moc/gcc-undefined-symbols.diff
@@ -0,0 +1,12 @@
+--- decoder.c~ 2011-05-08 09:28:28.077137883 +0200
++++ decoder.c 2011-05-10 21:40:48.887941968 +0200
+@@ -259,6 +259,9 @@
+ for (i = 0; i < plugins_num; i++)
+ if (plugins[i].decoder->destroy)
+ plugins[i].decoder->destroy ();
++ for (i = 0; i < plugins_num; i++)
++ if (plugins[i].handle)
++ lt_dlclose(plugins[i].handle);
+
+ if (lt_dlexit())
+ logit ("lt_exit() failed: %s", lt_dlerror());
diff --git a/extra/moc/moc-ffmpeg.patch b/extra/moc/moc-ffmpeg.patch
new file mode 100644
index 000000000..7554ea14e
--- /dev/null
+++ b/extra/moc/moc-ffmpeg.patch
@@ -0,0 +1,26 @@
+Index: decoder_plugins/ffmpeg/ffmpeg.c
+===================================================================
+--- decoder_plugins/ffmpeg/ffmpeg.c (revision 2307)
++++ decoder_plugins/ffmpeg/ffmpeg.c (working copy)
+@@ -28,12 +28,6 @@
+ #include <ffmpeg/avformat.h>
+ #endif
+
+-/* libavformat's API will be changing at version 53, but at present there
+- * appears to be no guidance on what will replace the deprecated fields. */
+-#ifndef FF_API_OLD_METADATA
+-#define FF_API_OLD_METADATA (LIBAVFORMAT_VERSION_MAJOR < 53)
+-#endif
+-
+ /* FFmpeg also likes common names, without that, our common.h and log.h
+ * would not be included. */
+ #undef COMMON_H
+@@ -137,7 +131,7 @@
+ av_read_play (data->ic);
+ for (i = 0; i < data->ic->nb_streams; i++) {
+ data->enc = data->ic->streams[i]->codec;
+- if (data->enc->codec_type == CODEC_TYPE_AUDIO) {
++ if (data->enc->codec_type == AVMEDIA_TYPE_AUDIO) {
+ audio_index = i;
+ break;
+ }
diff --git a/extra/mod_dnssd/PKGBUILD b/extra/mod_dnssd/PKGBUILD
new file mode 100644
index 000000000..02c0b82a6
--- /dev/null
+++ b/extra/mod_dnssd/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137844 2011-09-12 03:00:03Z eric $
+# 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=4
+pkgdesc="Zeroconf module for Apache2"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/lib/httpd/modules"
+ install -m755 src/.libs/mod_dnssd.so "${pkgdir}/usr/lib/httpd/modules/"
+}
diff --git a/extra/mod_fcgid/PKGBUILD b/extra/mod_fcgid/PKGBUILD
new file mode 100644
index 000000000..b50af4b07
--- /dev/null
+++ b/extra/mod_fcgid/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 133036 2011-07-27 01:53:07Z dan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=mod_fcgid
+pkgver=2.3.6
+pkgrel=1
+pkgdesc="A FastCGI module for Apache HTTP Server."
+license=('APACHE')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://httpd.apache.org/mod_fcgid/"
+depends=('apache')
+source=(http://apache.cs.utah.edu/httpd/mod_fcgid/mod_fcgid-$pkgver.tar.gz)
+sha256sums=('e831795498d91cf27a519ea1332c2a92a2a9920b0844d817b2ea7f079056d12b')
+
+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..d839902fe
--- /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 'mips64el')
+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..703071b1c
--- /dev/null
+++ b/extra/mod_perl/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 131985 2011-07-18 18:21:39Z foutrelis $
+# Maintainer: Firmicus <francois.archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+
+pkgname=mod_perl
+pkgver=2.0.5
+pkgrel=8
+pkgdesc="Apache module that embeds the Perl interpreter within the server"
+url="http://search.cpan.org/dist/${pkgname}/"
+depends=('perl' 'apache' 'db' 'apr-util' 'perl-linux-pid')
+license=('APACHE')
+arch=('i686' 'x86_64' 'mips64el')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/${pkgname}-${pkgver}.tar.gz
+ nolfs.patch)
+md5sums=('03d01d135a122bd8cebd0cd5b185d674'
+ '088e082afef57f92f234a01269e24ce5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Patch from openSUSE to fix segfaults on i686 (FS#25008):
+ # avoid a conflict between apache's LARGEFILE64_SOURCE and perl's
+ # FILE_OFFSET_BITS=64 because the conflict isn't real and causes the perl
+ # structures to be invalid if only the apache flags are used
+ patch -Np1 -i "$srcdir/nolfs.patch"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor MP_APXS=/usr/sbin/apxs
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+}
diff --git a/extra/mod_perl/nolfs.patch b/extra/mod_perl/nolfs.patch
new file mode 100644
index 000000000..3eb345b66
--- /dev/null
+++ b/extra/mod_perl/nolfs.patch
@@ -0,0 +1,14 @@
+Index: mod_perl-2.0.5/lib/Apache2/Build.pm
+===================================================================
+--- mod_perl-2.0.5.orig/lib/Apache2/Build.pm 2011-02-02 21:23:47.000000000 +0100
++++ mod_perl-2.0.5/lib/Apache2/Build.pm 2011-05-26 17:12:46.276946520 +0200
+@@ -2147,7 +2147,8 @@ sub has_large_files_conflict {
+ # with it is that we didn't have such a case yet, but may need to
+ # deal with it later
+
+- return $perl_lfs64 ^ $apr_lfs64;
++ return 0;
++ # $perl_lfs64 ^ $apr_lfs64;
+ }
+
+ # if perl is built with uselargefiles, but apr not, the build won't
diff --git a/extra/mod_wsgi/PKGBUILD b/extra/mod_wsgi/PKGBUILD
new file mode 100644
index 000000000..3579695e7
--- /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' 'mips64el')
+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..bf6bc7c58
--- /dev/null
+++ b/extra/modemmanager/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 134371 2011-08-03 08:01:01Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=modemmanager
+_realname=ModemManager
+pkgver=0.5
+pkgrel=1
+pkgdesc="Mobile broadband modem management service"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cgit.freedesktop.org/ModemManager/ModemManager/"
+license=('GPL2')
+depends=('dbus-glib' 'udev' 'ppp')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://download.gnome.org/sources/${_realname}/0.5/${_realname}-${pkgver}.tar.xz)
+optdepends=('usb_modeswitch: install if your modem shows up as a storage drive')
+sha256sums=('e7c7aed7c1484adee22f04dac358c1f971985f8413096c4d412d084aa2cd7c7f')
+
+build() {
+ cd "$srcdir/${_realname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/${_realname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/monica/PKGBUILD b/extra/monica/PKGBUILD
new file mode 100644
index 000000000..0615205f3
--- /dev/null
+++ b/extra/monica/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 130314 2011-07-04 22:06:55Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=monica
+pkgver=3.7
+pkgrel=2
+pkgdesc="A monitor calibration tool"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pcbypaul.com/software/monica.html"
+license=('BSD')
+depends=('fltk' 'xorg-xgamma')
+makedepends=('librsvg')
+#http://www.pcbypaul.com/software/dl/${pkgname}-${pkgver}.tar.bz2
+source=(ftp://ftp.archlinux.org/other/monica/${pkgname}-${pkgver}.tar.bz2 \
+ monica.desktop monica.svg)
+md5sums=('490aabc35b830e4a3dc32a2f893ba805'
+ 'a337bfda1fca7228420db0ce92256816'
+ '4569f5df7d7b3eaf20108adf48e8dfe4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -Dm755 monica "${pkgdir}/usr/bin/monica"
+ install -Dm644 "${srcdir}/monica.desktop" "${pkgdir}/usr/share/applications/monica.desktop"
+ install -Dm644 "${srcdir}/monica.svg" "${pkgdir}/usr/share/pixmaps/monica.svg"
+ rsvg-convert -w 64 -h 57 -f png -o "${pkgdir}/usr/share/pixmaps/monica.png" "${srcdir}/monica.svg"
+ install -Dm644 licence "${pkgdir}/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..01044c51a
--- /dev/null
+++ b/extra/mono-addins/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137544 2011-09-09 07:19:25Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=mono-addins
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="A generic framework for creating extensible applications and for creating libraries which extend those applications"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.mono-project.com/Mono.Addins"
+license=('custom:MIT')
+depends=('gtk-sharp-2>=2.12.8' 'mono>=2.10.5')
+makedepends=('pkgconfig')
+source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('afbbe5e9fdf9b03911bc8e6b94feb60b')
+
+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..f7d780783
--- /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 'mips64el')
+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..6c5e31f4b
--- /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 'mips64el')
+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..d3d6ec685
--- /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 'mips64el')
+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..3bd43a6ee
--- /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' 'mips64el')
+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..8bddd8565
--- /dev/null
+++ b/extra/mono/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 140778 2011-10-19 07:11:57Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Brice Carpentier <brice@dlfp.org>
+
+pkgname=mono
+pkgver=2.10.6
+pkgrel=1
+pkgdesc="Free implementation of the .NET platform including runtime and compiler"
+arch=(i686 x86_64 'mips64el')
+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://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ mono.rc.d)
+md5sums=('c442cef4cd6668b0a1391a661f6815a9'
+ '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..6b4b6f09f
--- /dev/null
+++ b/extra/monodevelop-debugger-gdb/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=monodevelop-debugger-gdb
+pkgver=2.8.4.2
+pkgrel=1
+pkgdesc="Mono Debugger support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://monodevelop.com"
+license=('GPL')
+depends=('monodevelop>=2.8.4.2' 'gdb')
+makedepends=('mono')
+source=(http://download.mono-project.com/sources/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('4c081b6d85ffe36389a3b06da37dcbe4')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/extra/monodevelop-debugger-mdb/PKGBUILD b/extra/monodevelop-debugger-mdb/PKGBUILD
new file mode 100644
index 000000000..23e4c6fa2
--- /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' 'mips64el')
+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..a00ba49aa
--- /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.8.4.2
+pkgrel=1
+pkgdesc="An IDE primarily designed for C# and other .NET languages"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.monodevelop.org"
+license=('GPL')
+depends=('mono>=2.10.5' 'mono-addins>=0.6.2' 'gnome-sharp' 'gecko-sharp-2.0>=0.10')
+options=(!makeflags)
+install=monodevelop.install
+source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('276fb75e2ffa4cf41fd609caa74dc276')
+
+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/monodevelop/monodevelop_gnome3.patch b/extra/monodevelop/monodevelop_gnome3.patch
new file mode 100644
index 000000000..4ea101f6a
--- /dev/null
+++ b/extra/monodevelop/monodevelop_gnome3.patch
@@ -0,0 +1,101 @@
+diff --git a/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs b/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs
+index 4d8954c..e1a1937 100644
+--- a/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs
++++ b/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs
+@@ -1,5 +1,6 @@
+ using System;
+ using System.Collections;
++using System.Collections.Generic;
+
+ namespace Stetic.Wrapper {
+ public abstract class Object : Stetic.ObjectWrapper {
+@@ -11,17 +12,32 @@ namespace Stetic.Wrapper {
+ ((GLib.Object)Wrapped).RemoveNotification (NotifyHandler);
+ base.Dispose ();
+ }
+-
++
++ IEnumerable<string> GladePropertyNames {
++ get {
++ foreach (ItemGroup group in ClassDescriptor.ItemGroups) {
++ foreach (ItemDescriptor item in group) {
++ TypedPropertyDescriptor prop = item as TypedPropertyDescriptor;
++ if (prop != null && !string.IsNullOrEmpty (prop.GladeName)) {
++ yield return prop.GladeName;
++ }
++ }
++ }
++ }
++ }
++
+ internal protected override void OnDesignerAttach (IDesignArea designer)
+ {
+ base.OnDesignerAttach (designer);
+- ((GLib.Object)Wrapped).AddNotification (NotifyHandler);
++ foreach (string property in GladePropertyNames)
++ ((GLib.Object)Wrapped).AddNotification (property, NotifyHandler);
+ }
+
+ internal protected override void OnDesignerDetach (IDesignArea designer)
+ {
+ base.OnDesignerDetach (designer);
+- ((GLib.Object)Wrapped).RemoveNotification (NotifyHandler);
++ foreach (string property in GladePropertyNames)
++ ((GLib.Object)Wrapped).RemoveNotification (property, NotifyHandler);
+ }
+
+ public static Object Lookup (GLib.Object obj)
+
+diff --git a/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs b/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
+index 89f04b5..75d7b17 100644
+--- a/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
++++ b/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
+@@ -1540,22 +1540,39 @@ namespace MonoDevelop.Components.Commands
+ internal class ToolbarTracker
+ {
+ Gtk.IconSize lastSize;
+-
++
+ public void Track (Gtk.Toolbar toolbar)
+ {
+ lastSize = toolbar.IconSize;
+- toolbar.AddNotification (OnToolbarPropChanged);
++ toolbar.AddNotification ("icon-size", IconSizeChanged);
++ toolbar.OrientationChanged += HandleToolbarOrientationChanged;
++ toolbar.StyleChanged += HandleToolbarStyleChanged;
++
+ toolbar.Destroyed += delegate {
+- toolbar.RemoveNotification (OnToolbarPropChanged);
++ toolbar.StyleChanged -= HandleToolbarStyleChanged;
++ toolbar.OrientationChanged -= HandleToolbarOrientationChanged;
++ toolbar.RemoveNotification ("icon-size", IconSizeChanged);
+ };
+ }
+-
+- void OnToolbarPropChanged (object ob, GLib.NotifyArgs args)
++
++ void HandleToolbarStyleChanged (object o, Gtk.StyleChangedArgs args)
+ {
+- Gtk.Toolbar t = (Gtk.Toolbar) ob;
+- if (lastSize != t.IconSize || args.Property == "orientation" || args.Property == "toolbar-style")
++ Gtk.Toolbar t = (Gtk.Toolbar) o;
++ if (lastSize != t.IconSize)
+ UpdateCustomItems (t);
+- lastSize = t.IconSize;
++ }
++
++ void HandleToolbarOrientationChanged (object o, Gtk.OrientationChangedArgs args)
++ {
++ Gtk.Toolbar t = (Gtk.Toolbar) o;
++ if (lastSize != t.IconSize)
++ UpdateCustomItems (t);
++ }
++
++ void IconSizeChanged (object o, GLib.NotifyArgs args)
++ {
++ this.lastSize = ((Gtk.Toolbar) o).IconSize;
++ UpdateCustomItems ((Gtk.Toolbar) o);
+ }
+
+ void UpdateCustomItems (Gtk.Toolbar t)
+
diff --git a/extra/most/PKGBUILD b/extra/most/PKGBUILD
new file mode 100644
index 000000000..5eeb3031d
--- /dev/null
+++ b/extra/most/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144477 2011-12-06 14:33:19Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: juergen <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=most
+pkgver=5.0.0a
+pkgrel=4
+pkgdesc="A terminal pager similar to 'more' and 'less'"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('slang')
+license=('GPL')
+url="http://www.jedsoft.org/most/index.html"
+source=(ftp://space.mit.edu/pub/davis/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ most-debian.patch
+ most-leak-fd.patch)
+sha1sums=('99eedb7169754b9a47c7755ac48949d76531e3b2'
+ '937796040c69bae3bf735fa3cd734775c582e7d0'
+ 'c5713e1278febdd0ed434e6e3044feb220b5d525')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../most-debian.patch
+ patch -Np1 -i ../most-leak-fd.patch
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/most/most-debian.patch b/extra/most/most-debian.patch
new file mode 100644
index 000000000..292c83b5a
--- /dev/null
+++ b/extra/most/most-debian.patch
@@ -0,0 +1,2313 @@
+--- most-5.0.0a.orig/lesskeys.rc
++++ most-5.0.0a/lesskeys.rc
+@@ -57,3 +57,8 @@
+ setkey goto_mark "'"
+ setkey find_file "E"
+ setkey edit "v"
++setkey bob "^[[7~"
++setkey eob "^[[8~"
++setkey bob "^[OH"
++setkey eob "^[OF"
++
+--- most-5.0.0a.orig/most.1
++++ most-5.0.0a/most.1
+@@ -203,7 +203,7 @@
+ .TP
+ .B +u
+ Force UTF-8 mode. By default most will use the current locale to
+-determine if UTF-8 mode shoul be used. The
++determine if UTF-8 mode should be used. The
+ .B +u
+ and
+ .B \-u
+@@ -224,20 +224,28 @@
+ Start up at the line containing the first occurrence of
+ .IR string .
+ .SH "COMMAND USAGE"
+-The commands take effect immediately; it is not necessary to type a
+-carriage return.
+-.PP
+-In the following commands,
+-.I i
+-is a numerical argument
+-(1 by default).
+-.TP
+-.BR SPACE ", " CTRL-D ", " NEXT_SCREEN
+-Display another windowful, or jump
+-.I i
+-windowfuls if
+-.I i
+-is specified.
++Some commands have an optional numeric argument
++.I id
++,entered before the command. If not given, the
++default value of
++.I i
++is 1.
++.PP
++Commands take effect immediately; typing a
++.I RETURN
++after isn't necessary or correct. (Besides,
++.I RETURN
++itself is a command.)
++.PP
++Example: to go down one line, press the
++.I DOWN_ARROW
++key. To go down 20 lines, press
++.I 2
++then
++.I 0
++then the
++.I DOWN_ARROW
++key.
+ .TP
+ \fBRETURN\fR, \fBDOWN_ARROW\fR, \fBV\fR, \fBCTRL-N\fR
+ Display another line, or
+@@ -341,7 +349,7 @@
+ .PD
+ Set a mark on the current line for later reference.
+ .TP
+-.BR "INSERT_HERE, CTRL-X CTRL-X, COMMA, CTRL-K RETURN, GOLD PERIOD"
++.BR "INSERT_HERE" ", " "CTRL-X CTRL-X" ", " "COMMA" ", " "CTRL-K RETURN" ", " "GOLD PERIOD"
+ Set a mark on the current line but return to previous mark.
+ This allows the user to toggle back and forth between two positions
+ in the file.
+@@ -355,7 +363,7 @@
+ .BR "CTRL-X 2" ", " "CTRL-W 2" ", " "GOLD X"
+ Split this window in half.
+ .TP
+-.BR "CTRL-X o" ", " "CTRL-W o" ", " o ", " GOLD UP ", " GOLD DOWN
++.BR "CTRL-X o" ", " "CTRL-W o" ", " o ", " "GOLD UP" ", " "GOLD DOWN"
+ Move to other window.
+ .TP
+ .BR "CTRL-X 0" ", " "CTRL-W 0" ", " "GOLD V"
+@@ -506,13 +514,15 @@
+ .B MOST_INITFILE
+ Set this variable to specify the initialization file to load during
+ startup. The default action is to load the system configuration file
+-and then a personal configuration file called
+-.I .mostrc
+-on Unix, and
+-.I most.rc
+-on other systems.
++from
++.I /etc/most.conf
++and then a personal configuration file located at
++.I $HOME/.mostrc
++.
+ .SH CONFIGURATION FILE SYNTAX
+-When most starts up, it tries to read a system configuration file and
++When
++.I 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
+@@ -520,13 +530,13 @@
+ .PP
+ .B setkey function-name key-sequence
+ .PP
+-The
++The
+ .I setkey
+ command requires two arguments. The
+ .I function-name
+ argument specifies the function that is to be executed as a response
+ to the keys specified by the
+-.I key-sequence
++.I key-sequence
+ argument are pressed. For example,
+ .PP
+ setkey "up" "^P"
+@@ -544,9 +554,9 @@
+ .PP
+ unsetkey "^F"
+ .PP
+-Colors may be defined through the use of the
++Colors may be defined through the use of the
+ .I color
+-keyword in the the configuration file using the syntax:
++keyword in the configuration file using the syntax:
+ .PP
+ .B color OBJECT-NAME FOREGROUND-COLOR BACKGROUND-COLOR
+ .PP
+@@ -589,19 +599,19 @@
+ for valuable comments and criticisms.
+ I would especially like to thank those individuals
+ who have contributed code to
+-.IR most.
++.IR most .
+ .PP
+ Mats Akerberg, Henk D. Davids, Rex O. Livingston, and Mark
+ Pizzolato contributed to the early VMS versions of
+-.IR most.
++.IR most .
+ In particular, Mark worked on it to get it ready for DECUS.
+ .PP
+ Foteos Macrides <MACRIDES@SCI.WFEB.EDU> adapted
+ .IR most
+-for use in
++for use in
+ .IR cswing
+ and
+-.IR gopher.
++.IR gopher .
+ A few features of the present version of
+ .IR most
+ was inspired from his work.
+@@ -613,7 +623,7 @@
+ automatic detection of zipped files.
+ .PP
+ I would also like to thank Shinichi Hama for his valuable criticisms of
+-.IR most.
++.IR most .
+ .PP
+ Javier Kohen was instrumental in the support for UTF-8.
+ .PP
+--- most-5.0.0a.orig/src/file.h
++++ most-5.0.0a/src/file.h
+@@ -22,6 +22,7 @@
+ #define MOST_MAX_FILES 4096
+ #define MOST_GUNZIP_POPEN_FORMAT "gzip -dc \"%s\""
+ #define MOST_BZIP2_POPEN_FORMAT "bzip2 -dc \"%s\""
++#define MOST_LZMA_POPEN_FORMAT "lzma -dc '%s'"
+
+ extern void most_reread_file (void);
+ extern void most_read_to_line (int);
+--- most-5.0.0a.orig/src/file.c
++++ most-5.0.0a/src/file.c
+@@ -77,7 +77,7 @@
+ static int open_compressed_file(char *file, int mode, int *size)
+ {
+ int fd;
+- char buf[4], cmdbuf[2*MAX_PATHLEN];
++ char buf[6], cmdbuf[2*MAX_PATHLEN];
+ struct stat st;
+
+ # ifdef O_BINARY
+@@ -97,7 +97,7 @@
+
+ if (fd < 0) return fd;
+
+- if (4 == read(fd, buf, 4))
++ if (6 == read(fd, buf, 6))
+ {
+ char *cmd = NULL;
+
+@@ -113,6 +113,13 @@
+ {
+ cmd = MOST_BZIP2_POPEN_FORMAT;
+ }
++ else if ((buf[0] == (char) 0xff)
++ && (buf[1] == 'L') && (buf[2] == 'Z')
++ && (buf[3] == 'M') && (buf[4] == 'A')
++ && (buf[5] == (char) 0x00))
++ {
++ cmd = MOST_LZMA_POPEN_FORMAT;
++ }
+
+ if (cmd != NULL)
+ {
+--- most-5.0.0a.orig/autoconf/config.guess
++++ most-5.0.0a/autoconf/config.guess
+@@ -1,9 +1,10 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
++# Free Software Foundation, Inc.
+
+-timestamp='2005-04-22'
++timestamp='2009-12-30'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -17,23 +18,25 @@
+ #
+ # 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.
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
+-# Originally written by Per Bothner <per@bothner.com>.
+-# Please send patches to <config-patches@gnu.org>. Submit a context
+-# diff and a properly formatted ChangeLog entry.
++
++# Originally written by Per Bothner. Please send patches (context
++# diff format) to <config-patches@gnu.org> and include a ChangeLog
++# entry.
+ #
+ # This script attempts to guess a canonical system name similar to
+ # config.sub. If it succeeds, it prints the system name on stdout, and
+ # exits with 0. Otherwise, it exits with 1.
+ #
+-# The plan is that this can be called by configure scripts if you
+-# don't specify an explicit build system type.
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+@@ -53,8 +56,9 @@
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+-Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
++Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -66,11 +70,11 @@
+ while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+- echo "$timestamp" ; exit 0 ;;
++ echo "$timestamp" ; exit ;;
+ --version | -v )
+- echo "$version" ; exit 0 ;;
++ echo "$version" ; exit ;;
+ --help | --h* | -h )
+- echo "$usage"; exit 0 ;;
++ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+@@ -104,7 +108,7 @@
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+@@ -123,7 +127,7 @@
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+-esac ;'
++esac ; set_cc_for_build= ;'
+
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # (ghazi@noc.rutgers.edu 1994-08-24)
+@@ -158,6 +162,7 @@
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
++ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+@@ -166,7 +171,7 @@
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+- | grep __ELF__ >/dev/null
++ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+@@ -196,55 +201,23 @@
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+- exit 0 ;;
+- amd64:OpenBSD:*:*)
+- echo x86_64-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- amiga:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- cats:OpenBSD:*:*)
+- echo arm-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- hp300:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- luna88k:OpenBSD:*:*)
+- echo m88k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mac68k:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- macppc:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvme68k:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvme88k:OpenBSD:*:*)
+- echo m88k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvmeppc:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- sgi:OpenBSD:*:*)
+- echo mips64-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- sun3:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:OpenBSD:*:*)
+- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
++ *:SolidBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
++ exit ;;
+ macppc:MirBSD:*:*)
+- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+- exit 0 ;;
++ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
++ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+@@ -297,40 +270,43 @@
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- exit 0 ;;
++ exit ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+- exit 0 ;;
++ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+- exit 0 ;;
++ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+- exit 0;;
++ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+- exit 0 ;;
++ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+- exit 0 ;;
++ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+- exit 0 ;;
++ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+- exit 0 ;;
++ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+- exit 0 ;;
++ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+- exit 0;;
++ exit ;;
++ arm:riscos:*:*|arm:RISCOS:*:*)
++ echo arm-unknown-riscos
++ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+- exit 0;;
++ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+@@ -338,32 +314,51 @@
+ else
+ echo pyramid-pyramid-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+- exit 0 ;;
++ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+- exit 0 ;;
++ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+- sparc) echo sparc-icl-nx7 && exit 0 ;;
++ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
++ s390x:SunOS:*:*)
++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
+- i86pc:SunOS:5.*:*)
+- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
++ echo i386-pc-auroraux${UNAME_RELEASE}
++ exit ;;
++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
++ eval $set_cc_for_build
++ SUN_ARCH="i386"
++ # If there is a compiler, see if it is configured for 64-bit objects.
++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
++ # This test works for both compilers.
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ SUN_ARCH="x86_64"
++ fi
++ fi
++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+@@ -372,10 +367,10 @@
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+- exit 0 ;;
++ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+@@ -387,10 +382,10 @@
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+- exit 0 ;;
++ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+@@ -401,40 +396,40 @@
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+- exit 0 ;;
++ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+@@ -458,32 +453,33 @@
+ exit (-1);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c \
+- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+- && exit 0
++ $CC_FOR_BUILD -o $dummy $dummy.c &&
++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++ SYSTEM_NAME=`$dummy $dummyarg` &&
++ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+- exit 0 ;;
++ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+- exit 0 ;;
++ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+- exit 0 ;;
++ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+- exit 0 ;;
++ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+- exit 0 ;;
++ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+- exit 0 ;;
++ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+- exit 0 ;;
++ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+@@ -499,29 +495,29 @@
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+- exit 0 ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+- exit 0 ;;
++ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+- exit 0 ;;
++ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+- exit 0 ;;
++ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+- exit 0 ;;
++ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+- exit 0 ;;
++ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+- exit 0 ;;
++ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+@@ -529,7 +525,7 @@
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+- exit 0 ;;
++ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+@@ -544,15 +540,19 @@
+ exit(0);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+- echo rs6000-ibm-aix3.2.5
++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
++ then
++ echo "$SYSTEM_NAME"
++ else
++ echo rs6000-ibm-aix3.2.5
++ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+- exit 0 ;;
+- *:AIX:*:[45])
++ exit ;;
++ *:AIX:*:[456])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+@@ -565,28 +565,28 @@
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+- exit 0 ;;
++ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+- exit 0 ;;
++ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+- exit 0 ;;
++ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+- exit 0 ;; # report: romp-ibm BSD 4.3
++ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+- exit 0 ;;
++ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+- exit 0 ;;
++ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+- exit 0 ;;
++ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+- exit 0 ;;
++ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+@@ -648,9 +648,19 @@
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+- # avoid double evaluation of $set_cc_for_build
+- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
++ eval $set_cc_for_build
++
++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
++ # generating 64-bit code. GNU and HP use different nomenclature:
++ #
++ # $ CC_FOR_BUILD=cc ./config.guess
++ # => hppa2.0w-hp-hpux11.23
++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++ # => hppa64-hp-hpux11.23
++
++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+@@ -658,11 +668,11 @@
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+- exit 0 ;;
++ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+- exit 0 ;;
++ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+@@ -690,219 +700,248 @@
+ exit (0);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+- exit 0 ;;
++ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+- exit 0 ;;
++ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+- exit 0 ;;
++ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+- exit 0 ;;
++ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+- exit 0 ;;
++ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+- exit 0 ;;
++ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+- exit 0 ;;
++ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+- exit 0 ;;
++ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+- exit 0 ;;
++ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+- exit 0 ;;
++ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+- exit 0 ;;
++ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:FreeBSD:*:*)
+- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+- exit 0 ;;
++ case ${UNAME_MACHINE} in
++ pc98)
++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ amd64)
++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ *)
++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ esac
++ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+- exit 0 ;;
+- i*:MINGW*:*)
++ exit ;;
++ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+- exit 0 ;;
++ exit ;;
++ i*:windows32*:*)
++ # uname -m includes "-pc" on this system.
++ echo ${UNAME_MACHINE}-mingw32
++ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+- exit 0 ;;
+- x86:Interix*:[34]*)
+- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+- exit 0 ;;
++ exit ;;
++ *:Interix*:*)
++ case ${UNAME_MACHINE} in
++ x86)
++ echo i586-pc-interix${UNAME_RELEASE}
++ exit ;;
++ authenticamd | genuineintel | EM64T)
++ echo x86_64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ IA64)
++ echo ia64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+- exit 0 ;;
++ exit ;;
++ 8664:Windows_NT:*)
++ echo x86_64-pc-mks
++ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+- exit 0 ;;
++ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+- exit 0 ;;
+- amd64:CYGWIN*:*:*)
++ exit ;;
++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+- exit 0 ;;
++ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+- exit 0 ;;
++ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+- exit 0 ;;
++ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+- exit 0 ;;
++ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+- exit 0 ;;
++ exit ;;
++ alpha:Linux:*:*)
++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++ EV5) UNAME_MACHINE=alphaev5 ;;
++ EV56) UNAME_MACHINE=alphaev56 ;;
++ PCA56) UNAME_MACHINE=alphapca56 ;;
++ PCA57) UNAME_MACHINE=alphapca56 ;;
++ EV6) UNAME_MACHINE=alphaev6 ;;
++ EV67) UNAME_MACHINE=alphaev67 ;;
++ EV68*) UNAME_MACHINE=alphaev68 ;;
++ esac
++ objdump --private-headers /bin/sh | grep -q ld.so.1
++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ exit ;;
+ arm*:Linux:*:*)
++ eval $set_cc_for_build
++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_EABI__
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ else
++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ fi
++ exit ;;
++ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+- exit 0 ;;
++ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+- exit 0 ;;
++ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ i*86:Linux:*:*)
++ LIBC=gnu
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #ifdef __dietlibc__
++ LIBC=dietlibc
++ #endif
++EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
+- mips:Linux:*:*)
++ exit ;;
++ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+- #undef mips
+- #undef mipsel
++ #undef ${UNAME_MACHINE}
++ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mipsel
++ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips
++ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+ EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+- mips64:Linux:*:*)
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #undef CPU
+- #undef mips64
+- #undef mips64el
+- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mips64el
+- #else
+- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips64
+- #else
+- CPU=
+- #endif
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+- ;;
+- ppc:Linux:*:*)
+- echo powerpc-unknown-linux-gnu
+- exit 0 ;;
+- ppc64:Linux:*:*)
+- echo powerpc64-unknown-linux-gnu
+- exit 0 ;;
+- alpha:Linux:*:*)
+- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+- EV5) UNAME_MACHINE=alphaev5 ;;
+- EV56) UNAME_MACHINE=alphaev56 ;;
+- PCA56) UNAME_MACHINE=alphapca56 ;;
+- PCA57) UNAME_MACHINE=alphapca56 ;;
+- EV6) UNAME_MACHINE=alphaev6 ;;
+- EV67) UNAME_MACHINE=alphaev67 ;;
+- EV68*) UNAME_MACHINE=alphaev68 ;;
+- esac
+- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+- exit 0 ;;
++ or32:Linux:*:*)
++ echo or32-unknown-linux-gnu
++ exit ;;
++ padre:Linux:*:*)
++ echo sparc-unknown-linux-gnu
++ exit ;;
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-gnu
++ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+@@ -910,87 +949,40 @@
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+- exit 0 ;;
+- parisc64:Linux:*:* | hppa64:Linux:*:*)
+- echo hppa64-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ ppc64:Linux:*:*)
++ echo powerpc64-unknown-linux-gnu
++ exit ;;
++ ppc:Linux:*:*)
++ echo powerpc-unknown-linux-gnu
++ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+- exit 0 ;;
++ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ vax:Linux:*:*)
++ echo ${UNAME_MACHINE}-dec-linux-gnu
++ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+- exit 0 ;;
+- i*86:Linux:*:*)
+- # The BFD linker knows what the default object file format is, so
+- # first see if it will tell us. cd to the root directory to prevent
+- # problems with other programs or directories called `ld' in the path.
+- # Set LC_ALL=C to ensure ld outputs messages in English.
+- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+- | sed -ne '/supported targets:/!d
+- s/[ ][ ]*/ /g
+- s/.*supported targets: *//
+- s/ .*//
+- p'`
+- case "$ld_supported_targets" in
+- elf32-i386)
+- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+- ;;
+- a.out-i386-linux)
+- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+- exit 0 ;;
+- coff-i386)
+- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+- exit 0 ;;
+- "")
+- # Either a pre-BFD a.out linker (linux-gnuoldld) or
+- # one that does not give us useful --help.
+- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+- exit 0 ;;
+- esac
+- # Determine whether the default compiler is a.out or elf
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #include <features.h>
+- #ifdef __ELF__
+- # ifdef __GLIBC__
+- # if __GLIBC__ >= 2
+- LIBC=gnu
+- # else
+- LIBC=gnulibc1
+- # endif
+- # else
+- LIBC=gnulibc1
+- # endif
+- #else
+- #ifdef __INTEL_COMPILER
+- LIBC=gnu
+- #else
+- LIBC=gnuaout
+- #endif
+- #endif
+- #ifdef __dietlibc__
+- LIBC=dietlibc
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+- ;;
++ exit ;;
++ xtensa*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+- exit 0 ;;
++ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+@@ -998,27 +990,27 @@
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+- exit 0 ;;
++ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+- exit 0 ;;
++ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+- exit 0 ;;
++ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+- exit 0 ;;
+- i*86:syllable:*:*)
++ exit ;;
++ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+- exit 0 ;;
+- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++ exit ;;
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+- exit 0 ;;
++ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+@@ -1026,15 +1018,16 @@
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+- exit 0 ;;
+- i*86:*:5:[78]*)
++ exit ;;
++ i*86:*:5:[678]*)
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+- exit 0 ;;
++ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+@@ -1052,73 +1045,86 @@
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+- exit 0 ;;
++ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+- # the processor, so we play safe by assuming i386.
+- echo i386-pc-msdosdjgpp
+- exit 0 ;;
++ # the processor, so we play safe by assuming i586.
++ # Note: whatever this is, it MUST be the same as what config.sub
++ # prints for the "djgpp" host, or else GDB configury will decide that
++ # this is a cross-build.
++ echo i586-pc-msdosdjgpp
++ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+- exit 0 ;;
++ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+- exit 0 ;;
++ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+- exit 0 ;;
++ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+- exit 0 ;;
++ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+- exit 0 ;;
++ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+- exit 0 ;;
++ exit ;;
+ M68*:*:R3V[5678]*:*)
+- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && echo i486-ncr-sysv4 && exit 0 ;;
++ && { echo i486-ncr-sysv4; exit; } ;;
++ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++ OS_REL='.3'
++ test -r /etc/.relid \
++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+- exit 0 ;;
++ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
+- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
++ exit ;;
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+- exit 0 ;;
++ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+- exit 0 ;;
++ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+@@ -1126,73 +1132,94 @@
+ else
+ echo ns32k-sni-sysv
+ fi
+- exit 0 ;;
++ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+- exit 0 ;;
++ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+- exit 0 ;;
++ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+- exit 0 ;;
++ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+- exit 0 ;;
++ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+- exit 0 ;;
++ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+- exit 0 ;;
++ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+- exit 0 ;;
++ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+- exit 0 ;;
++ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+- exit 0 ;;
++ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+- exit 0 ;;
++ exit ;;
++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
++ echo i586-pc-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
++ SX-7:SUPER-UX:*:*)
++ echo sx7-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8:SUPER-UX:*:*)
++ echo sx8-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8R:SUPER-UX:*:*)
++ echo sx8r-nec-superux${UNAME_RELEASE}
++ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+- *86) UNAME_PROCESSOR=i686 ;;
++ i386)
++ eval $set_cc_for_build
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ UNAME_PROCESSOR="x86_64"
++ fi
++ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+@@ -1200,25 +1227,25 @@
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+- exit 0 ;;
++ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+- exit 0 ;;
++ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+- exit 0 ;;
++ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+@@ -1229,41 +1256,50 @@
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+- exit 0 ;;
++ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+- exit 0 ;;
++ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+- exit 0 ;;
++ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+- exit 0 ;;
++ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+- exit 0 ;;
++ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+- exit 0 ;;
++ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+- exit 0 ;;
++ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+- exit 0 ;;
++ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+- A*) echo alpha-dec-vms && exit 0 ;;
+- I*) echo ia64-dec-vms && exit 0 ;;
+- V*) echo vax-dec-vms && exit 0 ;;
++ A*) echo alpha-dec-vms ; exit ;;
++ I*) echo ia64-dec-vms ; exit ;;
++ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+- exit 0 ;;
++ exit ;;
++ i*86:skyos:*:*)
++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++ exit ;;
++ i*86:rdos:*:*)
++ echo ${UNAME_MACHINE}-pc-rdos
++ exit ;;
++ i*86:AROS:*:*)
++ echo ${UNAME_MACHINE}-pc-aros
++ exit ;;
+ esac
+
+ #echo '(No uname command or uname output not recognized.)' 1>&2
+@@ -1295,7 +1331,7 @@
+ #endif
+
+ #if defined (__arm) && defined (__acorn) && defined (__unix)
+- printf ("arm-acorn-riscix"); exit (0);
++ printf ("arm-acorn-riscix\n"); exit (0);
+ #endif
+
+ #if defined (hp300) && !defined (hpux)
+@@ -1384,11 +1420,12 @@
+ }
+ EOF
+
+-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
+
+ # Apollos put the system type in the environment.
+
+-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+ # Convex versions that predate uname can use getsysinfo(1)
+
+@@ -1397,22 +1434,22 @@
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+- exit 0 ;;
++ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ c34*)
+ echo c34-convex-bsd
+- exit 0 ;;
++ exit ;;
+ c38*)
+ echo c38-convex-bsd
+- exit 0 ;;
++ exit ;;
+ c4*)
+ echo c4-convex-bsd
+- exit 0 ;;
++ exit ;;
+ esac
+ fi
+
+@@ -1423,9 +1460,9 @@
+ the operating system you are using. It is advised that you
+ download the most up to date version of the config scripts from
+
+- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+ and
+- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+ If the version you run ($0) is already up to date, please
+ send the following data and any information you think might be
+--- most-5.0.0a.orig/autoconf/config.sub
++++ most-5.0.0a/autoconf/config.sub
+@@ -1,9 +1,10 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
++# Free Software Foundation, Inc.
+
+-timestamp='2005-04-22'
++timestamp='2010-01-22'
+
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -21,22 +22,26 @@
+ #
+ # 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.
+-
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
++#
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
++
+ # Please send patches to <config-patches@gnu.org>. Submit a context
+-# diff and a properly formatted ChangeLog entry.
++# diff and a properly formatted GNU ChangeLog entry.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+ # that are meaningful with *any* GNU software.
+@@ -70,8 +75,9 @@
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+-Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
++Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -83,11 +89,11 @@
+ while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+- echo "$timestamp" ; exit 0 ;;
++ echo "$timestamp" ; exit ;;
+ --version | -v )
+- echo "$version" ; exit 0 ;;
++ echo "$version" ; exit ;;
+ --help | --h* | -h )
+- echo "$usage"; exit 0 ;;
++ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+@@ -99,7 +105,7 @@
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+- exit 0;;
++ exit ;;
+
+ * )
+ break ;;
+@@ -118,8 +124,10 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
++ kopensolaris*-gnu* | \
++ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+@@ -145,10 +153,13 @@
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple | -axis | -knuth | -cray)
++ -apple | -axis | -knuth | -cray | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
++ -bluegene*)
++ os=-cnk
++ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+@@ -170,6 +181,10 @@
+ -hiux*)
+ os=-hiuxwe2
+ ;;
++ -sco6)
++ os=-sco5v6
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+@@ -186,6 +201,10 @@
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
++ -sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+@@ -230,23 +249,28 @@
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+- | fr30 | frv \
++ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
++ | lm32 \
++ | m32c | m32r | m32rle | m68000 | m68k | m88k \
++ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+- | mips64vr | mips64vrel \
++ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
++ | mips64r5900 | mips64r5900el \
++ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+@@ -255,31 +279,40 @@
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
++ | moxie \
++ | mt \
+ | msp430 \
++ | nios | nios2 \
+ | ns16k | ns32k \
+- | openrisc | or32 \
++ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++ | rx \
++ | score \
++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+- | sparcv8 | sparcv9 | sparcv9b \
+- | strongarm \
++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
++ | spu | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
++ | ubicom32 \
+ | v850 | v850e \
+ | we32k \
+- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+- | z8k)
++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+- m6811 | m68hc11 | m6812 | m68hc12)
++ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
++ ms1)
++ basic_machine=mt-unknown
++ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+@@ -299,28 +332,32 @@
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+- | avr-* \
++ | avr-* | avr32-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+- | m32r-* | m32rle-* \
++ | lm32-* \
++ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+- | m88110-* | m88k-* | maxq-* | mcore-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+- | mips64vr-* | mips64vrel-* \
++ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
++ | mips64r5900-* | mips64r5900el-* \
++ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
++ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+@@ -329,27 +366,35 @@
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
++ | mt-* \
+ | msp430-* \
++ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+- | romp-* | rs6000-* \
+- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
++ | romp-* | rs6000-* | rx-* \
++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tile-* | tilegx-* \
+ | tron-* \
++ | ubicom32-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+- | xstormy16-* | xtensa-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+- | z8k-*)
++ | z8k-* | z80-*)
++ ;;
++ # Recognize the basic CPU types without company name, with glob match.
++ xtensa*)
++ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+@@ -413,6 +458,10 @@
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
++ aros)
++ basic_machine=i386-pc
++ os=-aros
++ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+@@ -421,10 +470,26 @@
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
++ blackfin)
++ basic_machine=bfin-unknown
++ os=-linux
++ ;;
++ blackfin-*)
++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
++ bluegene*)
++ basic_machine=powerpc-ibm
++ os=-cnk
++ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
++ cegcc)
++ basic_machine=arm-unknown
++ os=-cegcc
++ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+@@ -453,8 +518,8 @@
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+- cr16c)
+- basic_machine=cr16c-unknown
++ cr16)
++ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+@@ -492,6 +557,10 @@
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
++ dicos)
++ basic_machine=i686-pc
++ os=-dicos
++ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+@@ -646,6 +715,14 @@
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
++ m68knommu)
++ basic_machine=m68k-unknown
++ os=-linux
++ ;;
++ m68knommu-*)
++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+@@ -657,10 +734,17 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
++ microblaze)
++ basic_machine=microblaze-xilinx
++ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
++ mingw32ce)
++ basic_machine=arm-unknown
++ os=-mingw32ce
++ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+@@ -686,6 +770,9 @@
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
++ ms1-*)
++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+@@ -761,9 +848,8 @@
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+- or32 | or32-*)
++ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+- os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+@@ -785,6 +871,14 @@
+ basic_machine=i860-intel
+ os=-osf
+ ;;
++ parisc)
++ basic_machine=hppa-unknown
++ os=-linux
++ ;;
++ parisc-*)
++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+@@ -794,6 +888,12 @@
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
++ pc98)
++ basic_machine=i386-pc
++ ;;
++ pc98-*)
++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+@@ -850,6 +950,10 @@
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
++ rdos)
++ basic_machine=i386-pc
++ os=-rdos
++ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+@@ -876,6 +980,10 @@
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
++ sde)
++ basic_machine=mipsisa32-sde
++ os=-elf
++ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+@@ -887,6 +995,9 @@
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
++ sh5el)
++ basic_machine=sh5le-unknown
++ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+@@ -976,6 +1087,15 @@
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
++ # This must be matched before tile*.
++ tilegx*)
++ basic_machine=tilegx-unknown
++ os=-linux-gnu
++ ;;
++ tile*)
++ basic_machine=tile-unknown
++ os=-linux-gnu
++ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+@@ -1051,6 +1171,10 @@
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
++ z80-*-coff)
++ basic_machine=z80-unknown
++ os=-sim
++ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+@@ -1089,13 +1213,10 @@
+ we32k)
+ basic_machine=we32k-att
+ ;;
+- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+- sh64)
+- basic_machine=sh64-unknown
+- ;;
+- sparc | sparcv8 | sparcv9 | sparcv9b)
++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+@@ -1142,6 +1263,9 @@
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
++ -auroraux)
++ os=-auroraux
++ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+@@ -1162,26 +1286,30 @@
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
++ | -sym* | -kopensolaris* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+- | -aos* \
++ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
++ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -chorusos* | -chorusrdb* \
++ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+@@ -1199,7 +1327,7 @@
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+@@ -1311,6 +1439,11 @@
+ -zvmoe)
+ os=-zvmoe
+ ;;
++ -dicos*)
++ os=-dicos
++ ;;
++ -nacl*)
++ ;;
+ -none)
+ ;;
+ *)
+@@ -1333,6 +1466,12 @@
+ # system, and we'll never get to this point.
+
+ case $basic_machine in
++ score-*)
++ os=-elf
++ ;;
++ spu-*)
++ os=-elf
++ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+@@ -1342,9 +1481,9 @@
+ arm*-semi)
+ os=-aout
+ ;;
+- c4x-* | tic4x-*)
+- os=-coff
+- ;;
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+@@ -1370,6 +1509,9 @@
+ m68*-cisco)
+ os=-aout
+ ;;
++ mep-*)
++ os=-elf
++ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+@@ -1388,6 +1530,9 @@
+ *-be)
+ os=-beos
+ ;;
++ *-haiku)
++ os=-haiku
++ ;;
+ *-ibm)
+ os=-aix
+ ;;
+@@ -1496,7 +1641,7 @@
+ -sunos*)
+ vendor=sun
+ ;;
+- -aix*)
++ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+@@ -1559,7 +1704,7 @@
+ esac
+
+ echo $basic_machine$os
+-exit 0
++exit
+
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/extra/most/most-leak-fd.patch b/extra/most/most-leak-fd.patch
new file mode 100644
index 000000000..c8cd2af09
--- /dev/null
+++ b/extra/most/most-leak-fd.patch
@@ -0,0 +1,14 @@
+--- most-5.0.0a.orig/src/most.c 2007-06-03 00:03:59.000000000 -0400
++++ most-5.0.0a/src/most.c 2010-12-31 04:42:08.000000000 -0500
+@@ -321,9 +321,11 @@
+ {
+ fprintf (stderr, "fwrite returned %d, errno = %d\n",
+ m, errno);
++ (void) fclose (fp);
+ exit (1);
+ }
+ }
++ (void) fclose (fp);
+ }
+
+ void most_initialize_most (void)
diff --git a/extra/mousetweaks/PKGBUILD b/extra/mousetweaks/PKGBUILD
new file mode 100644
index 000000000..0a65e8f60
--- /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=3.2.1
+pkgrel=1
+pkgdesc="Mouse accessibility enhancements for the GNOME desktop"
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('6c1ec6780c8dcaa1e3a6a462f7870c4c91574067a4936727a40b011d46d47734')
+
+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/extra/mousetweaks/mousetweaks.install b/extra/mousetweaks/mousetweaks.install
new file mode 100644
index 000000000..1ae919322
--- /dev/null
+++ b/extra/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/extra/mp3splt/PKGBUILD b/extra/mp3splt/PKGBUILD
new file mode 100644
index 000000000..1c86b70cb
--- /dev/null
+++ b/extra/mp3splt/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 131861 2011-07-16 10:18:13Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=mp3splt
+pkgver=2.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="Comandline tool for splitting mp3 and ogg files without decoding"
+license=('GPL')
+url="http://mp3splt.sourceforge.net"
+depends=('libmp3splt')
+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=('aa4dc3de6e789961c71d8b3daaac0623')
diff --git a/extra/mp3wrap/PKGBUILD b/extra/mp3wrap/PKGBUILD
new file mode 100644
index 000000000..64811aeda
--- /dev/null
+++ b/extra/mp3wrap/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 137634 2011-09-10 09:03:14Z pierre $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=mp3wrap
+pkgver=0.5
+pkgrel=3
+pkgdesc="Tool for wrapping mp3 files. A free independent alternative to AlbumWrap"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd $srcdir/mp3wrap-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/mpc/PKGBUILD b/extra/mpc/PKGBUILD
new file mode 100644
index 000000000..788ddcc88
--- /dev/null
+++ b/extra/mpc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 132481 2011-07-24 21:57:50Z 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.21
+pkgrel=1
+pkgdesc="Minimalist command line interface to MPD"
+arch=('i686' 'x86_64' 'mips64el')
+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=('d8f88aad5fa7ed4c6e7005c5ec1ba7c5')
+
+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..aa701f30c
--- /dev/null
+++ b/extra/mpck/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143907 2011-11-30 20:27:25Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=mpck
+pkgver=0.19
+pkgrel=2
+license=('GPL')
+pkgdesc="Reads MP3 files and tries to determine if they are correct"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/checkmate-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/extra/mpd/ChangeLog b/extra/mpd/ChangeLog
new file mode 100644
index 000000000..b22d95f8d
--- /dev/null
+++ b/extra/mpd/ChangeLog
@@ -0,0 +1,12 @@
+2011-12-05 Angel Velasquez <angvp@archlinux.org>
+ * Version bump to 0.16.6
+
+2011-09-03 Angel Velasquez <angvp@archlinux.org>
+ * Version bump to 0.16.4
+ * Removed the patch mpd-0.16.3_ffmpeg_sigsegv.patch since is included upstream
+
+2011-06-25 Angel Velasquez <angvp@archlinux.org>
+ * Added a patch for bug with ffmpeg FS#24839
+
+
+# vim: set ft=changelog ts=4 sw=4 et:
diff --git a/extra/mpd/PKGBUILD b/extra/mpd/PKGBUILD
new file mode 100644
index 000000000..afe78dfe7
--- /dev/null
+++ b/extra/mpd/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 144459 2011-12-06 06:52:26Z 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.6
+pkgrel=1
+pkgdesc="Music daemon that plays MP3, FLAC, and Ogg Vorbis files"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://mpd.wikia.com/wiki/Server"
+depends=('libao' 'ffmpeg' 'libmodplug' 'audiofile' 'libshout' 'libmad' 'curl' 'faad2'
+ 'sqlite3' 'jack' 'libmms' 'wavpack' 'libmpcdec' 'avahi' 'libid3tag'
+ 'libpulse')
+makedepends=('pkgconfig' 'doxygen')
+install=${pkgname}.install
+changelog=ChangeLog
+source=("http://downloads.sourceforge.net/musicpd/$pkgname-$pkgver.tar.bz2"
+'mpd')
+md5sums=('5489dd327fba12c67f01558d2cfa6d57'
+ 'e5669c2bff4031928531e52475addeb1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-lastfm \
+ --enable-jack \
+ --enable-pulse \
+ --enable-documentation \
+ --disable-libwrap \
+ --disable-cue \
+ --disable-sidplay \
+ --with-systemdsystemunitdir=/lib/systemd/system
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # set our 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..16e770b4d
--- /dev/null
+++ b/extra/mpg123/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 137504 2011-09-08 03:39:34Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=mpg123
+pkgver=1.13.4
+pkgrel=1
+pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/mpg123"
+license=('GPL2' 'LGPL2.1')
+depends=('libtool' 'alsa-lib')
+makedepends=('sdl' 'jack' 'libpulse')
+optdepends=('sdl: for sdl audio support'
+ 'jack: for jack audio support'
+ 'libpulse: for pulse audio support')
+conflicts=('mpg321')
+provides=('mpg321')
+options=('libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('073620b3938c4cb9c4f70e8fe3e114b8')
+sha1sums=('7fe195db9fe708c487a1d47a66e6e68d9b8e7a6e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-audio="alsa 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..00d32c17e
--- /dev/null
+++ b/extra/mrtg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 143911 2011-11-30 20:31:37Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=mrtg
+pkgver=2.17.2
+pkgrel=2
+pkgdesc="Multi Router Traffic Grapher."
+arch=('i686' 'x86_64' 'mips64el')
+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..48fd4b14c
--- /dev/null
+++ b/extra/msmtp/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 143654 2011-11-28 04:52:17Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Ben Mazer <blm@groknil.org>
+
+pkgname=msmtp
+pkgver=1.4.26
+pkgrel=1
+pkgdesc="A mini smtp client"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+url="http://msmtp.sourceforge.net"
+depends=('gnutls' 'libidn')
+makedepends=('texlive-core')
+provides=('smtp-forwarder')
+install=msmtp.install
+source=(http://download.sourceforge.net/sourceforge/msmtp/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('0ce5352447b01dc21970b7a00cf13b8a3e7172c9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --with-ssl=gnutls
+ make
+ make -C doc html pdf
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ make DESTDIR="${pkgdir}" -C doc install-html install-pdf
+
+# Installing example configs and scripts to /usr/share/doc/msmtp
+# as they are not installed by default (Debian and Gentoo do it this way)
+ install -d "${pkgdir}/usr/share/doc/msmtp"
+ cp -r scripts/{find_alias,msmtp-gnome-tool,msmtpqueue,msmtpq,set_sendmail} "${pkgdir}/usr/share/doc/msmtp/"
+ install -D -m644 doc/*.example "${pkgdir}/usr/share/doc/msmtp/"
+
+ install -D -m644 scripts/vim/msmtp.vim "${pkgdir}/usr/share/vim/vimfiles/syntax/msmtp.vim"
+}
diff --git a/extra/msmtp/msmtp.install b/extra/msmtp/msmtp.install
new file mode 100644
index 000000000..c4dd76476
--- /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.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/mt-st/PKGBUILD b/extra/mt-st/PKGBUILD
new file mode 100644
index 000000000..e68bac3eb
--- /dev/null
+++ b/extra/mt-st/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137900 2011-09-12 10:12:39Z allan $
+# Maintainer:
+# Contributer: dorphell <dorphell@archlinux.org>
+
+pkgname=mt-st
+pkgver=1.1
+pkgrel=3
+pkgdesc="Linux SCSI tape driver aware magnetic tape control"
+arch=('i686' 'x86_64' 'mips64el')
+url="ftp://ftp.ibiblio.org/pub/linux/system/backup/"
+license=('GPL2')
+depends=('glibc')
+source=(ftp://ftp.ibiblio.org/pub/linux/system/backup/$pkgname-$pkgver.tar.gz)
+md5sums=('fdd5f5ec673c9f630a102ceff7612774')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -dm755 $pkgdir/{sbin,bin,usr/share/man/man1,usr/share/man/man8}
+ make SBINDIR=$pkgdir/sbin BINDIR=$pkgdir/bin \
+ MANDIR=$pkgdir/usr/share/man install
+}
diff --git a/extra/mtools/PKGBUILD b/extra/mtools/PKGBUILD
new file mode 100644
index 000000000..1276e8fa8
--- /dev/null
+++ b/extra/mtools/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143915 2011-11-30 20:36:32Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=mtools
+pkgver=4.0.17
+pkgrel=2
+pkgdesc="A collection of utilities to access MS-DOS disks"
+arch=('i686' 'x86_64' 'mips64el')
+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=('15571c615d8f75f5f6d294272f80c7fa')
+
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make -j 1 DESTDIR="${pkgdir}" install
+ install -Dm644 mtools.conf "${pkgdir}/etc/mtools.conf"
+}
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..8653eac60
--- /dev/null
+++ b/extra/mtr/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 144089 2011-12-03 12:24:56Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgbase=mtr
+pkgname=(mtr mtr-gtk)
+pkgver=0.82
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+makedepends=('ncurses' 'gtk2')
+source=(ftp://ftp.bitwizard.nl/mtr/$pkgbase-$pkgver.tar.gz)
+url="http://www.bitwizard.nl/mtr/"
+md5sums=('10601ea543fda3e51545c4bce195b64c')
+
+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
+ make
+}
+
+package_mtr() {
+ pkgdesc="Combines the functionality of traceroute and ping into one tool (CLI version)"
+ depends=('ncurses')
+ 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' "gtk2")
+ 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..491cc9686
--- /dev/null
+++ b/extra/mtx/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137902 2011-09-12 10:18:06Z allan $
+# Maintainer:
+# Contributer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=mtx
+pkgver=1.3.12
+pkgrel=2
+pkgdesc="Send robot commands to tape changer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mtx.opensource-sw.net/"
+license=('GPL2')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/mtx/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ce8f0e44671fb0c7d9ec30bb0bfa8b5c')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ sed -i 's/static const unsigned char scsi_command_size/const unsigned char scsi_command_size/' \
+ sg_err.c
+ ./configure --prefix='/usr' --datadir='/usr/share'
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+ make prefix=$pkgdir/usr install
+}
diff --git a/extra/multitail/PKGBUILD b/extra/multitail/PKGBUILD
new file mode 100644
index 000000000..e73c1a9ce
--- /dev/null
+++ b/extra/multitail/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125613 2011-05-27 00:13:31Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Roberto Carvajal <roberto@archlinux.org>
+
+pkgname=multitail
+pkgver=5.2.8
+pkgrel=1
+pkgdesc="Lets you view one or multiple files like the original tail program"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://www.vanheusden.com/multitail"
+depends=('ncurses')
+backup=(etc/multitail.conf)
+source=(${url}/${pkgname}-${pkgver}.tgz)
+md5sums=('aaa3691b0ea66ef02ffefd628c7dee8b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ /usr/bin/make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ /bin/install -D -m 755 multitail ${pkgdir}/usr/bin/multitail
+ /bin/install -D -m 644 multitail.1 ${pkgdir}/usr/share/man/man1/multitail.1
+ /bin/install -D -m 644 multitail.conf ${pkgdir}/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..8f80cc463
--- /dev/null
+++ b/extra/muparser/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143909 2011-11-30 20:28:47Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir.archlinux.org>
+
+pkgname=muparser
+pkgver=1.34
+pkgrel=2
+pkgdesc="A fast math parser library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://muparser.sourceforge.net/"
+depends=('gcc-libs')
+license=('custom')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/$pkgname/${pkgname}_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..c9ea377ae
--- /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' 'mips64el')
+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..572e4d753
--- /dev/null
+++ b/extra/mutt/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 143812 2011-11-29 13:33:33Z stephane $
+# Contributor: tobias [tobias [at] archlinux.org]
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=mutt
+pkgver=1.5.21
+pkgrel=6
+pkgdesc='Small but very powerful text-based mail client'
+url='http://www.mutt.org/'
+license=('GPL')
+backup=('etc/Muttrc')
+arch=('i686' 'x86_64' 'mips64el')
+optdepends=('smtp-forwarder: to send mail')
+depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'krb5')
+source=("ftp://ftp.mutt.org/mutt/devel/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('a8475f2618ce5d5d33bff85c0affdf21ab1d76b9')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-gpgme \
+ --enable-pop \
+ --enable-imap \
+ --enable-smtp \
+ --enable-hcache \
+ --with-curses=/usr \
+ --with-regex \
+ --with-gss=/usr \
+ --with-ssl=/usr \
+ --with-sasl \
+ --with-idn \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}"/usr/bin/{flea,muttbug}
+ rm "${pkgdir}"/usr/share/man/man1/{flea,muttbug}.1
+ rm "${pkgdir}"/etc/mime.types{,.dist}
+ install -Dm644 contrib/gpg.rc "${pkgdir}"/etc/Muttrc.gpg.dist
+}
diff --git a/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/mutter/PKGBUILD b/extra/mutter/PKGBUILD
new file mode 100644
index 000000000..2cb667f70
--- /dev/null
+++ b/extra/mutter/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 140941 2011-10-20 05:44:03Z ibiru $
+# 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.2.1
+pkgrel=1
+pkgdesc="A window manager for GNOME"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('startup-notification' 'gconf' 'zenity' 'libcanberra' 'clutter' 'gobject-introspection')
+makedepends=('intltool' 'gnome-doc-utils')
+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.xz)
+sha256sums=('d6135d5e6c0852f7dc996798e9455fc2e9cbe6d2672f3750fc9b8d27ab141294')
+
+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/extra/mutter/mutter.install b/extra/mutter/mutter.install
new file mode 100644
index 000000000..199f12584
--- /dev/null
+++ b/extra/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/extra/mx/PKGBUILD b/extra/mx/PKGBUILD
new file mode 100644
index 000000000..9b6a803a0
--- /dev/null
+++ b/extra/mx/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 141685 2011-11-02 11:04:43Z ibiru $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Guenther Wutz <admin@wutzara.de>
+
+pkgname=mx
+pkgver=1.4.1
+pkgrel=1
+pkgdesc="A widget toolkit using Clutter"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.clutter-project.org"
+license=('LGPL')
+depends=('clutter' 'libxrandr' 'dbus-glib' 'gtk2' 'startup-notification')
+makedepends=('intltool' 'gobject-introspection' 'gtk-doc')
+options=('!libtool')
+source=("http://source.clutter-project.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz")
+sha256sums=('6687300eef0bcee133cb7cd97d91de000e741aa2c0b50718bb2e837b6ca25250')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/mysql-python/PKGBUILD b/extra/mysql-python/PKGBUILD
new file mode 100644
index 000000000..cce458d42
--- /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" 'mips64el')
+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..5caa18d63
--- /dev/null
+++ b/extra/mysql/PKGBUILD
@@ -0,0 +1,130 @@
+# $Id: PKGBUILD 144910 2011-12-09 17:20:57Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgbase=mysql
+pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
+pkgver=5.5.19
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="https://www.mysql.com/products/community/"
+makedepends=('cmake' 'openssl' 'zlib')
+options=('!libtool')
+source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz"
+ 'mysqld'
+ 'my.cnf')
+md5sums=('a78cf450974e9202bd43674860349b5a'
+ '2234207625baa29b2ff7d7b4f088abce'
+ '1c949c0dbea5206af0db14942d9927b6')
+
+build() {
+ 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 \
+ -DSYSCONFDIR=/etc/mysql \
+ -DMYSQL_DATADIR=/var/lib/mysql \
+ -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
+ -DDEFAULT_CHARSET=utf8 \
+ -DDEFAULT_COLLATION=utf8_general_ci \
+ -DENABLED_LOCAL_INFILE=ON \
+ -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_DOCDIR=share/mysql/docs \
+ -DINSTALL_SHAREDIR=share/mysql \
+ -DWITH_READLINE=ON \
+ -DWITH_ZLIB=system \
+ -DWITH_SSL=system \
+ -DWITH_LIBWRAP=OFF \
+ -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -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
+
+ make
+}
+
+package_libmysqlclient(){
+ pkgdesc="MySQL client libraries"
+ depends=('openssl')
+
+ 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_{plugin,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')
+ options=('emptydirs')
+
+ 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/{data,mysql-test,sql-bench}
+ rm "${pkgdir}"/usr/share/man/man1/mysql-test-run.pl.1
+
+ install -dm700 "${pkgdir}"/var/lib/mysql
+}
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..0c20326bf
--- /dev/null
+++ b/extra/naim/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 137675 2011-09-10 11:46:52Z pierre $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=naim
+pkgver=0.11.8.3.2
+pkgrel=2
+pkgdesc="An ncurses AOL Instant Messenger and IRC client."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://naim.n.ml.org"
+depends=('ncurses')
+source=("http://naim.googlecode.com/files/$pkgname-$pkgver.tar.bz2")
+options=("!makeflags")
+md5sums=('c9622e3f75d56310829f98fa4dae1f78')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/nasm/PKGBUILD b/extra/nasm/PKGBUILD
new file mode 100644
index 000000000..68be83af0
--- /dev/null
+++ b/extra/nasm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 132063 2011-07-19 17:35:27Z stephane $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgbase=nasm
+pkgname=('nasm' 'nasm-doc')
+pkgver=2.09.10
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.nasm.us"
+license=('BSD')
+makedepends=('ghostscript')
+source=(http://www.nasm.us/pub/nasm/releasebuilds/${pkgver}/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('15c79dcb5838870a0fac15feb5fade66')
+sha1sums=('ca57a7454b29e18c64018e49cdf5c832937497ab')
+
+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..400d4b3a6
--- /dev/null
+++ b/extra/nautilus-open-terminal/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 139464 2011-10-01 19:31:44Z 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=2
+pkgdesc="A nautilus plugin for opening terminals in arbitrary local paths"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ftp.gnome.org/pub/GNOME/sources/nautilus-open-terminal"
+license=('GPL')
+depends=('nautilus' 'gconf')
+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/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..f55150cab
--- /dev/null
+++ b/extra/nautilus-sendto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 139403 2011-10-01 19:00:34Z ibiru $
+# 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.1
+pkgrel=2
+pkgdesc="Nautilus context menu for sending files."
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('34617084b731db8bf3ffb517497d5645283f4aa7a9ebfa2a05da8c12066a0f14')
+
+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/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..f66533aaa
--- /dev/null
+++ b/extra/nautilus/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 140943 2011-10-20 05:44:06Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=nautilus
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="GNOME file manager"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libexif' 'gnome-desktop' 'exempi' 'gvfs' 'desktop-file-utils' 'gnome-icon-theme' 'dconf' 'libtracker-sparql' 'libnotify')
+makedepends=('intltool' 'gobject-introspection')
+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.xz)
+sha256sums=('c482d6e7babcc238304cf55586cdf7e2b2806025214a143ed355f0d89b33b154')
+
+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/extra/nautilus/nautilus.install b/extra/nautilus/nautilus.install
new file mode 100644
index 000000000..631e38649
--- /dev/null
+++ b/extra/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/extra/nawk/PKGBUILD b/extra/nawk/PKGBUILD
new file mode 100644
index 000000000..d2c2125af
--- /dev/null
+++ b/extra/nawk/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142711 2011-11-13 14:58:31Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+
+pkgname=nawk
+pkgver=20110810
+pkgrel=3
+pkgdesc="The one, true implementation of AWK"
+url="http://cm.bell-labs.com/who/bwk/"
+license=('MIT')
+arch=('i686' 'x86_64')
+options=('!makeflags')
+depends=('glibc')
+source=("http://www.cs.princeton.edu/~bwk/btl.mirror/awk.tar.gz"
+ 'manpage-naming.patch')
+md5sums=('a7062ecade93dc4cb39190e48db9a51d'
+ '8486d387a51fe3b3c9875c4151ad92b4')
+
+build() {
+ patch -Np1 < manpage-naming.patch
+ sed -n '/Copyright/,/THIS SOFTWARE\./p' README > LICENSE
+
+ make "CPPFLAGS=-DHAS_ISBLANK" "LDFLAGS=$LDFLAGS" "CFLAGS=$CFLAGS"
+}
+
+package() {
+ install -Dm755 a.out "$pkgdir/usr/bin/nawk"
+ install -Dm644 awk.1 "$pkgdir/usr/share/man/man1/nawk.1"
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/nawk/LICENSE"
+}
diff --git a/extra/nawk/manpage-naming.patch b/extra/nawk/manpage-naming.patch
new file mode 100644
index 000000000..782f5e427
--- /dev/null
+++ b/extra/nawk/manpage-naming.patch
@@ -0,0 +1,46 @@
+diff -uNr ./nawk-20100523.orig/awk.1 nawk-20100523/awk.1
+--- ./nawk-20100523.orig/awk.1 2007-03-31 16:56:19.000000000 -0400
++++ nawk-20100523/awk.1 2010-09-20 21:49:16.840069318 -0400
+@@ -7,13 +7,11 @@
+ .fi
+ .ft 1
+ ..
+-awk
+-.TH AWK 1
+-.CT 1 files prog_other
++.TH NAWK 1
+ .SH NAME
+-awk \- pattern-directed scanning and processing language
++nawk \- pattern-directed scanning and processing language
+ .SH SYNOPSIS
+-.B awk
++.B nawk
+ [
+ .BI \-F
+ .I fs
+@@ -32,7 +30,7 @@
+ .I file ...
+ ]
+ .SH DESCRIPTION
+-.I Awk
++.I Nawk
+ scans each input
+ .I file
+ for lines that match any of a set of patterns specified literally in
+@@ -198,7 +196,6 @@
+ .BR atan2
+ are built in.
+ Other built-in functions:
+-.TF length
+ .TP
+ .B length
+ the length of its argument
+@@ -407,7 +404,6 @@
+ do not combine with other patterns.
+ .PP
+ Variable names with special meanings:
+-.TF FILENAME
+ .TP
+ .B CONVFMT
+ conversion format used when converting numbers
+
diff --git a/extra/ncftp/PKGBUILD b/extra/ncftp/PKGBUILD
new file mode 100644
index 000000000..d91b35031
--- /dev/null
+++ b/extra/ncftp/PKGBUILD
@@ -0,0 +1,35 @@
+# $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' 'mips64el')
+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
+}
+md5sums=('b05c7a6d5269c04891f02f43d4312b30')
diff --git a/extra/ncmpc/PKGBUILD b/extra/ncmpc/PKGBUILD
new file mode 100644
index 000000000..c4b433f55
--- /dev/null
+++ b/extra/ncmpc/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 132708 2011-07-25 01:06:16Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Daniel Bainton <dpb [at] backarrow.org>
+
+pkgname=ncmpc
+pkgver=0.19
+pkgrel=1
+pkgdesc="A ncurses (command line) interface for MPD"
+arch=("i686" "x86_64" 'mips64el')
+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=('d298ad1313ef3a522ef03367f8a1ffc0')
+
+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/nedit/PKGBUILD b/extra/nedit/PKGBUILD
new file mode 100644
index 000000000..dbf451fa8
--- /dev/null
+++ b/extra/nedit/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 135019 2011-08-09 21:15:50Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=nedit
+pkgver=5.5
+pkgrel=6
+pkgdesc="A Unix text editor for programmers and general users"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ sed -i 's/-Wl,-Bstatic//' makefiles/Makefile.linux
+ sed -i 's|fgets|//fgets|' util/check_lin_tif.c
+ sed -i "s/CFLAGS=-O/CFLAGS=${CFLAGS} -DBUILD_UNTESTED_NEDIT/" makefiles/Makefile.linux
+ sed -i 's|"/bin/csh"|"/bin/sh"|' source/preferences.c
+
+ make linux docs
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -Dm755 source/nedit "${pkgdir}/usr/bin/nedit"
+ install -Dm755 source/nc "${pkgdir}/usr/bin/nedit-client"
+ install -Dm644 doc/nedit.man "${pkgdir}/usr/share/man/man1/nedit.1"
+ install -Dm644 doc/nc.man "${pkgdir}/usr/share/man/man1/nedit-client.1"
+ install -Dm644 doc/nedit.html "${pkgdir}/usr/share/doc/nedit/nedit.html"
+}
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..bd8df5b44
--- /dev/null
+++ b/extra/neon/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 129362 2011-06-27 05:41:06Z andrea $
+# Maintainer:
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=neon
+pkgver=0.29.6
+pkgrel=2
+pkgdesc="HTTP and WebDAV client library with a C interface"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL')
+depends=('krb5' 'expat' 'ca-certificates')
+url="http://www.webdav.org/neon/"
+source=("http://www.webdav.org/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('591e0c82e6979e7e615211b386b8f6bc')
+options=('libtool') # FS#16067
+
+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
+
+ # fix invalid .so links in man pages (FS#24902)
+ sed -i '/^\.so/s|\.so \([^.]\+\)\.\([[:digit:]]\)|.so man\2/\1.\2|' doc/man/*
+}
+
+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..983f6e411
--- /dev/null
+++ b/extra/net-snmp/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 139480 2011-10-02 02:49:38Z eric $
+# Maintainer:
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=net-snmp
+pkgver=5.7.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' 'mips64el')
+url="http://www.net-snmp.org/"
+license=('BSD')
+depends=('openssl' 'libnl' 'pciutils')
+makedepends=('python2-distribute')
+optdepends=('perl-term-readkey: for snmpcheck application'
+ 'perl-tk: for snmpcheck and tkmib applications'
+ 'python2: for the python modules')
+provides=('ucd-snmp')
+backup=('etc/conf.d/snmpd')
+options=('!libtool' '!makeflags' '!emptydirs')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.asc}
+ snmpd.confd snmpd.rc)
+sha1sums=('ddb82ce1112ef0642869d3c8d7c7e585f151849a'
+ '2bdc2839ce09d7daa608cd54687fa8beb47ed907'
+ 'cf811da9e57bbca34d8e2a3c358bb3bfc0c2b33b'
+ '90600c0141eed10d6e3ca3ccc97ad8dda15c2112')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e "s:\(install --basedir=\$\$dir\):\1 --root='${pkgdir}':" Makefile.in
+ PYTHONPROG=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --enable-ucd-snmp-compatibility \
+ --enable-ipv6 \
+ --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"
+ make NETSNMP_DONT_CHECK_VERSION=1
+}
+
+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 "${srcdir}/snmpd.confd" "${pkgdir}/etc/conf.d/snmpd"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/net-snmp/snmpd.confd b/extra/net-snmp/snmpd.confd
new file mode 100644
index 000000000..926b09bbf
--- /dev/null
+++ b/extra/net-snmp/snmpd.confd
@@ -0,0 +1,5 @@
+#
+# Parameters to be passed to snmpd
+#
+SNMPD_ARGS=""
+
diff --git a/extra/net-snmp/snmpd.rc b/extra/net-snmp/snmpd.rc
new file mode 100644
index 000000000..b00c09f4f
--- /dev/null
+++ b/extra/net-snmp/snmpd.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/snmpd
+
+PID=`pidof -o %PPID /usr/sbin/snmpd`
+case "$1" in
+ start)
+ stat_busy "Starting Net-SNMP"
+ [ -z "$PID" ] && /usr/sbin/snmpd $SNMPD_ARGS
+ 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..55439cfa9
--- /dev/null
+++ b/extra/netcdf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 131006 2011-07-09 12:58:02Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=netcdf
+pkgver=4.1.3
+pkgrel=1
+pkgdesc="network Common Data Form interface for array-oriented data access and corresponding library"
+arch=("i686" "x86_64" 'mips64el')
+url="http://www.unidata.ucar.edu/downloads/netcdf/index.jsp"
+depends=('gcc-libs' 'hdf5' 'gcc-fortran' 'curl')
+options=('!libtool' '!makeflags')
+license=('custom')
+source=(http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-${pkgver}.tar.gz)
+sha1sums=('e600322478276f51612e17cca3cda38489003f81')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-shared --enable-netcdf-4 --enable-dap-netcdf
+ 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..5311af1c9
--- /dev/null
+++ b/extra/netkit-bsd-finger/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143921 2011-11-30 20:53:59Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=netkit-bsd-finger
+pkgver=0.17
+pkgrel=6
+pkgdesc="BSD-finger ported to Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url='ftp://ftp.uk.linux.org/pub/linux/Networking/netkit'
+license=('BSD')
+depends=('glibc' 'xinetd')
+backup=('etc/xinetd.d/finger')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/bsd-finger-${pkgver}.tar.gz"
+ 'finger.xinetd' 'LICENSE')
+md5sums=('52bf281aac8814bf56cdc92f7661ee75'
+ 'a8682004dc8dee356065162bde892b47'
+ '5fc568418a0379fc3a358ed1c2523b44')
+
+build() {
+ cd ${srcdir}/bsd-finger-${pkgver}
+ ./configure --prefix=/usr
+ sed -i 's@include <sys/time.h>@include <time.h>@' finger/lprint.c
+ sed -i 's@include <sys/time.h>@include <time.h>@' finger/sprint.c
+ make
+}
+
+package() {
+ cd ${srcdir}/bsd-finger-${pkgver}
+ install -d ${pkgdir}/usr/{bin,sbin} ${pkgdir}/usr/share/man/{man1,man8}
+ make INSTALLROOT=${pkgdir} MANDIR=/usr/share/man install
+
+ install -D -m644 ${srcdir}/finger.xinetd ${pkgdir}/etc/xinetd.d/finger
+ install -D -m644 ${srcdir}/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..3250a33a4
--- /dev/null
+++ b/extra/netpbm/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 104760 2011-01-04 20:54:47Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=netpbm
+pkgver=10.47.24
+pkgrel=1.1
+pkgdesc="A toolkit for manipulation of graphic images"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ [ "${CARCH}" = 'mips64el' ] && 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/nettle/PKGBUILD b/extra/nettle/PKGBUILD
new file mode 100644
index 000000000..be3ef6888
--- /dev/null
+++ b/extra/nettle/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 140462 2011-10-15 08:19:09Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: bender02 at gmx dot com
+
+pkgname=nettle
+pkgver=2.4
+pkgrel=1.1
+pkgdesc="A low-level cryptographic library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lysator.liu.se/~nisse/nettle/"
+license=('GPL2')
+install=$pkgname.install
+depends=('gmp')
+source=(ftp://ftp.lysator.liu.se/pub/security/lsh/$pkgname-$pkgver.tar.gz)
+md5sums=(''450be8c4886d46c09f49f568ad6fa013'')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --libdir=/usr/lib \
+ --enable-shared \
+ --disable-static # <-- seems not working now
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ # remove static libs
+ rm -f ${pkgdir}/usr/lib/{libhogweed,libnettle}.a
+}
diff --git a/extra/nettle/nettle.install b/extra/nettle/nettle.install
new file mode 100644
index 000000000..3d19b5f19
--- /dev/null
+++ b/extra/nettle/nettle.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(nettle.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/network-manager-applet/PKGBUILD b/extra/network-manager-applet/PKGBUILD
new file mode 100644
index 000000000..e0e0b19d2
--- /dev/null
+++ b/extra/network-manager-applet/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142489 2011-11-10 19:42:01Z 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.9.2.0
+pkgrel=1
+pkgdesc="GNOME frontends to NetWorkmanager"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=('networkmanager' 'libgnome-keyring' 'polkit-gnome' 'gtk3' 'libnotify' 'gnome-icon-theme' 'mobile-broadband-provider-info' 'gconf' 'iso-codes')
+makedepends=('intltool' 'gnome-bluetooth')
+optdepends=('gnome-bluetooth: for PAN/DUN support')
+options=('!libtool' '!emptydirs')
+install=network-manager-applet.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/0.9/$pkgname-$pkgver.tar.xz)
+sha256sums=('ebe725d0140f658c6a3f384674c72fba7a7c417df3be0e84ee8f45e6dfc219de')
+
+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/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/networkmanager-openconnect/PKGBUILD b/extra/networkmanager-openconnect/PKGBUILD
new file mode 100644
index 000000000..14ca124b2
--- /dev/null
+++ b/extra/networkmanager-openconnect/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142493 2011-11-10 19:42:06Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openconnect
+pkgver=0.9.2.0
+pkgrel=1
+pkgdesc="NetworkManager VPN integration for openconnect"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openconnect' 'gconf')
+makedepends=('intltool')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openconnect/0.9/NetworkManager-openconnect-${pkgver}.tar.xz)
+sha256sums=('169094ae93f982a45e4c57fa7226637eb948ae309a2a6ece88e179ce798a86c0')
+
+build() {
+ cd "${srcdir}/NetworkManager-openconnect-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/NetworkManager-openconnect-${pkgver}"
+ 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..4a237161d
--- /dev/null
+++ b/extra/networkmanager-openvpn/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142495 2011-11-10 19:42:11Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openvpn
+pkgver=0.9.2.0
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for OpenVPN"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openvpn' 'gtk3' 'libgnome-keyring')
+makedepends=('intltool')
+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.9/NetworkManager-openvpn-${pkgver}.tar.xz)
+sha256sums=('a23705a0ece4d9c5438ca7c3905abc25a43aaf3a49cabb9ef21d043c338a2744')
+
+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/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..35f071145
--- /dev/null
+++ b/extra/networkmanager-pptp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142497 2011-11-10 19:42:13Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-pptp
+pkgver=0.9.2.0
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for pptp "
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'pptpclient' 'gtk3' 'libgnome-keyring')
+makedepends=('intltool')
+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.9/NetworkManager-pptp-${pkgver}.tar.xz)
+sha256sums=('2b340db7f63d39aa781099b888d4e3352e8eaa14ec4d46154bf504262fda42ba')
+
+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/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..d992f7886
--- /dev/null
+++ b/extra/networkmanager-vpnc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142499 2011-11-10 19:42:16Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-vpnc
+pkgver=0.9.2.0
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for vpnc"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'vpnc' 'hicolor-icon-theme' 'gtk3' 'libgnome-keyring')
+makedepends=('intltool')
+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.9/NetworkManager-vpnc-${pkgver}.tar.xz)
+sha256sums=('d74bda9df11f4d3f0589d08c7f6247dc884de6daa1bab8d9c33636bc09752e40')
+
+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/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..cc0193e0b
--- /dev/null
+++ b/extra/networkmanager/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 142491 2011-11-10 19:42:04Z 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.9.2.0
+pkgrel=1
+pkgdesc="Network Management daemon"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'openresolv: openresolv support')
+options=('!libtool')
+backup=('etc/NetworkManager/NetworkManager.conf')
+install=networkmanager.install
+source=(http://ftp.gnome.org/pub/gnome/sources/NetworkManager/0.9/NetworkManager-${pkgver}.tar.xz
+ NetworkManager.conf disable_set_hostname.patch)
+sha256sums=('437af9132a6fe1ff603cd981c0cfaa4557592b34782f9705e708d61365226ddf'
+ '44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21'
+ '25056837ea92e559f09563ed817e3e0cd9333be861b8914e45f62ceaae2e0460')
+
+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 \
+ --with-systemdsystemunitdir=/lib/systemd/system \
+ --with-resolvconf=/usr/sbin/resolvconf \
+ --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/"
+
+ rm -rf "${pkgdir}/var/run/"
+}
diff --git a/extra/networkmanager/disable_set_hostname.patch b/extra/networkmanager/disable_set_hostname.patch
new file mode 100644
index 000000000..ee95dd0e1
--- /dev/null
+++ b/extra/networkmanager/disable_set_hostname.patch
@@ -0,0 +1,19 @@
+diff -Nur NetworkManager-0.9.0.orig/src/nm-policy.c NetworkManager-0.9.0/src/nm-policy.c
+--- NetworkManager-0.9.0.orig/src/nm-policy.c 2011-08-23 06:41:02.099686450 +0000
++++ NetworkManager-0.9.0/src/nm-policy.c 2011-08-23 06:43:38.227791737 +0000
+@@ -302,6 +302,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);
+@@ -356,6 +357,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/PKGBUILD b/extra/neverball/PKGBUILD
new file mode 100644
index 000000000..839a9a9d1
--- /dev/null
+++ b/extra/neverball/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 124594 2011-05-23 08:40:29Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=neverball
+pkgver=1.5.4
+pkgrel=3
+pkgdesc="3D game similar to Super Monkey Ball or Marble Madness"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://neverball.org/"
+license=('GPL')
+depends=('sdl_ttf' 'libgl' 'libpng' 'libjpeg' '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
+
+ if [ "${CARCH}" = "i686" ] ;then
+ make ENABLE_NLS=1 DATADIR=/usr/share/neverball SSE_CFLAGS=""
+ else
+ make ENABLE_NLS=1 DATADIR=/usr/share/neverball
+ fi
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}/usr/bin"
+ install -d "${pkgdir}"/usr/share/{neverball,locale,applications,pixmaps,doc/neverball}
+ install -d "${pkgdir}"/usr/share/man/man{1,6}
+
+ install -m755 neverball neverputt mapc "${pkgdir}/usr/bin"
+ cp -r locale/* "${pkgdir}/usr/share/locale/"
+ cp -r data/* "${pkgdir}/usr/share/neverball/"
+ install -m644 doc/* "${pkgdir}/usr/share/doc/neverball/"
+ install -m644 dist/*.desktop "${pkgdir}/usr/share/applications/"
+ install -m644 dist/*.png "${pkgdir}/usr/share/pixmaps/"
+ install -m644 dist/mapc.1 "${pkgdir}/usr/share/man/man1"
+ install -m644 dist/{neverball.6,neverputt.6} "${pkgdir}/usr/share/man/man6"
+
+ ln -s neverball_48.png "${pkgdir}/usr/share/pixmaps/neverball.png"
+ ln -s neverputt_48.png "${pkgdir}/usr/share/pixmaps/neverputt.png"
+ find "${pkgdir}/usr/share/neverball" -type f -exec chmod 0644 {} \;
+}
diff --git a/extra/nicotine/PKGBUILD b/extra/nicotine/PKGBUILD
new file mode 100644
index 000000000..96cf743d5
--- /dev/null
+++ b/extra/nicotine/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 144457 2011-12-06 06:35:08Z 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=3
+pkgdesc="Soulseek music-sharing client, written in python"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('pygtk>=2.14.1' 'mutagen')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}+-${pkgver}/trayicon
+ make DESTDIR=${pkgdir} install
+ ln -s nicotine.py ${pkgdir}/usr/bin/nicotine
+}
diff --git a/extra/nitrogen/PKGBUILD b/extra/nitrogen/PKGBUILD
new file mode 100644
index 000000000..5b6df2daa
--- /dev/null
+++ b/extra/nitrogen/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 120125 2011-04-20 11:21:45Z ibiru $
+# Maintainer: James Rayner <james@archlinux.org>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=nitrogen
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="Background browser and setter for X windows"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://projects.l3ib.org/nitrogen/"
+license=('GPL')
+depends=('gtkmm' 'hicolor-icon-theme' 'librsvg')
+install=nitrogen.install
+source=(http://projects.l3ib.org/nitrogen/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('dd779a252a222eb9d329d74b809cfe73')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
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..606fe34d5
--- /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' 'mips64el')
+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..9fa1f7063
--- /dev/null
+++ b/extra/normalize/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143917 2011-11-30 20:41:17Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=normalize
+pkgver=0.7.7
+pkgrel=5
+pkgdesc="A tool for adjusting the volume of WAV files to a standard level"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://normalize.nongnu.org"
+license=('GPL')
+depends=('audiofile' 'libmad' 'vorbis-tools' 'lame' 'flac' 'mpg123')
+source=("http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('1749b16fc7a08aa5d0cf9f76eeaa8436')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-audiofile \
+ --with-mad
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/notification-daemon/PKGBUILD b/extra/notification-daemon/PKGBUILD
new file mode 100644
index 000000000..e382d9c4e
--- /dev/null
+++ b/extra/notification-daemon/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140945 2011-10-20 05:44:08Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=notification-daemon
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="Notification daemon for the desktop notifications framework"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://www.galago-project.org/specs/notification/"
+depends=('gtk3' 'libcanberra')
+groups=('gnome')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool' '!emptydirs')
+source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('c40931557c42cd12fdb04ab531fd7d5c5766641e76babdbff6079a6d88342704')
+
+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/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/nspr/PKGBUILD b/extra/nspr/PKGBUILD
new file mode 100644
index 000000000..2bdfb0ad0
--- /dev/null
+++ b/extra/nspr/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 138817 2011-09-28 12:59:46Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=nspr
+pkgver=4.8.9
+pkgrel=2
+pkgdesc="Netscape Portable Runtime"
+arch=(i686 x86_64 'mips64el')
+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=('60770d45dc08c0f181b22cdfce5be3e8'
+ 'bce1611f3117b53fc904cab549c09967')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ if [ "$CARCH" = "x86_64" ]; then
+ confflags="--enable-64bit"
+ else
+ confflags=""
+ fi
+
+ sed -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
+ -i mozilla/nsprpub/config/rules.mk
+
+ ./mozilla/nsprpub/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --includedir=/usr/include/nspr \
+ --enable-optimize \
+ --disable-debug ${confflags}
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..fb75b698e
--- /dev/null
+++ b/extra/nss-mdns/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 124100 2011-05-16 15:17:50Z andrea $
+# Maintainer:
+# Contributor: Travis Willard <travis@archlinux.org>
+
+pkgname=nss-mdns
+pkgver=0.10
+pkgrel=3
+pkgdesc="glibc plugin providing host name resolution via mDNS"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}"/mdns.allow "${pkgdir}"/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..85e4d269a
--- /dev/null
+++ b/extra/nss-mdns/nss-mdns.install
@@ -0,0 +1,20 @@
+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
+}
diff --git a/extra/nss/PKGBUILD b/extra/nss/PKGBUILD
new file mode 100644
index 000000000..9fdcc0f24
--- /dev/null
+++ b/extra/nss/PKGBUILD
@@ -0,0 +1,106 @@
+# $Id: PKGBUILD 138102 2011-09-16 12:01:21Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=nss
+pkgver=3.12.11
+pkgrel=3
+pkgdesc="Mozilla Network Security Services"
+arch=(i686 x86_64 'mips64el')
+url="http://www.mozilla.org/projects/security/pki/nss/"
+license=('MPL' 'GPL')
+_nsprver=4.8.9
+depends=("nspr>=${_nsprver}" 'sqlite3' 'zlib' 'sh')
+makedepends=('perl')
+replaces=('nss-nspr')
+options=('!strip')
+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
+ distrust-diginotar.patch
+ add_spi+cacert_ca_certs.patch
+ ssl-renegotiate-transitional.patch)
+md5sums=('ca0ca058380be200cf247ea2496b5352'
+ 'e5c97db0c884d5f4cfda21e562dc9bba'
+ 'c547b030c57fe1ed8b77c73bf52b3ded'
+ '46bee81908f1e5b26d6a7a2e14c64d9f'
+ 'bbd7d8a8e2f6ffc8b3e5f6614e5f3ccf'
+ 'ba2357c5b9881bfd7d54b037954ba0ff'
+ 'd83c7b61abb7e9f8f7bcd157183d1ade')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/mozilla"
+ # Distrust DigiNotar root CA - backported from CVS (https://bugzilla.mozilla.org/show_bug.cgi?id=682927)
+ patch -Np0 -i "${srcdir}/distrust-diginotar.patch"
+ # Adds the SPI Inc. and CAcert.org CA certificates - patch from Debian
+ patch -Np2 -i "${srcdir}/add_spi+cacert_ca_certs.patch"
+ # Adds transitional SSL renegotiate support - patch from Debian
+ patch -Np2 -i "${srcdir}/ssl-renegotiate-transitional.patch"
+ # Removes rpath
+ patch -Np2 -i "${srcdir}/nss-no-rpath.patch"
+
+ # Respect LDFLAGS
+ sed -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' \
+ -i security/coreconf/rules.mk
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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.//'`
+ export XCFLAGS="${CFLAGS}"
+
+ [ "$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..0af0deab7
--- /dev/null
+++ b/extra/nss/add_spi+cacert_ca_certs.patch
@@ -0,0 +1,1150 @@
+## 95_add_spi+cacert_ca_certs.patch by martin f. krafft <madduck@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Adds the SPI Inc. and CAcert.org CA certificates
+
+Index: nss/mozilla/security/nss/lib/ckfw/builtins/certdata.c
+===================================================================
+--- nss.orig/mozilla/security/nss/lib/ckfw/builtins/certdata.c 2011-08-12 12:29:13.000000000 +0200
++++ nss/mozilla/security/nss/lib/ckfw/builtins/certdata.c 2011-08-12 12:29:29.056420467 +0200
+@@ -1045,6 +1045,24 @@
+ static const CK_ATTRIBUTE_TYPE nss_builtins_types_327 [] = {
+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
+ };
++static const CK_ATTRIBUTE_TYPE nss_builtins_types_328 [] = {
++ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
++};
++static const CK_ATTRIBUTE_TYPE nss_builtins_types_329 [] = {
++ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
++};
++static const CK_ATTRIBUTE_TYPE nss_builtins_types_330 [] = {
++ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
++};
++static const CK_ATTRIBUTE_TYPE nss_builtins_types_331 [] = {
++ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
++};
++static const CK_ATTRIBUTE_TYPE nss_builtins_types_332 [] = {
++ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
++};
++static const CK_ATTRIBUTE_TYPE nss_builtins_types_333 [] = {
++ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
++};
+ #ifdef DEBUG
+ static const NSSItem nss_builtins_items_0 [] = {
+ { (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+@@ -21910,6 +21928,531 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
++static const NSSItem nss_builtins_items_328 [] = {
++ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
++ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)"CAcert.org Class 1 Root CA", (PRUint32)27 },
++ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
++ { (void *)"\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"
++, (PRUint32)123 },
++ { (void *)"0", (PRUint32)2 },
++ { (void *)"\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"
++, (PRUint32)123 },
++ { (void *)"\002\001\000"
++, (PRUint32)3 },
++ { (void *)"\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"
++, (PRUint32)1857 }
++};
++static const NSSItem nss_builtins_items_329 [] = {
++ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
++ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)"CAcert.org Class 1 Root CA", (PRUint32)27 },
++ { (void *)"\023\134\354\066\364\234\270\351\073\032\262\160\315\200\210\106"
++"\166\316\217\063"
++, (PRUint32)20 },
++ { (void *)"\246\033\067\136\071\015\234\066\124\356\275\040\061\106\037\153"
++, (PRUint32)16 },
++ { (void *)"\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"
++, (PRUint32)123 },
++ { (void *)"\002\001\000"
++, (PRUint32)3 },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
++};
++static const NSSItem nss_builtins_items_330 [] = {
++ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
++ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)"CAcert.org Class 3 Root CA", (PRUint32)27 },
++ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
++ { (void *)"\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"
++, (PRUint32)86 },
++ { (void *)"0", (PRUint32)2 },
++ { (void *)"\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"
++, (PRUint32)123 },
++ { (void *)"\002\001\001"
++, (PRUint32)3 },
++ { (void *)"\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"
++, (PRUint32)1548 }
++};
++static const NSSItem nss_builtins_items_331 [] = {
++ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
++ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)"CAcert.org Class 3 Root CA", (PRUint32)27 },
++ { (void *)"\333\114\102\151\007\077\351\302\243\175\211\012\134\033\030\304"
++"\030\116\052\055"
++, (PRUint32)20 },
++ { (void *)"\163\077\065\124\035\104\311\351\132\112\357\121\255\003\006\266"
++, (PRUint32)16 },
++ { (void *)"\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"
++, (PRUint32)123 },
++ { (void *)"\002\001\001"
++, (PRUint32)3 },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
++};
++static const NSSItem nss_builtins_items_332 [] = {
++ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
++ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)"Software in the Public Interest, Inc. Root CA (2008)", (PRUint32)53 },
++ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
++ { (void *)"\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"
++, (PRUint32)191 },
++ { (void *)"0", (PRUint32)2 },
++ { (void *)"\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"
++, (PRUint32)191 },
++ { (void *)"\002\011\000\350\216\266\311\370\052\024\050"
++, (PRUint32)11 },
++ { (void *)"\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"
++, (PRUint32)2066 }
++};
++static const NSSItem nss_builtins_items_333 [] = {
++ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
++ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
++ { (void *)"Software in the Public Interest, Inc. Root CA (2008)", (PRUint32)53 },
++ { (void *)"\257\160\210\103\203\202\002\025\315\141\306\274\354\375\067\044"
++"\251\220\103\034"
++, (PRUint32)20 },
++ { (void *)"\052\107\237\140\273\203\164\157\001\003\327\013\015\366\015\170"
++, (PRUint32)16 },
++ { (void *)"\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"
++, (PRUint32)191 },
++ { (void *)"\002\011\000\350\216\266\311\370\052\024\050"
++, (PRUint32)11 },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
++ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
++};
+
+ builtinsInternalObject
+ nss_builtins_data[] = {
+@@ -22244,11 +22787,17 @@
+ { 11, nss_builtins_types_324, nss_builtins_items_324, {NULL} },
+ { 13, nss_builtins_types_325, nss_builtins_items_325, {NULL} },
+ { 11, nss_builtins_types_326, nss_builtins_items_326, {NULL} },
+- { 13, nss_builtins_types_327, nss_builtins_items_327, {NULL} }
++ { 13, nss_builtins_types_327, nss_builtins_items_327, {NULL} },
++ { 11, nss_builtins_types_328, nss_builtins_items_328, {NULL} },
++ { 13, nss_builtins_types_329, nss_builtins_items_329, {NULL} },
++ { 11, nss_builtins_types_330, nss_builtins_items_330, {NULL} },
++ { 13, nss_builtins_types_331, nss_builtins_items_331, {NULL} },
++ { 11, nss_builtins_types_332, nss_builtins_items_332, {NULL} },
++ { 13, nss_builtins_types_333, nss_builtins_items_333, {NULL} }
+ };
+ const PRUint32
+ #ifdef DEBUG
+- nss_builtins_nObjects = 327+1;
++ nss_builtins_nObjects = 333+1;
+ #else
+- nss_builtins_nObjects = 327;
++ nss_builtins_nObjects = 333;
+ #endif /* DEBUG */
+Index: nss/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
+===================================================================
+--- nss.orig/mozilla/security/nss/lib/ckfw/builtins/certdata.txt 2011-08-12 12:25:29.000000000 +0200
++++ nss/mozilla/security/nss/lib/ckfw/builtins/certdata.txt 2011-08-12 12:29:25.460425941 +0200
+@@ -22589,3 +22589,558 @@
+ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN
+ 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/distrust-diginotar.patch b/extra/nss/distrust-diginotar.patch
new file mode 100644
index 000000000..60c63fc68
--- /dev/null
+++ b/extra/nss/distrust-diginotar.patch
@@ -0,0 +1,1675 @@
+Index: security/nss/lib/ckfw/builtins/certdata.c
+===================================================================
+RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/builtins/certdata.c,v
+retrieving revision 1.67.2.10
+retrieving revision 1.67.2.11
+diff -u -r1.67.2.10 -r1.67.2.11
+--- security/nss/lib/ckfw/builtins/certdata.c 1 Aug 2011 06:40:03 -0000 1.67.2.10
++++ security/nss/lib/ckfw/builtins/certdata.c 30 Aug 2011 20:04:39 -0000 1.67.2.11
+@@ -35,7 +35,7 @@
+ *
+ * ***** END LICENSE BLOCK ***** */
+ #ifdef DEBUG
+-static const char CVS_ID[] = "@(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.10 $ $Date: 2011/08/01 06:40:03 $""; @(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.10 $ $Date: 2011/08/01 06:40:03 $";
++static const char CVS_ID[] = "@(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.11 $ $Date: 2011/08/30 20:04:39 $""; @(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.11 $ $Date: 2011/08/30 20:04:39 $";
+ #endif /* DEBUG */
+
+ #ifndef BUILTINS_H
+@@ -1039,12 +1039,6 @@
+ static const CK_ATTRIBUTE_TYPE nss_builtins_types_327 [] = {
+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
+ };
+-static const CK_ATTRIBUTE_TYPE nss_builtins_types_328 [] = {
+- CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
+-};
+-static const CK_ATTRIBUTE_TYPE nss_builtins_types_329 [] = {
+- CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
+-};
+ #ifdef DEBUG
+ static const NSSItem nss_builtins_items_0 [] = {
+ { (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+@@ -1053,7 +1047,7 @@
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"CVS ID", (PRUint32)7 },
+ { (void *)"NSS", (PRUint32)4 },
+- { (void *)"@(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.10 $ $Date: 2011/08/01 06:40:03 $""; @(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.10 $ $Date: 2011/08/01 06:40:03 $", (PRUint32)164 }
++ { (void *)"@(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.11 $ $Date: 2011/08/30 20:04:39 $""; @(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.11 $ $Date: 2011/08/30 20:04:39 $", (PRUint32)165 }
+ };
+ #endif /* DEBUG */
+ static const NSSItem nss_builtins_items_1 [] = {
+@@ -12506,151 +12500,6 @@
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)"DigiNotar Root CA", (PRUint32)18 },
+- { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+- { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+-"\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157"
+-"\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151"
+-"\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061"
+-"\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021"
+-"\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156"
+-"\154"
+-, (PRUint32)97 },
+- { (void *)"0", (PRUint32)2 },
+- { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+-"\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157"
+-"\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151"
+-"\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061"
+-"\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021"
+-"\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156"
+-"\154"
+-, (PRUint32)97 },
+- { (void *)"\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223"
+-"\074\114"
+-, (PRUint32)18 },
+- { (void *)"\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\014"
+-"\166\332\234\221\014\116\054\236\376\025\320\130\223\074\114\060"
+-"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\137"
+-"\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022\060"
+-"\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164\141"
+-"\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147\151"
+-"\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040\060"
+-"\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156"
+-"\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154\060"
+-"\036\027\015\060\067\060\065\061\066\061\067\061\071\063\066\132"
+-"\027\015\062\065\060\063\063\061\061\070\061\071\062\061\132\060"
+-"\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022"
+-"\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164"
+-"\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147"
+-"\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040"
+-"\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151"
+-"\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154"
+-"\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\254\260\130\301\000\275\330\041\010\013\053\232\376\156\126"
+-"\060\005\237\033\167\220\020\101\134\303\015\207\021\167\216\201"
+-"\361\312\174\351\214\152\355\070\164\065\273\332\337\371\273\300"
+-"\011\067\264\226\163\201\175\063\032\230\071\367\223\157\225\177"
+-"\075\271\261\165\207\272\121\110\350\213\160\076\225\004\305\330"
+-"\266\303\026\331\210\260\261\207\035\160\332\206\264\017\024\213"
+-"\172\317\020\321\164\066\242\022\173\167\206\112\171\346\173\337"
+-"\002\021\150\245\116\206\256\064\130\233\044\023\170\126\042\045"
+-"\036\001\213\113\121\161\373\202\314\131\226\151\210\132\150\123"
+-"\305\271\015\002\067\313\113\274\146\112\220\176\052\013\005\007"
+-"\355\026\137\125\220\165\330\106\311\033\203\342\010\276\361\043"
+-"\314\231\035\326\052\017\203\040\025\130\047\202\056\372\342\042"
+-"\302\111\261\271\001\201\152\235\155\235\100\167\150\166\116\041"
+-"\052\155\204\100\205\116\166\231\174\202\363\363\267\002\131\324"
+-"\046\001\033\216\337\255\123\006\321\256\030\335\342\262\072\313"
+-"\327\210\070\216\254\133\051\271\031\323\230\371\030\003\317\110"
+-"\202\206\146\013\033\151\017\311\353\070\210\172\046\032\005\114"
+-"\222\327\044\324\226\362\254\122\055\243\107\325\122\366\077\376"
+-"\316\204\006\160\246\252\076\242\362\266\126\064\030\127\242\344"
+-"\201\155\347\312\360\152\323\307\221\153\002\203\101\174\025\357"
+-"\153\232\144\136\343\320\074\345\261\353\173\135\206\373\313\346"
+-"\167\111\315\243\145\334\367\271\234\270\344\013\137\223\317\314"
+-"\060\032\062\034\316\034\143\225\245\371\352\341\164\213\236\351"
+-"\053\251\060\173\240\030\037\016\030\013\345\133\251\323\321\154"
+-"\036\007\147\217\221\113\251\212\274\322\146\252\223\001\210\262"
+-"\221\372\061\134\325\246\301\122\010\011\315\012\143\242\323\042"
+-"\246\350\241\331\071\006\227\365\156\215\002\220\214\024\173\077"
+-"\200\315\033\234\272\304\130\162\043\257\266\126\237\306\172\102"
+-"\063\051\007\077\202\311\346\037\005\015\315\114\050\066\213\323"
+-"\310\076\034\306\210\357\136\356\211\144\351\035\353\332\211\176"
+-"\062\246\151\321\335\314\210\237\321\320\311\146\041\334\006\147"
+-"\305\224\172\232\155\142\114\175\314\340\144\200\262\236\107\216"
+-"\243\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035"
+-"\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125"
+-"\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125"
+-"\035\016\004\026\004\024\210\150\277\340\216\065\304\073\070\153"
+-"\142\367\050\073\204\201\310\014\327\115\060\015\006\011\052\206"
+-"\110\206\367\015\001\001\005\005\000\003\202\002\001\000\073\002"
+-"\215\313\074\060\350\156\240\255\362\163\263\137\236\045\023\004"
+-"\005\323\366\343\213\273\013\171\316\123\336\344\226\305\321\257"
+-"\163\274\325\303\320\100\125\174\100\177\315\033\137\011\325\362"
+-"\174\237\150\035\273\135\316\172\071\302\214\326\230\173\305\203"
+-"\125\250\325\175\100\312\340\036\367\211\136\143\135\241\023\302"
+-"\135\212\266\212\174\000\363\043\303\355\205\137\161\166\360\150"
+-"\143\252\105\041\071\110\141\170\066\334\361\103\223\324\045\307"
+-"\362\200\145\341\123\002\165\121\374\172\072\357\067\253\204\050"
+-"\127\014\330\324\324\231\126\154\343\242\376\131\204\264\061\350"
+-"\063\370\144\224\224\121\227\253\071\305\113\355\332\335\200\013"
+-"\157\174\051\015\304\216\212\162\015\347\123\024\262\140\101\075"
+-"\204\221\061\150\075\047\104\333\345\336\364\372\143\105\310\114"
+-"\076\230\365\077\101\272\116\313\067\015\272\146\230\361\335\313"
+-"\237\134\367\124\066\202\153\054\274\023\141\227\102\370\170\273"
+-"\314\310\242\237\312\360\150\275\153\035\262\337\215\157\007\235"
+-"\332\216\147\307\107\036\312\271\277\052\102\221\267\143\123\146"
+-"\361\102\243\341\364\132\115\130\153\265\344\244\063\255\134\160"
+-"\035\334\340\362\353\163\024\221\232\003\301\352\000\145\274\007"
+-"\374\317\022\021\042\054\256\240\275\072\340\242\052\330\131\351"
+-"\051\323\030\065\244\254\021\137\031\265\265\033\377\042\112\134"
+-"\306\172\344\027\357\040\251\247\364\077\255\212\247\232\004\045"
+-"\235\016\312\067\346\120\375\214\102\051\004\232\354\271\317\113"
+-"\162\275\342\010\066\257\043\057\142\345\312\001\323\160\333\174"
+-"\202\043\054\026\061\014\306\066\007\220\172\261\037\147\130\304"
+-"\073\130\131\211\260\214\214\120\263\330\206\313\150\243\304\012"
+-"\347\151\113\040\316\301\036\126\113\225\251\043\150\330\060\330"
+-"\303\353\260\125\121\315\345\375\053\270\365\273\021\237\123\124"
+-"\366\064\031\214\171\011\066\312\141\027\045\027\013\202\230\163"
+-"\014\167\164\303\325\015\307\250\022\114\307\247\124\161\107\056"
+-"\054\032\175\311\343\053\073\110\336\047\204\247\143\066\263\175"
+-"\217\240\144\071\044\015\075\173\207\257\146\134\164\033\113\163"
+-"\262\345\214\360\206\231\270\345\305\337\204\301\267\353"
+-, (PRUint32)1422 }
+-};
+-static const NSSItem nss_builtins_items_187 [] = {
+- { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+- { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)"DigiNotar Root CA", (PRUint32)18 },
+- { (void *)"\300\140\355\104\313\330\201\275\016\370\154\013\242\207\335\317"
+-"\201\147\107\214"
+-, (PRUint32)20 },
+- { (void *)"\172\171\124\115\007\222\073\133\377\101\360\016\307\071\242\230"
+-, (PRUint32)16 },
+- { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+-"\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157"
+-"\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151"
+-"\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061"
+-"\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021"
+-"\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156"
+-"\154"
+-, (PRUint32)97 },
+- { (void *)"\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223"
+-"\074\114"
+-, (PRUint32)18 },
+- { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+- { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+- { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+-};
+-static const NSSItem nss_builtins_items_188 [] = {
+- { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+- { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Network Solutions Certificate Authority", (PRUint32)40 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
+@@ -12738,7 +12587,7 @@
+ "\244\140\114\260\125\240\240\173\127\262"
+ , (PRUint32)1002 }
+ };
+-static const NSSItem nss_builtins_items_189 [] = {
++static const NSSItem nss_builtins_items_187 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12765,7 +12614,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_190 [] = {
++static const NSSItem nss_builtins_items_188 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12874,7 +12723,7 @@
+ "\333"
+ , (PRUint32)1217 }
+ };
+-static const NSSItem nss_builtins_items_191 [] = {
++static const NSSItem nss_builtins_items_189 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12902,7 +12751,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_192 [] = {
++static const NSSItem nss_builtins_items_190 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12976,7 +12825,7 @@
+ "\334\335\363\377\035\054\072\026\127\331\222\071\326"
+ , (PRUint32)653 }
+ };
+-static const NSSItem nss_builtins_items_193 [] = {
++static const NSSItem nss_builtins_items_191 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13005,7 +12854,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_194 [] = {
++static const NSSItem nss_builtins_items_192 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13097,7 +12946,7 @@
+ "\321\236\164\310\166\147"
+ , (PRUint32)1078 }
+ };
+-static const NSSItem nss_builtins_items_195 [] = {
++static const NSSItem nss_builtins_items_193 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13122,7 +12971,7 @@
+ { (void *)&ckt_netscape_untrusted, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_196 [] = {
++static const NSSItem nss_builtins_items_194 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13219,7 +13068,7 @@
+ "\253\205\322\140\126\132"
+ , (PRUint32)1030 }
+ };
+-static const NSSItem nss_builtins_items_197 [] = {
++static const NSSItem nss_builtins_items_195 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13247,7 +13096,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_198 [] = {
++static const NSSItem nss_builtins_items_196 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13332,7 +13181,7 @@
+ "\164"
+ , (PRUint32)897 }
+ };
+-static const NSSItem nss_builtins_items_199 [] = {
++static const NSSItem nss_builtins_items_197 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13358,7 +13207,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_200 [] = {
++static const NSSItem nss_builtins_items_198 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13455,7 +13304,7 @@
+ "\374\276\337\012\015"
+ , (PRUint32)1013 }
+ };
+-static const NSSItem nss_builtins_items_201 [] = {
++static const NSSItem nss_builtins_items_199 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13484,7 +13333,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_202 [] = {
++static const NSSItem nss_builtins_items_200 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13595,7 +13444,7 @@
+ "\241\361\017\033\037\075\236\004\203\335\226\331\035\072\224"
+ , (PRUint32)1151 }
+ };
+-static const NSSItem nss_builtins_items_203 [] = {
++static const NSSItem nss_builtins_items_201 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13627,7 +13476,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_204 [] = {
++static const NSSItem nss_builtins_items_202 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13781,7 +13630,7 @@
+ "\103\307\003\340\067\116\135\012\334\131\040\045"
+ , (PRUint32)1964 }
+ };
+-static const NSSItem nss_builtins_items_205 [] = {
++static const NSSItem nss_builtins_items_203 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13809,7 +13658,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_206 [] = {
++static const NSSItem nss_builtins_items_204 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13890,7 +13739,7 @@
+ "\300\226\130\057\352\273\106\327\273\344\331\056"
+ , (PRUint32)940 }
+ };
+-static const NSSItem nss_builtins_items_207 [] = {
++static const NSSItem nss_builtins_items_205 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13913,7 +13762,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_208 [] = {
++static const NSSItem nss_builtins_items_206 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14047,7 +13896,7 @@
+ "\005\211\374\170\326\134\054\046\103\251"
+ , (PRUint32)1642 }
+ };
+-static const NSSItem nss_builtins_items_209 [] = {
++static const NSSItem nss_builtins_items_207 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14075,7 +13924,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_210 [] = {
++static const NSSItem nss_builtins_items_208 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14180,7 +14029,7 @@
+ "\334\144\047\027\214\132\267\332\164\050\315\227\344\275"
+ , (PRUint32)1198 }
+ };
+-static const NSSItem nss_builtins_items_211 [] = {
++static const NSSItem nss_builtins_items_209 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14207,7 +14056,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_212 [] = {
++static const NSSItem nss_builtins_items_210 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14312,7 +14161,7 @@
+ "\016\121\075\157\373\226\126\200\342\066\027\321\334\344"
+ , (PRUint32)1198 }
+ };
+-static const NSSItem nss_builtins_items_213 [] = {
++static const NSSItem nss_builtins_items_211 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14339,7 +14188,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_214 [] = {
++static const NSSItem nss_builtins_items_212 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14432,7 +14281,7 @@
+ "\230"
+ , (PRUint32)993 }
+ };
+-static const NSSItem nss_builtins_items_215 [] = {
++static const NSSItem nss_builtins_items_213 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14459,7 +14308,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_216 [] = {
++static const NSSItem nss_builtins_items_214 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14548,7 +14397,7 @@
+ "\126\144\127"
+ , (PRUint32)931 }
+ };
+-static const NSSItem nss_builtins_items_217 [] = {
++static const NSSItem nss_builtins_items_215 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14575,7 +14424,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_218 [] = {
++static const NSSItem nss_builtins_items_216 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14656,7 +14505,7 @@
+ "\000\147\240\161\000\202\110"
+ , (PRUint32)919 }
+ };
+-static const NSSItem nss_builtins_items_219 [] = {
++static const NSSItem nss_builtins_items_217 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14680,7 +14529,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_220 [] = {
++static const NSSItem nss_builtins_items_218 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14762,7 +14611,7 @@
+ "\316\145\006\056\135\322\052\123\164\136\323\156\047\236\217"
+ , (PRUint32)943 }
+ };
+-static const NSSItem nss_builtins_items_221 [] = {
++static const NSSItem nss_builtins_items_219 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14786,7 +14635,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_222 [] = {
++static const NSSItem nss_builtins_items_220 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14867,7 +14716,7 @@
+ "\246\210\070\316\125"
+ , (PRUint32)933 }
+ };
+-static const NSSItem nss_builtins_items_223 [] = {
++static const NSSItem nss_builtins_items_221 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14890,7 +14739,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_224 [] = {
++static const NSSItem nss_builtins_items_222 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15009,7 +14858,7 @@
+ "\201\370\021\234"
+ , (PRUint32)1460 }
+ };
+-static const NSSItem nss_builtins_items_225 [] = {
++static const NSSItem nss_builtins_items_223 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15035,7 +14884,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_226 [] = {
++static const NSSItem nss_builtins_items_224 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15169,7 +15018,7 @@
+ "\311\234\220\332\354\251\102\074\255\266\002"
+ , (PRUint32)1307 }
+ };
+-static const NSSItem nss_builtins_items_227 [] = {
++static const NSSItem nss_builtins_items_225 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15207,7 +15056,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_228 [] = {
++static const NSSItem nss_builtins_items_226 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15285,7 +15134,7 @@
+ "\366\324\357\277\114\210\150"
+ , (PRUint32)855 }
+ };
+-static const NSSItem nss_builtins_items_229 [] = {
++static const NSSItem nss_builtins_items_227 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15309,7 +15158,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_230 [] = {
++static const NSSItem nss_builtins_items_228 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15387,7 +15236,7 @@
+ "\246\347\313\100\003\335\171"
+ , (PRUint32)855 }
+ };
+-static const NSSItem nss_builtins_items_231 [] = {
++static const NSSItem nss_builtins_items_229 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15411,7 +15260,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_232 [] = {
++static const NSSItem nss_builtins_items_230 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15538,7 +15387,7 @@
+ "\320\352\111\242\034\215\122\024\246\012\223"
+ , (PRUint32)1515 }
+ };
+-static const NSSItem nss_builtins_items_233 [] = {
++static const NSSItem nss_builtins_items_231 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15566,7 +15415,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_234 [] = {
++static const NSSItem nss_builtins_items_232 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15640,7 +15489,7 @@
+ "\366\356\260\132\116\111\104\124\130\137\102\203"
+ , (PRUint32)828 }
+ };
+-static const NSSItem nss_builtins_items_235 [] = {
++static const NSSItem nss_builtins_items_233 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15663,7 +15512,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_236 [] = {
++static const NSSItem nss_builtins_items_234 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15739,7 +15588,7 @@
+ "\011\333\212\101\202\236\146\233\021"
+ , (PRUint32)857 }
+ };
+-static const NSSItem nss_builtins_items_237 [] = {
++static const NSSItem nss_builtins_items_235 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15762,7 +15611,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_238 [] = {
++static const NSSItem nss_builtins_items_236 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15845,7 +15694,7 @@
+ "\262\033\211\124"
+ , (PRUint32)932 }
+ };
+-static const NSSItem nss_builtins_items_239 [] = {
++static const NSSItem nss_builtins_items_237 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15869,7 +15718,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_240 [] = {
++static const NSSItem nss_builtins_items_238 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15969,7 +15818,7 @@
+ "\021\055"
+ , (PRUint32)1026 }
+ };
+-static const NSSItem nss_builtins_items_241 [] = {
++static const NSSItem nss_builtins_items_239 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15999,7 +15848,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_242 [] = {
++static const NSSItem nss_builtins_items_240 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16073,7 +15922,7 @@
+ "\367\130\077\056\162\002\127\243\217\241\024\056"
+ , (PRUint32)652 }
+ };
+-static const NSSItem nss_builtins_items_243 [] = {
++static const NSSItem nss_builtins_items_241 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16102,7 +15951,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_244 [] = {
++static const NSSItem nss_builtins_items_242 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16208,7 +16057,7 @@
+ "\061\324\100\032\142\064\066\077\065\001\256\254\143\240"
+ , (PRUint32)1070 }
+ };
+-static const NSSItem nss_builtins_items_245 [] = {
++static const NSSItem nss_builtins_items_243 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16240,7 +16089,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_246 [] = {
++static const NSSItem nss_builtins_items_244 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16319,7 +16168,7 @@
+ "\017\212"
+ , (PRUint32)690 }
+ };
+-static const NSSItem nss_builtins_items_247 [] = {
++static const NSSItem nss_builtins_items_245 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16349,7 +16198,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_248 [] = {
++static const NSSItem nss_builtins_items_246 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16464,7 +16313,7 @@
+ "\354\315\202\141\361\070\346\117\227\230\052\132\215"
+ , (PRUint32)1213 }
+ };
+-static const NSSItem nss_builtins_items_249 [] = {
++static const NSSItem nss_builtins_items_247 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16496,7 +16345,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_250 [] = {
++static const NSSItem nss_builtins_items_248 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16594,7 +16443,7 @@
+ "\055\247\330\206\052\335\056\020"
+ , (PRUint32)904 }
+ };
+-static const NSSItem nss_builtins_items_251 [] = {
++static const NSSItem nss_builtins_items_249 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16627,7 +16476,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_252 [] = {
++static const NSSItem nss_builtins_items_250 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16729,7 +16578,7 @@
+ "\330\316\304\143\165\077\131\107\261"
+ , (PRUint32)1049 }
+ };
+-static const NSSItem nss_builtins_items_253 [] = {
++static const NSSItem nss_builtins_items_251 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16759,7 +16608,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_254 [] = {
++static const NSSItem nss_builtins_items_252 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16878,7 +16727,7 @@
+ "\370\161\012\334\271\374\175\062\140\346\353\257\212\001"
+ , (PRUint32)1486 }
+ };
+-static const NSSItem nss_builtins_items_255 [] = {
++static const NSSItem nss_builtins_items_253 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16903,7 +16752,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_256 [] = {
++static const NSSItem nss_builtins_items_254 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16993,7 +16842,7 @@
+ "\315\345\250"
+ , (PRUint32)1043 }
+ };
+-static const NSSItem nss_builtins_items_257 [] = {
++static const NSSItem nss_builtins_items_255 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17017,7 +16866,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_258 [] = {
++static const NSSItem nss_builtins_items_256 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17122,7 +16971,7 @@
+ "\115\273\306\104\333\066\313\052\234\216"
+ , (PRUint32)1258 }
+ };
+-static const NSSItem nss_builtins_items_259 [] = {
++static const NSSItem nss_builtins_items_257 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17147,7 +16996,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_260 [] = {
++static const NSSItem nss_builtins_items_258 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17223,7 +17072,7 @@
+ "\002\153\331\132"
+ , (PRUint32)820 }
+ };
+-static const NSSItem nss_builtins_items_261 [] = {
++static const NSSItem nss_builtins_items_259 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17247,7 +17096,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_262 [] = {
++static const NSSItem nss_builtins_items_260 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17329,7 +17178,7 @@
+ "\362"
+ , (PRUint32)881 }
+ };
+-static const NSSItem nss_builtins_items_263 [] = {
++static const NSSItem nss_builtins_items_261 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17354,7 +17203,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_264 [] = {
++static const NSSItem nss_builtins_items_262 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17470,7 +17319,7 @@
+ "\113\076\053\070\007\125\230\136\244"
+ , (PRUint32)1465 }
+ };
+-static const NSSItem nss_builtins_items_265 [] = {
++static const NSSItem nss_builtins_items_263 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17494,7 +17343,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_266 [] = {
++static const NSSItem nss_builtins_items_264 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17559,7 +17408,7 @@
+ "\375\166\004\333\142\273\220\152\003\331\106\065\331\370\174\133"
+ , (PRUint32)576 }
+ };
+-static const NSSItem nss_builtins_items_267 [] = {
++static const NSSItem nss_builtins_items_265 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17586,7 +17435,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_268 [] = {
++static const NSSItem nss_builtins_items_266 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17651,7 +17500,7 @@
+ "\054\163\031\110\151\116\153\174\145\277\017\374\160\316\210\220"
+ , (PRUint32)576 }
+ };
+-static const NSSItem nss_builtins_items_269 [] = {
++static const NSSItem nss_builtins_items_267 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17678,7 +17527,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_270 [] = {
++static const NSSItem nss_builtins_items_268 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17775,7 +17624,7 @@
+ "\202\042\055\172\124\253\160\303\175\042\145\202\160\226"
+ , (PRUint32)1038 }
+ };
+-static const NSSItem nss_builtins_items_271 [] = {
++static const NSSItem nss_builtins_items_269 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17803,7 +17652,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_272 [] = {
++static const NSSItem nss_builtins_items_270 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17894,7 +17743,7 @@
+ "\336\102\343\055\202\361\017\345\372\227"
+ , (PRUint32)954 }
+ };
+-static const NSSItem nss_builtins_items_273 [] = {
++static const NSSItem nss_builtins_items_271 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17922,7 +17771,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_274 [] = {
++static const NSSItem nss_builtins_items_272 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18001,7 +17850,7 @@
+ "\130\077\137"
+ , (PRUint32)867 }
+ };
+-static const NSSItem nss_builtins_items_275 [] = {
++static const NSSItem nss_builtins_items_273 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18025,7 +17874,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_276 [] = {
++static const NSSItem nss_builtins_items_274 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18118,7 +17967,7 @@
+ "\045\361\224\264\146"
+ , (PRUint32)997 }
+ };
+-static const NSSItem nss_builtins_items_277 [] = {
++static const NSSItem nss_builtins_items_275 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18145,7 +17994,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_278 [] = {
++static const NSSItem nss_builtins_items_276 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18269,7 +18118,7 @@
+ "\156\117\022\176\012\074\235\225"
+ , (PRUint32)1560 }
+ };
+-static const NSSItem nss_builtins_items_279 [] = {
++static const NSSItem nss_builtins_items_277 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18294,7 +18143,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_280 [] = {
++static const NSSItem nss_builtins_items_278 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18413,7 +18262,7 @@
+ "\333\374\046\210\307"
+ , (PRUint32)1525 }
+ };
+-static const NSSItem nss_builtins_items_281 [] = {
++static const NSSItem nss_builtins_items_279 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18437,7 +18286,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_282 [] = {
++static const NSSItem nss_builtins_items_280 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18593,7 +18442,7 @@
+ "\167\110\320"
+ , (PRUint32)1875 }
+ };
+-static const NSSItem nss_builtins_items_283 [] = {
++static const NSSItem nss_builtins_items_281 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18624,7 +18473,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_284 [] = {
++static const NSSItem nss_builtins_items_282 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18777,7 +18626,7 @@
+ "\351\233\256\325\124\300\164\200\321\013\102\237\301"
+ , (PRUint32)1869 }
+ };
+-static const NSSItem nss_builtins_items_285 [] = {
++static const NSSItem nss_builtins_items_283 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18807,7 +18656,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_286 [] = {
++static const NSSItem nss_builtins_items_284 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18943,7 +18792,7 @@
+ "\242\355\264\324\265\145\103\267\223\106\212\323"
+ , (PRUint32)1532 }
+ };
+-static const NSSItem nss_builtins_items_287 [] = {
++static const NSSItem nss_builtins_items_285 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18973,7 +18822,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_288 [] = {
++static const NSSItem nss_builtins_items_286 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19124,7 +18973,7 @@
+ "\264"
+ , (PRUint32)1761 }
+ };
+-static const NSSItem nss_builtins_items_289 [] = {
++static const NSSItem nss_builtins_items_287 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19154,7 +19003,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_290 [] = {
++static const NSSItem nss_builtins_items_288 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19290,7 +19139,7 @@
+ "\111\043"
+ , (PRUint32)1522 }
+ };
+-static const NSSItem nss_builtins_items_291 [] = {
++static const NSSItem nss_builtins_items_289 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19320,7 +19169,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_292 [] = {
++static const NSSItem nss_builtins_items_290 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19455,7 +19304,7 @@
+ "\172\244\047\023\326\117\364\151"
+ , (PRUint32)1512 }
+ };
+-static const NSSItem nss_builtins_items_293 [] = {
++static const NSSItem nss_builtins_items_291 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19485,7 +19334,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_294 [] = {
++static const NSSItem nss_builtins_items_292 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19621,7 +19470,7 @@
+ "\302\021\254"
+ , (PRUint32)1523 }
+ };
+-static const NSSItem nss_builtins_items_295 [] = {
++static const NSSItem nss_builtins_items_293 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19651,7 +19500,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_296 [] = {
++static const NSSItem nss_builtins_items_294 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19787,7 +19636,7 @@
+ "\147\024\060"
+ , (PRUint32)1523 }
+ };
+-static const NSSItem nss_builtins_items_297 [] = {
++static const NSSItem nss_builtins_items_295 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19817,7 +19666,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_298 [] = {
++static const NSSItem nss_builtins_items_296 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19951,7 +19800,7 @@
+ "\217\116\235\306\066\347\134\246\253\022\017\326\317"
+ , (PRUint32)1501 }
+ };
+-static const NSSItem nss_builtins_items_299 [] = {
++static const NSSItem nss_builtins_items_297 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19981,7 +19830,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_300 [] = {
++static const NSSItem nss_builtins_items_298 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20115,7 +19964,7 @@
+ "\130\113\161\203\237\146\346\254\171\110\376\376\107"
+ , (PRUint32)1501 }
+ };
+-static const NSSItem nss_builtins_items_301 [] = {
++static const NSSItem nss_builtins_items_299 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20145,7 +19994,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_302 [] = {
++static const NSSItem nss_builtins_items_300 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20280,7 +20129,7 @@
+ "\200\246\202\254\344\154\201\106\273\122\205\040\044\370\200\352"
+ , (PRUint32)1520 }
+ };
+-static const NSSItem nss_builtins_items_303 [] = {
++static const NSSItem nss_builtins_items_301 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20310,7 +20159,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_304 [] = {
++static const NSSItem nss_builtins_items_302 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20438,7 +20287,7 @@
+ "\154\174\107\306\327\224\021\041\354\326\132\322\335\217\177\221"
+ , (PRUint32)1392 }
+ };
+-static const NSSItem nss_builtins_items_305 [] = {
++static const NSSItem nss_builtins_items_303 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20468,7 +20317,7 @@
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_306 [] = {
++static const NSSItem nss_builtins_items_304 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20561,7 +20410,7 @@
+ "\342\342\104\276\134\367\352\034\365"
+ , (PRUint32)969 }
+ };
+-static const NSSItem nss_builtins_items_307 [] = {
++static const NSSItem nss_builtins_items_305 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20589,7 +20438,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_308 [] = {
++static const NSSItem nss_builtins_items_306 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20686,7 +20535,7 @@
+ "\364"
+ , (PRUint32)993 }
+ };
+-static const NSSItem nss_builtins_items_309 [] = {
++static const NSSItem nss_builtins_items_307 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20715,7 +20564,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_310 [] = {
++static const NSSItem nss_builtins_items_308 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20813,7 +20662,7 @@
+ "\261\050\272"
+ , (PRUint32)1011 }
+ };
+-static const NSSItem nss_builtins_items_311 [] = {
++static const NSSItem nss_builtins_items_309 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20842,7 +20691,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_312 [] = {
++static const NSSItem nss_builtins_items_310 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20919,7 +20768,7 @@
+ "\007\072\027\144\265\004\265\043\041\231\012\225\073\227\174\357"
+ , (PRUint32)848 }
+ };
+-static const NSSItem nss_builtins_items_313 [] = {
++static const NSSItem nss_builtins_items_311 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20943,7 +20792,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_314 [] = {
++static const NSSItem nss_builtins_items_312 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21020,7 +20869,7 @@
+ "\355\132\000\124\205\034\026\066\222\014\134\372\246\255\277\333"
+ , (PRUint32)848 }
+ };
+-static const NSSItem nss_builtins_items_315 [] = {
++static const NSSItem nss_builtins_items_313 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21044,7 +20893,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_316 [] = {
++static const NSSItem nss_builtins_items_314 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21153,7 +21002,7 @@
+ "\051\340\266\270\011\150\031\034\030\103"
+ , (PRUint32)1354 }
+ };
+-static const NSSItem nss_builtins_items_317 [] = {
++static const NSSItem nss_builtins_items_315 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21177,7 +21026,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_318 [] = {
++static const NSSItem nss_builtins_items_316 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21234,7 +21083,7 @@
+ "\214\171"
+ , (PRUint32)514 }
+ };
+-static const NSSItem nss_builtins_items_319 [] = {
++static const NSSItem nss_builtins_items_317 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21258,7 +21107,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_320 [] = {
++static const NSSItem nss_builtins_items_318 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21348,7 +21197,7 @@
+ "\326\267\064\365\176\316\071\232\331\070\361\121\367\117\054"
+ , (PRUint32)959 }
+ };
+-static const NSSItem nss_builtins_items_321 [] = {
++static const NSSItem nss_builtins_items_319 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21375,7 +21224,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_322 [] = {
++static const NSSItem nss_builtins_items_320 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21493,7 +21342,7 @@
+ "\377\276\013\166\026\136\067\067\346\330\164\227\242\231\105\171"
+ , (PRUint32)1440 }
+ };
+-static const NSSItem nss_builtins_items_323 [] = {
++static const NSSItem nss_builtins_items_321 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21519,7 +21368,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_324 [] = {
++static const NSSItem nss_builtins_items_322 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21652,7 +21501,7 @@
+ "\304\163\304\163\030\137\120\165\026\061\237\267\350\174\303"
+ , (PRUint32)1679 }
+ };
+-static const NSSItem nss_builtins_items_325 [] = {
++static const NSSItem nss_builtins_items_323 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21678,7 +21527,7 @@
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_326 [] = {
++static const NSSItem nss_builtins_items_324 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21772,7 +21621,7 @@
+ "\204\232\315"
+ , (PRUint32)979 }
+ };
+-static const NSSItem nss_builtins_items_327 [] = {
++static const NSSItem nss_builtins_items_325 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21800,7 +21649,7 @@
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_328 [] = {
++static const NSSItem nss_builtins_items_326 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21884,7 +21733,7 @@
+ "\274\060\376\173\016\063\220\373\355\322\024\221\037\007\257"
+ , (PRUint32)895 }
+ };
+-static const NSSItem nss_builtins_items_329 [] = {
++static const NSSItem nss_builtins_items_327 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -22242,13 +22091,11 @@
+ { 11, nss_builtins_types_324, nss_builtins_items_324, {NULL} },
+ { 13, nss_builtins_types_325, nss_builtins_items_325, {NULL} },
+ { 11, nss_builtins_types_326, nss_builtins_items_326, {NULL} },
+- { 13, nss_builtins_types_327, nss_builtins_items_327, {NULL} },
+- { 11, nss_builtins_types_328, nss_builtins_items_328, {NULL} },
+- { 13, nss_builtins_types_329, nss_builtins_items_329, {NULL} }
++ { 13, nss_builtins_types_327, nss_builtins_items_327, {NULL} }
+ };
+ const PRUint32
+ #ifdef DEBUG
+- nss_builtins_nObjects = 329+1;
++ nss_builtins_nObjects = 327+1;
+ #else
+- nss_builtins_nObjects = 329;
++ nss_builtins_nObjects = 327;
+ #endif /* DEBUG */
+Index: security/nss/lib/ckfw/builtins/certdata.txt
+===================================================================
+RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/builtins/certdata.txt,v
+retrieving revision 1.64.2.10
+retrieving revision 1.64.2.11
+diff -u -r1.64.2.10 -r1.64.2.11
+--- security/nss/lib/ckfw/builtins/certdata.txt 1 Aug 2011 06:40:04 -0000 1.64.2.10
++++ security/nss/lib/ckfw/builtins/certdata.txt 30 Aug 2011 20:04:39 -0000 1.64.2.11
+@@ -34,7 +34,7 @@
+ # the terms of any one of the MPL, the GPL or the LGPL.
+ #
+ # ***** END LICENSE BLOCK *****
+-CVS_ID "@(#) $RCSfile: certdata.txt,v $ $Revision: 1.64.2.10 $ $Date: 2011/08/01 06:40:04 $"
++CVS_ID "@(#) $RCSfile: certdata.txt,v $ $Revision: 1.64.2.11 $ $Date: 2011/08/30 20:04:39 $"
+
+ #
+ # certdata.txt
+@@ -12461,161 +12461,6 @@
+ CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+ #
+-# Certificate "DigiNotar 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 "DigiNotar Root CA"
+-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+-CKA_SUBJECT MULTILINE_OCTAL
+-\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+-\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157
+-\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151
+-\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061
+-\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021
+-\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156
+-\154
+-END
+-CKA_ID UTF8 "0"
+-CKA_ISSUER MULTILINE_OCTAL
+-\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+-\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157
+-\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151
+-\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061
+-\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021
+-\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156
+-\154
+-END
+-CKA_SERIAL_NUMBER MULTILINE_OCTAL
+-\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223
+-\074\114
+-END
+-CKA_VALUE MULTILINE_OCTAL
+-\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\014
+-\166\332\234\221\014\116\054\236\376\025\320\130\223\074\114\060
+-\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\137
+-\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022\060
+-\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164\141
+-\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147\151
+-\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040\060
+-\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156
+-\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154\060
+-\036\027\015\060\067\060\065\061\066\061\067\061\071\063\066\132
+-\027\015\062\065\060\063\063\061\061\070\061\071\062\061\132\060
+-\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022
+-\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164
+-\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147
+-\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040
+-\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151
+-\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154
+-\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\254\260\130\301\000\275\330\041\010\013\053\232\376\156\126
+-\060\005\237\033\167\220\020\101\134\303\015\207\021\167\216\201
+-\361\312\174\351\214\152\355\070\164\065\273\332\337\371\273\300
+-\011\067\264\226\163\201\175\063\032\230\071\367\223\157\225\177
+-\075\271\261\165\207\272\121\110\350\213\160\076\225\004\305\330
+-\266\303\026\331\210\260\261\207\035\160\332\206\264\017\024\213
+-\172\317\020\321\164\066\242\022\173\167\206\112\171\346\173\337
+-\002\021\150\245\116\206\256\064\130\233\044\023\170\126\042\045
+-\036\001\213\113\121\161\373\202\314\131\226\151\210\132\150\123
+-\305\271\015\002\067\313\113\274\146\112\220\176\052\013\005\007
+-\355\026\137\125\220\165\330\106\311\033\203\342\010\276\361\043
+-\314\231\035\326\052\017\203\040\025\130\047\202\056\372\342\042
+-\302\111\261\271\001\201\152\235\155\235\100\167\150\166\116\041
+-\052\155\204\100\205\116\166\231\174\202\363\363\267\002\131\324
+-\046\001\033\216\337\255\123\006\321\256\030\335\342\262\072\313
+-\327\210\070\216\254\133\051\271\031\323\230\371\030\003\317\110
+-\202\206\146\013\033\151\017\311\353\070\210\172\046\032\005\114
+-\222\327\044\324\226\362\254\122\055\243\107\325\122\366\077\376
+-\316\204\006\160\246\252\076\242\362\266\126\064\030\127\242\344
+-\201\155\347\312\360\152\323\307\221\153\002\203\101\174\025\357
+-\153\232\144\136\343\320\074\345\261\353\173\135\206\373\313\346
+-\167\111\315\243\145\334\367\271\234\270\344\013\137\223\317\314
+-\060\032\062\034\316\034\143\225\245\371\352\341\164\213\236\351
+-\053\251\060\173\240\030\037\016\030\013\345\133\251\323\321\154
+-\036\007\147\217\221\113\251\212\274\322\146\252\223\001\210\262
+-\221\372\061\134\325\246\301\122\010\011\315\012\143\242\323\042
+-\246\350\241\331\071\006\227\365\156\215\002\220\214\024\173\077
+-\200\315\033\234\272\304\130\162\043\257\266\126\237\306\172\102
+-\063\051\007\077\202\311\346\037\005\015\315\114\050\066\213\323
+-\310\076\034\306\210\357\136\356\211\144\351\035\353\332\211\176
+-\062\246\151\321\335\314\210\237\321\320\311\146\041\334\006\147
+-\305\224\172\232\155\142\114\175\314\340\144\200\262\236\107\216
+-\243\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035
+-\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125
+-\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125
+-\035\016\004\026\004\024\210\150\277\340\216\065\304\073\070\153
+-\142\367\050\073\204\201\310\014\327\115\060\015\006\011\052\206
+-\110\206\367\015\001\001\005\005\000\003\202\002\001\000\073\002
+-\215\313\074\060\350\156\240\255\362\163\263\137\236\045\023\004
+-\005\323\366\343\213\273\013\171\316\123\336\344\226\305\321\257
+-\163\274\325\303\320\100\125\174\100\177\315\033\137\011\325\362
+-\174\237\150\035\273\135\316\172\071\302\214\326\230\173\305\203
+-\125\250\325\175\100\312\340\036\367\211\136\143\135\241\023\302
+-\135\212\266\212\174\000\363\043\303\355\205\137\161\166\360\150
+-\143\252\105\041\071\110\141\170\066\334\361\103\223\324\045\307
+-\362\200\145\341\123\002\165\121\374\172\072\357\067\253\204\050
+-\127\014\330\324\324\231\126\154\343\242\376\131\204\264\061\350
+-\063\370\144\224\224\121\227\253\071\305\113\355\332\335\200\013
+-\157\174\051\015\304\216\212\162\015\347\123\024\262\140\101\075
+-\204\221\061\150\075\047\104\333\345\336\364\372\143\105\310\114
+-\076\230\365\077\101\272\116\313\067\015\272\146\230\361\335\313
+-\237\134\367\124\066\202\153\054\274\023\141\227\102\370\170\273
+-\314\310\242\237\312\360\150\275\153\035\262\337\215\157\007\235
+-\332\216\147\307\107\036\312\271\277\052\102\221\267\143\123\146
+-\361\102\243\341\364\132\115\130\153\265\344\244\063\255\134\160
+-\035\334\340\362\353\163\024\221\232\003\301\352\000\145\274\007
+-\374\317\022\021\042\054\256\240\275\072\340\242\052\330\131\351
+-\051\323\030\065\244\254\021\137\031\265\265\033\377\042\112\134
+-\306\172\344\027\357\040\251\247\364\077\255\212\247\232\004\045
+-\235\016\312\067\346\120\375\214\102\051\004\232\354\271\317\113
+-\162\275\342\010\066\257\043\057\142\345\312\001\323\160\333\174
+-\202\043\054\026\061\014\306\066\007\220\172\261\037\147\130\304
+-\073\130\131\211\260\214\214\120\263\330\206\313\150\243\304\012
+-\347\151\113\040\316\301\036\126\113\225\251\043\150\330\060\330
+-\303\353\260\125\121\315\345\375\053\270\365\273\021\237\123\124
+-\366\064\031\214\171\011\066\312\141\027\045\027\013\202\230\163
+-\014\167\164\303\325\015\307\250\022\114\307\247\124\161\107\056
+-\054\032\175\311\343\053\073\110\336\047\204\247\143\066\263\175
+-\217\240\144\071\044\015\075\173\207\257\146\134\164\033\113\163
+-\262\345\214\360\206\231\270\345\305\337\204\301\267\353
+-END
+-
+-# Trust for Certificate "DigiNotar 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 "DigiNotar Root CA"
+-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+-\300\140\355\104\313\330\201\275\016\370\154\013\242\207\335\317
+-\201\147\107\214
+-END
+-CKA_CERT_MD5_HASH MULTILINE_OCTAL
+-\172\171\124\115\007\222\073\133\377\101\360\016\307\071\242\230
+-END
+-CKA_ISSUER MULTILINE_OCTAL
+-\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+-\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157
+-\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151
+-\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061
+-\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021
+-\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156
+-\154
+-END
+-CKA_SERIAL_NUMBER MULTILINE_OCTAL
+-\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223
+-\074\114
+-END
+-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN
+-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+-
+-#
+ # Certificate "Network Solutions Certificate Authority"
+ #
+ CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+Index: security/nss/lib/ckfw/builtins/nssckbi.h
+===================================================================
+RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/builtins/nssckbi.h,v
+retrieving revision 1.24.2.5
+retrieving revision 1.24.2.6
+diff -u -r1.24.2.5 -r1.24.2.6
+--- security/nss/lib/ckfw/builtins/nssckbi.h 1 Aug 2011 06:40:04 -0000 1.24.2.5
++++ security/nss/lib/ckfw/builtins/nssckbi.h 30 Aug 2011 20:04:40 -0000 1.24.2.6
+@@ -77,8 +77,8 @@
+ * of the comment in the CK_VERSION type definition.
+ */
+ #define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 1
+-#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 84
+-#define NSS_BUILTINS_LIBRARY_VERSION "1.84"
++#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 85
++#define NSS_BUILTINS_LIBRARY_VERSION "1.85"
+
+ /* These version numbers detail the semantic changes to the ckfw engine. */
+ #define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
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..44e8df8d2
--- /dev/null
+++ b/extra/nss_ldap/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 121171 2011-04-29 06:45:19Z stephane $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Comete <la_comete@tiscali.fr>
+
+pkgname=nss_ldap
+pkgver=265
+pkgrel=2
+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 'mips64el')
+url="http://www.padl.com/OSS/nss_ldap.html"
+license=('LGPL')
+depends=('libldap>=2.4.18' 'krb5')
+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_ntfsprogs/25-ntfs-config-write-policy.fdi b/extra/ntfs-3g_ntfsprogs/25-ntfs-config-write-policy.fdi
new file mode 100644
index 000000000..54195d8b3
--- /dev/null
+++ b/extra/ntfs-3g_ntfsprogs/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_ntfsprogs/PKGBUILD b/extra/ntfs-3g_ntfsprogs/PKGBUILD
new file mode 100644
index 000000000..b1706dde1
--- /dev/null
+++ b/extra/ntfs-3g_ntfsprogs/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 120898 2011-04-27 08:00:36Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Thomas Bchler <thomas.archlinux.org>
+
+pkgbase=ntfs-3g_ntfsprogs
+pkgname=('ntfs-3g' 'ntfsprogs')
+pkgver=2011.4.12
+pkgrel=1
+url="http://www.tuxera.com"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+depends=('glibc' 'fuse')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://tuxera.com/opensource/${pkgbase}-${pkgver}.tgz
+ 25-ntfs-config-write-policy.fdi)
+sha1sums=('a4340ae611a3f26089f7d5601a86a5847517bff7'
+ '200029f2999a2c284fd30ae25734abf6459c3501')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \
+ --with-fuse=external --disable-static --disable-gnome-vfs \
+ --mandir=/usr/share/man
+ make
+}
+
+package_ntfs-3g() {
+ pkgdesc="Stable read and write NTFS driver"
+
+ for DIR in src libntfs-3g include; do
+ cd "${srcdir}/${pkgbase}-${pkgver}/${DIR}"
+ make DESTDIR="${pkgdir}" install
+ done
+
+ 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/"
+}
+
+package_ntfsprogs() {
+ pkgdesc="NTFS filesystem utilities"
+ depends=('util-linux' 'ntfs-3g')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/ntfsprogs"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ntp/PKGBUILD b/extra/ntp/PKGBUILD
new file mode 100644
index 000000000..9464444f6
--- /dev/null
+++ b/extra/ntp/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 143934 2011-11-30 21:30:13Z andrea $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: kevin <kevin@archlinux.org>
+
+pkgname=ntp
+pkgver=4.2.6.p4
+_realver=4.2.6p4
+pkgrel=2.1
+pkgdesc='Network Time Protocol reference implementation'
+url='http://www.ntp.org/'
+license=('custom')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('openssl' 'readline' 'libcap')
+makedepends=('perl-html-parser')
+backup=('etc/ntp.conf' 'etc/conf.d/ntpd.conf')
+source=("http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${_realver}.tar.gz"
+ 'ntpd'
+ 'ntpdate'
+ 'ntp.conf'
+ 'ntpd.conf')
+sha1sums=('b53c4565c5d1c37494584d4fb826f82ffea285cf'
+ '97b41b8bc34f259f4e525ab2e58707c9724e72e2'
+ '63572457586379aa6bf75b6e899e71d651e643f4'
+ 'f6fa4838a33a3abcdd168a37b3f4a2dddd60472e'
+ '6cfcb7bbd34499b30e31dffca2f3e1a036010271')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${_realver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-linux-caps \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-$_realver"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm755 ../ntpd "${pkgdir}"/etc/rc.d/ntpd
+ install -Dm755 ../ntpdate "${pkgdir}"/etc/rc.d/ntpdate
+ install -Dm644 ../ntp.conf "${pkgdir}"/etc/ntp.conf
+ install -Dm644 ../ntpd.conf "${pkgdir}"/etc/conf.d/ntpd.conf
+
+ cd html
+ ../scripts/html2man
+ install -d "${pkgdir}"/usr/share/man
+ mv man/man* "${pkgdir}"/usr/share/man
+ mv "${pkgdir}/usr/share/man/man8/ntpd.8" "${pkgdir}/usr/share/man/man8/ntp-ntpd.8" # we should ditch openntpd
+ cd ..
+
+ rmdir "${pkgdir}"/usr/{lib,sbin}
+ install -d "${pkgdir}/var/lib/ntp"
+ install -Dm644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ touch "${pkgdir}"/var/lib/ntp/.placeholder
+}
diff --git a/extra/ntp/install b/extra/ntp/install
new file mode 100644
index 000000000..ad9a39d54
--- /dev/null
+++ b/extra/ntp/install
@@ -0,0 +1,10 @@
+post_upgrade() {
+ if [[ $(vercmp $2 4.2.6.p3) -le 0 ]]; then
+ cat <<EOF
+
+==> The file /etc/conf.d/ntp-client.conf has been renamed /etc/conf.d/ntpd.conf
+==> If you made changes to the former, please update the latter.
+
+EOF
+ fi
+}
diff --git a/extra/ntp/ntp.conf b/extra/ntp/ntp.conf
new file mode 100644
index 000000000..49b2f2bb7
--- /dev/null
+++ b/extra/ntp/ntp.conf
@@ -0,0 +1,23 @@
+# With the default settings below, ntpd will only synchronize your clock.
+#
+# For details, see:
+# - the ntp.conf man page
+# - http://support.ntp.org/bin/view/Support/GettingStarted
+# - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon
+
+# Select three geolocalized NTP public servers; see http://www.pool.ntp.org/
+server 0.pool.ntp.org
+server 1.pool.ntp.org
+server 2.pool.ntp.org
+
+# Only allow read-only access from localhost
+restrict default nomodify nopeer
+restrict 127.0.0.1
+restrict ::1
+
+# Location of drift and log files
+driftfile /var/lib/ntp/ntp.drift
+logfile /var/log/ntp.log
+
+# NOTE: If you run dhcpcd and have lines like 'restrict' and 'fudge' appearing
+# here, be sure to add '-Y -N' to the dhcpcd_ethX variables in /etc/conf.d/net
diff --git a/extra/ntp/ntpd b/extra/ntp/ntpd
new file mode 100755
index 000000000..a3e886e1f
--- /dev/null
+++ b/extra/ntp/ntpd
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ntpd.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/ntpd.conf b/extra/ntp/ntpd.conf
new file mode 100644
index 000000000..e728db579
--- /dev/null
+++ b/extra/ntp/ntpd.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/ntpdate b/extra/ntp/ntpdate
new file mode 100755
index 000000000..4f7c8375b
--- /dev/null
+++ b/extra/ntp/ntpdate
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ntpd.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..5211c17d2
--- /dev/null
+++ b/extra/ntrack/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 125701 2011-05-28 10:48:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=ntrack
+pkgver=13
+pkgrel=2
+epoch=1
+pkgdesc="A network connectivity tracking library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://launchpad.net/ntrack/"
+license=('LGPL')
+depends=('qt' 'libnl' 'gcc-libs')
+makedepends=('python2')
+source=("http://launchpad.net/${pkgname}/main/0${pkgver}/+download/${pkgname}-0${pkgver}.tar.gz"
+ 'dead-loop-fix.patch')
+md5sums=('90596b924a108f8b4eea52239ba64369'
+ '02bda6ae15ef04b6a7d9273c37752681')
+options=('!libtool' '!emptydirs')
+
+build() {
+ cd "${srcdir}/${pkgname}-0${pkgver}"
+
+ patch -p0 -i "${srcdir}"/dead-loop-fix.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-0${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ntrack/dead-loop-fix.patch b/extra/ntrack/dead-loop-fix.patch
new file mode 100644
index 000000000..133bb4ace
--- /dev/null
+++ b/extra/ntrack/dead-loop-fix.patch
@@ -0,0 +1,14 @@
+=== modified file 'modules/ntrack-libnl.c'
+--- modules/ntrack-libnl.c 2011-04-25 16:28:19 +0000
++++ modules/ntrack-libnl.c 2011-04-25 17:25:24 +0000
+@@ -394,6 +394,9 @@
+ if (rtnl_link_get_ifindex(link) > iindex)
+ break;
+ i = i->next;
++
++ if (i == linklist)
++ break;
+ }
+ return result;
+ }
+
diff --git a/extra/numactl/PKGBUILD b/extra/numactl/PKGBUILD
new file mode 100644
index 000000000..0565cdc08
--- /dev/null
+++ b/extra/numactl/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Florian Zeitz <florob at babelmonkeys dot de>
+
+pkgname=numactl
+pkgver=2.0.7
+pkgrel=2
+pkgdesc="Simple NUMA policy support"
+arch=('i686' 'x86_64')
+url="http://oss.sgi.com/projects/libnuma/"
+license=('LGPL2.1' 'GPL2')
+depends=('perl')
+source=(ftp://oss.sgi.com/www/projects/libnuma/download/$pkgname-${pkgver/_/-}.tar.gz)
+sha1sums=('dfdf539da65d1e880f04202071c139c4d2ba2da9')
+
+build() {
+ cd "$srcdir/$pkgname-${pkgver/_/-}"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-${pkgver/_/-}"
+ make prefix="$pkgdir/usr" libdir="$pkgdir/usr/lib" install
+ rmdir $pkgdir/usr/share/man/man2
+}
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..849dc3151
--- /dev/null
+++ b/extra/nx-common/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 128326 2011-06-22 20:29:20Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+
+pkgname=nx-common
+pkgver=3.5.0
+pkgrel=2
+pkgdesc="NoMachine NX common package for client and server"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://nomachine.com/"
+depends=('libjpeg-turbo>=1.1.1' 'libpng>=1.4.5' 'openssl>=1.0.0' 'gcc-libs' 'bash')
+makedepends=('xorg-server-devel')
+source=( #Compression libs and proxy sources
+ http://64.34.161.181/download/$pkgver/sources/nxcomp-$pkgver-2.tar.gz
+ http://64.34.161.181/download/$pkgver/sources/nxcompsh-$pkgver-1.tar.gz
+ http://64.34.161.181/download/$pkgver/sources/nxssh-$pkgver-2.tar.gz
+ nxcompsh-gcc43.patch)
+options=(!libtool)
+md5sums=('ad8c0f133122c6d07732ca69c8759410'
+ '84ade443b79ea079380b754aba9d392e'
+ 'f52fcdb38e09f8dcfb9ff0344dfbbbd6'
+ 'b6c279654dac421fc3dd1a27d66ff53c')
+
+build() {
+ # nxcomp
+ cd ${srcdir}/nxcomp
+ ./configure --prefix=/opt/NX
+ make
+ # nxcompsh
+ cd ${srcdir}/nxcompsh
+ patch -Np1 -i ${srcdir}/nxcompsh-gcc43.patch
+ ./configure --prefix=/opt/NX
+ make
+ # nxssh
+ cd ${srcdir}/nxssh
+ ./configure --prefix=/opt/NX
+ make
+}
+
+package() {
+ mkdir -p ${pkgdir}/opt/NX/bin
+ mkdir -p ${pkgdir}/opt/NX/lib
+
+ # nxcomp
+ cd ${srcdir}/nxcomp
+ cp -a libXcomp.so* ${pkgdir}/opt/NX/lib
+ # nxcompsh
+ cd ${srcdir}/nxcompsh
+ cp -a libXcompsh.so* ${pkgdir}/opt/NX/lib
+ # nxssh
+ cd ${srcdir}/nxssh
+ install -D -m755 nxssh ${pkgdir}/opt/NX/bin/nxssh
+}
diff --git a/extra/nx-common/nxcompsh-gcc43.patch b/extra/nx-common/nxcompsh-gcc43.patch
new file mode 100644
index 000000000..681a0dab5
--- /dev/null
+++ b/extra/nx-common/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/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..85f3dfbda
--- /dev/null
+++ b/extra/nxserver/PKGBUILD
@@ -0,0 +1,92 @@
+# $Id: PKGBUILD 141571 2011-10-31 07:33:57Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+
+pkgname=nxserver
+pkgver=3.5.0
+pkgrel=4
+pkgdesc="NoMachine NX is the next-generation X compression and roundtrip suppression scheme."
+arch=(i686 x86_64 'mips64el')
+url="http://nomachine.com/"
+license=('GPL')
+depends=("nx-common" 'libxaw' 'libxrender' 'libxp' 'gcc-libs' 'libjpeg>=8' #>=$pkgver
+ '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-2.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxwin-$pkgver-2.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxauth-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcomp-$pkgver-2.tar.gz # needed to provide NX.h and -LXcomp - part of nx-common
+#X11 Agent sources
+http://64.34.161.181/download/$pkgver/sources/nxagent-$pkgver-7.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompsh-$pkgver-1.tar.gz # needed to get X11 built - part of nx-common
+#Compression libs and proxy sources
+http://64.34.161.181/download/$pkgver/sources/nxproxy-$pkgver-1.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-2.tar.gz
+# gcc 43 fix
+nxcompsh-gcc43.patch)
+options=(!libtool)
+md5sums=('12060433a74ac61a1c776d1d6d136117'
+ '84c7f1575d9a1506370125ed050514ab'
+ 'cf38ec1e5a5f6453946cd387c14f2684'
+ 'ad8c0f133122c6d07732ca69c8759410'
+ '0a36c7e6a86c6c741179464b8f79c487'
+ '84ade443b79ea079380b754aba9d392e'
+ '488bb4d9b8e9f82dc272b4e6e9c57d30'
+ 'abde2ccc33e31fc695031c2cfb60f3dd'
+ '90a762dd9eb19c8c97876ad837923857'
+ 'b6c279654dac421fc3dd1a27d66ff53c')
+
+build() {
+ cd ${srcdir}
+
+ # nxcomp
+ cd ${srcdir}/nxcomp
+ ./configure --prefix=/opt/NX
+ make
+ # nxcompshad
+ cd ${srcdir}/nxcompshad
+ ./configure --prefix=/opt/NX
+ make
+ # nxcompsh
+ cd ${srcdir}/nxcompsh
+ patch -Np1 -i ${srcdir}/nxcompsh-gcc43.patch
+ ./configure --prefix=/opt/NX
+ make
+ # nxproxy
+ cd ${srcdir}/nxproxy
+ ./configure --prefix=/opt/NX
+ make
+ # nx-X11
+ cd ${srcdir}/nx-X11
+ make World
+ # nxcompext
+ cd ${srcdir}/nxcompext
+ ./configure --prefix=/opt/NX
+ make
+}
+
+package() {
+ mkdir -p ${pkgdir}/opt/NX/bin
+ mkdir -p ${pkgdir}/opt/NX/lib
+
+ # nxcompshad
+ cd ${srcdir}/nxcompshad
+ cp -a libXcompshad.so* ${pkgdir}/opt/NX/lib
+ # nxproxy
+ cd ${srcdir}/nxproxy
+ make prefix=${pkgdir}/opt/NX install
+ # nx-X11
+ cd ${srcdir}/nx-X11
+ 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
+ # nxcompext
+ cd ${srcdir}/nxcompext
+ cp -a libXcompext.so* ${pkgdir}/opt/NX/lib
+}
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/obex-data-server/PKGBUILD b/extra/obex-data-server/PKGBUILD
new file mode 100644
index 000000000..ad388ef42
--- /dev/null
+++ b/extra/obex-data-server/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137991 2011-09-13 21:30:11Z eric $
+# 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.6
+pkgrel=2
+pkgdesc="A D-Bus service providing high-level OBEX client and server side functionality"
+arch=('i686' 'x86_64' 'mips64el')
+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=('961ca5db6fe9c97024e133cc6203cc4d')
+
+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..b9a712f86
--- /dev/null
+++ b/extra/obexd/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 131909 2011-07-17 09:27:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+
+pkgbase=obexd
+pkgname=('obexd-client' 'obexd-server')
+pkgver=0.42
+pkgrel=1
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+makedepends=('openobex' 'libical')
+source=("http://www.kernel.org/pub/linux/bluetooth/${pkgbase}-${pkgver}.tar.bz2")
+md5sums=('39a85d219dba37d83f5a07a74d1fa563')
+
+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..3c3426120
--- /dev/null
+++ b/extra/obexftp/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143919 2011-11-30 20:53:04Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=obexftp
+pkgver=0.23
+pkgrel=5
+pkgdesc="A tool for transfer files to/from any OBEX enabled device"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp"
+license=('GPL')
+depends=('openobex' 'python2')
+makedepends=('pkg-config')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # 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..3606d7ba9
--- /dev/null
+++ b/extra/ocaml/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 143814 2011-11-29 13:33:35Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgbase='ocaml'
+pkgname=('ocaml' 'ocaml-compiler-libs')
+pkgver=3.12.1
+pkgrel=3
+pkgdesc="A functional language with OO extensions"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ fix-caml_int64_float_of_bits-n32.patch)
+md5sums=('814a047085f0f901ab7d8e3a4b7a9e65'
+ 'e2c8bc316efe40532c5b9d7f9a1d8d62')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-caml_int64_float_of_bits-n32.patch"
+ ./configure -prefix /usr
+ if [ "${CARCH}" == "mips64el" ] ; then
+ make world
+ else
+ make world.opt
+ fi
+}
+
+package_ocaml() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man" install
+
+ # Save >10MB with this one, makepkg only strips debug symbols.
+ #find "${pkgdir}/usr/lib" -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
+
+ # install license
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
+
+package_ocaml-compiler-libs() {
+pkgdesc="Several modules used internally by the OCaml compiler"
+license=('custom: QPL-1.0')
+depends=('ocaml')
+optdepends=()
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # Install compiler libraries
+ local compiler_libs="${pkgdir}/usr/lib/ocaml/compiler-libs"
+ mkdir -p "$compiler_libs"/{parsing,typing,utils}
+ cp parsing/*.{cmi,cmo,cmx,ml,mli,mll,o} "$compiler_libs"/parsing
+ cp typing/*.{cmi,cmo,cmx,ml,mli,o} "$compiler_libs"/typing
+ cp utils/*.{cmi,cmo,cmx,ml,mli,o} "$compiler_libs"/utils
+ # duplicated by installation
+ rm -f "$compiler_libs"/typing/outcometree.{cmi,mli}
+
+ # install license
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/ocaml/fix-caml_int64_float_of_bits-n32.patch b/extra/ocaml/fix-caml_int64_float_of_bits-n32.patch
new file mode 100644
index 000000000..98755d30b
--- /dev/null
+++ b/extra/ocaml/fix-caml_int64_float_of_bits-n32.patch
@@ -0,0 +1,12 @@
+--- ocaml-3.12.0.orig/byterun/ints.c 2011-06-25 18:03:21.548733206 +0200
++++ ocaml-3.12.0/byterun/ints.c 2011-06-25 22:34:17.304788306 +0200
+@@ -585,6 +585,9 @@
+ return caml_copy_int64(u.i);
+ }
+
++#ifdef _ABIN32
++__attribute__((optimize(0)))
++#endif
+ CAMLprim value caml_int64_float_of_bits(value vi)
+ {
+ union { double d; int64 i; int32 h[2]; } u;
diff --git a/extra/ocaml/fix-ocaml-binutils-2.21.patch b/extra/ocaml/fix-ocaml-binutils-2.21.patch
new file mode 100644
index 000000000..fa7664cec
--- /dev/null
+++ b/extra/ocaml/fix-ocaml-binutils-2.21.patch
@@ -0,0 +1,66 @@
+From: Stephane Glondu <steph@glondu.net>
+Date: Tue, 8 Mar 2011 21:17:40 +0100
+Subject: [PATCH] Fix ocamlopt w.r.t. binutils 2.21
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug: http://caml.inria.fr/mantis/view.php?id=5237
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617404
+Authors: Eric Cooper, spiralvoice
+Reviewed-by: Stéphane Glondu <steph@glondu.net>
+---
+ asmcomp/amd64/emit.mlp | 13 +++++++------
+ asmcomp/i386/emit.mlp | 6 +++---
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
+index 4a3f844..525c6e6 100644
+--- a/asmcomp/amd64/emit.mlp
++++ b/asmcomp/amd64/emit.mlp
+@@ -679,17 +679,18 @@ let fundecl fundecl =
+ emit_all true fundecl.fun_body;
+ List.iter emit_call_gc !call_gc_sites;
+ emit_call_bound_errors ();
++ begin match Config.system with
++ "linux" | "gnu" ->
++ ` .type {emit_symbol fundecl.fun_name},@function\n`;
++ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
++ | _ -> ()
++ end;
+ if !float_constants <> [] then begin
+ if macosx
+ then ` .literal8\n`
+ else ` .section .rodata.cst8,\"a\",@progbits\n`;
+ List.iter emit_float_constant !float_constants
+- end;
+- match Config.system with
+- "linux" | "gnu" ->
+- ` .type {emit_symbol fundecl.fun_name},@function\n`;
+- ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+- | _ -> ()
++ end
+
+ (* Emission of data *)
+
+diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
+index 2992f29..0b1252c 100644
+--- a/asmcomp/i386/emit.mlp
++++ b/asmcomp/i386/emit.mlp
+@@ -905,12 +905,12 @@ let fundecl fundecl =
+ emit_all true fundecl.fun_body;
+ List.iter emit_call_gc !call_gc_sites;
+ emit_call_bound_errors ();
+- List.iter emit_float_constant !float_constants;
+- match Config.system with
++ begin match Config.system with
+ "linux_elf" | "bsd_elf" | "gnu" ->
+ ` .type {emit_symbol fundecl.fun_name},@function\n`;
+ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+- | _ -> ()
++ | _ -> () end;
++ List.iter emit_float_constant !float_constants
+
+
+ (* Emission of data *)
+--
diff --git a/extra/ocrad/PKGBUILD b/extra/ocrad/PKGBUILD
new file mode 100644
index 000000000..e15c6087f
--- /dev/null
+++ b/extra/ocrad/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143923 2011-11-30 20:57:38Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ocrad
+pkgver=0.21
+pkgrel=2
+pkgdesc="An Optical Character Recognition program"
+arch=('i686' 'x86_64' 'mips64el')
+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}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install install-man
+ 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..8f94e064b
--- /dev/null
+++ b/extra/octave/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 141254 2011-10-27 14:28:28Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : shining <shiningxc.at.gmail.com>
+# Contributor : cyberdune <cyberdune@gmail.com>
+
+pkgname=octave
+pkgver=3.4.3
+pkgrel=1
+pkgdesc="A high-level language, primarily intended for numerical computations."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.octave.org"
+license=('GPL')
+depends=('fftw' 'pcre' 'curl' 'lapack' 'libx11' 'graphicsmagick' 'glpk' 'hdf5' 'gcc-libs' 'qhull')
+makedepends=('texinfo' 'graphicsmagick' 'gcc-fortran' 'umfpack' 'texlive-core' 'fltk')
+optdepends=('texinfo: for help-support in octave'
+ 'gnuplot: alternative plotting'
+ 'umfpack: LU decomposition of some large sparse matrices'
+ 'fltk: alternative plotting')
+source=("ftp://ftp.gnu.org/gnu/octave/octave-$pkgver.tar.bz2")
+options=('!emptydirs')
+install=octave.install
+sha1sums=('fe622c28a38f8730c59e46211bc7b18e7f51a679')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # http://www.nabble.com/Random-rounding-errors-td16010966.html
+ FFLAGS="-O -ffloat-store" \
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib \
+ --enable-shared --disable-static --with-quantum-depth=16
+
+ LANG=C make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+
+ # add octave library path to ld.so.conf.d
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/${pkgname}-${pkgver}" > ${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf
+}
diff --git a/extra/octave/curlfix.patch b/extra/octave/curlfix.patch
new file mode 100644
index 000000000..26f3d92f9
--- /dev/null
+++ b/extra/octave/curlfix.patch
@@ -0,0 +1,10 @@
+--- src/DLD-FUNCTIONS/urlwrite.cc.old 2011-07-02 16:39:22.466603778 +0200
++++ src/DLD-FUNCTIONS/urlwrite.cc 2011-07-02 16:39:54.543269859 +0200
+@@ -52,7 +52,6 @@
+
+ #include <curl/curl.h>
+ #include <curl/curlver.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+
+ static int
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.4.0-gcc46.patch b/extra/octave/octave-3.4.0-gcc46.patch
new file mode 100644
index 000000000..c174204ac
--- /dev/null
+++ b/extra/octave/octave-3.4.0-gcc46.patch
@@ -0,0 +1,24 @@
+diff -up octave-3.4.0/liboctave/oct-alloc.h.gcc46 octave-3.4.0/liboctave/oct-alloc.h
+--- octave-3.4.0/liboctave/oct-alloc.h.gcc46 2011-02-08 03:00:51.000000000 -0700
++++ octave-3.4.0/liboctave/oct-alloc.h 2011-02-08 09:41:23.984081687 -0700
+@@ -23,6 +23,8 @@ along with Octave; see the file COPYING.
+ #if !defined (octave_oct_alloc_h)
+ #define octave_oct_alloc_h 1
+
++#include <cstddef>
++
+ class
+ OCTAVE_API
+ octave_allocator
+diff -up octave-3.4.0/src/pr-output.cc.gcc46 octave-3.4.0/src/pr-output.cc
+--- octave-3.4.0/src/pr-output.cc.gcc46 2011-02-08 03:00:52.000000000 -0700
++++ octave-3.4.0/src/pr-output.cc 2011-02-08 09:55:16.149662744 -0700
+@@ -3024,7 +3024,7 @@ abs (T x)
+ }
+
+ #define INSTANTIATE_ABS(T) \
+- template /* static */ inline T abs (T)
++ template /* static */ T abs (T)
+
+ INSTANTIATE_ABS(signed char);
+ INSTANTIATE_ABS(short);
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..1723113e8
--- /dev/null
+++ b/extra/ode/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 141650 2011-11-01 10:06:18Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Adam Griffiths <adam_griffithsAATTdart.net.au>
+
+pkgname=ode
+pkgver=0.11.1
+pkgrel=2
+pkgdesc="An open source, high performance library for simulating rigid body dynamics"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..fbd7846b5
--- /dev/null
+++ b/extra/ogle/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 137878 2011-09-12 06:26:48Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=ogle
+pkgver=0.9.2
+pkgrel=13
+pkgdesc="A simple DVD player for Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.dtek.chalmers.se/groups/dvd/"
+license=('GPL')
+depends=('sh' 'libxml2' 'libdvdread' 'libjpeg' 'libmad' 'libxinerama' 'libxv'
+ 'alsa-lib' 'a52dec' 'libxxf86vm')
+options=('!libtool')
+# http://www.dtek.chalmers.se/groups/dvd/dist/${pkgname}-${pkgver}.tar.gz
+source=(ftp://ftp.archlinux.org/other/ogle/${pkgname}-${pkgver}.tar.gz \
+ xvideofix.patch gcc34alsafix.patch gcc4.patch dvdread-4.1.3.patch \
+ ogle-vuln-scripts-makefile.patch)
+md5sums=('a76a9892bdb807a4bcf859d15a91f0f9'
+ '57f1cf36eed82c56f24e9c0fc25ce2b3'
+ '4ebc822b252fade6b53c5ceb5be45bf5'
+ 'd08cff87c5ec41a7eebc0d2384835688'
+ '597906c64ff7f5185de8430fdae3107d'
+ 'd052b01f293c61d399fdd0ac2abb1cf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i "${srcdir}/dvdread-4.1.3.patch"
+ patch -p1 -i "${srcdir}/xvideofix.patch"
+ patch -p1 -i "${srcdir}/gcc34alsafix.patch"
+ patch -p1 -i "${srcdir}/gcc4.patch"
+ patch -p0 -i "${srcdir}/ogle-vuln-scripts-makefile.patch"
+
+ # fix alsa detection - stolen from their cvs
+ sed -i 's|^.*MINOR\=\=5.*$|#if SND_LIB_MAJOR==0 && SND_LIB_MINOR<6|' configure
+ sed -i 's|__diga_end:|\0;|' libogleao/alsa_audio.c
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --with-x
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export LIBRARY_PATH="${pkgdir}/usr/lib/ogle"
+ make DESTDIR="${pkgdir}" install
+}
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/ogle-vuln-scripts-makefile.patch b/extra/ogle/ogle-vuln-scripts-makefile.patch
new file mode 100644
index 000000000..f25964378
--- /dev/null
+++ b/extra/ogle/ogle-vuln-scripts-makefile.patch
@@ -0,0 +1,36 @@
+This patch inhibits the installation of debug scripts vulnerable to a symlink
+attack, see bug 245921 for reference.
+
+--- scripts/Makefile.in.orig 2009-04-04 18:13:33.000000000 +0200
++++ scripts/Makefile.in 2009-04-04 18:15:46.000000000 +0200
+@@ -133,10 +133,10 @@
+ subdir = scripts
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_CLEAN_FILES = ogle
+-SCRIPTS = $(bin_SCRIPTS) $(dist_pkglib_SCRIPTS)
++SCRIPTS = $(bin_SCRIPTS)
+
+ DIST_SOURCES =
+-DIST_COMMON = $(dist_pkglib_SCRIPTS) Makefile.am Makefile.in ogle.in
++DIST_COMMON = Makefile.am Makefile.in ogle.in
+ all: all-am
+
+ .SUFFIXES:
+@@ -279,7 +279,7 @@
+
+ install-data-am:
+
+-install-exec-am: install-binSCRIPTS install-dist_pkglibSCRIPTS
++install-exec-am: install-binSCRIPTS
+
+ install-info: install-info-am
+
+@@ -295,7 +295,7 @@
+
+ mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+-uninstall-am: uninstall-binSCRIPTS uninstall-dist_pkglibSCRIPTS \
++uninstall-am: uninstall-binSCRIPTS \
+ uninstall-info-am
+
+ .PHONY: all all-am check check-am clean clean-generic clean-libtool \
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..02612b558
--- /dev/null
+++ b/extra/ogmtools/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137699 2011-09-10 12:46:29Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ogmtools
+pkgver=1.5
+pkgrel=4
+pkgdesc="Information, extraction or creation for OGG media streams"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/opal/PKGBUILD b/extra/opal/PKGBUILD
new file mode 100644
index 000000000..5486f00ad
--- /dev/null
+++ b/extra/opal/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142672 2011-11-12 17:47:17Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+pkgname=opal
+pkgver=3.10.2
+pkgrel=3
+pkgdesc="Open Phone Abstraction Library"
+arch=(i686 x86_64 'mips64el')
+url="http://www.ekiga.org"
+license=('GPL')
+depends=('ptlib' 'libtheora' 'x264' 'speex')
+makedepends=('ffmpeg')
+options=(!makeflags)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('8e227978263c07502b2bc4c9de0e71be1b95d673fe858bfd907910adfb2eb205')
+
+build() {
+ cd "${srcdir}/opal-${pkgver}"
+ CXXFLAGS="$CXXFLAGS -fpermissive" \
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/opal-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/openal/PKGBUILD b/extra/openal/PKGBUILD
new file mode 100644
index 000000000..338d11712
--- /dev/null
+++ b/extra/openal/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 129235 2011-06-26 06:15:14Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributer: Jason Chu <jchu@xentac.net>
+
+pkgname=openal
+pkgver=1.13
+pkgrel=2
+pkgdesc="A cross-platform 3D audio library"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ make -C build DESTDIR="$pkgdir/" install
+ install -Dm644 alsoftrc.sample "$pkgdir/etc/openal/alsoft.conf.sample"
+}
diff --git a/extra/openbabel/PKGBUILD b/extra/openbabel/PKGBUILD
new file mode 100644
index 000000000..078e83de1
--- /dev/null
+++ b/extra/openbabel/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140672 2011-10-18 02:34:13Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=openbabel
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="A library designed to interconvert between many file formats used in molecular modeling and computational chemistry"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1f029b0add12a3b55582dc2c832b04f8')
+
+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/openconnect/PKGBUILD b/extra/openconnect/PKGBUILD
new file mode 100644
index 000000000..c27dbcd5e
--- /dev/null
+++ b/extra/openconnect/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 142902 2011-11-17 19:06:36Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=openconnect
+pkgver=3.14
+pkgrel=1
+epoch=1
+pkgdesc="Open client for Cisco AnyConnect VPN"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.infradead.org/openconnect.html"
+depends=('libxml2' 'openssl' 'libproxy')
+makedepends=('intltool')
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.infradead.org/pub/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('c7e73dfa58c7c49683c93800a3506a0f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/opencore-amr/PKGBUILD b/extra/opencore-amr/PKGBUILD
new file mode 100644
index 000000000..affd35652
--- /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' 'mips64el')
+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..4ded98b7e
--- /dev/null
+++ b/extra/opencv/PKGBUILD
@@ -0,0 +1,111 @@
+# $Id: PKGBUILD 144087 2011-12-03 09:31:31Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgbase=opencv
+pkgname=('opencv' 'opencv-docs' 'opencv-samples')
+_realname=OpenCV
+pkgver=2.3.1_a
+_realver=2.3.1
+pkgrel=1
+pkgdesc="Open Source Computer Vision Library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('BSD')
+url="http://opencv.willowgarage.com/"
+depends=('jasper' 'gstreamer0.10-base' 'openexr'
+ 'gtk2' 'xine-lib' 'libdc1394' 'v4l-utils')
+makedepends=('pkg-config' 'cmake' 'python2-numpy' 'eigen2')
+optdepends=('opencv-docs'
+ 'opencv-samples'
+ 'eigen2'
+ 'python2-numpy: Python 2.x interface')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/opencvlibrary/$_realname-${_realver}a.tar.bz2")
+md5sums=('82e4b6bfa349777233eea09b075e931e')
+
+_cmakeopts=('-D CMAKE_BUILD_TYPE=Release'
+ '-D CMAKE_INSTALL_PREFIX=/usr'
+ '-D CMAKE_SKIP_RPATH=ON'
+ '-D BUILD_TESTS=OFF'
+ '-D ENABLE_SSE=ON'
+ '-D ENABLE_SSE2=ON'
+ '-D ENABLE_SSE3=OFF'
+ '-D ENABLE_SSSE3=OFF'
+ '-D ENABLE_SSE41=OFF'
+ '-D ENABLE_SSE42=OFF'
+ '-D BUILD_EXAMPLES=ON'
+ '-D INSTALL_C_EXAMPLES=ON'
+ '-D INSTALL_PYTHON_EXAMPLES=ON'
+ '-D WITH_XINE=ON'
+ '-D WITH_QT=OFF'
+ '-D WITH_QT_OPENGL=OFF'
+ '-D WITH_UNICAP=OFF'
+ '-D WITH_PVAPI=OFF'
+ '-D WITH_OPENNI=OFF'
+ '-D WITH_TBB=OFF'
+ '-D WITH_IPP=OFF'
+ '-D WITH_CUDA=OFF'
+ '-D USE_FAST_MATH=ON')
+
+build() {
+ cd "$srcdir/$_realname-$_realver"
+
+ # x64, i.e "Athlon64" and upwards, can use SSE3
+ [ $CARCH = x86_64 ] && \
+ _cmakeopts=${_cmakeopts[@]/ENABLE_SSE3=OFF/ENABLE_SSE3=ON}
+
+ cmake ${_cmakeopts[@]} .
+
+ make
+}
+
+package_opencv() {
+ cd "$srcdir/$_realname-$_realver"
+
+ make DESTDIR="$pkgdir" install
+
+ # install license file
+ install -Dm644 "$srcdir/$_realname-$_realver/doc/license.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ cd "$pkgdir/usr/share"
+
+ # prepare FSH-friendly dirs
+ if [ -d OpenCV ]; then
+ mv opencv/samples OpenCV/
+ rm -r opencv
+ mv OpenCV opencv
+ fi
+
+ # separate docs package; also be -R friendly
+ [ -d opencv/doc ] && mv opencv/doc "$srcdir/opencv-doc"
+
+ # separate samples package
+ [ -d opencv/samples ] && mv opencv/samples "$srcdir/opencv-samples"
+}
+
+package_opencv-docs() {
+ pkgdesc+=" (documentation)"
+ unset depends
+ unset optdepends
+ options=('docs')
+
+ cd "$srcdir"
+
+ mkdir -p "$pkgdir/usr/share/doc"
+ cp -r opencv-doc "$pkgdir/usr/share/doc/opencv"
+}
+
+package_opencv-samples() {
+ pkgdesc+=" (samples)"
+ depends=('bash')
+ unset optdepends
+ unset options
+
+ cd "$srcdir"
+
+ mkdir -p "$pkgdir/usr/share/opencv"
+ cp -r opencv-samples "$pkgdir/usr/share/opencv/samples"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/openexr/PKGBUILD b/extra/openexr/PKGBUILD
new file mode 100644
index 000000000..9fe115aef
--- /dev/null
+++ b/extra/openexr/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 122097 2011-05-02 06:42:28Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=openexr
+pkgver=1.7.0
+pkgrel=1
+pkgdesc="An high dynamic-range image file format library"
+url="http://www.openexr.com/"
+arch=(i686 x86_64 'mips64el')
+license=('BSD')
+depends=('zlib' 'ilmbase')
+options=('!libtool')
+source=("http://download.savannah.nongnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'gcc43.patch')
+md5sums=('27113284f7d26a58f853c346e0851d7a'
+ 'd91fae759053a70bcedcf02eb33ca4a2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i ${srcdir}/gcc43.patch
+ ./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/extra/openexr/gcc43.patch b/extra/openexr/gcc43.patch
new file mode 100644
index 000000000..ab99eb9a1
--- /dev/null
+++ b/extra/openexr/gcc43.patch
@@ -0,0 +1,11 @@
+--- exrenvmap/blurImage.cpp
++++ exrenvmap/blurImage.cpp
+@@ -39,6 +39,8 @@
+ //
+ //-----------------------------------------------------------------------------
+
++#include <cstring>
++
+ #include <blurImage.h>
+
+ #include <resizeImage.h>
diff --git a/extra/opengtl/PKGBUILD b/extra/opengtl/PKGBUILD
new file mode 100644
index 000000000..1b4168f99
--- /dev/null
+++ b/extra/opengtl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 120658 2011-04-25 21:17:33Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Andries Radu <admiral0@live.it>
+
+pkgname=opengtl
+pkgver=0.9.15.1
+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' 'mips64el')
+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=('052fc8504ced601e356e4d20621699f7')
+sha1sums=('ddd25b1f5eb11ae0b438c67d5a2a73481e919a0a')
+
+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..c9e2aa45d
--- /dev/null
+++ b/extra/openjdk6/PKGBUILD
@@ -0,0 +1,196 @@
+# $Id: PKGBUILD 140782 2011-10-19 08:19:12Z 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.4
+_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' 'mips64el')
+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
+ fontconfig-paths.diff
+ nonreparenting-wm.diff
+ openjdk6.profile
+ openjdk6.profile.csh)
+noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz
+ jaxp144_01.zip
+ jdk6-jaxws-b20.zip
+ jdk6-jaf-b20.zip)
+md5sums=('c381d987f8d2facece8c54e98fd547f8'
+ '2d2bbbb0f9b81f1fec41ec730da8a933'
+ 'ef7a8b3624ea904bf584bc46d79b5e75'
+ '91adfd41e6f001add4f92ae31216b1e3'
+ 'bc95c133620bd68c161cac9891592901'
+ '5da3e39fa60985576c4f37d1491efbe2'
+ 'f7e7a212e50abb56a6ef1a2b1bd27405'
+ 'ee1afda124d5927345014ab382ef581e'
+ '9b4d368f5ee08de248eaf029303a446c'
+ '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/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}//icedtea6-${_icedteaver}/openjdk/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/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..65fa66e89
--- /dev/null
+++ b/extra/openjdk6/nonreparenting-wm.diff
@@ -0,0 +1,60 @@
+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
+@@ -99,7 +99,8 @@
+ METACITY_WM = 11,
+ COMPIZ_WM = 12,
+ LG3D_WM = 13,
+- MUTTER_WM = 14;
++ MUTTER_WM = 14,
++ OTHER_NONREPARENTING_WM = 15;
+ public String toString() {
+ switch (WMID) {
+ case NO_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/PKGBUILD b/extra/openjpeg/PKGBUILD
new file mode 100644
index 000000000..0b30d5fc8
--- /dev/null
+++ b/extra/openjpeg/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 137660 2011-09-10 10:58:56Z pierre $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=openjpeg
+pkgver=1.4
+_pkgver=v1_4
+_revision=r697
+pkgrel=1
+pkgdesc="An open source JPEG 2000 codec"
+arch=(i686 x86_64 'mips64el')
+license=('BSD')
+url="http://www.openjpeg.org"
+depends=('zlib')
+source=(http://openjpeg.googlecode.com/files/openjpeg_${_pkgver}_sources_${_revision}.tgz
+ openjpeg-1.4-autoconf.patch)
+md5sums=('7870bb84e810dec63fcf3b712ebb93db'
+ '46d1d26b59ce546444f3fe8d7c685775')
+
+options=('!makeflags' '!libtool')
+
+build() {
+ cd "${srcdir}/${pkgname}_${_pkgver}_sources_${_revision}"
+ patch -Np1 -i ${srcdir}/openjpeg-1.4-autoconf.patch
+ # make sure we use system libs
+ rm -rf libs
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}_${_pkgver}_sources_${_revision}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/openjpeg"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/openjpeg/LICENSE"
+}
diff --git a/extra/openjpeg/openjpeg-1.4-autoconf.patch b/extra/openjpeg/openjpeg-1.4-autoconf.patch
new file mode 100644
index 000000000..988b72b7d
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.4-autoconf.patch
@@ -0,0 +1,78 @@
+diff -up openjpeg_v1_4_sources_r697/doc/Makefile.am.autoconf_DESTDIR openjpeg_v1_4_sources_r697/doc/Makefile.am
+--- openjpeg_v1_4_sources_r697/doc/Makefile.am.autoconf_DESTDIR 2011-01-02 12:14:47.000000000 -0600
++++ openjpeg_v1_4_sources_r697/doc/Makefile.am 2011-01-12 12:12:20.959518549 -0600
+@@ -20,30 +20,30 @@ all-local:
+ @cp man/man3/* .
+
+ install-data-hook:
+- $(INSTALL) -d $(doc_dir)
+- $(INSTALL) -d ${mandir}/man1 ${mandir}/man3
++ $(INSTALL) -d $(DESTDIR)$(doc_dir)
++ $(INSTALL) -d $(DESTDIR)${mandir}/man1 $(DESTDIR)${mandir}/man3
+ if with_libjpwl
+- @(cd ${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image*)
+- @(cd ${mandir}/man3 && $(RM) JPWL_libopenjpeg* )
++ @(cd $(DESTDIR)${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image*)
++ @(cd $(DESTDIR)${mandir}/man3 && $(RM) JPWL_libopenjpeg* )
+ endif
+- @(cd ${mandir}/man1 && $(RM) image_to_j2k* j2k_to_image* j2k_dump* )
+- @(cd ${mandir}/man3 && $(RM) libopenjpeg* )
++ @(cd $(DESTDIR)${mandir}/man1 && $(RM) image_to_j2k* j2k_to_image* j2k_dump* )
++ @(cd $(DESTDIR)${mandir}/man3 && $(RM) libopenjpeg* )
+ @gzip -f image_to_j2k.1 j2k_to_image.1 j2k_dump.1 libopenjpeg.3
+- @cp image_to_j2k.1.gz j2k_to_image.1.gz j2k_dump.1.gz ${mandir}/man1
+- @cp libopenjpeg.3.gz ${mandir}/man3
++ @cp image_to_j2k.1.gz j2k_to_image.1.gz j2k_dump.1.gz $(DESTDIR)${mandir}/man1
++ @cp libopenjpeg.3.gz $(DESTDIR)${mandir}/man3
+ @$(RM) *\.gz
+ if with_libjpwl
+- @(cd ${mandir}/man1 && \
++ @(cd $(DESTDIR)${mandir}/man1 && \
+ $(LN_S) image_to_j2k.1.gz JPWL_image_to_j2k.1.gz && \
+ $(LN_S) j2k_to_image.1.gz JPWL_j2k_to_image.1.gz)
+ @(cd ${mandir}/man3 && $(LN_S) libopenjpeg.3.gz JPWL_libopenjpeg.3.gz)
+ endif
+- @$(INSTALL) -m 644 ../LICENSE ../CHANGES $(doc_dir)
++ @$(INSTALL) -m 644 ../LICENSE ../CHANGES $(DESTDIR)$(doc_dir)
+
+ uninstall-hook:
+- @(cd ${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image* && \
++ @(cd $(DESTDIR)${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image* && \
+ $(RM) image_to_j2k* j2k_to_image* j2k_dump* )
+- @(cd ${mandir}/man3 && $(RM) JPWL_libopenjpeg* && \
++ @(cd $(DESTDIR)${mandir}/man3 && $(RM) JPWL_libopenjpeg* && \
+ $(RM) libopenjpeg* )
+- @(cd $(doc_dir) && $(RM) * )
+- @rmdir $(doc_dir)
++ @(cd $(DESTDIR)$(doc_dir) && $(RM) * )
++ @rmdir $(DESTDIR)$(doc_dir)
+diff -up openjpeg_v1_4_sources_r697/Makefile.am.autoconf_DESTDIR openjpeg_v1_4_sources_r697/Makefile.am
+--- openjpeg_v1_4_sources_r697/Makefile.am.autoconf_DESTDIR 2011-01-02 12:14:55.000000000 -0600
++++ openjpeg_v1_4_sources_r697/Makefile.am 2011-01-12 12:15:37.006321242 -0600
+@@ -9,7 +9,7 @@ clean-local:
+
+ distclean-local: clean-local
+
+-pkgconf_dir = /usr/lib/pkgconfig
++pkgconf_dir = $(libdir)/pkgconfig
+
+ install-data-hook:
+ @echo ""
+@@ -17,12 +17,12 @@ install-data-hook:
+ cat $$f/.report.txt ; \
+ done
+ @echo ""
+- @echo "Installing: libopenjpeg1.pc $(pkgconf_dir)"
++ @echo "Installing: libopenjpeg1.pc $(DESTDIR)$(pkgconf_dir)"
+ @echo ""
+- @$(INSTALL) -d $(pkgconf_dir)
+- @cp libopenjpeg.pc $(pkgconf_dir)/libopenjpeg1.pc
+- @(cd $(pkgconf_dir) && $(RM) libopenjpeg.pc && \
++ @$(INSTALL) -d $(DESTDIR)$(pkgconf_dir)
++ @cp libopenjpeg.pc $(DESTDIR)$(pkgconf_dir)/libopenjpeg1.pc
++ @(cd $(DESTDIR)$(pkgconf_dir) && $(RM) libopenjpeg.pc && \
+ $(LN_S) libopenjpeg1.pc libopenjpeg.pc)
+
+ uninstall-hook:
+- @(cd $(pkgconf_dir) && $(RM) libopenjpeg.pc libopenjpeg1.pc)
++ @(cd $(DESTDIR)$(pkgconf_dir) && $(RM) libopenjpeg.pc libopenjpeg1.pc)
diff --git a/extra/openmpi/PKGBUILD b/extra/openmpi/PKGBUILD
new file mode 100644
index 000000000..d86167dda
--- /dev/null
+++ b/extra/openmpi/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 143088 2011-11-22 17:32:55Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+pkgname=openmpi
+pkgver=1.5.4
+pkgrel=2
+pkgdesc="High performance message passing library (MPI)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.open-mpi.org"
+license=('custom')
+depends=('gcc' 'gcc-fortran' 'openssh' 'valgrind' 'libtool' 'hwloc')
+[ "$CARCH" = "mips64el" ] && \
+depends=('gcc-fortran' 'openssh' 'libtool' 'hwloc')
+makedepends=('inetutils')
+options=(!libtool)
+source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('81f7736a83b2134ba20c2e5c380b4d267cfd9d9c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+# Disable valgrind
+ if [ "$CARCH" = "mips64el" ]; then
+ ./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 \
+ --without-valgrind \
+ --enable-memchecker \
+ --enable-debug \
+ --enable-pretty-print-stacktrace \
+ --without-slurm \
+ --with-hwloc=external \
+ --with-libltdl=/usr \
+ FC=/usr/bin/gfortran \
+ LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
+ else
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/${pkgname} \
+ --mandir=/usr/share/man \
+ --enable-mpi-f90 \
+ --libdir=/usr/lib/${pkgname} \
+ --with-threads=posix \
+ --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="$LDFLAGS -Wl,-z,noexecstack"
+ fi
+
+ 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..0ecce3008
--- /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' 'mips64el')
+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..347c5d823
--- /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 'mips64el')
+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..893d507a8
--- /dev/null
+++ b/extra/opensp/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 123744 2011-05-12 20:50:20Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=opensp
+pkgver=1.5.2
+pkgrel=2
+pkgdesc="A library and a set of tools for validating, parsing and manipulating SGML and XML documents"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}"/OpenSP-$pkgver
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/oprofile/PKGBUILD b/extra/oprofile/PKGBUILD
new file mode 100644
index 000000000..d069bf092
--- /dev/null
+++ b/extra/oprofile/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 141099 2011-10-23 23:25:40Z eric $
+# Maintainer : Aaron Griffin <aaron@archlinux.org>
+
+pkgname=oprofile
+pkgver=0.9.7
+pkgrel=3
+pkgdesc="A system-wide profiler for Linux systems, capable of profiling all running code at low overhead"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://oprofile.sourceforge.net"
+license=('GPL')
+depends=('popt' 'gcc-libs' 'zlib' 'sh')
+makedepends=('qt')
+optdepends=('qt: for oprof_start gui')
+options=('!libtool')
+install=oprofile.install
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('8b5d1d9b65f84420bcc3234777ad3be3')
+sha1sums=('f5befd8aafc77d449e955f0585216f5d7b967de2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-kernel-support --with-x --enable-gui=qt4
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -d "$pkgdir/var/lib/oprofile"
+
+# installing development libraries - FS#20089
+ install -m644 libop/op_*.h libregex/op_*.h libutil/op_*.h libutil++/op_*.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/oprofile/oprofile.install b/extra/oprofile/oprofile.install
new file mode 100644
index 000000000..5cd3e7e22
--- /dev/null
+++ b/extra/oprofile/oprofile.install
@@ -0,0 +1,21 @@
+post_install(){
+ groupadd -g 492 oprofile &>/dev/null
+ useradd -u 492 -g oprofile -d /var/lib/oprofile -s /bin/false oprofile &>/dev/null
+}
+
+post_upgrade(){
+ getent group oprofile >/dev/null 2>&1 || groupadd -g 492 oprofile &>/dev/null
+ getent passwd oprofile >/dev/null 2>&1 || useradd -u 492 -g oprofile -d /var/lib/oprofile -s /bin/false oprofile &>/dev/null
+ if [ "$(vercmp $2 0.9.7-2)" -lt 0 ] ; then
+ usermod -d /var/lib/oprofile oprofile
+ fi
+}
+
+post_remove(){
+ if getent passwd oprofile >/dev/null 2>&1; then
+ userdel oprofile
+ fi
+ if getent group oprofile >/dev/null 2>&1; then
+ groupdel oprofile
+ fi
+}
diff --git a/extra/orage/PKGBUILD b/extra/orage/PKGBUILD
new file mode 100644
index 000000000..dd599f8d4
--- /dev/null
+++ b/extra/orage/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 138200 2011-09-18 14:48:57Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=orage
+pkgver=4.8.2
+pkgrel=1
+pkgdesc="A simple calendar application with reminders for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/projects/orage/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libical' 'popt' 'libnotify>=0.7.1' 'hicolor-icon-theme' 'desktop-file-utils')
+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=('950397c716c31e1aa5db83d35ddf6047')
+
+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/fix-infinite-reminder.patch b/extra/orage/fix-infinite-reminder.patch
new file mode 100644
index 000000000..1dedbe902
--- /dev/null
+++ b/extra/orage/fix-infinite-reminder.patch
@@ -0,0 +1,122 @@
+From 52a58e63cb039338d3365c83cb13e20acefba083 Mon Sep 17 00:00:00 2001
+From: Juha Kautto <juha@xfce.org>
+Date: Wed, 01 Jun 2011 12:26:22 +0000
+Subject: fixed Bug 7552 - Orage reminder duplicates infinitely
+
+When using default timezone floating, reminders repeated and never ended.
+Fixed this and prevented using floating as the default value. Using UTC
+instead.
+diff --git a/src/ical-code.c b/src/ical-code.c
+index c080bf2..e726103 100644
+--- a/src/ical-code.c
++++ b/src/ical-code.c
+@@ -233,7 +233,7 @@ gboolean xfical_set_local_timezone(gboolean testing)
+ }
+
+ /*
+- * Basically standard says that timezone should be added alwasy
++ * Basically standard says that timezone should be added always
+ * when it is used, but in real life these are not needed since
+ * all systems have their own timezone data, so let's save time
+ * and space and comment this out.
+@@ -2587,7 +2587,7 @@ static alarm_struct *process_alarm_trigger(icalcomponent *c
+ rel = icalparameter_get_related(trg_related_par);
+ else
+ rel = ICAL_RELATED_START;
+- per = ic_get_period(c, FALSE);
++ per = ic_get_period(c, TRUE);
+ next_alarm_time = count_alarm_time(per, cur_time, trg.duration, rel);
+ alarm_start_diff = icaltime_subtract(per.stime, next_alarm_time);
+ /* we only have ctime for TODOs and only if todo has been completed.
+diff --git a/src/parameters.c b/src/parameters.c
+index 38407da..462fce2 100644
+--- a/src/parameters.c
++++ b/src/parameters.c
+@@ -440,7 +440,7 @@ static void timezone_button_clicked(GtkButton *button, gpointer user_data)
+
+ if (!ORAGE_STR_EXISTS(g_par.local_timezone)) {
+ g_warning("timezone pressed: local timezone missing");
+- g_par.local_timezone = g_strdup("floating");
++ g_par.local_timezone = g_strdup("UTC");
+ }
+ if (orage_timezone_button_clicked(button, GTK_WINDOW(itf->orage_dialog)
+ , &g_par.local_timezone, TRUE, g_par.local_timezone))
+@@ -501,16 +501,12 @@ static void create_parameter_dialog_main_setup_tab(Itf *dialog)
+ , dialog->timezone_frame, FALSE, FALSE, 5);
+
+ dialog->timezone_button = gtk_button_new();
+- if (g_par.local_timezone) {
+- gtk_button_set_label(GTK_BUTTON(dialog->timezone_button)
+- , _(g_par.local_timezone));
+- }
+- else { /* we should never arrive here */
+- g_warning("parameters: timezone not set.");
+- g_par.local_timezone = g_strdup("floating");
+- gtk_button_set_label(GTK_BUTTON(dialog->timezone_button)
+- , _("floating"));
++ if (!ORAGE_STR_EXISTS(g_par.local_timezone)) {
++ g_warning("parameters: local timezone missing");
++ g_par.local_timezone = g_strdup("UTC");
+ }
++ gtk_button_set_label(GTK_BUTTON(dialog->timezone_button)
++ , _(g_par.local_timezone));
+ gtk_box_pack_start(GTK_BOX(vbox)
+ , dialog->timezone_button, FALSE, FALSE, 5);
+ gtk_tooltips_set_tip(dialog->Tooltips, dialog->timezone_button
+@@ -1117,7 +1113,7 @@ static void init_default_timezone(void)
+ if (ORAGE_STR_EXISTS(g_par.local_timezone))
+ g_message(_("Default timezone set to %s."), g_par.local_timezone);
+ else {
+- g_par.local_timezone = g_strdup("floating");
++ g_par.local_timezone = g_strdup("UTC");
+ g_message(_("Default timezone not found, please, set it manually."));
+ }
+ }
+diff --git a/src/timezone_selection.c b/src/timezone_selection.c
+index 1bcb5be..518b83d 100644
+--- a/src/timezone_selection.c
++++ b/src/timezone_selection.c
+@@ -307,16 +307,31 @@ gboolean orage_timezone_button_clicked(GtkButton *button, GtkWindow *parent
+ tree = tz_button_create_view(details, store);
+
+ /* show it */
+- if (check_ical)
+- window = gtk_dialog_new_with_buttons(_("Pick timezone")
+- , parent
+- , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
+- , _("Change mode"), 1
+- , _("UTC"), 2
+- , _("floating"), 3
+- , _(local_tz), 4
+- , GTK_STOCK_OK, GTK_RESPONSE_ACCEPT
+- , NULL);
++ if (check_ical) {
++ if (local_tz == *tz)
++ /* We are actually setting the g_par parameter. In other words
++ we are setting the global default timezone for Orage. This is
++ done very seldom and we do not want to allow "floating" here.
++ This test is ugly, but it is not worth an extra parameter. */
++ window = gtk_dialog_new_with_buttons(_("Pick timezone")
++ , parent
++ , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
++ , _("Change mode"), 1
++ , _("UTC"), 2
++ , _(local_tz), 4
++ , GTK_STOCK_OK, GTK_RESPONSE_ACCEPT
++ , NULL);
++ else /* this is normal appointment */
++ window = gtk_dialog_new_with_buttons(_("Pick timezone")
++ , parent
++ , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
++ , _("Change mode"), 1
++ , _("UTC"), 2
++ , _("floating"), 3
++ , _(local_tz), 4
++ , GTK_STOCK_OK, GTK_RESPONSE_ACCEPT
++ , NULL);
++ }
+ else
+ window = gtk_dialog_new_with_buttons(_("Pick timezone")
+ , parent
+--
+cgit
diff --git a/extra/orage/orage.install b/extra/orage/orage.install
new file mode 100644
index 000000000..bce670aff
--- /dev/null
+++ b/extra/orage/orage.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/orbit2/PKGBUILD b/extra/orbit2/PKGBUILD
new file mode 100644
index 000000000..08e9ce2db
--- /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.1
+pkgdesc="Thin/fast CORBA ORB"
+arch=('i686' 'x86_64' 'mips64el')
+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..902cf3a98
--- /dev/null
+++ b/extra/orc/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 121322 2011-04-30 15:14:10Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=orc
+pkgver=0.4.14
+pkgrel=1
+pkgdesc="The Oild Runtime Compiler"
+arch=('i686' 'x86_64' 'mips64el')
+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=('6b3ff209e9763ebe40e152538884bd71')
+
+build () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --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/ortp/PKGBUILD b/extra/ortp/PKGBUILD
new file mode 100644
index 000000000..c36da3a25
--- /dev/null
+++ b/extra/ortp/PKGBUILD
@@ -0,0 +1,28 @@
+# $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' 'mips64el')
+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}
+ # Don't turn warnings into errors, it's bad.
+ ./configure --prefix=/usr --disable-strict
+ 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..6d2401833
--- /dev/null
+++ b/extra/ossp/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 132457 2011-07-24 17:19:01Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jonathan Liu <net147@gmail.com>
+
+pkgname=ossp
+pkgver=1.3.2
+pkgrel=11
+pkgdesc="Emulate OSS device using CUSE"
+arch=(i686 x86_64 'mips64el')
+url="http://sourceforge.net/projects/osspd"
+license=(GPL2)
+depends=('fuse>=2.8.0')
+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)
+md5sums=('ee2d8c894de2fa4eb3291804fbc7df45'
+ '0c02208ce1dfe74b6e9840f3600678cc'
+ '5a5a3db1bb3c98d48d4794613cf12ef0')
+
+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"
+}
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..c5fabf855
--- /dev/null
+++ b/extra/ossp/osspd.rc.d
@@ -0,0 +1,52 @@
+#!/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
+
+PID=`pidof -o %PPID /usr/sbin/osspd`
+case "$1" in
+ start)
+ stat_busy "Starting OSS userspace bridge"
+ if [ -z "$PID" ]; then
+ /sbin/modprobe cuse &>/dev/null
+ /sbin/udevadm settle --quiet
+ /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..e1106a77e
--- /dev/null
+++ b/extra/oxine/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137856 2011-09-12 03:56:43Z eric $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Rouslan Solomakhin <rouslan@localnet.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=oxine
+pkgver=0.7.1
+pkgrel=4
+pkgdesc="A lightweight, purely osd based xine frontend for set-top boxes and home entertainment systems"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://oxine.sourceforge.net/"
+license=('GPL')
+depends=('xine-lib' 'libexif' 'eject' 'libcdio' 'curl' 'libxtst')
+source=(http://downloads.sourceforge.net/sourceforge/oxine/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2a2d05ee21892624e35cf539e532c0dd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|#include <curl/types.h>||' configure src/download.c
+ ./configure --prefix=/usr --disable-hal --without-jsw --disable-extractor \
+ --without-imagemagick --disable-gdkpixbuf --disable-weather
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/oxygen-gtk/PKGBUILD b/extra/oxygen-gtk/PKGBUILD
new file mode 100644
index 000000000..d6af29ab2
--- /dev/null
+++ b/extra/oxygen-gtk/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142925 2011-11-18 11:11:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: birdflesh <antkoul at gmail dot com>
+
+pkgname=oxygen-gtk
+pkgver=1.1.5
+pkgrel=1
+pkgdesc="Port of the default KDE widget theme (Oxygen) to GTK"
+arch=('i686' 'x86_64' 'mips64el')
+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=('d20902809e634c820bebdfea49de19a1')
+
+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/p11-kit/PKGBUILD b/extra/p11-kit/PKGBUILD
new file mode 100644
index 000000000..af7957d73
--- /dev/null
+++ b/extra/p11-kit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142993 2011-11-20 08:43:27Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=p11-kit
+pkgver=0.9
+pkgrel=1
+pkgdesc="Library to work with PKCS#11 modules"
+arch=(i686 x86_64 mips64el)
+url="http://p11-glue.freedesktop.org"
+license=('BSD')
+depends=(glibc)
+options=(!libtool)
+source=($url/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('029aa2a3a103e7eb81b4aa731b93539e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-module-path=/usr/lib/pkcs11
+ 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/pam_ldap/PKGBUILD b/extra/pam_ldap/PKGBUILD
new file mode 100644
index 000000000..8b1218e70
--- /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 'mips64el')
+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..5ffe03a44
--- /dev/null
+++ b/extra/pango-perl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143689 2011-11-28 12:08:52Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pango-perl
+pkgver=1.223
+pkgrel=1
+pkgdesc="Perl bindings for Pango"
+arch=(i686 x86_64 'mips64el')
+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/Pango-${pkgver}.tar.gz)
+md5sums=('628a6de54f47b6791c6b45edfb835215')
+
+build() {
+ cd "${srcdir}/Pango-${pkgver}"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/Pango-${pkgver}"
+ make test
+}
+
+package() {
+ cd "${srcdir}/Pango-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/pango/PKGBUILD b/extra/pango/PKGBUILD
new file mode 100644
index 000000000..f4200f93f
--- /dev/null
+++ b/extra/pango/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 139410 2011-10-01 19:00:42Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pango
+pkgver=1.29.4
+pkgrel=1.1
+pkgdesc="A library for layout and rendering of text"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('glib2' 'cairo' 'libxft' 'libthai' 'freetype2')
+makedepends=('gobject-introspection' 'libxt' 'gtk-doc')
+options=('!libtool' '!emptydirs')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.29/${pkgname}-${pkgver}.tar.xz)
+url="http://www.pango.org/"
+sha256sums=('7ae8d1953e6098a2706df58c1f84555c06ace7006bb34c0e54ab9acd98c1127f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./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..ffa00e5d3
--- /dev/null
+++ b/extra/pangomm/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 141215 2011-10-26 14:54:11Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=pangomm
+pkgname=('pangomm' 'pangomm-docs')
+pkgver=2.28.4
+pkgrel=1
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+makedepends=('pango' 'glibmm' 'glibmm-docs' 'cairomm' 'pkgconfig')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.xz)
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+sha256sums=('778dcb66a793cbfd52a9f92ee5a71b888c3603a913fc1ddc48a30204de6d6c82')
+
+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/extra/paprefs/PKGBUILD b/extra/paprefs/PKGBUILD
new file mode 100644
index 000000000..998eefa60
--- /dev/null
+++ b/extra/paprefs/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142425 2011-11-09 11:00:22Z 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.10
+pkgrel=2
+pkgdesc="A simple GTK-based configuration dialog for PulseAudio"
+arch=(i686 x86_64 'mips64el')
+url="http://0pointer.de/lennart/projects/paprefs"
+license=(GPL)
+depends=(gconfmm gnome-icon-theme libglademm libsigc++ pulseaudio)
+makedepends=(intltool)
+source=(http://freedesktop.org/software/pulseaudio/$pkgname/$pkgname-$pkgver.tar.xz
+ paprefs.desktop do-not-require-recompile.patch)
+sha256sums=('261c5a67543f2d0c019894fb933949f6ee7c5e181808e1e9565f0784961eabb0'
+ '5cdd6cffb08d611451f01b34b08b316fb14cbd14b283bf5d180b8dcde11fa46b'
+ '00fd4b14e81d90ac6d74e6eb689fa4e20e1a2fbc2eefbb440a11b1373e115a9d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/do-not-require-recompile.patch"
+ ./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/do-not-require-recompile.patch b/extra/paprefs/do-not-require-recompile.patch
new file mode 100644
index 000000000..66d110b3e
--- /dev/null
+++ b/extra/paprefs/do-not-require-recompile.patch
@@ -0,0 +1,33 @@
+From 4fcee37cb92c689b43a0d8fc1d8e6b2764834cbf Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin@mageia.org>
+Date: Sun, 6 Nov 2011 14:31:27 +0000
+Subject: [PATCH] Do not require a recompile for each new PA version in order to detect the modules.
+
+---
+ src/paprefs.cc | 9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/paprefs.cc b/src/paprefs.cc
+index 21fdc95..919b15c 100644
+--- a/src/paprefs.cc
++++ b/src/paprefs.cc
+@@ -637,9 +637,14 @@ void MainWindow::readFromGConf() {
+ }
+
+ gchar * MainWindow::modulePath(const gchar *name) {
+- gchar *path, *pulsedir, *c;
++ gchar *path, *pulsedir, *c, **versions;
+
+- pulsedir = g_strdup_printf ("pulse-%d.%d", PA_MAJOR, PA_MINOR);
++ versions = g_strsplit(pa_get_library_version(), ".", 3);
++ if (versions[0] && versions[1])
++ pulsedir = g_strdup_printf ("pulse-%s.%s", versions[0], versions[1]);
++ else
++ pulsedir = g_strdup_printf ("pulse-%d.%d", PA_MAJOR, PA_MINOR);
++ g_strfreev(versions);
+
+ path = g_build_filename (MODLIBDIR, pulsedir, "modules", name, NULL);
+ g_free (pulsedir);
+--
+1.6.3.3
+
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..9b5699e24
--- /dev/null
+++ b/extra/parted/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143925 2011-11-30 21:06:41Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=parted
+pkgver=3.0
+pkgrel=4
+pkgdesc="A program for creating, destroying, resizing, checking and copying partitions"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+url="http://www.gnu.org/software/parted/parted.html"
+depends=('device-mapper' 'e2fsprogs')
+makedepends=('pkg-config')
+options=('!libtool')
+install=parted.install
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz"
+ 'linux.c.patch')
+md5sums=('c415e5c97f86b5ff65a2d925e5a3feb7'
+ '08c942e212424e238271217f52c59706')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # FS#25307
+ patch -Np1 -i ${srcdir}/linux.c.patch
+
+ ./configure --prefix=/usr \
+ --disable-debug \
+ --disable-rpath
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/parted/linux.c.patch b/extra/parted/linux.c.patch
new file mode 100644
index 000000000..c9feea142
--- /dev/null
+++ b/extra/parted/linux.c.patch
@@ -0,0 +1,25 @@
+--- a/libparted/arch/linux.c 2011-05-27 14:52:37.000000000 +0200
++++ b/libparted/arch/linux.c 2011-07-29 20:25:38.000000000 +0200
+@@ -601,17 +601,17 @@
+ static int kver = -1;
+
+ struct utsname uts;
+- int major;
+- int minor;
+- int teeny;
++ int major = 0;
++ int minor = 0;
++ int teeny = 0;
+
+ if (kver != -1)
+ return kver;
+
+ if (uname (&uts))
+ return kver = 0;
+- if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3)
+- return kver = 0;
++ int n = sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny);
++ assert (n == 2 || n == 3);
+
+ return kver = KERNEL_VERSION (major, minor, teeny);
+ }
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/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..d9fdbbff9
--- /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' 'mips64el')
+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..0cae59a3f
--- /dev/null
+++ b/extra/pavucontrol/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 139414 2011-10-01 19:00:51Z ibiru $
+# 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=1.0
+pkgrel=1
+pkgdesc="A GTK volume control tool for PulseAudio"
+arch=(i686 x86_64 'mips64el')
+url="http://0pointer.de/lennart/projects/pavucontrol"
+license=(GPL)
+depends=(gnome-icon-theme libcanberra-pulse gtkmm3 libsigc++)
+makedepends=(intltool lynx)
+source=(http://freedesktop.org/software/pulseaudio/$pkgname/$pkgname-$pkgver.tar.xz
+ pavucontrol.desktop)
+sha256sums=('3dbe2865b6e3a195a8951967d9234f62cd254c30b08bdea1ecf8997b58f68cde'
+ '5eab8c78e92c39a71ac1ca4c4464a8915d3a29d91e1703fd51c24652b747eebe')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --enable-gtk3
+ 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/pdksh/PKGBUILD b/extra/pdksh/PKGBUILD
new file mode 100644
index 000000000..6e73d7e3b
--- /dev/null
+++ b/extra/pdksh/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 128476 2011-06-24 03:30:58Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=pdksh
+pkgver=5.2.14
+pkgrel=6
+pkgdesc="A public domain clone of the AT&T Korn shell"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.cs.mun.ca/~michael/pdksh/"
+license=('custom')
+depends=('glibc')
+install=pdksh.install
+#ftp://ftp.cs.mun.ca/pub/$pkgname/$pkgname-$pkgver.tar.gz
+source=(http://www.cs.mun.ca/~michael/pdksh/files/$pkgname-$pkgver.tar.gz pdksh-5.2.14.patch usr_ksh.sh)
+md5sums=('871106b3bd937e1afba9f2ef7c43aef3' 'f11d1e711627d21a547c09e344e30dd3'\
+ '56084a657ecafd5dd0813a6056036712')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i ../$pkgname-$pkgver.patch
+ ./configure --prefix=/ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir" mandir="$pkgdir/usr/share/man/man1" install
+ install -D -m 755 "${srcdir}/usr_ksh.sh" "${pkgdir}/usr/bin/ksh"
+ install -D -m644 LEGAL "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
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..17463a17e
--- /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..72d354b9d
--- /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' 'mips64el')
+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..f59ea8a3a
--- /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 'mips64el')
+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..589857269
--- /dev/null
+++ b/extra/pekwm/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 131942 2011-07-18 00:09:21Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Eddie Lozon <almostlucky@attbi.com>
+
+pkgname=pekwm
+pkgver=0.1.13
+pkgrel=1
+pkgdesc="A small, fast, functional, and flexible window manager"
+arch=(i686 x86_64 'mips64el')
+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.bz2
+pekwm.desktop libpng-1.4.patch)
+md5sums=('51a3f9030817df0304cc1da5110e493a' '5a78fc6653fbb0b7282ecf7f1f81e2c5'
+ '075bf1b9d32bf94780329499e4fa40e3')
+
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/xsessions/${pkgname}.desktop
+# ${pkgdir}/etc/X11/sessions/${pkgname}.desktop
+}
+# vim: ts=2 sw=2 et ft=sh
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..196c93a9c
--- /dev/null
+++ b/extra/perl-alien-sdl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124820 2011-05-24 15:44:07Z 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.426
+pkgrel=1
+pkgdesc="Building, finding and using SDL binaries"
+arch=(i686 x86_64 'mips64el')
+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=('ab5e1167934418f4a7b3285a9d05c89b')
+
+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..39a4cf8fa
--- /dev/null
+++ b/extra/perl-bit-vector/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 125243 2011-05-25 19:15:01Z foutrelis $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: K. Piche <kpiche@rogers.com>
+
+pkgname=perl-bit-vector
+_cpanname=Bit-Vector
+pkgver=7.1
+pkgrel=3
+pkgdesc='Efficient bit vector, set of integers and "big int" math library'
+arch=(i686 x86_64 'mips64el')
+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..04eb676bf
--- /dev/null
+++ b/extra/perl-compress-bzip2/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 127799 2011-06-18 15:54:27Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=perl-compress-bzip2
+_realname=Compress-Bzip2
+pkgver=2.09
+pkgrel=3
+pkgdesc="Interface to Bzip2 compression library"
+arch=(i686 x86_64 'mips64el')
+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..9b055e50c
--- /dev/null
+++ b/extra/perl-crypt-ssleay/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 125246 2011-05-25 19:15:29Z foutrelis $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-crypt-ssleay
+pkgver=0.58
+pkgrel=3
+pkgdesc="OpenSSL glue that provides LWP https support"
+arch=('i686' 'x86_64' 'mips64el')
+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..11e53a1fe
--- /dev/null
+++ b/extra/perl-dbd-mysql/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 143774 2011-11-29 02:55:27Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=perl-dbd-mysql
+_realname=DBD-mysql
+pkgver=4.020
+pkgrel=1
+pkgdesc="Perl/CPAN DBD::mysql module for interacting with MySQL via DBD"
+arch=(i686 x86_64 'mips64el')
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('libmysqlclient' 'perl-dbi' 'perl>=5.14.0')
+makedepends=('mysql')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/${_realname}-${pkgver}.tar.gz)
+md5sums=('a2bf8808bbd45298e84dde06afbd58e9')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor --testsocket=/tmp/socket.mysql
+ make
+}
+
+check() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ mkdir -p /tmp/mysql_test
+ mysql_install_db \
+ --basedir=/usr \
+ --datadir=/tmp/mysql_test
+ mysqld -P 17999 \
+ --socket=/tmp/socket.mysql \
+ --datadir=/tmp/mysql_test &
+ sleep 10
+ DAEMON_PORT=$!
+ make test || true
+ kill -9 $DAEMON_PORT
+}
+
+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..b09ab358f
--- /dev/null
+++ b/extra/perl-dbd-sqlite/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125249 2011-05-25 19:15:53Z foutrelis $
+# Contributor: Tom Killian <tomk@runbox.com>
+# Contributor: francois at archlinux dot org
+
+pkgname=perl-dbd-sqlite
+_cpanname=DBD-SQLite
+pkgver=1.31
+pkgrel=2
+pkgdesc="Self-contained RDBMS in a DBI driver"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/${_cpanname}"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi>=1.61' 'sqlite3')
+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..71111f93a
--- /dev/null
+++ b/extra/perl-dbi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 124915 2011-05-25 07:47:08Z foutrelis $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Matt Thompson <mattt@defunct.ca>
+
+pkgname=perl-dbi
+_realname=DBI
+pkgver=1.616
+pkgrel=2
+pkgdesc="Database independent interface for Perl"
+arch=(i686 x86_64 'mips64el')
+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..93d9a56da
--- /dev/null
+++ b/extra/perl-digest-nilsimsa/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 125252 2011-05-25 19:16:38Z foutrelis $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-digest-nilsimsa
+_realname=Digest-Nilsimsa
+pkgver=0.06
+pkgrel=7
+pkgdesc="Perl version of Nilsimsa code."
+arch=('i686' 'x86_64' 'mips64el')
+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..f6218022a
--- /dev/null
+++ b/extra/perl-digest-sha1/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 125255 2011-05-25 19:17:02Z foutrelis $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-digest-sha1
+_realname=Digest-SHA1
+pkgver=2.13
+pkgrel=2
+pkgdesc="Perl interface to the SHA-1 Algorithm"
+arch=(i686 x86_64 'mips64el')
+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..de05e0f6d
--- /dev/null
+++ b/extra/perl-event/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 140115 2011-10-07 08:31:40Z eric $
+# 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.20
+pkgrel=1
+pkgdesc="Framework for GUI events"
+arch=('i686' 'x86_64' 'mips64el')
+license=('PerlArtistic' 'GPL')
+url="http://search.cpan.org/dist/${_srcname}/"
+depends=('perl')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/J/JP/JPRIT/${_srcname}-${pkgver}.tar.gz)
+md5sums=('bdbdf6c1b235c3e13c25f3b0491c5134')
+
+build() {
+ cd "${srcdir}/${_srcname}-${pkgver}"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/${_srcname}-${pkgver}"
+ 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..dc2ce8ea5
--- /dev/null
+++ b/extra/perl-fcgi/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143929 2011-11-30 21:23:50Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-fcgi
+pkgver=0.74
+pkgrel=2
+pkgdesc="Fast CGI"
+arch=('i686' 'x86_64' 'mips64el')
+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=('462a77a0072480fea791a4d3095eb486')
+
+build() {
+ cd "${srcdir}/FCGI-${pkgver}"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "${srcdir}/FCGI-${pkgver}"
+ make test
+}
+
+package() {
+ cd "${srcdir}/FCGI-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/perl-html-parser/PKGBUILD b/extra/perl-html-parser/PKGBUILD
new file mode 100644
index 000000000..6d43f820d
--- /dev/null
+++ b/extra/perl-html-parser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 125261 2011-05-25 19:17:47Z foutrelis $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+# Contributor: Firmicus <francois.archlinux.org>
+
+pkgname=perl-html-parser
+_realname=HTML-Parser
+pkgver=3.68
+pkgrel=2
+pkgdesc="Perl HTML parser class"
+arch=('i686' 'x86_64' 'mips64el')
+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..e7061cdba
--- /dev/null
+++ b/extra/perl-libintl-perl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 125264 2011-05-25 19:18:10Z foutrelis $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=perl-libintl-perl
+_realname=libintl-perl
+pkgver=1.20
+pkgrel=3
+pkgdesc="Perl Module: Localization support"
+arch=('i686' 'x86_64' 'mips64el')
+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-list-moreutils/PKGBUILD b/extra/perl-list-moreutils/PKGBUILD
new file mode 100644
index 000000000..25df44f99
--- /dev/null
+++ b/extra/perl-list-moreutils/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 145017 2011-12-14 17:49:12Z andrea $
+# Maintainer : Justin "juster" Davis <jrcd83@gmail.com>
+# Generator : pbjam 0.01
+
+pkgname=perl-list-moreutils
+pkgver=0.33
+pkgrel=1
+pkgdesc="Provide the stuff missing in List::Util"
+arch=(i686 x86_64)
+license=(PerlArtistic GPL)
+options=(!emptydirs)
+depends=('perl>=5.5.30')
+url=http://search.cpan.org/dist/List-MoreUtils
+source=("http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/List-MoreUtils-${pkgver}.tar.gz")
+md5sums=(8a33c84028cc2ff3e92c92434b326c0f)
+sha512sums=(e758b995438c5c5322317aab3602e89b9f683c42d403a0ac97ccd8cc20d0db1a75caefc22f34ad088314867c0bdd9c2b8264e8f2f6a43eab1421aa8c482233b5)
+_distdir="${srcdir}/List-MoreUtils-${pkgver}"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ cd "$_distdir"
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/extra/perl-locale-gettext/PKGBUILD b/extra/perl-locale-gettext/PKGBUILD
new file mode 100644
index 000000000..a609c7a9f
--- /dev/null
+++ b/extra/perl-locale-gettext/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 143936 2011-11-30 21:34:33Z giovanni $
+# 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=8
+pkgdesc="Permits access from Perl to the gettext() family of functions"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('gettext' 'perl')
+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
+}
+
+check() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ 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..b676b2524
--- /dev/null
+++ b/extra/perl-net-dns/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 125273 2011-05-25 19:19:34Z foutrelis $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-net-dns
+_realname=Net-DNS
+pkgver=0.66
+pkgrel=4
+pkgdesc="Perl Module: Interface to the DNS resolver."
+arch=(i686 x86_64 'mips64el')
+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..679c3a8d9
--- /dev/null
+++ b/extra/perl-net-ssleay/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143942 2011-11-30 21:49:37Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-net-ssleay
+_cpanname=Net-SSLeay
+pkgver=1.42
+pkgrel=2
+pkgdesc="Perl extension for using OpenSSL"
+arch=('i686' 'x86_64' 'mips64el')
+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/M/MI/MIKEM/${_cpanname}-${pkgver}.tar.gz")
+md5sums=('3f9c9589495301c14bfc03097388ca4f')
+
+build() {
+ cd ${srcdir}/${_cpanname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL -- INSTALLDIRS=vendor
+ make
+}
+
+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
+
+ install -D -m644 README "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/perl-net-upnp/PKGBUILD b/extra/perl-net-upnp/PKGBUILD
new file mode 100644
index 000000000..40b1c769b
--- /dev/null
+++ b/extra/perl-net-upnp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143946 2011-11-30 21:55:00Z giovanni $
+# 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=4
+pkgdesc="Perl Module UPnP"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/Net-UPnP-${pkgver}"
+
+ 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..1008137cc
--- /dev/null
+++ b/extra/perl-netaddr-ip/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 143974 2011-12-01 07:52:54Z andrea $
+# Maintainer:
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgname=perl-netaddr-ip
+_realname=NetAddr-IP
+pkgver=4.058
+pkgrel=1
+pkgdesc="Perl module to manage IP addresses and subnets"
+arch=(i686 x86_64 'mips64el')
+license=('PerlArtistic' 'GPL')
+depends=('perl')
+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=('8829958dd84a8b36e3cd10347564739d')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # 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..ba580e6ee
--- /dev/null
+++ b/extra/perl-sdl/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 127524 2011-06-15 21:01:17Z remy $
+# 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=3
+pkgdesc="Simple DirectMedia Layer for Perl"
+arch=(i686 x86_64 'mips64el')
+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')
+
+build() {
+ cd "$srcdir/SDL-$pkgver"
+ # Perl selects the proper CFLAGS set for binary modules
+ unset CFLAGS
+ # install module in vendor directories
+ perl Build.PL installdirs=vendor
+ perl Build
+}
+
+check() {
+ cd "$srcdir/SDL-$pkgver"
+ perl Build test || true
+}
+
+package() {
+ cd "$srcdir/SDL-$pkgver"
+ perl Build install destdir="$pkgdir"
+}
diff --git a/extra/perl-socket6/PKGBUILD b/extra/perl-socket6/PKGBUILD
new file mode 100644
index 000000000..be7ac34f0
--- /dev/null
+++ b/extra/perl-socket6/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Florian Pritz <bluewind@xinu.at>
+# Generator : CPANPLUS::Dist::Arch 1.18
+
+pkgname='perl-socket6'
+pkgver='0.23'
+pkgrel='1'
+pkgdesc="getaddrinfo/getnameinfo support module"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/Socket6'
+source=('http://search.cpan.org/CPAN/authors/id/U/UM/UMEMOTO/Socket6-0.23.tar.gz')
+md5sums=('2c02adb13c449d48d232bb704ddbd492')
+sha512sums=('39ced223ecdef89e6fa241031019bb5a73e63d2dfdaf3edb55bfea0cb81b91bea09f1cc26b2d15fa28d32227cc13cdb093c70f0ba346c9bdb523359de53d96f9')
+_distdir="${srcdir}/Socket6-0.23"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ cd "$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/extra/perl-template-toolkit/PKGBUILD b/extra/perl-template-toolkit/PKGBUILD
new file mode 100644
index 000000000..7e1d939cf
--- /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=4
+pkgdesc="Perl template processing system"
+arch=(i686 x86_64 'mips64el')
+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..8b05c1357
--- /dev/null
+++ b/extra/perl-term-readkey/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 125285 2011-05-25 19:22:27Z foutrelis $
+# 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=4
+pkgdesc="Provides simple control over terminal driver modes"
+arch=('i686' 'x86_64' 'mips64el')
+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..f53a5babb
--- /dev/null
+++ b/extra/perl-text-iconv/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125288 2011-05-25 19:22:57Z foutrelis $
+# Maintainer:
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-text-iconv
+_realname=Text-Iconv
+pkgver=1.7
+pkgrel=6
+pkgdesc="Interface to iconv codeset conversion"
+arch=('i686' 'x86_64' 'mips64el')
+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..9808e3bbd
--- /dev/null
+++ b/extra/perl-time-hires/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143950 2011-11-30 22:03:46Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: mezcal <fila at pruda dot com>
+
+pkgname=perl-time-hires
+pkgver=1.9724
+pkgrel=2
+pkgdesc="Perl module: high resolution time, sleep, and alarm"
+arch=('i686' 'x86_64' 'mips64el')
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/Time-HiRes/"
+depends=('perl')
+options=(!emptydirs)
+source=("http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Time-HiRes-${pkgver}.tar.gz")
+md5sums=('6467b001de9ba5c01785ebbb8ea247cb')
+
+build() {
+ cd "${srcdir}/Time-HiRes-${pkgver}"
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+check() {
+ cd "${srcdir}/Time-HiRes-${pkgver}"
+
+ make test
+}
+
+package() {
+ cd "${srcdir}/Time-HiRes-${pkgver}"
+
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/perl-tk/PKGBUILD b/extra/perl-tk/PKGBUILD
new file mode 100644
index 000000000..241d4705d
--- /dev/null
+++ b/extra/perl-tk/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 142966 2011-11-19 08:36:20Z eric $
+# 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.030
+pkgrel=1
+pkgdesc="A graphical user interface toolkit for Perl"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://search.cpan.org/dist/${_cpanname}"
+license=('PerlArtistic' 'GPL' 'custom')
+depends=('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=('13275e85f99ee467a86d9598a437abff')
+
+build() {
+ cd "$srcdir/${_cpanname}-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+#check() {
+# cd "$srcdir/${_cpanname}-$pkgver"
+# make test
+#}
+
+package() {
+ cd "$srcdir/${_cpanname}-$pkgver"
+ make install DESTDIR="$pkgdir"
+
+ # license
+ install -D -m644 pTk/license.terms \
+ "${pkgdir}/usr/share/licenses/${pkgname}/tk.license"
+ install -D -m644 pTk/Tix.license \
+ "${pkgdir}/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..d7589af10
--- /dev/null
+++ b/extra/perl-unicode-string/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 125294 2011-05-25 19:24:14Z foutrelis $
+# Maintainer: James Rayner <iphitus@gmail.com>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=perl-unicode-string
+_realname=Unicode-String
+pkgver=2.09
+pkgrel=6
+pkgdesc="String of Unicode characters for perl (UCS2/UTF16)"
+arch=('i686' 'x86_64' 'mips64el')
+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..b059f5723
--- /dev/null
+++ b/extra/perl-xml-parser/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 129383 2011-06-27 06:10:42Z andrea $
+# 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.41
+pkgrel=1
+pkgdesc="Expat-based XML parser module for perl"
+arch=('i686' 'x86_64' 'mips64el')
+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/T/TO/TODDR/${_realname}-${pkgver}.tar.gz")
+md5sums=('c320d2ffa459e6cdc6f9f59c1185855e')
+
+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..e772c2bbb
--- /dev/null
+++ b/extra/perl-yaml-syck/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 125297 2011-05-25 19:24:39Z foutrelis $
+# 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=2
+pkgdesc="Fast, lightweight YAML loader and dumper"
+arch=('i686' 'x86_64' 'mips64el')
+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..18c3813c5
--- /dev/null
+++ b/extra/phonon-gstreamer/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 122917 2011-05-07 10:12:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon-gstreamer
+pkgver=4.5.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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=('021cf7740208e7212b7ce91adb6a349b')
+
+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..941f3309b
--- /dev/null
+++ b/extra/phonon-vlc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 134014 2011-08-01 08:35:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon-vlc
+pkgver=0.4.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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}/phonon-backend-vlc-${pkgver}.tar.bz2")
+md5sums=('bdf188c0d3ad3458e7e39ecad06a500b')
+
+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/PKGBUILD b/extra/phonon/PKGBUILD
new file mode 100644
index 000000000..cc259d36f
--- /dev/null
+++ b/extra/phonon/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 141341 2011-10-29 16:03:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon
+pkgver=4.5.1
+pkgrel=2
+epoch=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://phonon.kde.org"
+license=('LGPL')
+pkgdesc="The multimedia framework for KDE"
+depends=('qt' 'phonon-backend' 'libpulse' 'libqzeitgeist')
+optdepends=('pulseaudio: PulseAudio support')
+makedepends=('cmake' 'automoc4' 'pulseaudio')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
+ 'libqzeitgeist08.patch')
+md5sums=('3df071b7f9996afcd67b18958955ecdd'
+ '99de3dc908277199b502e54613925ff6')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -Np1 -i "${srcdir}"/libqzeitgeist08.patch
+
+ 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
+}
diff --git a/extra/phonon/libqzeitgeist08.patch b/extra/phonon/libqzeitgeist08.patch
new file mode 100644
index 000000000..7a99101c4
--- /dev/null
+++ b/extra/phonon/libqzeitgeist08.patch
@@ -0,0 +1,150 @@
+--- phonon-4.5.1/phonon/mediaobject.cpp~ 2011-10-29 13:04:16.499027830 +0000
++++ phonon-4.5.1/phonon/mediaobject.cpp 2011-10-29 13:09:49.222080364 +0000
+@@ -38,12 +38,12 @@
+ #include <QtCore/QUrl>
+
+ #ifdef HAVE_QZEITGEIST
+-#include <QtZeitgeist/DataModel/Event>
+-#include <QtZeitgeist/Interpretation>
+-#include <QtZeitgeist/Log>
+-#include <QtZeitgeist/Manifestation>
+-#include <QtZeitgeist/QtZeitgeist>
+-#endif
++#include <QZeitgeist/DataModel/Event>
++#include <QZeitgeist/Interpretation>
++#include <QZeitgeist/Log>
++#include <QZeitgeist/Manifestation>
++#include <QZeitgeist/QZeitgeist>
++#endif
+
+ #include "phononnamespace_p.h"
+ #include "platform_p.h"
+@@ -330,7 +330,7 @@
+ const QString &subject_mimetype)
+ {
+ #ifdef HAVE_QZEITGEIST
+- QtZeitgeist::DataModel::Subject subject;
++ QZeitgeist::DataModel::Subject subject;
+ QString url = subject_uri.toString();
+ QString path = url.left(url.lastIndexOf(QLatin1Char('/')));
+ subject.setUri(url);
+@@ -340,20 +340,20 @@
+ subject.setOrigin(path);
+ subject.setMimeType(subject_mimetype);
+
+- QtZeitgeist::DataModel::SubjectList subjects;
++ QZeitgeist::DataModel::SubjectList subjects;
+ subjects << subject;
+
+- QtZeitgeist::DataModel::Event event;
++ QZeitgeist::DataModel::Event event;
+ event.setTimestamp(subject_timestamp);
+ event.setInterpretation(event_interpretation);
+ event.setManifestation(event_manifestation);
+ event.setActor(event_actor);
+ event.setSubjects(subjects);
+
+- QtZeitgeist::DataModel::EventList events;
++ QZeitgeist::DataModel::EventList events;
+ events << event;
+
+- QDBusPendingReply<QtZeitgeist::DataModel::EventIdList> reply =
++ QDBusPendingReply<QZeitgeist::DataModel::EventIdList> reply =
+ log->insertEvents(events);
+ #else
+ Q_UNUSED(event_interpretation)
+@@ -377,11 +377,11 @@
+ QString eventInterpretation;
+ switch (eventState) {
+ case PlayingState:
+- eventInterpretation = QtZeitgeist::Interpretation::Event::ZGAccessEvent;
++ eventInterpretation = QZeitgeist::Interpretation::Event::ZGAccessEvent;
+ break;
+ case ErrorState:
+ case StoppedState:
+- eventInterpretation = QtZeitgeist::Interpretation::Event::ZGLeaveEvent;
++ eventInterpretation = QZeitgeist::Interpretation::Event::ZGLeaveEvent;
+ break;
+ //These states are not signifigant events.
+ case LoadingState:
+@@ -409,10 +409,10 @@
+ QString mime;
+ QString subjectInterpretation;
+ if (q->hasVideo()) {
+- subjectInterpretation = QtZeitgeist::Interpretation::Subject::NFOVideo;
++ subjectInterpretation = QZeitgeist::Interpretation::Subject::NFOVideo;
+ mime = "video/raw";
+ } else {
+- subjectInterpretation = QtZeitgeist::Interpretation::Subject::NFOAudio;
++ subjectInterpretation = QZeitgeist::Interpretation::Subject::NFOAudio;
+ mime = "audio/raw";
+ }
+ pDebug() << "Zeitgeist mime type:" << mime;
+@@ -425,20 +425,20 @@
+ case MediaSource::Invalid:
+ return;
+ case MediaSource::Url:
+- subjectType = QtZeitgeist::Manifestation::Subject::NFORemoteDataObject;
++ subjectType = QZeitgeist::Manifestation::Subject::NFORemoteDataObject;
+ break;
+ case MediaSource::CaptureDevice:
+ case MediaSource::Disc:
+ case MediaSource::Stream:
+- subjectType = QtZeitgeist::Manifestation::Subject::NFOMediaStream;
++ subjectType = QZeitgeist::Manifestation::Subject::NFOMediaStream;
+ break;
+ case MediaSource::LocalFile:
+- subjectType = QtZeitgeist::Manifestation::Subject::NFOFileDataObject;
++ subjectType = QZeitgeist::Manifestation::Subject::NFOFileDataObject;
+ break;
+ }
+
+ sendToZeitgeist(eventInterpretation,
+- QtZeitgeist::Manifestation::Event::ZGUserActivity,
++ QZeitgeist::Manifestation::Event::ZGUserActivity,
+ QLatin1Literal("app://" ) % Platform::applicationName() % QLatin1Literal(".desktop"),
+ QDateTime::currentDateTime(),
+ mediaSource.url(),
+--- phonon-4.5.1/phonon/mediaobject_p.h~ 2011-10-29 13:04:34.982530678 +0000
++++ phonon-4.5.1/phonon/mediaobject_p.h 2011-10-29 15:27:44.679123431 +0000
+@@ -30,8 +30,8 @@
+ #include "mediasource.h"
+ #include <QtCore/QQueue>
+ #ifdef HAVE_QZEITGEIST
+-#include <QtZeitgeist/Log>
+-#include <QtZeitgeist/QtZeitgeist>
++#include <QZeitgeist/Log>
++#include <QZeitgeist/QZeitgeist>
+ #endif
+
+ QT_BEGIN_NAMESPACE
+@@ -114,8 +114,7 @@
+ #endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
+ {
+ #ifdef HAVE_QZEITGEIST
+- QtZeitgeist::init();
+- log = new QtZeitgeist::Log(qObject());
++ log = new QZeitgeist::Log(qObject());
+ #endif
+ }
+
+@@ -142,7 +141,7 @@
+ MediaSource mediaSource;
+ QQueue<MediaSource> sourceQueue;
+ #ifdef HAVE_QZEITGEIST
+- QtZeitgeist::Log *log;
++ QZeitgeist::Log *log;
+ #endif
+ };
+ }
+--- phonon-4.5.1/phonon/CMakeLists.txt~ 2011-10-29 15:30:07.640468718 +0000
++++ phonon-4.5.1/phonon/CMakeLists.txt 2011-10-29 15:30:26.643980831 +0000
+@@ -21,7 +21,7 @@
+ endif(GLIB2_FOUND AND PULSEAUDIO_FOUND)
+
+ macro_optional_find_package(QZeitgeist)
+-macro_log_feature(QZEITGEIST_FOUND "QtZeitgeist" "Qt bindings for Zeitgeist" "http://gitorious.org/kde-zeitgeist/libqzeitgeist/" FALSE)
++macro_log_feature(QZEITGEIST_FOUND "QZeitgeist" "Qt bindings for Zeitgeist" "http://gitorious.org/kde-zeitgeist/libqzeitgeist/" FALSE)
+ if (QZEITGEIST_FOUND)
+ add_definitions(-DHAVE_QZEITGEIST)
+ include_directories(${QZEITGEIST_INCLUDE_DIR})
diff --git a/extra/php-apc/PKGBUILD b/extra/php-apc/PKGBUILD
new file mode 100644
index 000000000..0d9027829
--- /dev/null
+++ b/extra/php-apc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 135862 2011-08-19 20:05:54Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=php-apc
+pkgver=3.1.9
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+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=('a2cf7fbf6f3a87f190d897a53260ddaa')
+
+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..9eccbe76d
--- /dev/null
+++ b/extra/php-suhosin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 135864 2011-08-19 20:05:56Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=php-suhosin
+pkgver=0.9.32.1
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+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..1a7a82bca
--- /dev/null
+++ b/extra/php/PKGBUILD
@@ -0,0 +1,365 @@
+# $Id: PKGBUILD 143816 2011-11-29 13:33:39Z stephane $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=php
+pkgname=('php'
+ 'php-cgi'
+ 'php-apache'
+ 'php-fpm'
+ 'php-embed'
+ 'php-pear'
+ 'php-enchant'
+ 'php-gd'
+ 'php-intl'
+ 'php-ldap'
+ 'php-mcrypt'
+ 'php-mssql'
+ 'php-odbc'
+ 'php-pgsql'
+ 'php-pspell'
+ 'php-snmp'
+ 'php-sqlite'
+ 'php-tidy'
+ 'php-xsl')
+pkgver=5.3.8
+_suhosinver=5.3.7-0.9.10
+pkgrel=5
+arch=('i686' 'x86_64' 'mips64el')
+license=('PHP')
+url='http://www.php.net'
+makedepends=('apache' 'imap' 'postgresql-libs' 'libldap' 'postfix'
+ 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds'
+ 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'icu'
+ 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2')
+source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz.sig"
+ 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch'
+ 'logrotate.d.php-fpm')
+md5sums=('704cd414a0565d905e1074ffdc1fadfb'
+ '08582e502fed8221c6577042ca45ddb8'
+ '5bf4473f658404aa9a97bf026ecef8e9'
+ '65606c606df97a0760dfe5aaf9893afc'
+ 'dec2cbaad64e3abf4f0ec70e1de4e8e9'
+ 'b01be5f816988fcee7e78225836e5e27'
+ '09005dabd90c48ddd392b3dbf05f8a82'
+ '07c4e412909ac65a44ec90e7a2c4bade')
+
+build() {
+ phpconfig="--srcdir=../${pkgbase}-${pkgver} \
+ --prefix=/usr \
+ --sysconfdir=/etc/php \
+ --localstatedir=/var \
+ --with-layout=GNU \
+ --with-config-file-path=/etc/php \
+ --with-config-file-scan-dir=/etc/php/conf.d \
+ --enable-inline-optimization \
+ --disable-debug \
+ --disable-rpath \
+ --disable-static \
+ --enable-shared \
+ --mandir=/usr/share/man \
+ --without-pear \
+ "
+
+ phpextensions="--enable-bcmath=shared \
+ --enable-calendar=shared \
+ --enable-dba=shared \
+ --enable-exif=shared \
+ --enable-ftp=shared \
+ --enable-gd-native-ttf \
+ --enable-intl=shared \
+ --enable-json=shared \
+ --enable-mbregex \
+ --enable-mbstring \
+ --enable-pdo \
+ --enable-phar=shared \
+ --enable-posix=shared \
+ --enable-session \
+ --enable-shmop=shared \
+ --enable-soap=shared \
+ --enable-sockets=shared \
+ --enable-sqlite-utf8 \
+ --enable-sysvmsg=shared \
+ --enable-sysvsem=shared \
+ --enable-sysvshm=shared \
+ --enable-xml \
+ --enable-zip=shared \
+ --with-bz2=shared \
+ --with-curl=shared \
+ --with-db4=/usr \
+ --with-enchant=shared,/usr \
+ --with-freetype-dir=shared,/usr \
+ --with-gd=shared \
+ --with-gdbm=shared \
+ --with-gettext=shared \
+ --with-gmp=shared \
+ --with-iconv=shared \
+ --with-icu-dir=/usr \
+ --with-imap-ssl=shared \
+ --with-imap=shared \
+ --with-jpeg-dir=shared,/usr \
+ --with-ldap=shared \
+ --with-ldap-sasl \
+ --with-mcrypt=shared \
+ --with-mhash \
+ --with-mssql=shared \
+ --with-mysql-sock=/var/run/mysqld/mysqld.sock \
+ --with-mysql=shared,mysqlnd \
+ --with-mysqli=shared,mysqlnd \
+ --with-openssl=shared \
+ --with-pcre-regex=/usr \
+ --with-pdo-mysql=shared,mysqlnd \
+ --with-pdo-odbc=shared,unixODBC,/usr \
+ --with-pdo-pgsql=shared \
+ --with-pdo-sqlite=shared,/usr \
+ --with-pgsql=shared \
+ --with-png-dir=shared,/usr \
+ --with-pspell=shared \
+ --with-regex=php \
+ --with-snmp=shared \
+ --with-sqlite3=shared,/usr \
+ --with-sqlite=shared \
+ --with-tidy=shared \
+ --with-unixODBC=shared,/usr \
+ --with-xmlrpc=shared \
+ --with-xsl=shared \
+ --with-zlib \
+ --without-db2 \
+ --without-db3 \
+ "
+
+ EXTENSION_DIR=/usr/lib/php/modules
+ export EXTENSION_DIR
+ PEAR_INSTALLDIR=/usr/share/pear
+ export PEAR_INSTALLDIR
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # apply suhosin patch
+ patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch
+
+ # adjust paths
+ patch -p0 -i ${srcdir}/php.ini.patch
+ patch -p0 -i ${srcdir}/php-fpm.conf.in.patch
+
+ # php
+ mkdir ${srcdir}/build-php
+ cd ${srcdir}/build-php
+ ln -s ../${pkgbase}-${pkgver}/configure
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ ${phpextensions}
+ make
+
+ # cgi and fcgi
+ # reuse the previous run; this will save us a lot of time
+ cp -a ${srcdir}/build-php ${srcdir}/build-cgi
+ cd ${srcdir}/build-cgi
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-cgi \
+ ${phpextensions}
+ make
+
+ # apache
+ cp -a ${srcdir}/build-php ${srcdir}/build-apache
+ cd ${srcdir}/build-apache
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --with-apxs2 \
+ ${phpextensions}
+ make
+
+ # fpm
+ cp -a ${srcdir}/build-php ${srcdir}/build-fpm
+ cd ${srcdir}/build-fpm
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-fpm \
+ --with-fpm-user=http \
+ --with-fpm-group=http \
+ ${phpextensions}
+ make
+
+ # embed
+ cp -a ${srcdir}/build-php ${srcdir}/build-embed
+ cd ${srcdir}/build-embed
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-embed=shared \
+ ${phpextensions}
+ make
+
+ # pear
+ cp -a ${srcdir}/build-php ${srcdir}/build-pear
+ cd ${srcdir}/build-pear
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ --with-pear \
+ ${phpextensions}
+ make
+}
+
+# check() {
+# cd ${srcdir}/build-php
+# make test
+# }
+
+package_php() {
+ pkgdesc='An HTML-embedded scripting language'
+ depends=('pcre' 'libxml2' 'bzip2' 'curl')
+ replaces=('php-fileinfo' 'php-gmp' 'php-curl')
+ provides=('php-fileinfo' 'php-gmp' 'php-curl')
+ conflicts=('php-fileinfo' 'php-gmp' 'php-curl')
+ backup=('etc/php/php.ini')
+
+ cd ${srcdir}/build-php
+ make -j1 INSTALL_ROOT=${pkgdir} install
+ install -d -m755 ${pkgdir}/usr/share/pear
+ # install php.ini
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini
+ install -d -m755 ${pkgdir}/etc/php/conf.d/
+
+ # remove static modules
+ rm -f ${pkgdir}/usr/lib/php/modules/*.a
+ # remove modules provided by sub packages
+ rm -f ${pkgdir}/usr/lib/php/modules/{enchant,gd,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
+ # remove empty directory
+ rmdir ${pkgdir}/usr/include/php/include
+}
+
+package_php-cgi() {
+ pkgdesc='CGI and FCGI SAPI for PHP'
+ depends=('php')
+
+ install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi
+}
+
+package_php-apache() {
+ pkgdesc='Apache SAPI for PHP'
+ depends=('php' 'apache')
+ backup=('etc/httpd/conf/extra/php5_module.conf')
+
+ install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so
+ install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf
+}
+
+package_php-fpm() {
+ pkgdesc='FastCGI Process Manager for PHP'
+ depends=('php')
+ backup=('etc/php/php-fpm.conf')
+
+ install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/sbin/php-fpm
+ install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/php-fpm.8
+ install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/php/php-fpm.conf
+ install -D -m755 ${srcdir}/rc.d.php-fpm ${pkgdir}/etc/rc.d/php-fpm
+ install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm
+ install -d -m755 ${pkgdir}/etc/php/fpm.d
+}
+
+package_php-embed() {
+ pkgdesc='Embed SAPI for PHP'
+ depends=('php')
+
+ install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp5.so
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/php/sapi/embed/php_embed.h
+}
+
+package_php-pear() {
+ pkgdesc='PHP Extension and Application Repository'
+ depends=('php')
+ backup=('etc/php/pear.conf')
+
+ cd ${srcdir}/build-pear
+ make -j1 install-pear INSTALL_ROOT=${pkgdir}
+ local i
+ while read i; do
+ [ ! -e "$i" ] || rm -rf "$i"
+ done < <(find ${pkgdir} -name '.*')
+}
+
+package_php-enchant() {
+ depends=('php' 'enchant')
+ pkgdesc='enchant module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so
+}
+
+package_php-gd() {
+ depends=('php' 'libpng' 'libjpeg' 'freetype2')
+ pkgdesc='gd module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so
+}
+
+package_php-intl() {
+ depends=('php' 'icu')
+ pkgdesc='intl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so
+}
+
+package_php-ldap() {
+ depends=('php' 'libldap')
+ pkgdesc='ldap module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so
+}
+
+package_php-mcrypt() {
+ depends=('php' 'libmcrypt' 'libltdl')
+ pkgdesc='mcrypt module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so
+}
+
+package_php-mssql() {
+ depends=('php' 'freetds')
+ pkgdesc='mssql module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/php/modules/mssql.so
+}
+
+package_php-odbc() {
+ depends=('php' 'unixodbc')
+ pkgdesc='ODBC modules for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so
+}
+
+package_php-pgsql() {
+ depends=('php' 'postgresql-libs')
+ pkgdesc='PostgreSQL modules for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so
+}
+
+package_php-pspell() {
+ depends=('php' 'aspell')
+ pkgdesc='pspell module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so
+}
+
+package_php-snmp() {
+ depends=('php' 'net-snmp')
+ pkgdesc='snmp module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so
+}
+
+package_php-sqlite() {
+ depends=('php' 'sqlite3')
+ pkgdesc='sqlite3 module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so
+}
+
+package_php-tidy() {
+ depends=('php' 'tidyhtml')
+ pkgdesc='tidy module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so
+}
+
+package_php-xsl() {
+ depends=('php' 'libxslt')
+ pkgdesc='xsl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so
+}
diff --git a/extra/php/apache.conf b/extra/php/apache.conf
new file mode 100644
index 000000000..c3ca0aad5
--- /dev/null
+++ b/extra/php/apache.conf
@@ -0,0 +1,13 @@
+# Required modules: dir_module, php5_module
+
+<IfModule dir_module>
+ <IfModule php5_module>
+ DirectoryIndex index.php index.html
+ <FilesMatch "\.php$">
+ SetHandler application/x-httpd-php
+ </FilesMatch>
+ <FilesMatch "\.phps$">
+ SetHandler application/x-httpd-php-source
+ </FilesMatch>
+ </IfModule>
+</IfModule>
diff --git a/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..b4dd32f96
--- /dev/null
+++ b/extra/php/php-fpm.conf.in.patch
@@ -0,0 +1,80 @@
+--- sapi/fpm/php-fpm.conf.in 2011-07-04 23:22:56.000000000 +0200
++++ sapi/fpm/php-fpm.conf.in 2011-08-12 16:56:23.686606725 +0200
+@@ -12,7 +12,7 @@
+ ; Relative path can also be used. They will be prefixed by:
+ ; - the global prefix if it's been set (-p arguement)
+ ; - @prefix@ otherwise
+-;include=etc/fpm.d/*.conf
++;include=/etc/php/fpm.d/*.conf
+
+ ;;;;;;;;;;;;;;;;;;
+ ; Global Options ;
+@@ -22,7 +22,7 @@
+ ; Pid file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++pid = run/php-fpm/php-fpm.pid
+
+ ; Error log file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+@@ -102,7 +102,8 @@
+ ; specific port;
+ ; '/path/to/unix/socket' - to listen on a unix socket.
+ ; Note: This value is mandatory.
+-listen = 127.0.0.1:9000
++;listen = 127.0.0.1:9000
++listen = /var/run/php-fpm/php-fpm.sock
+
+ ; Set listen(2) backlog. A value of '-1' means unlimited.
+ ; Default Value: 128 (-1 on FreeBSD and OpenBSD)
+@@ -121,9 +122,9 @@
+ ; BSD-derived systems allow connections regardless of permissions.
+ ; Default Values: user and group are set as the running user
+ ; mode is set to 0666
+-;listen.owner = @php_fpm_user@
+-;listen.group = @php_fpm_group@
+-;listen.mode = 0666
++listen.owner = @php_fpm_user@
++listen.group = @php_fpm_group@
++listen.mode = 0660
+
+ ; Unix user/group of processes
+ ; Note: The user is mandatory. If the group is not set, the default user's group
+@@ -163,23 +164,23 @@
+ ; The number of child processes created on startup.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+-;pm.start_servers = 20
++pm.start_servers = 20
+
+ ; The desired minimum number of idle server processes.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Note: Mandatory when pm is set to 'dynamic'
+-;pm.min_spare_servers = 5
++pm.min_spare_servers = 5
+
+ ; The desired maximum number of idle server processes.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Note: Mandatory when pm is set to 'dynamic'
+-;pm.max_spare_servers = 35
++pm.max_spare_servers = 35
+
+ ; The number of requests each child process should execute before respawning.
+ ; This can be useful to work around memory leaks in 3rd party libraries. For
+ ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+ ; Default Value: 0
+-;pm.max_requests = 500
++pm.max_requests = 500
+
+ ; The URI to view the FPM status page. If this value is not set, no URI will be
+ ; recognized as a status page. By default, the status page shows the following
+@@ -333,7 +334,7 @@
+ ; Chdir to this directory at the start.
+ ; Note: relative path can be used.
+ ; Default Value: current directory or / when chroot
+-;chdir = /var/www
++;chdir = /srv/http
+
+ ; Redirect worker stdout and stderr into main error log. If not set, stdout and
+ ; stderr will be redirected to /dev/null according to FastCGI specs.
diff --git a/extra/php/php.ini.patch b/extra/php/php.ini.patch
new file mode 100644
index 000000000..46c842921
--- /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..54bcf4d5b
--- /dev/null
+++ b/extra/php/rc.d.php-fpm
@@ -0,0 +1,158 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+wait_for_pid () {
+ try=0
+ while test $try -lt 35 ; do
+ case "$1" in
+ 'created')
+ if [ -f "$2" ] ; then
+ try=''
+ break
+ fi
+ ;;
+ 'removed')
+ if [ ! -f "$2" ] ; then
+ try=''
+ break
+ fi
+ ;;
+ esac
+
+ stat_append '.'
+ try=`expr $try + 1`
+ sleep 1
+ done
+}
+
+test_config() {
+ stat_busy 'Checking configuration'
+ if [ $(id -u) -ne 0 ]; then
+ stat_append '(This script must be run as root)'
+ stat_die
+ fi
+
+ if [ ! -r /etc/php/php-fpm.conf ]; then
+ stat_append '(/etc/php/php-fpm.conf not found)'
+ stat_die
+ fi
+
+ local test=$(/usr/sbin/php-fpm -t 2>&1)
+ if [ $? -gt 0 ]; then
+ stat_append '(error in /etc/php/php-fpm.conf)'
+ stat_die
+ elif echo $test | grep -qi 'error'; then
+ stat_append '(error in /etc/php/php.ini)'
+ stat_die
+ fi
+
+ [ -d /var/run/php-fpm ] || install -d -m755 /var/run/php-fpm
+
+ stat_done
+}
+
+case "$1" in
+ start)
+ test_config
+ stat_busy 'Starting php-fpm'
+
+ /usr/sbin/php-fpm
+
+ if [ "$?" != 0 ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ wait_for_pid created /var/run/php-fpm/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ add_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ stop)
+ test_config
+ stat_busy 'Gracefully shutting down php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -QUIT `cat /var/run/php-fpm/php-fpm.pid`
+
+ wait_for_pid removed /var/run/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ force-quit)
+ stat_busy 'Terminating php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -TERM `cat /var/run/php-fpm/php-fpm.pid`
+
+ wait_for_pid removed /var/run/php-fpm/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+
+ reload)
+ test_config
+ stat_busy 'Reload service php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
+ stat_done
+ ;;
+
+ logrotate)
+ stat_busy 'Reopen php-fpm log'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -USR1 `cat /var/run/php-fpm/php-fpm.pid`
+ stat_done
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|force-quit|restart|reload|logrotate}"
+ exit 1
+ ;;
+
+esac
diff --git a/extra/physfs/PKGBUILD b/extra/physfs/PKGBUILD
new file mode 100644
index 000000000..d32550c62
--- /dev/null
+++ b/extra/physfs/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 1214 2009-08-14 01:36:33Z dgriffiths $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=physfs
+pkgver=2.0.2
+pkgrel=2
+pkgdesc="A library to provide abstract access to various archives"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://icculus.org/physfs/"
+license=('ZLIB')
+depends=('zlib')
+makedepends=('cmake' 'doxygen')
+options=('!makeflags')
+source=(http://icculus.org/physfs/downloads/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('2d3d3cc819ad26542d34451f44050b85635344d0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/-Werror//' CMakeLists.txt
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+ cmake . -DCMAKE_BUILD_TYPE=Release \
+ -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..7ed71bf5c
--- /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' 'mips64el')
+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..47f3f81a7
--- /dev/null
+++ b/extra/pidgin/PKGBUILD
@@ -0,0 +1,112 @@
+# $Id: PKGBUILD 144934 2011-12-10 23:19:27Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: 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>
+
+pkgname=('pidgin' 'libpurple' 'finch')
+pkgver=2.10.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pidgin.im/"
+license=('GPL')
+makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
+ 'libidn' 'python2' 'hicolor-icon-theme' 'gstreamer0.10'
+ 'farsight2' 'avahi' 'tk' 'ca-certificates' 'intltool'
+ 'networkmanager')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+ nm09-more.patch)
+sha256sums=('2f28bddc5edcd714d607d74126c8958ae7c258602b3929e3e6e783d3cb1beac8'
+ '7e173ea37b86b604284da18ea015ee03ccd444f3e980f440c201957d37ee820e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Further fixes for NetworkManager 0.9
+ # http://developer.pidgin.im/ticket/13859
+ patch -Np1 -i "$srcdir/nm09-more.patch"
+
+ # Use Python 2
+ sed -i 's/env python$/&2/' */plugins/*.py \
+ libpurple/purple-{remote,notifications-example,url-handler}
+
+ # Pidgin doesn't explicitly link to libm
+ LDFLAGS+=' -Wl,--copy-dt-needed-entries'
+
+ ./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_pidgin(){
+ pkgdesc="Multi-protocol instant messaging client"
+ depends=('libpurple' 'startup-notification' 'gtkspell' 'libxss' 'libsm'
+ 'gstreamer0.10' 'hicolor-icon-theme')
+ optdepends=('aspell: for spelling correction'
+ 'ca-certificates: SSL CA certificates'
+ 'gstreamer0.10-good-plugins: video and voice support'
+ 'tk: Tcl/Tk scripting support')
+ install=pidgin.install
+
+ cd "$srcdir/pidgin-$pkgver"
+
+ # For linking
+ make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+ make -C pidgin DESTDIR="$pkgdir" install
+ make -C doc DESTDIR="$pkgdir" install
+
+ # Remove files that are packaged in libpurle
+ make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
+
+ install -Dm644 pidgin.desktop "$pkgdir"/usr/share/applications/pidgin.desktop
+
+ rm "$pkgdir/usr/share/man/man1/finch.1"
+}
+
+package_libpurple(){
+ pkgdesc="IM library extracted from Pidgin"
+ depends=('farsight2' 'libsasl' 'libidn' 'dbus-glib' 'nss')
+ optdepends=('avahi: Bonjour protocol support'
+ 'dbus-python: for purple-remote and purple-url-handler')
+
+ cd "$srcdir/pidgin-$pkgver"
+
+ for _dir in libpurple share/sounds share/ca-certs m4macros po; do
+ make -C "$_dir" DESTDIR="$pkgdir" install
+ done
+}
+
+package_finch(){
+ pkgdesc="A ncurses-based messaging client"
+ depends=("libpurple=$pkgver-$pkgrel" 'python2' 'gstreamer0.10')
+ optdepends=('avahi: Bonjour protocol support'
+ 'ca-certificates: SSL CA certificates'
+ 'tk: Tcl/Tk scripting support')
+
+ cd "$srcdir/pidgin-$pkgver"
+
+ # For linking
+ make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+ make -C finch DESTDIR="$pkgdir" install
+ make -C doc DESTDIR="$pkgdir" install
+
+ # Remove files that are packaged in libpurle
+ make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
+
+ rm "$pkgdir"/usr/share/man/man1/pidgin.1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/pidgin/nm09-more.patch b/extra/pidgin/nm09-more.patch
new file mode 100644
index 000000000..8c708df9a
--- /dev/null
+++ b/extra/pidgin/nm09-more.patch
@@ -0,0 +1,49 @@
+diff -up pidgin-2.7.11/libpurple/network.c.nm09more pidgin-2.7.11/libpurple/network.c
+--- pidgin-2.7.11/libpurple/network.c.nm09more 2011-04-26 12:01:27.700085246 -0500
++++ pidgin-2.7.11/libpurple/network.c 2011-05-24 13:13:28.185165657 -0500
+@@ -833,8 +833,20 @@ purple_network_is_available(void)
+ purple_debug_warning("network", "NetworkManager not active. Assuming connection exists.\n");
+ }
+
+- if (nm_state == NM_STATE_UNKNOWN || nm_state == NM_STATE_CONNECTED)
+- return TRUE;
++ switch (nm_state)
++ {
++ case NM_STATE_UNKNOWN:
++#if NM_CHECK_VERSION(0,8,992)
++ case NM_STATE_CONNECTED_LOCAL:
++ case NM_STATE_CONNECTED_SITE:
++ case NM_STATE_CONNECTED_GLOBAL:
++#else
++ case NM_STATE_CONNECTED:
++#endif
++ return TRUE;
++ default:
++ break;
++ }
+
+ return FALSE;
+
+@@ -1170,9 +1182,14 @@ purple_network_init(void)
+ NM_DBUS_SERVICE,
+ NM_DBUS_PATH,
+ NM_DBUS_INTERFACE);
++ /* NM 0.6 signal */
+ dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal(nm_proxy, "StateChange",
+ G_CALLBACK(nm_state_change_cb), NULL, NULL);
++ /* NM 0.7 and later signal */
++ dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID);
++ dbus_g_proxy_connect_signal(nm_proxy, "StateChanged",
++ G_CALLBACK(nm_state_change_cb), NULL, NULL);
+
+ dbus_proxy = dbus_g_proxy_new_for_name(nm_conn,
+ DBUS_SERVICE_DBUS,
+@@ -1207,6 +1224,7 @@ purple_network_uninit(void)
+ #ifdef HAVE_NETWORKMANAGER
+ if (nm_proxy) {
+ dbus_g_proxy_disconnect_signal(nm_proxy, "StateChange", G_CALLBACK(nm_state_change_cb), NULL);
++ dbus_g_proxy_disconnect_signal(nm_proxy, "StateChanged", G_CALLBACK(nm_state_change_cb), NULL);
+ g_object_unref(G_OBJECT(nm_proxy));
+ }
+ if (dbus_proxy) {
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..a77ba5dbe
--- /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 'mips64el')
+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..b3e7e7852
--- /dev/null
+++ b/extra/pinentry/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 136330 2011-08-26 13:04:19Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pinentry
+pkgver=0.8.1
+pkgrel=3
+pkgdesc="a collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnupg.org/aegypten2"
+depends=('ncurses' 'libcap>=2.16')
+makedepends=('gtk2' 'qt')
+optdepends=('gtk2: for gtk2 backend'
+ 'qt: for qt4 backend')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.gz
+ gtk2-pinentry-segfault.patch)
+install=pinentry.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ for file in qt4/*.moc; do
+ /usr/bin/moc ${file/.moc/.h} > ${file}
+ done
+ ./configure --prefix=/usr \
+ --enable-pinentry-curses \
+ --disable-pinentry-gtk \
+ --disable-pinentry-qt \
+ --enable-pinentry-gtk2 \
+ --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/pinentry/pinentry.install b/extra/pinentry/pinentry.install
new file mode 100644
index 000000000..eed2c7124
--- /dev/null
+++ b/extra/pinentry/pinentry.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(pinentry.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/pixman/PKGBUILD b/extra/pixman/PKGBUILD
new file mode 100644
index 000000000..5ee65c636
--- /dev/null
+++ b/extra/pixman/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 142423 2011-11-09 10:25:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=pixman
+pkgver=0.24.0
+pkgrel=1
+pkgdesc="Pixman library"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2
+ pixman-loongson2f.patch)
+sha1sums=('a3b73c3ea6cada20d705203a394f574aa69e2177'
+ 'ce4d69ea341f21fdc30f6d401ee479cd3571dab3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+# [ "$CARCH" = "mips64el" ] && {
+# patch -Np1 -i $srcdir/pixman-loongson2f.patch
+# autoreconf -i
+# }
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+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/pixman/pixman-loongson2f.patch b/extra/pixman/pixman-loongson2f.patch
new file mode 100644
index 000000000..15e01cb6b
--- /dev/null
+++ b/extra/pixman/pixman-loongson2f.patch
@@ -0,0 +1,2745 @@
+diff -urN pixman//configure.ac Pixman.Loongson//configure.ac
+--- pixman//configure.ac 2010-12-25 18:46:00.018699000 +0800
++++ Pixman.Loongson//configure.ac 2010-12-25 18:39:15.298778000 +0800
+@@ -264,6 +264,43 @@
+ ])
+
+ dnl ===========================================================================
++dnl Check for Loongson SIMD
++
++have_loongson_intrinsics=no
++AC_MSG_CHECKING(whether to use Loongson SIMD intrinsics)
++
++AC_COMPILE_IFELSE([
++#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4))
++error "Need GCC >= 4.4 for Loongson SIMD compilation"
++#endif
++int main () {
++ /* Test with a loongson SIMD instruction. */
++ asm volatile ( ".set arch = loongson2f \n\t" "and \$f0, \$f0, \$f0 \n\t" : : : "cc", "memory" );
++ return 0;
++}], have_loongson_intrinsics=yes)
++
++
++AC_ARG_ENABLE(loongson,
++ [AC_HELP_STRING([--disable-loongson],
++ [disable Loongson fast paths])],
++ [enable_loongson=$enableval], [enable_loongson=auto])
++
++if test $enable_loongson = no ; then
++ have_loongson_intrinsics=disabled
++fi
++
++if test $have_loongson_intrinsics = yes ; then
++ AC_DEFINE(USE_LS, 1, [use Loongson compiler intrinsics])
++fi
++
++AC_MSG_RESULT($have_loongson_intrinsics)
++if test $enable_loongson = yes && test $have_loongson_intrinsics = no ; then
++ AC_MSG_ERROR([Loongson intrinsics not detected])
++fi
++
++AM_CONDITIONAL(USE_LS, test $have_loongson_intrinsics = yes)
++
++dnl ===========================================================================
+ dnl Check for MMX
+
+ if test "x$MMX_CFLAGS" = "x" ; then
+diff -urN pixman//pixman/Makefile.am Pixman.Loongson//pixman/Makefile.am
+--- pixman//pixman/Makefile.am 2010-12-25 18:46:00.025027000 +0800
++++ Pixman.Loongson//pixman/Makefile.am 2010-12-25 18:39:15.303599000 +0800
+@@ -55,6 +55,19 @@
+ pixman-combine.h.template solaris-hwcap.mapfile pixman-x64-mmx-emulation.h
+ CLEANFILES = pixman-combine32.c pixman-combine64.c pixman-combine32.h pixman-combine64.h
+
++# loongson code
++if USE_LS
++noinst_LTLIBRARIES += libpixman-ls.la
++libpixman_ls_la_SOURCES = \
++ pixman-ls.c
++libpixman_ls_la_CFLAGS = $(DEP_CFLAGS) $(LS_CFLAGS)
++libpixman_ls_la_LIBADD = $(DEP_LIBS)
++libpixman_1_la_LDFLAGS += $(LS_LDFLAGS)
++libpixman_1_la_LIBADD += libpixman-ls.la
++
++ASM_CFLAGS_ls=$(LS_CFLAGS)
++endif
++
+ # mmx code
+ if USE_MMX
+ noinst_LTLIBRARIES += libpixman-mmx.la
+diff -urN pixman//pixman/pixman-combine-ls.c Pixman.Loongson//pixman/pixman-combine-ls.c
+--- pixman//pixman/pixman-combine-ls.c 1970-01-01 08:00:00.000000000 +0800
++++ Pixman.Loongson//pixman/pixman-combine-ls.c 2010-12-25 18:39:15.344171000 +0800
+@@ -0,0 +1,911 @@
++static force_inline uint32_t
++combine (const uint32_t *src, const uint32_t *mask)
++{
++ uint32_t ssrc = *src;
++
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f22)
++ load8888r(%0,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ store8888r($f8,%0)
++ :"+r"(ssrc):"r"(*mask):clobber
++ );
++ }
++ return ssrc;
++}
++
++static void
++ls_combine_saturate_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ uint32_t s = combine (src, mask);
++ uint32_t d = *dest;
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f22)
++ load8888r(%0,$f20)
++ :"+r"(d):"r"(s):clobber
++ );
++
++ uint32_t sa = s >> 24;
++ uint32_t da = ~d >> 24;
++
++ if (sa > da)
++ {
++ uint32_t dds = DIV_UN8 (da, sa) << 24;
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f24)
++ pix_multiply($f22,$f24)
++ save_to($f22)
++ ::"r"(dds):clobber
++ );
++ }
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ pix_add($f20,$f22)
++ store8888r($f8,%0)
++ :"=r"(*dest)::clobber
++ );
++
++ ++src;
++ ++dest;
++ if (mask)
++ mask++;
++ }
++}
++static void
++ls_combine_out_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask)
++ {
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f24)
++ negate($f24,$f24)
++ pix_multiply($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++
++ mask++;
++ }else {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f24)
++ negate($f24,$f24)
++ pix_multiply($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++
++ }
++ ++dest;
++ ++src;
++ }
++}
++
++static void
++ls_combine_out_reverse_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f20)
++ negate($f20,$f20)
++ pix_multiply($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++
++ mask++;
++ }else{
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f20)
++ negate($f20,$f20)
++ pix_multiply($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++ }
++ ++dest;
++ ++src;
++
++ }
++}
++
++static void
++ls_combine_out_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f26)
++ negate($f26,$f26)
++ pix_multiply($f20,$f22)
++ save_to($f20)
++ pix_multiply($f20,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
++
++static void
++ls_combine_out_reverse_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f28)
++ pix_multiply($f22,$f28)
++ save_to($f22)
++ negate($f22,$f22)
++ pix_multiply($f24,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
++
++
++static void
++ls_combine_atop_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ expand_alpha($f24,$f28)
++ negate($f26,$f26)
++ pix_add_mul($f20,$f28,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++
++ mask++;
++ }else {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ expand_alpha($f24,$f28)
++ negate($f26,$f26)
++ pix_add_mul($f20,$f28,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++ }
++ ++dest;
++ ++src;
++
++ }
++}
++
++static void
++ls_combine_atop_reverse_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end;
++
++ end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask){
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ expand_alpha($f24,$f28)
++ negate($f28,$f28)
++ pix_add_mul($f20,$f28,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ mask++;
++ }else{
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ expand_alpha($f24,$f28)
++ negate($f28,$f28)
++ pix_add_mul($f20,$f28,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++ }
++ ++dest;
++ ++src;
++ }
++}
++
++
++static void
++ls_combine_atop_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f26)
++ expand_alpha($f20,$f28)
++ pix_multiply($f20,$f22)
++ save_to($f20)
++ pix_multiply($f22,$f28)
++ save_to($f22)
++ negate($f22,$f22)
++ pix_add_mul($f24,$f22,$f20,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
++
++static void
++ls_combine_atop_reverse_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f26)
++ expand_alpha($f20,$f28)
++ pix_multiply($f20,$f22)
++ save_to($f20)
++ pix_multiply($f22,$f28)
++ save_to($f22)
++ negate($f26,$f26)
++ pix_add_mul($f24,$f22,$f20,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
++
++static void
++ls_combine_xor_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ expand_alpha($f24,$f28)
++ negate($f26,$f26)
++ negate($f28,$f28)
++ pix_add_mul($f20,$f28,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ mask++;
++ }else{
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ expand_alpha($f24,$f28)
++ negate($f26,$f26)
++ negate($f28,$f28)
++ pix_add_mul($f20,$f28,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++ }
++ ++dest;
++ ++src;
++
++ }
++}
++
++static void
++ls_combine_xor_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f26)
++ expand_alpha($f20,$f28)
++ pix_multiply($f20,$f22)
++ save_to($f20)
++ pix_multiply($f22,$f28)
++ save_to($f22)
++ negate($f26,$f26)
++ negate($f22,$f22)
++ pix_add_mul($f24,$f22,$f20,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
++
++
++static void
++ls_combine_in_reverse_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ pix_multiply($f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ mask++;
++ } else {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f26)
++ pix_multiply($f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++ }
++ ++dest;
++ ++src;
++ }
++}
++
++static void
++ls_combine_in_reverse_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f20,$f20)
++ pix_multiply($f22,$f20)
++ save_to($f26)
++ pix_multiply($f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
++
++static void
++ls_combine_in_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f24)
++ pix_multiply($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ mask++;
++ } else {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f24)
++ pix_multiply($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++
++ }
++ ++dest;
++ ++src;
++ }
++}
++
++static void
++ls_combine_in_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ expand_alpha($f24,$f24)
++ pix_multiply($f20,$f22)
++ save_to($f26)
++ pix_multiply($f26,$f24)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++ }
++static void
++ls_combine_src_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ pix_multiply($f20,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++mask;
++ ++dest;
++ }
++
++}
++
++
++static void
++ls_combine_over_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++
++ uint32_t ssrc = combine (src, mask);
++ uint32_t a = ssrc >> 24;
++
++ if (a == 0xff)
++ {
++ *dest = ssrc;
++ }
++ else if (ssrc)
++ {
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ expand_alpha($f20,$f24)
++ load8888r(%0,$f26)
++ over($f20,$f24,$f26)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(ssrc):clobber
++ );
++ }
++
++ ++dest;
++ ++src;
++ if (mask)
++ ++mask;
++ }
++}
++
++static void
++ls_combine_over_reverse_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f26)
++ expand_alpha($f26,$f28)
++ over($f26,$f28,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ mask++;
++ }else{
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f26)
++ expand_alpha($f26,$f28)
++ over($f26,$f28,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++
++ }
++ ++dest;
++ ++src;
++ }
++}
++
++
++static void
++ls_combine_over_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load8888r(%1,$f22)
++ load8888r(%2,$f24)
++ expand_alpha($f22,$f26)
++ in_over($f22,$f26,$f24,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++
++}
++
++static void
++ls_combine_over_reverse_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load8888r(%1,$f22)
++ load8888r(%2,$f24)
++ in($f22,$f24)
++ save_to($f22)
++ expand_alpha($f20,$f28)
++ over($f20,$f28,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++
++}
++
++static void
++ls_combine_add_u (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = dest + width;
++
++ while (dest < end)
++ {
++
++ if (mask)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f22)
++ load8888r(%1,$f20)
++ expand_alpha($f22,$f22)
++ pix_multiply($f20,$f22)
++ save_to ($f20)
++
++ load8888r(%0,$f22)
++ pix_add($f20,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ mask++;
++ }else{
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++
++ load8888r(%0,$f22)
++ pix_add($f20,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src):clobber
++ );
++
++ }
++ ++dest;
++ ++src;
++ }
++}
++
++static void
++ls_combine_add_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ uint32_t * dest,
++ const uint32_t * src,
++ const uint32_t * mask,
++ int width)
++{
++ const uint32_t *end = src + width;
++
++ while (src < end)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load8888r(%1,$f22)
++ load8888r(%2,$f24)
++ pix_multiply($f22,$f24)
++ save_to($f22)
++ pix_add($f22,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dest):"r"(*src),"r"(*mask):clobber
++ );
++ ++src;
++ ++dest;
++ ++mask;
++ }
++}
+diff -urN pixman//pixman/pixman-composite-ls.c Pixman.Loongson//pixman/pixman-composite-ls.c
+--- pixman//pixman/pixman-composite-ls.c 1970-01-01 08:00:00.000000000 +0800
++++ Pixman.Loongson//pixman/pixman-composite-ls.c 2010-12-25 18:39:15.356667000 +0800
+@@ -0,0 +1,967 @@
++static void
++ls_composite_over_x888_8_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++
++ uint32_t *src, *src_line;
++ uint32_t *dst, *dst_line;
++ uint8_t *mask, *mask_line;
++ int src_stride, mask_stride, dst_stride;
++ uint32_t m;
++ uint32_t s, d;
++ int32_t w;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++
++ while (height--)
++ {
++ src = src_line;
++ src_line += src_stride;
++ dst = dst_line;
++ dst_line += dst_stride;
++ mask = mask_line;
++ mask_line += mask_stride;
++
++ w = width;
++ while (w--)
++ {
++ m = *mask++;
++ if (m)
++ {
++ s = *src | 0xff000000;
++
++ if (m == 0xff)
++ {
++ *dst = s;
++ }
++ else
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load8888r(%1,$f22)
++ load8888r(%2,$f24)
++ expand_alpha($f22,$f26)
++ expand_alpha_rev($f24,$f28)
++ in_over($f22,$f26,$f28,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dst):"r"(s),"r"(m):clobber
++ );
++
++// __m64 sa = expand_alpha (s);
++// __m64 vm = expand_alpha_rev (to_m64 (m));
++// __m64 vdest = in_over (s, sa, vm, load8888 (*dst));
++// *dst = store8888 (vdest);
++
++ }
++ }
++ src++;
++ dst++;
++ }
++ }
++}
++
++
++
++
++
++static void
++ls_composite_over_8888_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t *dst_line, *dst;
++ uint32_t *src_line, *src;
++ uint32_t s;
++ int dst_stride, src_stride;
++ uint8_t a;
++ int32_t w;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ src = src_line;
++ src_line += src_stride;
++ w = width;
++
++ while (w--)
++ {
++ s = *src;
++ a = s >> 24;
++
++ if (a == 0xff)
++ {
++ *dst = s;
++ }
++ else if (s)
++ {
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f24)
++ load8888r(%0,$f20)
++ expand_alpha($f24,$f26)
++ over($f24,$f26,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dst):"r"(*src):clobber
++ );
++ }
++ dst++;
++ src++;
++
++ }
++ }
++}
++
++
++static void
++ls_composite_over_8888_n_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t *dst_line, *dst;
++ uint32_t *src_line, *src;
++ uint32_t mask;
++ __m64 vmask;
++ int dst_stride, src_stride;
++ int32_t w;
++ __m64 srca;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++
++ mask = _pixman_image_get_solid (mask_image, dst_image->bits.format);
++ mask = mask | mask >> 8 | mask >> 16 | mask >> 24;
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888(%1,$f24)
++ store64a($f24,%0)
++ :"=m"(vmask):"m"(mask):clobber
++ );
++
++ srca = ls_4x00ff;
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ src = src_line;
++ src_line += src_stride;
++ w = width;
++
++ while (w)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++ load8888r(%0,$f22)
++ expand_alpha($f20,$f28)
++ in_over($f20,$f28,$f24,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dst):"r"(*src):clobber
++ );
++
++ w--;
++ dst++;
++ src++;
++ }
++ }
++}
++
++static void
++ls_composite_over_n_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src;
++ uint32_t *dst_line, *dst;
++ int32_t w;
++ int dst_stride;
++ __m64 vsrc, vsrca;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ if (src == 0)
++ return;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64($f24,%0)
++ expand_alpha($f24,$f26)
++ store64($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ w = width;
++
++ while (w)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f28)
++ over($f24,$f26,$f28)
++ store8888r($f8,%0)
++ :"+r"(*dst)::clobber
++ );
++
++ w--;
++ dst++;
++ }
++ }
++}
++
++static void
++ls_composite_over_n_8888_8888_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src, srca;
++ uint32_t *dst_line;
++ uint32_t *mask_line;
++ int dst_stride, mask_stride;
++ __m64 vsrc, vsrca;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ srca = src >> 24;
++ if (src == 0)
++ return;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint32_t, mask_stride, mask_line, 1);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64($f24,%0)
++ expand_alpha($f24,$f26)
++ store64($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++
++ while (height--)
++ {
++ int twidth = width;
++ uint32_t *p = (uint32_t *)mask_line;
++ uint32_t *q = (uint32_t *)dst_line;
++
++ while (twidth)
++ {
++
++ if (*p)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f28)
++ load8888r(%1,$f20)
++ in_over($f24,$f26,$f20,$f28)
++ store8888r($f8,%0)
++ :"+r"(*q):"r"(*p):clobber
++ );
++ }
++ twidth--;
++ p++;
++ q++;
++ }
++
++ dst_line += dst_stride;
++ mask_line += mask_stride;
++ }
++}
++
++
++static void
++ls_composite_over_n_8_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src, srca;
++ uint32_t *dst_line, *dst;
++ uint8_t *mask_line, *mask;
++ int dst_stride, mask_stride;
++ int32_t w;
++ __m64 vsrc, vsrca;
++ uint64_t srcsrc;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ srca = src >> 24;
++ if (src == 0)
++ return;
++
++ srcsrc = (uint64_t)src << 32 | src;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64a($f24,%0)
++ expand_alpha($f24,$f26)
++ store64a($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ mask = mask_line;
++ mask_line += mask_stride;
++ w = width;
++
++ while (w)
++ {
++ uint32_t m = *mask;
++
++ if (m)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load32r(%1,$f22)
++ expand_alpha_rev($f22,$f28)
++ in_over($f24,$f26,$f28,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dst):"r"(m):clobber
++ );
++ }
++
++ w--;
++ mask++;
++ dst++;
++ }
++ }
++
++}
++
++static void
++ls_composite_over_x888_n_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t *dst_line, *dst;
++ uint32_t *src_line, *src;
++ uint32_t mask;
++ __m64 vmask;
++ int dst_stride, src_stride;
++ int32_t w;
++ __m64 srca;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++ mask = _pixman_image_get_solid (mask_image, dst_image->bits.format);
++
++ mask &= 0xff000000;
++ mask = mask | mask >> 8 | mask >> 16 | mask >> 24;
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f24)
++ store64a($f24,%0)
++ :"=m"(vmask):"r"(mask):clobber
++ );
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load64a(%1,$f26)
++ store64a($f26,%0)
++ :"=m"(srca):"m"(ls_4x00ff):clobber
++ );
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ src = src_line;
++ src_line += src_stride;
++ w = width;
++
++ while (w)
++ {
++ uint32_t src_tmp = *src | 0xff000000;
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++ load8888r(%0,$f22)
++ in_over($f20,$f26,$f24,$f22)
++ store8888r($f8,%0)
++ :"+r"(*dst):"r"(src_tmp):clobber
++ );
++
++ w--;
++ dst++;
++ src++;
++ }
++ }
++}
++
++
++static void
++ls_composite_over_8888_0565 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint16_t *dst_line, *dst;
++ uint32_t d;
++ uint32_t *src_line, *src, s;
++ uint8_t a;
++ int dst_stride, src_stride;
++ int32_t w;
++
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ src = src_line;
++ src_line += src_stride;
++ w = width;
++
++ while (w--)
++ {
++ s = *src++;
++ a = s >> 24;
++ if (s)
++ {
++ if (a == 0xff)
++ {
++ d = s;
++ }
++ else
++ {
++ d = *dst;
++ d = CONVERT_0565_TO_0888 (d);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f24)
++ load8888r(%0,$f20)
++ expand_alpha($f24,$f26)
++ over($f24,$f26,$f20)
++ store8888r($f8,%0)
++ :"+r"(d):"r"(s):clobber
++ );
++
++
++ }
++ *dst = CONVERT_8888_TO_0565 (d);
++ }
++ dst++;
++ }
++ }
++}
++
++static void
++ls_composite_over_n_0565 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src;
++ uint32_t d;
++ uint16_t *dst_line, *dst;
++ int32_t w;
++ int dst_stride;
++ __m64 vsrc, vsrca;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ if (src == 0)
++ return;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64a($f24,%0)
++ expand_alpha($f24,$f26)
++ store64a($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ w = width;
++
++ while (w)
++ {
++
++ d = *dst;
++ d = CONVERT_0565_TO_0888 (d);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++
++ over($f24,$f26,$f20)
++ store8888r($f8,%0)
++ :"+r"(d)::clobber
++ );
++
++ *dst = CONVERT_8888_TO_0565 (d);
++
++ w--;
++ dst++;
++ }
++ }
++}
++
++static void
++ls_composite_over_n_8_0565 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src, srca, m, d;
++ uint16_t *dst_line, *dst;
++ uint8_t *mask_line, *mask;
++ int dst_stride, mask_stride;
++ int32_t w;
++ __m64 vsrc, vsrca;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ srca = src >> 24;
++ if (src == 0)
++ return;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64a($f24,%0)
++ expand_alpha($f24,$f26)
++ store64a($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ mask = mask_line;
++ mask_line += mask_stride;
++ w = width;
++
++ while (w)
++ {
++ m = *mask;
++ d = *dst;
++
++ if (m)
++ {
++
++ d = CONVERT_0565_TO_0888 (d);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load32r(%1,$f22)
++ expand_alpha_rev($f22,$f28)
++ in_over($f24,$f26,$f28,$f20)
++ store8888r($f8,%0)
++ :"+r"(d):"r"(m):clobber
++ );
++
++ *dst = CONVERT_8888_TO_0565 (d);
++
++ }
++
++ w--;
++ mask++;
++ dst++;
++ }
++ }
++}
++
++static void
++ls_composite_over_n_8888_0565_ca (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src, srca, m, d;
++ uint16_t *dst_line;
++ uint32_t *mask_line;
++ int dst_stride, mask_stride;
++ __m64 vsrc, vsrca;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ srca = src >> 24;
++ if (src == 0)
++ return;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint32_t, mask_stride, mask_line, 1);
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64a($f24,%0)
++ expand_alpha($f24,$f26)
++ store64a($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++
++ while (height--)
++ {
++ int twidth = width;
++ uint32_t *p = (uint32_t *)mask_line;
++ uint16_t *q = (uint16_t *)dst_line;
++
++ while (twidth)
++ {
++
++ m = *(uint32_t *)p;
++ d = *q;
++
++ if (m)
++ {
++
++ d = CONVERT_0565_TO_0888 (d);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%0,$f20)
++ load8888r(%1,$f22)
++ in_over($f24,$f26,$f22,$f20)
++ store8888r($f8,%0)
++ :"+r"(d):"r"(m):clobber
++ );
++
++ *q = CONVERT_8888_TO_0565 (d);
++
++ }
++
++ twidth--;
++ p++;
++ q++;
++ }
++
++ mask_line += mask_stride;
++ dst_line += dst_stride;
++ }
++}
++static void
++ls_composite_over_pixbuf_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t *dst_line, *dst;
++ uint32_t *src_line, *src;
++ int dst_stride, src_stride;
++ int32_t w;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++
++#if 0
++ /* FIXME */
++ assert (src_image->drawable == mask_image->drawable);
++#endif
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ src = src_line;
++ src_line += src_stride;
++ w = width;
++
++ while (w)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f22)
++ load8888r(%0,$f20)
++ over_rev_non_pre($f22,$f20)
++ store8888r($f8,%0)
++ :"+r"(*dst):"r"(*src):clobber
++ );
++
++ w--;
++ dst++;
++ src++;
++ }
++ }
++}
++static void
++ls_composite_over_pixbuf_0565 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint16_t *dst_line, *dst;
++ uint32_t *src_line, *src, d;
++ int dst_stride, src_stride;
++ int32_t w;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
++
++#if 0
++ /* FIXME */
++ assert (src_image->drawable == mask_image->drawable);
++#endif
++
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ src = src_line;
++ src_line += src_stride;
++ w = width;
++
++ while (w)
++ {
++
++ d = *dst;
++ d = CONVERT_0565_TO_0888 (d);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%1,$f20)
++ load8888r(%0,$f24)
++ over_rev_non_pre($f20,$f24)
++ store8888r($f8,%0)
++ :"+r"(d):"r"(*src):clobber
++ );
++
++ *dst = CONVERT_8888_TO_0565 (d);
++
++ w--;
++ dst++;
++ src++;
++ }
++ }
++}
++
++static void
++ls_composite_src_n_8_8888 (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ uint32_t src, srca;
++ uint32_t *dst_line, *dst, m;
++ uint8_t *mask_line, *mask;
++ int dst_stride, mask_stride;
++ int32_t w;
++ __m64 vsrc, vsrca;
++ uint64_t srcsrc;
++
++ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
++
++ srca = src >> 24;
++ if (src == 0)
++ {
++ pixman_fill_ls (dst_image->bits.bits, dst_image->bits.rowstride,
++ PIXMAN_FORMAT_BPP (dst_image->bits.format),
++ dest_x, dest_y, width, height, 0);
++ return;
++ }
++
++ srcsrc = (uint64_t)src << 32 | src;
++
++ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
++ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load8888r(%2,$f24)
++ store64a($f24,%0)
++ expand_alpha($f24,$f26)
++ store64a($f26,%1)
++ :"=m"(vsrc), "=m"(vsrca):"r"(src):clobber
++ );
++ while (height--)
++ {
++ dst = dst_line;
++ dst_line += dst_stride;
++ mask = mask_line;
++ mask_line += mask_stride;
++ w = width;
++
++ while (w)
++ {
++ m = *mask;
++
++ if (m)
++ {
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ load32r(%1,$f20)
++ expand_alpha_rev($f20,$f28)
++ in($f24,$f28)
++ store8888r($f8,%0)
++ :"=r"(*dst):"r"(m):clobber
++ );
++
++ }
++ else
++ {
++ *dst = 0;
++ }
++
++ w--;
++ mask++;
++ dst++;
++ }
++ }
++}
+diff -urN pixman//pixman/pixman-cpu.c Pixman.Loongson//pixman/pixman-cpu.c
+--- pixman//pixman/pixman-cpu.c 2010-12-25 18:46:00.073234000 +0800
++++ Pixman.Loongson//pixman/pixman-cpu.c 2010-12-25 18:39:15.360337000 +0800
+@@ -579,7 +579,9 @@
+ if (pixman_have_mmx ())
+ return _pixman_implementation_create_mmx ();
+ #endif
+-
++#ifdef USE_LS
++ return _pixman_implementation_create_ls ();
++#endif
+ #ifdef USE_ARM_NEON
+ if (pixman_have_arm_neon ())
+ return _pixman_implementation_create_arm_neon ();
+diff -urN pixman//pixman/pixman-ls.c Pixman.Loongson//pixman/pixman-ls.c
+--- pixman//pixman/pixman-ls.c 1970-01-01 08:00:00.000000000 +0800
++++ Pixman.Loongson//pixman/pixman-ls.c 2010-12-25 18:39:15.386759000 +0800
+@@ -0,0 +1,538 @@
++/*
++* Based on pixman-mmx.c
++* Implemented for loongson 2F only.
++* Free software based on GPL licence.
++* Copyright 2010 WG Ge.
++*/
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#include <stdlib.h>
++#include <string.h>
++#include <math.h>
++#include <limits.h>
++#include <stdio.h>
++#include "pixman-private.h"
++#include "pixman-combine32.h"
++#include "primitive.h"
++
++#define __m64 __attribute__ ((aligned (8))) uint64_t
++#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
++#define DECLARE_ALIGNED_8(t, v, ...) DECLARE_ALIGNED(8, t, v)
++
++DECLARE_ALIGNED_8 (const uint64_t, ls_4x00ff ) = 0x00ff00ff00ff00ffULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_4x0080 ) = 0x0080008000800080ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_565_rgb ) = 0x000001f0003f001fULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_565_unpack_multiplier ) = 0x0000008404100840ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_565_r ) = 0x000000f800000000ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_565_g ) = 0x0000000000fc0000ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_565_b ) = 0x00000000000000f8ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_mask_0 ) = 0xffffffffffff0000ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_mask_1 ) = 0xffffffff0000ffffULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_mask_2 ) = 0xffff0000ffffffffULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_mask_3 ) = 0x0000ffffffffffffULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_full_alpha ) = 0x00ff000000000000ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_ffff0000ffff0000 ) = 0xffff0000ffff0000ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_0000ffff00000000 ) = 0x0000ffff00000000ULL;
++DECLARE_ALIGNED_8 (const uint64_t, ls_000000000000ffff ) = 0x000000000000ffffULL;
++
++
++pixman_bool_t
++pixman_fill_ls (uint32_t *bits,
++ int stride,
++ int bpp,
++ int x,
++ int y,
++ int width,
++ int height,
++ uint32_t xor)
++{
++ uint64_t fill;
++ uint32_t byte_width;
++ uint8_t *byte_line;
++
++
++
++ if (bpp != 16 && bpp != 32 && bpp != 8)
++ return FALSE;
++
++ if (bpp == 8)
++ {
++ stride = stride * (int) sizeof (uint32_t) / 1;
++ byte_line = (uint8_t *)(((uint8_t *)bits) + stride * y + x);
++ byte_width = width;
++ stride *= 1;
++ xor = (xor & 0xff) * 0x01010101;
++ }
++ else if (bpp == 16)
++ {
++ stride = stride * (int) sizeof (uint32_t) / 2;
++ byte_line = (uint8_t *)(((uint16_t *)bits) + stride * y + x);
++ byte_width = 2 * width;
++ stride *= 2;
++ xor = (xor & 0xffff) * 0x00010001;
++ }
++ else
++ {
++ stride = stride * (int) sizeof (uint32_t) / 4;
++ byte_line = (uint8_t *)(((uint32_t *)bits) + stride * y + x);
++ byte_width = 4 * width;
++ stride *= 4;
++ }
++
++ fill = ((uint64_t)xor << 32) | xor;
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ "ldc1 $f24, %0 \n\t"
++ ::"m"(fill):"$f24"
++ );
++ while (height--)
++ {
++ int w;
++ uint8_t *d = byte_line;
++
++ byte_line += stride;
++ w = byte_width;
++
++ while (w >= 1 && ((unsigned long)d & 1))
++ {
++ *(uint8_t *)d = (xor & 0xff);
++ w--;
++ d++;
++ }
++
++ while (w >= 2 && ((unsigned long)d & 3))
++ {
++ *(uint16_t *)d = xor;
++ w -= 2;
++ d += 2;
++ }
++
++ while (w >= 4 && ((unsigned long)d & 7))
++ {
++ *(uint32_t *)d = xor;
++
++ w -= 4;
++ d += 4;
++ }
++
++ while (w >= 64)
++ {
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ "dmfc1 $8, $f24 \n\t"
++ "sd $8 , (%0) \n\t"
++ "sd $8 , 8(%0) \n\t"
++ "sd $8 , 16(%0) \n\t"
++ "sd $8 , 24(%0) \n\t"
++ "sd $8 , 32(%0) \n\t"
++ "sd $8 , 40(%0) \n\t"
++ "sd $8 , 48(%0) \n\t"
++ "sd $8 , 56(%0) \n\t"
++ ::"r"(d):"$8","memory","$f24"
++ );
++ w -= 64;
++ d += 64;
++ }
++
++ while (w >= 4)
++ {
++ *(uint32_t *)d = xor;
++
++ w -= 4;
++ d += 4;
++ }
++ while (w >= 2)
++ {
++ *(uint16_t *)d = xor;
++ w -= 2;
++ d += 2;
++ }
++ while (w >= 1)
++ {
++ *(uint8_t *)d = (xor & 0xff);
++ w--;
++ d++;
++ }
++
++ }
++ return TRUE;
++}
++
++static pixman_bool_t
++pixman_blt_ls (uint32_t *src_bits,
++ uint32_t *dst_bits,
++ int src_stride,
++ int dst_stride,
++ int src_bpp,
++ int dst_bpp,
++ int src_x,
++ int src_y,
++ int dst_x,
++ int dst_y,
++ int width,
++ int height)
++{
++ uint8_t * src_bytes;
++ uint8_t * dst_bytes;
++ int byte_width;
++
++ if (src_bpp != dst_bpp)
++ return FALSE;
++
++ if (src_bpp == 16)
++ {
++ src_stride = src_stride * (int) sizeof (uint32_t) / 2;
++ dst_stride = dst_stride * (int) sizeof (uint32_t) / 2;
++ src_bytes = (uint8_t *)(((uint16_t *)src_bits) + src_stride * (src_y) + (src_x));
++ dst_bytes = (uint8_t *)(((uint16_t *)dst_bits) + dst_stride * (dst_y) + (dst_x));
++ byte_width = 2 * width;
++ src_stride *= 2;
++ dst_stride *= 2;
++ }
++ else if (src_bpp == 32)
++ {
++ src_stride = src_stride * (int) sizeof (uint32_t) / 4;
++ dst_stride = dst_stride * (int) sizeof (uint32_t) / 4;
++ src_bytes = (uint8_t *)(((uint32_t *)src_bits) + src_stride * (src_y) + (src_x));
++ dst_bytes = (uint8_t *)(((uint32_t *)dst_bits) + dst_stride * (dst_y) + (dst_x));
++ byte_width = 4 * width;
++ src_stride *= 4;
++ dst_stride *= 4;
++ }
++ else
++ {
++ return FALSE;
++ }
++
++ while (height--)
++ {
++ int w;
++ uint8_t *s = src_bytes;
++ uint8_t *d = dst_bytes;
++ src_bytes += src_stride;
++ dst_bytes += dst_stride;
++ w = byte_width;
++
++ while (w >= 2 && ((unsigned long)d & 3))
++ {
++ *(uint16_t *)d = *(uint16_t *)s;
++ w -= 2;
++ s += 2;
++ d += 2;
++ }
++
++ while (w >= 4 && ((unsigned long)d & 7))
++ {
++ *(uint32_t *)d = *(uint32_t *)s;
++
++ w -= 4;
++ s += 4;
++ d += 4;
++ }
++ if ((unsigned long)s & 7)
++{
++ while (w >= 64)
++ {
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ "uld $8 , (%1) \n\t"
++ "uld $9 , 8(%1) \n\t"
++ "uld $10, 16(%1) \n\t"
++ "uld $11, 24(%1) \n\t"
++ "sd $8 , (%0) \n\t"
++ "sd $9 , 8(%0) \n\t"
++ "sd $10, 16(%0) \n\t"
++ "sd $11, 24(%0) \n\t"
++
++ "uld $8 , 32(%1) \n\t"
++ "uld $9 , 40(%1) \n\t"
++ "uld $10, 48(%1) \n\t"
++ "uld $11, 56(%1) \n\t"
++ "sd $8 , 32(%0) \n\t"
++ "sd $9 , 40(%0) \n\t"
++ "sd $10, 48(%0) \n\t"
++ "sd $11, 56(%0) \n\t"
++ ::"r"(d),"r"(s):"$8","$9","$10","$11","memory"
++ );
++ w -= 64;
++ s += 64;
++ d += 64;
++ }
++}
++else
++{
++ while (w >= 64)
++ {
++
++ __asm__ volatile (
++ ".set arch=loongson2f \n\t"
++ "ld $8 , (%1) \n\t"
++ "ld $9 , 8(%1) \n\t"
++ "ld $10, 16(%1) \n\t"
++ "ld $11, 24(%1) \n\t"
++ "sd $8 , (%0) \n\t"
++ "sd $9 , 8(%0) \n\t"
++ "sd $10, 16(%0) \n\t"
++ "sd $11, 24(%0) \n\t"
++
++ "ld $8 , 32(%1) \n\t"
++ "ld $9 , 40(%1) \n\t"
++ "ld $10, 48(%1) \n\t"
++ "ld $11, 56(%1) \n\t"
++ "sd $8 , 32(%0) \n\t"
++ "sd $9 , 40(%0) \n\t"
++ "sd $10, 48(%0) \n\t"
++ "sd $11, 56(%0) \n\t"
++ ::"r"(d),"r"(s):"$8","$9","$10","$11","memory"
++ );
++ w -= 64;
++ s += 64;
++ d += 64;
++ }
++}
++
++ while (w >= 4)
++ {
++ *(uint32_t *)d = *(uint32_t *)s;
++
++ w -= 4;
++ s += 4;
++ d += 4;
++ }
++ if (w >= 2)
++ {
++ *(uint16_t *)d = *(uint16_t *)s;
++ w -= 2;
++ s += 2;
++ d += 2;
++ }
++ }
++ return TRUE;
++}
++
++
++#include "pixman-composite-ls.c"
++#include "pixman-combine-ls.c"
++
++static pixman_bool_t
++ls_blt (pixman_implementation_t *imp,
++ uint32_t * src_bits,
++ uint32_t * dst_bits,
++ int src_stride,
++ int dst_stride,
++ int src_bpp,
++ int dst_bpp,
++ int src_x,
++ int src_y,
++ int dst_x,
++ int dst_y,
++ int width,
++ int height)
++{
++ if (!pixman_blt_ls (
++ src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
++ src_x, src_y, dst_x, dst_y, width, height))
++ {
++ return _pixman_implementation_blt (
++ imp->delegate,
++ src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
++ src_x, src_y, dst_x, dst_y, width, height);
++ }
++
++ return TRUE;
++}
++
++static pixman_bool_t
++ls_fill (pixman_implementation_t *imp,
++ uint32_t * bits,
++ int stride,
++ int bpp,
++ int x,
++ int y,
++ int width,
++ int height,
++ uint32_t xor)
++{
++ if (!pixman_fill_ls (bits, stride, bpp, x, y, width, height, xor))
++ {
++ return _pixman_implementation_fill (
++ imp->delegate, bits, stride, bpp, x, y, width, height, xor);
++ }
++
++ return TRUE;
++}
++
++static void
++ls_composite_copy_area (pixman_implementation_t *imp,
++ pixman_op_t op,
++ pixman_image_t * src_image,
++ pixman_image_t * mask_image,
++ pixman_image_t * dst_image,
++ int32_t src_x,
++ int32_t src_y,
++ int32_t mask_x,
++ int32_t mask_y,
++ int32_t dest_x,
++ int32_t dest_y,
++ int32_t width,
++ int32_t height)
++{
++ pixman_blt_ls (src_image->bits.bits,
++ dst_image->bits.bits,
++ src_image->bits.rowstride,
++ dst_image->bits.rowstride,
++ PIXMAN_FORMAT_BPP (src_image->bits.format),
++ PIXMAN_FORMAT_BPP (dst_image->bits.format),
++ src_x, src_y, dest_x, dest_y, width, height);
++}
++
++
++static const pixman_fast_path_t ls_fast_paths[] =
++{
++
++//these are implemented so far
++#if 1
++ PIXMAN_STD_FAST_PATH (OVER, x8r8g8b8, a8, x8r8g8b8, ls_composite_over_x888_8_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, x8r8g8b8, a8, a8r8g8b8, ls_composite_over_x888_8_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, a8, x8b8g8r8, ls_composite_over_x888_8_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, a8, a8b8g8r8, ls_composite_over_x888_8_8888 ),
++#endif
++
++#if 1
++//over_8888_0565 significant perf improvement, slight better L1, L2, 30% better RT
++ PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, r5g6b5, ls_composite_over_8888_0565 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, b5g6r5, ls_composite_over_8888_0565 ),
++ PIXMAN_STD_FAST_PATH (OVER, pixbuf, pixbuf, r5g6b5, ls_composite_over_pixbuf_0565 ),
++ PIXMAN_STD_FAST_PATH (OVER, rpixbuf, rpixbuf, b5g6r5, ls_composite_over_pixbuf_0565 ),
++
++//big improvement some closing 100%
++ PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, b5g6r5, ls_composite_over_n_8888_0565_ca ),
++ PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, r5g6b5, ls_composite_over_n_8888_0565_ca ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, a8, r5g6b5, ls_composite_over_n_8_0565 ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, a8, b5g6r5, ls_composite_over_n_8_0565 ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, null, r5g6b5, ls_composite_over_n_0565 ),
++
++//ubalbe to bench with lowlevel bench, believe it is a gain in perf
++ PIXMAN_STD_FAST_PATH (OVER, x8r8g8b8, solid, a8r8g8b8, ls_composite_over_x888_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, x8r8g8b8, solid, x8r8g8b8, ls_composite_over_x888_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, solid, a8b8g8r8, ls_composite_over_x888_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, solid, x8b8g8r8, ls_composite_over_x888_n_8888 ),
++
++//performance regress 30% in L1,L2, but significant improvement in RT
++ PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, a8b8g8r8, ls_composite_over_8888_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, x8b8g8r8, ls_composite_over_8888_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, a8r8g8b8, ls_composite_over_8888_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, x8r8g8b8, ls_composite_over_8888_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, pixbuf, pixbuf, a8r8g8b8, ls_composite_over_pixbuf_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, pixbuf, pixbuf, x8r8g8b8, ls_composite_over_pixbuf_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, rpixbuf, rpixbuf, a8b8g8r8, ls_composite_over_pixbuf_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, rpixbuf, rpixbuf, x8b8g8r8, ls_composite_over_pixbuf_8888 ),
++
++//same performance in L1,L2, but significant improvement in RT 30-40%
++ PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, solid, a8r8g8b8, ls_composite_over_8888_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, solid, x8r8g8b8, ls_composite_over_8888_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, solid, a8b8g8r8, ls_composite_over_8888_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, solid, x8b8g8r8, ls_composite_over_8888_n_8888 ),
++
++//significant perf improvement 20%
++ PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8r8g8b8, ls_composite_over_n_8_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8r8g8b8, ls_composite_over_n_8_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8b8g8r8, ls_composite_over_n_8_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8b8g8r8, ls_composite_over_n_8_8888 ),
++
++//3 times perf improvements
++ PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, a8r8g8b8, ls_composite_over_n_8888_8888_ca ),
++ PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, x8r8g8b8, ls_composite_over_n_8888_8888_ca ),
++ PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, a8b8g8r8, ls_composite_over_n_8888_8888_ca ),
++ PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, x8b8g8r8, ls_composite_over_n_8888_8888_ca ),
++
++//significant performance boost
++ PIXMAN_STD_FAST_PATH (OVER, solid, null, a8r8g8b8, ls_composite_over_n_8888 ),
++ PIXMAN_STD_FAST_PATH (OVER, solid, null, x8r8g8b8, ls_composite_over_n_8888 ),
++//simple add, expect better perf in generic code
++// PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, null, a8r8g8b8, ls_composite_add_8888_8888 ),
++// PIXMAN_STD_FAST_PATH (ADD, a8b8g8r8, null, a8b8g8r8, ls_composite_add_8888_8888 ),
++
++// FIXME: Copy memory are not better than geneic code
++#if 0
++ PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, null, a8r8g8b8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, a8b8g8r8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, null, x8r8g8b8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, x8b8g8r8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, x8r8g8b8, null, x8r8g8b8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, x8b8g8r8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, r5g6b5, null, r5g6b5, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (SRC, b5g6r5, null, b5g6r5, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (OVER, x8r8g8b8, null, x8r8g8b8, ls_composite_copy_area ),
++ PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, null, x8b8g8r8, ls_composite_copy_area ),
++#endif
++
++//significant improvement
++ PIXMAN_STD_FAST_PATH (SRC, solid, a8, a8r8g8b8, ls_composite_src_n_8_8888 ),
++ PIXMAN_STD_FAST_PATH (SRC, solid, a8, x8r8g8b8, ls_composite_src_n_8_8888 ),
++ PIXMAN_STD_FAST_PATH (SRC, solid, a8, a8b8g8r8, ls_composite_src_n_8_8888 ),
++ PIXMAN_STD_FAST_PATH (SRC, solid, a8, x8b8g8r8, ls_composite_src_n_8_8888 ),
++
++#endif
++
++//these are not yet implemented
++
++#if 0
++
++ PIXMAN_STD_FAST_PATH (ADD, a8, null, a8, ls_composite_add_8000_8000 ),
++ PIXMAN_STD_FAST_PATH (ADD, solid, a8, a8, ls_composite_add_n_8_8 ),
++ PIXMAN_STD_FAST_PATH (IN, a8, null, a8, ls_composite_in_8_8 ),
++ PIXMAN_STD_FAST_PATH (IN, solid, a8, a8, ls_composite_in_n_8_8 ),
++#endif
++
++
++ { PIXMAN_OP_NONE },
++};
++
++pixman_implementation_t *
++_pixman_implementation_create_ls (void)
++{
++ pixman_implementation_t *general = _pixman_implementation_create_fast_path ();
++ pixman_implementation_t *imp = _pixman_implementation_create (general, ls_fast_paths);
++
++//Turned on but unable to benchmark.
++#if 1
++ imp->combine_32[PIXMAN_OP_OVER] = ls_combine_over_u;
++ imp->combine_32[PIXMAN_OP_OVER_REVERSE] = ls_combine_over_reverse_u;
++ imp->combine_32[PIXMAN_OP_IN] = ls_combine_in_u;
++ imp->combine_32[PIXMAN_OP_IN_REVERSE] = ls_combine_in_reverse_u;
++ imp->combine_32[PIXMAN_OP_OUT] = ls_combine_out_u;
++ imp->combine_32[PIXMAN_OP_OUT_REVERSE] = ls_combine_out_reverse_u;
++ imp->combine_32[PIXMAN_OP_ATOP] = ls_combine_atop_u;
++ imp->combine_32[PIXMAN_OP_ATOP_REVERSE] = ls_combine_atop_reverse_u;
++ imp->combine_32[PIXMAN_OP_XOR] = ls_combine_xor_u;
++ imp->combine_32[PIXMAN_OP_ADD] = ls_combine_add_u;
++ imp->combine_32[PIXMAN_OP_SATURATE] = ls_combine_saturate_u;
++
++ imp->combine_32_ca[PIXMAN_OP_SRC] = ls_combine_src_ca;
++ imp->combine_32_ca[PIXMAN_OP_OVER] = ls_combine_over_ca;
++ imp->combine_32_ca[PIXMAN_OP_OVER_REVERSE] = ls_combine_over_reverse_ca;
++ imp->combine_32_ca[PIXMAN_OP_IN] = ls_combine_in_ca;
++ imp->combine_32_ca[PIXMAN_OP_IN_REVERSE] = ls_combine_in_reverse_ca;
++ imp->combine_32_ca[PIXMAN_OP_OUT] = ls_combine_out_ca;
++ imp->combine_32_ca[PIXMAN_OP_OUT_REVERSE] = ls_combine_out_reverse_ca;
++ imp->combine_32_ca[PIXMAN_OP_ATOP] = ls_combine_atop_ca;
++ imp->combine_32_ca[PIXMAN_OP_ATOP_REVERSE] = ls_combine_atop_reverse_ca;
++ imp->combine_32_ca[PIXMAN_OP_XOR] = ls_combine_xor_ca;
++ imp->combine_32_ca[PIXMAN_OP_ADD] = ls_combine_add_ca;
++#endif
++
++//FIXME blt and fill not shown better perf than geneic code
++#if 0
++ imp->blt = ls_blt;
++ imp->fill = ls_fill;
++#endif
++
++ return imp;
++}
++
+diff -urN pixman//pixman/pixman-private.h Pixman.Loongson//pixman/pixman-private.h
+--- pixman//pixman/pixman-private.h 2010-12-25 18:46:00.102841000 +0800
++++ Pixman.Loongson//pixman/pixman-private.h 2010-12-25 18:39:15.401808000 +0800
+@@ -493,6 +493,11 @@
+ pixman_implementation_t *
+ _pixman_implementation_create_fast_path (void);
+
++#ifdef USE_LS
++pixman_implementation_t *
++_pixman_implementation_create_ls (void);
++#endif
++
+ #ifdef USE_MMX
+ pixman_implementation_t *
+ _pixman_implementation_create_mmx (void);
+diff -urN pixman//pixman/primitive.h Pixman.Loongson//pixman/primitive.h
+--- pixman//pixman/primitive.h 1970-01-01 08:00:00.000000000 +0800
++++ Pixman.Loongson//pixman/primitive.h 2010-12-25 18:39:15.457084000 +0800
+@@ -0,0 +1,214 @@
++/*
++* MMX register usage protocal
++* return result: f8
++* tmp immediate f12
++* tmp register in primtive f14 f16 f18
++* tmp register in pixman f0,f4,f6,f10,f20,f22,
++* globals in function f24, f26, f28,f30
++* Exceptions for load and store:
++* load will specify dest FPR register
++* store will specify src FPR register
++* expand_alpha(_rev) implemented with GPR, dest FPR as the 2nd parameter
++*
++* Special alert: don't use return result $f8 as input, it might be overwritten
++*/
++
++
++/*primitive macros */
++
++#define clobber "$8","$9","$f0","$f2","$f8",\
++ "$f12","$f14","$f16","$f18","$f20",\
++ "$f22","$f24","$f26","$f28","$f30"
++
++#define DMTC1_IMM(regc1,imm) \
++ "dli $8, "#imm" \n\t" \
++ "dmtc1 $8, "#regc1" \n\t"
++
++#define MTC1_IMM(regc1,imm) \
++ "li $8, "#imm" \n\t" \
++ "dmtc1 $8, "#regc1" \n\t"
++
++
++#define save_to(reg1) "mov.d "#reg1", $f8 \n\t"
++#define zero(reg1) "xor "#reg1","#reg1","#reg1" \n\t"
++
++#define load32(sp,reg1) \
++ "ulw $8, "#sp" \n\t" \
++ "dmtc1 $8, "#reg1" \n\t"
++
++#define load32a(sp,reg1) \
++ "lw $8, "#sp" \n\t" \
++ "dmtc1 $8, "#reg1" \n\t"
++
++#define load32r(sp,reg1) \
++ "dmtc1 "#sp", "#reg1" \n\t"
++
++#define load64(sp,reg1) \
++ "uld $8, "#sp" \n\t" \
++ "dmtc1 $8, "#reg1" \n\t"
++
++#define load64a(sp,reg1) \
++ "ld $8, "#sp" \n\t" \
++ "dmtc1 $8, "#reg1" \n\t"
++
++
++#define store32(reg1,sp) \
++ "dmfc1 $8, "#reg1" \n\t" \
++ "usw $8, "#sp" \n\t"
++
++#define store32r(reg1,sp) \
++ "dmfc1 "#sp", "#reg1" \n\t"
++
++#define store32a(reg1,sp) \
++ "swc1 "#reg1", "#sp" \n\t"
++
++#define store64(reg1,sp) \
++ "dmfc1 $8, "#reg1" \n\t" \
++ "usd $8, "#sp" \n\t"
++
++#define store64a(reg1,sp) \
++ "sdc1 "#reg1", "#sp" \n\t"
++
++#define load8888(sp,reg1) \
++ load64(sp,reg1) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "punpcklbh "#reg1", "#reg1", $f12 \n\t"
++
++#define load8888r(sp,reg1) \
++ load32r(sp,reg1) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "punpcklbh "#reg1", "#reg1", $f12 \n\t"
++
++#define load8888a(sp,reg1) \
++ load64a(sp,reg1) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "punpcklbh "#reg1", "#reg1", $f12 \n\t"
++
++#define load8888ah(sp,reg1) \
++ load64a(sp,reg1) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "punpckhbh "#reg1", "#reg1", $f12 \n\t"
++
++#define store8888(reg1,sp) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "packushb "#reg1", "#reg1", $f12 \n\t" \
++ store64(reg1,sp)
++
++#define store8888r(reg1,sp) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "packushb "#reg1", "#reg1", $f12 \n\t" \
++ store32r(reg1,sp)
++
++#define store8888a(reg1,sp) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "packushb "#reg1", "#reg1", $f12 \n\t" \
++ store64a(reg1,sp)
++
++#define pack8888(reg1,reg2) \
++ "packushb $f8, "#reg1","#reg2" \n\t"
++
++#define unpack8888(reg1,reg2) \
++ "punpcklbh $f8, "#reg1","#reg2" \n\t"
++
++
++#define negate(sreg,dreg) \
++ DMTC1_IMM($f12, 0x00ff00ff00ff00ff)\
++ "xor "#dreg", "#sreg", $f12 \n\t"
++
++#define pix_add(reg1,reg2) \
++ "paddusb $f8, "#reg1", "#reg2" \n\t"
++
++#define pix_multiply(reg1,reg2) \
++ "pmullh $f14, "#reg1", "#reg2" \n\t " \
++ DMTC1_IMM($f12, 0x0080008000800080) \
++ "paddush $f14, $f14, $f12 \n\t "\
++ MTC1_IMM($f12, 8) \
++ "psrlh $f16, $f14, $f12 \n\t" \
++ "paddush $f14, $f14, $f16 \n\t" \
++ "psrlh $f8, $f14, $f12 \n\t"
++
++#define pix_add_mul(reg1,reg2,reg3,reg4) \
++ pix_multiply(reg1,reg2) \
++ "mov.d $f18, $f8 \n\t" \
++ pix_multiply(reg3,reg4) \
++ pix_add($f18,$f8)
++
++#define expand_alpha(sreg,dreg) \
++ "dmfc1 $8, "#sreg" \n\t" \
++ "dsrl32 $8, $8, 16 \n\t" \
++ "dsll $9, $8, 16 \n\t" \
++ "or $8, $8, $9 \n\t" \
++ "dsll32 $9, $8, 0 \n\t" \
++ "or $8, $8, $9 \n\t" \
++ "dmtc1 $8, "#dreg" \n\t"
++
++#define expand_alpha_rev(sreg,dreg)\
++ "dmfc1 $8, "#sreg" \n\t" \
++ "dsll32 $8, $8, 16 \n\t" \
++ "dsrl32 $8, $8, 16 \n\t" \
++ "dsll $9, $8, 16 \n\t" \
++ "or $8, $8, $9 \n\t" \
++ "dsll32 $9, $8, 0 \n\t" \
++ "or $8, $8, $9 \n\t" \
++ "dmtc1 $8, "#dreg" \n\t"
++
++#define expand8888(reg1,pos) expand8888_##pos(reg1)
++
++#define expand8888_0(reg1) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "punpcklbh $f8, "#reg1", $f12 \n\t"
++
++#define expand8888_1(reg1) \
++ "xor $f12, $f12, $f12 \n\t" \
++ "punpckhbh $f8, "#reg1", $f12 \n\t"
++
++#define expandx888(reg1,pos) \
++ expand8888(reg1,pos) \
++ DMTC1_IMM($f12, 0x00ff000000000000) \
++ "or $f8, $f8, $f12 \n\t"
++
++#define invert_colors(reg1) \
++ DMTC1_IMM($f12, 0xffff0000ffff0000) \
++ "and $f14, "#reg1", $f12 \n\t" \
++ DMTC1_IMM($f12, 0x000000000000ffff) \
++ "and $f16, "#reg1", $f12 \n\t" \
++ DMTC1_IMM($f12, 0x0000ffff00000000) \
++ "and $f18, "#reg1", $f12 \n\t" \
++ MTC1_IMM($f12, 32) \
++ "dsll $f16, $f16, $f12 \n\t" \
++ "dsrl $f18, $f18, $f12 \n\t" \
++ "or $f14, $f14, $f16 \n\t" \
++ "or $f8, $f14, $f18 \n\t"
++
++#define over(reg1,reg2,reg3) \
++ negate(reg2,$f8) \
++ pix_multiply(reg3, $f8)\
++ pix_add(reg1, $f8)
++
++
++#define over_rev_non_pre(reg1,reg2) \
++ expand_alpha(reg1,$f0) \
++ DMTC1_IMM($f12,0x00ff000000000000) \
++ "or $f2, $f0, $f12 \n\t" \
++ invert_colors(reg1) \
++ pix_multiply($f8,$f2) \
++ save_to($f2) \
++ over($f2, $f0, reg2)
++
++#define in(reg1,reg2) pix_multiply(reg1,reg2)
++
++#define in_over_full_src_alpha(reg1,reg2,reg3) \
++ DMTC1_IMM($f12,0x00ff000000000000) \
++ "or $f0, "#reg1", $f12 \n\t" \
++ in($f0,reg2) \
++ save_to($f0) \
++ over($f0,reg2,reg3)
++
++#define in_over(reg1,reg2,reg3,reg4) \
++ in(reg1,reg3) \
++ "mov.d $f0, $f8 \n\t" \
++ pix_multiply(reg2,reg3) \
++ "mov.d $f2, $f8 \n\t" \
++ over($f0,$f2,reg4)
++
++
diff --git a/extra/plotutils/PKGBUILD b/extra/plotutils/PKGBUILD
new file mode 100644
index 000000000..099938aa2
--- /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' 'mips64el')
+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..2ef5e2208
--- /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.1
+pkgdesc="Utilities and scripts for suspend and hibernate power management"
+arch=('i686' 'x86_64' 'mips64el')
+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..908d7acdd
--- /dev/null
+++ b/extra/pmount/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 119797 2011-04-15 09:29:18Z jgc $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=pmount
+pkgver=0.9.23
+pkgrel=2
+pkgdesc="mount removable devices as normal user"
+arch=(i686 x86_64 'mips64el')
+license=('GPL2')
+url="http://pmount.alioth.debian.org/"
+backup=('etc/pmount.allow')
+depends=('sysfsutils>=2.0.0-1' 'bash')
+makedepends=('intltool')
+source=(https://alioth.debian.org/frs/download.php/3310/pmount-0.9.23.tar.bz2)
+md5sums=('db19f5bf3151b1b41705ec7bafa439d3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-hal
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/polkit-gnome/PKGBUILD b/extra/polkit-gnome/PKGBUILD
new file mode 100644
index 000000000..585d1008a
--- /dev/null
+++ b/extra/polkit-gnome/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 141266 2011-10-27 16:27:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=polkit-gnome
+pkgver=0.105
+pkgrel=1
+pkgdesc="PolicyKit integration for the GNOME desktop"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+license=('LGPL')
+depends=('polkit' 'gtk3')
+makedepends=('intltool' 'gobject-introspection')
+options=(!libtool)
+source=(http://download.gnome.org/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.xz
+ polkit-gnome-authentication-agent-1.desktop)
+sha256sums=('1784494963b8bf9a00eedc6cd3a2868fb123b8a5e516e66c5eda48df17ab9369'
+ 'ad19e73ae8eba00a8f66bd9afd3e0e1fd7ca22f716e29b97f097d9c01711e0de')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/polkit-gnome \
+ --disable-static
+ 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/extra/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/extra/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
new file mode 100644
index 000000000..fc2acc28d
--- /dev/null
+++ b/extra/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 unless-session gnome
diff --git a/extra/polkit-kde/PKGBUILD b/extra/polkit-kde/PKGBUILD
new file mode 100644
index 000000000..f81499717
--- /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' 'mips64el')
+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..4701bf6e6
--- /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' 'mips64el')
+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..60db8e35f
--- /dev/null
+++ b/extra/polkit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 144479 2011-12-06 17:28:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=polkit
+pkgver=0.103
+pkgrel=1
+pkgdesc="Application development toolkit for controlling system-wide privileges"
+arch=(i686 x86_64 'mips64el')
+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=('aaacf2ef18774ea8a825a426a7cfe763'
+ '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..9984494bd
--- /dev/null
+++ b/extra/poppler/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 142670 2011-11-12 17:46:43Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=poppler
+pkgname=('poppler' 'poppler-glib' 'poppler-qt')
+pkgver=0.18.1
+pkgrel=1
+arch=(i686 x86_64 mips64el)
+license=('GPL')
+makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection' 'libtool')
+options=('!libtool' '!emptydirs')
+url="http://poppler.freedesktop.org/"
+_testtag=0d2bfd4af4c76a3bac27ccaff793d9129df7b57a
+source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz
+ http://cgit.freedesktop.org/poppler/test/snapshot/test-${_testtag}.tar.bz2
+ git-fixes.patch)
+md5sums=('d30e883a27423c936ef338ce1d967e2d'
+ '9dc64c254a31e570507bdd4ad4ba629a'
+ 'a73ba6515aa73cb20c480692da52c79e')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+
+ autoreconf -fi
+
+ ./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
+}
+
+check() {
+ cd "${srcdir}"
+ ln -sf test-${_testtag} test
+ cd ${pkgbase}-${pkgver}
+ LANG=en_US.UTF-8 make check
+}
+
+package_poppler() {
+ pkgdesc="PDF rendering library based on xpdf 3.0"
+ depends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'lcms' 'poppler-data')
+ conflicts=("poppler-qt3<${pkgver}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -e 's/^glib_subdir =.*/glib_subdir =/' \
+ -e 's/^qt4_subdir =.*/qt4_subdir =/' -i Makefile
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc
+}
+
+package_poppler-glib() {
+ pkgdesc="Poppler glib bindings"
+ depends=("poppler=${pkgver}" 'glib2')
+
+ 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.*
+ rm -f "${pkgdir}/usr/bin/poppler-glib-demo"
+}
+
+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/poppler/git-fixes.patch b/extra/poppler/git-fixes.patch
new file mode 100644
index 000000000..a18a31aec
--- /dev/null
+++ b/extra/poppler/git-fixes.patch
@@ -0,0 +1,107 @@
+From e4a2adb02969e872e37e408ced4c39131c6751ea Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Sun, 30 Oct 2011 15:02:19 +0000
+Subject: pdftocairo: Make sure beginDocument() is always called
+
+This fixes a crash when rendering only odd/even pages in a printing
+format.
+---
+diff --git a/utils/pdftocairo.cc b/utils/pdftocairo.cc
+index e458ee5..1b67c90 100644
+--- a/utils/pdftocairo.cc
++++ b/utils/pdftocairo.cc
+@@ -903,6 +903,10 @@ int main(int argc, char *argv[]) {
+ lastPage = firstPage;
+ }
+
++ // Make sure firstPage is always used so that beginDocument() is called
++ if ((printOnlyEven && pg % 2 == 0) || (printOnlyOdd && pg % 2 == 1))
++ firstPage++;
++
+ cairoOut = new CairoOutputDev();
+ cairoOut->startDoc(doc->getXRef(), doc->getCatalog());
+ if (sz != 0)
+--
+cgit v0.9.0.2-2-gbebe
+From 61b1556d1c62bf090b2eadf93e4e7d0aff7b8015 Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Sun, 30 Oct 2011 15:08:46 +0000
+Subject: pdftocairo: Use fisrtPage instead of uninitialized pg variable
+
+This fixes an error in my previous commit.
+---
+diff --git a/utils/pdftocairo.cc b/utils/pdftocairo.cc
+index 1b67c90..d0d1ec6 100644
+--- a/utils/pdftocairo.cc
++++ b/utils/pdftocairo.cc
+@@ -904,7 +904,7 @@ int main(int argc, char *argv[]) {
+ }
+
+ // Make sure firstPage is always used so that beginDocument() is called
+- if ((printOnlyEven && pg % 2 == 0) || (printOnlyOdd && pg % 2 == 1))
++ if ((printOnlyEven && firstPage % 2 == 0) || (printOnlyOdd && firstPage % 2 == 1))
+ firstPage++;
+
+ cairoOut = new CairoOutputDev();
+--
+cgit v0.9.0.2-2-gbebe
+From ebf7fbc74da10d1bc423d33b26e30166870642e4 Mon Sep 17 00:00:00 2001
+From: Rex Dieter <rdieter@math.unl.edu>
+Date: Tue, 01 Nov 2011 08:40:53 +0000
+Subject: Fix pkg-config files
+
+We were using $FOO_REQUIRED instead of @FOO_REQUIRED@
+---
+diff --git a/configure.ac b/configure.ac
+index 3a120ca..c4f5b92 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -409,6 +409,7 @@ if test x$enable_cairo_output = xyes; then
+ POPPLER_GLIB_DISABLE_SINGLE_INCLUDES=""
+
+ GLIB_REQUIRED=2.18
++ AC_SUBST(GLIB_REQUIRED)
+ AC_ARG_ENABLE(poppler-glib,
+ AC_HELP_STRING([--disable-poppler-glib],
+ [Don't compile poppler glib wrapper.]),
+diff --git a/poppler-glib-uninstalled.pc.in b/poppler-glib-uninstalled.pc.in
+index 55a2278..5fcb6f2 100644
+--- a/poppler-glib-uninstalled.pc.in
++++ b/poppler-glib-uninstalled.pc.in
+@@ -1,7 +1,7 @@
+ Name: poppler-glib
+ Description: GLib wrapper for poppler - uninstalled
+ Version: @VERSION@
+-Requires: glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION
++Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
+
+ Libs: ${pc_top_builddir}/${pcfiledir}/glib/libpoppler-glib.la
+ Cflags: -I${pc_top_builddir}/${pcfiledir}/glib
+diff --git a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake
+index 3264ed6..e15e669 100644
+--- a/poppler-glib.pc.cmake
++++ b/poppler-glib.pc.cmake
+@@ -6,7 +6,7 @@ includedir=${prefix}/include
+ Name: poppler-glib
+ Description: GLib wrapper for poppler
+ Version: @POPPLER_VERSION@
+-Requires: glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION
++Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
+ @PC_REQUIRES_PRIVATE@
+
+ Libs: -L${libdir} -lpoppler-glib
+diff --git a/poppler-glib.pc.in b/poppler-glib.pc.in
+index 04d9bb9..9ba8978 100644
+--- a/poppler-glib.pc.in
++++ b/poppler-glib.pc.in
+@@ -6,7 +6,7 @@ includedir=@includedir@
+ Name: poppler-glib
+ Description: GLib wrapper for poppler
+ Version: @VERSION@
+-Requires: glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION
++Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
+ @PC_REQUIRES_PRIVATE@
+
+ Libs: -L${libdir} -lpoppler-glib
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/postfix/PKGBUILD b/extra/postfix/PKGBUILD
new file mode 100644
index 000000000..98a4e1def
--- /dev/null
+++ b/extra/postfix/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 142240 2011-11-07 04:19:17Z bisson $
+# Contributor: Jeff Brodnax <tullyarcher@bellsouth.net>
+# Contributor: Paul Mattal <paul@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=postfix
+pkgver=2.8.7
+pkgrel=1.1
+pkgdesc='Fast, easy to administer, secure mail server'
+url='http://www.postfix.org/'
+license=('custom')
+arch=('i686' 'x86_64' 'mips64el')
+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=('81c87aceff4d9af67a304354bab9c99ac98fc8a0'
+ '5fc3de6c7df1e5851a0a379e825148868808318b'
+ '40c6be2eb55e6437a402f43775cdb3d22ea87a66')
+
+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 DEBUG='' CCARGS=' \
+ -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl \
+ -DHAS_LDAP \
+ -DUSE_TLS \
+ -DHAS_MYSQL -I/usr/include/mysql \
+ -DHAS_PGSQL -I/usr/include/postgresql \
+ -DHAS_SQLITE \
+ ' AUXLIBS=' \
+ -lsasl2 \
+ -lldap -llber \
+ -lssl -lcrypto \
+ -lmysqlclient -lz -lm \
+ -lpq \
+ -lsqlite3 -lpthread \
+ ' OPT="${CFLAGS} ${LDFLAGS}"
+
+ make
+}
+
+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 -i "${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..c276e0919
--- /dev/null
+++ b/extra/postfix/install
@@ -0,0 +1,34 @@
+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.3` = -1 ]; then cat <<EOF
+
+==> You must now execute "/etc/rc.d/postfix reload" (or restart).
+==> This is needed because of an inter-daemon protocol change.
+
+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..fa314bb84
--- /dev/null
+++ b/extra/postfix/rc.d
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+name=postfix
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ /usr/sbin/postfix start &>/dev/null \
+ && { add_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+stop)
+ stat_busy "Stopping $name daemon"
+ /usr/sbin/postfix stop &>/dev/null \
+ && { rm_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+reload)
+ stat_busy "Reloading $name daemon"
+ /usr/sbin/postfix reload &>/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-old-upgrade/PKGBUILD b/extra/postgresql-old-upgrade/PKGBUILD
new file mode 100644
index 000000000..5bd0c1e83
--- /dev/null
+++ b/extra/postgresql-old-upgrade/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 144445 2011-12-05 21:10:18Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=postgresql-old-upgrade
+pkgver=9.0.6
+_majorver=${pkgver%.*}
+pkgrel=1
+pkgdesc="Minimal PostgreSQL build for migrating between major versions with pg_upgrade"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.postgresql.org/"
+license=('custom:PostgreSQL')
+depends=("postgresql-libs>=${_majorver}" 'libxml2' 'openssl>=1.0.0')
+source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2)
+
+build() {
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ ./configure --prefix=/opt/pgsql-${_majorver} \
+ --with-libxml --with-openssl --without-perl \
+ --without-python --with-pam --without-readline \
+ --with-system-tzdata=/usr/share/zoneinfo --disable-nls \
+ --enable-thread-safety
+
+ make -C src all
+}
+
+package() {
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ # install
+ make DESTDIR="${pkgdir}" -C src install
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # clean up unneeded installed items
+ rm -rf "${pkgdir}/opt/pgsql-${_majorver}/include/"
+}
+
+md5sums=('4ad7e4fc31ef8b8a75a3e4243933963f')
+sha256sums=('317d99d2ff9e1de8da0cae107bc06c9fd455b1df0c0fb77b8fbb61fb08276056')
diff --git a/extra/postgresql/PKGBUILD b/extra/postgresql/PKGBUILD
new file mode 100644
index 000000000..d5561089e
--- /dev/null
+++ b/extra/postgresql/PKGBUILD
@@ -0,0 +1,138 @@
+# $Id: PKGBUILD 144443 2011-12-05 21:09:28Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgbase=postgresql
+pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql')
+pkgver=9.1.2
+_majorver=${pkgver%.*}
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.postgresql.org/"
+license=('custom:PostgreSQL')
+makedepends=('libxml2' 'python2' 'perl' 'openssl>=1.0.0')
+source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2
+ postgresql postgresql.confd postgresql.pam postgresql.logrotate)
+
+build() {
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --datadir=/usr/share/postgresql \
+ --with-libxml --with-openssl --with-perl \
+ --with-python PYTHON=/usr/bin/python2 --with-pam \
+ --with-system-tzdata=/usr/share/zoneinfo --enable-nls \
+ --enable-thread-safety
+
+ make world
+}
+
+package_postgresql-libs() {
+ pkgdesc="Libraries for use with PostgreSQL"
+ depends=('openssl>=1.0.0' 'readline>=6.0')
+ provides=('postgresql-client')
+ conflicts=('postgresql-client')
+
+ cd "${srcdir}/postgresql-${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 src/bin/psql; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+
+ install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1"
+ install -D -m644 doc/src/sgml/man1/psql.1 "${pkgdir}/usr/share/man/man1/psql.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}/postgresql-${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/"
+
+ # clean up
+ rmdir "${pkgdir}"/usr/share/man/man{1,3,7}
+ rmdir "${pkgdir}"/usr/share/man
+}
+
+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' 'openssl>=1.0.0')
+ optdepends=('python2: for PL/Python support'
+ 'perl: for PL/Perl support'
+ 'postgresql-old-upgrade: upgrade from previous major version using pg_upgrade')
+ install=postgresql.install
+
+ cd "${srcdir}/postgresql-${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 these, they are in the -libs package
+ for dir in src/interfaces src/bin/pg_config src/bin/psql; do
+ make -C ${dir} DESTDIR="${pkgdir}" uninstall
+ done
+ rm "${pkgdir}/usr/share/man/man1/pg_config.1"
+ rm "${pkgdir}/usr/share/man/man1/psql.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 {} +
+ rmdir "${pkgdir}/usr/share/doc/postgresql/html"
+
+ # 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=('7dbff52221954c46595313eb7f92c3e0'
+ '4a6e9b63f2aa50195735f2b46aba040b'
+ 'a54d09a20ab1672adf08f037df188d53'
+ '96f82c38f3f540b53f3e5144900acf17'
+ 'd28e443f9f65a5712c52018b84e27137')
+sha256sums=('8d54ff514f5b2754e6e36b008c43d7bbf7daf541da608767cc5bdedb1de5db30'
+ 'b2931d7a719e765f14811b9109310b2418d3064bfcedef699573fc25854a2201'
+ '3de5c059eead8816db15c2c5588e6196d6c4b0d704faf1a20912796cf589ba81'
+ '57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5'
+ '6abb842764bbed74ea4a269d24f1e73d1c0b1d8ecd6e2e6fb5fb10590298605e')
diff --git a/extra/postgresql/postgresql b/extra/postgresql/postgresql
new file mode 100755
index 000000000..2ff845f73
--- /dev/null
+++ b/extra/postgresql/postgresql
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/postgresql
+
+# Default PGROOT if it wasn't defined in the conf.d file
+PGROOT=${PGROOT:-/var/lib/postgres}
+PGLOG=${PGLOG:-/var/log/postgresql.log}
+PGCTL_BIN=/usr/bin/pg_ctl
+PGCTL_ARGS=(-D "$PGROOT/data" -l "$PGLOG" -s -w)
+[[ $PGOPTS ]] && PGCTL_ARGS+=(-o "$PGOPTS")
+
+postgres_init() {
+ # initialization
+ 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 "$PGLOG" ]]; then
+ touch "$PGLOG"
+ chown postgres "$PGLOG"
+ fi
+}
+
+do_postgres() {
+ su - postgres -c "'$PGCTL_BIN' $(printf '%q ' "${PGCTL_ARGS[@]}") $@"
+}
+
+case $1 in
+ start)
+ postgres_init
+ stat_busy "Starting PostgreSQL"
+ if do_postgres start; then
+ add_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PostgreSQL"
+ if do_postgres stop -m fast; then
+ rm_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ reload)
+ stat_busy "Reloading PostgreSQL"
+ if do_postgres reload; then
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ postgres_init
+ stat_busy "Restarting PostgreSQL"
+ if do_postgres restart -m fast; then
+ add_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ status)
+ stat_busy "Checking PostgreSQL status";
+ ck_status postgresql
+ ;;
+ *)
+ echo "usage: $0 {start|stop|reload|restart|status}"
+ exit 1
+esac
diff --git a/extra/postgresql/postgresql.confd b/extra/postgresql/postgresql.confd
new file mode 100644
index 000000000..6001c16d1
--- /dev/null
+++ b/extra/postgresql/postgresql.confd
@@ -0,0 +1,11 @@
+##
+## Parameters to be passed to postgresql
+##
+## Default data directory location
+#PGROOT="/var/lib/postgres"
+## Passed to initdb if necessary
+INITOPTS="--locale en_US.UTF-8"
+## Default log file location
+#PGLOG="/var/log/postgresql.log"
+## Additional options to pass via pg_ctl's '-o' option
+#PGOPTS=""
diff --git a/extra/postgresql/postgresql.install b/extra/postgresql/postgresql.install
new file mode 100644
index 000000000..c52432271
--- /dev/null
+++ b/extra/postgresql/postgresql.install
@@ -0,0 +1,26 @@
+post_install() {
+ if [ ! -d '/var/lib/postgres' ]; then
+ mkdir -p '/var/lib/postgres'
+ fi
+ getent group postgres >/dev/null || groupadd -g 88 postgres
+ getent passwd postgres >/dev/null || useradd -c 'PostgreSQL user' -u 88 -g postgres -d '/var/lib/postgres' -s /bin/bash postgres
+ passwd -l postgres >/dev/null
+}
+
+post_upgrade() {
+ post_install $1
+ # FS#23858, fix postgres user shell issue
+ postgres_shell=$(getent passwd postgres | cut -d: -f7)
+ if [ "$postgres_shell" = "/sbin/nologin" ]; then
+ chsh -s /bin/bash postgres
+ fi
+}
+
+post_remove() {
+ if getent passwd postgres >/dev/null; then
+ userdel postgres
+ fi
+ if getent group postgres >/dev/null; then
+ groupdel postgres
+ fi
+}
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..751780b31
--- /dev/null
+++ b/extra/potrace/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 135877 2011-08-20 01:28:52Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Damir Perisa <damir@archlinux.org>
+
+pkgname=potrace
+pkgver=1.10
+pkgrel=1
+pkgdesc='Utility for tracing a bitmap (input: PBM,PGM,PPM,BMP; output: EPS,PS,PDF,SVG,DXF,PGM,Gimppath,XFig)'
+url='http://potrace.sourceforge.net/'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('zlib')
+options=('!libtool')
+source=("http://potrace.sourceforge.net/download/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('e6e8b64d85d30b4695d197a79187ac98c2b236f9')
+
+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/prison/PKGBUILD b/extra/prison/PKGBUILD
new file mode 100644
index 000000000..b5c38eb1e
--- /dev/null
+++ b/extra/prison/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 133482 2011-07-28 15:01:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=prison
+pkgver=1.0
+pkgrel=1
+pkgdesc="A barcode API to produce QRCode barcodes and DataMatrix barcodes"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('qt' 'libdmtx' 'qrencode')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.gz")
+md5sums=('8baac61506e37a31482a0df4a5d02cd2')
+
+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/procmail/PKGBUILD b/extra/procmail/PKGBUILD
new file mode 100644
index 000000000..1a43183d9
--- /dev/null
+++ b/extra/procmail/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 118844 2011-04-08 11:25:08Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=procmail
+pkgver=3.22
+pkgrel=4
+pkgdesc="Highly configurable auto mail processing."
+arch=(i686 x86_64 'mips64el')
+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 CFLAGS0="${CFLAGS} ${LDFLAGS}" 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..94cf43c5c
--- /dev/null
+++ b/extra/proftpd/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 142778 2011-11-15 04:26:53Z eric $
+# Maintainer:
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=proftpd
+pkgver=1.3.4a
+pkgrel=1
+epoch=1
+pkgdesc="A high-performance, scalable FTP server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.proftpd.org"
+license=('GPL')
+depends=('libldap' 'libmysqlclient' 'postgresql-libs')
+backup=('etc/proftpd.conf' 'etc/conf.d/proftpd')
+source=(ftp://ftp.proftpd.org/distrib/source/${pkgname}-${pkgver}.tar.bz2{,.asc}
+ 'proftpd' 'proftpd.logrotate' 'proftpd.conf.d')
+sha1sums=('18ea33d8b9f858b6e735cc81af900f0eebee8d25'
+ '195b06e28e503f5e5ef355c3332884cc5e7954a9'
+ 'b7819d725817e55b69c73e2572c21a05db48cc86'
+ '83c38ec40efb7cc09d9824b98e65cd948a195cc6'
+ 'f34f60cb4fb1f4af7be7aca427cbad3cad22bbb9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --disable-pam \
+ --with-modules=mod_quotatab:mod_quotatab_sql: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
+ sed -i 's|nogroup|nobody|g' "${pkgdir}/etc/proftpd.conf"
+
+ 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"
+}
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..443e4a6c8
--- /dev/null
+++ b/extra/progsreiserfs/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 136335 2011-08-26 15:07:16Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=progsreiserfs
+pkgver=0.3.0.5
+pkgrel=7
+pkgdesc="library for accessing and manipulating reiserfs partitions"
+arch=(i686 x86_64 'mips64el')
+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
+ fix-underquoted-definition.patch
+ )
+md5sums=('d822579bbd4a29a1be5e4490869d9bee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ../fix-underquoted-definition.patch
+ ./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/
+}
+md5sums=('d822579bbd4a29a1be5e4490869d9bee'
+ '4c47c1f136d01f60cb73f84116edbcc2')
diff --git a/extra/progsreiserfs/fix-underquoted-definition.patch b/extra/progsreiserfs/fix-underquoted-definition.patch
new file mode 100644
index 000000000..7d8eb7c0c
--- /dev/null
+++ b/extra/progsreiserfs/fix-underquoted-definition.patch
@@ -0,0 +1,11 @@
+--- progsreiserfs.m4~ 2011-08-26 17:02:36.263433559 +0200
++++ progsreiserfs.m4 2011-08-26 17:02:36.263433559 +0200
+@@ -10,7 +10,7 @@
+ dnl Adds the required libraries to $REISERFS_LIBS and does an
+ dnl AC_SUBST(REISERFS_LIBS)
+
+-AC_DEFUN(AC_CHECK_LIBREISERFS,
++AC_DEFUN([AC_CHECK_LIBREISERFS],
+ [
+
+ dnl save LIBS
diff --git a/extra/psi/PKGBUILD b/extra/psi/PKGBUILD
new file mode 100644
index 000000000..a283c95ae
--- /dev/null
+++ b/extra/psi/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137579 2011-09-09 21:39:09Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=psi
+pkgver=0.14
+pkgrel=5
+pkgdesc='Instant messaging application designed for the Jabber IM'
+url='http://psi-im.org/'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+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..fe7c7030f
--- /dev/null
+++ b/extra/psiconv/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143959 2011-11-30 22:26:38Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=psiconv
+pkgver=0.9.8
+pkgrel=9
+pkgdesc="Converts Psion 5(MX) files to more commonly used file formats"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/pstoedit/PKGBUILD b/extra/pstoedit/PKGBUILD
new file mode 100644
index 000000000..f2b8e5299
--- /dev/null
+++ b/extra/pstoedit/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 137995 2011-09-13 21:30:18Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Tobias Powalowski <t.powa@gmx.de>
+
+pkgname=pstoedit
+pkgver=3.60
+pkgrel=2
+pkgdesc="Translates PostScript and PDF graphics into other vector formats"
+arch=("i686" "x86_64" 'mips64el')
+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=('649ade3d873429548eb6dd9f3e13cb79a8d6a1a2'
+ '6e278b164d3e59fbb11e7fd5ae8ffb038932d69a'
+ '54bbe019de66eb4cb8525371462595d21fbd074e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ 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..b7da5145a
--- /dev/null
+++ b/extra/pth/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 140804 2011-10-19 15:35:55Z dreisner $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=pth
+pkgver=2.0.7
+pkgrel=4
+pkgdesc="The GNU Portable Threads."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/pth/"
+license=('LGPL')
+depends=('glibc' 'awk')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gnu.org/gnu/pth/$pkgname-$pkgver.tar.gz{,.sig})
+sha1sums=('9a71915c89ff2414de69fe104ae1016d513afeee'
+ '8cb16dffbf15ba92bda8d08918eaf5995642fc38')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --disable-static \
+ --enable-shared \
+ --with-pic
+
+ sed -i "s|awk=''|awk=/bin/awk|g" shtool # "Cannot find a reasonable Awk"
+
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/ptlib/PKGBUILD b/extra/ptlib/PKGBUILD
new file mode 100644
index 000000000..26fe24ab7
--- /dev/null
+++ b/extra/ptlib/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 136104 2011-08-23 01:58:09Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=ptlib
+pkgver=2.10.2
+pkgrel=1
+pkgdesc="Portable Windows Library"
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('a0985848da2ea06a4df804a650fd800ff52a01f889c116595b9a67fc35537140')
+
+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/extra/pulseaudio/PKGBUILD b/extra/pulseaudio/PKGBUILD
new file mode 100644
index 000000000..8ba2595fb
--- /dev/null
+++ b/extra/pulseaudio/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id: PKGBUILD 140984 2011-10-20 15:35:19Z 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)
+pkgdesc="A featureful, general-purpose sound server"
+pkgver=1.1
+pkgrel=1
+arch=(i686 x86_64 mips64el)
+url="http://pulseaudio.org/"
+license=(GPL LGPL)
+makedepends=(libasyncns libcap attr libxtst libsm libsamplerate libtool rtkit
+ speex tdb udev dbus-core xcb-util avahi bluez gconf intltool jack
+ openssl fftw orc json-c)
+[ "$CARCH" = "mips64el" ] || makedepends+=(lirc-utils)
+options=(!emptydirs !libtool !makeflags)
+source=(http://freedesktop.org/software/$pkgbase/releases/$pkgbase-$pkgver.tar.xz
+ $pkgbase.xinit)
+sha256sums=('6fe531136f6ebce2d35872a2d2c914278cdc5dcdd5eea516dc52c81f9001f5ee'
+ 'a0db6cdc74fbf0ca10e2343c08e1e228f109221c6c0ff91b0bfade5c4bdf03cf')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --with-database=tdb \
+ --disable-hal \
+ --disable-tcpwrap \
+ --disable-rpath \
+ --disable-default-build-tests
+
+ make
+}
+
+package_pulseaudio() {
+ depends=("libpulse=$pkgver-$pkgrel" rtkit libtool speex tdb udev fftw orc
+ libsamplerate)
+ optdepends=('avahi: zeroconf support'
+ 'bluez: bluetooth support'
+ 'gconf: configuration through gconf (paprefs)'
+ 'jack: jack support'
+ 'openssl: RAOP support'
+ 'python2-pyqt: Equalizer GUI (qpaeq)')
+[ "$CARCH" = "mips64el" ] || optdepends+=('lirc-utils: infra-red support')
+ backup=(etc/pulse/{daemon.conf,default.pa,system.pa})
+ install=pulseaudio.install
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # Lower resample quality, saves CPU
+ 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-pulseaudio-x11"
+
+ # Make some modules optional
+ sed -e $'/load-module module-console-kit/{i.nofail\n;a.fail\n;}' \
+ -e '/load-module module-jackdbus-detect/s/^/#/' \
+ -i "$pkgdir/etc/pulse/default.pa"
+
+ # Python fix
+ sed -i '1s:python$:&2:' "$pkgdir/usr/bin/qpaeq" || true
+
+ install -Dm755 "$srcdir/pulseaudio.xinit" "$pkgdir/etc/X11/xinit/xinitrc.d/pulseaudio"
+
+ rm "$pkgdir/etc/dbus-1/system.d/pulseaudio-system.conf"
+
+### Split libpulse
+
+ mkdir -p "$srcdir"/libpulse/{etc/pulse,usr/{lib,share/man/man5}}
+
+ mv {"$pkgdir","$srcdir/libpulse"}/etc/pulse/client.conf
+
+ mv "$pkgdir"/usr/lib/libpulse{,dsp,-simple,-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
+}
+
+package_libpulse() {
+ pkgdesc="$pkgdesc (client library)"
+ depends=(dbus-core xcb-util libasyncns libcap libxtst libsm libsndfile json-c)
+ 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..fd7db3b36
--- /dev/null
+++ b/extra/pulseaudio/pulseaudio.install
@@ -0,0 +1,23 @@
+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.
+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..2d30c0943
--- /dev/null
+++ b/extra/pulseaudio/pulseaudio.xinit
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+case "$DESKTOP_SESSION" in
+ gnome|kde*|xfce*) # PulseAudio is started via XDG Autostart
+ ;;
+ *)
+ # Extra checks in case DESKTOP_SESSION is not set correctly
+ if [[ -z $KDE_FULL_SESSION && -z $GNOME_DESKTOP_SESSION_ID ]]; then
+ /usr/bin/start-pulseaudio-x11
+ fi
+ ;;
+esac
diff --git a/extra/purple-plugin-pack/PKGBUILD b/extra/purple-plugin-pack/PKGBUILD
new file mode 100644
index 000000000..4eeff18a7
--- /dev/null
+++ b/extra/purple-plugin-pack/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144607 2011-12-08 01:03:26Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=purple-plugin-pack
+pkgver=2.7.0
+pkgrel=1
+pkgdesc="Compilation of plugins for the libpurple family of IM clients"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://www.guifications.org/projects/purple-plugin-pack"
+license=('GPL')
+depends=('libpurple')
+makedepends=('intltool' 'gettext' 'python2' 'pidgin')
+options=('!libtool')
+source=(https://www.guifications.org/attachments/download/201/purple-plugin-pack-2.7.0.tar.bz2)
+sha256sums=('2bbcf5e778a33968ba7f2864d2a6cb526a8984be3e4151642a583eee8eafb03c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ PYTHON=/usr/bin/python2 \
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/putty/PKGBUILD b/extra/putty/PKGBUILD
new file mode 100644
index 000000000..c8fe95255
--- /dev/null
+++ b/extra/putty/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144938 2011-12-11 04:46:16Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=putty
+pkgver=0.62
+pkgrel=1
+pkgdesc="A terminal integrated SSH/Telnet client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.chiark.greenend.org.uk/~sgtatham/putty/"
+license=('MIT')
+depends=('gtk2')
+source=(http://the.earth.li/~sgtatham/putty/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ putty-${pkgver}.tar.gz.sig::http://the.earth.li/~sgtatham/putty/latest/putty-${pkgver}.tar.gz.DSA)
+sha1sums=('5898438614117ee7e3704fc3f30a3c4bf2041380'
+ '128cded001647e3b47494dbfb1eeb70cbed49a7c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/unix"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/unix"
+ 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..bc7dc14c4
--- /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" 'mips64el')
+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/pyalpm/PKGBUILD b/extra/pyalpm/PKGBUILD
new file mode 100644
index 000000000..4e4a0d194
--- /dev/null
+++ b/extra/pyalpm/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer : Rémy Oudompheng <remy@archlinux.org>
+
+pkgname=pyalpm
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="Libalpm bindings for Python 3"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://projects.archlinux.org/users/remy/pyalpm.git/"
+license=('GPL')
+depends=('python>=3.2' 'pacman<3.6')
+source=("ftp://ftp.archlinux.org/other/pyalpm/$pkgname-$pkgver.tar.gz")
+md5sums=('396f9820eae9a40bd33d8bb366272c82')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python setup.py build
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python setup.py install --root=${pkgdir}
+}
+
diff --git a/extra/pycrypto/PKGBUILD b/extra/pycrypto/PKGBUILD
new file mode 100644
index 000000000..1f15d7b14
--- /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 'mips64el')
+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..b6113fd99
--- /dev/null
+++ b/extra/pycups/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 140387 2011-10-12 02:51:45Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=pycups
+pkgver=1.9.60
+pkgrel=1
+pkgdesc="Python CUPS Bindings"
+url="http://cyberelk.net/tim/software/pycups/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libcups' 'python2')
+source=(http://cyberelk.net/tim/data/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.asc})
+md5sums=('083f3dd657df986e712a6fae36427457'
+ 'cda91ca46362ba3423df2f08c33de5cb')
+
+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..44cf408a9
--- /dev/null
+++ b/extra/pygobject/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 141033 2011-10-22 07:52:40Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=pygobject
+pkgname=(python-gobject python2-gobject pygobject-devel)
+pkgver=3.0.2
+pkgrel=1
+arch=('i686' 'x86_64')
+url="https://live.gnome.org/PyGObject"
+license=('LGPL')
+makedepends=('python' 'python2' 'python-cairo' 'python2-cairo' 'gobject-introspection')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.xz)
+options=('!libtool')
+sha256sums=('e1eccc37afd2d4cbeb329b92ce3d71287d662dc2fec430c08a0471153e52a462')
+
+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_python-gobject() {
+ pkgdesc="Python 3 bindings for GObject"
+ depends=('gobject-introspection' 'python-cairo' "pygobject-devel=${pkgver}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -r "${pkgdir}"/usr/{include,lib/pkgconfig}
+}
+
+package_python2-gobject() {
+ pkgdesc="Python 2 bindings for GObject"
+ depends=('gobject-introspection' 'python2-cairo' "pygobject-devel=${pkgver}")
+
+ cd "${srcdir}/python2-build"
+ make DESTDIR="${pkgdir}" install
+ mv "${pkgdir}"/usr/{include,lib/pkgconfig} "${srcdir}/devel"
+}
+
+package_pygobject-devel() {
+ pkgdesc="Development files for the pygobject bindings"
+ cd "${srcdir}/devel"
+ mkdir -p "${pkgdir}"/usr/{include,lib}
+ mv include "${pkgdir}/usr/"
+ mv pkgconfig "${pkgdir}/usr/lib/"
+}
diff --git a/extra/pygobject/fix-pycairo-capi-declaration.patch b/extra/pygobject/fix-pycairo-capi-declaration.patch
new file mode 100644
index 000000000..1f0364c7a
--- /dev/null
+++ b/extra/pygobject/fix-pycairo-capi-declaration.patch
@@ -0,0 +1,17 @@
+--- pygobject-2.28.4.orig/gi/pygi-foreign-cairo.c 2011-04-18 17:36:47.000000000 +0200
++++ pygobject-2.28.4/gi/pygi-foreign-cairo.c 2011-06-21 20:05:11.015628222 +0200
+@@ -26,12 +26,12 @@
+
+ #if PY_VERSION_HEX < 0x03000000
+ #include <pycairo.h>
++static Pycairo_CAPI_t *Pycairo_CAPI;
+ #else
+ #include <pycairo/py3cairo.h>
++#define Pycairo_IMPORT import_cairo()
+ #endif
+
+-Pycairo_CAPI_t *Pycairo_CAPI;
+-
+ #include "pygi-foreign.h"
+
+ #include <pyglib-python-compat.h>
diff --git a/extra/pygobject2/PKGBUILD b/extra/pygobject2/PKGBUILD
new file mode 100644
index 000000000..a66600d53
--- /dev/null
+++ b/extra/pygobject2/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 139421 2011-10-01 19:01:05Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=pygobject2
+pkgname=(python-gobject2 python2-gobject2 pygobject2-devel)
+pkgver=2.28.6
+pkgrel=4
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pygtk.org/"
+license=('LGPL')
+makedepends=('python' 'python2')
+source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/pygobject-${pkgver}.tar.xz
+ python3-fix-build.patch
+ python3-fix-maketrans.patch)
+options=('!libtool')
+sha256sums=('fb8a1d4f665130a125011659bd347c7339c944232163dbb9a34fd0686577adb8'
+ 'feafd4664f8455edf0bf8407ac45e219bb550df806ce0d601baae951e8c188ca'
+ '4bff9adcea13a824c45d14ec501c927df47d23c22507a2456d8b5ec885924c0a')
+
+build() {
+ cd "${srcdir}"
+ cp -a "pygobject-${pkgver}" python2-build
+ mkdir devel
+
+ (
+ cd python2-build
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr --disable-introspection
+ make
+ )
+
+ (
+ cd "pygobject-${pkgver}"
+ #patches available in 2.28 branch but unreleased.
+ patch -Np1 -i "${srcdir}/python3-fix-build.patch"
+ patch -Np1 -i "${srcdir}/python3-fix-maketrans.patch"
+
+ ./configure --prefix=/usr --disable-introspection
+ make
+ )
+}
+
+package_python-gobject2() {
+ pkgdesc="Python 3 bindings for GObject2"
+ depends=('glib2' 'pygobject2-devel' 'python')
+ replaces=('py3gobject')
+ provides=("py3gobject=$pkgver")
+
+ cd "${srcdir}/pygobject-${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_python2-gobject2() {
+ pkgdesc="Python 2 bindings for GObject2"
+ depends=('glib2' 'pygobject2-devel' 'python2')
+ replaces=('pygobject')
+ provides=("pygobject=$pkgver")
+
+ 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/{include,lib/pkgconfig,share/{gtk-doc,pygobject/xsl}} \
+ "$srcdir/devel/"
+}
+
+package_pygobject2-devel() {
+ pkgdesc="Development files for the pygobject bindings"
+
+ cd "${srcdir}/devel"
+ mkdir -p "$pkgdir"/usr/{include,lib,share/pygobject}
+
+ mv include "$pkgdir/usr/"
+ mv pkgconfig "$pkgdir/usr/lib/"
+ mv gtk-doc "$pkgdir/usr/share/"
+ mv xsl "$pkgdir/usr/share/pygobject/"
+}
diff --git a/extra/pygobject2/python3-fix-build.patch b/extra/pygobject2/python3-fix-build.patch
new file mode 100644
index 000000000..4cb8cfe57
--- /dev/null
+++ b/extra/pygobject2/python3-fix-build.patch
@@ -0,0 +1,34 @@
+From e2dc4ac346a16b6976b92e84819c7203629beb4a Mon Sep 17 00:00:00 2001
+From: Ignacio Casal Quinteiro <icq@gnome.org>
+Date: Thu, 21 Apr 2011 14:52:20 +0000
+Subject: [python3] fix build. PYcairo_IMPORT doesn't exists anymore
+
+---
+diff --git a/gi/pygi-foreign-cairo.c b/gi/pygi-foreign-cairo.c
+index 81b9865..edf52d7 100644
+--- a/gi/pygi-foreign-cairo.c
++++ b/gi/pygi-foreign-cairo.c
+@@ -30,7 +30,7 @@
+ #include <pycairo/py3cairo.h>
+ #endif
+
+-Pycairo_CAPI_t *Pycairo_CAPI;
++static Pycairo_CAPI_t *Pycairo_CAPI;
+
+ #include "pygi-foreign.h"
+
+@@ -117,7 +117,12 @@ cairo_surface_release (GIBaseInfo *base_info,
+ static PyMethodDef _gi_cairo_functions[] = {0,};
+ PYGLIB_MODULE_START(_gi_cairo, "_gi_cairo")
+ {
++#if PY_VERSION_HEX < 0x03000000
+ Pycairo_IMPORT;
++#else
++ Pycairo_CAPI = (Pycairo_CAPI_t*) PyCObject_Import("cairo", "CAPI");
++#endif
++
+ if (Pycairo_CAPI == NULL)
+ return PYGLIB_MODULE_ERROR_RETURN;
+
+--
+cgit v0.9
diff --git a/extra/pygobject2/python3-fix-maketrans.patch b/extra/pygobject2/python3-fix-maketrans.patch
new file mode 100644
index 000000000..f5bc0e77c
--- /dev/null
+++ b/extra/pygobject2/python3-fix-maketrans.patch
@@ -0,0 +1,36 @@
+From 667bec76ccbc85cc1d54a0e68977dbda241c028c Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Wed, 13 Jul 2011 06:42:22 +0000
+Subject: [python3] Fix maketrans import
+
+Python3 moved the maketrans() function from the string module to a str method.
+This unbreaks gi/module.py for Python 3 again.
+---
+diff --git a/gi/module.py b/gi/module.py
+index 70df76c..d56bdaf 100644
+--- a/gi/module.py
++++ b/gi/module.py
+@@ -24,7 +24,11 @@ from __future__ import absolute_import
+
+ import os
+ import gobject
+-import string
++try:
++ maketrans = ''.maketrans
++except AttributeError:
++ # fallback for Python 2
++ from string import maketrans
+
+ import gi
+ from .overrides import registry
+@@ -124,7 +128,7 @@ class IntrospectionModule(object):
+ # Don't use upper() here to avoid locale specific
+ # identifier conversion (e. g. in Turkish 'i'.upper() == 'i')
+ # see https://bugzilla.gnome.org/show_bug.cgi?id=649165
+- ascii_upper_trans = string.maketrans(
++ ascii_upper_trans = maketrans(
+ 'abcdefgjhijklmnopqrstuvwxyz',
+ 'ABCDEFGJHIJKLMNOPQRSTUVWXYZ')
+ for value_info in info.get_values():
+--
+cgit v0.9
diff --git a/extra/pygtk/PKGBUILD b/extra/pygtk/PKGBUILD
new file mode 100644
index 000000000..792c64878
--- /dev/null
+++ b/extra/pygtk/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 138082 2011-09-16 07:34:35Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=pygtk
+pkgver=2.24.0
+pkgrel=2
+pkgdesc="Python bindings for the GTK widget set"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+depends=('libglade' 'python2-cairo' 'pygobject')
+makedepends=('python2-numpy' 'pygobject2-devel')
+optdepends=('python2-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/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..32955891d
--- /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 'mips64el')
+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..768180463
--- /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 'mips64el')
+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..b24f162b7
--- /dev/null
+++ b/extra/pyopenssl/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 138458 2011-09-23 18:52:47Z ibiru $
+# Maintainer : Ionut Biru<ibiru@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgbase=pyopenssl
+pkgname=('pyopenssl' 'python2-pyopenssl')
+pkgver=0.13
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pypi.python.org/pypi/pyOpenSSL"
+license=('LGPL2.1')
+makedepends=('python' 'python2' 'openssl')
+source=(http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-${pkgver}.tar.gz)
+md5sums=('767bca18a71178ca353dff9e10941929')
+
+build() {
+ cd "${srcdir}"
+ cp -a "pyOpenSSL-${pkgver}"{,-python2}
+
+ #build python 3 module
+ cd "pyOpenSSL-${pkgver}"
+ python setup.py build
+
+ #build python 2 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..ab194f48b
--- /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 'mips64el')
+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..f716a4ca3
--- /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 'mips64el')
+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/pyqt/PKGBUILD b/extra/pyqt/PKGBUILD
new file mode 100644
index 000000000..bce8baf82
--- /dev/null
+++ b/extra/pyqt/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 141387 2011-10-30 11:14:12Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
+
+pkgbase=pyqt
+pkgname=('pyqt' 'python2-pyqt')
+pkgver=4.8.6
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://riverbankcomputing.co.uk/software/pyqt/intro"
+license=('GPL')
+makedepends=('qt' 'python-sip' 'dbus-python' 'python2-sip' 'phonon'
+ 'python-opengl' 'qt-assistant-compat')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
+md5sums=('9bfd7b08b8e438b83cc50d5c58191f97')
+
+build() {
+ cd "${srcdir}"
+ cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver}
+
+ 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
+
+ ### Python2 version ###
+ cd "${srcdir}/Py2Qt-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_pyqt(){
+ pkgdesc="A set of Python bindings for the Qt toolkit"
+ depends=('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')
+ replaces=('python-qt')
+ provides=('python-qt')
+
+ 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
+}
+
+package_python2-pyqt(){
+ pkgdesc="PyQt: A set of Python2 bindings for the Qt toolkit"
+ depends=('pyqt' 'python2-sip' 'dbus-python')
+ 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=('python2-qt')
+ provides=('python2-qt')
+
+ cd "${srcdir}/Py2Qt-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 pyqt
+ 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/pysmbc/PKGBUILD b/extra/pysmbc/PKGBUILD
new file mode 100644
index 000000000..ff5c6b82e
--- /dev/null
+++ b/extra/pysmbc/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 140148 2011-10-07 22:11:09Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Shane Peelar <lookatyouhacker@gm@il(d0t)c0m>
+
+pkgname=pysmbc
+pkgver=1.0.11.1
+pkgrel=1
+pkgdesc="Python bindings for libsmbclient"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pypi.python.org/pypi/pysmbc/"
+license=('GPL')
+depends=('python2' 'smbclient')
+source=("http://pypi.python.org/packages/source/p/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('97a2a9738f41f89400c510efb2c20f77')
+
+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..116763cc8
--- /dev/null
+++ b/extra/python-cairo/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 121116 2011-04-29 03:02:02Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python-cairo
+pkgver=1.10.0
+pkgrel=1
+pkgdesc="Python bindings for the cairo graphics library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL3')
+depends=('python' 'cairo')
+makedepends=('pkg-config')
+options=('!libtool')
+source=(http://cairographics.org/releases/pycairo-${pkgver}.tar.bz2)
+url="http://www.cairographics.org/pycairo"
+md5sums=('e6fd3f2f1e6a72e0db0868c4985669c5')
+
+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*
+ 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..217a550a8
--- /dev/null
+++ b/extra/python-egenix-mx-base/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140254 2011-10-11 00:44:55Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=python-egenix-mx-base
+_origname=egenix-mx-base
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="A collection of Python tools"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://www.egenix.com/products/python/mxBase/"
+depends=('python2')
+makedepends=('python2-distribute')
+replaces=('egenix-mx-base')
+provides=('egenix-mx-base')
+source=("http://downloads.egenix.com/python/${_origname}-${pkgver}.tar.gz")
+sha1sums=('a82f7f155ea92f26f40a6a3bf9160bfac7c52a00')
+
+build() {
+ cd "${srcdir}/${_origname}-${pkgver}"
+
+ find . -name \*.py -exec sed -i -e "s|#!/usr/bin/env python|#!/usr/bin/env python2|" \
+ -e "s|#!/usr/local/.*python.*|#!/usr/bin/env python2|" {} \;
+
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${_origname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" --skip-build --optimize=1
+ 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..b43e0d82b
--- /dev/null
+++ b/extra/python-geoip/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 140200 2011-10-09 08:54:48Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python-geoip
+pkgver=1.2.7
+pkgrel=1
+pkgdesc="Python bindings for the GeoIP IP-to-country resolver library."
+arch=(i686 x86_64 'mips64el')
+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')
+md5sums=('df71f5ae7a5c77bbdf726d512b7d67cf')
+
+build() {
+ cd ${startdir}/src/GeoIP-Python-${pkgver}
+ python2 setup.py build install --root=${startdir}/pkg
+}
diff --git a/extra/python-imaging/PKGBUILD b/extra/python-imaging/PKGBUILD
new file mode 100644
index 000000000..3493f7e80
--- /dev/null
+++ b/extra/python-imaging/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 144447 2011-12-05 21:28:19Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=python-imaging
+pkgver=1.1.7
+pkgrel=4
+pkgdesc="PIL. Provides image processing capabilities for python"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pythonware.com/products/pil/index.htm"
+license=('custom:"pil"')
+depends=('python2' 'libjpeg' 'freetype2' 'lcms')
+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}" --optimize=1
+
+ pushd Sane
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+ 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..6a4f0c260
--- /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' 'mips64el')
+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..31062ed07
--- /dev/null
+++ b/extra/python-lxml/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 145002 2011-12-13 23:35:31Z eric $
+# 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.2
+pkgrel=1
+pkgdesc="Python binding for the libxml2 and libxslt libraries"
+arch=('i686' 'x86_64' 'mips64el')
+license=('BSD' 'GPL' 'custom')
+url="http://lxml.de/"
+depends=('python2' 'libxslt')
+optdepends=('python-beautifulsoup: support for parsing not well formed HTML')
+conflicts=('lxml')
+replaces=('lxml')
+source=("http://codespeak.net/lxml/lxml-${pkgver}.tgz")
+md5sums=('50ed3706da4665c40600fd6e2a7d1159')
+
+check() {
+ cd "${srcdir}"/lxml-$pkgver
+ make PYTHON=python2 test
+}
+
+package() {
+ cd "${srcdir}"/lxml-$pkgver
+
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+
+ install -Dm644 LICENSES.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 doc/licenses/BSD.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/BSD.txt
+ install -Dm644 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..9af824956
--- /dev/null
+++ b/extra/python-m2crypto/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 140196 2011-10-09 08:27:16Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-m2crypto
+pkgver=0.21.1
+pkgrel=1
+pkgdesc="A crypto and SSL toolkit for Python"
+arch=('i686' 'x86_64' 'mips64el')
+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")
+md5sums=('f93d8462ff7646397a9f77a2fe602d17')
+
+build() {
+ cd "${srcdir}/M2Crypto-${pkgver}"
+ 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..a71fc67fb
--- /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' 'mips64el')
+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..87f2ed93c
--- /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' 'mips64el')
+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..f981fe205
--- /dev/null
+++ b/extra/python-numpy/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 138131 2011-09-17 03:10:10Z allan $
+# 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' 'python-numpy')
+pkgver=1.6.1
+pkgrel=1
+pkgdesc="Scientific tools for Python"
+arch=('i686' 'x86_64' 'mips64el')
+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=('2bce18c08fc4fce461656f0f4dd9103e')
+
+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')
+ 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_python-numpy() {
+ depends=('lapack' 'python')
+ provides=("python3-numpy=${pkgver}")
+ replaces=('python3-numpy')
+ conflicts=('python3-numpy')
+
+ 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-pycurl/PKGBUILD b/extra/python-pycurl/PKGBUILD
new file mode 100644
index 000000000..03e45dc17
--- /dev/null
+++ b/extra/python-pycurl/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 127116 2011-06-10 22:25:50Z andrea $
+# Maintainer:
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+
+pkgname=python-pycurl
+pkgver=7.19.0
+pkgrel=5
+pkgdesc="A Python interface to libcurl"
+arch=('i686' 'x86_64' 'mips64el')
+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/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..2843920bc
--- /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' 'mips64el')
+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..85274a843
--- /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' 'mips64el')
+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..2f42c5de4
--- /dev/null
+++ b/extra/python-pysqlite/ChangeLog
@@ -0,0 +1,16 @@
+2011-10-07 Angel Velasquez <angvp@archlinux.org>
+ * Updated to: 2.6.3
+ * Added check function
+
+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..423f84915
--- /dev/null
+++ b/extra/python-pysqlite/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 140136 2011-10-07 20:31:49Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+pkgname=python-pysqlite
+pkgver=2.6.3
+pkgrel=1
+pkgdesc="A Python DB-API 2.0 interface for the SQLite embedded relational database engine"
+license=('custom')
+arch=('i686' 'x86_64' 'mips64el')
+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=('711afa1062a1d2c4a67acdf02a33d86e'
+ '86dd356c65afd14a22f2f8f64a26441e')
+
+check() {
+ cd ${pkgdir}/usr/lib/python2.7/site-packages
+ python2 -c "from pysqlite2 import test; test.test()"
+}
+
+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-telepathy/PKGBUILD b/extra/python-telepathy/PKGBUILD
new file mode 100644
index 000000000..828b9ed7f
--- /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' 'mips64el')
+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..b29fdccd6
--- /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.2
+pkgrel=1
+pkgdesc="Urwid is a curses-based user interface library."
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('python2')
+url="http://excess.org/urwid/"
+source=(http://excess.org/urwid/urwid-$pkgver.tar.gz)
+md5sums=('e58b86a983fe5474a07749501748b728')
+
+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..706ad8331
--- /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' 'mips64el')
+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..0588647ac
--- /dev/null
+++ b/extra/python/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 143818 2011-11-29 13:33:44Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=python
+pkgver=3.2.2
+pkgrel=2
+pkgrel=1 #holdver
+_pybasever=3.2
+pkgdesc="Next generation of the python high-level scripting language"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://www.python.org/"
+depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
+makedepends=('tk' 'sqlite3' 'valgrind')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('tk' 'sqlite3')
+optdepends=('tk: for tkinter' 'sqlite3')
+provides=('python3')
+replaces=('python3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz
+ gdbm-magic-values.patch)
+sha1sums=('5e654dbd48476193ccdef4d604ed4f45b48c6769'
+ '43bfbe3e23360f412b95cb284ff29b2cbe338be9')
+
+build() {
+ cd "${srcdir}/Python-${pkgver}"
+
+ # FS#23997
+ sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
+
+ # gdbm has new magic that whichdb does not recognize
+ # http://bugs.python.org/issue13007
+ patch -Np1 -i ../gdbm-magic-values.patch
+
+ # Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
+ # rather than copies shipped in the tarball
+ rm -r Modules/expat
+ rm -r Modules/zlib
+ rm -r Modules/_ctypes/{darwin,libffi}*
+
+
+ if [ "$CARCH" = "mips64el" ]; then
+ ./configure --prefix=/usr \
+ --enable-shared \
+ --with-threads \
+ --with-computed-gotos \
+ --enable-ipv6 \
+ --without-valgrind \
+ --with-wide-unicode \
+ --with-system-expat \
+ --with-dbmliborder=gdbm:ndbm \
+ --with-system-ffi
+ else
+ ./configure --prefix=/usr \
+ --enable-shared \
+ --with-threads \
+ --with-computed-gotos \
+ --enable-ipv6 \
+ --with-valgrind \
+ --with-wide-unicode \
+ --with-system-expat \
+ --with-dbmliborder=gdbm:ndbm \
+ --with-system-ffi
+ fi
+
+ make
+}
+
+check() {
+ cd "${srcdir}/Python-${pkgver}"
+ LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
+ "${srcdir}/Python-${pkgver}/python" -m test.regrtest -x test_distutils test_site test_uuid
+}
+
+package() {
+ cd "${srcdir}/Python-${pkgver}"
+ make DESTDIR="${pkgdir}" install maninstall
+
+ # Why are these not done by default...
+ ln -sf python3 "${pkgdir}/usr/bin/python"
+ ln -sf python3-config "${pkgdir}/usr/bin/python-config"
+ ln -sf idle3 "${pkgdir}/usr/bin/idle"
+ ln -sf pydoc3 "${pkgdir}/usr/bin/pydoc"
+ ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python3.1"
+
+ # Fix FS#22552
+ ln -sf ../../libpython${_pybasever}mu.so \
+ "${pkgdir}/usr/lib/python${_pybasever}/config-${_pybasever}mu/libpython${_pybasever}mu.so"
+
+ # Clean-up reference to build directory
+ sed -i "s|$srcdir/Python-${pkgver}:||" "$pkgdir/usr/lib/python${_pybasever}/config-${_pybasever}mu/Makefile"
+
+ # License
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/python/gdbm-magic-values.patch b/extra/python/gdbm-magic-values.patch
new file mode 100644
index 000000000..e8ce828cf
--- /dev/null
+++ b/extra/python/gdbm-magic-values.patch
@@ -0,0 +1,13 @@
+diff -up Python-3.2.2/Lib/dbm/__init__.py.gdbm-1.9-magic Python-3.2.2/Lib/dbm/__init__.py
+--- Python-3.2.2/Lib/dbm/__init__.py.gdbm-1.9-magic 2011-09-03 12:16:40.000000000 -0400
++++ Python-3.2.2/Lib/dbm/__init__.py 2011-09-30 15:47:27.488863694 -0400
+@@ -166,7 +166,7 @@ def whichdb(filename):
+ return ""
+
+ # Check for GNU dbm
+- if magic == 0x13579ace:
++ if magic in (0x13579ace, 0x13579acd, 0x13579acf):
+ return "dbm.gnu"
+
+ # Later versions of Berkeley db hash file have a 12-byte pad in
+diff -up Python-3.2.2/Misc/NEWS.gdbm-1.9-magic Python-3.2.2/Misc/NEWS
diff --git a/extra/python2-cairo/PKGBUILD b/extra/python2-cairo/PKGBUILD
new file mode 100644
index 000000000..5629199d2
--- /dev/null
+++ b/extra/python2-cairo/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 122022 2011-05-01 17:05:32Z angvp $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python2-cairo
+pkgver=1.10.0
+pkgrel=1
+pkgdesc="Python2 bindings for the cairo graphics library"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL' 'MPL')
+depends=('python2' 'cairo')
+options=('!libtool')
+provides=("pycairo=${pkgver}")
+conflicts=('pycairo')
+replaces=('pycairo')
+source=(http://cairographics.org/releases/py2cairo-${pkgver}.tar.bz2)
+url="http://www.cairographics.org/pycairo"
+md5sums=('20337132c4ab06c1146ad384d55372c5')
+
+build() {
+ cd "${srcdir}/py2cairo-${pkgver}"
+ sed -i 's:bin/env python:bin/env python2:' waf
+ python2 ./waf --version
+ pushd .waf-*
+ popd
+ PYTHON=/usr/bin/python2 ./waf configure --prefix=/usr
+ PYTHON=/usr/bin/python2 ./waf build
+}
+
+package() {
+ cd "${srcdir}/py2cairo-${pkgver}"
+ PYTHON=/usr/bin/python2 ./waf install --destdir="${pkgdir}"
+}
diff --git a/extra/pywebkitgtk/PKGBUILD b/extra/pywebkitgtk/PKGBUILD
new file mode 100644
index 000000000..7aa9a5f2e
--- /dev/null
+++ b/extra/pywebkitgtk/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 132031 2011-07-19 09:51:13Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: kasa <biuta.jr@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pywebkitgtk
+pkgver=1.1.8
+pkgrel=1
+pkgdesc="Python bindings to the WebKit GTK+ port"
+arch=('i686' 'x86_64' 'mips64el')
+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=('158335385354ba38090c9324b37bf225')
+
+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..2474ca9c4
--- /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' 'mips64el')
+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..56092e7b3
--- /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' 'mips64el')
+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..011fc36d0
--- /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' 'mips64el')
+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..cbe885624
--- /dev/null
+++ b/extra/qca-gnupg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 123769 2011-05-12 21:14:25Z andrea $
+# Maintainer:
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qca-gnupg
+pkgver=2.0.0
+_pkgver=2.0.0-beta3
+pkgrel=2
+pkgdesc="Qt Cryptographic Architecture"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${_pkgver}
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/extra/qca-ossl/PKGBUILD b/extra/qca-ossl/PKGBUILD
new file mode 100644
index 000000000..91fb1bbf4
--- /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' 'mips64el')
+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..2cf9184ce
--- /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' 'mips64el')
+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..819226d3c
--- /dev/null
+++ b/extra/qemu-kvm/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 141295 2011-10-28 08:03:30Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=qemu-kvm
+pkgver=0.15.1
+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 'mips64el')
+license=('GPL2' 'LGPL2.1')
+url="http://www.linux-kvm.org"
+depends=('libjpeg' 'libpng' 'libsasl' 'curl' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng')
+makedepends=('texi2html' 'perl' 'python2')
+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)
+options=(!strip)
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # fix esound building
+ ./configure --prefix=/usr \
+ --python=/usr/bin/python2 \
+ --sysconfdir=/etc \
+ --audio-drv-list=alsa,sdl,oss \
+ --audio-card-list=ac97,sb16,es1370,hda \
+ --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
+ # strip scripts directory
+ find ${pkgdir}/usr/bin -type f -perm -u+w 2>/dev/null | while read binary ; do
+ case "$(file -bi "$binary")" in
+ *application/x-executable*) # Binaries
+ /usr/bin/strip $STRIP_BINARIES "$binary";;
+ esac
+ done
+}
+md5sums=('8800a7d6b3aa4a168ea7f78dc66c0320'
+ '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..b949c6ee0
--- /dev/null
+++ b/extra/qemu/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 141293 2011-10-28 08:03:28Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=qemu
+pkgver=0.15.1
+pkgrel=1
+pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2' 'LGPL2.1')
+url="http://wiki.qemu.org/Index.html"
+makedepends=('texi2html' 'perl' 'python2')
+depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'curl' 'libsasl' 'libgl')
+backup=('etc/qemu/target-x86_64.conf')
+install=qemu.install
+source=(http://wiki.qemu.org/download/${pkgname}-${pkgver}.tar.gz
+ 65-kvm.rules)
+options=(!strip)
+
+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 \
+ --python=/usr/bin/python2 \
+ --audio-card-list=ac97,sb16,es1370,hda \
+ --enable-docs
+ 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
+ # 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-executable*) # Binaries
+ /usr/bin/strip $STRIP_BINARIES "$binary";;
+ esac
+ done
+
+}
+md5sums=('34f17737baaf1b3495c89cd6d4a607ed'
+ '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/qhull/PKGBUILD b/extra/qhull/PKGBUILD
new file mode 100644
index 000000000..06e1abf86
--- /dev/null
+++ b/extra/qhull/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 120895 2011-04-27 06:52:39Z ronald $
+# Maintainer: Ronald van Haren <ronald@archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=qhull
+pkgver=2010.1
+pkgrel=1.1
+pkgdesc="A general dimension code for computing convex hulls and related structures"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.qhull.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('cmake')
+source=(http://www.qhull.org/download/$pkgname-$pkgver-src.tgz
+ qhull-2010.1-cmake-install.patch
+ qhull-2010.1-overflows.patch)
+options=('!libtool')
+sha1sums=('ed480912e03efdd767195c06c7e8c252c78112b1'
+ '0a7747eb13c2e07c25882c1f0f5c0dfb4ef1c8c0'
+ '21295d57af2f8cdfc775512fa44fe90f49d89c41')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # gentoo patches
+ patch -Np1 -i ${srcdir}/qhull-2010.1-cmake-install.patch
+ patch -Np1 -i ${srcdir}/qhull-2010.1-overflows.patch
+
+ [ -d build ] || mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DDOC_INSTALL_DIR=/usr/share/doc \
+ -DLIB_INSTALL_DIR=/usr/lib ..
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+
+ make DESTDIR=$pkgdir install
+
+ # install manpages
+ install -Dm644 $srcdir/$pkgname-$pkgver/html/rbox.man $pkgdir/usr/share/man/man1/rbox.1
+ install -Dm644 $srcdir/$pkgname-$pkgver/html/qhull.man $pkgdir/usr/share/man/man1/qhull.1
+
+ # Install license
+ install -Dm644 $srcdir/$pkgname-$pkgver/COPYING.txt "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+}
diff --git a/extra/qhull/qhull-2010.1-cmake-install.patch b/extra/qhull/qhull-2010.1-cmake-install.patch
new file mode 100644
index 000000000..9e1914d13
--- /dev/null
+++ b/extra/qhull/qhull-2010.1-cmake-install.patch
@@ -0,0 +1,98 @@
+diff -Nur qhull-2010.1.orig/CMakeLists.txt qhull-2010.1/CMakeLists.txt
+--- qhull-2010.1.orig/CMakeLists.txt 2010-10-03 23:04:04.000000000 +0100
++++ qhull-2010.1/CMakeLists.txt 2010-10-03 23:26:54.000000000 +0100
+@@ -1,8 +1,44 @@
+ project(qhull)
+-cmake_minimum_required(VERSION 2.4)
+-if(COMMAND cmake_policy)
+- cmake_policy(SET CMP0003 NEW)
+-endif(COMMAND cmake_policy)
++cmake_minimum_required(VERSION 2.6)
++
++
++set(QHULL_VERSION "2010.1")
++
++if(INCLUDE_INSTALL_DIR)
++else()
++set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
++endif()
++if(LIB_INSTALL_DIR)
++else()
++set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
++endif()
++if(BIN_INSTALL_DIR)
++else()
++set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
++endif()
++if(DOC_INSTALL_DIR)
++else()
++set(DOC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/qhull)
++endif()
++
++message(STATUS)
++message(STATUS "========== qhull Build Information ==========")
++message(STATUS "Build Version: ${QHULL_VERSION}")
++message(STATUS "Install Prefix (CMAKE_INSTALL_PREFIX): ${CMAKE_INSTALL_PREFIX}")
++message(STATUS "Binary Directory (BIN_INSTALL_DIR): ${BIN_INSTALL_DIR}")
++message(STATUS "Library Directory (LIB_INSTALL_DIR): ${LIB_INSTALL_DIR}")
++message(STATUS "Include Directory (INCLUDE_INSTALL_DIR): ${INCLUDE_INSTALL_DIR}")
++message(STATUS "Documentation Directory (DOC_INSTALL_DIR): ${DOC_INSTALL_DIR}")
++message(STATUS)
++message(STATUS "To change any of these options, override them using -D{OPTION_NAME} on the commandline.")
++message(STATUS "To build and install qhull, run \"make\" and \"make install\"")
++message(STATUS)
++
+
+ add_subdirectory(src)
++option(WITH_STATIC_LIBS "Build with a static library" OFF)
++option(WITH_DOCS "Install HTML documentation" OFF)
+
++if (WITH_DOCS)
++install(DIRECTORY html/ DESTINATION ${DOC_INSTALL_DIR})
++endif (WITH_DOCS)
+diff -Nur qhull-2010.1.orig/src/CMakeLists.txt qhull-2010.1/src/CMakeLists.txt
+--- qhull-2010.1.orig/src/CMakeLists.txt 2010-10-03 23:04:04.000000000 +0100
++++ qhull-2010.1/src/CMakeLists.txt 2010-10-04 00:23:47.000000000 +0100
+@@ -23,8 +23,25 @@
+
+ file(GLOB qhull_hdr *.h)
+
+-add_library(qhull ${qhull_src})
++add_library(qhull SHARED ${qhull_src})
+ target_link_libraries(qhull m)
++if(UNIX)
++ if(APPLE)
++ set_target_properties(qhull PROPERTIES
++ INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
++ else(APPLE)
++ set_target_properties(qhull PROPERTIES
++ INSTALL_RPATH "${LIB_INSTALL_DIR}"
++ INSTALL_RPATH_USE_LINK_PATH TRUE
++ BUILD_WITH_INSTALL_RPATH FALSE)
++ endif(APPLE)
++endif(UNIX)
++
++if(WITH_STATIC_LIBS)
++ add_library(qhullstatic STATIC ${qhull_src})
++ set_property(TARGET qhullstatic PROPERTY OUTPUT_NAME "qhull")
++ install(TARGETS qhullstatic ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
++endif(WITH_STATIC_LIBS)
+
+ set(qhullcmd_SOURCES unix.c)
+ set(rbox_SOURCES rbox.c)
+@@ -36,6 +53,7 @@
+
+ add_executable(qhullcmd ${qhullcmd_SOURCES})
+ target_link_libraries(qhullcmd qhull)
++set_property(TARGET qhullcmd PROPERTY OUTPUT_NAME "qhull")
+
+ add_executable(rbox ${rbox_SOURCES})
+ target_link_libraries(rbox qhull)
+@@ -52,3 +70,7 @@
+ add_executable(qhalf ${qhalf_SOURCES})
+ target_link_libraries(qhalf qhull)
+
++install(TARGETS qhull qhullcmd rbox qconvex qdelaunay qvoronoi qhalf
++ RUNTIME DESTINATION ${BIN_INSTALL_DIR}
++ LIBRARY DESTINATION ${LIB_INSTALL_DIR})
++install(FILES ${qhull_hdr} DESTINATION ${INCLUDE_INSTALL_DIR}/qhull)
diff --git a/extra/qhull/qhull-2010.1-overflows.patch b/extra/qhull/qhull-2010.1-overflows.patch
new file mode 100644
index 000000000..df4aa3da1
--- /dev/null
+++ b/extra/qhull/qhull-2010.1-overflows.patch
@@ -0,0 +1,50 @@
+From 176c01851026125f574a8223ad49ec58b2b58ec0 Mon Sep 17 00:00:00 2001
+From: Johannes Obermayr <johannesobermayr@gmx.de>
+Date: Fri, 23 Jul 2010 20:02:19 +0200
+Subject: [PATCH] Fix some serious compiler warnings causing build breakage on openSUSE.
+
+---
+ src/global.c | 2 +-
+ src/rboxlib.c | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/global.c b/src/global.c
+index 3c6141a..4c9f56c 100644
+--- a/src/global.c
++++ b/src/global.c
+@@ -614,7 +614,7 @@ void qh_initflags(char *command) {
+ if (command <= &qh qhull_command[0] || command > &qh qhull_command[0] + sizeof(qh qhull_command)) {
+ if (command != &qh qhull_command[0]) {
+ *qh qhull_command= '\0';
+- strncat( qh qhull_command, command, sizeof( qh qhull_command));
++ strncat(qh qhull_command, command, sizeof(qh qhull_command)-strlen(qh qhull_command)-1);
+ }
+ while (*s && !isspace(*s)) /* skip program name */
+ s++;
+diff --git a/src/rboxlib.c b/src/rboxlib.c
+index 4f11d22..17d01ac 100644
+--- a/src/rboxlib.c
++++ b/src/rboxlib.c
+@@ -124,7 +124,7 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
+ }
+
+ *command= '\0';
+- strncat(command, rbox_command, sizeof(command));
++ strncat(command, rbox_command, sizeof(command)-strlen(command)-1);
+
+ while (*s && !isspace(*s)) /* skip program name */
+ s++;
+@@ -346,8 +346,8 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
+ }
+ }else if (israndom) {
+ seed= (int)time(&timedata);
+- sprintf(seedbuf, " t%d", seed); /* appends an extra t, not worth removing */
+- strncat(command, seedbuf, sizeof(command));
++ printf(seedbuf, " t%d", seed); /* appends an extra t, not worth removing */
++ strncat(command, seedbuf, sizeof(command)-strlen(command)-1);
+ t= strstr(command, " t ");
+ if (t)
+ strcpy(t+1, t+3); /* remove " t " */
+--
+1.6.1
+
diff --git a/extra/qimageblitz/PKGBUILD b/extra/qimageblitz/PKGBUILD
new file mode 100644
index 000000000..04ad21b8c
--- /dev/null
+++ b/extra/qimageblitz/PKGBUILD
@@ -0,0 +1,33 @@
+# $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' 'mips64el')
+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
+ CXX="g++" \
+ 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..94505ed1d
--- /dev/null
+++ b/extra/qiv/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 134996 2011-08-09 20:30:46Z eric $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=qiv
+pkgver=2.2.4
+pkgrel=1
+pkgdesc="Quick Image Viewer (qiv) is a very small and fast GDK/Imlib image viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://spiegl.de/qiv/"
+license=('GPL2')
+depends=('file' 'gtk2' 'imlib2')
+source=(http://spiegl.de/qiv/download/$pkgname-$pkgver.tgz)
+md5sums=('1425f89c90f9c045858fccf24d894c97')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -D -m 0755 qiv "$pkgdir/usr/bin/qiv"
+ install -D -m 0644 qiv.1 "$pkgdir/usr/share/man/man1/qiv.1"
+}
diff --git a/extra/qjackctl/PKGBUILD b/extra/qjackctl/PKGBUILD
new file mode 100644
index 000000000..d44e3bd72
--- /dev/null
+++ b/extra/qjackctl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 130089 2011-07-02 07:06:29Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=qjackctl
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="A Qt front-end for the JACK low-latency audio server"
+url="http://qjackctl.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('jack' 'qt')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('8a0992c01e50d8be22064ab7b08fbc78')
+
+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..619962e02
--- /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' 'mips64el')
+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/qrencode/PKGBUILD b/extra/qrencode/PKGBUILD
new file mode 100644
index 000000000..617435a47
--- /dev/null
+++ b/extra/qrencode/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143784 2011-11-29 10:37:04Z bluewind $
+# Maintainer: Florian Pritz< flo@xinu.at>
+# Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
+
+pkgname=qrencode
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="C library for encoding data in a QR Code symbol."
+arch=(i686 x86_64 'mips64el')
+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)
+md5sums=('7e90615eb314abcd2eb2eab5c8155b97')
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+# autoreconf
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+
+ make prefix="$pkgdir/usr" install
+}
diff --git a/extra/qscintilla/PKGBUILD b/extra/qscintilla/PKGBUILD
new file mode 100644
index 000000000..657199f72
--- /dev/null
+++ b/extra/qscintilla/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 142563 2011-11-12 08:13:52Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgbase=qscintilla
+pkgname=('qscintilla' 'python-qscintilla' 'python2-qscintilla')
+pkgver=2.6
+pkgrel=1
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.riverbankcomputing.co.uk/software/qscintilla/intro"
+makedepends=('python2-pyqt' 'chrpath')
+source=("http://riverbankcomputing.com/static/Downloads/QScintilla2/QScintilla-gpl-${pkgver}.tar.gz"
+ 'configure.py-objdir-support.diff')
+md5sums=('0605a8006ea752ec2d1d7fc4791d1c75'
+ '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=('pyqt' 'qscintilla')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Python"
+ install -Dm755 Qsci.so \
+ "${pkgdir}/usr/lib/python3.2/site-packages/PyQt4/Qsci.so"
+
+ # Fix RPATH
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/python3.2/site-packages/PyQt4/Qsci.so
+}
+
+package_python2-qscintilla() {
+ pkgdesc="Python 2 bindings for QScintilla2"
+ depends=('python-qscintilla' 'python2-pyqt')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Python2"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+
+ # Fix RPATH
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/python2.7/site-packages/PyQt4/Qsci.so
+}
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..72171d726
--- /dev/null
+++ b/extra/qsynth/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 118833 2011-04-08 10:15:47Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=qsynth
+pkgver=0.3.6
+pkgrel=1
+pkgdesc="Qt GUI for FluidSynth"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://qsynth.sourceforge.net/"
+license=('GPL')
+depends=('fluidsynth' 'qt')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('3cba3c87463be75ac188ebc3c3023d12')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/qt-assistant-compat/PKGBUILD b/extra/qt-assistant-compat/PKGBUILD
new file mode 100644
index 000000000..e19e19418
--- /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' 'mips64el')
+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..1bb8ceb2b
--- /dev/null
+++ b/extra/qt/PKGBUILD
@@ -0,0 +1,147 @@
+# $Id: PKGBUILD 137970 2011-09-13 10:37:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=qt
+pkgname=('qt' 'qt-private-headers')
+pkgver=4.7.4
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+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-diginotar-certs.diff')
+md5sums=('9831cf1dfa8d0689a06c2c54c5c65aaf'
+ 'fc211414130ab2764132e7370f8e5caa'
+ '85179f5e0437514f8639957e1d8baf62'
+ 'f11852b97583610f3dbb669ebc3e21bc'
+ '6b771c8a81dd90b45e8a79afa0e5bbfd'
+ 'd875a2a7639de3bd63dc519c13b4d069')
+
+build() {
+ unset QMAKESPEC
+ export QT4DIR=$srcdir/$_pkgfqn
+ export PATH=${QT4DIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+
+# Disable precompiled headers for mips64el
+ [ "$CARCH" = "mips64el" ] && {
+ export CXXFLAGS="$CXXFLAGS -fpermissive"
+ extra="-no-pch"
+ }
+
+ # FS#24601
+ export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+
+ cd $srcdir/$_pkgfqn
+
+ patch -p1 -i "${srcdir}"/blacklist-diginotar-certs.diff
+
+ 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 $extra
+ 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/{QtCore,QtDeclarative,QtGui,QtScript}
+ install -d ${pkgdir}/usr/src/{corelib,declarative,gui,script}
+
+ for i in QtCore QtDeclarative QtGui QtScript; do
+ cp -r ${srcdir}/$_pkgfqn/include/${i}/private/ \
+ ${pkgdir}/usr/include/${i}/
+ done
+
+ for i in corelib declarative gui script; do
+ cp -r ${srcdir}/$_pkgfqn/src/${i} ${pkgdir}/usr/src/
+ done
+}
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-diginotar-certs.diff b/extra/qt/blacklist-diginotar-certs.diff
new file mode 100644
index 000000000..4a50f3b88
--- /dev/null
+++ b/extra/qt/blacklist-diginotar-certs.diff
@@ -0,0 +1,89 @@
+diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
+index 328c5c2..1ae98f4 100644
+--- a/src/network/ssl/qsslcertificate.cpp
++++ b/src/network/ssl/qsslcertificate.cpp
+@@ -803,22 +803,47 @@ QList<QSslCertificate> QSslCertificatePrivate::certificatesFromDer(const QByteAr
+ // 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",
++ "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e", "mail.google.com", // Comodo
++ "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06", "www.google.com", // Comodo
++ "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3", "login.yahoo.com", // Comodo
++ "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29", "login.yahoo.com", // Comodo
++ "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71", "login.yahoo.com", // Comodo
++ "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47", "login.skype.com", // Comodo
++ "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43", "addons.mozilla.org", // Comodo
++ "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0", "login.live.com", // Comodo
++ "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0", "global trustee", // Comodo
++
++ "05:e2:e6:a4:cd:09:ea:54:d6:65:b0:75:fe:22:a2:56", "*.google.com", // leaf certificate issued by DigiNotar
++ "0c:76:da:9c:91:0c:4e:2c:9e:fe:15:d0:58:93:3c:4c", "DigiNotar Root CA", // DigiNotar root
++ "f1:4a:13:f4:87:2b:56:dc:39:df:84:ca:7a:a1:06:49", "DigiNotar Services CA", // DigiNotar intermediate signed by DigiNotar Root
++ "36:16:71:55:43:42:1b:9d:e6:cb:a3:64:41:df:24:38", "DigiNotar Services 1024 CA", // DigiNotar intermediate signed by DigiNotar Root
++ "0a:82:bd:1e:14:4e:88:14:d7:5b:1a:55:27:be:bf:3e", "DigiNotar Root CA G2", // other DigiNotar Root CA
++ "a4:b6:ce:e3:2e:d3:35:46:26:3c:b3:55:3a:a8:92:21", "CertiID Enterprise Certificate Authority", // DigiNotar intermediate signed by "DigiNotar Root CA G2"
++ "5b:d5:60:9c:64:17:68:cf:21:0e:35:fd:fb:05:ad:41", "DigiNotar Qualified CA", // DigiNotar intermediate signed by DigiNotar Root
++
++ "1184640176", "DigiNotar Services 1024 CA", // DigiNotar intermediate cross-signed by Entrust
++ "120000525", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
++ "120000505", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
++ "120000515", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
++ "20015536", "DigiNotar PKIoverheid CA Overheid en Bedrijven", // DigiNotar intermediate cross-signed by the Dutch government
++ "20001983", "DigiNotar PKIoverheid CA Organisatie - G2", // DigiNotar intermediate cross-signed by the Dutch government
++ "d6:d0:29:77:f1:49:fd:1a:83:f2:b9:ea:94:8c:5c:b4", "DigiNotar Extended Validation CA", // DigiNotar intermediate signed by DigiNotar EV Root
++ "1e:7d:7a:53:3d:45:30:41:96:40:0f:71:48:1f:45:04", "DigiNotar Public CA 2025", // DigiNotar intermediate
++// "(has not been seen in the wild so far)", "DigiNotar Public CA - G2", // DigiNotar intermediate
++// "(has not been seen in the wild so far)", "Koninklijke Notariele Beroepsorganisatie CA", // compromised during DigiNotar breach
++// "(has not been seen in the wild so far)", "Stichting TTP Infos CA," // compromised during DigiNotar breach
++ "1184640175", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
++ "1184644297", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
+ 0
+ };
+
+ bool QSslCertificatePrivate::isBlacklisted(const QSslCertificate &certificate)
+ {
+ for (int a = 0; certificate_blacklist[a] != 0; a++) {
+- if (certificate.serialNumber() == certificate_blacklist[a])
++ QString blacklistedCommonName = QString::fromUtf8(certificate_blacklist[(a+1)]);
++ if (certificate.serialNumber() == certificate_blacklist[a++] &&
++ (certificate.subjectInfo(QSslCertificate::CommonName) == blacklistedCommonName ||
++ certificate.issuerInfo(QSslCertificate::CommonName) == blacklistedCommonName))
+ return true;
+ }
+ return false;
+diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
+index 141d80a..b8e6c4c 100644
+--- a/src/network/ssl/qsslsocket_openssl.cpp
++++ b/src/network/ssl/qsslsocket_openssl.cpp
+@@ -1193,12 +1193,16 @@ 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;
++
++ // check the whole chain for blacklisting (including root, as we check for subjectInfo and issuer)
++ foreach (const QSslCertificate &cert, configuration.peerCertificateChain) {
++ if (QSslCertificatePrivate::isBlacklisted(cert)) {
++ 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.
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..47ad18e13
--- /dev/null
+++ b/extra/qt3/PKGBUILD
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 123699 2011-05-12 15:47:03Z andrea $
+# Maintainer:
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=qt3
+pkgver=3.3.8
+pkgrel=20
+pkgdesc="The QT3 gui toolkit"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.trolltech.com/products/qt/index.html"
+pkgfqn=qt-x11-free-${pkgver}
+install=qt.install
+depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft'
+ 'libxrandr' 'libmng')
+makedepends=('mysql' 'postgresql' '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
+ gcc-4.6.patch)
+options=(!libtool)
+md5sums=('cf3c43a7dfde5bfb76f8001102fe6e85'
+ '1dc671df42b9030dbdf68bb61cd3375e'
+ 'f72d1eb4eb49b9a9467c1f6035194266'
+ 'f2a2dbdbfee9422c90efc3ef3f86197c'
+ '2f00e5c0c1e2c2a23dddc982cd79f3e0'
+ 'f6b3b39040f2b8f19ba1cf1445468c28'
+ '9370d82e85f2c799335ed0dcc1d53189'
+ '7d40ed1bd40d33d8b9b27a2076a5d22a'
+ '616f1f3029cf8375256ad6a406de3549'
+ '2178ca88dfd75a230918593b30eb0dbe'
+ '75177de5b08e1efd437c887c6e606c5b')
+
+# 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
+ done
+ # apply other qt patches and one security fix from debian/gentoo
+ for i in ../qt-patches/*; do
+ patch -Np1 -i $i
+ done
+ # fix utf8 bug
+ patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff
+ # fix asia fonts
+ patch -p0 -i "${srcdir}"/qt-font-default-subst.diff
+ # fix segfaults on exit when using mysql DB driver
+ patch -p0 -i "${srcdir}"/mysql.patch
+ # fix CJK font/chars select error (FS#11245)
+ patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff
+ # fix build problem against new unixODBC
+ patch -p1 -i "${srcdir}"/qt-odbc.patch
+ # fix build with gcc 4.6.0
+ patch -p1 -i "${srcdir}"/gcc-4.6.patch
+
+ patch -p0 -i "${srcdir}"/qt3-png14.patch
+ # 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
+ 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
+}
+
+package() {
+ cd "${srcdir}"/$pkgfqn
+ 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
+ install -d -m755 "${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/gcc-4.6.patch b/extra/qt3/gcc-4.6.patch
new file mode 100644
index 000000000..bcbffcea6
--- /dev/null
+++ b/extra/qt3/gcc-4.6.patch
@@ -0,0 +1,33 @@
+diff -up qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef qt-x11-free-3.3.8b/src/tools/qmap.h
+--- qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-01-30 21:14:29.275088725 -0600
+@@ -49,6 +49,7 @@
+ #include "qvaluelist.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <map>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluelist.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-01-30 21:14:01.765846592 -0600
+@@ -47,6 +47,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <list>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluevector.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-01-30 21:14:01.765846592 -0600
+@@ -45,6 +45,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <vector>
+ #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..93e1e3106
--- /dev/null
+++ b/extra/qtcurve-gtk2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 141029 2011-10-22 02:18:45Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qtcurve-gtk2
+pkgver=1.8.12
+pkgrel=1
+pkgdesc="A configurable set of widget styles for KDE and Gtk"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde-look.org/content/show.php?content=40492"
+license=('GPL')
+depends=('gtk2')
+makedepends=('cmake')
+groups=('qtcurve')
+options=('!libtool')
+source=("http://craigd.wikispaces.com/file/view/QtCurve-Gtk2-${pkgver}.tar.bz2")
+sha1sums=('3b107aee1cf7dbd3ac47c693e82cd877a0fe2d5f')
+
+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..a916c64ad
--- /dev/null
+++ b/extra/qtcurve-kde3/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 118940 2011-04-09 13:49:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qtcurve-kde3
+pkgver=1.8.5
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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=('d9cca99526079782f9fc7bd7ba432582'
+ '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..cb31d7040
--- /dev/null
+++ b/extra/qtcurve-kde4/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 140653 2011-10-17 18:59:52Z ronald $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qtcurve-kde4
+pkgver=1.8.9
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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')
+sha1sums=('93bc8ce3e5bed506521a8839a254f7076b4bc988'
+ '8005c8bf0e9c5d75e80b417a01513bd45853274c')
+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 -p1 -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..1bb6ad272
--- /dev/null
+++ b/extra/qtiplot/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 136909 2011-09-02 18:19:47Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir.archlinux.org>
+# Contributor: Gergely Imreh <imrehg@gmail.com>
+
+pkgname=qtiplot
+pkgver=0.9.8.8
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://soft.proindependent.com/qtiplot.html"
+pkgdesc="Data analysis and scientific plotting - free clone of Origin"
+depends=('muparser' 'gsl' 'python2-qt' 'boost-libs' 'shared-mime-info' 'mesa' 'liborigin2' 'qt-assistant-compat' 'tamu-anova')
+# 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.8.6-gold.patch
+ qtiplot-0.9.8.6-kde.patch
+ qtiplot-0.9.8.6-tamuanova.patch)
+sha1sums=('02801cdf31b543c0f5d7ef1b1f358f0738d93d48'
+ '4d5d7cf3965a0a1b1aa9cafc34e70ee207700bc8'
+ '4301cb2a36024a10108b689990d28c4fe5c7416e'
+ 'b3af6c866b3e63b537b418b6d00e57ef468f8f2b'
+ '301bf6f70e8c1bb9ffd55eb49eedde7b29a12909'
+ '285f57d865956d93250ec548288c5bface096b6b'
+ 'b534a609f317cf3117d6495909854cdacea20124'
+ 'a1d4bec744c9b8fe29bf177851e66c97cdd9d975'
+ '830b518e3ef63625df84363a8047417124f243b0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # gentoo fixes
+ patch -Np1 -i "${srcdir}/qtiplot-0.9.8.6-gold.patch"
+ patch -Np1 -i "${srcdir}/qtiplot-0.9.8.6-kde.patch"
+# patch -Np1 -i "${srcdir}/qtiplot-0.9.8.6-tamuanova.patch"
+
+ # build also static qwtplot3d lib
+ echo "unix:CONFIG += staticlib" >> 3rdparty/qwtplot3d/qwtplot3d.pro
+
+ # install build configuration file
+ 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..342377578
--- /dev/null
+++ b/extra/qtiplot/build.conf.archlinux
@@ -0,0 +1,31 @@
+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
+TAMUANOVA_LIBS = -ltamuanova
+TAMUANOVA_INCLUDEPATH = /usr/include/tamu_anova
+
+PYTHON = python2
+LUPDATE = lupdate
+LRELEASE = lrelease
+
+SCRIPTING_LANGS += muParser
+SCRIPTING_LANGS += Python
+
+CONFIG += CustomInstall
+DEFINES += SCRIPTING_CONSOLE
+
diff --git a/extra/qtiplot/qtiplot-0.9.8.6-gold.patch b/extra/qtiplot/qtiplot-0.9.8.6-gold.patch
new file mode 100644
index 000000000..3b6757533
--- /dev/null
+++ b/extra/qtiplot/qtiplot-0.9.8.6-gold.patch
@@ -0,0 +1,15 @@
+ qtiplot/qtiplot.pro | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/qtiplot/qtiplot.pro b/qtiplot/qtiplot.pro
+index 99e0e36..b7cf373 100755
+--- a/qtiplot/qtiplot.pro
++++ b/qtiplot/qtiplot.pro
+@@ -20,6 +20,7 @@ LIBS += $$MUPARSER_LIBS
+ LIBS += $$QWT_LIBS
+ LIBS += $$QWT3D_LIBS
+ LIBS += $$GSL_LIBS
++LIBS += -lz
+
+ #############################################################################
+ ###################### BASIC PROJECT PROPERTIES #############################
diff --git a/extra/qtiplot/qtiplot-0.9.8.6-kde.patch b/extra/qtiplot/qtiplot-0.9.8.6-kde.patch
new file mode 100644
index 000000000..919ec6cc2
--- /dev/null
+++ b/extra/qtiplot/qtiplot-0.9.8.6-kde.patch
@@ -0,0 +1,15 @@
+ qtiplot/src/plot2D/Graph.cpp | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/qtiplot/src/plot2D/Graph.cpp b/qtiplot/src/plot2D/Graph.cpp
+index 626172a..d4eab1b 100755
+--- a/qtiplot/src/plot2D/Graph.cpp
++++ b/qtiplot/src/plot2D/Graph.cpp
+@@ -73,6 +73,7 @@
+ #include <PatternBox.h>
+ #include <SymbolBox.h>
+
++#include <QPaintEngine>
+ #include <QApplication>
+ #include <QBitmap>
+ #include <QClipboard>
diff --git a/extra/qtiplot/qtiplot-0.9.8.6-tamuanova.patch b/extra/qtiplot/qtiplot-0.9.8.6-tamuanova.patch
new file mode 100644
index 000000000..1644266d1
--- /dev/null
+++ b/extra/qtiplot/qtiplot-0.9.8.6-tamuanova.patch
@@ -0,0 +1,26 @@
+diff --git a/qtiplot/qtiplot.pro b/qtiplot/qtiplot.pro
+index 95a5f0c..72e99ab 100755
+--- a/qtiplot/qtiplot.pro
++++ b/qtiplot/qtiplot.pro
+@@ -205,18 +205,14 @@ contains(SCRIPTING_LANGS, Python) {
+ !isEmpty(TAMUANOVA_LIBS) {
+ DEFINES += HAVE_TAMUANOVA
+ INCLUDEPATH += $$TAMUANOVA_INCLUDEPATH
+- #LIBS += $$TAMUANOVA_LIBS
+-
+- HEADERS += $$TAMUANOVA_INCLUDEPATH/tamu_anova.h
+- SOURCES += $$TAMUANOVA_INCLUDEPATH/anova_1.c
+- SOURCES += $$TAMUANOVA_INCLUDEPATH/anova_2.c
++ LIBS += $$TAMUANOVA_LIBS
+ }
+
+ ###############################################################
+
+ # At the very end: add global include- and lib path
+-#unix:INCLUDEPATH += $$SYS_INCLUDEPATH
+-#unix:LIBS += $$SYS_LIBS
++unix:INCLUDEPATH += $$SYS_INCLUDEPATH
++unix:LIBS += $$SYS_LIBS
+
+ ###############################################################
+ ############### Building QtiPlot as a browser plugin ##########
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..07fb0bff8
--- /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" 'mips64el')
+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..96e5e179d
--- /dev/null
+++ b/extra/quodlibet/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 140990 2011-10-20 22:44:26Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=quodlibet
+pkgver=2.3.2
+pkgrel=1
+pkgdesc="An audio player written in pygtk"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'udisks: for media devices support'
+ 'media-player-info: for media devices support')
+options=('!makeflags')
+source=(http://quodlibet.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('21bc5fb988ca6c09959fc7212c05272a126a5be5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#env python#env python2#' *.py quodlibet/util/fmps.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/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..b7b18e573
--- /dev/null
+++ b/extra/quota-tools/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 131802 2011-07-15 11:55:43Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=quota-tools
+pkgver=4.00_pre1
+pkgrel=1
+pkgdesc="Tools to manage kernel-level quotas in Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/linuxquota/"
+license=('GPL' 'BSD')
+depends=('e2fsprogs')
+backup=('etc/warnquota.conf' 'etc/quotatab' 'etc/quotagrpadmins')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/linuxquota/quota-${pkgver/_/-}.tar.gz LICENSE \
+ quotaon.diff system_inodes.diff repquota.diff nulls.diff)
+md5sums=('ef9d66e8a968ecffd2d9df648fa8ada2'
+ 'dd792440e684043e4e4ef80963d0237b'
+ '9ac7ca4746de1ad057baee21474b7906'
+ '92d9f2a4b3e5e3adf2977051391785a7'
+ 'd1d70d4167e53d1414079b4391f1cfb8'
+ '094bce5226c4fd1c383bd0b75405ee2c')
+sha1sums=('adf29b49dab449078eb6ffdfe8af51fe85419e28'
+ '57297bdc9e638c500506169bbbe12eb89bcf7d07'
+ '2304f03cddd06d8791167f621683f7ef54610673'
+ 'e2a33f1f95a3ff8c741a2067058e898f6054af09'
+ '8b00e7c4f7af2188ad49a50a616c1d71eee20459'
+ '0527f761aa869f5d9e463ceab4a3bf82881d05c2')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ patch -p1 -i "${srcdir}/quotaon.diff"
+ patch -p1 -i "${srcdir}/system_inodes.diff"
+ patch -p1 -i "${srcdir}/repquota.diff"
+ patch -p1 -i "${srcdir}/nulls.diff"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ sed -i -e 's/#define HOSTS_ACCESS 1//' -e 's/HOSTS_ACCESS//' config.h
+ sed -i 's/-lwrap//' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ make ROOTDIR="${pkgdir}" install
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+# remove conflicts with glibc and man-pages
+ rm "${pkgdir}"/usr/include/rpcsvc/rquota.{h,x}
+ rm "${pkgdir}/usr/share/man/man2/quotactl.2"
+}
diff --git a/extra/quota-tools/nulls.diff b/extra/quota-tools/nulls.diff
new file mode 100644
index 000000000..97c5bc482
--- /dev/null
+++ b/extra/quota-tools/nulls.diff
@@ -0,0 +1,20 @@
+#Description: Avoid memory corruption of NULL address
+#Author: Petr Pisar
+
+--- quota/quotasys.c 2010-02-18 09:44:11.000000000 +0100
++++ quota-tools/quotasys.c 2010-05-05 08:02:53.000000000 +0200
+@@ -746,9 +746,12 @@
+ kernel_qfmt_num = 0;
+ if (!stat("/proc/fs/xfs/stat", &st))
+ kernel_qfmt[kernel_qfmt_num++] = QF_XFS;
+- else
+- if (!quotactl(QCMD(Q_XGETQSTAT, 0), NULL, 0, NULL) || (errno != EINVAL && errno != ENOSYS))
++ else {
++ fs_quota_stat_t dummy;
++
++ if (!quotactl(QCMD(Q_XGETQSTAT, 0), "/dev/root", 0, (void *)&dummy) || (errno != EINVAL && errno != ENOSYS))
+ kernel_qfmt[kernel_qfmt_num++] = QF_XFS;
++ }
+ /* Detect new kernel interface; Assume generic interface unless we can prove there is not one... */
+ if (!stat("/proc/sys/fs/quota", &st) || errno != ENOENT) {
+ kernel_iface = IFACE_GENERIC;
diff --git a/extra/quota-tools/quotaon.diff b/extra/quota-tools/quotaon.diff
new file mode 100644
index 000000000..6a43cee6c
--- /dev/null
+++ b/extra/quota-tools/quotaon.diff
@@ -0,0 +1,216 @@
+# Description: Fix quotaon to work with XFS and print all informational messages only in verbose mode
+# Author: Jan Kara
+
+diff -u quota/quotaon.c quota-tools/quotaon.c
+--- quota/quotaon.c 2010-07-28 11:14:02.000000000 +0200
++++ quota-tools/quotaon.c 2010-06-15 10:11:30.000000000 +0200
+@@ -42,6 +42,7 @@
+ #include <getopt.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <stdarg.h>
+
+ #include "quotaon.h"
+ #include "quota.h"
+@@ -145,6 +146,19 @@
+ }
+ }
+
++int pinfo(char *fmt, ...)
++{
++ va_list arg;
++ int ret;
++
++ if (!(flags & FL_VERBOSE))
++ return 0;
++ va_start(arg, fmt);
++ ret = vprintf(fmt, arg);
++ va_end(arg);
++ return ret;
++}
++
+ /*
+ * Enable/disable rsquash on given filesystem
+ */
+@@ -171,10 +185,10 @@
+ errstr(_("set root_squash on %s: %s\n"), quotadev, strerror(errno));
+ return 1;
+ }
+- if ((flags & STATEFLAG_VERBOSE) && (flags & STATEFLAG_OFF))
+- printf(_("%s: %s root_squash turned off\n"), quotadev, type2name(type));
+- else if ((flags & STATEFLAG_VERBOSE) && (flags & STATEFLAG_ON))
+- printf(_("%s: %s root_squash turned on\n"), quotadev, type2name(type));
++ if (flags & STATEFLAG_OFF)
++ pinfo(_("%s: %s root_squash turned off\n"), quotadev, type2name(type));
++ else if (flags & STATEFLAG_ON)
++ pinfo(_("%s: %s root_squash turned on\n"), quotadev, type2name(type));
+ #endif
+ return 0;
+ }
+@@ -195,8 +209,7 @@
+ errstr(_("quotactl on %s [%s]: %s\n"), quotadev, quotadir, strerror(errno));
+ return 1;
+ }
+- if (flags & STATEFLAG_VERBOSE)
+- printf(_("%s [%s]: %s quotas turned off\n"), quotadev, quotadir, type2name(type));
++ pinfo(_("%s [%s]: %s quotas turned off\n"), quotadev, quotadir, type2name(type));
+ return 0;
+ }
+ if (kernel_iface == IFACE_GENERIC) {
+@@ -218,8 +231,7 @@
+ errstr(_("Quota format not supported in kernel.\n"));
+ return 1;
+ }
+- if (flags & STATEFLAG_VERBOSE)
+- printf(_("%s [%s]: %s quotas turned on\n"), quotadev, quotadir, type2name(type));
++ pinfo(_("%s [%s]: %s quotas turned on\n"), quotadev, quotadir, type2name(type));
+ return 0;
+ }
+
+@@ -268,8 +280,6 @@
+ int sflags, ret = 0;
+
+ sflags = flags & FL_OFF ? STATEFLAG_OFF : STATEFLAG_ON;
+- if (flags & FL_VERBOSE)
+- sflags |= STATEFLAG_VERBOSE;
+ if (flags & FL_ALL)
+ sflags |= STATEFLAG_ALL;
+
+@@ -281,10 +291,7 @@
+ errstr(_("Cannot change state of XFS quota. It's not compiled in kernel.\n"));
+ return 1;
+ }
+- if ((flags & FL_OFF && (kern_quota_on(mnt->mnt_fsname, USRQUOTA, QF_XFS) != -1
+- || kern_quota_on(mnt->mnt_fsname, GRPQUOTA, QF_XFS) != -1))
+- || (!(flags & FL_OFF) && kern_quota_on(mnt->mnt_fsname, type, QF_XFS) == -1))
+- ret = xfs_newstate(mnt, type, extra, sflags);
++ ret = xfs_newstate(mnt, type, extra, sflags);
+ }
+ else if (meta_qf_fstype(mnt->mnt_type)) {
+ if (!hasquota(mnt, type, 0))
+@@ -376,7 +383,7 @@
+ while ((mnt = get_next_mount())) {
+ if (nfs_fstype(mnt->mnt_type)) {
+ if (!(flags & FL_ALL))
+- fprintf(stderr, "%s: Quota cannot be turned on on NFS filesystem\n", mnt->mnt_fsname);
++ errstr(_("%s: Quota cannot be turned on on NFS filesystem\n"), mnt->mnt_fsname);
+ continue;
+ }
+
+diff -u quota/quotaon.h quota-tools/quotaon.h
+--- quota/quotaon.h 2010-02-18 09:44:11.000000000 +0100
++++ quota-tools/quotaon.h 2010-06-12 12:06:08.000000000 +0200
+@@ -13,7 +13,7 @@
+ #define STATEFLAG_ON 0x01
+ #define STATEFLAG_OFF 0x02
+ #define STATEFLAG_ALL 0x04
+-#define STATEFLAG_VERBOSE 0x08
+
+ typedef int (newstate_t) (struct mntent * mnt, int type, char *file, int flags);
+ extern int xfs_newstate(struct mntent *mnt, int type, char *file, int flags);
++extern int pinfo(char *fmt, ...);
+diff -u quota/quotaon_xfs.c quota-tools/quotaon_xfs.c
+--- quota/quotaon_xfs.c 2010-07-26 18:48:24.000000000 +0200
++++ quota-tools/quotaon_xfs.c 2010-06-15 10:11:30.000000000 +0200
+@@ -59,8 +59,8 @@
+ return 1;
+ case Q_XFS_QUOTAON:
+ if (roothack) {
+- printf(_("Enabling %s quota on root filesystem"
+- " (reboot to take effect)\n"), type2name(type));
++ pinfo(_("Enabling %s quota on root filesystem"
++ " (reboot to take effect)\n"), type2name(type));
+ return 1;
+ }
+ errstr(_("Enable XFS %s quota accounting during mount\n"),
+@@ -79,12 +79,12 @@
+ return -1;
+ case Q_XFS_QUOTAON:
+ if (roothack) {
+- printf(_("Enabling %s quota on root filesystem"
+- " (reboot to take effect)\n"), type2name(type));
++ pinfo(_("Enabling %s quota on root filesystem"
++ " (reboot to take effect)\n"), type2name(type));
+ return 1;
+ }
+ if (xopts & XFS_QUOTA_UDQ_ENFD || xopts & XFS_QUOTA_GDQ_ENFD) {
+- printf(_("Enabling %s quota enforcement on %s\n"), type2name(type), dev);
++ pinfo(_("Enabling %s quota enforcement on %s\n"), type2name(type), dev);
+ return 1;
+ }
+ errstr(_("Already accounting %s quota on %s\n"),
+@@ -92,7 +92,7 @@
+ return -1;
+ case Q_XFS_QUOTAOFF:
+ if (xopts & XFS_QUOTA_UDQ_ACCT || xopts & XFS_QUOTA_GDQ_ACCT) {
+- printf(_("Disabling %s quota accounting on %s\n"),
++ pinfo(_("Disabling %s quota accounting on %s\n"),
+ type2name(type), dev);
+ return 1;
+ }
+@@ -121,9 +121,9 @@
+ return -1;
+ }
+ if (xopts & XFS_QUOTA_UDQ_ACCT || xopts & XFS_QUOTA_GDQ_ACCT)
+- acctstr = _("and accounting ");
+- printf(_("Disabling %s quota enforcement %son %s\n"),
+- type2name(type), acctstr, dev);
++ acctstr = _("and accounting ");
++ pinfo(_("Disabling %s quota enforcement %son %s\n"),
++ type2name(type), acctstr, dev);
+ return 1;
+ }
+ break;
+@@ -146,10 +146,10 @@
+ errstr(_("quotactl on %s: %s\n"), dev, strerror(errno));
+ return 1;
+ }
+- if ((flags & STATEFLAG_VERBOSE) && qoff)
+- printf(_("%s: %s quotas turned off\n"), dev, type2name(type));
+- else if ((flags & STATEFLAG_VERBOSE) && !qoff)
+- printf(_("%s: %s quotas turned on\n"), dev, type2name(type));
++ if (qoff)
++ pinfo(_("%s: %s quotas turned off\n"), dev, type2name(type));
++ else
++ pinfo(_("%s: %s quotas turned on\n"), dev, type2name(type));
+ return 0;
+ }
+
+@@ -168,8 +168,7 @@
+ return 1;
+ }
+
+- if (flags & STATEFLAG_VERBOSE)
+- printf(_("%s: deleted %s quota blocks\n"), dev, type2name(type));
++ pinfo(_("%s: deleted %s quota blocks\n"), dev, type2name(type));
+ return 0;
+ }
+
+@@ -208,16 +207,12 @@
+ }
+ #endif /* XFS_ROOTHACK */
+
+- if (xarg == NULL) { /* both acct & enfd on/off */
+- xopts |= (type == USRQUOTA) ?
+- (XFS_QUOTA_UDQ_ACCT | XFS_QUOTA_UDQ_ENFD) :
+- (XFS_QUOTA_GDQ_ACCT | XFS_QUOTA_GDQ_ENFD);
++ if (xarg == NULL) { /* only enfd on/off */
++ xopts |= (type == USRQUOTA) ? XFS_QUOTA_UDQ_ENFD :
++ XFS_QUOTA_GDQ_ENFD;
+ err = xfs_onoff((char *)dev, type, flags, roothack, xopts);
+ }
+ else if (strcmp(xarg, "account") == 0) {
+- /* only useful if we want root accounting only */
+- if (!roothack || !(flags & STATEFLAG_ON))
+- goto done;
+ xopts |= (type == USRQUOTA) ? XFS_QUOTA_UDQ_ACCT : XFS_QUOTA_GDQ_ACCT;
+ err = xfs_onoff((char *)dev, type, flags, roothack, xopts);
+ }
+@@ -231,7 +226,6 @@
+ }
+ else
+ die(1, _("Invalid argument \"%s\"\n"), xarg);
+- done:
+ free((char *)dev);
+ return err;
+ }
diff --git a/extra/quota-tools/repquota.diff b/extra/quota-tools/repquota.diff
new file mode 100644
index 000000000..3d79497d9
--- /dev/null
+++ b/extra/quota-tools/repquota.diff
@@ -0,0 +1,91 @@
+# Description: fix repquota to get latest quota info header
+# Author: Jan Kara
+
+diff -u quota/quotaio.c quota-tools/quotaio.c
+--- quota/quotaio.c 2010-07-28 11:14:02.000000000 +0200
++++ quota-tools/quotaio.c 2010-05-28 09:05:21.000000000 +0200
+@@ -147,6 +147,15 @@
+ }
+ }
+ if (!QIO_ENABLED(h) || flags & IOI_OPENFILE) { /* Need to open file? */
++ if (QIO_ENABLED(h)) { /* Kernel uses same file? */
++ unsigned int cmd =
++ (kernel_iface == IFACE_GENERIC) ? Q_SYNC : Q_6_5_SYNC;
++ if (quotactl(QCMD(cmd, h->qh_type), h->qh_quotadev,
++ 0, NULL) < 0) {
++ die(4, _("Cannot sync quotas on device %s: %s\n"),
++ h->qh_quotadev, strerror(errno));
++ }
++ }
+ /* We still need to open file for operations like 'repquota' */
+ if ((fd = open(qfname, QIO_RO(h) ? O_RDONLY : O_RDWR)) < 0) {
+ errstr(_("Cannot open quotafile %s: %s\n"),
+diff -u quota/quotaio_v1.c quota-tools/quotaio_v1.c
+--- quota/quotaio_v1.c 2010-07-26 18:48:24.000000000 +0200
++++ quota-tools/quotaio_v1.c 2010-05-28 09:05:23.000000000 +0200
+@@ -348,11 +348,6 @@
+ struct dquot *dquot = get_empty_dquot();
+ qid_t id = 0;
+
+- if (QIO_ENABLED(h)) /* Kernel uses same file? */
+- if (quotactl(QCMD((kernel_iface == IFACE_GENERIC) ? Q_SYNC : Q_6_5_SYNC, h->qh_type),
+- h->qh_quotadev, 0, NULL) < 0)
+- die(4, _("Cannot sync quotas on device %s: %s\n"), h->qh_quotadev,
+- strerror(errno));
+ memset(dquot, 0, sizeof(*dquot));
+ dquot->dq_h = h;
+ lseek(h->qh_fd, 0, SEEK_SET);
+diff -u quota/quotaio_v2.c quota-tools/quotaio_v2.c
+--- quota/quotaio_v2.c 2010-02-18 09:44:11.000000000 +0100
++++ quota-tools/quotaio_v2.c 2010-05-28 09:05:23.000000000 +0200
+@@ -484,11 +484,6 @@
+
+ static int v2_scan_dquots(struct quota_handle *h, int (*process_dquot) (struct dquot *, char *))
+ {
+- if (QIO_ENABLED(h)) /* Kernel uses same file? */
+- if (quotactl(QCMD((kernel_iface == IFACE_GENERIC) ? Q_SYNC : Q_6_5_SYNC, h->qh_type),
+- h->qh_quotadev, 0, NULL) < 0)
+- die(4, _("Cannot sync quotas on device %s: %s\n"), h->qh_quotadev,
+- strerror(errno));
+ return qtree_scan_dquots(h, process_dquot);
+ }
+
+diff -u quota/quotasys.c quota-tools/quotasys.c
+--- quota/quotasys.c 2010-07-28 11:14:02.000000000 +0200
++++ quota-tools/quotasys.c 2010-06-15 10:11:30.000000000 +0200
+@@ -861,22 +861,23 @@
+ if (kernel_iface == IFACE_GENERIC) {
+ int actfmt;
+
+- if (quotactl(QCMD(Q_GETFMT, type), dev, 0, (void *)&actfmt) < 0)
+- return -1;
+- actfmt = kern2utilfmt(actfmt);
+- if (actfmt < 0)
+- return -1;
+- return actfmt;
++ if (quotactl(QCMD(Q_GETFMT, type), dev, 0,
++ (void *)&actfmt) >= 0) {
++ actfmt = kern2utilfmt(actfmt);
++ if (actfmt >= 0)
++ return actfmt;
++ }
++ } else {
++ if ((fmt == -1 || fmt == QF_VFSV0) &&
++ v2_kern_quota_on(dev, type)) /* VFSv0 quota format */
++ return QF_VFSV0;
++ if ((fmt == -1 || fmt == QF_VFSOLD) &&
++ v1_kern_quota_on(dev, type)) /* Old quota format */
++ return QF_VFSOLD;
+ }
+- if ((fmt == -1 || fmt == QF_VFSV0) &&
+- v2_kern_quota_on(dev, type)) /* VFSv0 quota format */
+- return QF_VFSV0;
+ if ((fmt == -1 || fmt == QF_XFS) &&
+ xfs_kern_quota_on(dev, type)) /* XFS quota format */
+ return QF_XFS;
+- if ((fmt == -1 || fmt == QF_VFSOLD) &&
+- v1_kern_quota_on(dev, type)) /* Old quota format */
+- return QF_VFSOLD;
+ return -1;
+ }
+
diff --git a/extra/quota-tools/system_inodes.diff b/extra/quota-tools/system_inodes.diff
new file mode 100644
index 000000000..94f4d66da
--- /dev/null
+++ b/extra/quota-tools/system_inodes.diff
@@ -0,0 +1,18 @@
+# Description: Do not count system inodes into quota for ext[234]
+# Author: Jan Kara
+
+--- quota/quotacheck.c 2010-02-18 09:44:10.000000000 +0100
++++ quota-tools//quotacheck.c 2010-05-22 16:47:53.000000000 +0200
+@@ -455,8 +455,10 @@
+ return -1;
+ }
+
+- while ((long)i_num) {
+- if (inode.i_links_count) {
++ while (i_num) {
++ if ((i_num == EXT2_ROOT_INO ||
++ i_num >= EXT2_FIRST_INO(fs->super)) &&
++ inode.i_links_count) {
+ debug(FL_DEBUG, _("Found i_num %ld, blocks %ld\n"), (long)i_num, (long)inode.i_blocks);
+ if (flags & FL_VERBOSE)
+ blit(NULL);
diff --git a/extra/qwt/PKGBUILD b/extra/qwt/PKGBUILD
new file mode 100644
index 000000000..3b7c111bb
--- /dev/null
+++ b/extra/qwt/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 136901 2011-09-02 17:44:52Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=qwt
+pkgver=6.0.1
+pkgrel=1
+pkgdesc="Qt Widgets for Technical Applications"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://qwt.sourceforge.net/"
+depends=('qt')
+options=('!makeflags')
+license=("custom:$pkgname")
+source=("http://downloads.sourceforge.net/sourceforge/qwt/$pkgname-$pkgver.tar.bz2" \
+ "qwtconfig-archlinux.pri")
+sha1sums=('301cca0c49c7efc14363b42e082b09056178973e'
+ 'aba0fc75f6d450237028b7b143bdcf05a79cabb3')
+
+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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} QTDIR=/usr install
+
+ # Move man files to proper directory.
+# install -d ${pkgdir}/usr/share/man/man3
+# mv -f ${pkgdir}/usr/share/doc/qwt/man/man3/* ${pkgdir}/usr/share/man/man3
+
+ # 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..520e32d4b
--- /dev/null
+++ b/extra/qwt/qwtconfig-archlinux.pri
@@ -0,0 +1,118 @@
+################################################################
+# Qwt Widget Library
+# Copyright (C) 1997 Josef Wilgen
+# Copyright (C) 2002 Uwe Rathmann
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the Qwt License, Version 1.0
+################################################################
+
+QWT_VER_MAJ = 6
+QWT_VER_MIN = 1
+QWT_VER_PAT = 0
+QWT_VERSION = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT}
+
+######################################################################
+# Install paths
+######################################################################
+
+QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
+
+unix {
+ QWT_INSTALL_PREFIX = /usr
+}
+
+win32 {
+ QWT_INSTALL_PREFIX = C:/Qwt
+}
+
+QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/share/doc/qwt
+QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include/qwt
+QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib
+
+######################################################################
+# Designer plugin
+######################################################################
+
+#QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer
+# QWT_INSTALL_PLUGINS = $${QT_INSTALL_PREFIX}/plugins/designer
+
+######################################################################
+# Features
+# When building a Qwt application with qmake you might want to load
+# the compiler/linker flags, that are required to build a Qwt application
+# from qwt.prf. Therefore all you need to do is to add "CONFIG += qwt"
+# to your project file and take care, that qwt.prf can be found by qmake.
+# ( see http://doc.trolltech.com/4.7/qmake-advanced-usage.html#adding-new-configuration-features )
+# I recommend not to install the Qwt features together with the
+# Qt features, because you will have to reinstall the Qwt features,
+# with every Qt upgrade.
+######################################################################
+
+#QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features
+# QWT_INSTALL_FEATURES = $${QT_INSTALL_PREFIX}/features
+
+######################################################################
+# Build the static/shared libraries.
+# If QwtDll is enabled, a shared library is built, otherwise
+# it will be a static library.
+######################################################################
+
+QWT_CONFIG += QwtDll
+
+######################################################################
+# QwtPlot enables all classes, that are needed to use the QwtPlot
+# widget.
+######################################################################
+
+QWT_CONFIG += QwtPlot
+
+######################################################################
+# QwtWidgets enables all classes, that are needed to use the all other
+# widgets (sliders, dials, ...), beside QwtPlot.
+######################################################################
+
+QWT_CONFIG += QwtWidgets
+
+######################################################################
+# If you want to display svg images on the plot canvas, or
+# export a plot to a SVG document
+######################################################################
+
+QWT_CONFIG += QwtSvg
+
+######################################################################
+# You can use the MathML renderer of the Qt solutions package to
+# enable MathML support in Qwt. Because of license implications
+# the ( modified ) code of the MML Widget solution is included and
+# linked together with the QwtMathMLTextEngine into an own library.
+# To use it you will have to add "CONFIG += qwtmathml"
+# to your qmake project file.
+######################################################################
+
+#QWT_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.
+######################################################################
+
+QWT_CONFIG += QwtDesigner
+
+######################################################################
+# If you want to auto build the examples, enable the line below
+# Otherwise you have to build them from the examples directory.
+######################################################################
+
+#QWT_CONFIG += QwtExamples
+
+######################################################################
+# When Qt has been built as framework qmake ( qtAddLibrary ) wants
+# to link frameworks instead of regular libs
+######################################################################
+
+macx:CONFIG(qt_framework, qt_framework|qt_no_framework) {
+
+ QWT_CONFIG += QwtFramework
+}
diff --git a/extra/qwtplot3d/PKGBUILD b/extra/qwtplot3d/PKGBUILD
new file mode 100644
index 000000000..8b1c1c067
--- /dev/null
+++ b/extra/qwtplot3d/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 131790 2011-07-15 09:16:14Z ronald $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=qwtplot3d
+pkgver=0.2.7
+pkgrel=3
+pkgdesc="Qt/OpenGL-based C++ programming library containing 3d-widgets"
+arch=("i686" "x86_64" 'mips64el')
+license=('custom:zlib')
+url="http://qwtplot3d.sourceforge.net/"
+depends=('qt' 'qwt' 'mesa')
+source=("http://downloads.sourceforge.net/sourceforge/qwtplot3d/qwtplot3d-$pkgver.tgz"
+ qwtplot3d-gcc44.patch)
+sha1sums=('4463fafb8420a91825e165da7a296aaabd70abea' '52fa169b651a98550f8a8391ddf52e0eaeb2c215')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ patch -p1 < ../qwtplot3d-gcc44.patch
+
+ # build qwt:
+ qmake qwtplot3d.pro
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+
+ # install qwtplot3d: (by hand, because the Makefile do not provide a "install:")
+ install -d ${pkgdir}/usr/{include/qwtplot3d,lib}
+
+ for n in include/* ; do
+ cp -d $n ${pkgdir}/usr/include/qwtplot3d
+ done
+
+ for n in lib/libqwtplot3d.so* ; do
+ cp -d $n ${pkgdir}/usr/lib
+ done
+
+ # install custom license
+ install -Dm644 ${srcdir}/${pkgname}/COPYING ${pkgdir}/usr/share/licenses/qwtplot3d/LICENSE
+}
+
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..0078dbeaf
--- /dev/null
+++ b/extra/r/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 142507 2011-11-10 20:30:04Z 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.14.0
+pkgrel=1
+pkgdesc="Language and environment for statistical computing and graphics"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'xz')
+makedepends=('openjdk6' 'gcc-fortran')
+backup=('etc/R/Makeconf' 'etc/R/Renviron' 'etc/R/ldpaths' 'etc/R/repositories')
+options=('!makeflags')
+source=("http://cran.r-project.org/src/base/R-2/R-${pkgver}.tar.gz"
+ 'r.desktop'
+ 'r.png')
+install=r.install
+sha1sums=('0f46bf75a7c150350b1142c29a98e7994d2b4bef'
+ '13aa29219bcaa102e575de8c1c8e0833d233e836'
+ '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 \
+ --sysconfdir=/etc/R \
+ --datarootdir=/usr/share \
+ rsharedir=/usr/share/R/ \
+ rincludedir=/usr/include/R/ \
+ rdocdir=/usr/share/doc/R/ \
+ --with-x \
+ --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
+
+ # move the config directory to /etc and create symlinks
+ install -d ${pkgdir}/etc/R
+ cd ${pkgdir}/usr/lib/R/etc
+ for i in *; do
+ mv -f ${i} ${pkgdir}/etc/R
+ ln -s /etc/R/${i} ${i}
+ done
+}
diff --git a/extra/r/r.desktop b/extra/r/r.desktop
new file mode 100644
index 000000000..68b49c447
--- /dev/null
+++ b/extra/r/r.desktop
@@ -0,0 +1,11 @@
+[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
+Type=Application
+Categories=Education;Science;Math;
diff --git a/extra/r/r.install b/extra/r/r.install
new file mode 100644
index 000000000..d3289ab64
--- /dev/null
+++ b/extra/r/r.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
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..d978a1808
--- /dev/null
+++ b/extra/racket/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142774 2011-11-15 00:48:27Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=racket
+pkgver=5.2
+pkgrel=1
+pkgdesc="A programming language environment (formerly known as PLT Scheme) suitable for tasks ranging from scripting to application development"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://racket-lang.org/"
+license=('LGPL')
+depends=('gtk2' 'desktop-file-utils')
+makedepends=('gsfonts')
+options=('!strip')
+install=racket.install
+source=(http://download.racket-lang.org/installers/${pkgver}/racket/${pkgname}-${pkgver}-src-unix.tgz \
+ drracket.desktop)
+sha1sums=('f88007c12d7e5f2773b122d3652c8cd1d15da8c3'
+ 'a20808f6b250225704856f82a544681a962a299d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ ./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/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..3bd747b37
--- /dev/null
+++ b/extra/raptor/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143845 2011-11-30 01:41:45Z eric $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=raptor
+pkgver=2.0.6
+pkgrel=1
+pkgdesc="A C library that parses RDF/XML/N-Triples into RDF triples"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://librdf.org/raptor"
+depends=('curl>=7.22.0' 'libxslt>=1.1.26')
+license=('LGPL')
+options=('!libtool')
+source=("http://librdf.org/dist/source/raptor2-$pkgver.tar.gz")
+md5sums=('1f07af81cbe3cf1bf0d1d250b18d9f93')
+
+build() {
+ cd "${srcdir}"/raptor2-${pkgver}
+
+ ./configure --prefix=/usr \
+ --disable-static \
+ --with-yajl=no
+ make
+}
+
+package() {
+ cd "${srcdir}"/raptor2-${pkgver}
+ make prefix="${pkgdir}"/usr install
+}
diff --git a/extra/raptor1/PKGBUILD b/extra/raptor1/PKGBUILD
new file mode 100644
index 000000000..085809cc9
--- /dev/null
+++ b/extra/raptor1/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 144014 2011-12-01 20:20:30Z andrea $
+# Maintainer:
+# Contributor: 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=4
+pkgdesc="A C library that parses RDF/XML/N-Triples into RDF triples - old V1 api for compatibility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://librdf.org/raptor"
+depends=('curl' 'libxslt')
+license=('LGPL')
+options=('!libtool' '!docs')
+source=("http://librdf.org/dist/source/raptor-$pkgver.tar.gz"
+ 'curl.patch')
+md5sums=('992061488af7a9e2d933df6b694bb876'
+ '8fe28761645d6a6607b25c94f9ada964')
+
+build() {
+ cd "${srcdir}"/raptor-${pkgver}
+ patch -p1 -i "${srcdir}"/curl.patch
+
+ ./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/extra/raptor1/curl.patch b/extra/raptor1/curl.patch
new file mode 100644
index 000000000..590140536
--- /dev/null
+++ b/extra/raptor1/curl.patch
@@ -0,0 +1,11 @@
+diff -up raptor-1.4.21/src/raptor_internal.h.curl raptor-1.4.21/src/raptor_internal.h
+--- raptor-1.4.21/src/raptor_internal.h.curl 2010-01-29 17:54:42.000000000 -0600
++++ raptor-1.4.21/src/raptor_internal.h 2011-07-31 11:02:44.182465296 -0500
+@@ -852,7 +852,6 @@ int raptor_utf8_is_nfc(const unsigned ch
+
+ #ifdef RAPTOR_WWW_LIBCURL
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+ #endif
+
diff --git a/extra/rarian/PKGBUILD b/extra/rarian/PKGBUILD
new file mode 100644
index 000000000..612a21490
--- /dev/null
+++ b/extra/rarian/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137591 2011-09-09 23:51:24Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=rarian
+pkgver=0.8.1
+pkgrel=2
+pkgdesc="Documentation meta-data library, designed as a replacement for Scrollkeeper."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://rarian.freedesktop.org/"
+license=('GPL')
+depends=('gcc-libs')
+makedepends=('libxslt')
+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 ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i ${srcdir}/user-segfault.patch
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${startdir}/pkg install
+}
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..5e58afc6f
--- /dev/null
+++ b/extra/rasqal/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142916 2011-11-18 08:48:56Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Lawrence Lee <valheru@facticius.net>
+
+pkgname=rasqal
+epoch=1
+pkgver=0.9.28
+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' 'mips64el')
+depends=('raptor>=2.0.3' 'mpfr')
+options=('!libtool')
+source=(http://download.librdf.org/source/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a3662b8d9efef9d8ef0a3c182450fba2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-static \
+ --enable-release
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make -k check || /bin/true # fails some checks - should be reported upstream
+}
+
+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..2d42ee67e
--- /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' 'mips64el')
+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..86da8cea2
--- /dev/null
+++ b/extra/razor/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 124559 2011-05-22 23:44:08Z andrea $
+# Maintainer:
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=razor
+pkgver=2.84
+pkgrel=5
+pkgdesc="A distributed, collaborative, spam detection and filtering network"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://razor.sourceforge.net"
+license=('PerlArtistic')
+depends=('perl-net-dns' 'perl-digest-sha1' 'perl-uri' 'perl-digest-nilsimsa' 'perl>=5.14.0')
+source=(http://downloads.sourceforge.net/${pkgname}/${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..63d22a943
--- /dev/null
+++ b/extra/rcs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 137009 2011-09-05 07:46:17Z bisson $
+# Contributor: dorphell <dorphell@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=rcs
+pkgver=5.8
+pkgrel=1
+pkgdesc='Revision Control System: manages multiple revisions of files'
+url='http://www.gnu.org/software/rcs/'
+license=('GPL3')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://ftpmirror.gnu.org/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('6ba0c3ea2d170990214a26b323feaadb89bb4206')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/extra/rdesktop/PKGBUILD b/extra/rdesktop/PKGBUILD
new file mode 100644
index 000000000..9356ec06c
--- /dev/null
+++ b/extra/rdesktop/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 129462 2011-06-28 03:34:32Z heftig $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+
+pkgname=rdesktop
+pkgver=1.7.0
+pkgrel=2
+depends=('libx11' 'openssl' 'libao' 'libsamplerate')
+pkgdesc="An open source client for Windows Remote Desktop Services"
+url="http://www.rdesktop.org/"
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'rdesktop-send_physical_buttons.diff' 'rdesktop-libao.patch')
+md5sums=('77fa93b21aa38837a85e81c00e757228'
+ '880d3aeac67b901e6bf44d1323374768'
+ 'bd2c9bc68bddcc2652c668753d787df7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # FS#15113
+ patch -i ${srcdir}/rdesktop-send_physical_buttons.diff
+
+ # Fix libao segfault, from Fedora
+ patch -i ${srcdir}/rdesktop-libao.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/rdesktop/rdesktop-libao.patch b/extra/rdesktop/rdesktop-libao.patch
new file mode 100644
index 000000000..1f3dea9ed
--- /dev/null
+++ b/extra/rdesktop/rdesktop-libao.patch
@@ -0,0 +1,20 @@
+diff -up rdesktop-1.6.0/rdpsnd_libao.c.ao rdesktop-1.6.0/rdpsnd_libao.c
+--- rdesktop-1.6.0/rdpsnd_libao.c.ao 2007-10-30 14:57:30.000000000 +0100
++++ rdesktop-1.6.0/rdpsnd_libao.c 2010-12-02 21:22:39.000000000 +0100
+@@ -76,7 +76,7 @@ libao_open(void)
+ format.channels = 2;
+ format.rate = 44100;
+ format.byte_format = AO_FMT_NATIVE;
+-
++ format.matrix = NULL;
+
+ o_device = ao_open_live(default_driver, &format, NULL);
+ if (o_device == NULL)
+@@ -115,6 +115,7 @@ libao_set_format(RD_WAVEFORMATEX * pwfx)
+ format.channels = pwfx->nChannels;
+ format.rate = 44100;
+ format.byte_format = AO_FMT_NATIVE;
++ format.matrix = NULL;
+
+ if (o_device != NULL)
+ ao_close(o_device);
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/re-alpine/PKGBUILD b/extra/re-alpine/PKGBUILD
new file mode 100644
index 000000000..3b3d59ab3
--- /dev/null
+++ b/extra/re-alpine/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 125747 2011-05-29 05:24:41Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Smith Dhumbumroong <zodmaner@gmail.com>
+
+pkgname=re-alpine
+pkgver=2.02
+pkgrel=3
+pkgdesc="The continuation of the Alpine email client from University of Washington"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sourceforge.net/projects/re-alpine/"
+license=('APACHE')
+depends=('libldap' 'krb5')
+optdepends=('aspell: spell-checking support'
+ 'hunspell: spell-checking support')
+provides=('pine' 'alpine')
+conflicts=('pine' 'alpine')
+replaces=('pine' 'alpine')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/project/re-alpine/${pkgname}-${pkgver}.tar.bz2
+ maildir.patch)
+md5sums=('5e75826b15f05674856be8618bdefdfb'
+ '8d7a0e8d940e84e978f50266405c7361')
+sha1sums=('9c2f13dbc7ca75e7a09f81df607db84694b10fa6'
+ 'c09a8e42f9dba3e63a3755a9c418af95da721d8d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../maildir.patch
+ LIBS+=-lpam ./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/re-alpine/maildir.patch b/extra/re-alpine/maildir.patch
new file mode 100644
index 000000000..cff18cb3f
--- /dev/null
+++ b/extra/re-alpine/maildir.patch
@@ -0,0 +1,3712 @@
+diff -rc alpine-2.00/alpine/alpine.c alpine-2.00.maildir/alpine/alpine.c
+*** alpine-2.00/alpine/alpine.c 2008-06-03 17:31:05.000000000 -0500
+--- alpine-2.00.maildir/alpine/alpine.c 2011-01-15 19:11:06.000000000 -0600
+***************
+*** 553,558 ****
+--- 553,563 ----
+ if(F_ON(F_MAILDROPS_PRESERVE_STATE, ps_global))
+ mail_parameters(NULL, SET_SNARFPRESERVE, (void *) TRUE);
+
++ #ifndef _WINDOWS
++ mail_parameters(NULL,SET_COURIERSTYLE,
++ (void *)(F_ON(F_COURIER_FOLDER_LIST, ps_global) ? 1 : 0));
++ #endif
++
+ rvl = 0L;
+ if(pine_state->VAR_NNTPRANGE){
+ if(!SVAR_NNTPRANGE(pine_state, rvl, tmp_20k_buf, SIZEOF_20KBUF))
+diff -rc alpine-2.00/alpine/confscroll.c alpine-2.00.maildir/alpine/confscroll.c
+*** alpine-2.00/alpine/confscroll.c 2008-08-21 17:14:45.000000000 -0500
+--- alpine-2.00.maildir/alpine/confscroll.c 2011-01-15 19:11:06.000000000 -0600
+***************
+*** 5489,5494 ****
+--- 5489,5500 ----
+ (void *)var->current_val.p);
+ }
+ #endif
++ #ifndef _WINDOWS
++ else if(var == &ps->vars[V_MAILDIR_LOCATION]){
++ if(var->current_val.p && var->current_val.p[0])
++ mail_parameters(NULL, SET_MDINBOXPATH, (void *)var->current_val.p);
++ }
++ #endif
+ else if(revert && standard_radio_var(ps, var)){
+
+ cur_rule_value(var, TRUE, FALSE);
+diff -rc alpine-2.00/imap/src/c-client/mail.c alpine-2.00.maildir/imap/src/c-client/mail.c
+*** alpine-2.00/imap/src/c-client/mail.c 2008-06-04 13:39:54.000000000 -0500
+--- alpine-2.00.maildir/imap/src/c-client/mail.c 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 991,997 ****
+ MAILSTREAM *ts;
+ char *s,*t,tmp[MAILTMPLEN];
+ size_t i;
+! DRIVER *d;
+ /* never allow names with newlines */
+ if (s = strpbrk (mailbox,"\015\012")) {
+ MM_LOG ("Can't create mailbox with such a name",ERROR);
+--- 991,997 ----
+ MAILSTREAM *ts;
+ char *s,*t,tmp[MAILTMPLEN];
+ size_t i;
+! DRIVER *d, *md;
+ /* never allow names with newlines */
+ if (s = strpbrk (mailbox,"\015\012")) {
+ MM_LOG ("Can't create mailbox with such a name",ERROR);
+***************
+*** 1015,1020 ****
+--- 1015,1022 ----
+ return NIL;
+ }
+
++ /* Hack, we should do this better, but it works */
++ for (md = maildrivers; md && strcmp (md->name, "md"); md = md->next);
+ /* see if special driver hack */
+ if ((mailbox[0] == '#') && ((mailbox[1] == 'd') || (mailbox[1] == 'D')) &&
+ ((mailbox[2] == 'r') || (mailbox[2] == 'R')) &&
+***************
+*** 1045,1050 ****
+--- 1047,1059 ----
+ (((*mailbox == '{') || (*mailbox == '#')) &&
+ (stream = mail_open (NIL,mailbox,OP_PROTOTYPE | OP_SILENT))))
+ d = stream->dtb;
++ else if(mailbox[0] == '#'
++ && (mailbox[1] == 'm' || mailbox[1] == 'M')
++ && (mailbox[2] == 'd' || mailbox[2] == 'D'
++ || mailbox[2] == 'c' || mailbox[2] == 'C')
++ && mailbox[3] == '/'
++ && mailbox[4] != '\0')
++ return (*md->create)(stream, mailbox);
+ else if ((*mailbox != '{') && (ts = default_proto (NIL))) d = ts->dtb;
+ else { /* failed utterly */
+ sprintf (tmp,"Can't create mailbox %.80s: indeterminate format",mailbox);
+diff -rc alpine-2.00/imap/src/c-client/mail.h alpine-2.00.maildir/imap/src/c-client/mail.h
+*** alpine-2.00/imap/src/c-client/mail.h 2008-08-08 12:34:22.000000000 -0500
+--- alpine-2.00.maildir/imap/src/c-client/mail.h 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 353,358 ****
+--- 353,362 ----
+ #define SET_SCANCONTENTS (long) 573
+ #define GET_MHALLOWINBOX (long) 574
+ #define SET_MHALLOWINBOX (long) 575
++ #define GET_COURIERSTYLE (long) 576
++ #define SET_COURIERSTYLE (long) 577
++ #define SET_MDINBOXPATH (long) 578
++ #define GET_MDINBOXPATH (long) 579
+
+ /* Driver flags */
+
+diff -rc alpine-2.00/imap/src/osdep/unix/dummy.c alpine-2.00.maildir/imap/src/osdep/unix/dummy.c
+*** alpine-2.00/imap/src/osdep/unix/dummy.c 2008-06-04 13:18:34.000000000 -0500
+--- alpine-2.00.maildir/imap/src/osdep/unix/dummy.c 2011-01-15 20:01:59.000000000 -0600
+***************
+*** 106,118 ****
+ * Accepts: mailbox name
+ * Returns: our driver if name is valid, NIL otherwise
+ */
+!
+ DRIVER *dummy_valid (char *name)
+ {
+! char *s,tmp[MAILTMPLEN];
+ struct stat sbuf;
+ /* must be valid local mailbox */
+! if (name && *name && (*name != '{') && (s = mailboxfile (tmp,name))) {
+ /* indeterminate clearbox INBOX */
+ if (!*s) return &dummydriver;
+ else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
+--- 106,124 ----
+ * Accepts: mailbox name
+ * Returns: our driver if name is valid, NIL otherwise
+ */
+! char * maildir_remove_root(char *);
+ DRIVER *dummy_valid (char *name)
+ {
+! char *s,tmp[MAILTMPLEN], *rname;
+ struct stat sbuf;
++
++ if(strlen(name) > MAILTMPLEN)
++ name[MAILTMPLEN] = '\0';
++
++ strcpy(tmp, name);
++ rname = maildir_remove_root(tmp);
+ /* must be valid local mailbox */
+! if (rname && *rname && (*rname != '{') && (s = mailboxfile (tmp,rname))) {
+ /* indeterminate clearbox INBOX */
+ if (!*s) return &dummydriver;
+ else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
+***************
+*** 121,128 ****
+ return &dummydriver;
+ }
+ /* blackbox INBOX does not exist yet */
+! else if (!compare_cstring (name,"INBOX")) return &dummydriver;
+ }
+ return NIL;
+ }
+
+--- 127,135 ----
+ return &dummydriver;
+ }
+ /* blackbox INBOX does not exist yet */
+! else if (!compare_cstring (rname,"INBOX")) return &dummydriver;
+ }
++ if(rname) fs_give((void **)&rname);
+ return NIL;
+ }
+
+***************
+*** 454,459 ****
+--- 461,468 ----
+ {
+ char *s,tmp[MAILTMPLEN];
+ long ret = NIL;
++ if(!strncmp(mailbox,"#md/",4) || !strncmp(mailbox,"#mc/", 4))
++ return maildir_create(stream, mailbox);
+ /* validate name */
+ if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) {
+ sprintf (tmp,"Can't create %.80s: invalid name",mailbox);
+***************
+*** 519,524 ****
+--- 528,541 ----
+ {
+ struct stat sbuf;
+ char *s,tmp[MAILTMPLEN];
++ if (!strncmp(mailbox,"#md/",4) || !strncmp(mailbox,"#mc/", 4)
++ || is_valid_maildir(&mailbox)){
++ char tmp[MAILTMPLEN] = {'\0'};
++ strcpy(tmp, mailbox);
++ if(tmp[strlen(tmp) - 1] != '/')
++ tmp[strlen(tmp)] = '/';
++ return maildir_delete(stream, tmp);
++ }
+ if (!(s = dummy_file (tmp,mailbox))) {
+ sprintf (tmp,"Can't delete - invalid name: %.80s",s);
+ MM_LOG (tmp,ERROR);
+***************
+*** 544,555 ****
+ long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
+ {
+ struct stat sbuf;
+! char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN];
+ /* no trailing / allowed */
+! if (!dummy_file (oldname,old) || !(s = dummy_file (mbx,newname)) ||
+ stat (oldname,&sbuf) || ((s = strrchr (s,'/')) && !s[1] &&
+ ((sbuf.st_mode & S_IFMT) != S_IFDIR))) {
+! sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",old,newname);
+ MM_LOG (mbx,ERROR);
+ return NIL;
+ }
+--- 561,583 ----
+ long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
+ {
+ struct stat sbuf;
+! char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN], *rold, *rnewname;
+!
+! if(strlen(old) > MAILTMPLEN)
+! old[MAILTMPLEN] = '\0';
+!
+! if(strlen(newname) > MAILTMPLEN)
+! newname[MAILTMPLEN] = '\0';
+!
+! strcpy(tmp, old);
+! rold = maildir_remove_root(tmp);
+! strcpy(tmp, newname);
+! rnewname = maildir_remove_root(tmp);
+ /* no trailing / allowed */
+! if (!dummy_file (oldname,rold) || !(s = dummy_file (mbx,rnewname)) ||
+ stat (oldname,&sbuf) || ((s = strrchr (s,'/')) && !s[1] &&
+ ((sbuf.st_mode & S_IFMT) != S_IFDIR))) {
+! sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",rold,rnewname);
+ MM_LOG (mbx,ERROR);
+ return NIL;
+ }
+***************
+*** 565,578 ****
+ }
+ }
+ /* rename of non-ex INBOX creates dest */
+! if (!compare_cstring (old,"INBOX") && stat (oldname,&sbuf))
+ return dummy_create (NIL,mbx);
+ if (rename (oldname,mbx)) {
+! sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",old,newname,
+ strerror (errno));
+ MM_LOG (tmp,ERROR);
+ return NIL;
+ }
+ return T; /* return success */
+ }
+
+--- 593,608 ----
+ }
+ }
+ /* rename of non-ex INBOX creates dest */
+! if (!compare_cstring (rold,"INBOX") && stat (oldname,&sbuf))
+ return dummy_create (NIL,mbx);
+ if (rename (oldname,mbx)) {
+! sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",rold,rnewname,
+ strerror (errno));
+ MM_LOG (tmp,ERROR);
+ return NIL;
+ }
++ if(rold) fs_give((void **)&rold);
++ if(rnewname) fs_give((void **)&rnewname);
+ return T; /* return success */
+ }
+
+diff -rc alpine-2.00/imap/src/osdep/unix/maildir.c alpine-2.00.maildir/imap/src/osdep/unix/maildir.c
+*** alpine-2.00/imap/src/osdep/unix/maildir.c 2011-01-24 19:38:50.000000000 -0600
+--- alpine-2.00.maildir/imap/src/osdep/unix/maildir.c 2011-01-15 19:38:50.000000000 -0600
+***************
+*** 0 ****
+--- 1,2584 ----
++ /*
++ * Maildir driver for Alpine 2.00
++ *
++ * Written by Eduardo Chappa <chappa@washington.edu>
++ * Last Update: November 6, 2010.
++ *
++ */
++
++ #include <stdio.h>
++ #include <ctype.h>
++ #include <errno.h>
++ extern int errno; /* just in case */
++ #include "mail.h"
++ #include <pwd.h>
++ #include <sys/stat.h>
++ #include <sys/time.h>
++ #include "osdep.h"
++ #include "rfc822.h"
++ #include "fdstring.h"
++ #include "misc.h"
++ #include "dummy.h"
++ #include "maildir.h"
++
++ /* Driver dispatch used by MAIL */
++ DRIVER maildirdriver = {
++ "md", /* driver name, yes it's md, not maildir */
++ /* driver flags */
++ DR_MAIL|DR_LOCAL|DR_NAMESPACE|DR_DIRFMT,
++ (DRIVER *) NIL, /* next driver */
++ maildir_valid, /* mailbox is valid for us */
++ maildir_parameters, /* manipulate parameters */
++ NIL, /* scan mailboxes */
++ maildir_list, /* find mailboxes */
++ maildir_lsub, /* find subscribed mailboxes */
++ maildir_sub, /* subscribe to mailbox */
++ maildir_unsub, /* unsubscribe from mailbox */
++ maildir_create, /* create mailbox */
++ maildir_delete, /* delete mailbox */
++ maildir_rename, /* rename mailbox */
++ mail_status_default, /* status of mailbox */
++ maildir_open, /* open mailbox */
++ maildir_close, /* close mailbox */
++ maildir_fast, /* fetch message "fast" attributes */
++ NIL, /* fetch message flags */
++ NIL, /* fetch overview */
++ NIL, /* fetch message structure */
++ maildir_header, /* fetch message header */
++ maildir_text, /* fetch message body */
++ NIL, /* fetch partial message text */
++ NIL, /* unique identifier */
++ NIL, /* message number */
++ NIL, /* modify flags */
++ maildir_flagmsg, /* per-message modify flags */
++ NIL, /* search for message based on criteria */
++ NIL, /* sort messages */
++ NIL, /* thread messages */
++ maildir_ping, /* ping mailbox to see if still alive */
++ maildir_check, /* check for new messages */
++ maildir_expunge, /* expunge deleted messages */
++ maildir_copy, /* copy messages to another mailbox */
++ maildir_append, /* append string message to mailbox */
++ NIL /* garbage collect stream */
++ };
++
++
++ DRIVER courierdriver = {
++ "mc", /* Why a separate driver? So that
++ createproto will work */
++ /* driver flags */
++ DR_MAIL|DR_LOCAL|DR_NAMESPACE|DR_DIRFMT,
++ (DRIVER *) NIL, /* next driver */
++ maildir_valid, /* mailbox is valid for us */
++ maildir_parameters, /* manipulate parameters */
++ NIL, /* scan mailboxes */
++ courier_list, /* find mailboxes */
++ maildir_lsub, /* find subscribed mailboxes */
++ maildir_sub, /* subscribe to mailbox */
++ maildir_unsub, /* unsubscribe from mailbox */
++ maildir_create, /* create mailbox */
++ maildir_delete, /* delete mailbox */
++ maildir_rename, /* rename mailbox */
++ mail_status_default, /* status of mailbox */
++ maildir_open, /* open mailbox */
++ maildir_close, /* close mailbox */
++ maildir_fast, /* fetch message "fast" attributes */
++ NIL, /* fetch message flags */
++ NIL, /* fetch overview */
++ NIL, /* fetch message structure */
++ maildir_header, /* fetch message header */
++ maildir_text, /* fetch message body */
++ NIL, /* fetch partial message text */
++ NIL, /* unique identifier */
++ NIL, /* message number */
++ NIL, /* modify flags */
++ maildir_flagmsg, /* per-message modify flags */
++ NIL, /* search for message based on criteria */
++ NIL, /* sort messages */
++ NIL, /* thread messages */
++ maildir_ping, /* ping mailbox to see if still alive */
++ maildir_check, /* check for new messages */
++ maildir_expunge, /* expunge deleted messages */
++ maildir_copy, /* copy messages to another mailbox */
++ maildir_append, /* append string message to mailbox */
++ NIL /* garbage collect stream */
++ };
++
++ MAILSTREAM maildirproto = {&maildirdriver}; /* prototype stream */
++ MAILSTREAM courierproto = {&courierdriver}; /* prototype stream */
++
++ long maildir_dirfmttest (char *name)
++ {
++ int i;
++ for (i = 0; mdstruct[i] && strcmp(name, mdstruct[i]); i++);
++ return (i < EndDir) || !strcmp(name, MDDIR)
++ || !strncmp(name, MDUIDLAST, strlen(MDUIDLAST))
++ || !strncmp(name, MDUIDTEMP, strlen(MDUIDTEMP)) ? LONGT : NIL;
++ }
++
++ void
++ md_domain_name(void)
++ {
++ int i;
++
++ strcpy(mdlocaldomain,mylocalhost ());
++ for (i = 0; mdlocaldomain[i] ; i++)
++ if(mdlocaldomain[i] == '/')
++ mdlocaldomain[i] = '\057';
++ else if (mdlocaldomain[i] == ':')
++ mdlocaldomain[i] = '\072';
++ }
++
++ char *
++ myrootdir(char *name)
++ {
++ return myhomedir();
++ }
++
++ char *
++ mdirpath(void)
++ {
++ char *path = maildir_parameters(GET_MDINBOXPATH,NIL);
++ return path ? (path[0] ? path : ".") : "Maildir";
++ }
++
++ /* remove the "#md/" or "#mc/" part from a folder name */
++ char *
++ maildir_remove_root (char *name)
++ {
++ int courier = IS_COURIER(name), offset;
++ char realname[MAILTMPLEN];
++
++ offset = maildir_valid_name(name) ? (name[3] == '/' ? 4 : 3) : 0;
++ if(courier)
++ courier_realname(name+offset, realname);
++ else
++ strcpy(realname, name+offset);
++ return cpystr(realname);
++ }
++
++
++ /* Check validity of the name, we accept:
++ * a) #md/directory/folder
++ * b) #md/inbox
++ * A few considerations: We can only accept as valid
++ * a) names that start with #md/ and the directory exists or
++ * b) names that do not start with #md/ but are maildir directories (have
++ * the /cur, /tmp and /new structure)
++ */
++ int maildir_valid_name (char *name)
++ {
++ char tmpname[MAILTMPLEN] = {'\0'};
++
++ if (mdfpath)
++ fs_give((void **)&mdfpath);
++ if (name && (name[0] != '#'))
++ sprintf(tmpname,"%s%s",MDPREFIX(CCLIENT), name);
++ mdfpath = cpystr(tmpname[0] ? tmpname : name);
++
++ return IS_CCLIENT(name) || IS_COURIER(name);
++ }
++
++ /* Check if the directory whose path is given by name is a valid maildir
++ * directory (contains /cur, /tmp and /new)
++ */
++ int maildir_valid_dir (char *name)
++ {
++ int len;
++ DirNamesType i;
++ struct stat sbuf;
++ char tmp[MAILTMPLEN];
++
++ if(name[strlen(name) - 1] == '/')
++ name[strlen(name) - 1] = '\0';
++ len = strlen(name);
++ for (i = Cur; i != EndDir; i++){
++ MDFLD(tmp, name, i);
++ if (stat(tmp, &sbuf) < 0 || !S_ISDIR(sbuf.st_mode))
++ break;
++ }
++ name[len] = '\0';
++ return (i == EndDir) ? T : NIL;
++ }
++
++ void courier_realname(char *name, char *realname)
++ {
++ int i,j;
++
++ if(!name)
++ return;
++
++ for (i = 0, j = 0; i < MAILTMPLEN && j < strlen(name); j++, i++){
++ realname[i] = name[j];
++ if(name[j] == '/' && name[j+1] != '.' && name[j+1] != '%'
++ && name[j+1] != '*')
++ realname[++i] = '.';
++ }
++ if(realname[i-1] == '.')
++ i--;
++ realname[i] = '\0';
++ }
++
++
++ /* given a maildir folder, return its path. Memory freed by caller. Directory
++ * does not contain the trailing slash "/". On error NULL is returned.
++ */
++ int maildir_file_path (char *name, char *tmp)
++ {
++ char *maildirpath = mdirpath(), *rname;
++ int courier = IS_COURIER(name);
++
++ /* There are several ways in which the path can come, so we will handle
++ them here. First we deal with #mc/ or #md/ prefix by removing the
++ prefix, if any */
++
++ if(strlen(name) >= MAILTMPLEN)
++ name[MAILTMPLEN] = '\0';
++ strcpy(tmp, name);
++ rname = maildir_remove_root(tmp);
++ tmp[0] = '\0'; /* just in case something fails */
++
++ if (strlen(myrootdir(rname)) +
++ max(strlen(rname), strlen(maildirpath)) > MAILTMPLEN){
++ errno = ENAMETOOLONG;
++ sprintf(tmp,"Error opening \"%s\": %s", rname, strerror (errno));
++ mm_log(tmp,ERROR);
++ return NIL;
++ }
++
++ /* There are two ways in which the name can come here, either as a
++ full path or not. If it is not a full path it can come in two ways,
++ either as a file system path (Maildir/.Drafts) or as a maildir path
++ (INBOX.Drafts)
++ */
++
++ if(*rname == '/') /* full path */
++ strcpy(tmp, rname); /* do nothing */
++ else{
++ sprintf (tmp,"%s/%s%s%s", myrootdir (rname),
++ strncmp (ucase (strcpy (tmp, rname)), "INBOX", 5)
++ ? rname : maildirpath,
++ strncmp (ucase (strcpy (tmp, rname)), "INBOX", 5)
++ ? "" : (courier ? "/" : ""),
++ strncmp (ucase (strcpy (tmp, rname)), "INBOX", 5)
++ ? "" : (*(rname+5) == MDSEPARATOR(courier) ? rname+5 : ""));
++ }
++ if(rname) fs_give((void **)&rname);
++ return tmp[0] ? T : NIL;
++ }
++
++ /* This function is given a full path for a mailbox and returns
++ * if it is a valid maildir transformed to canonical notation
++ */
++ int
++ is_valid_maildir (char **name)
++ {
++ if (!strncmp(*name, myrootdir (*name), strlen(myrootdir(*name)))){
++ (*name) += strlen(myrootdir(*name));
++ if (**name == '/') (*name)++;
++ }
++ return maildir_valid(*name) ? T : NIL;
++ }
++
++ /* Check validity of mailbox. This routine does not send errors to log, other
++ * routines calling this one may do so, though
++ */
++
++ DRIVER *maildir_valid (char *name)
++ {
++ char tmpname[MAILTMPLEN];
++
++ maildir_file_path(name, tmpname);
++
++ return maildir_valid_dir(tmpname)
++ ? (IS_COURIER(name) ? &courierdriver : &maildirdriver) : NIL;
++ }
++
++ void maildir_fast (MAILSTREAM *stream,char *sequence,long flags)
++ {
++ unsigned long i;
++ MESSAGECACHE *elt;
++ /* get sequence */
++ if (stream && LOCAL && ((flags & FT_UID) ?
++ mail_uid_sequence (stream,sequence) :
++ mail_sequence (stream,sequence)))
++ for (i = 1L; i <= stream->nmsgs; i++) {
++ if ((elt = mail_elt (stream,i))->sequence && (elt->valid = T) &&
++ !(elt->day && elt->rfc822_size)) {
++ ENVELOPE **env = NIL;
++ ENVELOPE *e = NIL;
++ if (!stream->scache) env = &elt->private.msg.env;
++ else if (stream->msgno == i) env = &stream->env;
++ else env = &e;
++ if (!*env || !elt->rfc822_size) {
++ STRING bs;
++ unsigned long hs;
++ char *ht = (*stream->dtb->header) (stream,i,&hs,NIL);
++
++ if (!*env) rfc822_parse_msg (env,NIL,ht,hs,NIL,BADHOST,
++ stream->dtb->flags);
++ if (!elt->rfc822_size) {
++ (*stream->dtb->text) (stream,i,&bs,FT_PEEK);
++ elt->rfc822_size = hs + SIZE (&bs) - GETPOS (&bs);
++ }
++ }
++
++ if (!elt->day && *env && (*env)->date)
++ mail_parse_date (elt,(*env)->date);
++
++ if (!elt->day) elt->day = elt->month = 1;
++ mail_free_envelope (&e);
++ }
++ }
++ }
++
++ int
++ maildir_eliminate_duplicate (char *name, struct direct ***flist, unsigned long *nfiles)
++ {
++ int i, j, k, error = 0, scanr;
++ char new[MAILTMPLEN], old[MAILTMPLEN], tmp[MAILTMPLEN], *str;
++ struct direct **names = NIL;
++
++ if((scanr = maildir_doscandir(name, &names, CCLIENT)) < 0)
++ return -1;
++
++ if(nfiles) *nfiles = scanr;
++ for(i = 0, j = 1, k = 0; j < scanr; i++, j++){
++ if(k)
++ names[i] = names[i+k];
++ if(same_maildir_file(names[i]->d_name, names[j]->d_name)){
++ int d, f, r, s;
++ maildir_getflag(names[i]->d_name, &d, &f, &r, &s, NIL);
++ sprintf(old,"%s/%s", name, names[i]->d_name);
++ sprintf(new,"%s/.%s", name, names[i]->d_name);
++ if(rename(old, new) < 0 && errno != EEXIST)
++ error++;
++ if(!error){
++ for(; j < scanr
++ && same_maildir_file(names[i]->d_name, names[j]->d_name)
++ ; j++, k++){
++ maildir_getflag(names[j]->d_name, (d ? NIL : &d),
++ (f ? NIL : &f), (r ? NIL : &r), (s ? NIL : &s), NIL);
++ sprintf(tmp,"%s/%s", name, names[j]->d_name);
++ if(unlink(tmp) < 0){ /* Hmmm... a problem, let's see */
++ struct stat sbuf;
++ if (stat(tmp, &sbuf) == 0 && (sbuf.st_mode & S_IFMT) == S_IFREG)
++ error++;
++ }
++ }
++ if((str = strrchr(names[i]->d_name,FLAGSEP)) != NULL) *str = '\0';
++ sprintf (old,"%s/%s%s%s%s%s%s", name, names[i]->d_name, MDSEP(2),
++ MDFLAG(Draft, d), MDFLAG(Flagged, f), MDFLAG(Replied, r),
++ MDFLAG(Seen, s));
++ if(rename(new, old) < 0)
++ error++;
++ }
++ }
++
++ }
++ if(k > 0)
++ fs_give((void **)&names);
++ else
++ *flist = names;
++ return error ? -1 : k;
++ }
++
++ int
++ maildir_doscandir(char *name, struct direct ***flist, int flag)
++ {
++ return scandir(name, flist,
++ flag == CCLIENT ? maildir_select : courier_dir_select,
++ flag == CCLIENT ? maildir_namesort : courier_dir_sort);
++ }
++
++ /*
++ * return all files in a given directory. This is a separate call
++ * so that if there are warnings during compilation this only appears once.
++ */
++ unsigned long
++ maildir_scandir (char *name, struct direct ***flist,
++ unsigned long *nfiles, int *scand, int flag)
++ {
++ struct stat sbuf;
++ int rv = -2; /* impossible value */
++
++ if (scand)
++ *scand = -1; /* assume error for safety */
++ *nfiles = 0;
++ if((stat(name,&sbuf) < 0)
++ || (flag == CCLIENT
++ && ((rv = maildir_eliminate_duplicate(name, flist, nfiles)) < 0)))
++ return 0L;
++
++ if (scand && (rv > 0 || rv == -2))
++ *nfiles = maildir_doscandir(name, flist, flag);
++
++ if(scand) *scand = *nfiles;
++
++ return (unsigned long) sbuf.st_ctime;
++ }
++
++ /* Does a message with given name exists (or was it removed)?
++ * Returns: 1 - yes, such message exist,
++ * 0 - No, that message does not exist anymore
++ *
++ * Parameters: stream, name of mailbox, new name if his message does not
++ * exist.
++ */
++
++ int maildir_message_exists(MAILSTREAM *stream, char *name, char *newfile)
++ {
++ char tmp[MAILTMPLEN];
++ int gotit = NIL;
++ DIR *dir;
++ struct direct *d;
++ struct stat sbuf;
++
++ /* First check directly if it exists, if not there, look for it */
++ sprintf(tmp,"%s/%s", LOCAL->curdir, name);
++ if ((stat(tmp, &sbuf) == 0) && ((sbuf.st_mode & S_IFMT) == S_IFREG))
++ return T;
++
++ if (!(dir = opendir (LOCAL->curdir)))
++ return NIL;
++
++ while ((d = readdir(dir)) && gotit == NIL){
++ if (d->d_name[0] == '.')
++ continue;
++ if (same_maildir_file(d->d_name, name)){
++ gotit = T;
++ strcpy(newfile, d->d_name);
++ }
++ }
++ closedir(dir);
++ return gotit;
++ }
++
++ /* Maildir open */
++
++ MAILSTREAM *maildir_open (MAILSTREAM *stream)
++ {
++ char tmp[MAILTMPLEN];
++ struct stat sbuf;
++
++ if (!stream) return &maildirproto;
++ if (stream->local) fatal ("maildir recycle stream");
++ md_domain_name(); /* get domain name for maildir files in mdlocaldomain */
++ if(mypid == (pid_t) 0)
++ mypid = getpid();
++ if (!stream->rdonly){
++ stream->perm_seen = stream->perm_deleted = stream->perm_flagged =
++ stream->perm_answered = stream->perm_draft = T;
++ }
++ stream->local = (MAILDIRLOCAL *) fs_get (sizeof (MAILDIRLOCAL));
++ memset(LOCAL, 0, sizeof(MAILDIRLOCAL));
++ LOCAL->fd = -1;
++
++ LOCAL->courier = IS_COURIER(stream->mailbox);
++ strcpy(tmp, stream->mailbox);
++ if (maildir_file_path (stream->mailbox, tmp))
++ LOCAL->dir = cpystr (tmp);
++ LOCAL->candouid = maildir_can_assign_uid(stream);
++ maildir_read_uid(stream, &stream->uid_last, &stream->uid_validity);
++ if (LOCAL->dir){
++ MDFLD(tmp, LOCAL->dir, Cur);
++ LOCAL->curdir = cpystr (tmp);
++ if (stat (LOCAL->curdir,&sbuf) < 0) {
++ sprintf (tmp,"Can't open folder %s: %s",
++ stream->mailbox,strerror (errno));
++ mm_log (tmp,ERROR);
++ maildir_close(stream, 0);
++ return NIL;
++ }
++ }
++
++ if(maildir_file_path (stream->mailbox, tmp)){
++ fs_give ((void **) &stream->mailbox);
++ stream->mailbox = cpystr(tmp);
++ }
++
++ LOCAL->buf = (char *) fs_get ((LOCAL->buflen = SENDBUFLEN) + 1);
++ stream->sequence++;
++ stream->nmsgs = stream->recent = 0L;
++
++ maildir_parse_folder(stream, 1);
++
++ return stream;
++ }
++
++ /* Maildir initial parsing of the folder */
++ void
++ maildir_parse_folder (MAILSTREAM *stream, int full)
++ {
++ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN];
++ struct direct **namescur = NIL, **namesnew = NIL;
++ unsigned long i, nfilescur = 0L, nfilesnew = 0L, oldpos, newpos, total;
++ int scan_err, rescan, loop = 0;
++
++ if (!stream) /* what??? */
++ return;
++
++ MM_CRITICAL(stream);
++
++ MDFLD(tmp, LOCAL->dir, New);
++ maildir_scandir (tmp, &namesnew, &nfilesnew, &scan_err, CCLIENT);
++ if (scan_err < 0)
++ maildir_abort(stream);
++
++ /* Scan old messages first, escoba! */
++ if(stream->rdonly ||
++ (LOCAL && ((maildir_initial_check(stream, Cur) == 0)
++ || nfilesnew > 0L))){
++ MDFLD(tmp, LOCAL->dir, Cur);
++ LOCAL->scantime = maildir_scandir (tmp, &namescur, &nfilescur,
++ &scan_err, CCLIENT);
++ if (scan_err < 0){
++ if(namesnew){
++ for(i = 0L; i < nfilesnew; i++)
++ fs_give((void **)&namesnew[i]);
++ fs_give((void **) &namesnew);
++ }
++ maildir_abort(stream);
++ }
++ }
++ if(LOCAL && (maildir_initial_check(stream, New) == 0)
++ && (nfilescur > 0L)){
++ MDFLD(tmp, LOCAL->dir, New);
++ while(LOCAL && loop < 10){
++ if(nfilesnew == 0L)
++ maildir_scandir (tmp, &namesnew, &nfilesnew, &scan_err, CCLIENT);
++ if (scan_err < 0){
++ if(namesnew){
++ for(i = 0L; i < nfilesnew; i++)
++ fs_give((void **)&namesnew[i]);
++ fs_give((void **) &namesnew);
++ }
++ maildir_abort(stream);
++ break;
++ }
++ for(i = 0L, rescan = 0, newpos = oldpos = 0L;
++ newpos < nfilescur && i < nfilesnew; i++){
++ if(maildir_message_in_list(namesnew[i]->d_name, namescur, oldpos,
++ nfilescur - 1L, &newpos)){
++ oldpos = newpos;
++ sprintf(tmp2,"%s/%s",tmp,namesnew[i]->d_name);
++ if(unlink(tmp2) < 0)
++ scan_err = -1;
++ rescan++;
++ }
++ else
++ newpos = oldpos;
++ }
++ if(scan_err < 0)
++ maildir_abort(stream);
++ if(rescan == 0)
++ break;
++ else{ /* restart */
++ if(namesnew){
++ for(i = 0L; i < nfilesnew; i++)
++ fs_give((void **)&namesnew[i]);
++ fs_give((void **) &namesnew);
++ }
++ nfilesnew = 0L;
++ loop++;
++ }
++ }
++ }
++ if(loop == 10)
++ maildir_abort(stream);
++ if(LOCAL){
++ if(stream->rdonly)
++ stream->recent = 0L;
++ total = namescur || stream->rdonly
++ ? maildir_parse_dir(stream, 0L, Cur, namescur,
++ nfilescur, full) : stream->nmsgs;
++ stream->nmsgs = maildir_parse_dir(stream, total, New, namesnew,
++ nfilesnew, full);
++ }
++ if(namesnew){
++ for(i = 0L; i < nfilesnew; i++)
++ fs_give((void **)&namesnew[i]);
++ fs_give((void **) &namesnew);
++ }
++ if(namescur){
++ for(i = 0L; i < nfilescur; i++)
++ fs_give((void **)&namescur[i]);
++ fs_give((void **) &namescur);
++ }
++ MM_NOCRITICAL(stream);
++ }
++
++ int
++ maildir_initial_check (MAILSTREAM *stream, DirNamesType dirtype)
++ {
++ char tmp[MAILTMPLEN];
++ struct stat sbuf;
++
++ MDFLD(tmp, LOCAL->dir, dirtype);
++ if (access (tmp, R_OK|W_OK|X_OK) != 0){
++ maildir_abort(stream);
++ return -1;
++ }
++
++ MDFLD(tmp, LOCAL->dir, Cur);
++ if (dirtype != New &&
++ (stat(tmp, &sbuf) < 0 || sbuf.st_ctime == LOCAL->scantime))
++ return -1;
++ return 0;
++ }
++
++
++ /* Return the number of messages in the directory, while filling the
++ * elt structure.
++ */
++
++ unsigned long
++ maildir_parse_dir(MAILSTREAM *stream, unsigned long nmsgs,
++ DirNamesType dirtype, struct direct **names,
++ unsigned long nfiles, int full)
++ {
++ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN], file[MAILTMPLEN],
++ newfile[MAILTMPLEN], *mdstr;
++ struct stat sbuf;
++ unsigned long i, new = 0L, l, uid_last;
++ unsigned long recent = stream ? stream->recent : 0L;
++ int d = 0, f = 0, r = 0, s = 0, t = 0;
++ int we_compute, in_list;
++ int silent = stream ? stream->silent : NIL;
++ MESSAGECACHE *elt;
++
++ MDFLD(tmp, LOCAL->dir, dirtype);
++ if (dirtype == Cur && !stream->rdonly)
++ for (i = 1L; i <= stream->nmsgs;){
++ elt = mail_elt(stream, i);
++ in_list = elt && elt->private.spare.ptr && nfiles > 0L
++ ? (MDPOS(elt) < nfiles
++ ? same_maildir_file(MDFILE(elt), names[MDPOS(elt)]->d_name)
++ : NIL)
++ || maildir_message_in_list(MDFILE(elt), names, 0L,
++ nfiles - 1L, &MDPOS(elt))
++ : NIL;
++ if (!in_list){
++ if (elt->private.spare.ptr)
++ maildir_free_file ((void **) &elt->private.spare.ptr);
++
++ if (elt->recent) --recent;
++ mail_expunged(stream,i);
++ }
++ else i++;
++ }
++
++ stream->silent = T;
++ uid_last = 0L;
++ for (we_compute = 0, i = l = 1L; l <= nfiles; l++){
++ unsigned long pos, uid;
++ if (dirtype == New && !stream->rdonly){ /* move new messages to cur */
++ pos = l - 1L;
++ sprintf (file,"%s/%s", tmp, names[pos]->d_name);
++ if(lstat(file,&sbuf) == 0)
++ switch(sbuf.st_mode & S_IFMT){
++ case S_IFREG:
++ strcpy(tmp2, names[pos]->d_name);
++ if((mdstr = strstr(tmp2,MDSEP(3)))
++ || (mdstr = strstr(tmp2,MDSEP(2))))
++ *(mdstr+1) = '2';
++ else
++ strcat(tmp2, MDSEP(2));
++ sprintf(newfile, "%s/%s",LOCAL->curdir, tmp2);
++ if(rename (file, newfile) != 0){
++ mm_log("Unable to read new mail!", WARN);
++ continue;
++ }
++ unlink (file);
++ new++;
++ break;
++ case S_IFLNK: /* clean up, clean up, everybody, everywhere */
++ if(unlink(file) < 0){
++ if(LOCAL->link == NIL){
++ mm_log("Unable to remove symbolic link", WARN);
++ LOCAL->link = T;
++ }
++ }
++ continue;
++ break;
++ default:
++ if(LOCAL && LOCAL->link == NIL){
++ mm_log("Unrecognized file or link in folder", WARN);
++ LOCAL->link = T;
++ }
++ continue;
++ break;
++ }
++ }
++ mail_exists(stream, i + nmsgs);
++ elt = mail_elt(stream, i + nmsgs);
++ pos = (elt && elt->private.spare.ptr) ? MDPOS(elt) : l - 1L;
++ if (dirtype == New) elt->recent = T;
++ maildir_getflag(names[pos]->d_name, &d, &f, &r ,&s, &t);
++ if (elt->private.spare.ptr)
++ maildir_free_file_only ((void **)&elt->private.spare.ptr);
++ else{
++ maildir_get_file((MAILDIRFILE **)&elt->private.spare.ptr);
++ we_compute++;
++ }
++ MDFILE(elt) = cpystr(names[pos]->d_name);
++ MDPOS(elt) = pos;
++ MDLOC(elt) = dirtype;
++ if (dirtype == Cur){ /* deal with UIDs */
++ if(elt->private.uid == 0L)
++ elt->private.uid = maildir_get_uid(MDFILE(elt));
++ if(elt->private.uid <= uid_last){
++ uid = (we_compute ? uid_last : stream->uid_last) + 1L;
++ if(LOCAL->candouid)
++ maildir_assign_uid(stream, i + nmsgs, uid);
++ else
++ elt->private.uid = uid;
++ }
++ else
++ uid = elt->private.uid;
++ uid_last = uid;
++ if(uid_last > stream->uid_last)
++ stream->uid_last = uid_last;
++ }
++ if(dirtype == New && !stream->rdonly){
++ maildir_free_file_only((void **)&elt->private.spare.ptr);
++ MDFILE(elt) = cpystr(tmp2);
++ MDSIZE(elt) = sbuf.st_size;
++ MDMTIME(elt) = sbuf.st_mtime;
++ MDLOC(elt) = Cur;
++ }
++ if (elt->draft != d || elt->flagged != f ||
++ elt->answered != r || elt->seen != s || elt->deleted != t){
++ elt->draft = d; elt->flagged = f; elt->answered = r;
++ elt->seen = s; elt->deleted = t;
++ if (!we_compute && !stream->rdonly)
++ MM_FLAGS(stream, i+nmsgs);
++ }
++ maildir_get_date(stream, i+nmsgs);
++ elt->valid = T;
++ i++;
++ }
++ stream->silent = silent;
++ if(LOCAL->candouid && dirtype == Cur)
++ maildir_read_uid(stream, NULL, &stream->uid_validity);
++ if (dirtype == New && stream->rdonly)
++ new = nfiles;
++ mail_exists(stream, nmsgs + ((dirtype == New) ? new : nfiles));
++ mail_recent(stream, recent + ((dirtype == New) ? new : 0L));
++
++ return (nmsgs + (dirtype == New ? new : nfiles));
++ }
++
++ long maildir_ping (MAILSTREAM *stream)
++ {
++ maildir_parse_folder(stream, 0);
++ if(stream && LOCAL){
++ if(LOCAL->candouid)
++ maildir_uid_renew_tempfile(stream);
++ else /* try again to get uids */
++ LOCAL->candouid = maildir_can_assign_uid(stream);
++ }
++ return stream && LOCAL ? LONGT : NIL;
++ }
++
++ int maildir_select (const struct direct *name)
++ {
++ return (name->d_name[0] != '.');
++ }
++
++ /*
++ * Unfortunately, there is no way to sort by arrival in this driver, this
++ * means that opening a folder in this driver using the scandir function
++ * will always make this driver slower than any driver that has a natural
++ * way of sorting by arrival (like a flat file format, "mbox", "mbx", etc).
++ */
++ int maildir_namesort (const void *d1, const void *d2)
++ {
++ const struct direct *e1 = *(const struct direct **) d1;
++ const struct direct *e2 = *(const struct direct **) d2;
++
++ return comp_maildir_file((char *) e1->d_name, (char *) e2->d_name);
++ }
++
++ /* Maildir close */
++
++ void maildir_close (MAILSTREAM *stream, long options)
++ {
++ MESSAGECACHE *elt;
++ unsigned long i;
++ int silent = stream ? stream->silent : 0;
++ mailcache_t mc = (mailcache_t) mail_parameters (NIL,GET_CACHE,NIL);
++
++ if (!stream) return;
++
++ for (i = 1L; i <= stream->nmsgs; i++)
++ if((elt = (MESSAGECACHE *) (*mc)(stream,i,CH_ELT)) && elt->private.spare.ptr)
++ maildir_free_file ((void **) &elt->private.spare.ptr);
++ stream->silent = T;
++ if (options & CL_EXPUNGE) maildir_expunge (stream, NIL, NIL);
++ maildir_abort(stream);
++ if (mdfpath) fs_give((void **)&mdfpath);
++ if (mypid) mypid = (pid_t) 0;
++ stream->silent = silent;
++ }
++
++ void maildir_check (MAILSTREAM *stream)
++ {
++ if (maildir_ping (stream)) mm_log ("Check completed",(long) NIL);
++ }
++
++ long maildir_text (MAILSTREAM *stream,unsigned long msgno,STRING *bs, long flags)
++ {
++ char tmp[MAILTMPLEN];
++ unsigned long i;
++ MESSAGECACHE *elt;
++ char *s;
++ /* UID call "impossible" */
++ if (flags & FT_UID || !LOCAL) return NIL;
++ elt = mail_elt (stream, msgno);
++
++ if (!(flags & FT_PEEK) && !elt->seen){
++ elt->seen = T;
++ maildir_flagmsg (stream, elt);
++ MM_FLAGS(stream, elt->msgno);
++ }
++
++ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), MDLOC(elt));
++ if (LOCAL->fd < 0) /* if file closed ? */
++ LOCAL->fd = open(tmp,O_RDONLY,NIL);
++
++ if (LOCAL->fd < 0 && (errno == EACCES || errno == ENOENT)){
++ INIT (bs, mail_string, "", 0);
++ elt->rfc822_size = 0L;
++ return NIL;
++ }
++
++ s = maildir_text_work(stream, elt, &i, flags);
++ INIT (bs, mail_string, s, i);
++ return LONGT;
++ }
++
++ char *maildir_text_work (MAILSTREAM *stream,MESSAGECACHE *elt,
++ unsigned long *length,long flags)
++ {
++ FDDATA d;
++ STRING bs;
++ char *s,tmp[CHUNK];
++ unsigned long msgno = elt->msgno;
++ static int try = 0;
++
++ if (length)
++ *length = 0L;
++ LOCAL->buf[0] = '\0';
++
++ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), MDLOC(elt));
++ if (LOCAL->fd < 0) /* if file closed ? */
++ LOCAL->fd = open(tmp,O_RDONLY,NIL);
++
++ if (LOCAL->fd < 0){ /* flag change? */
++ if (try < 5){
++ try++;
++ if (maildir_update_elt_maildirp(stream, msgno) > 0)
++ try = 0;
++ return maildir_text_work(stream, mail_elt(stream, msgno),length, flags);
++ }
++ try = 0;
++ return NULL;
++ }
++
++ lseek (LOCAL->fd, elt->private.msg.text.offset,L_SET);
++
++ if (flags & FT_INTERNAL) { /* initial data OK? */
++ if (elt->private.msg.text.text.size > LOCAL->buflen) {
++ fs_give ((void **) &LOCAL->buf);
++ LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
++ elt->private.msg.text.text.size) + 1);
++ }
++ read (LOCAL->fd,LOCAL->buf,elt->private.msg.text.text.size);
++ LOCAL->buf[*length = elt->private.msg.text.text.size] = '\0';
++ }
++ else {
++ if (elt->rfc822_size > LOCAL->buflen) {
++ fs_give ((void **) &LOCAL->buf);
++ LOCAL->buf = (char *) fs_get ((LOCAL->buflen = elt->rfc822_size) + 1);
++ }
++ d.fd = LOCAL->fd; /* yes, set up file descriptor */
++ d.pos = elt->private.msg.text.offset;
++ d.chunk = tmp; /* initial buffer chunk */
++ d.chunksize = CHUNK;
++ INIT (&bs,fd_string,&d,elt->private.msg.text.text.size);
++ for (s = LOCAL->buf; SIZE (&bs);) switch (CHR (&bs)) {
++ case '\r': /* carriage return seen */
++ *s++ = SNX (&bs); /* copy it and any succeeding LF */
++ if (SIZE (&bs) && (CHR (&bs) == '\n')) *s++ = SNX (&bs);
++ break;
++ case '\n':
++ *s++ = '\r'; /* insert a CR */
++ default:
++ *s++ = SNX (&bs); /* copy characters */
++ }
++ *s = '\0'; /* tie off buffer */
++ *length = s - (char *) LOCAL->buf; /* calculate length */
++ }
++ close(LOCAL->fd); LOCAL->fd = -1;
++ return LOCAL->buf;
++ }
++
++ /* maildir parse, fill the elt structure... well not all of it... */
++ unsigned long maildir_parse_message(MAILSTREAM *stream, unsigned long msgno,
++ DirNamesType dirtype)
++ {
++ char *b, *s, *t, c;
++ char tmp[MAILTMPLEN];
++ struct stat sbuf;
++ unsigned long i, len;
++ int d, f, r, se, dt;
++ MESSAGECACHE *elt;
++
++ elt = mail_elt (stream,msgno);
++ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), dirtype);
++ if(stat(tmp, &sbuf) == 0)
++ MDSIZE(elt) = sbuf.st_size;
++
++ maildir_get_date(stream, msgno);
++ maildir_getflag(MDFILE(elt), &d, &f, &r ,&se, &dt);
++ elt->draft = d; elt->flagged = f; elt->answered = r; elt->seen = se;
++ elt->deleted = dt; elt->valid = T;
++ if (LOCAL->fd < 0) /* if file closed ? */
++ LOCAL->fd = open(tmp,O_RDONLY,NIL);
++
++ if (LOCAL->fd >= 0){
++ s = (char *) fs_get (MDSIZE(elt) + 1);
++ read (LOCAL->fd,s,MDSIZE(elt));
++ s[MDSIZE(elt)] = '\0';
++ t = s + strlen(s); /* make t point to the end of s */
++ for (i = 0L, b = s; b < t && !(i && (*b == '\n')); i = (*b++ == '\n'));
++ len = (*b ? ++b : b) - s;
++ elt->private.msg.header.text.size =
++ elt->private.msg.text.offset = len;
++ elt->private.msg.text.text.size = MDSIZE(elt) - len;
++ for (i = 0L, b = s, c = *b; b &&
++ ((c < '\016' && ((c == '\012' && ++i)
++ ||(c == '\015' && *(b+1) == '\012' && ++b && (i +=2))))
++ || b < t); i++, c= *++b);
++ elt->rfc822_size = i;
++ fs_give ((void **) &s);
++ close(LOCAL->fd); LOCAL->fd = -1;
++ }
++ return elt->rfc822_size;
++ }
++
++ int
++ maildir_update_elt_maildirp(MAILSTREAM *stream, unsigned long msgno)
++ {
++ char tmp[MAILTMPLEN];
++ struct direct **names = NIL;
++ unsigned long i, nfiles, pos;
++ int d = 0, f = 0 , r = 0, s = 0, t = 0, in_list, scan_err;
++ MESSAGECACHE *elt;
++
++ MDFLD(tmp, LOCAL->dir, Cur);
++
++ maildir_scandir (tmp, &names, &nfiles, &scan_err, CCLIENT);
++
++ elt = mail_elt (stream,msgno);
++
++ in_list = nfiles > 0L
++ ? maildir_message_in_list(MDFILE(elt), names, 0L, nfiles - 1L, &pos)
++ : NIL;
++
++ if (in_list && pos >= 0L && pos < nfiles
++ && !strcmp(MDFILE(elt), names[pos]->d_name)){
++ in_list = NIL;
++ maildir_abort(stream);
++ }
++
++ if (in_list && pos >= 0L && pos < nfiles){
++ maildir_free_file_only((void **)&elt->private.spare.ptr);
++ MDFILE(elt) = cpystr(names[pos]->d_name);
++ maildir_getflag(MDFILE(elt), &d, &f, &r ,&s, &t);
++ if (elt->draft != d || elt->flagged != f ||
++ elt->answered != r || elt->seen != s || elt->deleted != t){
++ elt->draft = d; elt->flagged = f; elt->answered = r;
++ elt->seen = s; elt->deleted = t;
++ MM_FLAGS(stream, msgno);
++ }
++ }
++ for (i = 0L; i < nfiles; i++)
++ fs_give((void **) &names[i]);
++ if (names)
++ fs_give((void **) &names);
++ return in_list ? 1 : -1;
++ }
++
++ /* Maildir fetch message header */
++
++ char *maildir_header (MAILSTREAM *stream,unsigned long msgno,
++ unsigned long *length, long flags)
++ {
++ char tmp[MAILTMPLEN], *s;
++ MESSAGECACHE *elt;
++ static int try = 0;
++
++ if (length) *length = 0;
++ if (flags & FT_UID || !LOCAL) return ""; /* UID call "impossible" */
++ elt = mail_elt (stream,msgno);
++ if(elt->private.msg.header.text.size == 0)
++ maildir_parse_message(stream, msgno, MDLOC(elt));
++
++ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), MDLOC(elt));
++ if (LOCAL->fd < 0)
++ LOCAL->fd = open (tmp,O_RDONLY,NIL);
++
++ if (LOCAL->fd < 0 && errno == EACCES){
++ mm_log ("Message exists but can not be read. Envelope and body lost!",ERROR);
++ return NULL;
++ }
++
++ if (LOCAL->fd < 0){ /* flag change? */
++ if (try < 5){
++ try++;
++ if (maildir_update_elt_maildirp(stream, msgno) > 0)
++ try = 0;
++ return maildir_header(stream, msgno, length, flags);
++ }
++ try = 0;
++ return NULL;
++ }
++
++ if (flags & FT_INTERNAL){
++ if(elt->private.msg.header.text.size > LOCAL->buflen){
++ fs_give ((void **) &LOCAL->buf);
++ LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
++ elt->private.msg.header.text.size) + 1);
++ }
++ read (LOCAL->fd, (void *)LOCAL->buf, elt->private.msg.header.text.size);
++ LOCAL->buf[*length = elt->private.msg.header.text.size] = '\0';
++ }
++ else{
++ s = (char *) fs_get(elt->private.msg.header.text.size+1);
++ read (LOCAL->fd, (void *)s, elt->private.msg.header.text.size);
++ s[elt->private.msg.header.text.size] = '\0';
++ *length = strcrlfcpy (&LOCAL->buf,&LOCAL->buflen,s,
++ elt->private.msg.header.text.size);
++ fs_give ((void **) &s);
++ }
++ elt->private.msg.text.offset = elt->private.msg.header.text.size;
++ elt->private.msg.text.text.size = MDSIZE(elt) - elt->private.msg.text.offset;
++ close(LOCAL->fd); LOCAL->fd = -1;
++ return LOCAL->buf;
++ }
++
++ /* Maildir find list of subscribed mailboxes
++ * Accepts: mail stream
++ * pattern to search
++ */
++
++ void maildir_list (MAILSTREAM *stream,char *ref, char *pat)
++ {
++ char *s,test[MAILTMPLEN],file[MAILTMPLEN];
++ long i = 0L;
++
++ if((!pat || !*pat) && maildir_canonicalize (test,ref,"*")
++ && maildir_valid_name(test)){ /* there is a #md/ leading here */
++ for (i = 3L; test[i] && test[i] != '/'; i++);
++ if ((s = strchr (test+i+1,'/')) != NULL) *++s = '\0';
++ else test[0] = '\0';
++ mm_list (stream,'/',test, LATT_NOSELECT);
++ }
++ else if (maildir_canonicalize (test,ref,pat)) {
++ if (test[3] == '/') { /* looking down levels? */
++ /* yes, found any wildcards? */
++ if ((s = strpbrk (test,"%*")) != NULL){
++ /* yes, copy name up to that point */
++ strncpy (file,test+4,i = s - (test+4));
++ file[i] = '\0'; /* tie off */
++ }
++ else strcpy (file,test+4);/* use just that name then */
++ /* find directory name */
++ if ((s = strrchr (file, '/')) != NULL){
++ *s = '\0'; /* found, tie off at that point */
++ s = file;
++ }
++ /* do the work */
++ if(IS_COURIER(test))
++ courier_list_work (stream,s,test,0);
++ else
++ maildir_list_work (stream,s,test,0);
++ }
++ /* always an INBOX */
++ if (!compare_cstring (test,"#MD/INBOX"))
++ mm_list (stream,NIL,"#MD/INBOX",LATT_NOINFERIORS);
++ if (!compare_cstring (test,"#MC/INBOX"))
++ mm_list (stream,NIL,"#MC/INBOX",LATT_NOINFERIORS);
++ }
++ }
++
++ void courier_list (MAILSTREAM *stream,char *ref, char *pat)
++ {
++ /* I am too lazy to do anything. Do you care to ask maildir list, please?
++ The real reason why this is a dummy function is because we do not want to
++ see the same folder listed twice.
++ */
++ }
++
++ /* For those that want to hide things, we give them a chance to do so */
++ void *maildir_parameters (long function, void *value)
++ {
++ void *ret = NIL;
++ switch ((int) function) {
++ case SET_MDINBOXPATH:
++ if(strlen((char *) value ) > 49)
++ strcpy(myMdInboxDir, "Maildir");
++ else
++ strcpy(myMdInboxDir, (char *) value);
++ case GET_MDINBOXPATH:
++ if (myMdInboxDir[0] == '\0') strcpy(myMdInboxDir,"Maildir");
++ ret = (void *) myMdInboxDir;
++ break;
++ case SET_COURIERSTYLE:
++ CourierStyle = (long) value;
++ case GET_COURIERSTYLE:
++ ret = (void *) CourierStyle;
++ break;
++ case GET_DIRFMTTEST:
++ ret = (void *) maildir_dirfmttest;
++ break;
++ default:
++ break;
++ }
++ return ret;
++ }
++
++ int maildir_create_folder(char *mailbox)
++ {
++ char tmp[MAILTMPLEN], err[MAILTMPLEN];
++ int i;
++
++ for (i = Cur; i != EndDir; i++){
++ MDFLD(tmp, mailbox, i);
++ if (mkdir(tmp, 0700) && errno != EEXIST){ /* try to make new dir */
++ sprintf (err, "Can't create %s: %s", tmp, strerror(errno));
++ mm_log (err,ERROR);
++ return NIL;
++ }
++ }
++ return T;
++ }
++
++ int maildir_create_work(char *mailbox, int loop)
++ {
++ char *s, c, err[MAILTMPLEN], tmp[MAILTMPLEN], tmp2[MAILTMPLEN], mbx[MAILTMPLEN];
++ int fnlen, create_dir = 0, courier, mv;
++ struct stat sbuf;
++ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL);
++
++ courier = IS_COURIER(mailbox);
++ strcpy(mbx, mailbox);
++ mv = maildir_valid(mbx) ? 1 : 0;
++ maildir_file_path(mailbox, tmp);
++ if (mailbox[strlen(mailbox) - 1] == MDSEPARATOR(courier)){
++ create_dir++;
++ mailbox[strlen(mailbox) - 1] = '\0';
++ }
++
++ if(!loop && courier){
++ if(mv){
++ if(create_dir){
++ if(style == CCLIENT)
++ strcpy (err,"Can not create directory: folder exists. Create subfolder");
++ else
++ strcpy(err,"Folder and Directory already exist");
++ }
++ else
++ strcpy (err, "Can't create mailbox: mailbox already exists");
++ }
++ else{
++ if(create_dir)
++ strcpy(err, "Can not create directory. Cread folder instead");
++ else
++ err[0] = '\0';
++ }
++ if(err[0]){
++ mm_log (err,ERROR);
++ return NIL;
++ }
++ }
++
++ fnlen = strlen(tmp);
++ if ((s = strrchr(mailbox,MDSEPARATOR(courier))) != NULL){
++ c = *++s;
++ *s = '\0';
++ if ((stat(tmp,&sbuf) || ((sbuf.st_mode & S_IFMT) != S_IFDIR)) &&
++ !maildir_create_work (mailbox, ++loop))
++ return NIL;
++ *s = c;
++ }
++ tmp[fnlen] = '\0';
++
++ if (mkdir(tmp,0700) && errno != EEXIST)
++ return NIL;
++
++ if (create_dir)
++ mailbox[fnlen] = '/';
++
++ if (create_dir){
++ if(style == CCLIENT){
++ if(!courier){
++ FILE *fp = NULL;
++ sprintf(tmp2,"%s%s", tmp, MDDIR);
++ if ((fp = fopen(tmp2,"w")) == NULL){
++ sprintf (err,"Problem creating %s: %s", tmp2, strerror(errno));
++ mm_log (err,ERROR);
++ return NIL;
++ }
++ fclose(fp);
++ }
++ }
++ return T;
++ }
++ else
++ return maildir_create_folder(tmp);
++ }
++
++ long maildir_create (MAILSTREAM *stream,char *mailbox)
++ {
++ char tmp[MAILTMPLEN], err[MAILTMPLEN];
++ int rv, create_dir;
++
++ create_dir = mailbox ?
++ (mailbox[strlen(mailbox) - 1] ==
++ MDSEPARATOR(IS_COURIER(mailbox))) : 0;
++ maildir_file_path(mailbox, tmp);
++ strcpy(tmp, mailbox);
++ rv = maildir_create_work(mailbox, 0);
++ strcpy(mailbox, tmp);
++ if (rv == 0){
++ sprintf (err,"Can't create %s %s",
++ (create_dir ? "directory" : "mailbox"), mailbox);
++ mm_log (err,ERROR);
++ }
++ return rv ? LONGT : NIL;
++ }
++
++ #define MAXTRY 10000
++ void maildir_flagmsg (MAILSTREAM *stream,MESSAGECACHE *elt)
++ {
++ char oldfile[MAILTMPLEN],newfile[MAILTMPLEN],fn[MAILTMPLEN];
++ char *s;
++ int ren, try = 0;
++
++ if (elt->valid){
++ for (try = 1; try > 0 && try < MAXTRY; try++){
++ /* build the new filename */
++ sprintf (oldfile,"%s/%s",LOCAL->curdir, MDFILE(elt));
++ fn[0] = '\0';
++ if ((ren = maildir_message_exists(stream, MDFILE(elt), fn)) == 0){
++ errno = ENOENT;
++ try = MAXTRY;
++ }
++ if (*fn) /* new oldfile! */
++ sprintf (oldfile,"%s/%s",LOCAL->curdir,fn);
++ if ((s = strrchr (MDFILE(elt), FLAGSEP))) *s = '\0';
++ sprintf (fn,"%s%s%s%s%s%s%s", MDFILE(elt), MDSEP(2),
++ MDFLAG(Draft, elt->draft), MDFLAG(Flagged, elt->flagged),
++ MDFLAG(Replied, elt->answered), MDFLAG(Seen, elt->seen),
++ MDFLAG(Trashed, elt->deleted));
++ sprintf (newfile,"%s/%s",LOCAL->curdir,fn);
++ if (ren != 0 && rename (oldfile,newfile) >= 0)
++ try = -1;
++ }
++
++ if (try > 0){
++ sprintf(oldfile,"Unable to write flags to disk: %s",
++ (errno == ENOENT) ? "message is gone!" : strerror (errno));
++ mm_log(oldfile,ERROR);
++ return;
++ }
++ #ifdef __CYGWIN__
++ utime(LOCAL->curdir, NIL); /* make sure next scan will catch the change */
++ #endif
++ maildir_free_file_only ((void **) &elt->private.spare.ptr);
++ MDFILE(elt) = cpystr (fn);
++ }
++ }
++
++ long maildir_expunge (MAILSTREAM *stream, char *sequence, long options)
++ {
++ long ret;
++ MESSAGECACHE *elt;
++ unsigned long i, n = 0L;
++ unsigned long recent = stream->recent;
++ char tmp[MAILTMPLEN];
++
++ mm_critical (stream); /* go critical */
++ ret = sequence ? ((options & EX_UID) ?
++ mail_uid_sequence (stream,sequence) :
++ mail_sequence (stream,sequence)) : LONGT;
++ if(ret == 0L)
++ return 0L;
++ for (i = 1L; i <= stream->nmsgs;){
++ elt = mail_elt (stream,i);
++ if (elt->deleted && (sequence ? elt->sequence : T)){
++ sprintf (tmp,"%s/%s",LOCAL->curdir, MDFILE(elt));
++ if (unlink (tmp) < 0) {/* try to delete the message */
++ sprintf (tmp,"Expunge of message %ld failed, aborted: %s",i,
++ strerror (errno));
++ if (!stream->silent)
++ mm_log (tmp,WARN);
++ break;
++ }
++ if (elt->private.spare.ptr)
++ maildir_free_file ((void **) &elt->private.spare.ptr);
++ if (elt->recent) --recent;/* if recent, note one less recent message */
++ mail_expunged (stream,i); /* notify upper levels */
++ n++; /* count up one more expunged message */
++ }
++ else i++;
++ }
++ if(n){ /* output the news if any expunged */
++ sprintf (tmp,"Expunged %ld messages",n);
++ if (!stream->silent)
++ mm_log (tmp,(long) NIL);
++ }
++ else
++ if (!stream->silent)
++ mm_log ("No messages deleted, so no update needed",(long) NIL);
++ mm_nocritical (stream); /* release critical */
++ /* notify upper level of new mailbox size */
++ mail_exists (stream,stream->nmsgs);
++ mail_recent (stream,recent);
++ return ret;
++ }
++
++ long maildir_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
++ {
++ STRING st;
++ MESSAGECACHE *elt;
++ unsigned long len;
++ int fd;
++ unsigned long i;
++ struct stat sbuf;
++ char tmp[MAILTMPLEN], flags[MAILTMPLEN], path[MAILTMPLEN], *s;
++ /* copy the messages */
++ if ((options & CP_UID) ? mail_uid_sequence (stream, sequence) :
++ mail_sequence (stream,sequence))
++ for (i = 1L; i <= stream->nmsgs; i++)
++ if ((elt = mail_elt (stream,i))->sequence){
++ MSGPATH(path, LOCAL->dir, MDFILE(elt), MDLOC(elt));
++ if (((fd = open (path,O_RDONLY,NIL)) < 0)
++ ||((!elt->rfc822_size &&
++ ((stat(path, &sbuf) < 0) || !S_ISREG (sbuf.st_mode)))))
++ return NIL;
++ if(!elt->rfc822_size)
++ MDSIZE(elt) = sbuf.st_size;
++ s = (char *) fs_get(MDSIZE(elt) + 1);
++ read (fd,s,MDSIZE(elt));
++ s[MDSIZE(elt)] = '\0';
++ close (fd);
++ len = strcrlfcpy (&LOCAL->buf,&LOCAL->buflen, s, MDSIZE(elt));
++ INIT (&st,mail_string, LOCAL->buf, len);
++ elt->rfc822_size = len;
++ fs_give ((void **)&s);
++
++ flags[0] = flags[1] = '\0';
++ if (elt->seen) strcat (flags," \\Seen");
++ if (elt->draft) strcat (flags," \\Draft");
++ if (elt->deleted) strcat (flags," \\Deleted");
++ if (elt->flagged) strcat (flags," \\Flagged");
++ if (elt->answered) strcat (flags," \\Answered");
++ flags[0] = '('; /* open list */
++ strcat (flags,")"); /* close list */
++ mail_date (tmp,elt); /* generate internal date */
++ if (!mail_append_full (NIL,mailbox,flags,tmp,&st))
++ return NIL;
++ if (options & CP_MOVE) elt->deleted = T;
++ }
++ return LONGT; /* return success */
++ }
++
++ long maildir_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
++ {
++ int fd, k;
++ STRING *message;
++ char c,*s, *flags, *date;
++ char tmp[MAILTMPLEN],file[MAILTMPLEN],path1[MAILTMPLEN],path2[MAILTMPLEN];
++ MESSAGECACHE elt;
++ long i, size = 0L, ret = LONGT, f;
++ unsigned long uf, ti;
++ static unsigned int transact = 0;
++
++ if (!maildir_valid(mailbox)) {
++ sprintf (tmp,"Not a valid Maildir mailbox: %s",mailbox);
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++
++ if (!*mdlocaldomain)
++ md_domain_name(); /* get domain name for maildir files in mdlocaldomain now! */
++
++ if (mypid == (pid_t) 0)
++ mypid = getpid();
++
++ if (!stream){
++ stream = &maildirproto;
++
++ for (k = 0; k < NUSERFLAGS && stream->user_flags[k]; ++k)
++ fs_give ((void **) &stream->user_flags[k]);
++ }
++
++ if (!(*af) (stream,data,&flags,&date,&message)) return NIL;
++
++ mm_critical (stream); /* go critical */
++ /* call time(0) only once, use transact to distinguish instead */
++ ti = time(0);
++ do {
++ if (!SIZE (message)) { /* guard against zero-length */
++ mm_log ("Append of zero-length message",ERROR);
++ ret = NIL;
++ break;
++ }
++ if (date && !mail_parse_date(&elt,date)){
++ sprintf (tmp,"Bad date in append: %.80s",date);
++ mm_log (tmp,ERROR);
++ ret = NIL;
++ break;
++ }
++ f = mail_parse_flags (stream,flags,&uf);
++ /* build file name we will use */
++ sprintf (file,"%lu.%d_%09u.%s%s%s%s%s%s",
++ ti, mypid, transact++, mdlocaldomain, (f ? MDSEP(2) : ""),
++ MDFLAG(Draft, f&fDRAFT), MDFLAG(Flagged, f&fFLAGGED),
++ MDFLAG(Replied, f&fANSWERED), MDFLAG(Seen, f&fSEEN));
++ /* build tmp file name */
++ if (maildir_file_path(mailbox, tmp))
++ MSGPATH(path1, tmp, file, Tmp);
++
++ if ((fd = open (path1,O_WRONLY|O_CREAT|O_EXCL,S_IREAD|S_IWRITE)) < 0) {
++ sprintf (tmp, "Can't open append mailbox: %s", strerror (errno));
++ mm_log (tmp, ERROR);
++ return NIL;
++ }
++ for (size = 0,i = SIZE (message),s = (char *) fs_get (i + 1); i; --i)
++ if ((c = SNX (message)) != '\015') s[size++] = c;
++ if ((write (fd, s, size) < 0) || fsync (fd)) {
++ unlink (path1); /* delete message */
++ sprintf (tmp, "Message append failed: %s", strerror (errno));
++ mm_log (tmp, ERROR);
++ ret = NIL;
++ }
++ fs_give ((void **) &s); /* flush the buffer */
++ close (fd); /* close the file */
++ /* build final filename to use */
++ if (maildir_file_path(mailbox, tmp))
++ MSGPATH(path2, tmp, file, New);
++ if (rename (path1,path2) < 0) {
++ sprintf (tmp, "Message append failed: %s", strerror (errno));
++ mm_log (tmp, ERROR);
++ ret = NIL;
++ }
++ unlink (path1);
++
++ if (ret)
++ if (!(*af) (stream,data,&flags,&date,&message)) ret = NIL;
++
++ } while (ret && message); /* write the data */
++ mm_nocritical (stream); /* release critical */
++ return ret;
++ }
++
++ long maildir_delete (MAILSTREAM *stream,char *mailbox)
++ {
++ DIR *dirp;
++ struct direct *d;
++ int i, remove_dir = 0, mddir = 0, rv, error = 0;
++ char tmp[MAILTMPLEN],tmp2[MAILTMPLEN], realname[MAILTMPLEN];
++ struct stat sbuf;
++ int courier = IS_COURIER(mailbox);
++
++ if (mailbox[strlen(mailbox) - 1] == MDSEPARATOR(courier)){
++ remove_dir++;
++ mailbox[strlen(mailbox) -1] = '\0';
++ }
++
++ if (!maildir_valid(mailbox)){
++ maildir_file_path(mailbox, tmp);
++ if (stat(tmp, &sbuf) < 0 || !S_ISDIR(sbuf.st_mode)){
++ sprintf(tmp,"Can not remove %s", mailbox);
++ error++;
++ }
++ }
++
++ if (!error && remove_dir && !maildir_dir_is_empty(mailbox)){
++ sprintf(tmp,"Can not remove directory %s/: directory not empty", mailbox);
++ error++;
++ }
++
++ if(error){
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++
++ maildir_close(stream,0); /* even if stream was NULL */
++
++ maildir_file_path(mailbox, realname);
++
++ if (remove_dir){
++ sprintf(tmp,"%s/%s", realname, MDDIR);
++ if ((rv = stat (tmp,&sbuf)) == 0 && S_ISREG(sbuf.st_mode))
++ rv = unlink(tmp);
++ else if (errno == ENOENT)
++ rv = 0;
++ if (rv != 0){
++ sprintf(tmp,"Can not remove %s/%s: %s", tmp2, MDDIR, strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ if (!maildir_valid(realname) && rmdir(realname) != 0){
++ sprintf(tmp,"Can not remove %s/: %s", mailbox, strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ return LONGT;
++ }
++ /* else remove just the folder. Remove all hidden files, except MDDIR */
++ for (i = Cur; i != EndDir; i++){
++ MDFLD(tmp, realname, i);
++
++ if (!(dirp = opendir (tmp))){
++ sprintf(tmp,"Can not read %s/: %s", mailbox, strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++
++ while ((d = readdir(dirp)) != NULL){
++ if (strcmp(d->d_name, ".") && strcmp(d->d_name,"..")){
++ sprintf(tmp2,"%s/%s", tmp, d->d_name);
++ if (unlink(tmp2) != 0){
++ sprintf(tmp2,"Can not remove %s: %s", mailbox, strerror(errno));
++ mm_log (tmp2,ERROR);
++ return NIL;
++ }
++ }
++ }
++ closedir(dirp);
++ if (rmdir(tmp) != 0){
++ sprintf(tmp,"Can not remove %s: %s", mailbox, strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ }
++ /*
++ * ok we have removed all subdirectories of the folder mailbox, Remove the
++ * hidden files.
++ */
++
++ if(!(dirp = opendir (realname))){
++ sprintf(tmp,"Can not read %s/: %s", realname, strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++
++ while ((d = readdir(dirp)) != NULL){
++ if (strcmp(d->d_name, ".") && strcmp(d->d_name,"..")
++ && (!strcmp(d->d_name, MDDIR)
++ || !strncmp(d->d_name, MDUIDLAST, strlen(MDUIDLAST))
++ || !strncmp(d->d_name, MDUIDTEMP, strlen(MDUIDTEMP)))){
++ if(strcmp(d->d_name, MDDIR) == 0)
++ mddir++;
++ sprintf(tmp,"%s/%s", realname, d->d_name);
++ if (unlink(tmp) != 0)
++ error++;
++ }
++ }
++ closedir(dirp);
++ if (error ||
++ (maildir_dir_is_empty(mailbox) && mddir == 0 && rmdir(realname) < 0)){
++ sprintf(tmp,"Can not remove folder %s: %s", mailbox, strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ return LONGT;
++ }
++
++ long maildir_rename (MAILSTREAM *stream, char *old, char *new)
++ {
++ char tmp[MAILTMPLEN],tmpnew[MAILTMPLEN], realold[MAILTMPLEN];
++ char realnew[MAILTMPLEN];
++ int courier = IS_COURIER(old) && IS_COURIER(new);
++ int i;
++ long rv = LONGT;
++ COURIER_S *cdir;
++
++ if((IS_COURIER(old) || IS_COURIER(new)) && !courier){
++ sprintf (tmp,"Can't rename mailbox %s to %s",old, new);
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++
++ if (!maildir_valid(old)){
++ sprintf (tmp,"Can't rename mailbox %s: folder not in maildir format",old);
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ maildir_file_path(old, realold);
++ if (!maildir_valid_name(new) && new[0] == '#'){
++ sprintf (tmp,"Can't rename mailbox %s: folder not in maildir format",new);
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ maildir_file_path(new, realnew);
++ if (access(tmpnew,F_OK) == 0){ /* new mailbox name must not exist */
++ sprintf (tmp,"Can't rename to mailbox %s: destination already exists",new);
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++
++ if(!courier){
++ if (rename (realold,realnew)){ /* try to rename the directory */
++ sprintf (tmp,"Can't rename mailbox %s to %s: %s",old, new,
++ strerror(errno));
++ mm_log (tmp,ERROR);
++ return NIL;
++ }
++ return LONGT; /* return success */
++ }
++
++ cdir = courier_list_dir(old);
++ for (i = 0; cdir && i < cdir->total; i++){
++ if(strstr(cdir->data[i]->name, old)){
++ sprintf(tmp,"%s%s", new, cdir->data[i]->name+strlen(old));
++ maildir_file_path(cdir->data[i]->name, realold);
++ maildir_file_path(tmp, realnew);
++ if (rename (realold,realnew)){
++ sprintf (tmp,"Can't rename mailbox %s to %s: %s",old, new,
++ strerror(errno));
++ mm_log (tmp,ERROR);
++ rv = NIL;
++ }
++ }
++ }
++ courier_free_cdir(&cdir);
++ return rv;
++ }
++
++ long maildir_sub (MAILSTREAM *stream,char *mailbox)
++ {
++ return sm_subscribe (mailbox);
++ }
++
++ long maildir_unsub (MAILSTREAM *stream,char *mailbox)
++ {
++ return sm_unsubscribe (mailbox);
++ }
++
++ void maildir_lsub (MAILSTREAM *stream,char *ref,char *pat)
++ {
++ void *sdb = NIL;
++ char *s, test[MAILTMPLEN];
++ /* get canonical form of name */
++ if (maildir_canonicalize (test,ref,pat) && (s = sm_read (&sdb))) {
++ do if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,NIL);
++ while ((s = sm_read (&sdb)) != NULL); /* until no more subscriptions */
++ }
++ }
++
++ long maildir_canonicalize (char *pattern,char *ref,char *pat)
++ {
++ if (ref && *ref) { /* have a reference */
++ strcpy (pattern,ref); /* copy reference to pattern */
++ /* # overrides mailbox field in reference */
++ if (*pat == '#') strcpy (pattern,pat);
++ /* pattern starts, reference ends, with / */
++ else if ((*pat == '/') && (pattern[strlen (pattern) - 1] == '/'))
++ strcat (pattern,pat + 1); /* append, omitting one of the period */
++
++ else strcat (pattern,pat); /* anything else is just appended */
++ }
++ else strcpy (pattern,pat); /* just have basic name */
++ return maildir_valid_name(pattern) ? LONGT : NIL;
++ }
++
++ void maildir_list_work (MAILSTREAM *stream,char *dir,char *pat,long level)
++ {
++ DIR *dp;
++ struct direct *d;
++ struct stat sbuf;
++ char curdir[MAILTMPLEN],name[MAILTMPLEN], tmp[MAILTMPLEN];
++ char realpat[MAILTMPLEN];
++ long i;
++ char *maildirpath = mdirpath();
++
++ sprintf(curdir,"%s/%s/", myrootdir(pat), dir ? dir : maildirpath);
++ if ((dp = opendir (curdir)) != NULL){
++ if (dir) sprintf (name,"%s%s/",MDPREFIX(CCLIENT),dir);
++ else strcpy (name, pat);
++
++ if (level == 0 && !strpbrk(pat,"%*")){
++ if(maildir_valid(pat)){
++ i = maildir_contains_folder(pat, NULL)
++ ? LATT_HASCHILDREN
++ : (maildir_is_dir(pat, NULL)
++ ? LATT_HASNOCHILDREN : LATT_NOINFERIORS);
++ maildir_file_path(pat, realpat);
++ i += maildir_any_new_msgs(realpat)
++ ? LATT_MARKED : LATT_UNMARKED;
++ mm_list (stream,'/', pat, i);
++ }
++ else
++ if(pat[strlen(pat) - 1] == '/')
++ mm_list (stream,'/', pat, LATT_NOSELECT);
++ }
++
++ while ((d = readdir (dp)) != NULL)
++ if(strcmp(d->d_name, ".") && strcmp(d->d_name,"..")
++ && strcmp(d->d_name, MDNAME(Cur))
++ && strcmp(d->d_name, MDNAME(Tmp))
++ && strcmp(d->d_name, MDNAME(New))){
++
++ if (dir) sprintf (tmp,"%s%s", name,d->d_name);
++ else strcpy(tmp, d->d_name);
++
++ if(pmatch_full (tmp, pat,'/')){
++ sprintf(tmp,"%s/%s/%s", myrootdir(d->d_name),
++ (dir ? dir : maildirpath), d->d_name);
++ if(stat (tmp,&sbuf) == 0
++ && ((sbuf.st_mode & S_IFMT) == S_IFDIR)){
++ if (dir) sprintf (tmp,"%s%s", name,d->d_name);
++ else strcpy(tmp, d->d_name);
++ i = maildir_valid(tmp)
++ ? (maildir_contains_folder(dir, d->d_name)
++ ? LATT_HASCHILDREN
++ : (maildir_is_dir(dir, d->d_name)
++ ? LATT_HASNOCHILDREN : LATT_NOINFERIORS))
++ : LATT_NOSELECT;
++ i += maildir_any_new_msgs(tmp)
++ ? LATT_MARKED : LATT_UNMARKED;
++ mm_list (stream,'/',tmp, i);
++ strcat (tmp, "/");
++ if(dmatch (tmp, pat,'/') &&
++ (level < (long) mail_parameters (NIL,GET_LISTMAXLEVEL,NIL))){
++ sprintf(tmp,"%s/%s",dir,d->d_name);
++ maildir_list_work (stream,tmp,pat,level+1);
++ }
++ }
++ }
++ }
++ closedir (dp);
++ }
++ }
++
++ void courier_list_work (MAILSTREAM *stream, char *dir, char *pat, long level)
++ {
++ char c, curdir[MAILTMPLEN], tmp[MAILTMPLEN];
++ char realname[MAILTMPLEN], realpat[MAILTMPLEN] = {'\0'};
++ int i, found;
++ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL), j;
++ char *maildirpath = mdirpath();
++ COURIER_S *cdir;
++
++ if(!strpbrk(pat,"%*")){ /* a mailbox */
++ maildir_file_path(pat, curdir);
++ i = strlen(curdir) - 1;
++ if(curdir[i] == '/')
++ curdir[i] = '\0';
++ cdir = courier_list_dir(curdir);
++ if(cdir){
++ found = 0; j = 0L;
++ if(maildir_valid_name(pat)){
++ for(i = 0; !found && i < cdir->total; i++)
++ if(strstr(curdir, cdir->data[i]->name)){
++ if(strlen(curdir) < strlen(cdir->data[i]->name))
++ found += 2;
++ else if(strlen(curdir) == strlen(cdir->data[i]->name))
++ found -= 1;
++ }
++ if(found > 0)
++ j = LATT_HASCHILDREN;
++ else if(found == 0)
++ j = (style == COURIER) ? LATT_HASNOCHILDREN : LATT_NOINFERIORS;
++ }
++ else
++ j = LATT_NOSELECT;
++ j += maildir_any_new_msgs(curdir) ? LATT_MARKED : LATT_UNMARKED;
++ if (found)
++ mm_list (stream, '.', pat, j);
++ courier_free_cdir(&cdir);
++ }
++ return;
++ }
++
++ strcpy(tmp,pat + 4); /* a directory */
++ j = strlen(pat) - 1;
++ maildir_file_path(pat, realpat);
++ c = pat[j];
++ pat[j] = '\0';
++ realname[0] = '\0';
++ if(dir)
++ maildir_file_path(dir, realname);
++ sprintf(curdir,"%s%s%s/%s", (dir ? "" : myrootdir(pat)), (dir ? "" : "/"),
++ (dir ? realname : maildirpath), (dir ? "" : "."));
++ sprintf(tmp, "%s%s/.", MDPREFIX(COURIER), dir ? dir : maildirpath);
++ if (level == 0 && tmp && pmatch_full (tmp, realpat, '.'))
++ mm_list (stream,'.', tmp, LATT_NOSELECT);
++
++ cdir = courier_list_dir(pat);
++ pat[j] = c;
++ for (i = 0; cdir && i < cdir->total; i++)
++ if(pmatch_full (cdir->data[i]->name, pat, '.')){
++ sprintf(tmp, "%s.", cdir->data[i]->name);
++ courier_list_info(&cdir, tmp, i);
++ mm_list (stream,'.',cdir->data[i]->name, cdir->data[i]->attribute);
++ }
++ courier_free_cdir(&cdir);
++ }
++
++ int
++ same_maildir_file(char *name1, char *name2)
++ {
++ char tmp1[MAILTMPLEN], tmp2[MAILTMPLEN];
++ char *s;
++
++ strcpy(tmp1, name1 ? name1 : "");
++ strcpy(tmp2, name2 ? name2 : "");
++ if ((s = strrchr(tmp1, FLAGSEP)) != NULL)
++ *s = '\0';
++ if (((s = strrchr(tmp1, SIZESEP)) != NULL) && (strchr(s,'.') == NULL))
++ *s = '\0';
++ if ((s = strrchr(tmp2, FLAGSEP)) != NULL)
++ *s = '\0';
++ if (((s = strrchr(tmp2, SIZESEP)) != NULL) && (strchr(s,'.') == NULL))
++ *s = '\0';
++
++ return !strcmp(tmp1, tmp2);
++ }
++
++ unsigned long antoul(char *seed)
++ {
++ int i, error = 0;
++ unsigned long val = 0L, rv1 = 0L, t;
++ char c, *p;
++ if(!seed)
++ return 0L;
++ t = strtoul(seed, &p, 10);
++ if(p && (*p == '.' || *p == '_'))
++ return t;
++ /* else */
++ if((p = strchr(seed,'.')) != NULL)
++ *p = '\0';
++ error = (strlen(seed) > 6); /* too long */
++ for(i= strlen(seed)-1; error == 0 && i >= 0; i--){
++ c = seed[i];
++ if (c >= 'A' && c <= 'Z') val = c - 'A';
++ else if (c >= 'a' && c <= 'z') val = c - 'a' + 26;
++ else if (c >= '0' && c <= '9') val = c - '0' + 26 + 26;
++ else if (c == '-') val = c - '-' + 26 + 26 + 10;
++ else if (c == '_') val = c - '_' + 26 + 26 + 10 + 1;
++ else error++;
++ rv1 = val + (rv1 << 6);
++ }
++ if(p)
++ *p = '.';
++ return error ? 0L : rv1;
++ }
++
++ unsigned long mdfntoul (char *name)
++ {
++ unsigned long t;
++ char *r, last;
++
++ if((*name == '_') && ((r = strpbrk(name,".,%+")) != NULL)){ /* Grrr!!! */
++ last = *r;
++ *r = '\0';
++ t = antoul(r+1);
++ *r = last;
++ }
++ else
++ t = antoul(name);
++ return t;
++ }
++
++ int comp_maildir_file(char *name1, char *name2)
++ {
++ int uset1 = 1, uset2 = 1, i, j, cmp;
++ unsigned long t1, t2;
++ char *s1, *s2;
++
++ if (!(name1 && *name1))
++ return (name2 && *name2) ? (*name2 == FLAGSEP ? 0 : -1) : 0;
++
++ if (!(name2 && *name2))
++ return (name1 && *name1) ? (*name1 == FLAGSEP ? 0 : 1) : 0;
++
++ if((cmp = strcmp(name1,name2)) == 0)
++ return 0;
++
++ t1 = strtoul(name1, &s1, 10);
++ t2 = strtoul(name2, &s2, 10);
++
++ if(!s1 || *s1 != '.')
++ uset1 = 0;
++
++ if(!s2 || *s2 != '.')
++ uset2 = 0;
++
++ if(uset1 && uset2) /* normal sort order */
++ return (t1 < t2) ? -1 : (t1 > t2 ? 1 : (cmp < 0 ? -1 : 1));
++
++ /* If we make it here we say Grrrr.... first, then we try to figure out
++ * how to sort this mess.
++ * These are the rules.
++ * If there is a number at the beginning it is bigger than anything else.
++ * If there are digits, then the number of digits decides which one is bigger.
++ */
++
++ for(i = 0; isdigit(name1[i]); i++);
++ for(j = 0; isdigit(name2[j]); j++);
++
++ return(uset1 ? 1
++ : (uset2 ? -1
++ : (i < j ? -1 : (i > j ? 1 : (cmp < 0 ? -1 : 1)))));
++ }
++
++ void
++ maildir_getflag(char *name, int *d, int *f, int *r ,int *s, int *t)
++ {
++ char tmp[MAILTMPLEN], *b;
++ int offset = 0;
++ int tmpd, tmpf, tmpr, tmps, tmpt;
++
++ if(d) *d = 0;
++ if(f) *f = 0;
++ if(r) *r = 0;
++ if(s) *s = 0;
++ if(t) *t = 0;
++
++ tmpd = tmpf = tmpr = tmps = tmpt = NIL; /* no flags set by default */
++ strcpy(tmp,name);
++ while ((b = strrchr(tmp+offset, FLAGSEP)) != NULL){
++ char flag,last;
++ int k;
++ if (!++b) break;
++ switch (*b){
++ case '1':
++ case '2':
++ case '3': flag = *b; b += 2;
++ for (k = 0; b[k] && b[k] != FLAGSEP && b[k] != ','; k++);
++ last = b[k];
++ b[k] = '\0';
++ if (flag == '2' || flag == '3'){
++ tmpd = strchr (b, MDFLAGC(Draft)) ? T : NIL;
++ tmpf = strchr (b, MDFLAGC(Flagged)) ? T : NIL;
++ tmpr = strchr (b, MDFLAGC(Replied)) ? T : NIL;
++ tmps = strchr (b, MDFLAGC(Seen)) ? T : NIL;
++ tmpt = strchr (b, MDFLAGC(Trashed)) ? T : NIL;
++ }
++ b[k] = last;
++ b += k;
++ for (; tmp[offset] && tmp[offset] != FLAGSEP; offset++);
++ offset++;
++ break;
++ default: break; /* Should we crash?... Nahhh */
++ }
++ }
++ if(d) *d = tmpd;
++ if(f) *f = tmpf;
++ if(r) *r = tmpr;
++ if(s) *s = tmps;
++ if(t) *t = tmpt;
++ }
++
++ int
++ maildir_message_in_list(char *msgname, struct direct **names,
++ unsigned long bottom, unsigned long top, unsigned long *pos)
++ {
++ unsigned long middle = (bottom + top)/2;
++ int test;
++
++ if (!msgname)
++ return NIL;
++
++ if (pos) *pos = middle;
++
++ if (same_maildir_file(msgname, names[middle]->d_name))
++ return T;
++
++ if (middle == bottom){ /* 0 <= 0 < 1 */
++ int rv = NIL;
++ if (same_maildir_file(msgname, names[middle]->d_name)){
++ rv = T;
++ if (pos) *pos = middle;
++ }
++ else
++ if (same_maildir_file(msgname, names[top]->d_name)){
++ rv = T;
++ if (pos) *pos = top;
++ }
++ return rv;
++ }
++
++ test = comp_maildir_file(msgname, names[middle]->d_name);
++
++ if (top <= bottom)
++ return test ? NIL : T;
++
++ if (test < 0 ) /* bottom < msgname < middle */
++ return maildir_message_in_list(msgname, names, bottom, middle, pos);
++ else if (test > 0) /* middle < msgname < top */
++ return maildir_message_in_list(msgname, names, middle, top, pos);
++ else return T;
++ }
++
++ void
++ maildir_abort(MAILSTREAM *stream)
++ {
++ if (LOCAL){
++ if(LOCAL->candouid)
++ maildir_read_uid(stream, NULL, &stream->uid_validity);
++ if (LOCAL->dir) fs_give ((void **) &LOCAL->dir);
++ if (LOCAL->curdir) fs_give ((void **) &LOCAL->curdir);
++ if (LOCAL->buf) fs_give ((void **) &LOCAL->buf);
++ if(LOCAL->uidtempfile){
++ unlink(LOCAL->uidtempfile);
++ fs_give ((void **) &LOCAL->uidtempfile);
++ }
++ fs_give ((void **) &stream->local);
++ }
++ if (mdfpath) fs_give((void **)&mdfpath);
++ stream->dtb = NIL;
++ }
++
++ int
++ maildir_contains_folder(char *dirname, char *name)
++ {
++ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN];
++ int rv = 0;
++ DIR *dir;
++ struct direct *d;
++
++ maildir_file_path(dirname, tmp2);
++ if(name){
++ strcat(tmp2,"/");
++ strcat(tmp2, name);
++ }
++
++ if (!(dir = opendir (tmp2)))
++ return NIL;
++
++ while ((d = readdir(dir)) != NULL){
++ if (strcmp(d->d_name, ".") && strcmp(d->d_name,"..")
++ && strcmp(d->d_name, MDNAME(Cur))
++ && strcmp(d->d_name, MDNAME(Tmp))
++ && strcmp(d->d_name, MDNAME(New))){
++
++ sprintf(tmp,"%s/%s", tmp2, d->d_name);
++ if(maildir_valid(tmp)){
++ rv++;
++ break;
++ }
++ }
++ }
++ closedir(dir);
++ return rv;
++ }
++
++ int
++ maildir_is_dir(char *dirname, char *name)
++ {
++ char tmp[MAILTMPLEN];
++ struct stat sbuf;
++
++ maildir_file_path(dirname, tmp);
++ if(name){
++ strcat(tmp,"/");
++ strcat(tmp,name);
++ }
++ strcat(tmp,"/");
++ strcat(tmp,MDDIR);
++
++ return ((stat(tmp, &sbuf) == 0) && S_ISREG (sbuf.st_mode)) ? 1 : 0;
++ }
++
++ int
++ maildir_dir_is_empty(char *mailbox)
++ {
++ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN], tmp3[MAILTMPLEN],*s;
++ int rv = 1, courier = IS_COURIER(mailbox);
++ DIR *dir;
++ struct direct *d;
++ struct stat sbuf;
++
++ maildir_file_path(mailbox, tmp2);
++
++ if(courier){
++ strcpy(tmp3, tmp2);
++ if(s = strrchr(tmp2, '/'))
++ *s = '\0';
++ }
++
++ if (!(dir = opendir (tmp2)))
++ return rv;
++
++ if(courier){
++ while((d = readdir(dir)) != NULL){
++ sprintf(tmp,"%s/%s", tmp2, d->d_name);
++ if(!strncmp(tmp, tmp3, strlen(tmp3))
++ && tmp[strlen(tmp3)] == '.'){
++ rv = 0;
++ break;
++ }
++ }
++ }
++ else
++ while ((d = readdir(dir)) != NULL){
++ sprintf(tmp,"%s/%s", tmp2, d->d_name);
++ if (strcmp(d->d_name, ".")
++ && strcmp(d->d_name,"..")
++ && strcmp(d->d_name, MDNAME(Cur))
++ && strcmp(d->d_name, MDNAME(Tmp))
++ && strcmp(d->d_name, MDNAME(New))
++ && strcmp(d->d_name, MDDIR)
++ && strcmp(d->d_name, MDUIDVALIDITY)
++ && !(d->d_name[0] == '.'
++ && stat (tmp,&sbuf) == 0
++ && S_ISREG(sbuf.st_mode))){
++ rv = 0;
++ break;
++ }
++ }
++ closedir(dir);
++ return rv;
++ }
++
++ void
++ maildir_get_file (MAILDIRFILE **mdfile)
++ {
++ MAILDIRFILE *md;
++
++ md = (MAILDIRFILE *) fs_get(sizeof(MAILDIRFILE));
++ memset(md, 0, sizeof(MAILDIRFILE));
++ *mdfile = md;
++ }
++
++ void
++ maildir_free_file (void **mdfile)
++ {
++ MAILDIRFILE *md = (mdfile && *mdfile) ? (MAILDIRFILE *) *mdfile : NULL;
++
++ if (md){
++ if (md->name) fs_give((void **)&md->name);
++ fs_give((void **)&md);
++ }
++ }
++
++ void
++ maildir_free_file_only (void **mdfile)
++ {
++ MAILDIRFILE *md = (mdfile && *mdfile) ? (MAILDIRFILE *) *mdfile : NULL;
++
++ if (md && md->name)
++ fs_give((void **)&md->name);
++ }
++
++ int
++ maildir_any_new_msgs(char *mailbox)
++ {
++ char tmp[MAILTMPLEN];
++ int rv = NIL;
++ DIR *dir;
++ struct direct *d;
++
++ MDFLD(tmp, mailbox, New);
++
++ if (!(dir = opendir (tmp)))
++ return rv;
++
++ while ((d = readdir(dir)) != NULL){
++ if (d->d_name[0] == '.')
++ continue;
++ rv = T;
++ break;
++ }
++ closedir(dir);
++ return rv;
++ }
++
++
++ void
++ maildir_get_date(MAILSTREAM *stream, unsigned long msgno)
++ {
++ MESSAGECACHE *elt;
++ struct tm *t;
++ time_t ti;
++ int i,k;
++
++ elt = mail_elt (stream,msgno);
++ if(elt && elt->year != 0)
++ return;
++ if ((ti = mdfntoul(MDFILE(elt))) > 0L && (t = gmtime(&ti))){
++ i = t->tm_hour * 60 + t->tm_min;
++ k = t->tm_yday;
++ t = localtime(&ti);
++ i = t->tm_hour * 60 + t->tm_min - i;
++ if((k = t->tm_yday - k) != 0)
++ i += ((k < 0) == (abs (k) == 1)) ? -24*60 : 24*60;
++ k = abs (i);
++ elt->hours = t->tm_hour;
++ elt->minutes = t->tm_min;
++ elt->seconds = t->tm_sec;
++ elt->day = t->tm_mday; elt->month = t->tm_mon + 1;
++ elt->year = t->tm_year - (BASEYEAR - 1900);
++ elt->zoccident = (k == i) ? 0 : 1;
++ elt->zhours = k/60;
++ elt->zminutes = k % 60;
++ }
++ }
++
++ /* Support for Courier Style directories
++ When this code is complete there will be two types of support, which
++ will be configurable. The problem is the following: In Courier style
++ folder structure, a "folder" may have a subfolder called
++ "folder.subfolder", which is not natural in the file system in the
++ sense that I can not stat for "folder.subfolder" wihtout knowing what
++ "subfolder" is. It needs to be guessed. Because of this I need to look
++ in the list of folders if there is a folder with a name
++ "folder.subfolder", before I can say if the folder is dual or not. One
++ can avoid this annoyance if one ignores the problem by declaring that
++ every folder is dual. I will however code as the default the more
++ complicated idea of scaning the containing directory each time it is
++ modified and search for subfolders, and list the entries it found.
++ */
++
++ int courier_dir_select (const struct direct *name)
++ {
++ return name->d_name[0] == '.' && (strlen(name->d_name) > 2
++ || (strlen(name->d_name) == 2 && name->d_name[1] != '.'));
++ }
++
++ int courier_dir_sort (const void *d1, const void *d2)
++ {
++ const struct direct *e1 = *(const struct direct **) d1;
++ const struct direct *e2 = *(const struct direct **) d2;
++
++ return strcmp((char *) e1->d_name, (char *) e2->d_name);
++ }
++
++ void courier_free_cdir (COURIER_S **cdir)
++ {
++ int i;
++
++ if (!*cdir)
++ return;
++
++ if ((*cdir)->path) fs_give((void **)&((*cdir)->path));
++ for (i = 0; i < (*cdir)->total; i++)
++ if((*cdir)->data[i]->name) fs_give((void **)&((*cdir)->data[i]->name));
++ fs_give((void **)&((*cdir)->data));
++ fs_give((void **)&(*cdir));
++ }
++
++ COURIER_S *courier_get_cdir (int total)
++ {
++ COURIER_S *cdir;
++
++ cdir = (COURIER_S *)fs_get(sizeof(COURIER_S));
++ memset(cdir, 0, sizeof(COURIER_S));
++ cdir->data = (COURIERLOCAL **) fs_get(total*sizeof(COURIERLOCAL *));
++ memset(cdir->data, 0, sizeof(COURIERLOCAL *));
++ cdir->total = total;
++ return cdir;
++ }
++
++ int courier_search_list(COURIERLOCAL **data, char *name, int first, int last)
++ {
++ int try = (first + last)/2;
++
++ if(!strstr(data[try]->name, name)){
++ if(first == try) /* first == last || first + 1 == last */
++ return strstr(data[last]->name, name) ? 1 : 0;
++ if(strcmp(data[try]->name, name) < 0) /*data[try] < name < data[end] */
++ return courier_search_list(data, name, try, last);
++ else /* data[begin] < name < data[try] */
++ return courier_search_list(data, name, first, try);
++ }
++ return 1;
++ }
++
++ /* Lists all directories that are subdirectories of a given directory */
++
++ COURIER_S *courier_list_dir(char *curdir)
++ {
++ struct direct **names = NIL;
++ struct stat sbuf;
++ unsigned long ndir;
++ COURIER_S *cdir = NULL;
++ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN], pathname[MAILTMPLEN],
++ realname[MAILTMPLEN];
++ int i, j, scand, td;
++
++ /* There are two cases, either curdir is
++ #mc/INBOX. #mc/INBOX.foo
++ or
++ #mc/Maildir/. #mc/Maildir/.foo
++ */
++ strcpy(tmp,curdir + 4);
++ if(!strncmp(ucase(tmp), "INBOX", 5))
++ strcpy(tmp, "#mc/INBOX.");
++ else{
++ strcpy(tmp, curdir);
++ for (i = strlen(tmp) - 1; tmp[i] && tmp[i] != '/'; i--);
++ tmp[i+2] = '\0'; /* keep the last "." intact */
++ }
++ maildir_file_path(tmp, realname);
++ maildir_scandir (realname, &names, &ndir, &scand, COURIER);
++
++ if (scand > 0){
++ cdir = courier_get_cdir(ndir);
++ cdir->path = cpystr(realname);
++ for(i = 0, j = 0; i < ndir; i++){
++ td = realname[strlen(realname) - 1] == '.'
++ && *names[i]->d_name == '.';
++ sprintf(tmp2,"%s%s", tmp, names[i]->d_name+1);
++ sprintf(pathname,"%s%s", realname, names[i]->d_name + td);
++ if(stat(pathname, &sbuf) == 0 && S_ISDIR(sbuf.st_mode)){
++ cdir->data[j] = (COURIERLOCAL *) fs_get(sizeof(COURIERLOCAL));
++ cdir->data[j++]->name = cpystr(tmp2);
++ }
++ fs_give((void **)&names[i]);
++ }
++ cdir->total = j;
++ if(cdir->total == 0)
++ courier_free_cdir(&cdir);
++ }
++ if(names)
++ fs_give((void **) &names);
++ return cdir;
++ }
++
++ void
++ courier_list_info(COURIER_S **cdirp, char *data, int i)
++ {
++ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL);
++ COURIER_S *cdir = *cdirp;
++
++ if(maildir_valid(cdir->data[i]->name)){
++ if(courier_search_list(cdir->data, data, 0, cdir->total - 1))
++ cdir->data[i]->attribute = LATT_HASCHILDREN;
++ else
++ cdir->data[i]->attribute = (style == COURIER)
++ ? LATT_HASNOCHILDREN : LATT_NOINFERIORS;
++ }
++ else
++ cdir->data[i]->attribute = LATT_NOSELECT;
++ cdir->data[i]->attribute += maildir_any_new_msgs(cdir->data[i]->name)
++ ? LATT_MARKED : LATT_UNMARKED;
++ }
++
++ /* UID Support */
++ /* Yes, I know I procastinated a lot about this, but here it is finally */
++
++ unsigned int
++ maildir_can_assign_uid (MAILSTREAM *stream)
++ {
++ unsigned int rv = 0;
++ int createtemp;
++ unsigned long t;
++ char tmp[MAILTMPLEN], *s;
++ DIR *dir;
++ struct direct *d;
++
++ if(!stream || stream->rdonly
++ || !LOCAL || !LOCAL->dir || !(dir = opendir(LOCAL->dir)))
++ return rv;
++
++ sprintf(tmp, "%s.%d", MDUIDTEMP, mypid);
++ while ((d = readdir(dir)) != NULL){
++ if(!strncmp(d->d_name, tmp, strlen(tmp))
++ || !strncmp(d->d_name, MDUIDTEMP, strlen(MDUIDTEMP)))
++ break;
++ }
++ rv = d ? !strncmp(d->d_name, tmp, strlen(tmp)) : 1;
++ createtemp = d ? 0 : 1;
++ if (d && rv == 0){ /* is there a temp file that is not ours? */
++ s = strrchr(d->d_name, '.');
++ t = strtoul(s+1, &s, 10);
++ if(s != NULL && *s != '\0')
++ createtemp++;
++ if(time(0) > t + MAXTEMPUID){
++ createtemp++;
++ sprintf(tmp,"%s/%s", LOCAL->dir, d->d_name);
++ unlink(tmp);
++ }
++ }
++ closedir(dir);
++ if(createtemp){
++ FILE *fp;
++ sprintf(tmp,"%s/%s.%d.%lu", LOCAL->dir, MDUIDTEMP, mypid, time(0));
++ if(fp = fopen(tmp, "w")){
++ fclose(fp);
++ if(LOCAL->uidtempfile)
++ fs_give((void **)&LOCAL->uidtempfile);
++ LOCAL->uidtempfile = cpystr(tmp);
++ rv++;
++ }
++ }
++ return rv;
++ }
++
++ void
++ maildir_read_uid(MAILSTREAM *stream, unsigned long *uid_last,
++ unsigned long *uid_validity)
++ {
++ int createuid, deleteuid = 0;
++ char tmp[MAILTMPLEN], *s = NULL;
++ DIR *dir;
++ struct direct *d;
++
++ if(uid_last) *uid_last = 0L;
++ if(uid_last && uid_validity) *uid_validity = time(0);
++ if(!stream || !LOCAL || !LOCAL->dir || !(dir = opendir(LOCAL->dir)))
++ return;
++
++ while ((d = readdir(dir)) != NULL){
++ if(!strncmp(d->d_name, MDUIDLAST, strlen(MDUIDLAST)))
++ break;
++ }
++ createuid = d == NULL ? 1 : 0;
++ if(uid_last == NULL)
++ deleteuid++;
++ if(d){
++ if(uid_last){
++ s = d->d_name + strlen(MDUIDLAST) + 1;
++ *uid_last = strtoul(s, &s, 10);
++ if(!s || *s != '.'){
++ deleteuid++;
++ createuid++;
++ *uid_last = 0L;
++ }
++ }
++ if(s && *s == '.'){
++ if(uid_validity){
++ s++;
++ *uid_validity = strtoul(s, &s, 10);
++ if(s && *s != '\0'){
++ *uid_validity = time(0);
++ deleteuid++;
++ createuid++;
++ }
++ }
++ }
++ else{
++ deleteuid++;
++ createuid++;
++ }
++ }
++ if(deleteuid){
++ sprintf(tmp,"%s/%s", LOCAL->dir, d->d_name);
++ unlink(tmp);
++ }
++ if(createuid)
++ maildir_write_uid(stream, (uid_last ? *uid_last : stream->uid_last),
++ uid_validity ? *uid_validity : time(0));
++ closedir(dir);
++ }
++
++ void
++ maildir_write_uid(MAILSTREAM *stream, unsigned long uid_last,
++ unsigned long uid_validity)
++ {
++ char tmp[MAILTMPLEN];
++ FILE *fp;
++
++ if(!stream || stream->rdonly || !LOCAL || !LOCAL->dir)
++ return;
++
++ sprintf(tmp,"%s/%s.%010lu.%010lu", LOCAL->dir, MDUIDLAST,
++ uid_last, uid_validity);
++ if(fp = fopen(tmp, "w"))
++ fclose(fp);
++ }
++
++ unsigned long
++ maildir_get_uid(char *name)
++ {
++ char *s;
++ unsigned long rv = 0L;
++
++ if(!name || (s = strstr(name,MDUIDSEP)) == NULL)
++ return rv;
++
++ s += strlen(MDUIDSEP);
++ rv = strtoul(s, NULL, 10);
++ return rv;
++ }
++
++
++ void
++ maildir_delete_uid(MAILSTREAM *stream, unsigned long msgno)
++ {
++ char old[MAILTMPLEN], new[MAILTMPLEN], *s, *t;
++ MESSAGECACHE *elt;
++
++ elt = mail_elt(stream, msgno);
++ if(!stream || !elt || !elt->private.spare.ptr || !LOCAL || !LOCAL->dir)
++ return;
++
++ sprintf(old, "%s/%s/%s", LOCAL->dir, MDNAME(Cur), MDFILE(elt));
++ t = MDFILE(elt);
++ if(s = strstr(MDFILE(elt), MDUIDSEP)){
++ *s = '\0';
++ s += strlen(MDUIDSEP);
++ strtoul(s, &s, 10);
++ sprintf(new, "%s/%s/%s%s", LOCAL->dir, MDNAME(Cur), t, s);
++ if(rename(old, new) == 0){
++ maildir_free_file_only ((void **)&elt->private.spare.ptr);
++ s = strrchr(new, '/');
++ MDFILE(elt) = cpystr(s+1);
++ }
++ elt->private.uid = 0L;
++ }
++ }
++
++ void
++ maildir_assign_uid(MAILSTREAM *stream, unsigned long msgno, unsigned long uid)
++ {
++ int createuid, deleteuid = 0;
++ char old[MAILTMPLEN], new[MAILTMPLEN], *s, *t;
++ MESSAGECACHE *elt;
++
++ elt = mail_elt(stream, msgno);
++ if(!stream || !elt || !elt->private.spare.ptr || !LOCAL || !LOCAL->dir)
++ return;
++
++ maildir_delete_uid(stream, msgno);
++ sprintf(old, "%s/%s/%s", LOCAL->dir, MDNAME(Cur), MDFILE(elt));
++ t = MDFILE(elt);
++ if((s = strrchr(MDFILE(elt),FLAGSEP)) != NULL){
++ *s++ = '\0';
++ sprintf(new, "%s/%s/%s%s%lu%c%s",
++ LOCAL->dir, MDNAME(Cur), t, MDUIDSEP, uid, FLAGSEP, s);
++ if(rename(old, new) == 0){
++ maildir_free_file_only ((void **)&elt->private.spare.ptr);
++ s = strrchr(new, '/');
++ MDFILE(elt) = cpystr(s+1);
++ stream->uid_validity = time(0);
++ }
++ elt->private.uid = uid;
++ }
++ }
++
++ void
++ maildir_uid_renew_tempfile(MAILSTREAM *stream)
++ {
++ char tmp[MAILTMPLEN];
++
++ if(!stream || stream->rdonly
++ || !LOCAL || !LOCAL->candouid || !LOCAL->dir || !LOCAL->uidtempfile)
++ return;
++
++ sprintf(tmp,"%s/%s.%d.%lu", LOCAL->dir, MDUIDTEMP, mypid, time(0));
++ if(rename(LOCAL->uidtempfile, tmp) == 0){
++ fs_give((void **)&LOCAL->uidtempfile);
++ LOCAL->uidtempfile = cpystr(tmp);
++ }
++ }
+diff -rc alpine-2.00/imap/src/osdep/unix/maildir.h alpine-2.00.maildir/imap/src/osdep/unix/maildir.h
+*** alpine-2.00/imap/src/osdep/unix/maildir.h 2011-01-24 19:38:50.000000000 -0600
+--- alpine-2.00.maildir/imap/src/osdep/unix/maildir.h 2011-01-15 19:11:36.000000000 -0600
+***************
+*** 0 ****
+--- 1,226 ----
++ /*
++ * A few definitions that try to make this module portable to other
++ * platforms (e.g. Cygwin). This module is based on the information from
++ * http://cr.yp.to/proto/maildir.html
++ */
++
++ /* First we deal with the separator character */
++ #ifndef FLAGSEP
++ #define FLAGSEP ':'
++ #endif
++ #define SIZESEP ','
++
++ const char sep1[] = {FLAGSEP, '1', ',', '\0'}; /* experimental semantics*/
++ const char sep2[] = {FLAGSEP, '2', ',', '\0'}; /* Flags Information */
++ const char sep3[] = {FLAGSEP, '3', ',', '\0'}; /* Grrrr.... */
++
++ const char *sep[] = { sep1, sep2, sep3, NULL};
++
++ #define MDSEP(i) sep[((i) - 1)]
++
++ /* Now we deal with flags. Woohoo! */
++ typedef enum {Draft, Flagged, Passed, Replied, Seen, Trashed,
++ EmptyFlag, EndFlags} MdFlagNamesType;
++ const int mdimapflags[] = {Draft, Flagged, Replied, Seen, Trashed, EmptyFlag, EndFlags};
++ const int mdkwdflags[] = {Passed, EmptyFlag, EndFlags};
++
++ /* this array lists the codes for mdflgnms (maildir flag names) above */
++ const char *mdflags[] = { "D", "F", "P", "R", "S", "T", "", NULL};
++ /* and as characters too */
++ const char cmdflags[] = { 'D', 'F', 'P', 'R', 'S', 'T', '0', '\0'};
++
++ /* MDFLAG(Seen, elt->seen) */
++ #define MDFLAG(i,j) mdflags[j ? (i) : EmptyFlag]
++ /* MDFLAGC(Seen) */
++ #define MDFLAGC(i) cmdflags[(i)]
++
++ /* Now we deal with the directory structure */
++ typedef enum {Cur, Tmp, New, EndDir} DirNamesType;
++ char *mdstruct[] = {"cur", "tmp", "new", NULL};
++ #define MDNAME(i) mdstruct[(i)]
++ #define MDFLD(tmp, dir, i) sprintf((tmp),"%s/%s", (dir), mdstruct[(i)])
++ #define MSGPATH(tmp, dir, msg,i) sprintf((tmp),"%s/%s/%s", (dir), mdstruct[(i)],(msg))
++
++ /* Files associated to a maildir directory */
++
++ #define MDUIDVALIDITY ".uidvalidity" /* support for old maildirs */
++ #define MDDIR ".mdir" /* this folder is a directory */
++ #define MDUIDLAST ".uidlast" /* last assigned uid */
++ #define MDUIDTEMP ".uidtemp" /* We assign uid's no one else */
++
++
++
++ /* Support of Courier Structure */
++ #define CCLIENT 0
++ #define COURIER 1
++ #define IS_CCLIENT(t) \
++ (((t) && (t)[0] == '#' && ((t)[1] == 'm' || (t)[1] == 'M')\
++ && ((t)[2] == 'd' || (t)[2] == 'D')\
++ && (t)[3] == '/' && (t)[4] != '\0') ? 1 : 0)
++
++ #define IS_COURIER(t) \
++ (((t) && (t)[0] == '#' && ((t)[1] == 'm' || (t)[1] == 'M')\
++ && ((t)[2] == 'c' || (t)[2] == 'C')\
++ && (t)[3] == '/' && (t)[4] != '\0') ? 1 : 0)
++ #define MDPREFIX(s) ((s) ? "#mc/" : "#md/")
++ #define MDSEPARATOR(s) ((s) ? '.' : '/')
++
++ /* UID Support */
++
++ #define MAXTEMPUID (unsigned long) 180L
++ const char mduid[] = {',','u','=','\0'};
++ #define MDUIDSEP mduid
++
++
++ /* Now we deal with messages filenames */
++ char mdlocaldomain[MAILTMPLEN+1] = {'\0'};
++ pid_t mypid = (pid_t) 0;
++ static char *mdfpath = NULL;
++ static char myMdInboxDir[50] = { '\0' };/* Location of the Maildir INBOX */
++ static long CourierStyle = CCLIENT;
++
++ #define CHUNK 16384 /* from unix.h */
++
++ typedef struct courier_local {
++ char *name; /* name of directory/folder */
++ int attribute; /* attributes (children/marked/etc) */
++ } COURIERLOCAL;
++
++ typedef struct courier {
++ char *path; /* Path to collection */
++ time_t scantime; /* time at which information was generated */
++ int total; /* total number of elements in data */
++ COURIERLOCAL **data;
++ } COURIER_S;
++
++ /* In gdb this is the *(struct maildir_local *)stream->local structure */
++ typedef struct maildir_local {
++ unsigned int dirty : 1; /* diskcopy needs updating */
++ unsigned int courier : 1; /* It is Courier style file system */
++ unsigned int link : 1; /* There is a symbolic link */
++ unsigned int candouid; /* we can assign uids and no one else */
++ char *uidtempfile; /* path to uid temp file */
++ int fd; /* fd of open message */
++ char *dir; /* mail directory name */
++ char *curdir; /* mail directory name/cur */
++ unsigned char *buf; /* temporary buffer */
++ unsigned long buflen; /* current size of temporary buffer */
++ time_t scantime; /* last time directory scanned */
++ } MAILDIRLOCAL;
++
++ /* Convenient access to local data */
++ #define LOCAL ((MAILDIRLOCAL *) stream->local)
++
++ typedef struct maildir_file_info {
++ char *name; /* name of the file */
++ DirNamesType loc; /* location of this file */
++ unsigned long pos; /* place in list where this file is listed */
++ off_t size; /* size in bytes, on disk */
++ time_t atime; /* last access time */
++ time_t mtime; /* last modified time */
++ time_t ctime; /* last changed time */
++ } MAILDIRFILE;
++
++ #define MDFILE(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->name)
++ #define MDLOC(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->loc)
++ #define MDPOS(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->pos)
++ #define MDSIZE(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->size)
++ #define MDATIME(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->atime)
++ #define MDMTIME(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->mtime)
++ #define MDCTIME(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->ctime)
++
++ /* Function prototypes */
++
++ DRIVER *maildir_valid (char *name);
++ MAILSTREAM *maildir_open (MAILSTREAM *stream);
++ void maildir_close (MAILSTREAM *stream, long options);
++ long maildir_ping (MAILSTREAM *stream);
++ void maildir_check (MAILSTREAM *stream);
++ long maildir_text (MAILSTREAM *stream,unsigned long msgno,STRING *bs,long flags);
++ char *maildir_header (MAILSTREAM *stream,unsigned long msgno,
++ unsigned long *length, long flags);
++ void maildir_list (MAILSTREAM *stream,char *ref,char *pat);
++ void *maildir_parameters (long function,void *value);
++ int maildir_create_folder (char *mailbox);
++ long maildir_create (MAILSTREAM *stream,char *mailbox);
++ void maildir_flagmsg (MAILSTREAM *stream,MESSAGECACHE *elt); /*check */
++ long maildir_expunge (MAILSTREAM *stream, char *sequence, long options);
++ long maildir_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options);
++ long maildir_append (MAILSTREAM *stream,char *mailbox, append_t af, void *data);
++ long maildir_delete (MAILSTREAM *stream,char *mailbox);
++ long maildir_rename (MAILSTREAM *stream,char *old,char *new);
++ long maildir_sub (MAILSTREAM *stream,char *mailbox);
++ long maildir_unsub (MAILSTREAM *stream,char *mailbox);
++ void maildir_lsub (MAILSTREAM *stream,char *ref,char *pat);
++ void courier_list (MAILSTREAM *stream,char *ref, char *pat);
++
++ /* utility functions */
++ void courier_realname (char *name, char *realname);
++ long maildir_dirfmttest (char *name);
++ char *maildir_file (char *dst,char *name);
++ int maildir_select (const struct direct *name);
++ int maildir_namesort (const void *d1, const void *d2);
++ unsigned long antoul (char *seed);
++ unsigned long mdfntoul (char *name);
++ int courier_dir_select (const struct direct *name);
++ int courier_dir_sort (const void *d1, const void *d2);
++ long maildir_canonicalize (char *pattern,char *ref,char *pat);
++ void maildir_list_work (MAILSTREAM *stream,char *subdir,char *pat,long level);
++ void courier_list_work (MAILSTREAM *stream,char *subdir,char *pat,long level);
++ int maildir_file_path(char *name, char *tmp);
++ int maildir_valid_name (char *name);
++ int maildir_valid_dir (char *name);
++ int is_valid_maildir (char **name);
++ int maildir_message_exists(MAILSTREAM *stream,char *name, char *tmp);
++ char *maildir_remove_root(char *name);
++ char *maildir_text_work (MAILSTREAM *stream,MESSAGECACHE *elt, unsigned long *length,long flags);
++ unsigned long maildir_parse_message(MAILSTREAM *stream, unsigned long msgno,
++ DirNamesType dirtype);
++ int maildir_eliminate_duplicate (char *name, struct direct ***flist,
++ unsigned long *nfiles);
++ int maildir_doscandir (char *name, struct direct ***flist, int flag);
++ unsigned long maildir_scandir (char *name, struct direct ***flist,
++ unsigned long *nfiles, int *scand, int flag);
++ void maildir_parse_folder (MAILSTREAM *stream, int full);
++ void md_domain_name (void);
++ char *myrootdir (char *name);
++ char *mdirpath (void);
++ int maildir_initial_check (MAILSTREAM *stream, DirNamesType dirtype);
++ unsigned long maildir_parse_dir(MAILSTREAM *stream, unsigned long nmsgs,
++ DirNamesType dirtype, struct direct **names, unsigned long nfiles, int full);
++ int same_maildir_file(char *name1, char *name2);
++ int comp_maildir_file(char *name1, char *name2);
++ int maildir_message_in_list(char *msgname, struct direct **names,
++ unsigned long bottom, unsigned long top, unsigned long *pos);
++ void maildir_getflag(char *name, int *d, int *f, int *r ,int *s, int *t);
++ int maildir_update_elt_maildirp(MAILSTREAM *stream, unsigned long msgno);
++ void maildir_abort (MAILSTREAM *stream);
++ int maildir_contains_folder(char *dirname, char *name);
++ int maildir_is_dir(char *dirname, char *name);
++ int maildir_dir_is_empty(char *mailbox);
++ int maildir_create_work (char *mailbox, int loop);
++ void maildir_get_file (MAILDIRFILE **mdfile);
++ void maildir_free_file (void **mdfile);
++ void maildir_free_file_only (void **mdfile);
++ int maildir_any_new_msgs(char *mailbox);
++ void maildir_get_date(MAILSTREAM *stream, unsigned long msgno);
++ void maildir_fast (MAILSTREAM *stream,char *sequence,long flags);
++
++ /* Courier server support */
++ void courier_free_cdir (COURIER_S **cdir);
++ COURIER_S *courier_get_cdir (int total);
++ int courier_search_list(COURIERLOCAL **data, char *name, int first, int last);
++ COURIER_S *courier_list_dir(char *curdir);
++ void courier_list_info(COURIER_S **cdirp, char *data, int i);
++
++ /* UID Support */
++ unsigned int maildir_can_assign_uid (MAILSTREAM *stream);
++ void maildir_read_uid(MAILSTREAM *stream, unsigned long *uid_last,
++ unsigned long *uid_validity);
++ void maildir_write_uid(MAILSTREAM *stream, unsigned long uid_last,
++ unsigned long uid_validity);
++ unsigned long maildir_get_uid(char *name);
++ void maildir_delete_uid(MAILSTREAM *stream, unsigned long msgno);
++ void maildir_assign_uid(MAILSTREAM *stream, unsigned long msgno, unsigned long uid);
++ void maildir_uid_renew_tempfile(MAILSTREAM *stream);
++
+diff -rc alpine-2.00/imap/src/osdep/unix/Makefile alpine-2.00.maildir/imap/src/osdep/unix/Makefile
+*** alpine-2.00/imap/src/osdep/unix/Makefile 2008-06-04 13:18:34.000000000 -0500
+--- alpine-2.00.maildir/imap/src/osdep/unix/Makefile 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 144,150 ****
+ # However, mh needs to be before any sysinbox formats (such as mmdf or unix)
+ # since otherwise INBOX won't work correctly when mh_allow_inbox is set.
+ #
+! DEFAULTDRIVERS=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
+ CHUNKSIZE=65536
+
+ # Normally no need to change any of these
+--- 144,150 ----
+ # However, mh needs to be before any sysinbox formats (such as mmdf or unix)
+ # since otherwise INBOX won't work correctly when mh_allow_inbox is set.
+ #
+! DEFAULTDRIVERS=maildir courier imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
+ CHUNKSIZE=65536
+
+ # Normally no need to change any of these
+***************
+*** 153,159 ****
+ BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
+ dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
+ rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
+! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
+ CFLAGS=-g
+
+ CAT=cat
+--- 153,159 ----
+ BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
+ dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
+ rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
+! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o maildir.o
+ CFLAGS=-g
+
+ CAT=cat
+***************
+*** 282,288 ****
+
+ cyg: # Cygwin - note that most local file drivers don't work!!
+ $(BUILD) `$(CAT) SPECIALS` OS=$@ \
+! DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \
+ SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
+ SPOOLDIR=/var \
+ ACTIVEFILE=/usr/local/news/lib/active \
+--- 282,288 ----
+
+ cyg: # Cygwin - note that most local file drivers don't work!!
+ $(BUILD) `$(CAT) SPECIALS` OS=$@ \
+! DEFAULTDRIVERS="imap nntp pop3 mbx unix maildir phile" \
+ SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
+ SPOOLDIR=/var \
+ ACTIVEFILE=/usr/local/news/lib/active \
+***************
+*** 892,898 ****
+ unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
+ utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
+ utf8aux.o: mail.h misc.h osdep.h utf8.h
+!
+
+ # OS-dependent
+
+--- 892,898 ----
+ unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
+ utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
+ utf8aux.o: mail.h misc.h osdep.h utf8.h
+! maildir.o: mail.h misc.h osdep.h maildir.h dummy.h
+
+ # OS-dependent
+
+diff -rc alpine-2.00/imap/src/osdep/unix/os_cyg.h alpine-2.00.maildir/imap/src/osdep/unix/os_cyg.h
+*** alpine-2.00/imap/src/osdep/unix/os_cyg.h 2008-06-04 13:18:34.000000000 -0500
+--- alpine-2.00.maildir/imap/src/osdep/unix/os_cyg.h 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 47,52 ****
+--- 47,53 ----
+ #define setpgrp setpgid
+
+ #define SYSTEMUID 18 /* Cygwin returns this for SYSTEM */
++ #define FLAGSEP ';'
+ #define geteuid Geteuid
+ uid_t Geteuid (void);
+
+diff -rc alpine-2.00/pith/conf.c alpine-2.00.maildir/pith/conf.c
+*** alpine-2.00/pith/conf.c 2008-08-22 19:07:05.000000000 -0500
+--- alpine-2.00.maildir/pith/conf.c 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 427,432 ****
+--- 427,435 ----
+
+ CONF_TXT_T cf_text_newsrc_path[] = "Full path and name of NEWSRC file";
+
++ #ifndef _WINDOWS
++ CONF_TXT_T cf_text_maildir_location[] = "Location relative to your HOME directory of the directory where your INBOX\n# for the maildir format is located. Default value is \"Maildir\". If your\n# inbox is located at \"~/Maildir\" you do not need to change this value.\n# A common value is also \".maildir\"";
++ #endif
+
+ /*----------------------------------------------------------------------
+ These are the variables that control a number of pine functions. They
+***************
+*** 627,632 ****
+--- 630,639 ----
+ NULL, cf_text_news_active},
+ {"news-spool-directory", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
+ NULL, cf_text_news_spooldir},
++ #ifndef _WINDOWS
++ {"maildir-location", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
++ "Maildir Location", cf_text_maildir_location},
++ #endif
+ {"upload-command", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
+ NULL, cf_text_upload_cmd},
+ {"upload-command-prefix", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
+***************
+*** 2216,2221 ****
+--- 2223,2234 ----
+ mail_parameters(NULL, SET_NEWSSPOOL,
+ (void *)VAR_NEWS_SPOOL_DIR);
+
++ #ifndef _WINDOWS
++ set_current_val(&vars[V_MAILDIR_LOCATION], TRUE, TRUE);
++ if(VAR_MAILDIR_LOCATION && VAR_MAILDIR_LOCATION[0])
++ mail_parameters(NULL, SET_MDINBOXPATH, (void *)VAR_MAILDIR_LOCATION);
++ #endif
++
+ /* guarantee a save default */
+ set_current_val(&vars[V_DEFAULT_SAVE_FOLDER], TRUE, TRUE);
+ if(!VAR_DEFAULT_SAVE_FOLDER || !VAR_DEFAULT_SAVE_FOLDER[0])
+***************
+*** 2832,2837 ****
+--- 2845,2854 ----
+ F_SORT_DEFAULT_SAVE_ALPHA, h_config_sort_save_alpha, PREF_FLDR, 0},
+ {"vertical-folder-list", "Use Vertical Folder List",
+ F_VERTICAL_FOLDER_LIST, h_config_vertical_list, PREF_FLDR, 0},
++ #ifndef _WINDOWS
++ {"use-courier-folder-list", "Courier Style Folder List",
++ F_COURIER_FOLDER_LIST, h_config_courier_list, PREF_FLDR, 0},
++ #endif
+
+ /* Addr book */
+ {"combined-addrbook-display", "Combined Address Book Display",
+***************
+*** 6895,6900 ****
+--- 6912,6923 ----
+
+ break;
+
++ #ifndef _WINDOWS
++ case F_COURIER_FOLDER_LIST:
++ mail_parameters(NULL,SET_COURIERSTYLE,(void *)(F_ON(f->id ,ps)? 1 : 0));
++ break; /* COURIER == 1, CCLIENT == 0, see maildir.h */
++ #endif
++
+ case F_COLOR_LINE_IMPORTANT :
+ case F_DATES_TO_LOCAL :
+ clear_index_cache(ps->mail_stream, 0);
+***************
+*** 7676,7681 ****
+--- 7699,7708 ----
+ return(h_config_newmailwidth);
+ case V_NEWSRC_PATH :
+ return(h_config_newsrc_path);
++ #ifndef _WINDOWS
++ case V_MAILDIR_LOCATION :
++ return(h_config_maildir_location);
++ #endif
+ case V_BROWSER :
+ return(h_config_browser);
+ #if defined(DOS) || defined(OS2)
+diff -rc alpine-2.00/pith/conf.h alpine-2.00.maildir/pith/conf.h
+*** alpine-2.00/pith/conf.h 2008-08-19 19:27:11.000000000 -0500
+--- alpine-2.00.maildir/pith/conf.h 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 249,254 ****
+--- 249,258 ----
+ #define GLO_NEWS_ACTIVE_PATH vars[V_NEWS_ACTIVE_PATH].global_val.p
+ #define VAR_NEWS_SPOOL_DIR vars[V_NEWS_SPOOL_DIR].current_val.p
+ #define GLO_NEWS_SPOOL_DIR vars[V_NEWS_SPOOL_DIR].global_val.p
++ #ifndef _WINDOWS
++ #define VAR_MAILDIR_LOCATION vars[V_MAILDIR_LOCATION].current_val.p
++ #define GLO_MAILDIR_LOCATION vars[V_MAILDIR_LOCATION].global_val.p
++ #endif
+ #define VAR_DISABLE_DRIVERS vars[V_DISABLE_DRIVERS].current_val.l
+ #define VAR_DISABLE_AUTHS vars[V_DISABLE_AUTHS].current_val.l
+ #define VAR_REMOTE_ABOOK_METADATA vars[V_REMOTE_ABOOK_METADATA].current_val.p
+diff -rc alpine-2.00/pith/conftype.h alpine-2.00.maildir/pith/conftype.h
+*** alpine-2.00/pith/conftype.h 2008-08-19 19:27:11.000000000 -0500
+--- alpine-2.00.maildir/pith/conftype.h 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 114,119 ****
+--- 114,122 ----
+ , V_NEWSRC_PATH
+ , V_NEWS_ACTIVE_PATH
+ , V_NEWS_SPOOL_DIR
++ #ifndef _WINDOWS
++ , V_MAILDIR_LOCATION
++ #endif
+ , V_UPLOAD_CMD
+ , V_UPLOAD_CMD_PREFIX
+ , V_DOWNLOAD_CMD
+***************
+*** 380,385 ****
+--- 383,391 ----
+ F_PASS_C1_CONTROL_CHARS,
+ F_SINGLE_FOLDER_LIST,
+ F_VERTICAL_FOLDER_LIST,
++ #ifndef _WINDOWS
++ F_COURIER_FOLDER_LIST,
++ #endif
+ F_TAB_CHK_RECENT,
+ F_AUTO_REPLY_TO,
+ F_VERBOSE_POST,
+diff -rc alpine-2.00/pith/init.c alpine-2.00.maildir/pith/init.c
+*** alpine-2.00/pith/init.c 2007-08-16 17:25:10.000000000 -0500
+--- alpine-2.00.maildir/pith/init.c 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 407,412 ****
+--- 407,415 ----
+ && stricmp(filename, folder_base)){
+ #else
+ if(strncmp(filename, folder_base, folder_base_len) == 0
++ #ifndef _WINDOWS
++ && filename[folder_base_len] != list_cntxt->dir->delim
++ #endif
+ && strcmp(filename, folder_base)){
+ #endif
+ #endif
+diff -rc alpine-2.00/pith/pattern.c alpine-2.00.maildir/pith/pattern.c
+*** alpine-2.00/pith/pattern.c 2008-07-14 13:01:54.000000000 -0500
+--- alpine-2.00.maildir/pith/pattern.c 2011-01-24 19:38:41.000000000 -0600
+***************
+*** 5482,5487 ****
+--- 5482,5496 ----
+ break;
+
+ case '#':
++ #ifndef _WINDOWS
++ if(!struncmp(patfolder, "#md/", 4)
++ || !struncmp(patfolder, "#mc/", 4)){
++ maildir_file_path(patfolder, tmp1);
++ if(!strcmp(patfolder, stream->mailbox))
++ match++;
++ break;
++ }
++ #endif
+ if(!strcmp(patfolder, stream->mailbox))
+ match++;
+
+***************
+*** 7894,7900 ****
+ int we_cancel = 0, width;
+ CONTEXT_S *save_context = NULL;
+ char buf[MAX_SCREEN_COLS+1], sbuf[MAX_SCREEN_COLS+1];
+! char *save_ref = NULL;
+ #define FILTMSG_MAX 30
+
+ if(!stream)
+--- 7903,7909 ----
+ int we_cancel = 0, width;
+ CONTEXT_S *save_context = NULL;
+ char buf[MAX_SCREEN_COLS+1], sbuf[MAX_SCREEN_COLS+1];
+! char *save_ref = NULL, *save_dstfldr = NULL, *save_dstfldr2 = NULL;
+ #define FILTMSG_MAX 30
+
+ if(!stream)
+***************
+*** 7928,7933 ****
+--- 7937,7952 ----
+ if(F_OFF(F_QUELL_FILTER_MSGS, ps_global))
+ we_cancel = busy_cue(buf, NULL, 0);
+
++ #ifndef _WINDOWS
++ if(!struncmp(dstfldr, "#md/", 4) || !struncmp(dstfldr, "#mc/", 4)){
++ char tmp1[MAILTMPLEN];
++ maildir_file_path(dstfldr, tmp1);
++ save_dstfldr2 = dstfldr;
++ save_dstfldr = cpystr(tmp1);
++ dstfldr = save_dstfldr;
++ }
++ #endif
++
+ if(!is_absolute_path(dstfldr)
+ && !(save_context = default_save_context(ps_global->context_list)))
+ save_context = ps_global->context_list;
+***************
+*** 7991,7996 ****
+--- 8010,8020 ----
+ if(we_cancel)
+ cancel_busy_cue(buf[0] ? 0 : -1);
+
++ if(save_dstfldr){
++ fs_give((void **)&save_dstfldr);
++ dstfldr = save_dstfldr2;
++ }
++
+ return(buf[0] != '\0');
+ }
+
+diff -rc alpine-2.00/pith/pine.hlp alpine-2.00.maildir/pith/pine.hlp
+*** alpine-2.00/pith/pine.hlp 2008-08-22 19:07:05.000000000 -0500
+--- alpine-2.00.maildir/pith/pine.hlp 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 21253,21258 ****
+--- 21253,21354 ----
+ &lt;End of help on this topic&gt;
+ </BODY>
+ </HTML>
++ ====== h_config_maildir_location ======
++ <HTML>
++ <HEAD>
++ <TITLE>OPTION: <!--#echo var="VAR_maildir-location"--></TITLE>
++ </HEAD>
++ <BODY>
++ <H1>OPTION: <!--#echo var="VAR_maildir-location"--></H1>
++
++ <P>
++ This option should be used only if you have a Maildir folder which you
++ want to use as your INBOX. If this is not your case (or don't know what
++ this is), you can safely ignore this option.
++
++ <P>
++ This option overrides the default directory Pine uses to find the location of
++ your INBOX, in case this is in Maildir format. The default value of this
++ option is "Maildir", but in some systems, this directory could have been
++ renamed (e.g. to ".maildir"). If this is your case use this option to change
++ the default.
++
++ <P>
++ The value of this option is prefixed with the "~/" string to determine the
++ full path to your INBOX.
++
++ <P>
++ You should probably <A HREF="h_config_maildir">read</A> a few tips that
++ teach you how to configure your maildir for optimal performance. This
++ version also has <A HREF="h_config_courier_list">support</A> for the
++ Courier style file system when a maildir collection is accessed locally.
++
++ <P><UL>
++ <LI><A HREF="h_finding_help">Finding more information and requesting help</A>
++ </UL>
++ <P>
++ &lt;End of help on this topic&gt;
++ </BODY>
++ </HTML>
++ ====== h_config_maildir =====
++ <HTML>
++ <HEAD>
++ <TITLE>Maildir Support</TITLE>
++ </HEAD>
++ <BODY>
++ <H1>Maildir Support</H1>
++
++ This version of Alpine has been enhanced with Maildir support. This text is
++ intended to be a reference on its support.
++ <P>
++
++ A Maildir folder is a directory that contains three directories called
++ cur, tmp and new. A program that delivers mail (e.g. postfix) will put new
++ mail in the new directory. A program that reads mail will look for for old
++ messages in the cur directory, while it will look for new mail in the new
++ directory.
++ <P>
++
++ In order to use maildir support it is better to set your inbox-path to the
++ value &quot;#md/inbox&quot; (without quotes). This assumes that your mail
++ delivery agent is delivering new mail to ~/Maildir/new. If the directory
++ where new mail is being delivered is not called "Maildir", you can set the
++ name of the subdirectory of home where it is being delivered in the <A
++ HREF="h_config_maildir_location"><!--#echo var="VAR_maildir-location"--></A> configuration
++ variable. Most of the time you will not have to worry about the
++ <!--#echo var="VAR_maildirlocation"--> variable, because it will probably be set by your
++ administrator in the pine.conf configuration file.
++ <P>
++
++ One of the advantages of the Maildir support of this version of Alpine is
++ that you do not have to stop using folders in another styles (mbox, mbx,
++ etc.). This is desirable since the usage of a specific mail storage system
++ is a personal decision. Folders in the maildir format that are part of the
++ Mail collection will be recognized without any extra configuration of your
++ part. If your mail/ collection is located under the mail/ directory, then
++ creating a new maildir folder in this collection is done by pressing "A"
++ and entering the string "#driver.md/mail/newfolder". Observe that adding a
++ new folder as "newfolder" may not create such folder in maildir format.
++
++ <P>
++ If you would like to have all folders created in the maildir format by
++ default, you do so by adding a Maildir Collection. In order to convert
++ your current mail/ collection into a maildir collection, edit the
++ collection and change the path variable from &quot;mail/&quot; to
++ &quot;#md/mail&quot;. In a maildir collection folders of any other format
++ are ignored.
++
++ <P> Finally, This version also has
++ <A HREF="h_config_courier_list">support</A> for the Courier style file system
++ when a maildir collection is accessed locally.
++
++ <P>
++ <UL>
++ <LI><A HREF="h_finding_help">Finding more information and requesting help</A>
++ </UL><P>
++ &lt;End of help on this topic&gt;
++ </BODY>
++ </HTML>
+ ====== h_config_literal_sig =====
+ <HTML>
+ <HEAD>
+***************
+*** 29126,29131 ****
+--- 29222,29270 ----
+ <P>
+ &lt;End of help on this topic&gt;
+ </BODY>
++ </HTML>
++ ====== h_config_courier_list =====
++ <HTML>
++ <HEAD>
++ <TITLE>FEATURE: <!--#echo var="FEAT_courier-folder-list"--></TITLE>
++ </HEAD>
++ <BODY>
++ <H1>FEATURE: <!--#echo var="FEAT_courier-folder-list"--></H1>
++
++ In a maildir collection, a folder could be used as a directory to store
++ folders. In the Courier server if you create a folder, then a directory
++ with the same name is created. If you use this patch to access a
++ collection created by the Courier server, then the display of such
++ collection will look confusing. The best way to access a maildir
++ collection created by the Courier server is by using the &quot;#mc/&quot;
++ prefix instead of the &quot;#md/&quot; prefix. If you use this alternate
++ prefix, then this feature applies to you, otherwise you can safely ignore
++ the text that follows.
++ <P>
++ Depending on if you have enabled the option
++ <a href="h_config_separate_fold_dir_view"><!--#echo var="FEAT_separate-folder-and-directory-entries"--></a>
++ a folder may be listed as &quot;folder[.]&quot;, or as two entries in the
++ list by &quot;folder&quot; and &quot;folder.&quot;.
++ <P>
++ If this option is disabled, Pine will list local folders that are in Courier
++ style format, as &quot;folder&quot;, and those that are also directories as
++ &quot;folder[.]&quot;. This makes the default display cleaner.
++ <P>
++ If this feature is enabled then creating folders in a maildir collection
++ will create a directory with the same name. If this feature is disabled, then
++ a folder is considered a directory only if it contains subfolders, so you can
++ not create a directory with the same name as an exisiting folder unless
++ you create a subfolder of that folder first (e.g. if you have a folder
++ called &quot;foo&quot; simply add &quot;foo.bar&quot; directly. This will
++ create the directory &quot;foo&quot; and the subfolder &quot;bar&quot; of it).
++ <P>
++ Observe that this feature works only for maildir collections that are accessed
++ locally. If a collection is accessed remotely then this feature has no value,
++ as the report is created in a server, and Pine only reports what received
++ from the server in this case.
++ <P>
++ &lt;End of help on this topic&gt;
++ </BODY>
+ </HTML>
+ ====== h_config_verbose_post =====
+ <HTML>
+diff -rc alpine-2.00/pith/send.c alpine-2.00.maildir/pith/send.c
+*** alpine-2.00/pith/send.c 2008-08-06 13:25:58.000000000 -0500
+--- alpine-2.00.maildir/pith/send.c 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 256,261 ****
+--- 256,268 ----
+
+ if(exists & FEX_ISFILE){
+ context_apply(tmp, p_cntxt, mbox, sizeof(tmp));
++ #ifndef _WINDOWS
++ if (!struncmp(tmp, "#md/",4) || !struncmp(tmp, "#mc/", 4)){
++ char tmp2[MAILTMPLEN];
++ maildir_file_path(tmp, tmp2);
++ strcpy(tmp, tmp2);
++ }
++ #endif
+ if(!(IS_REMOTE(tmp) || is_absolute_path(tmp))){
+ /*
+ * The mbox is relative to the home directory.
+diff -rc alpine-2.00/README.maildir alpine-2.00.maildir/README.maildir
+*** alpine-2.00/README.maildir 2011-01-24 19:38:50.000000000 -0600
+--- alpine-2.00.maildir/README.maildir 2011-01-15 19:11:07.000000000 -0600
+***************
+*** 0 ****
+--- 1,153 ----
++ ---------------------------------------
++
++ Maildir Driver for Alpine 1.0
++ By Eduardo Chappa <chappa@washington.edu>
++ http://staff.washington.edu/chappa/alpine/
++
++ ---------------------------------------
++ 1. General Information About This Patch
++ ---------------------------------------
++
++ This patch adds support for the maildir format to Alpine. We take the
++ approach that this patch is one more driver among the number of formats
++ supported by Alpine (more generally c-client). This approach differs from
++ older versions of similar patches, in that once a maildir patch was
++ applied, it was assumed that all your folders would be created in the
++ maildir format.
++
++ This patch does not assume that maildir is a preferred format, instead
++ puts maildir in equal footing with other formats (mbox, mbx, mix, etc),
++ and so a maildir folder in the mail/ collection is treated in the same way
++ as any other folder in any other format. In other words, just by reading
++ the name of a folder, or opening it, or doing any operation with it, you
++ can not know in which format the folder is.
++
++ This implies that if you want to add a folder in the maildir format to the
++ mail/ collection, then you must add by pressing "A" in the folder list
++ collection and enter "#driver.md/mail/name_maildir_folder".
++
++ If you only want to use maildir, however, you can do so too. In this case,
++ you must create a maildir collection. In that collection, only maildir
++ folders will be listed. If there is any folder in any other format, that
++ folder will be ignored. In another words, any folder listed there is in
++ maildir format and can be accessed through that collection, conversely,
++ any folder not listed there is not in maildir format and there is no way
++ to access it using this collection.
++
++ In order to create a maildir collection, you could press M S L, and "A" to
++ add a collection. Fill in the required fields as follows:
++
++ Nickname : Anything
++ Server :
++ Path : #md/relative/path/to/maildir/collection/
++ View :
++
++ For example, if "path" is set to "#md/mail/", then Alpine will look for your
++ maildir folders that are in ~/mail/.
++
++ The code in this patch is mostly based in code for the unix driver plus
++ some combinations of the mh, mbx and nntp drivers for the c-client
++ library. Those drivers were designed by Mark Crispin, and bugs in this
++ code are not his bugs, but my own.
++
++ I got all the specification for this patch from
++ http://cr.yp.to/proto/maildir.html. If you know of a place with a better
++ specification for maildir format please let me know. The method this patch
++ uses to create a unique filename for a message is one of the "old
++ fashioned" methods. I realize that this is old fashioned, but it is
++ portable, and portability is the main reason why I decided to use an old
++ fashioned method (most methods are not portable. See the word
++ "Unfortunately" in that document).
++
++ --------------
++ 2. Other Goals
++ --------------
++
++ It is intended that this code will work well with any application
++ written using the c-client library. Of paramount importance is to make the
++ associated imap server work well when the server accesses a folder in
++ Maildir format. The program mailutil should also work flawlessly with this
++ implemetation of the driver.
++
++ It is intended that this driver be fast and stable. We intend not to
++ patch Alpine to make this driver do its work, unless such patching is for
++ fixing bugs in Alpine or to pass parameters to the driver.
++
++ ------------------------------------------------------------------------
++ 3. What are the known bugs of this implementation of the Maildir driver?
++ ------------------------------------------------------------------------
++
++ I don't know any at this time. There have been bugs before, though, but
++ I try to fix bugs as soon as they are reported. A complete list of updates
++ for this patch, which includes bug fixes, improvements and addition of new
++ features can be found at
++
++ http://staff.washington.edu/chappa/alpine/updates/maildir.html
++
++ ----------
++ 4. On UIDs
++ ----------
++
++ This patch keeps uids in the name of the file that contains the message,
++ by adding a ",u=" string to the file name to save the uid of a message. A
++ file is kept between sessions to save information on the last uid assigned
++ and its time of validity. Only one session with writing access can write
++ uids, all others must wait for the other session to assign them. The
++ session assigning uids creates a ".uidtemp" file which other sessions must
++ not disturb.
++
++ Uid support appeared in Alpine 1.00 (snapshot 925), and is experimental,
++ please report any problems.
++
++ --------------------------------------------
++ 5. Configuring Alpine and Setting up a Maildir
++ --------------------------------------------
++
++ Once this approach was chosen, it implied the following:
++
++ * This patch assumes that your INBOX is located at "$HOME/Maildir".
++ This is a directory which should have three subdirectories "cur",
++ "tmp" and "new". Mail is delivered to 'new' and read from 'cur'. I
++ have added a configuration option "maildir-location" which can be
++ used to tell Alpine where your Maildir inbox is, in case your system
++ do not use the above directory (e.g. your system may use
++ "~/.maildir"). In this case define that variable to be the name of
++ the directory where your e-mail is being delivered (e.g.
++ ".maildir").
++
++ * If you want to use the above configuration as your inbox, you must
++ define your inbox-path as "#md/inbox" (no quotes). You can define
++ the inbox-path like above even if you have changed the
++ maildir-location variable. That's the whole point of that variable.
++
++ -----------------------------------
++ 6. What about Courier file systems?
++ -----------------------------------
++
++ In a courier file system all folders are subfolders of a root folder
++ called INBOX. Normally INBOX is located at ~/Maildir and subfolders are
++ "dot" directories in ~/Maildir. For example ~/Maildir/.Trash is a
++ subfolder of INBOX and is accessed with the nickname "INBOX.Trash".
++
++ You can not access folders in this way unless you preceed them with the
++ string "#mc/". The purpose of the string "#mc/" is to warn Alpine that a
++ collection in the Courier format is going to be accessed, so you can
++ SELECT a folder like "#mc/INBOX.Trash", but not "INBOX.Trash"
++
++ You can access a collection through a server, but if you want to access a
++ collection of folders created using the Courier server, you MUST edit your
++ ".pinerc" file and enter the definition of the collection as follows:
++
++ folder-collections="Anything you want" #mc/INBOX.[]
++
++ You can replace the string "#mc/INBOX." by something different, for example
++ "#mc/Courier/." will make Alpine search for your collection in ~/Courier.
++
++ You can not add this directly into Alpine because Alpine fails to accept this
++ value from its input, but it takes it correctly when it is added through
++ the ".pinerc" file.
++
++ You can access your inbox as "#mc/INBOX" or "#md/INBOX". Both definitions
++ point to the same place.
++
++ Last Updated February 9, 2008
diff --git a/extra/re2c/PKGBUILD b/extra/re2c/PKGBUILD
new file mode 100644
index 000000000..7380b1d9a
--- /dev/null
+++ b/extra/re2c/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 123734 2011-05-12 20:45:05Z andrea $
+# Maintainer:
+# Contributor: nut543 <kfs1@online.no>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=re2c
+pkgver=0.13.5
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+depends=('gcc-libs')
+pkgdesc="A tool for generating C-based recognizers from regular expressions"
+url="http://re2c.sourceforge.net/"
+license=('GPL')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4a97d8f77ed6d2c76c8bd840a43f5633')
+
+build() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/recode/PKGBUILD b/extra/recode/PKGBUILD
new file mode 100644
index 000000000..24e6e30be
--- /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' 'mips64el')
+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..c6fe0f765
--- /dev/null
+++ b/extra/redland/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 144346 2011-12-04 21:50:29Z eric $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgbase=redland
+epoch=1
+pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite')
+pkgver=1.0.15
+pkgrel=1
+url="http://librdf.org/"
+license=("GPL")
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'db>=5.2' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3')
+options=('!libtool')
+source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz
+ rpath.diff)
+md5sums=('b0deb87f3c7d3237a3d587c1e0f2f266'
+ '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.26' 'raptor>=2.0.6' 'libtool')
+
+ cd "${srcdir}/${pkgbase}-${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}/${pkgbase}-${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}/${pkgbase}-${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}/${pkgbase}-${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}/${pkgbase}-${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/rest/PKGBUILD b/extra/rest/PKGBUILD
new file mode 100644
index 000000000..562d2542d
--- /dev/null
+++ b/extra/rest/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 142505 2011-11-10 20:16:20Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=rest
+pkgver=0.7.12
+pkgrel=1
+pkgdesc="A helper library for RESTful services."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libxml2' 'libsoup-gnome')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.xz)
+sha256sums=('16ffa4929078dabfcfac31f9ce942072ebab67e3339ce9f378127457b03baf3a')
+
+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/extra/rhythmbox/PKGBUILD b/extra/rhythmbox/PKGBUILD
new file mode 100644
index 000000000..6eb3ce681
--- /dev/null
+++ b/extra/rhythmbox/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 139425 2011-10-01 19:01:11Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=rhythmbox
+pkgver=2.90.1.git20110928
+pkgrel=1
+pkgdesc="An iTunes-like music player/libary"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.rhythmbox.org"
+depends=('libgpod' 'gvfs-afc' 'totem-plparser' 'libmusicbrainz3' 'libmtp' 'lirc-utils' 'libwebkit3' 'libdmapsharing' 'media-player-info' 'python2-gobject'
+ 'python-gnomekeyring' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'json-glib' 'desktop-file-utils' 'libpeas' 'python-mako' 'grilo' 'dconf')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.1' 'intltool' 'brasero' 'gnome-common' 'gtk-doc' 'gobject-introspection')
+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' '!strip')
+install=rhythmbox.install
+#source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.13/${pkgname}-${pkgver}.tar.bz2)
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('b95b2aed0cd485198fbefdcb8dbf2a1ca3d4eb7d31b1e02d610fb16384191e8a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export CFLAGS="$CFLAGS -g -O1"
+ export CXXFLAGS="$CXXFLAGS -g -O1"
+ 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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/rhythmbox/rhythmbox.install b/extra/rhythmbox/rhythmbox.install
new file mode 100644
index 000000000..cbea0e6b3
--- /dev/null
+++ b/extra/rhythmbox/rhythmbox.install
@@ -0,0 +1,22 @@
+pkgname=rhythmbox
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t 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/extra/ristretto/PKGBUILD b/extra/ristretto/PKGBUILD
new file mode 100644
index 000000000..5d1a94e5f
--- /dev/null
+++ b/extra/ristretto/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144969 2011-12-12 17:23:28Z andrea $
+# Maintainer:
+# Contributor: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=ristretto
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="A fast and lightweight picture-viewer for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://goodies.xfce.org/projects/applications/ristretto"
+license=('GPL')
+depends=('libxfce4ui' 'libexif' 'exo' 'desktop-file-utils')
+makedepends=('intltool')
+groups=('xfce4-goodies')
+install=ristretto.install
+source=("http://archive.xfce.org/src/apps/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2")
+sha1sums=('c7034ad543bea3c1b99a2336dcee9d5ba480b2bb')
+
+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..bb080bc93
--- /dev/null
+++ b/extra/rosegarden/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142547 2011-11-11 23:39:40Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=rosegarden
+pkgver=11.11
+pkgrel=1
+pkgdesc="MIDI/audio sequencer and notation editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.rosegardenmusic.com/"
+license=('GPL')
+depends=('liblrdf' 'dssi' 'fftw' 'lirc-utils'
+ 'perl' 'qt' 'shared-mime-info')
+makedepends=('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+=('dssi-vst: win32 VST support')
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('1db7bb5289f08e634e2f1207ae163ad7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # lrdf + raptor2 compatibility
+ export lrdf_CFLAGS="$(pkg-config --cflags raptor2)"
+ ./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..30d4e3554
--- /dev/null
+++ b/extra/rox/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 140263 2011-10-11 07:46:57Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=rox
+pkgver=2.11
+pkgrel=1
+pkgdesc="A small and fast file manager which can optionally manage the desktop background and panels"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://roscidus.com/desktop/"
+depends=('sh' 'libsm' 'gtk2')
+makedepends=('librsvg' 'python2')
+source=("http://downloads.sourceforge.net/${pkgname}/rox-filer-${pkgver}.tar.bz2"
+ 'rox.desktop' 'rox.svg' 'rox.sh')
+md5sums=('0eebf05a67f7932367750ebf9faf215d'
+ 'de05c906395abd4402b0470c1bc2ae6e'
+ '658c8648b51e215558e13e6afb2b5c76'
+ '31578a90b241f0a8d09c9f8587608d00')
+
+build() {
+ cd "${srcdir}/rox-filer-${pkgver}"
+ ./ROX-Filer/AppRun --compile
+# finally we render a png as fallback for svg unaware 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-convert -w 48 -h 38 -f png -o "${srcdir}/rox.png" "${srcdir}/rox.svg"
+}
+
+package() {
+ cd "${srcdir}/rox-filer-${pkgver}"
+ install -d "${pkgdir}/usr/share/Choices/MIME-types"
+ install -m755 Choices/MIME-types/* "${pkgdir}/usr/share/Choices/MIME-types/"
+ cp -rp ROX-Filer "${pkgdir}/usr/share/"
+ rm -fr "${pkgdir}"/usr/share/ROX-Filer/{src,build}
+
+ install -D -m755 "${srcdir}/rox.sh" "${pkgdir}/usr/bin/rox"
+ install -D -m644 rox.1 "${pkgdir}/usr/share/man/man1/rox.1"
+ ln -sf rox.1 "${pkgdir}/usr/share/man/man1/ROX-Filer.1"
+
+ install -D -m644 "${srcdir}/rox.desktop" "${pkgdir}/usr/share/applications/rox.desktop"
+ install -D -m644 "${srcdir}/rox.svg" "${pkgdir}/usr/share/pixmaps/rox.svg"
+ install -D -m644 "${srcdir}/rox.png" "${pkgdir}/usr/share/pixmaps/rox.png"
+}
diff --git a/extra/rox/rox.desktop b/extra/rox/rox.desktop
new file mode 100644
index 000000000..93edfabcf
--- /dev/null
+++ b/extra/rox/rox.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=ROX Filer
+Exec=rox
+Icon=rox
+Terminal=false
+Type=Application
+Categories=System;Utility;Core;FileManager;
diff --git a/extra/rox/rox.sh b/extra/rox/rox.sh
new file mode 100644
index 000000000..f2dc449d0
--- /dev/null
+++ b/extra/rox/rox.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/share/ROX-Filer/AppRun "$@"
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..932710e88
--- /dev/null
+++ b/extra/rrdtool/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 135894 2011-08-20 03:53:06Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=rrdtool
+pkgver=1.4.5
+pkgrel=4
+pkgdesc="Data logging and graphing application"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.rrdtool.org"
+license=('GPL' 'custom')
+depends=('libxml2' 'pango' 'ttf-dejavu')
+makedepends=('intltool' 'ruby' 'python2' 'tcl' 'lua' 'groff')
+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}"
+ sed -i 's|-lrrd|-lrrd -L/usr/lib/perl5/core_perl/CORE/ -lperl |' bindings/perl-shared/Makefile.PL
+ PYTHON=python2 ./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 --disable-libwrap
+ 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..cda6c45e4
--- /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' 'mips64el')
+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..d07e4ad5a
--- /dev/null
+++ b/extra/rsync/ChangeLog
@@ -0,0 +1,39 @@
+2011-05-17 Angel Velasquez <angvp@archlinux.org>
+ * rsync 3.0.8-2
+ * Added call_rsync func to rsyncd to support pass arguments to the daemon
+
+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..4805bafba
--- /dev/null
+++ b/extra/rsync/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 138832 2011-09-28 19:15:53Z 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.9
+pkgrel=1
+pkgdesc="A file transfer program to keep remote files in sync"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://samba.anu.edu.au/rsync/"
+license=('GPL3')
+depends=('acl')
+backup=('etc/rsyncd.conf' 'etc/xinetd.d/rsync')
+changelog=ChangeLog
+source=(http://rsync.samba.org/ftp/rsync/${pkgname}-${pkgver}.tar.gz \
+ rsyncd.conf rsyncd rsync.xinetd)
+md5sums=('5ee72266fe2c1822333c407e1761b92b'
+ '4395c0591638349b1a7aeaaa4da1f03a'
+ '7a9ce3b5de97f3aae29b906f93e1d157'
+ 'ea3e9277dc908bc51f9eddc0f6b935c1')
+sha1sums=('c64c8341984aea647506eb504496999fd968ddfc'
+ '48be09294134dfed888818872fe552a59c29147a'
+ 'eda623c31d9def454cf8e3e88dcf63de4ca5c08b'
+ '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..d7a772e8e
--- /dev/null
+++ b/extra/rsync/rsyncd
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f /etc/conf.d/rsyncd ] && . /etc/conf.d/rsyncd
+
+function call_rsyncd() {
+ /usr/bin/rsync --daemon $RSYNCD_ARGS
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting rsyncd"
+ [ ! -f /var/run/daemons/rsyncd ] && call_rsyncd
+ 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..2e1101561
--- /dev/null
+++ b/extra/rtkit/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 134840 2011-08-07 20:46:13Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=rtkit
+pkgver=0.10
+pkgrel=2
+pkgdesc="Realtime Policy and Watchdog Daemon"
+arch=('i686' 'x86_64' 'mips64el')
+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 \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --with-systemdsystemunitdir=/lib/systemd/system
+
+ 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..98318e7d2
--- /dev/null
+++ b/extra/rtmpdump/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 134127 2011-08-02 03:47:07Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: xduugu
+# Contributor: Elis Hughes <elishughes@googlemail.com>
+
+pkgname=rtmpdump
+pkgver=2.4
+pkgrel=1
+pkgdesc="A tool to download rtmp streams"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://rtmpdump.mplayerhq.hu/"
+license=('GPL2' 'LGPL2.1')
+depends=('openssl')
+#source=(http://rtmpdump.mplayerhq.hu/download/${pkgname}-${pkgver}.tgz)
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('2c3b76d46d56180176ef099b8ad50a1608bef1dac35d8cb0b21ceac31b5c0656')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d -m755 "${pkgdir}/usr/lib"
+ make prefix=/usr mandir=/usr/share/man DESTDIR="${pkgdir}" install
+}
diff --git a/extra/rubberband/PKGBUILD b/extra/rubberband/PKGBUILD
new file mode 100644
index 000000000..526dd8f57
--- /dev/null
+++ b/extra/rubberband/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 140085 2011-10-06 09:24:38Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Felipe Machado aka arch_audio <machado.felipe@gmail.com>
+
+pkgname=rubberband
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="Time-stretching and pitch-shifting audio library and utility"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.breakfastquay.com/rubberband/"
+license=('GPL')
+depends=('libsamplerate' 'fftw' 'vamp-plugin-sdk')
+makedepends=('ladspa')
+source=("http://code.breakfastquay.com/attachments/download/16/$pkgname-$pkgver.tar.bz2"
+ 'gcc46.patch'
+ 'vectorops.patch')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fix gcc 4.6 compatibility
+ patch -Np1 -i "$srcdir/gcc46.patch"
+
+ # fix bug exposed by gcc 4.6
+ # see https://bugs.archlinux.org/task/26140
+ patch -Np1 -i "$srcdir/vectorops.patch"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
+md5sums=('28e3dc1f5ae694d6846bcb0ef3d597fc'
+ '7c2f404975da6052f6b80eac12efbeb4'
+ '4bdc9689179d3a2cf64172f0f911701d')
diff --git a/extra/rubberband/gcc46.patch b/extra/rubberband/gcc46.patch
new file mode 100644
index 000000000..38ac76d42
--- /dev/null
+++ b/extra/rubberband/gcc46.patch
@@ -0,0 +1,10 @@
+--- rubberband-1.6.0.orig/rubberband/RubberBandStretcher.h
++++ rubberband-1.6.0/rubberband/RubberBandStretcher.h
+@@ -21,6 +21,7 @@
+
+ #include <vector>
+ #include <map>
++#include <cstddef>
+
+ /**
+ * @mainpage RubberBand
diff --git a/extra/rubberband/vectorops.patch b/extra/rubberband/vectorops.patch
new file mode 100644
index 000000000..cae961591
--- /dev/null
+++ b/extra/rubberband/vectorops.patch
@@ -0,0 +1,13 @@
+--- a/src/system/VectorOps.h Mon Mar 21 21:51:33 2011 +0000
++++ b/src/system/VectorOps.h Sun Oct 02 21:12:42 2011 +0100
+@@ -84,8 +84,8 @@
+ }
+
+ template<typename T>
+-inline void v_move(T *const R__ dst,
+- const T *const R__ src,
++inline void v_move(T *const dst,
++ const T *const src,
+ const int count)
+ {
+ memmove(dst, src, count * sizeof(T));
diff --git a/extra/ruby/PKGBUILD b/extra/ruby/PKGBUILD
new file mode 100644
index 000000000..569199096
--- /dev/null
+++ b/extra/ruby/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 143822 2011-11-29 13:33:50Z stephane $
+# Maintainer:
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Jeramy Rutley <jrutley@gmail.com>
+
+pkgbase=ruby
+pkgname=('ruby' 'ruby-docs')
+pkgver=1.9.3_p0
+pkgrel=2
+pkgdesc="An object-oriented language for quick and easy programming"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ruby-lang.org/en/"
+license=('BSD' 'custom')
+makedepends=('openssl' 'tk' 'libffi' 'doxygen' 'graphviz' 'libyaml')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('openssl' 'tk' 'libffi' 'doxygen' 'libyaml')
+options=('!emptydirs' '!makeflags')
+source=(ftp://ftp.ruby-lang.org/pub/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver//_/-}.tar.bz2)
+sha1sums=('f63c116411b981ef54c2caeefb9ccc4d71a5d2cf')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ DOXYGEN=/usr/bin/doxygen PKG_CONFIG=/usr/bin/pkg-config ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-shared --enable-pthread --disable-rpath
+ make
+}
+
+package_ruby() {
+ depends=('openssl' 'libffi' 'libyaml')
+ provides=('rubygems' 'rake')
+ conflicts=('rake')
+ optdepends=('tk: for Ruby/TK')
+
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ make DESTDIR="${pkgdir}" install-nodoc
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/${pkgname}/BSDL"
+}
+
+package_ruby-docs() {
+ pkgdesc="Documentation files for ruby"
+
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ make DESTDIR="${pkgdir}" install-doc install-capi
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/${pkgname}/BSDL"
+}
+md5sums=('096758c3e853b839dc980b183227b182')
+md5sums=('65401fb3194cdccd6c1175ab29b8fdb8')
+sha1sums=('f63c116411b981ef54c2caeefb9ccc4d71a5d2cf')
diff --git a/extra/rxvt-unicode/ChangeLog b/extra/rxvt-unicode/ChangeLog
new file mode 100644
index 000000000..a374f7b27
--- /dev/null
+++ b/extra/rxvt-unicode/ChangeLog
@@ -0,0 +1,8 @@
+2011-12-02 Angel Velasquez <angvp@archlinux.org>
+ * Moved perl from optdepend to depend (closes FS#25782)
+
+2011-05-22 Angel Velasquez <angvp@archlinux.org>
+ * Rebuilt against perl 5.14.0
+
+2011-05-17 Angel Velasquez <angvp@archlinux.org>
+ * Removed not accepted upstream patch (closes FS#23324)
diff --git a/extra/rxvt-unicode/PKGBUILD b/extra/rxvt-unicode/PKGBUILD
new file mode 100644
index 000000000..ef8c89f59
--- /dev/null
+++ b/extra/rxvt-unicode/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 144079 2011-12-03 04:45:00Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=rxvt-unicode
+pkgver=9.12
+pkgrel=2
+pkgdesc="An unicode enabled rxvt-clone terminal emulator (urxvt)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://software.schmorp.de/pkg/rxvt-unicode.html"
+license=('GPL')
+depends=('gcc-libs' 'libxft' 'gdk-pixbuf2' 'perl')
+optdepends=('gtk2-perl: to use the urxvt-tabbed')
+changelog=ChangeLog
+source=(http://dist.schmorp.de/rxvt-unicode/${pkgname}-${pkgver}.tar.bz2 \
+ ${pkgname}.desktop)
+md5sums=('945af37d661c8c45a7cac292160e7c70'
+ '3de6c13126a45bc3bc9f6bba077a1311')
+sha1sums=('4cbf0516b8304dfb041b9f3e5aaba662fee4b979'
+ '962aebc88982dbeb62a7c4a051ff567e015f61a0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./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
+ install -Dm644 ../${pkgname}.desktop \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+}
diff --git a/extra/rxvt-unicode/rxvt-unicode.desktop b/extra/rxvt-unicode/rxvt-unicode.desktop
new file mode 100644
index 000000000..68d613dbd
--- /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=terminal
+Terminal=false
+Type=Application
+Categories=Application;System;TerminalEmulator;
diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD
new file mode 100644
index 000000000..9592c0e52
--- /dev/null
+++ b/extra/samba/PKGBUILD
@@ -0,0 +1,146 @@
+# $Id: PKGBUILD 141291 2011-10-28 08:03:24Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+pkgbase=samba
+pkgname=('smbclient' 'samba')
+pkgver=3.6.1
+# 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.6.1
+pkgrel=1
+arch=(i686 x86_64 mips64el)
+url="http://www.samba.org"
+license=('GPL3')
+makedepends=('db' 'popt' 'libcups' 'acl' 'libldap' 'libcap' 'krb5' 'pam' 'gamin' 'gnutls>=2.4.1' 'talloc' 'tdb')
+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-dnsupdate \
+ --with-automount \
+ --with-quotas \
+ --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,idmap_tdb2 \
+ --enable-external-libtdb
+ make
+}
+
+package_smbclient () {
+pkgdesc="Tools to access a server's filespace and printers via SMB"
+depends=('readline' 'popt' 'libldap' 'cifs-utils' 'libcap' 'krb5' 'db' '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' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'krb5' 'pam' 'gamin' 'gnutls' 'e2fsprogs' 'tdb' 'talloc')
+ cd ${srcdir}/samba-${_realver}/source3
+ 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
+ rm -rf ${pkgdir}/var/run/samba
+ (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
+ ln -s libnss_winbind.so ${pkgdir}/lib/libnss_winbind.so.2
+ # winbind krb5 locator
+ mkdir -p ${pkgdir}/usr/lib/krb5/plugins/libkrb5
+ install -d -m 0755 ${pkgdir}/usr/lib/krb5/plugins/libkrb5
+ install -m 755 bin/winbind_krb5_locator.so ${pkgdir}/usr/lib/krb5/plugins/libkrb5/winbind_krb5_locator.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* winbind_krb5*;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=('5291717be0734e07dc07b6110e162e87'
+ 'a3da19515a234c703876cf850c44e996'
+ '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..458eb8e2b
--- /dev/null
+++ b/extra/samba/samba
@@ -0,0 +1,57 @@
+#!/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
+ if [ ! -x /var/log/samba ] ; then
+ install -m755 -g 81 -o 81 -d /var/log/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..36a2b0721
--- /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 'mips64el')
+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..d1eda7ab0
--- /dev/null
+++ b/extra/sane/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 140036 2011-10-05 21:49:29Z ibiru $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Simo L. <neotuli@yahoo.com>
+# Contributor: eric <eric@archlinux.org>
+
+pkgname=sane
+pkgver=1.0.22
+pkgrel=4
+pkgdesc="Scanner Access Now Easy"
+url="http://www.sane-project.org/"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+ 'libv4l-0.8.3.patch'
+ 'xerox_mfp_fix_usb_devices.patch')
+options=(!libtool)
+
+build() {
+ cd "${srcdir}/${pkgname}-backends-${pkgver}"
+
+ patch -p1 -i "${srcdir}"/libv4l-0.8.3.patch
+ # fix https://bugs.archlinux.org/task/26114
+ patch -Np1 -i "${srcdir}"/xerox_mfp_fix_usb_devices.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-docdir=/usr/share/doc/sane \
+ --enable-avahi \
+ --disable-locking
+ 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
+
+ # install xinetd file
+ install -D -m644 "${srcdir}/sane.xinetd" "${pkgdir}/etc/xinetd.d/sane"
+}
+md5sums=('fadf56a60f4776bfb24491f66b617cf5'
+ 'da946cc36fb83612162cf9505986d4b2'
+ 'e645a8921cff9f18ffbdabb2ed885060'
+ 'cfef73e7db7c28308914d3db6767d852')
diff --git a/extra/sane/libv4l-0.8.3.patch b/extra/sane/libv4l-0.8.3.patch
new file mode 100644
index 000000000..4e240e0cf
--- /dev/null
+++ b/extra/sane/libv4l-0.8.3.patch
@@ -0,0 +1,64 @@
+From 26c69b228b29f612faf4b0cc85db969ee7cc4ea6 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Mon, 14 Mar 2011 13:35:05 +0100
+Subject: [PATCH] patch: v4l
+
+Squashed commit of the following:
+
+commit 23381932c76846191b42a48e505b37cd74711265
+Author: Julien BLACHE <jb@jblache.org>
+Date: Wed Feb 16 19:37:43 2011 +0100
+
+ Fix v4l build with libv4l 0.8.3+
+
+ (cherry picked from commit c5ca46c2d1be78c651afb843cc834cf2b5b24953)
+
+ Conflicts:
+
+ ChangeLog
+
+ Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ backend/v4l.c | 3 +--
+ backend/v4l.h | 3 ++-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/backend/v4l.c b/backend/v4l.c
+index 6510ef0..38595ed 100644
+--- a/backend/v4l.c
++++ b/backend/v4l.c
+@@ -84,9 +84,8 @@
+ #include "../include/sane/sanei_config.h"
+ #define V4L_CONFIG_FILE "v4l.conf"
+
+-#include "v4l.h"
+-
+ #include <libv4l1.h>
++#include "v4l.h"
+
+ static const SANE_Device **devlist = NULL;
+ static int num_devices;
+diff --git a/backend/v4l.h b/backend/v4l.h
+index 588b96e..6aee586 100644
+--- a/backend/v4l.h
++++ b/backend/v4l.h
+@@ -29,6 +29,7 @@
+ #ifndef v4l_h
+ #define v4l_h
+
++#ifndef __LINUX_VIDEODEV_H
+ /* Kernel interface */
+ /* Only the stuff we need. For more features, more defines are needed */
+
+@@ -165,7 +166,7 @@ struct video_channel
+
+
+ /* end of kernel interface */
+-
++#endif /* !__LINUX_VIDEODEV_H */
+
+ #include <../include/sane/sane.h>
+
+--
+1.7.4
+
diff --git a/extra/sane/sane.install b/extra/sane/sane.install
new file mode 100644
index 000000000..cbecf7b2e
--- /dev/null
+++ b/extra/sane/sane.install
@@ -0,0 +1,14 @@
+post_install() {
+ getent group scanner >/dev/null 2>&1 || groupadd -g 96 scanner &>/dev/null
+ /bin/cat <<THEEND
+NOTE
+----
+Add your user to group 'scanner' to use scanner devices.
+THEEND
+}
+
+post_remove() {
+ if getent group scanner >/dev/null 2>&1; then
+ groupdel scanner
+ fi
+}
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/sane/xerox_mfp_fix_usb_devices.patch b/extra/sane/xerox_mfp_fix_usb_devices.patch
new file mode 100644
index 000000000..5ed29b974
--- /dev/null
+++ b/extra/sane/xerox_mfp_fix_usb_devices.patch
@@ -0,0 +1,67 @@
+commit 5ea227caeacd504b64eef301e83fa63e0a25b3f7
+Author: Alex Belkin <abc@telekom.ru>
+Date: Tue Mar 8 17:57:19 2011 +0300
+
+ keep usb device by default (correct for bug introduced by tcp sub-backend
+
+diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c
+index e08b50f..d4672a7 100644
+--- a/backend/xerox_mfp.c
++++ b/backend/xerox_mfp.c
+@@ -37,10 +37,10 @@
+ static const SANE_Device **devlist = NULL; /* sane_get_devices array */
+ static struct device *devices_head = NULL; /* sane_get_devices list */
+
+-transport available_transports[] = {
++enum { TRANSPORT_USB, TRANSPORT_TCP, TRANSPORTS_MAX };
++transport available_transports[TRANSPORTS_MAX] = {
+ { "usb", usb_dev_request, usb_dev_open, usb_dev_close, usb_configure_device },
+ { "tcp", tcp_dev_request, tcp_dev_open, tcp_dev_close, tcp_configure_device },
+- { 0 }
+ };
+
+ static int resolv_state(int state)
+@@ -824,7 +824,13 @@ free_devices (void)
+ devices_head = NULL;
+ }
+
+-/* SANE API ignores return code of this callback */
++static transport *tr_from_devname(SANE_String_Const devname)
++{
++ if (strncmp("tcp", devname, 3) == 0)
++ return &available_transports[TRANSPORT_TCP];
++ return &available_transports[TRANSPORT_USB];
++}
++
+ static SANE_Status
+ list_one_device (SANE_String_Const devname)
+ {
+@@ -839,12 +845,7 @@ list_one_device (SANE_String_Const devname)
+ return SANE_STATUS_GOOD;
+ }
+
+- for (tr = available_transports; tr->ttype; tr++) {
+- if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+- break;
+- }
+- if (!tr->ttype)
+- return SANE_STATUS_INVAL;
++ tr = tr_from_devname(devname);
+
+ dev = calloc (1, sizeof (struct device));
+ if (dev == NULL)
+@@ -878,13 +879,7 @@ list_one_device (SANE_String_Const devname)
+ static SANE_Status
+ list_conf_devices (UNUSED (SANEI_Config * config), const char *devname)
+ {
+- transport *tr;
+-
+- for (tr = available_transports; tr->ttype; tr++) {
+- if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+- return tr->configure_device(devname, list_one_device);
+- }
+- return SANE_STATUS_INVAL;
++ return tr_from_devname(devname)->configure_device(devname, list_one_device);
+ }
+
+ SANE_Status
diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD
new file mode 100644
index 000000000..29b5fc0a8
--- /dev/null
+++ b/extra/sbcl/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 144860 2011-12-08 19:58:02Z 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.54
+pkgrel=1
+pkgdesc="Steel Bank Common Lisp"
+url="http://www.sbcl.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+depends=('glibc')
+provides=('common-lisp' 'cl-asdf')
+makedepends=('sbcl' 'texinfo')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('clisp' 'texinfo')
+install=sbcl.install
+source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2"
+ "arch-fixes.lisp")
+md5sums=('b7e956a71d603bb714f71c2f7ef350f6'
+ '7ac0c1936547f4278198b8bf7725204d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ export CFLAGS+=" -DSBCL_HOME=\\\"/usr/lib/sbcl\\\""
+ export GNUMAKE="make -e"
+
+ # build system uses LINKFLAGS and OS_LIBS to build LDFLAGS
+ export LINKFLAGS="$LDFLAGS"
+ unset LDFLAGS
+
+ # 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
+
+ if [ "$CARCH" = "mips64el" ]; then
+ sh make.sh clisp
+ else
+ sh make.sh sbcl
+ fi
+ make -C doc/manual info
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ INSTALL_ROOT="$pkgdir/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 "$pkgdir/usr/share/sbcl-source"
+ cp -R -t "$pkgdir/usr/share/sbcl-source" "$srcdir/$pkgname-$pkgver/"{src,contrib}
+
+ # license
+ install -D -m644 "$srcdir/$pkgname-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+
+ # drop unwanted files
+ find "$pkgdir" \( -name Makefile -o -name .cvsignore \) -delete
+ find "$pkgdir/usr/share/sbcl-source" -type f \
+ \( -name \*.fasl -o -name \*.o -o -name \*.log -o -name \*.so -o -name a.out \) -delete
+
+ rm "$pkgdir/usr/share/sbcl-source/src/runtime/sbcl"{,.nm}
+
+}
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/mips-arch.h.diff b/extra/sbcl/mips-arch.h.diff
new file mode 100644
index 000000000..4f593aa83
--- /dev/null
+++ b/extra/sbcl/mips-arch.h.diff
@@ -0,0 +1,20 @@
+--- sbcl-1.0.49.orig/src/runtime/mips-arch.h 2011-06-25 16:13:44.103101571 +0200
++++ sbcl-1.0.49/src/runtime/mips-arch.h 2011-06-25 16:14:31.279501569 +0200
+@@ -1,6 +1,8 @@
+ #ifndef _MIPS_ARCH_H
+ #define _MIPS_ARCH_H
+
++/* For lose. */
++#include "interr.h"
+
+ static inline void
+ get_spinlock(volatile lispobj *word, long value)
+@@ -31,7 +33,7 @@
+ [__new] "r" (value)
+ : "memory");
+
+- if (!cmp)
++ if (!__cmp)
+ lose("recursive get_spinlock: 0x%x,%d\n", word, value);
+ #else /* LISP_FEATURE_SB_THREAD */
+ *word=value;
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..fb5bcfe88
--- /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' 'mips64el')
+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..856f3fec9
--- /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' 'mips64el')
+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..f7d4f22d9
--- /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' 'mips64el')
+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..395288704
--- /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' 'mips64el')
+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..081538425
--- /dev/null
+++ b/extra/scim-hangul/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140551 2011-10-17 07:24:46Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-hangul
+pkgver=0.3.2
+pkgrel=4
+pkgdesc='Korean input method module for SCIM'
+arch=('i686' 'x86_64' 'mips64el')
+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..9d643ef8b
--- /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' 'mips64el')
+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..1a8220bbd
--- /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' 'mips64el')
+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..698a91d04
--- /dev/null
+++ b/extra/scim-tables/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 134848 2011-08-07 23:21:19Z 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.10
+pkgrel=1
+pkgdesc='Generic table input method module for SCIM'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.scim-im.org/'
+license=('GPL')
+depends=('scim')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/scim/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('c6e6fbd9999ceba5cb982349fee8391e16a9c2fe')
+
+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..a7c9216f1
--- /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' 'mips64el')
+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..e8a4224f7
--- /dev/null
+++ b/extra/scim/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 137306 2011-09-06 22:52:36Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Gan Lu <rhythm.gan@gmail.com>
+
+pkgname=scim
+pkgver=1.4.11
+pkgrel=2
+pkgdesc='Input method user interface and development platform'
+url='http://www.scim-im.org/projects/scim'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+options=('!libtool')
+makedepends=('intltool')
+depends=('gtk2' 'libtool')
+backup=('etc/scim/config' 'etc/scim/global')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('e202e42df52f5c9a88f6ae4d4ce04f94bc22e27c')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./bootstrap
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-static \
+ --with-gnu-ld \
+ --with-x \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/scim/install b/extra/scim/install
new file mode 100644
index 000000000..405061cb4
--- /dev/null
+++ b/extra/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..1c6224652
--- /dev/null
+++ b/extra/screen/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 131720 2011-07-14 01:42:52Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: dorphell <dorphell@gmx.net>
+
+pkgname=screen
+pkgver=4.0.3
+pkgrel=12
+_ptygroup=5 #the UID of our PTY/TTY group
+pkgdesc="Full-screen window manager that multiplexes a physical terminal"
+arch=('i686' 'x86_64' 'mips64el')
+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 --enable-telnet \
+ --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..4d9f9bf90
--- /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' 'mips64el')
+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..6608526b1
--- /dev/null
+++ b/extra/scrot/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143963 2011-11-30 22:40:01Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=scrot
+pkgver=0.8
+pkgrel=5
+pkgdesc="A simple command-line screenshot utility for X"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir docsdir=/usr/share/doc/scrot install
+ 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..c3af7e031
--- /dev/null
+++ b/extra/scummvm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 135987 2011-08-21 05:01:03Z eric $
+# Maintainer: juergen <juergen@hoetzel.info>
+# Contributor: Manolis Tzanidakis, Petter Gundersen
+
+pkgname=scummvm
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A 'virtual machine' for several classic graphical point-and-click adventure games."
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.scummvm.org/"
+depends=('libmad' 'sdl' 'fluidsynth')
+makedepends=('libmpeg2')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('87e5076e93bfa762f1c5d7f45b41d4e2')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --backend=sdl --disable-debug \
+ --enable-mpeg2 --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_gfx/PKGBUILD b/extra/sdl_gfx/PKGBUILD
new file mode 100644
index 000000000..5a72f859e
--- /dev/null
+++ b/extra/sdl_gfx/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144350 2011-12-04 22:59:47Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_gfx
+pkgver=2.0.23
+pkgrel=1
+pkgdesc="SDL Graphic Primitives"
+arch=('i686' 'x86_64' 'mips64el')
+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=('fcc3c4f2d1b4943409bf7e67dd65d03a')
+
+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..a61e6c713
--- /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' 'mips64el')
+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..914c8612a
--- /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' 'mips64el')
+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..8b8337be4
--- /dev/null
+++ b/extra/sdl_net/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137890 2011-09-12 09:39:20Z allan $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_net
+pkgver=1.2.7
+pkgrel=4
+pkgdesc="A small sample cross-platform networking library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/SDL_net-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/sdl_pango/PKGBUILD b/extra/sdl_pango/PKGBUILD
new file mode 100644
index 000000000..2bda76f3a
--- /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' 'mips64el')
+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..4fee4c404
--- /dev/null
+++ b/extra/sdl_sound/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 137585 2011-09-09 23:22:23Z allan $
+# Maintainer:
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_sound
+pkgver=1.0.3
+pkgrel=3
+pkgdesc="A library to decode several popular sound file formats, such as .WAV and .MP3"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/SDL_sound-${pkgver}
+ 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..094bd8fd1
--- /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' 'mips64el')
+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/PKGBUILD b/extra/seahorse/PKGBUILD
new file mode 100644
index 000000000..1b06de270
--- /dev/null
+++ b/extra/seahorse/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 144929 2011-12-10 21:36:00Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Michel Brabants <michel.linux@tiscali.be>
+
+pkgname=seahorse
+pkgver=3.2.2
+pkgrel=2
+pkgdesc="GNOME application for managing PGP keys."
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+url="http://projects.gnome.org/seahorse/"
+depends=('gtk3' 'libgnome-keyring' 'gnome-keyring' 'libsoup' 'gpgme' 'desktop-file-utils' 'hicolor-icon-theme' 'dconf')
+makedepends=('gettext' 'libldap' 'intltool' 'pkgconfig' 'gnome-doc-utils' 'gobject-introspection' 'openssh' 'libsm')
+optdepends=('openssh: SSH support')
+provides=('x11-ssh-askpass')
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+install=seahorse.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ seahorse-ssh-askpass.sh)
+sha256sums=('25146aa4c4bb4c375ec1afec524e1907852989bd1b0c9e12490326616ac6a7e9'
+ '400ea9a6084acc93f1dbd4223b95622bbd48071b763063328efba00de378b68c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-ldap --enable-hkp \
+ --disable-scrollkeeper \
+ --disable-update-mime-database \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm755 "$srcdir/seahorse-ssh-askpass.sh" \
+ "$pkgdir/etc/profile.d/seahorse-ssh-askpass.sh"
+}
diff --git a/extra/seahorse/seahorse-ssh-askpass.sh b/extra/seahorse/seahorse-ssh-askpass.sh
new file mode 100644
index 000000000..04f79d8f2
--- /dev/null
+++ b/extra/seahorse/seahorse-ssh-askpass.sh
@@ -0,0 +1,3 @@
+if [ -z "$SSH_ASKPASS" ] && [ -n "$DISPLAY" ]; then
+ export SSH_ASKPASS=/usr/lib/seahorse/seahorse-ssh-askpass
+fi
diff --git a/extra/seahorse/seahorse.install b/extra/seahorse/seahorse.install
new file mode 100644
index 000000000..9a98d52e0
--- /dev/null
+++ b/extra/seahorse/seahorse.install
@@ -0,0 +1,21 @@
+pkgname=seahorse
+
+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
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/seed/PKGBUILD b/extra/seed/PKGBUILD
new file mode 100644
index 000000000..bc02377ba
--- /dev/null
+++ b/extra/seed/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 139429 2011-10-01 19:01:18Z ibiru $
+#Maintainer : Ionut Biru <ibiru@archlinux.org>
+#Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=seed
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Library and interpreter for JavaScript with GObject type system bindings."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/Seed/"
+license=('LGPL')
+options=('!libtool')
+depends=('libwebkit3' 'gobject-introspection' 'gnome-js-common')
+makedepends=('intltool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('3d1eca40834b72a5730ddaf8a5f46b8df20ddb2b3b39687d1a84ef966d3d37c0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/setserial/PKGBUILD b/extra/setserial/PKGBUILD
new file mode 100644
index 000000000..d5a876d9a
--- /dev/null
+++ b/extra/setserial/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 137681 2011-09-10 12:01:21Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=setserial
+pkgver=2.17
+pkgrel=4
+pkgdesc="Allows to change various attributes of a serial device"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d ${pkgdir}/usr/{bin,share/man/man8}
+ make DESTDIR="${pkgdir}" install
+}
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..2d997b7ae
--- /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 'mips64el')
+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..a40936e48
--- /dev/null
+++ b/extra/shared-mime-info/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140226 2011-10-10 09:56:21Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=shared-mime-info
+pkgver=0.91
+pkgrel=1.1
+pkgdesc="Freedesktop.org Shared MIME Info"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('libxml2' 'glib2')
+makedepends=('intltool' 'pkgconfig')
+install=shared-mime-info.install
+url="http://freedesktop.org/Software/shared-mime-info"
+source=(http://freedesktop.org/~hadess/${pkgname}-${pkgver}.tar.xz
+ pbm.patch)
+md5sums=('982a211560ba4c47dc791ccff34e8fbc'
+ '3ec0e21a746f75a890716eb83d73e754')
+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..95f9ab81f
--- /dev/null
+++ b/extra/shared-mime-info/pbm.patch
@@ -0,0 +1,42 @@
+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>
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..4e61303ca
--- /dev/null
+++ b/extra/sharutils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 123635 2011-05-11 23:31:36Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sharutils
+pkgver=4.11.1
+pkgrel=1
+pkgdesc='Makes so-called shell archives out of many files'
+url='http://www.gnu.org/software/sharutils/'
+license=('GPL')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('perl' 'gettext' 'texinfo')
+source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('e9c9f869f8ecb3bcb30cc323e02e0a1266aeb109')
+
+install=install
+
+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/extra/sharutils/install b/extra/sharutils/install
new file mode 100644
index 000000000..1de76964c
--- /dev/null
+++ b/extra/sharutils/install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(sharutils.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir
+ done
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir
+ done
+}
diff --git a/extra/sip/PKGBUILD b/extra/sip/PKGBUILD
new file mode 100644
index 000000000..bd17db2be
--- /dev/null
+++ b/extra/sip/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 141389 2011-10-30 11:14:14Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com>, Ben <ben@benmazer.net>
+
+pkgbase=sip
+pkgname=('sip' 'python2-sip')
+pkgver=4.13
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.riverbankcomputing.com/software/sip/"
+license=('custom:"sip"')
+makedepends=('python' 'python2')
+source=("http://www.riverbankcomputing.com/static/Downloads/sip4/${pkgbase}-${pkgver}.tar.gz")
+md5sums=('21b4e2cad56e4156df2220143264b8ff')
+
+build() {
+ cd "${srcdir}"
+ cp -r ${pkgbase}-${pkgver} python2-${pkgbase}-${pkgver}
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ python configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ make
+
+ ### Python2 version ###
+ cd "${srcdir}/python2-${pkgbase}-${pkgver}"
+ python2 configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ make
+}
+
+package_sip() {
+ pkgdesc="A tool that makes it easy to create Python bindings for C and C++ libraries"
+ depends=('python')
+ replaces=('python-sip')
+ provides=('python-sip')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_python2-sip() {
+ pkgdesc="A tool that makes it easy to create Python2 bindings for C and C++ libraries"
+ depends=('sip' 'python2')
+
+ cd "${srcdir}/python2-${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # Provided by sip
+ rm "${pkgdir}/usr/bin/sip"
+}
diff --git a/extra/skanlite/PKGBUILD b/extra/skanlite/PKGBUILD
new file mode 100644
index 000000000..5b40b1484
--- /dev/null
+++ b/extra/skanlite/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 133044 2011-07-27 07:39:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=skanlite
+pkgver=0.7
+pkgrel=2
+pkgdesc="Image Scanning Application for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://kde-apps.org/content/show.php?content=109803'
+license=('GPL')
+depends=('kdebase-runtime' 'libksane')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+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..12810e517
--- /dev/null
+++ b/extra/slang/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 120537 2011-04-25 07:37:13Z remy $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=slang
+pkgver=2.2.4
+pkgrel=1
+pkgdesc="S-Lang is a powerful interpreted language"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+md5sums=('7fcfd447e378f07dd0c0bae671fe6487')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-all
+}
diff --git a/extra/slim/PKGBUILD b/extra/slim/PKGBUILD
new file mode 100644
index 000000000..1408a573f
--- /dev/null
+++ b/extra/slim/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 141487 2011-10-30 22:51:16Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=slim
+pkgver=1.3.2
+pkgrel=6
+pkgdesc='Desktop-independent graphical login manager for X11'
+arch=('i686' 'x86_64' 'mips64el')
+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')
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'rc.d'
+ 'pam.d'
+ 'logrotate'
+ 'gcc44.patch'
+ 'ptr_pam.patch'
+ 'no-host.patch'
+ 'restart.patch'
+ 'sigterm.patch'
+ 'session-name.patch'
+ 'tty-slowness.patch')
+sha1sums=('e421d5487732c8317f8f591906661e014b036358'
+ '6fe0ba83509af634bce47be34e30995965bffc79'
+ 'a0e991ef0ac5120465a3be014a26e70ba073b6ae'
+ 'b969cc902c1d9915a5609141a652c77b2732407b'
+ '51121d451116c768d0fc027ff1ea70aaaef036e7'
+ '640668c984a13593a1bfba8d3b503c005d5f401e'
+ 'b86eddd083fb9f6259e46c735f55ebe76c655bd3'
+ '2d526bc0c498bf307ee50e2d22b4f53ffa0c4435'
+ '0b35048723c527fb824c5e0f9b9064f751871785'
+ 'fdd35562ce010babaeb793f92f9906fdcdaf3f9f'
+ '213fefe8533c845ea8c40585b6a8097820d5e5d2')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e 's/png12/png14/g' Makefile
+ patch -p1 -i ../gcc44.patch # FS#14815: lacks include for gcc-4.4
+ patch -p1 -i ../ptr_pam.patch # FS#23995: pointer mishandling confuses PAM
+ patch -p1 -i ../no-host.patch # cf patch: do not set PAM host
+ patch -p1 -i ../restart.patch # cf patch: restart X server if killed
+ patch -p1 -i ../sigterm.patch # FS#23984: do not wait for input when SIGTERM'd
+ patch -p1 -i ../session-name.patch # FS#26693: fix default session name
+ patch -p1 -i ../tty-slowness.patch # FS#18313: fix sluggish TTY after slim start
+
+ make USE_PAM=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" MANDIR=/usr/share/man install
+
+ install -D -m755 ../rc.d "${pkgdir}"/etc/rc.d/slim
+ install -D -m644 ../pam.d "${pkgdir}"/etc/pam.d/slim
+ install -D -m644 ../logrotate "${pkgdir}"/etc/logrotate.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/install b/extra/slim/install
new file mode 100644
index 000000000..65aa77d72
--- /dev/null
+++ b/extra/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/logrotate b/extra/slim/logrotate
new file mode 100644
index 000000000..26ec3b0f4
--- /dev/null
+++ b/extra/slim/logrotate
@@ -0,0 +1,9 @@
+/var/log/slim.log {
+ compress
+ rotate 1
+ size 1024k
+ notifempty
+ missingok
+ copytruncate
+ noolddir
+}
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/pam.d b/extra/slim/pam.d
new file mode 100644
index 000000000..78a981f74
--- /dev/null
+++ b/extra/slim/pam.d
@@ -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/ptr_pam.patch b/extra/slim/ptr_pam.patch
new file mode 100644
index 000000000..3a3fbcdb7
--- /dev/null
+++ b/extra/slim/ptr_pam.patch
@@ -0,0 +1,52 @@
+diff -aur old/app.cpp new/app.cpp
+--- old/app.cpp 2010-07-08 07:04:10.000000000 +0200
++++ new/app.cpp 2011-05-01 18:30:52.933844872 +0200
+@@ -43,8 +43,8 @@
+ Panel* panel = *static_cast<Panel**>(appdata_ptr);
+ int result = PAM_SUCCESS;
+ for (int i=0; i<num_msg; i++){
+- resp[i]->resp=0;
+- resp[i]->resp_retcode=0;
++ (*resp)[i].resp=0;
++ (*resp)[i].resp_retcode=0;
+ switch(msg[i]->msg_style){
+ case PAM_PROMPT_ECHO_ON:
+ // We assume PAM is asking for the username
+@@ -53,13 +53,13 @@
+ case Panel::Suspend:
+ case Panel::Halt:
+ case Panel::Reboot:
+- resp[i]->resp=strdup("root");
++ (*resp)[i].resp=strdup("root");
+ break;
+
+ case Panel::Console:
+ case Panel::Exit:
+ case Panel::Login:
+- resp[i]->resp=strdup(panel->GetName().c_str());
++ (*resp)[i].resp=strdup(panel->GetName().c_str());
+ break;
+ }
+ break;
+@@ -75,7 +75,7 @@
+
+ default:
+ panel->EventHandler(Panel::Get_Passwd);
+- resp[i]->resp=strdup(panel->GetPasswd().c_str());
++ (*resp)[i].resp=strdup(panel->GetPasswd().c_str());
+ break;
+ }
+ break;
+@@ -91,9 +91,9 @@
+ }
+ if (result!=PAM_SUCCESS){
+ for (int i=0; i<num_msg; i++){
+- if (resp[i]->resp==0) continue;
+- free(resp[i]->resp);
+- resp[i]->resp=0;
++ if ((*resp)[i].resp==0) continue;
++ free((*resp)[i].resp);
++ (*resp)[i].resp=0;
+ };
+ free(*resp);
+ *resp=0;
diff --git a/extra/slim/rc.d b/extra/slim/rc.d
new file mode 100755
index 000000000..b0be7ffc5
--- /dev/null
+++ b/extra/slim/rc.d
@@ -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/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/session-name.patch b/extra/slim/session-name.patch
new file mode 100644
index 000000000..8211c4f72
--- /dev/null
+++ b/extra/slim/session-name.patch
@@ -0,0 +1,21 @@
+diff -Naur slim-1.3.2.old/panel.cpp slim-1.3.2.new/panel.cpp
+--- slim-1.3.2.old/panel.cpp 2010-10-24 06:01:15.117000019 +0000
++++ slim-1.3.2.new/panel.cpp 2010-10-24 17:26:30.987999967 +0000
+@@ -23,7 +23,7 @@
+ Root = root;
+ cfg = config;
+
+- session = "";
++ session = cfg->nextSession(session);
+
+ // Init GC
+ XGCValues gcv;
+@@ -188,7 +188,7 @@
+ }
+
+ void Panel::ClearPanel() {
+- session = "";
++ session = cfg->nextSession(session);
+ Reset();
+ XClearWindow(Dpy, Root);
+ XClearWindow(Dpy, Win);
diff --git a/extra/slim/sigterm.patch b/extra/slim/sigterm.patch
new file mode 100644
index 000000000..fbaeb7116
--- /dev/null
+++ b/extra/slim/sigterm.patch
@@ -0,0 +1,45 @@
+diff -aur old/panel.cpp new/panel.cpp
+--- old/panel.cpp 2011-04-29 15:15:57.210134850 +0200
++++ new/panel.cpp 2011-04-29 15:16:17.260285407 +0200
+@@ -10,6 +10,7 @@
+ */
+
+ #include <sstream>
++#include <poll.h>
+ #include "panel.h"
+
+ using namespace std;
+@@ -288,16 +289,24 @@
+ field=curfield;
+ bool loop = true;
+ OnExpose();
++
++ struct pollfd x11_pfd = {0};
++ x11_pfd.fd = ConnectionNumber(Dpy);
++ x11_pfd.events = POLLIN;
+ while(loop) {
+- XNextEvent(Dpy, &event);
+- switch(event.type) {
+- case Expose:
+- OnExpose();
+- break;
+-
+- case KeyPress:
+- loop=OnKeyPress(event);
+- break;
++ if(XPending(Dpy) || poll(&x11_pfd, 1, -1) > 0) {
++ while(XPending(Dpy)) {
++ XNextEvent(Dpy, &event);
++ switch(event.type) {
++ case Expose:
++ OnExpose();
++ break;
++
++ case KeyPress:
++ loop=OnKeyPress(event);
++ break;
++ }
++ }
+ }
+ }
+
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..d86c8a099
--- /dev/null
+++ b/extra/slv2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 131701 2011-07-13 15:39:04Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Leslie P. Polzer <polzer@stardawn.org>
+
+pkgname=slv2
+pkgver=0.6.6
+pkgrel=6
+pkgdesc="Library for LV2 hosts"
+arch=('i686' 'x86_64' 'mips64el')
+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/extra/slv2/slv2.changelog b/extra/slv2/slv2.changelog
new file mode 100644
index 000000000..f394a5067
--- /dev/null
+++ b/extra/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/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..cede125ec
--- /dev/null
+++ b/extra/smartmontools/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 143965 2011-11-30 23:00:34Z 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.42
+pkgrel=2
+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' 'mips64el')
+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=('4460bf9a79a1252ff5c00ba52cf76b2a'
+ '28c1b80c41dac52d433961dcfb4f70e0'
+ 'fb30e07f87f2c1d99532e018291ad3e8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-drivedb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir}/ install
+
+ 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..82dc3183e
--- /dev/null
+++ b/extra/smb4k/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 143967 2011-11-30 23:07:49Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Emanuele Rampichini <emanuele.rampichini@gmail.com>
+
+pkgname=smb4k
+pkgver=0.10.90
+pkgrel=2
+pkgdesc="A KDE program that browses samba shares"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://smb4k.berlios.de/"
+license=('GPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+install=smb4k.install
+source=("http://downloads.sourceforge.net/project/${pkgname}/Smb4K%20%28development%20releases%29/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('6e166eead700e0a21d4f324be4471e11')
+
+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..91d7da03d
--- /dev/null
+++ b/extra/smb4k/smb4k.install
@@ -0,0 +1,10 @@
+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)"
+ echo "==> These command will need to be re-run every upgrade of smbclient"
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/smpeg/PKGBUILD b/extra/smpeg/PKGBUILD
new file mode 100644
index 000000000..276bc8990
--- /dev/null
+++ b/extra/smpeg/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 137587 2011-09-09 23:30:58Z allan $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=smpeg
+pkgver=0.4.4
+pkgrel=6
+pkgdesc="SDL MPEG Player Library"
+arch=('i686' 'x86_64' 'mips64el')
+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 -i $srcdir/smpeg-0.4.4-gcc41.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make LDFLAGS+=-lstdc++
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # fix aclocal warnings
+ sed -i "s#(AM_PATH_SMPEG#([AM_PATH_SMPEG]#" ${pkgdir}/usr/share/aclocal/smpeg.m4
+}
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..cef1d8118
--- /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' 'mips64el')
+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..c0c7fe001
--- /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' 'mips64el')
+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..5e1e7a8fc
--- /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 'mips64el')
+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..7ae2be083
--- /dev/null
+++ b/extra/snd/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 139163 2011-09-30 13:55:54Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=snd
+pkgver=12.5
+pkgrel=1
+pkgdesc="An advanced sound editor"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ccrma.stanford.edu/software/snd/"
+license=('custom')
+depends=('lesstif' 'jack' 'gamin' 'gsl' 'fftw')
+makedepends=('ladspa' 'wavpack' 'flac' 'speex' 'libxpm'
+ 'timidity++' 'mpg123' 'vorbis-tools' 'gmp')
+optdepends=('ladspa' 'wavpack' 'flac' 'speex'
+ 'timidity++' 'mpg123' 'vorbis-tools')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('53bed2048fe9287f9a0e6a6d63536729')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --with-alsa \
+ --with-jack
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make prefix="$pkgdir/usr" install
+
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/socat/PKGBUILD b/extra/socat/PKGBUILD
new file mode 100644
index 000000000..4f1fe455e
--- /dev/null
+++ b/extra/socat/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144455 2011-12-06 03:46:24Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=socat
+pkgver=1.7.2.0
+pkgrel=1
+pkgdesc='Multipurpose relay'
+url='http://www.dest-unreach.org/socat/'
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('readline' 'openssl')
+source=("http://www.dest-unreach.org/socat/download/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('32181b08aa91309ee368e1e36a2cb337eedc425a')
+
+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/sofia-sip/PKGBUILD b/extra/sofia-sip/PKGBUILD
new file mode 100644
index 000000000..cb6cf1d73
--- /dev/null
+++ b/extra/sofia-sip/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 120138 2011-04-20 11:51:10Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+pkgname=sofia-sip
+pkgver=1.12.11
+pkgrel=1
+pkgdesc="An open-source SIP User-Agent library"
+arch=('i686' 'x86_64' 'mips64el')
+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=('f3582c62080eeecd3fa4cd5d4ccb4225')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-openssl
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/sonata/ChangeLog b/extra/sonata/ChangeLog
new file mode 100644
index 000000000..8311a287c
--- /dev/null
+++ b/extra/sonata/ChangeLog
@@ -0,0 +1,16 @@
+2011-07-26 Angel Velasquez <angvp@archlinux.org>
+ * sonata 1.6.2.1-7:
+ Applied patch to pull lyrics FS#25036
+
+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..00fff2cbe
--- /dev/null
+++ b/extra/sonata/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 132792 2011-07-26 09:02:50Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=sonata
+pkgver=1.6.2.1
+pkgrel=7
+pkgdesc="Elegant GTK+ music client for MPD"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sonata.berlios.de/"
+license=('GPL3')
+depends=('pygtk' 'python-mpd')
+optdepends=('gnome-python-extras: Enhanced system tray support'
+ 'tagpy: Metadata editing support'
+ 'dbus-python: Various extra functionality (e.g. multimedia keys support)')
+source=(http://download.berlios.de/${pkgname}/${pkgname}-$pkgver.tar.gz
+ info.py.patch)
+changelog=ChangeLog
+md5sums=('0b912325e7175abad3bf6c0edc071e05'
+ '595fcf7615035829b264afecb5a1beeb')
+
+build() {
+ cd "$srcdir/${pkgname}-$pkgver"
+ patch -Np0 -i $srcdir/info.py.patch
+}
+
+package() {
+ cd "$srcdir/${pkgname}-$pkgver"
+ python2 setup.py install --prefix=/usr --optimize 1 --root="$pkgdir"
+}
diff --git a/extra/sonata/info.py.patch b/extra/sonata/info.py.patch
new file mode 100644
index 000000000..e95cc3a08
--- /dev/null
+++ b/extra/sonata/info.py.patch
@@ -0,0 +1,15 @@
+--- sonata/info.py 2011-07-05 22:32:08.452556016 -0500
++++ sonata/info.py 2011-07-05 22:45:50.849311466 -0500
+@@ -393,9 +393,9 @@
+ if content.startswith("#REDIRECT [["):
+ addr = "http://lyricwiki.org/index.php?title=%s&action=edit" % urllib.quote(content.split("[[")[1].split("]]")[0])
+ content = urllib.urlopen(addr).read()
+- lyrics = content.split("&lt;lyrics&gt;")[1].split("&lt;/lyrics&gt;")[0]
+- if lyrics.strip() != "&lt;!-- PUT LYRICS HERE (and delete this entire line) --&gt;":
+- lyrics = misc.unescape_html(lyrics)
++ content = misc.unescape_html(content)
++ lyrics = content.split("<lyrics>")[1].split("</lyrics>")[0].strip()
++ if lyrics.strip() != "<!-- PUT LYRICS HERE (and delete this entire line) -->":
+ lyrics = misc.wiki_to_html(lyrics)
+ lyrics = lyrics.decode("utf-8")
+ # Save lyrics to file:
diff --git a/extra/soprano/PKGBUILD b/extra/soprano/PKGBUILD
new file mode 100644
index 000000000..260ee2d77
--- /dev/null
+++ b/extra/soprano/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 141613 2011-10-31 19:59:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=soprano
+pkgver=2.7.3
+pkgrel=1
+pkgdesc='A library which provides a highly usable object-oriented C++/Qt4 framework for RDF data'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://soprano.sourceforge.net/'
+license=('GPL' 'LGPL')
+depends=('qt' 'redland-storage-virtuoso' 'libiodbc' 'virtuoso')
+makedepends=('cmake' 'openjdk6' 'doxygen')
+[ "$CARCH" = "mips64el" ] && makedepends=('cmake' 'doxygen')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('2674ab79c3ec17e4d1b7ecfc76651cd0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+
+ [ "$CARCH" = "mips64el" ] || \
+ . /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_CLUCENE_INDEX=ON
+ 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..131310350
--- /dev/null
+++ b/extra/sound-juicer/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 121992 2011-05-01 07:56:32Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributer: Ben <contrasutra@myrealbox.com>
+
+pkgname=sound-juicer
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="A cd ripper application"
+arch=(i686 x86_64 'mips64el')
+license=('GPL')
+depends=('libmusicbrainz3' 'libgnome-media-profiles' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'brasero' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.0' 'pkgconfig' 'gnome-common' 'gtk-doc')
+options=(!emptydirs)
+#source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}-20110501.tar.xz)
+groups=('gnome-extra')
+install=sound-juicer.install
+url="http://www.burtonini.com/blog/computers/sound-juicer"
+sha256sums=('e4312ebf75c8798dd3f7a9d2d9ee7291b593bd68c7b0559742b91ca7a52674fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./autogen.sh
+ ./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 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/PKGBUILD b/extra/soundtouch/PKGBUILD
new file mode 100644
index 000000000..afc37c358
--- /dev/null
+++ b/extra/soundtouch/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 136036 2011-08-21 23:32:17Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=soundtouch
+pkgver=1.6.0
+pkgrel=1
+pkgdesc="An audio processing library"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ disable-mmx.patch
+ soundtouch-1.4.0-x86_64-asm-broken.patch)
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ patch -p1 -i "${srcdir}/soundtouch-1.4.0-mmx-sse-compile-fix.patch"
+ patch -p1 -i "${srcdir}/soundtouch-1.4.0-x86_64-asm-broken.patch"
+
+ if [ "${CARCH}" = "mips64el" ]; then
+ patch -Np1 -i "${srcdir}/disable-mmx.patch"
+ fi
+
+ ./bootstrap
+ case $CARCH in
+ i686)
+ ./configure --prefix=/usr --enable-shared
+ ;;
+ x86_64)
+ ./configure --prefix=/usr --enable-shared --with-pic
+ ;;
+ mips64el)
+ ./configure --prefix=/usr --enable-shared --with-pic
+ ;;
+ esac
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ make DESTDIR="${pkgdir}" pkgdocdir=/usr/share/doc/soundtouch install
+}
diff --git a/extra/soundtouch/disable-mmx.patch b/extra/soundtouch/disable-mmx.patch
new file mode 100644
index 000000000..7be579c43
--- /dev/null
+++ b/extra/soundtouch/disable-mmx.patch
@@ -0,0 +1,36 @@
+--- soundtouch/source/SoundTouch/Makefile.in~ 2011-07-04 15:26:59.621763536 -0300
++++ soundtouch/source/SoundTouch/Makefile.in 2011-07-04 15:27:29.404648895 -0300
+@@ -59,7 +59,7 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libSoundTouch_la_LIBADD =
+ am_libSoundTouch_la_OBJECTS = AAFilter.lo FIRFilter.lo \
+- FIFOSampleBuffer.lo mmx_optimized.lo sse_optimized.lo \
++ FIFOSampleBuffer.lo \
+ RateTransposer.lo SoundTouch.lo TDStretch.lo \
+ cpu_detect_x86_gcc.lo BPMDetect.lo PeakFinder.lo
+ libSoundTouch_la_OBJECTS = $(am_libSoundTouch_la_OBJECTS)
+@@ -206,14 +206,12 @@ EXTRA_DIST = 3dnow_win.cpp cpu_detect_x8
+ noinst_HEADERS = AAFilter.h cpu_detect.h cpu_detect_x86_gcc.cpp FIRFilter.h RateTransposer.h TDStretch.h PeakFinder.h
+ lib_LTLIBRARIES = libSoundTouch.la
+ #
+-libSoundTouch_la_SOURCES = AAFilter.cpp FIRFilter.cpp FIFOSampleBuffer.cpp mmx_optimized.cpp sse_optimized.cpp RateTransposer.cpp SoundTouch.cpp TDStretch.cpp cpu_detect_x86_gcc.cpp BPMDetect.cpp PeakFinder.cpp
++libSoundTouch_la_SOURCES = AAFilter.cpp FIRFilter.cpp FIFOSampleBuffer.cpp RateTransposer.cpp SoundTouch.cpp TDStretch.cpp cpu_detect_x86_gcc.cpp BPMDetect.cpp PeakFinder.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 = -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:
+@@ -292,8 +290,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SoundTouch.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TDStretch.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu_detect_x86_gcc.Plo@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmx_optimized.Plo@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sse_optimized.Plo@am__quote@
+
+ .cpp.o:
+ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
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..562e38e97
--- /dev/null
+++ b/extra/soundtouch/soundtouch-1.4.0-mmx-sse-compile-fix.patch
@@ -0,0 +1,14 @@
+diff -up soundtouch/source/SoundTouch/Makefile.am~ soundtouch/source/SoundTouch/Makefile.am
+--- soundtouch/source/SoundTouch/Makefile.am~ 2009-02-15 11:21:36.000000000 +0100
++++ soundtouch/source/SoundTouch/Makefile.am 2009-02-15 11:23:30.000000000 +0100
+@@ -36,7 +36,9 @@
+ # 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
+
+
+ # other linking flags to add
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..333ad967f
--- /dev/null
+++ b/extra/source-highlight/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144063 2011-12-02 20:54:47Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=source-highlight
+pkgver=3.1.5
+pkgrel=2
+pkgdesc="Convert source code to syntax highlighted document"
+arch=('i686' 'x86_64' 'mips64el')
+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=('3117ee47c1c6b0668667e20d2aca3757')
+
+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
+}
diff --git a/extra/source-highlight/source-highlight.install b/extra/source-highlight/source-highlight.install
new file mode 100644
index 000000000..4fd1b3005
--- /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..a0e982625
--- /dev/null
+++ b/extra/sox/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142642 2011-11-12 17:15:40Z ibiru $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=sox
+pkgver=14.3.2
+pkgrel=4
+pkgdesc="The Swiss Army knife of sound processing tools"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://sox.sourceforge.net/"
+license=('GPL' 'LGPL')
+depends=('libltdl' 'file' 'libsndfile' 'libpng' 'lame' 'opencore-amr')
+makedepends=('ffmpeg' 'libao' 'libmad' 'libid3tag' 'wavpack' 'libpulse')
+optdepends=('libao: for ao plugin'
+ 'ffmpeg: for ffmpeg plugin'
+ 'libmad: for mp3 plugin'
+ 'libid3tag: for mp3 plugin'
+ 'wavpack: for wavpack plugin'
+ 'libpulse: for pulse plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ sox-14.3.2-ffmpeg.patch)
+sha1sums=('026636c90d7accba76225a2821aaa2ffa6fe41a3'
+ '86caa6aa86a0bf7a048522114d4efd11acbbda70')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/sox-14.3.2-ffmpeg.patch"
+ sed -i 's|man1/sox.1 soxeffect.7|man1/sox.1.gz soxeffect.7.gz|' Makefile.am
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-dyn-default --with-distro="Arch Linux"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/sox/sox-14.3.2-ffmpeg.patch b/extra/sox/sox-14.3.2-ffmpeg.patch
new file mode 100644
index 000000000..5289b9b47
--- /dev/null
+++ b/extra/sox/sox-14.3.2-ffmpeg.patch
@@ -0,0 +1,40 @@
+Index: sox-14.3.2/src/ffmpeg.c
+===================================================================
+--- sox-14.3.2.orig/src/ffmpeg.c
++++ sox-14.3.2/src/ffmpeg.c
+@@ -91,7 +91,7 @@ static int stream_component_open(priv_t
+
+ if (!codec || avcodec_open(enc, codec) < 0)
+ return -1;
+- if (enc->codec_type != CODEC_TYPE_AUDIO) {
++ if (enc->codec_type != AVMEDIA_TYPE_AUDIO) {
+ lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type);
+ return -1;
+ }
+@@ -182,7 +182,7 @@ static int startread(sox_format_t * ft)
+ /* Find audio stream (FIXME: allow different stream to be selected) */
+ for (i = 0; (unsigned)i < ffmpeg->ctxt->nb_streams; i++) {
+ AVCodecContext *enc = ffmpeg->ctxt->streams[i]->codec;
+- if (enc->codec_type == CODEC_TYPE_AUDIO && ffmpeg->audio_index < 0) {
++ if (enc->codec_type == AVMEDIA_TYPE_AUDIO && ffmpeg->audio_index < 0) {
+ ffmpeg->audio_index = i;
+ break;
+ }
+@@ -273,7 +273,7 @@ static AVStream *add_audio_stream(sox_fo
+
+ c = st->codec;
+ c->codec_id = codec_id;
+- c->codec_type = CODEC_TYPE_AUDIO;
++ c->codec_type = AVMEDIA_TYPE_AUDIO;
+
+ /* put sample parameters */
+ c->bit_rate = 256000; /* FIXME: allow specification */
+@@ -423,7 +423,7 @@ static size_t write_samples(sox_format_t
+ av_init_packet(&pkt);
+ pkt.size = avcodec_encode_audio(c, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE, ffmpeg->samples);
+ pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, ffmpeg->audio_st->time_base);
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ pkt.stream_index = ffmpeg->audio_st->index;
+ pkt.data = ffmpeg->audio_buf_aligned;
+
diff --git a/extra/spamassassin/PKGBUILD b/extra/spamassassin/PKGBUILD
new file mode 100644
index 000000000..ee4d4c060
--- /dev/null
+++ b/extra/spamassassin/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 129532 2011-06-28 18:19:06Z angvp $
+# Maintainer: Dale Blount <dale@archlinux.org>
+# Contributor: Manolis Tzanidakis
+pkgname=spamassassin
+pkgver=3.3.2
+pkgrel=2
+pkgdesc="A mail filter to identify spam."
+arch=(i686 x86_64 'mips64el')
+license=(APACHE)
+url="http://spamassassin.apache.org"
+depends=('perl>=5.14' 'perl-net-dns' 'perl-uri' 'perl-html-parser' \
+ 'perl-digest-sha1' 'perl-io-socket-ssl' 'openssl' \
+ 'perl-libwww' 'perl-mail-spf' \
+ 'zlib' 're2c')
+ # perl-archive-tar perl-io-zlib)
+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'
+ 'perl-mail-dkim: DomainKeys Identified Mail (DKIM) checking')
+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=('d1d62cc5c6eac57e88c4006d9633b81e'
+ '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
+}
+
+check() {
+ cd ${srcdir}/Mail-SpamAssassin-${pkgver}
+ /usr/bin/make test || true
+}
+
+package() {
+ cd ${srcdir}/Mail-SpamAssassin-${pkgver}
+ /usr/bin/make DESTDIR=${pkgdir} install
+
+ /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..858de7df2
--- /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 'mips64el')
+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..949f5123e
--- /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' 'mips64el')
+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/speex/PKGBUILD b/extra/speex/PKGBUILD
new file mode 100644
index 000000000..8acbf9792
--- /dev/null
+++ b/extra/speex/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137583 2011-09-09 22:58:20Z allan $
+# Maintainer:
+# Contributer: Jason Chu <jason@archlinux.org>
+
+pkgname=speex
+pkgver=1.2rc1
+pkgrel=2
+pkgdesc="A free codec for free speech"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.speex.org/"
+license=('BSD')
+depends=('libogg')
+options=('!libtool')
+source=(http://downloads.us.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae')
+
+build() {
+ cd $srcdir/speex-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $srcdir/speex-$pkgver
+ make DESTDIR=$startdir/pkg install
+
+ install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/squid/PKGBUILD b/extra/squid/PKGBUILD
new file mode 100644
index 000000000..d9b5ee2db
--- /dev/null
+++ b/extra/squid/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 140501 2011-10-15 22:54:05Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=squid
+pkgver=3.1.16
+pkgrel=1
+pkgdesc="A full-featured Web proxy cache server."
+arch=(i686 x86_64 'mips64el')
+url="http://www.squid-cache.org"
+depends=('openssl' 'pam' 'cron' 'perl' 'libtool')
+makedepends=('libcap>=2.16')
+license=('GPL')
+backup=(etc/squid/squid.conf etc/squid/mime.conf etc/conf.d/squid)
+install=squid.install
+source=(http://www.squid-cache.org/Versions/v3/3.1/${pkgname}-${pkgver}.tar.bz2
+ squid squid.conf.d squid.pam squid.cron)
+md5sums=('675aef4411d41f5b55b15a29ad6e5261'
+ 'd213b0cc1db72b749bb8c88716fdab39'
+ '2383772ef94efddc7b920628bc7ac5b0'
+ '270977cdd9b47ef44c0c427ab9034777'
+ '5e17df989e2a74e869790c066f61225b')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # gcc 4.6 doesn't support -fhuge-objects.
+ sed '/^ HUGE_OBJECT_FLAG=/ s/"-fhuge-objects"//' -i configure
+
+ # fix cache_dir, cache_dir size, and effective group.
+ sed '/^DEFAULT_SWAP_DIR/ s@/cache@/cache/squid@' -i src/Makefile.in
+ sed '/^#cache_dir/ s/100/256/
+ /^NAME: cache_effective_group/ {n;n;s/none/proxy/}' -i src/cf.data.pre
+
+ ./configure --prefix=/usr --datadir=/usr/share/squid \
+ --sysconfdir=/etc/squid --libexecdir=/usr/lib/squid \
+ --localstatedir=/var --with-logdir=/var/log/squid \
+ --enable-auth="basic,digest,ntlm" --enable-removal-policies="lru,heap" \
+ --enable-digest-auth-helpers="password" --enable-storeio="aufs,ufs,diskd" \
+ --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_lm,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-arp-acl --enable-htcp --enable-carp --enable-epoll \
+ --with-filedescriptors=4096 --with-large-files --enable-arp-acl \
+ --with-default-user=proxy \
+ --enable-async-io --enable-truncate
+#some versions have build problems with both async and truncate enabled:
+# --enable-async-io
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ 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
+}
+# vim: ts=2 sw=2 et ft=sh
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.conf.d b/extra/squid/squid.conf.d
new file mode 100644
index 000000000..ea248b76c
--- /dev/null
+++ b/extra/squid/squid.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to squid
+#
+SQUID_ARGS="-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..e7aa5ff68
--- /dev/null
+++ b/extra/squid/squid.install
@@ -0,0 +1,26 @@
+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: http://www.squid-cache.org/Versions/v3/3.1/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/srm/PKGBUILD b/extra/srm/PKGBUILD
new file mode 100644
index 000000000..1ca84e154
--- /dev/null
+++ b/extra/srm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143982 2011-12-01 15:00:19Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=srm
+pkgver=1.2.11
+pkgrel=2
+pkgdesc="A secure replacement for rm(1) that overwrites data before unlinking"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/srm/LICENSE"
+}
diff --git a/extra/sshfs/PKGBUILD b/extra/sshfs/PKGBUILD
new file mode 100644
index 000000000..f12852bee
--- /dev/null
+++ b/extra/sshfs/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143984 2011-12-01 15:06:29Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=sshfs
+pkgver=2.3
+pkgrel=2
+pkgdesc="FUSE client based on the SSH File Transfer Protocol"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://fuse.sourceforge.net/sshfs.html"
+license=('GPL')
+depends=('fuse' 'glib2' 'openssh')
+makedepends=('pkg-config')
+source=("http://downloads.sourceforge.net/sourceforge/fuse/${pkgname}-fuse-${pkgver}.tar.gz")
+md5sums=('f72f12fda186dbd92382f70d25662ed3')
+
+build() {
+ cd "${srcdir}/${pkgname}-fuse-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-fuse-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ssmtp/PKGBUILD b/extra/ssmtp/PKGBUILD
new file mode 100644
index 000000000..c6268ad4e
--- /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' 'mips64el')
+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/NetDictRequests.patch b/extra/stardict/NetDictRequests.patch
new file mode 100644
index 000000000..4d6fe145a
--- /dev/null
+++ b/extra/stardict/NetDictRequests.patch
@@ -0,0 +1,12 @@
+diff -aur old/dict/src/lib/compositelookup.cpp new/dict/src/lib/compositelookup.cpp
+--- old/dict/src/lib/compositelookup.cpp 2011-07-02 23:58:40.000000000 -0700
++++ new/dict/src/lib/compositelookup.cpp 2011-07-18 07:40:01.795710505 -0700
+@@ -50,7 +50,7 @@
+ void CompositeLookup::send_net_dict_request(const std::string& dict_id, const std::string& key)
+ {
+ NetDictRequest request(dict_id, key);
+- g_assert(NetDictRequests.end() == std::find(NetDictRequests.begin(), NetDictRequests.end(), request));
++ std::find(NetDictRequests.begin(), NetDictRequests.end(), request);
+ NetDictRequests.push_back(request);
+ }
+
diff --git a/extra/stardict/PKGBUILD b/extra/stardict/PKGBUILD
new file mode 100644
index 000000000..fe150edb8
--- /dev/null
+++ b/extra/stardict/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 131980 2011-07-18 15:27:26Z bisson $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Neil Lin <neil@vip.url.com.tw>
+
+pkgname=stardict
+pkgver=3.0.3
+pkgrel=1
+pkgdesc='International dictionary software'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.stardict.org/'
+license=('GPL')
+depends=('enchant' 'gtk2' 'libsigc++' 'libsm')
+makedepends=('intltool' 'popt' 'gnome-doc-utils' 'libmysqlclient')
+options=('!libtool' '!emptydirs')
+source=("http://stardict-3.googlecode.com/files/stardict-${pkgver}.tar.bz2"
+ 'NetDictRequests.patch'
+ 'gcc46.patch')
+sha1sums=('5043c0918963cd4d40e6d6289353f295766ec74f'
+ '97af8fdb73c8f04674234b629c6867254e9bd043'
+ '6605a9cdfc4abc2a0ab4462d1228233d34806f0a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # ugly hack to avoid crashing with empty dictionaries
+ patch -p1 -i ../NetDictRequests.patch
+ patch -p1 -i ../gcc46.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/gcc46.patch b/extra/stardict/gcc46.patch
new file mode 100644
index 000000000..944b9635c
--- /dev/null
+++ b/extra/stardict/gcc46.patch
@@ -0,0 +1,11 @@
+diff -aur old/dict/stardict-plugins/stardict-wordnet-plugin/utils.h new/dict/stardict-plugins/stardict-wordnet-plugin/utils.h
+--- old/dict/stardict-plugins/stardict-wordnet-plugin/utils.h 2011-07-18 06:58:58.519404744 -0700
++++ new/dict/stardict-plugins/stardict-wordnet-plugin/utils.h 2011-07-18 07:01:10.739734313 -0700
+@@ -26,6 +26,7 @@
+ #ifndef __TYPES_H__
+ #define __TYPES_H__
+
++#include <cstddef>
+ #include <math.h>
+
+ typedef float single;
diff --git a/extra/startup-notification/PKGBUILD b/extra/startup-notification/PKGBUILD
new file mode 100644
index 000000000..bec3abae5
--- /dev/null
+++ b/extra/startup-notification/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 144441 2011-12-05 19:49:41Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=startup-notification
+pkgver=0.12
+pkgrel=2
+pkgdesc="Monitor and display application startup"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('libx11' 'xcb-util>=0.3.8')
+options=('!libtool')
+url="http://www.freedesktop.org"
+source=(http://www.freedesktop.org/software/startup-notification/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2cd77326d4dcaed9a5a23a1232fb38e9')
+
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/stellarium/PKGBUILD b/extra/stellarium/PKGBUILD
new file mode 100644
index 000000000..5ea251f2b
--- /dev/null
+++ b/extra/stellarium/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142487 2011-11-10 19:40:07Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=stellarium
+pkgver=0.11.1
+pkgrel=1
+pkgdesc="A stellarium with great graphics and a nice database of sky-objects"
+arch=("i686" "x86_64" 'mips64el')
+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)
+sha1sums=('e721a9cef0c736354c477fdb25cce607a9a3b52e'
+ 'c9cc79212542238227b5bd6af99f60fe056f4ab2'
+ 'b890d3b6c4dcfcfcc696514202af11b2a50c0fea')
+
+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..3ccdc693e
--- /dev/null
+++ b/extra/strace/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143986 2011-12-01 15:13:39Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=strace
+pkgver=4.6
+pkgrel=2
+pkgdesc="A useful diagnositic, instructional, and debugging tool"
+arch=('i686' 'x86_64' 'mips64el')
+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..52144364a
--- /dev/null
+++ b/extra/streamripper/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137607 2011-09-10 03:20:46Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=streamripper
+pkgver=1.64.6
+pkgrel=2
+pkgdesc="Records and splits streaming mp3 into tracks"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://streamripper.sourceforge.net"
+license=('GPL')
+depends=('glib2' 'libmad' 'faad2' '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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/streamtuner/PKGBUILD b/extra/streamtuner/PKGBUILD
new file mode 100644
index 000000000..07243483b
--- /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' 'mips64el')
+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..e6f83fd19
--- /dev/null
+++ b/extra/strigi/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 144965 2011-12-12 09:11:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=strigi
+pkgver=0.7.7
+pkgrel=1
+pkgdesc="Fast crawling desktop search engine with Qt4 GUI"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.vandenoever.info/software/strigi/"
+license=('GPL2')
+depends=('exiv2' 'libxml2' 'boost-libs')
+makedepends=('qt' 'cmake' 'pkg-config' 'boost')
+optdepends=('kdegraphics-strigi-analyzer: strigi analyzers for various graphics file'
+ 'kdesdk-strigi-analyzer: strigi analyzer for KDE SDK')
+#source=("http://www.vandenoever.info/software/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('ca0a0fd5c2b99879f6330837aeede996')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_INOTIFY=ON \
+ -DENABLE_LOG4CXX=OFF \
+ -DENABLE_FAM=OFF \
+ -DENABLE_CLUCENE=OFF \
+ -DENABLE_CLUCENE_NG=OFF \
+ -DENABLE_FFMPEG=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}/build/libstreams"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}/build/libstreamanalyzer"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}/build/strigiclient/lib/searchclient/qtdbus"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}/build/strigiutils"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/strigi/libstreamanalyzer_pdf.patch b/extra/strigi/libstreamanalyzer_pdf.patch
new file mode 100644
index 000000000..6871d67fa
--- /dev/null
+++ b/extra/strigi/libstreamanalyzer_pdf.patch
@@ -0,0 +1,27 @@
+commit 23d5ce636b7897dc3f233a5293f3164dac50566d
+Author: Jos van den Oever <jos@vandenoever.info>
+Date: Sun Jul 31 12:32:44 2011 +0200
+
+ Revert patch that breaks parsing of PDF files.
+ The offending patch was 672c8b7b3cb4400bc505421f4cc70cf742ed9df0.
+
+diff --git a/lib/pdf/pdfparser.cpp b/lib/pdf/pdfparser.cpp
+index c27f691..df2f7e5 100644
+--- a/lib/pdf/pdfparser.cpp
++++ b/lib/pdf/pdfparser.cpp
+@@ -34,12 +34,13 @@ StreamStatus
+ PdfParser::read(int32_t min, int32_t max) {
+ int32_t off = (int32_t)(pos-start);
+ int32_t d = (int32_t)(stream->position() - bufferStart);
+- bufferStart += off;
++ min += d;
++ if (max > 0) max += d;
+ stream->reset(bufferStart);
+ int32_t n = stream->read(start, min, max);
+ // printf("objstart %i %i\n", d, n);
+ if (n < min) return stream->status();
+- pos = start;
++ pos = start + off;
+ end = start + n;
+ return Ok;
+ }
diff --git a/extra/subversion/PKGBUILD b/extra/subversion/PKGBUILD
new file mode 100644
index 000000000..3a061100e
--- /dev/null
+++ b/extra/subversion/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 144954 2011-12-12 00:43:44Z eric $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=subversion
+pkgver=1.7.2
+pkgrel=1
+pkgdesc="A Modern Concurrent Version Control System"
+arch=('i686' 'x86_64' 'mips64el')
+license=('APACHE')
+depends=('neon' 'apr-util' 'sqlite3' 'file')
+optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \
+ 'python2: for some hook scripts' 'ruby: for some hook scripts')
+makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'java-runtime' 'java-environment'
+ 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('krb5' 'apache' 'python2' 'perl' 'swig'
+ 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
+backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
+url="http://subversion.apache.org/"
+provides=('svn')
+options=('!makeflags' '!libtool')
+source=(http://apache.mirror.rafal.ca/subversion/$pkgname-$pkgver.tar.bz2{,.asc}
+ svnserve svn svnserve.conf svnmerge.py
+ subversion.rpath.fix.patch)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export PYTHON=/usr/bin/python2
+
+ patch -p0 -i ../subversion.rpath.fix.patch
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py
+
+ # configure
+ autoreconf
+ if [ "$CARCH" = "mips64el" ]; then
+ ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
+ --with-zlib=/usr --with-neon=/usr --with-apxs \
+ --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.2 \
+ --with-gnome-keyring --with-kwallet
+ else
+ ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
+ --with-zlib=/usr --with-neon=/usr --with-apxs \
+ --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.2 \
+ --enable-javahl --with-gnome-keyring --with-kwallet
+ fi
+
+ make external-all
+ make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all
+ make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
+ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl # swig-rb
+}
+
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# export LANG=C LC_ALL=C
+# make check check-swig-pl check-swig-py check-javahl CLEANUP=yes # check-swig-rb
+#}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export LD_LIBRARY_PATH="${pkgdir}"/usr/lib:$LD_LIBRARY_PATH
+ make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \
+ swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
+ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
+ install install-swig-py install-swig-pl install-javahl # install-swig-rb
+
+ install -d "${pkgdir}"/usr/share/subversion
+ cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/
+ rm -f "${pkgdir}"/usr/share/subversion/hook-scripts/*.in
+
+ rm -f "${pkgdir}"/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist
+ rm -rf "${pkgdir}"/usr/lib/perl5/core_perl
+
+ install -D -m 755 "${srcdir}"/svnserve "${pkgdir}"/etc/rc.d/svnserve
+ install -D -m 644 "${srcdir}"/svn "${pkgdir}"/etc/xinetd.d/svn
+ install -D -m 644 "${srcdir}"/svnserve.conf "${pkgdir}"/etc/conf.d/svnserve
+ install -m 755 "${srcdir}"/svnmerge.py "${pkgdir}"/usr/bin/svnmerge
+
+ # bash completion
+ install -Dm 644 tools/client-side/bash_completion \
+ "${pkgdir}"/etc/bash_completion.d/subversion
+}
diff --git a/extra/subversion/subversion-perl-bindings.patch b/extra/subversion/subversion-perl-bindings.patch
new file mode 100644
index 000000000..3c34daa47
--- /dev/null
+++ b/extra/subversion/subversion-perl-bindings.patch
@@ -0,0 +1,12 @@
+diff -Naur subversion-1.6.17.ori/subversion/bindings/swig/perl/native/Makefile.PL.in subversion-1.6.17/subversion/bindings/swig/perl/native/Makefile.PL.in
+--- subversion-1.6.17.ori/subversion/bindings/swig/perl/native/Makefile.PL.in 2010-11-24 20:42:16.000000000 +0000
++++ subversion-1.6.17/subversion/bindings/swig/perl/native/Makefile.PL.in 2011-07-01 20:16:16.520892074 +0000
+@@ -43,7 +43,7 @@
+ my %config = (
+ ABSTRACT => 'Perl bindings for Subversion',
+ DEFINE => $cppflags,
+- CCFLAGS => $cflags,
++ CCFLAGS => $Config{ccflags},
+ INC => join(' ',$apr_cflags, $apu_cflags,
+ " -I$swig_srcdir/perl/libsvn_swig_perl",
+ " -I$svnlib_srcdir/include",
diff --git a/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/sushi/PKGBUILD b/extra/sushi/PKGBUILD
new file mode 100644
index 000000000..721620a38
--- /dev/null
+++ b/extra/sushi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140953 2011-10-20 05:44:16Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=sushi
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="A quick previewer for Nautilus"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL2')
+groups=(gnome-extra)
+depends=('clutter-gtk' 'clutter-gst' 'gjs' 'libmusicbrainz3' 'libwebkit3' 'gtksourceview3' 'evince')
+makedepends=('intltool' 'gobject-introspection')
+options=(!libtool)
+source=(http://download.gnome.org/sources/$pkgname/0.2/$pkgname-$pkgver.tar.xz)
+sha256sums=('b18d166a52738bceeca178318212ef4bd6a5562122f105df40bcd436621cbdb1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --libexecdir=/usr/lib/sushi
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/sweep/PKGBUILD b/extra/sweep/PKGBUILD
new file mode 100644
index 000000000..e4c38ba27
--- /dev/null
+++ b/extra/sweep/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 137595 2011-09-10 00:12:32Z allan $
+# Maintainer:
+# Contributer: Jason Chu <jchu@xentac.net>
+
+pkgname=sweep
+pkgver=0.9.3
+pkgrel=2
+pkgdesc="Sound editing and mixing program"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.metadecks.org/software/sweep/"
+license=('GPL2')
+depends=('gtk2' 'libsamplerate' 'libmad' 'libvorbis' 'alsa-lib' 'speex')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('69e19bad2673f20e15224c0a5b5d4c85')
+
+build() {
+ cd $srcdir/sweep-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $srcdir/sweep-$pkgver
+ make prefix=$pkgdir/usr sysconfdir=$pkgdir/etc localstatedir=$pkgdir/var install
+}
diff --git a/extra/swh-plugins/PKGBUILD b/extra/swh-plugins/PKGBUILD
new file mode 100644
index 000000000..17f9a44ad
--- /dev/null
+++ b/extra/swh-plugins/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 126506 2011-06-05 21:13:52Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Contributor: Robert Emil Berge
+
+pkgname=swh-plugins
+pkgver=0.4.15
+pkgrel=4
+pkgdesc="Steve Harris' LADSPA plug-ins suite"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://plugin.org.uk/"
+license=('GPL')
+depends=('fftw' 'ladspa')
+makedepends=('libxml2')
+groups=('ladspa-plugins')
+source=("http://plugin.org.uk/releases/$pkgver/$pkgname-$pkgver.tar.gz"
+ 'mbeq_crash_fix.patch')
+md5sums=('2fbdccef2462ea553901acd429fa3573'
+ 'a60422c8dea95bee6f9adcdc70dff7e0')
+
+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
+
+ # fix Firefox crash on x64 when
+ # plugin is in use by ALSA;
+ # see https://bugs.archlinux.org/task/24579
+ patch -Np1 -i "$srcdir/mbeq_crash_fix.patch"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/swh-plugins/mbeq_crash_fix.patch b/extra/swh-plugins/mbeq_crash_fix.patch
new file mode 100644
index 000000000..37ddd33a9
--- /dev/null
+++ b/extra/swh-plugins/mbeq_crash_fix.patch
@@ -0,0 +1,39 @@
+diff -Nru swh-plugins-0.4.15.orig/mbeq_1197.c swh-plugins-0.4.15/mbeq_1197.c
+--- swh-plugins-0.4.15.orig/mbeq_1197.c 2006-08-09 01:49:15.000000000 +1000
++++ swh-plugins-0.4.15/mbeq_1197.c 2011-06-05 10:57:17.929107102 +1000
+@@ -457,7 +457,8 @@
+ #endif
+
+ // Multiply the bins magnitudes by the coeficients
+- for (i = 0; i < FFT_LENGTH/2; i++) {
++ comp[0] *= coefs[0];
++ for (i = 1; i < FFT_LENGTH/2; i++) {
+ comp[i] *= coefs[i];
+ comp[FFT_LENGTH-i] *= coefs[i];
+ }
+diff -Nru swh-plugins-0.4.15.orig/mbeq_1197.so.c swh-plugins-0.4.15/mbeq_1197.so.c
+--- swh-plugins-0.4.15.orig/mbeq_1197.so.c 2003-10-22 02:13:40.000000000 +1000
++++ swh-plugins-0.4.15/mbeq_1197.so.c 2011-06-05 10:57:52.265774336 +1000
+@@ -446,7 +446,8 @@
+ #endif
+
+ // Multiply the bins magnitudes by the coeficients
+- for (i = 0; i < FFT_LENGTH/2; i++) {
++ comp[0] *= coefs[0];
++ for (i = 1; i < FFT_LENGTH/2; i++) {
+ comp[i] *= coefs[i];
+ comp[FFT_LENGTH-i] *= coefs[i];
+ }
+diff -Nru swh-plugins-0.4.15.orig/mbeq_1197.xml swh-plugins-0.4.15/mbeq_1197.xml
+--- swh-plugins-0.4.15.orig/mbeq_1197.xml 2005-06-01 19:51:58.000000000 +1000
++++ swh-plugins-0.4.15/mbeq_1197.xml 2011-06-05 10:57:39.335774121 +1000
+@@ -171,7 +171,8 @@
+ #endif
+
+ // Multiply the bins magnitudes by the coeficients
+- for (i = 0; i < FFT_LENGTH/2; i++) {
++ comp[0] *= coefs[0];
++ for (i = 1; i < FFT_LENGTH/2; i++) {
+ comp[i] *= coefs[i];
+ comp[FFT_LENGTH-i] *= coefs[i];
+ }
diff --git a/extra/swig/PKGBUILD b/extra/swig/PKGBUILD
new file mode 100644
index 000000000..d1b6f245a
--- /dev/null
+++ b/extra/swig/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 125892 2011-05-31 15:18:06Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=swig
+pkgver=2.0.4
+pkgrel=1
+pkgdesc="Generate scripting interfaces to C/C++ code"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.swig.org/"
+license=('custom')
+depends=('zlib' 'pcre')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('ace563563a8f6f367ba82236e5bea240adea0d94')
+
+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/${pkgname}/LICENSE
+ install -D -m644 LICENSE-UNIVERSITIES "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-UNIVERSITIES
+}
diff --git a/extra/swt/PKGBUILD b/extra/swt/PKGBUILD
new file mode 100644
index 000000000..01ca0fe9e
--- /dev/null
+++ b/extra/swt/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 138506 2011-09-26 08:00:12Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
+pkgname=swt
+pkgver=3.7.1
+pkgrel=1
+pkgdesc="An open source widget toolkit for Java"
+_date=201109091335
+arch=(i686 x86_64 mips64el)
+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')
+optdepends=('libgnomeui' 'mesa')
+makedepends=('openjdk6' 'libxtst' 'mesa' 'libgnomeui' 'unzip' 'pkgconfig' 'apache-ant')
+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=('b7d6d24e2feb7489b0baa0ce941ea4d2'
+ '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=('8816631e7993a783a87e98ba39da7fa6'
+ '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
+
+ [ "${CARCH}" = "x86_64" ] && export SWT_PTR_CFLAGS=-DJNI64
+
+ make -f make_linux.mak make_awt
+ make -f make_linux.mak make_swt
+ make -f make_linux.mak make_atk
+ make -f make_linux.mak make_gnome
+# "XULRunner >= 2.0 is not currently supported"
+# https://bugs.eclipse.org/bugs/show_bug.cgi?id=327696
+#
+# 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
+# make -f make_linux.mak make_xulrunner
+
+ make -f make_linux.mak make_cairo
+ make -f make_linux.mak make_glx
+
+ ant compile
+}
+
+package() {
+ cd "${srcdir}"
+ cp version.txt build/version.txt
+ cp src/org/eclipse/swt/internal/SWTMessages.properties build/org/eclipse/swt/internal/
+
+ ant jar
+
+ install -m755 -d "${pkgdir}/usr/share/java"
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m644 swt.jar "${pkgdir}/usr/share/java/"
+ install -m755 *.so "${pkgdir}/usr/lib/"
+}
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/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..ebd117193
--- /dev/null
+++ b/extra/sysklogd/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 122666 2011-05-05 23:43:52Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=sysklogd
+pkgver=1.5
+pkgrel=3
+pkgdesc="System and kernel log daemons"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.infodrom.org/projects/sysklogd/"
+license=('GPL' 'BSD')
+depends=('glibc' 'logrotate')
+provides=('logger')
+backup=('etc/syslog.conf' 'etc/logrotate.d/syslog')
+source=(http://www.infodrom.org/projects/sysklogd/download/${pkgname}-${pkgver}.tar.gz \
+ sysklogd-debian.patch syslog.conf syslog.logrotate syslogd klogd LICENSE)
+md5sums=('e053094e8103165f98ddafe828f6ae4b'
+ '1759e667ecf07ba23297f2c05b8dbe3f'
+ 'b8bc568494359fa932b7a5e17c4ba4de'
+ 'fb3fdb03959ff62ede00487c853bb950'
+ '92531ee64cdc0ca978bbe9a81c269211'
+ 'c2fe75c82c35371972b6ceda72d6a861'
+ '7930f7ff5038e1318511624e348581cc')
+sha1sums=('070cce745b023f2ce7ca7d9888af434d6d61c236'
+ '7a7320b8e4e21d85cfc9a5aa478a8b013b8afe96'
+ '35b4cb76109a6ffe9269021a6bfb4f8da614a4eb'
+ 'e67c0f78f13c94507d3f686b4e5b8340db4624fd'
+ '848beb23b9ca4de19c6022df03878dbe57e04c0a'
+ 'f46088f761c033562a59bc13d4888b7343bc02fc'
+ 'c416bcefd3d3d618139cc7912310caddf34c0c0b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../sysklogd-debian.patch
+ sed -i "s/-O3/${CFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE/" Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}/usr/sbin" "${pkgdir}"/usr/share/man/{man5,man8}
+ make INSTALL=/bin/install prefix="${pkgdir}" install
+ install -D -m644 ../syslog.conf "${pkgdir}/etc/syslog.conf"
+ install -D -m644 ../syslog.logrotate "${pkgdir}/etc/logrotate.d/syslog"
+ install -D -m755 ../syslogd "${pkgdir}/etc/rc.d/syslogd"
+ install -D -m755 ../klogd "${pkgdir}/etc/rc.d/klogd"
+ install -D -m644 ../LICENSE "${pkgdir}/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/sysklogd-debian.patch b/extra/sysklogd/sysklogd-debian.patch
new file mode 100644
index 000000000..0117af5f2
--- /dev/null
+++ b/extra/sysklogd/sysklogd-debian.patch
@@ -0,0 +1,21 @@
+--- sysklogd-1.5.orig/syslogd.c
++++ sysklogd-1.5/syslogd.c
+@@ -2392,7 +2392,7 @@
+ if (*p == '\0' || *p == '#')
+ continue;
+ #if CONT_LINE
+- strcpy(cline, p);
++ memmove(cline, p, strlen(p)+1);
+ #endif
+ for (p = strchr(cline, '\0'); isspace(*--p););
+ #if CONT_LINE
+--- sysklogd-1.5.orig/ksym_mod.c
++++ sysklogd-1.5/ksym_mod.c
+@@ -189,7 +189,6 @@
+ else
+ Syslog(LOG_ERR, "Error loading kernel symbols " \
+ "- %s\n", strerror(errno));
+- fclose(ksyms);
+ return(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..083fc9414
--- /dev/null
+++ b/extra/system-config-printer/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 140389 2011-10-12 04:35:30Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=system-config-printer
+pkgname=('system-config-printer-common'
+ 'system-config-printer-gnome')
+pkgver=1.3.7
+pkgrel=1
+pkgdesc="A CUPS printer configuration tool and status applet"
+url="http://cyberelk.net/tim/software/system-config-printer/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+makedepends=('udev' 'intltool' 'python2' 'xmlto' 'docbook-xsl' 'desktop-file-utils' 'libcups' 'libxml2')
+source=(http://cyberelk.net/tim/data/${pkgbase}/1.3/${pkgbase}-${pkgver}.tar.xz{,.sig})
+md5sums=('f579ba287403d8ae3028377c6641feed'
+ 'a2ce58f4e612130b30e5c029e9afd31f')
+
+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=('udev' '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 \
+ "${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 \
+ 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..cf9e754e0
--- /dev/null
+++ b/extra/t1lib/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 137602 2011-09-10 01:36:02Z allan $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Rainer Moll <renari@arcor.de>
+
+pkgname=t1lib
+pkgver=5.1.2
+pkgrel=3
+pkgdesc="Library for generating character- and string-glyphs from Adobe Type 1 fonts"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.ibiblio.org/pub/Linux/libs/graphics/!INDEX.html"
+license=('GPL')
+depends=('libxaw')
+options=(!libtool)
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/t1lib/overflow.patch b/extra/t1lib/overflow.patch
new file mode 100644
index 000000000..9f033c0de
--- /dev/null
+++ b/extra/t1lib/overflow.patch
@@ -0,0 +1,15 @@
+--- t1env.c.orig 2007-09-16 19:56:38.319184208 +0200
++++ t1env.c 2007-09-16 20:05:02.057070439 +0200
+@@ -611,6 +611,12 @@
+ #endif
+ strcat( pathbuf, DIRECTORY_SEP);
+ /* And finally the filename: */
++ /* If current pathbuf + StrippedName + 1 byte for NULL is bigger than pathbuf
++ let's try next pathbuf */
++ if( strlen(pathbuf) + strlen(StrippedName) + 1 > sizeof(pathbuf) ) {
++ i++;
++ continue;
++ }
+ strcat( pathbuf, StrippedName);
+
+ /* Check for existence of the path: */
diff --git a/extra/taglib-extras/PKGBUILD b/extra/taglib-extras/PKGBUILD
new file mode 100644
index 000000000..912406c06
--- /dev/null
+++ b/extra/taglib-extras/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137892 2011-09-12 09:45:56Z allan $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=taglib-extras
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="Additional taglib plugins for KDE"
+arch=('i686' 'x86_64' 'mips64el')
+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() {
+ mkdir $srcdir/build
+ cd $srcdir/build
+ cmake ../$pkgname-$pkgver \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/taglib-sharp/PKGBUILD b/extra/taglib-sharp/PKGBUILD
new file mode 100644
index 000000000..ad52b6bc0
--- /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' 'mips64el')
+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..aaa8f869e
--- /dev/null
+++ b/extra/taglib/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 134613 2011-08-06 13:04:31Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=taglib
+pkgver=1.7
+pkgrel=3
+pkgdesc="A Library for reading and editing the meta-data of several popular audio formats"
+arch=('i686' 'x86_64' 'mips64el')
+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"
+ 'ape-idev2.patch')
+options=('!libtool')
+md5sums=('6a7e312668f153fa905a81714aebc257'
+ 'c7c165d99acf01456351ba39ff7056cb')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/ape-idev2.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DWITH_MP4=ON \
+ -DWITH_ASF=ON
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/taglib/ape-idev2.patch b/extra/taglib/ape-idev2.patch
new file mode 100644
index 000000000..9c58da420
--- /dev/null
+++ b/extra/taglib/ape-idev2.patch
@@ -0,0 +1,12 @@
+diff -Nur taglib-1.7.orig/taglib/ape/apeproperties.cpp taglib-1.7/taglib/ape/apeproperties.cpp
+--- taglib-1.7.orig/taglib/ape/apeproperties.cpp 2011-03-12 00:15:38.000000000 +1100
++++ taglib-1.7/taglib/ape/apeproperties.cpp 2011-07-29 21:19:45.984345060 +1000
+@@ -137,7 +137,7 @@
+ long ID3v2OriginalSize = 0;
+ bool hasID3v2 = false;
+ if(ID3v2Location >= 0) {
+- ID3v2::Tag tag(d->file, ID3v2Location, 0);
++ ID3v2::Tag tag(d->file, ID3v2Location);
+ ID3v2OriginalSize = tag.header()->completeTagSize();
+ if(tag.header()->tagSize() > 0)
+ hasID3v2 = true;
diff --git a/extra/talloc/PKGBUILD b/extra/talloc/PKGBUILD
new file mode 100644
index 000000000..cb853d253
--- /dev/null
+++ b/extra/talloc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142221 2011-11-06 11:39:12Z andrea $
+# Maintainer:
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=talloc
+pkgver=2.0.7
+pkgrel=1
+pkgdesc="A hierarchical pool based memory allocator with destructors"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL3')
+url="http://talloc.samba.org/"
+depends=('glibc')
+makedepends=('python2' 'docbook-xsl')
+optdepends=('python2: for python bindings')
+source=("http://samba.org/ftp/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('dbfb3146f4cc47054e13b8a2988299f9')
+
+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
+}
diff --git a/extra/tamu-anova/PKGBUILD b/extra/tamu-anova/PKGBUILD
new file mode 100644
index 000000000..64ed12558
--- /dev/null
+++ b/extra/tamu-anova/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 131204 2011-07-11 21:05:04Z ronald $
+# Maintainer: Ronald van Haren <ronald@archlinux.org>
+# Contributor: Gergely Imreh <imrehg(at)gmail(dot)com>
+
+pkgname=tamu-anova
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="ANOVA Extensions to the GNU Scientific Library"
+arch=('x86_64' 'i686' 'mips64el')
+url="http://www.stat.tamu.edu/~aredd/tamuanova/"
+license=('GPL')
+depends=('gsl')
+makedepends=('gcc')
+install=tamu-anova.install
+source=(http://www.stat.tamu.edu/~aredd/tamuanova/tamu_anova-0.2.tar.gz)
+sha1sums=('8c7ffae14ebe92f27d20ff1f0e325875fa6ced53')
+
+build() {
+ cd ${srcdir}/tamu_anova-0.2
+ ./configure --prefix=/usr --infodir=/usr/share/info --includedir=/usr/include
+ make
+}
+
+package() {
+ cd ${srcdir}/tamu_anova-0.2
+ make DESTDIR=${pkgdir} install
+
+}
+
+
diff --git a/extra/tamu-anova/tamu-anova.install b/extra/tamu-anova/tamu-anova.install
new file mode 100644
index 000000000..e0615b522
--- /dev/null
+++ b/extra/tamu-anova/tamu-anova.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(tamu_anova.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/tcl/PKGBUILD b/extra/tcl/PKGBUILD
new file mode 100644
index 000000000..699f9ef42
--- /dev/null
+++ b/extra/tcl/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 142555 2011-11-12 07:19:34Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=tcl
+pkgver=8.5.11
+pkgrel=1
+pkgdesc="The Tcl scripting language"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tcl.sourceforge.net/"
+license=('custom')
+source=(http://downloads.sourceforge.net/sourceforge/tcl/tcl${pkgver}-src.tar.gz)
+md5sums=('b01a9691c83990b3db0ce62d1012ca67')
+
+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
+}
+
+#check() {
+# cd ${srcdir}/tcl${pkgver}/unix
+# make test
+#}
+
+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..1a2c4eaee
--- /dev/null
+++ b/extra/tcpdump/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 144370 2011-12-05 12:08:20Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=tcpdump
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="A tool for network monitoring and data acquisition"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.tcpdump.org"
+license=('BSD')
+depends=('libpcap' 'openssl')
+source=("http://www.tcpdump.org/release/${pkgname}-${pkgver}.tar.gz"
+ 'tcpdump_duplicate_executable.patch'
+ 'ppi.h')
+md5sums=('0296d4c487c3a156879783643704bd39'
+ 'b45c978dff8193ff5529d3566e7dbfa3'
+ 'd898c868bb730e14dbd2afd1ad883b87')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Add missing header file
+ cp ${srcdir}/ppi.h .
+
+ # 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/ppi.h b/extra/tcpdump/ppi.h
new file mode 100644
index 000000000..be7f5f02e
--- /dev/null
+++ b/extra/tcpdump/ppi.h
@@ -0,0 +1,8 @@
+typedef struct ppi_header {
+uint8_t ppi_ver;
+uint8_t ppi_flags;
+uint16_t ppi_len;
+uint32_t ppi_dlt;
+} ppi_header_t;
+
+#define PPI_HDRLEN 8
diff --git a/extra/tcpdump/tcpdump_duplicate_executable.patch b/extra/tcpdump/tcpdump_duplicate_executable.patch
new file mode 100644
index 000000000..705983ccc
--- /dev/null
+++ b/extra/tcpdump/tcpdump_duplicate_executable.patch
@@ -0,0 +1,10 @@
+--- a/Makefile.in 2011-07-24 22:58:55.000000000 +0200
++++ b/Makefile.in 2011-12-05 12:59:23.000000000 +0100
+@@ -399,7 +399,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..f5f62c361
--- /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 'mips64el')
+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..21cd94c91
--- /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' 'mips64el')
+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..b72920f75
--- /dev/null
+++ b/extra/telepathy-farsight/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 128060 2011-06-21 14:52:50Z 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.19
+pkgrel=1
+pkgdesc="A telepathy-backend to use stream engine."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org"
+license=('GPL')
+depends=('telepathy-glib' 'farsight2')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6bacc22aaec00823f3bbce8517600ec3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/telepathy-farstream/PKGBUILD b/extra/telepathy-farstream/PKGBUILD
new file mode 100644
index 000000000..f4fc586b5
--- /dev/null
+++ b/extra/telepathy-farstream/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142940 2011-11-18 18:23:32Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=telepathy-farstream
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="A telepathy-backend to use stream engine."
+arch=(mips64el)
+url="http://telepathy.freedesktop.org"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'farsight2')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f858fc02e1981bb8ccd29c2bed567e50')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/telepathy \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-gabble/PKGBUILD b/extra/telepathy-gabble/PKGBUILD
new file mode 100644
index 000000000..a00bd59d8
--- /dev/null
+++ b/extra/telepathy-gabble/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143507 2011-11-25 10:37:09Z 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.14.1
+pkgrel=1
+pkgdesc="A Jabber/XMPP connection manager for Telepathy"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libsoup' 'libnice' 'sqlite3')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/telepathy-gabble/$pkgname-$pkgver.tar.gz)
+install=telepathy-gabble.install
+md5sums=('f6dfcd3da49eb6a558085fc917cdbdd4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy --with-tls=openssl
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ 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..d329c545e
--- /dev/null
+++ b/extra/telepathy-glib/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143691 2011-11-28 12:26:53Z 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.16.3
+pkgrel=1
+pkgdesc="GLib bindings for the Telepathy D-Bus protocol"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org"
+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=('5c0cd5da2ce6257017751573e35c88ee')
+
+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/extra/telepathy-haze/PKGBUILD b/extra/telepathy-haze/PKGBUILD
new file mode 100644
index 000000000..c406f75cc
--- /dev/null
+++ b/extra/telepathy-haze/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 131178 2011-07-11 14:00:11Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+pkgname=telepathy-haze
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="A telepathy-backend to use libpurple (Pidgin) protocols."
+arch=('i686' 'x86_64' 'mips64el')
+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=('4378726d61e1e5df789a05760a94d172')
+
+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/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..90f24162e
--- /dev/null
+++ b/extra/telepathy-idle/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 141602 2011-10-31 15:52:30Z 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.11
+pkgrel=1
+pkgdesc="An IRC connection manager for Telepathy"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL')
+depends=('telepathy-glib' 'openssl')
+makedepends=('libxslt' 'python2')
+install=telepathy-idle.install
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('be277e8f0bd32ae56af799f0ff4ec72e')
+
+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/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-kde-accounts-kcm/PKGBUILD b/extra/telepathy-kde-accounts-kcm/PKGBUILD
new file mode 100644
index 000000000..04308db2b
--- /dev/null
+++ b/extra/telepathy-kde-accounts-kcm/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143877 2011-11-30 08:41:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=telepathy-kde-accounts-kcm
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="KCM Module for configuring Telepathy Instant Messaging Accounts"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdelibs' 'telepathy-qt4' 'telepathy-mission-control' 'telepathy-kde-contact-list'
+ 'telepathy-kde-auth-handler' 'telepathy-kde-integration-module' 'telepathy-kde-approver'
+ 'telepathy-kde-filetransfer-handler')
+makedepends=('cmake' 'automoc4')
+optdepends=('telepathy-gabble: XMPP/Jabber/GTalk support'
+ 'telepathy-haze: all protocols supported by libpurple')
+groups=('telepathy-kde')
+conflicts=('telepathy-kde-accounts-kcm-plugins')
+replaces=('telepathy-kde-accounts-kcm-plugins')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('2ebc4ac117a3e28e2812a2a9c97f7d0ee97dac67')
+
+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/telepathy-kde-approver/PKGBUILD b/extra/telepathy-kde-approver/PKGBUILD
new file mode 100644
index 000000000..cc475f04b
--- /dev/null
+++ b/extra/telepathy-kde-approver/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143563 2011-11-26 13:58:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=telepathy-kde-approver
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="KDE Channel Approver for Telepathy"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdelibs' 'telepathy-qt4' 'telepathy-kde-contact-list')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('6488f3119a19c38fc72e0afe3007a49394f36b13')
+
+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/telepathy-kde-auth-handler/PKGBUILD b/extra/telepathy-kde-auth-handler/PKGBUILD
new file mode 100644
index 000000000..f74689855
--- /dev/null
+++ b/extra/telepathy-kde-auth-handler/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143577 2011-11-26 14:06:41Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=telepathy-kde-auth-handler
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Provide UI/KWallet Integration For Passwords and SSL Errors on Account Connect"
+arch=('i686' 'x86_64')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdelibs' 'telepathy-qt4')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('f482134e041541a5d45ff14b9dc6a1fb2db9520c')
+
+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/telepathy-kde-contact-applet/PKGBUILD b/extra/telepathy-kde-contact-applet/PKGBUILD
new file mode 100644
index 000000000..4e8e4421c
--- /dev/null
+++ b/extra/telepathy-kde-contact-applet/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143578 2011-11-26 14:07:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=telepathy-kde-contact-applet
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="The kde-telepathy contact plasmoid"
+arch=('i686' 'x86_64')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdelibs' 'telepathy-qt4')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('b1e2ad706deccd6ca4d745828a8b54fd87bc2066')
+
+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/telepathy-kde-contact-list/PKGBUILD b/extra/telepathy-kde-contact-list/PKGBUILD
new file mode 100644
index 000000000..95b9166fd
--- /dev/null
+++ b/extra/telepathy-kde-contact-list/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143879 2011-11-30 08:42:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=telepathy-kde-contact-list
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="Telepathy contact list application"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdebase-runtime' 'telepathy-qt4' 'telepathy-kde-text-ui' 'telepathy-kde-send-file')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('7ec01e08d991123db9c2ce17d6350d8dd835793f')
+
+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/telepathy-kde-contact-list/telepathy-kde-contact-list.install b/extra/telepathy-kde-contact-list/telepathy-kde-contact-list.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/extra/telepathy-kde-contact-list/telepathy-kde-contact-list.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/telepathy-kde-filetransfer-handler/PKGBUILD b/extra/telepathy-kde-filetransfer-handler/PKGBUILD
new file mode 100644
index 000000000..14082b80d
--- /dev/null
+++ b/extra/telepathy-kde-filetransfer-handler/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143567 2011-11-26 13:59:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=telepathy-kde-filetransfer-handler
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Telepathy file transfer handler"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdebase-runtime' 'telepathy-qt4')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('25c52485cb5653fa79d0eb9724b494803a8f0ad9')
+
+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/telepathy-kde-integration-module/PKGBUILD b/extra/telepathy-kde-integration-module/PKGBUILD
new file mode 100644
index 000000000..d844d3350
--- /dev/null
+++ b/extra/telepathy-kde-integration-module/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143579 2011-11-26 14:07:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=telepathy-kde-integration-module
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Provide several plugins for the Telepathy KDE suite"
+arch=('i686' 'x86_64')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdelibs' 'telepathy-qt4')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('5ad3e5786707b624a0f785c6891ed6de4a5d79c7')
+
+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/telepathy-kde-presence-dataengine/PKGBUILD b/extra/telepathy-kde-presence-dataengine/PKGBUILD
new file mode 100644
index 000000000..26fc89caa
--- /dev/null
+++ b/extra/telepathy-kde-presence-dataengine/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143571 2011-11-26 14:00:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=telepathy-kde-presence-dataengine
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Plasma dataengine for managing Telepathy account presence"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdebase-workspace' 'telepathy-qt4')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('87f8c65baf35410e65ca9b7cb016210f2b13f72d')
+
+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/telepathy-kde-send-file/PKGBUILD b/extra/telepathy-kde-send-file/PKGBUILD
new file mode 100644
index 000000000..b45ae554c
--- /dev/null
+++ b/extra/telepathy-kde-send-file/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143573 2011-11-26 14:01:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=telepathy-kde-send-file
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="A File manager plugin to launch a file transfer job with a specified contact"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('telepathy-kde-filetransfer-handler' 'telepathy-kde-contact-list')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('d6cdd99b6feef58f81c2c0c39325954c239deb2d')
+
+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/telepathy-kde-send-file/telepathy-kde-send-file.install b/extra/telepathy-kde-send-file/telepathy-kde-send-file.install
new file mode 100644
index 000000000..78681144b
--- /dev/null
+++ b/extra/telepathy-kde-send-file/telepathy-kde-send-file.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_update() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/telepathy-kde-text-ui/PKGBUILD b/extra/telepathy-kde-text-ui/PKGBUILD
new file mode 100644
index 000000000..0e5b61b5b
--- /dev/null
+++ b/extra/telepathy-kde-text-ui/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143575 2011-11-26 14:01:45Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=telepathy-kde-text-ui
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Telepathy text chat handler"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kde.org"
+license=('GPL')
+depends=('kdebase-runtime' 'telepathy-qt4' 'telepathy-kde-contact-list')
+makedepends=('cmake' 'automoc4')
+groups=('telepathy-kde')
+source=("http://download.kde.org/unstable/telepathy-kde/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('fb7c5dc02bb9d150d0e372c3584f50670d620f4a')
+
+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/telepathy-logger/PKGBUILD b/extra/telepathy-logger/PKGBUILD
new file mode 100644
index 000000000..16cbc416a
--- /dev/null
+++ b/extra/telepathy-logger/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 141683 2011-11-02 09:28:54Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=telepathy-logger
+pkgver=0.2.12
+pkgrel=1
+pkgdesc="Telepathy framework logging daemon"
+arch=(i686 x86_64 'mips64el')
+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=('102a622855a3e20a191b0812ae7c9b8e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-call \
+ --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/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..dfc000ed5
--- /dev/null
+++ b/extra/telepathy-mission-control/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 142335 2011-11-08 15:59:21Z 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.10.1
+pkgrel=1
+pkgdesc="A Telepathy component providing abstraction of some of the details of connection managers."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org/wiki/Mission Control"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libgnome-keyring')
+makedepends=('libxslt' 'python2')
+install=telepathy-mission-control.install
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/telepathy-mission-control/$pkgname-$pkgver.tar.gz)
+md5sums=('50594028ebb2dba0181fec99e6f56ff5')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-gnome-keyring \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/telepathy-mission-control/telepathy-mission-control.install b/extra/telepathy-mission-control/telepathy-mission-control.install
new file mode 100644
index 000000000..c25dff2d3
--- /dev/null
+++ b/extra/telepathy-mission-control/telepathy-mission-control.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/telepathy-qt4/PKGBUILD b/extra/telepathy-qt4/PKGBUILD
new file mode 100644
index 000000000..047c970fd
--- /dev/null
+++ b/extra/telepathy-qt4/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 142995 2011-11-20 09:11:34Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=telepathy-qt4
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="A library for Qt-based Telepathy clients"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org/wiki/"
+license=('LGPL')
+options=('!libtool')
+depends=('qt' 'telepathy-farsight')
+makedepends=('libxslt' 'python2' 'cmake' 'doxygen')
+source=("http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('b93f03f063d784855d83e1b3c79a1cc5')
+
+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/telepathy-salut/PKGBUILD b/extra/telepathy-salut/PKGBUILD
new file mode 100644
index 000000000..9cc79c69d
--- /dev/null
+++ b/extra/telepathy-salut/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140754 2011-10-18 17:03:04Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+
+pkgname=telepathy-salut
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="A link-local XMPP connection manager for Telepathy"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL')
+depends=('telepathy-glib' 'avahi' 'libsoup')
+makedepends=('libxslt' 'python2' 'xmldiff')
+install=telepathy-salut.install
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a0df48e6c2e137a928f8f39655b8dc26')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --disable-plugins --disable-Werror \
+ --with-tls=openssl
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..4205fee4a
--- /dev/null
+++ b/extra/telepathy-sofiasip/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 120816 2011-04-26 16:16:06Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+pkgname=telepathy-sofiasip
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="a SIP-protocol connection manager for the Telepathy framework based on SofiaSIP-stack."
+arch=('i686' 'x86_64' 'mips64el')
+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=('4139027790aae97d8a18260e09a747c6')
+
+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/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..eeefba762
--- /dev/null
+++ b/extra/terminal/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 128296 2011-06-22 15:43:57Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=terminal
+pkgver=0.4.8
+pkgrel=1
+pkgdesc="A modern terminal emulator primarly for the Xfce desktop environment"
+arch=(i686 x86_64 'mips64el')
+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=('8dff62234da14e1a5e542fb56560ebe2')
+
+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..61165383a
--- /dev/null
+++ b/extra/testdisk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143223 2011-11-23 16:04:33Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Michal Krenek <mikos@sg1.cz>
+
+pkgname=testdisk
+pkgver=6.13
+pkgrel=1
+pkgdesc="Checks and undeletes partitions + PhotoRec, signature based recovery tool"
+arch=('i686' 'x86_64' 'mips64el')
+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)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --without-ewf \
+ --enable-sudo
+ make || return 1
+ make DESTDIR="${pkgdir}/" install || return 1
+}
+md5sums=('3bcbf0722d3823ca155e633969ce9f0b')
diff --git a/extra/texmacs/PKGBUILD b/extra/texmacs/PKGBUILD
new file mode 100644
index 000000000..cbd773d3f
--- /dev/null
+++ b/extra/texmacs/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 141258 2011-10-27 15:06:09Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=texmacs
+pkgver=1.0.7.14
+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' 'mips64el')
+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)
+source=(http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${pkgver}-src.tar.gz)
+sha1sums=('5bbe0458d2ab73fa8cea8e12fee788b17b6f279a')
+
+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 \
+ --disable-qt
+ 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..993a70e3e
--- /dev/null
+++ b/extra/tftp-hpa/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 131856 2011-07-16 06:36:05Z tpowa $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Jose Javier <jojapa@terra.es>
+pkgname=tftp-hpa
+pkgver=5.1
+pkgrel=1
+pkgdesc="Official tftp server"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kernel.org/pub/software/network/tftp/"
+license=('BSD')
+depends=('readline>=6.0.00')
+conflicts=('netkit-tftp')
+backup=('etc/conf.d/tftpd')
+source=(http://www.kernel.org/pub/software/network/tftp/$pkgname-$pkgver.tar.xz tftpd.rc tftpd.conf LICENSE)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --without-tcpwrappers
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALLROOT="${pkgdir}" install
+ install -d "${pkgdir}/etc/rc.d"
+ install -d "${pkgdir}/var/tftpboot"
+ install -m755 "${srcdir}/tftpd.rc" "${pkgdir}/etc/rc.d/tftpd"
+ install -D -m644 "${srcdir}/tftpd.conf" "${pkgdir}/etc/conf.d/tftpd"
+ rm "${pkgdir}/usr/share/man/man8/tftpd.8"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+md5sums=('d086b1bd6e5ed6375ad407e273afccdf'
+ '83fbb6f52205d95951a3c059e5351ca2'
+ '414a79dc891bced056d99a9bb790fc9e'
+ '6ce21e27b6fdc1a1adf85c81e42aeecf')
+md5sums=('281eab4f4f628c910369ec231e4cae24'
+ '83fbb6f52205d95951a3c059e5351ca2'
+ '414a79dc891bced056d99a9bb790fc9e'
+ '6ce21e27b6fdc1a1adf85c81e42aeecf')
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..0222d1693
--- /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 tftpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping TFTPD"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon 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..2ef0460bf
--- /dev/null
+++ b/extra/thinkfinger/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 144027 2011-12-02 07:42:30Z andrea $
+# Maintainer:
+# Contributor: 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=5
+pkgdesc="A driver for the SGS Thomson Microelectronics fingerprint reader found in most IBM/Lenovo ThinkPads"
+url="http://thinkfinger.sourceforge.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=("GPL")
+depends=('pam' 'libusb-compat')
+install=thinkfinger.install
+options=('!libtool' 'emptydirs')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'thinkfinger-uinput-hack.patch'
+ 'gcc46.patch')
+md5sums=('588565233bcbea5ff0a7f5314361c380'
+ '71dc334282d19e6db4f6254542ba563c'
+ '93c80f342329a5bd40f5f324fe670225')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Patch from Ubuntu: see http://bugs.archlinux.org/task/12580
+ patch -p0 -i "${srcdir}"/thinkfinger-uinput-hack.patch
+
+ patch -p1 -i "${srcdir}"/gcc46.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/gcc46.patch b/extra/thinkfinger/gcc46.patch
new file mode 100644
index 000000000..24e4b534f
--- /dev/null
+++ b/extra/thinkfinger/gcc46.patch
@@ -0,0 +1,22 @@
+--- a/pam/Makefile.am
++++ b/pam/Makefile.am
+@@ -8,7 +8,7 @@ pam_thinkfinger_so_SOURCES = pam_thinkfinger-compat.c pam_thinkfinger-compat.h p
+ else
+ pam_thinkfinger_so_SOURCES = pam_thinkfinger-uinput.c pam_thinkfinger-uinput.h pam_thinkfinger.c
+ endif
+-pam_thinkfinger_so_LDFLAGS = -shared --strip-all -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed
++pam_thinkfinger_so_LDFLAGS = -shared -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed
+ pam_thinkfinger_so_CFLAGS = $(CFLAGS)
+ pam_thinkfinger_so_LDADD = $(top_builddir)/libthinkfinger/libthinkfinger.la $(PAM_LIBS) $(PTHREAD_LIBS)
+
+--- a/pam/Makefile.in
++++ b/pam/Makefile.in
+@@ -201,7 +201,7 @@ pamdir = $(SECUREDIR)
+ INCLUDES = -I$(top_srcdir)/libthinkfinger
+ @HAVE_OLD_PAM_FALSE@pam_thinkfinger_so_SOURCES = pam_thinkfinger-uinput.c pam_thinkfinger-uinput.h pam_thinkfinger.c
+ @HAVE_OLD_PAM_TRUE@pam_thinkfinger_so_SOURCES = pam_thinkfinger-compat.c pam_thinkfinger-compat.h pam_thinkfinger-uinput.c pam_thinkfinger-uinput.h pam_thinkfinger.c
+-pam_thinkfinger_so_LDFLAGS = -shared --strip-all -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed
++pam_thinkfinger_so_LDFLAGS = -shared -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed
+ pam_thinkfinger_so_CFLAGS = $(CFLAGS)
+ pam_thinkfinger_so_LDADD = $(top_builddir)/libthinkfinger/libthinkfinger.la $(PAM_LIBS) $(PTHREAD_LIBS)
+ all: all-am
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..eb27f8f03
--- /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 'mips64el')
+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..7cdda5203
--- /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' 'mips64el')
+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-volman/PKGBUILD b/extra/thunar-volman/PKGBUILD
new file mode 100644
index 000000000..413379a29
--- /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' 'mips64el')
+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..93b83d45a
--- /dev/null
+++ b/extra/thunar/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 143583 2011-11-26 17:25:12Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=thunar
+pkgver=1.2.3
+pkgrel=3
+pkgdesc="Modern file manager for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://thunar.xfce.org"
+license=('GPL2' 'LGPL2.1')
+groups=('xfce4')
+depends=('desktop-file-utils' 'libexif' 'hicolor-icon-theme' 'libnotify' 'udev'
+ 'gtk2' 'exo' 'libxfce4util' 'libxfce4ui' 'libpng')
+makedepends=('intltool' 'gtk-doc' 'xfce4-panel')
+optdepends=('gvfs: for trash support, mounting with udisk and remote filesystems'
+ 'polkit-gnome: for mounting internal partitions (needs root password)'
+ '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
+source=(http://archive.xfce.org/src/xfce/${pkgname}/1.2/Thunar-$pkgver.tar.bz2)
+sha256sums=('e66aa9ad61a9202e15cc7c5fffc7b961da9ab3b4428f874c1ec8e46eb4ffaca6')
+
+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"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/thunar/thunar.install b/extra/thunar/thunar.install
new file mode 100644
index 000000000..87c29e4db
--- /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
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/tidyhtml/PKGBUILD b/extra/tidyhtml/PKGBUILD
new file mode 100644
index 000000000..d39fda268
--- /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' 'mips64el')
+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..78e0be4e6
--- /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' 'mips64el')
+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..d33fb5b2f
--- /dev/null
+++ b/extra/time/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 131069 2011-07-10 01:00:33Z 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=5
+pkgdesc="Utility for monitoring a program's use of system resources"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ time-1.7-Recompute-CPU-usage-at-microsecond-level.patch
+ time-1.7-ru_maxrss-is-in-kilobytes-on-Linux.patch)
+sha1sums=('dde0c28c7426960736933f3e763320680356cc6a'
+ 'fff80e05dd41f0a59bb1f49d1c6e581d5e8e92e5'
+ 'b2a909e1d92f7af1bc99a4524ad84d467ed79a06')
+
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # cf https://bugzilla.redhat.com/show_bug.cgi?id=527276
+ patch -Np1 -i ../time-1.7-Recompute-CPU-usage-at-microsecond-level.patch
+
+ # cf https://bugzilla.redhat.com/show_bug.cgi?id=702826
+ patch -Np1 -i ../time-1.7-ru_maxrss-is-in-kilobytes-on-Linux.patch
+
+ ./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-1.7-Recompute-CPU-usage-at-microsecond-level.patch b/extra/time/time-1.7-Recompute-CPU-usage-at-microsecond-level.patch
new file mode 100644
index 000000000..008f46c53
--- /dev/null
+++ b/extra/time/time-1.7-Recompute-CPU-usage-at-microsecond-level.patch
@@ -0,0 +1,72 @@
+From 0d743a7d946fe176a07baf2586a6af0e867fd89c Mon Sep 17 00:00:00 2001
+From: H.J. Lu <hongjiu.lu@intel.com>
+Date: Wed, 11 May 2011 16:19:55 +0200
+Subject: [PATCH] Recompute CPU usage at microsecond level
+
+If job finishes quickly, miliseconds arithmetic rounds to zero. If
+that happens, recalculate CPU usage ratio with microsecond accuracy
+to raise chance to get non-zero values.
+---
+ resuse.h | 2 ++
+ time.c | 15 +++++++++++++++
+ 2 files changed, 17 insertions(+), 0 deletions(-)
+
+diff --git a/resuse.h b/resuse.h
+index 992143f..7a3ee66 100644
+--- a/resuse.h
++++ b/resuse.h
+@@ -33,9 +33,11 @@ struct timeval
+ #if HAVE_SYS_RUSAGE_H
+ /* This rusage structure measures nanoseconds instead of microseconds. */
+ # define TV_MSEC tv_nsec / 1000000
++# define TV_USEC tv_nsec / 1000
+ # include <sys/rusage.h>
+ #else
+ # define TV_MSEC tv_usec / 1000
++# define TV_USEC tv_usec
+ # if HAVE_WAIT3
+ # include <sys/resource.h>
+ # else
+diff --git a/time.c b/time.c
+index 43aec0b..96cfdde 100644
+--- a/time.c
++++ b/time.c
+@@ -326,6 +326,8 @@ summarize (fp, fmt, command, resp)
+ {
+ unsigned long r; /* Elapsed real milliseconds. */
+ unsigned long v; /* Elapsed virtual (CPU) milliseconds. */
++ unsigned long ru; /* Elapsed real microseconds. */
++ unsigned long vu; /* Elapsed virtual (CPU) microseconds. */
+
+ if (verbose)
+ {
+@@ -350,6 +352,17 @@ summarize (fp, fmt, command, resp)
+ v = resp->ru.ru_utime.tv_sec * 1000 + resp->ru.ru_utime.TV_MSEC +
+ resp->ru.ru_stime.tv_sec * 1000 + resp->ru.ru_stime.TV_MSEC;
+
++ if (r == 0 && v == 0)
++ {
++ ru = resp->elapsed.tv_usec;
++ vu = resp->ru.ru_utime.TV_USEC + resp->ru.ru_stime.TV_USEC;
++ }
++ else
++ {
++ ru = 0;
++ vu = 0;
++ }
++
+ while (*fmt)
+ {
+ switch (*fmt)
+@@ -408,6 +421,8 @@ summarize (fp, fmt, command, resp)
+ /* % cpu is (total cpu time)/(elapsed time). */
+ if (r > 0)
+ fprintf (fp, "%lu%%", (v * 100 / r));
++ else if (ru > 0)
++ fprintf (fp, "%lu%%", (vu * 100 / ru));
+ else
+ fprintf (fp, "?%%");
+ break;
+--
+1.7.4.4
+
diff --git a/extra/time/time-1.7-ru_maxrss-is-in-kilobytes-on-Linux.patch b/extra/time/time-1.7-ru_maxrss-is-in-kilobytes-on-Linux.patch
new file mode 100644
index 000000000..1f68f9b1b
--- /dev/null
+++ b/extra/time/time-1.7-ru_maxrss-is-in-kilobytes-on-Linux.patch
@@ -0,0 +1,32 @@
+From ad24a929bdcc15abae14a64ea21b821bcd8cb030 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 11 May 2011 15:19:11 +0200
+Subject: [PATCH] ru_maxrss is in kilobytes on Linux
+
+Since 2.6.32 Linux returns ru_maxrss in kilobytes. Not in pages.
+
+See http://lists.gnu.org/archive/html/bug-gnu-utils/2008-12/msg00047.html
+for discussion.
+---
+ time.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/time.c b/time.c
+index d15fee4..43aec0b 100644
+--- a/time.c
++++ b/time.c
+@@ -395,7 +395,11 @@ summarize (fp, fmt, command, resp)
+ ptok ((UL) resp->ru.ru_ixrss) / MSEC_TO_TICKS (v));
+ break;
+ case 'M': /* Maximum resident set size. */
++#ifdef __linux__
++ fprintf (fp, "%ld", resp->ru.ru_maxrss);
++#else
+ fprintf (fp, "%lu", ptok ((UL) resp->ru.ru_maxrss));
++#endif
+ break;
+ case 'O': /* Outputs. */
+ fprintf (fp, "%ld", resp->ru.ru_oublock);
+--
+1.7.4.4
+
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..7cdd2262c
--- /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' 'mips64el')
+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..ef1c58f8e
--- /dev/null
+++ b/extra/tk/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 142557 2011-11-12 07:19:37Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=tk
+pkgver=8.5.11
+pkgrel=1
+pkgdesc="A windowing toolkit for use with tcl"
+arch=('i686' 'x86_64' 'mips64el')
+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=('b61b72f0aad230091b100746f078b8f1')
+
+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
+}
+
+#check() {
+# cd ${srcdir}/tk${pkgver}/unix
+# make test
+#}
+
+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..c04a71226
--- /dev/null
+++ b/extra/tomboy/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142896 2011-11-17 18:35:10Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=tomboy
+pkgver=1.8.3
+pkgrel=1
+pkgdesc="Desktop note-taking application for Linux and Unix"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/tomboy/"
+depends=('gtk2' 'gtkspell' 'gconf' 'gconf-sharp' 'dbus-sharp' 'dbus-sharp-glib' 'mono-addins' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs' '!makeflags')
+groups=('gnome-extra')
+install=tomboy.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/1.8/$pkgname-$pkgver.tar.xz)
+sha256sums=('3f704bac772a54cf668aca769c766bc1fb9ebc8823a903ef108927805c020bea')
+
+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
+ 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 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-native/PKGBUILD b/extra/tomcat-native/PKGBUILD
new file mode 100644
index 000000000..9e7ac5f54
--- /dev/null
+++ b/extra/tomcat-native/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
+# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua
+
+pkgname=tomcat-native
+pkgver=1.1.22
+pkgrel=1
+pkgdesc="The Apache Tomcat Native Library"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tomcat.apache.org/"
+license="Apache"
+depends=('apr' 'openssl')
+makedepends=('java-environment')
+source=(http://www.apache.org/dist/tomcat/tomcat-connectors/native/${pkgver}/source/${pkgname}-${pkgver}-src.tar.gz)
+md5sums=('44d764f8d99d0454c7337ba9701558ee')
+
+build() {
+ cd "${srcdir}/tomcat-native-${pkgver}-src/jni/native"
+
+ ./configure \
+ --prefix=/usr \
+ --with-java-home=${JAVA_HOME} \
+ --with-apr=/usr \
+ --with-ssl=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-src/jni/native"
+
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/{bin,include}
+}
diff --git a/extra/tomcat/PKGBUILD b/extra/tomcat/PKGBUILD
new file mode 100644
index 000000000..a1bba1b67
--- /dev/null
+++ b/extra/tomcat/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 138508 2011-09-26 12:20:21Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume at archlinux dot org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+pkgname=tomcat
+pkgver=5.5.34
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+pkgdesc="Servlet-2.4/JSP-2.0 Container"
+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=('d09a09bc84409510574a673d35939f16'
+ '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.7-native-src/unix
+ sh configure --with-java=/usr/lib/jvm/java-6-openjdk
+ make clean
+ make
+ cp jsvc ../..
+}
+
+package() {
+ cd ${srcdir}/apache-${pkgname}-${pkgver}/bin
+ # 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,logs}
+ chmod 0660 ${pkgdir}/opt/tomcat/conf/{*.xml,*.policy,*.properties,/Catalina/localhost/*.xml}
+ chmod 775 ${pkgdir}/opt/tomcat/{conf,work,webapps,logs}
+}
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..9f7c21d38
--- /dev/null
+++ b/extra/tomcat/tomcat.install
@@ -0,0 +1,36 @@
+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
+
+ echo ""
+ echo "== End of life for Apache Tomcat 5.5.x =="
+ echo "The Apache Tomcat team announces that support for Apache Tomcat 5.5.x"
+ echo "will end on 30 September 2012."
+ echo ""
+ echo "You are thus strongly encouraged to migrate to tomcat6 or tomcat7"
+ echo ""
+ echo "See the Arch Linux wiki page for tomcat for more information."
+}
+
+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..7441e7b4b
--- /dev/null
+++ b/extra/totem-plparser/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 138355 2011-09-20 15:41:13Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=totem-plparser
+pkgver=2.32.6
+pkgrel=1
+url="http://www.hadess.net/totem.php3"
+pkgdesc="Totem playlist parser library"
+license=('LGPL')
+arch=(i686 x86_64 'mips64el')
+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.xz)
+sha256sums=('8e6ccef547f1ad311474a975032d2482e621550ee3d4d22c725cdc6b496e4874')
+
+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..0eccfcb05
--- /dev/null
+++ b/extra/totem/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 140955 2011-10-20 05:44:18Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=totem
+pkgname=('totem' 'totem-plugin')
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="A GNOME3 integrated movie player based on Gstreamer."
+url="http://www.gnome.org"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2' 'custom')
+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' 'gsettings-desktop-schemas' 'dconf' 'clutter-gst'
+ 'clutter-gtk' 'mx')
+makedepends=('intltool' 'gtk-doc' 'python2-gobject' 'nautilus' 'libgdata' 'xulrunner' 'lirc-utils'
+ 'libepc' 'bluez' 'vala' 'grilo')
+[ "$CARCH" = "mips64el" ] && {
+makedepends=('intltool' 'gtk-doc' 'python2-gobject' 'nautilus' 'libgdata' 'xulrunner'
+ 'libepc' 'bluez' 'vala' 'grilo')
+}
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.xz)
+sha256sums=('e3af3281bde6666af4c7f9594b090087657b06c98e96212b11531269e2ee40a4')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/totem \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-python \
+ --enable-nautilus
+ make
+}
+
+package_totem() {
+ 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'
+ 'grilo-plugins: Browse sidebar (remote media)'
+ 'pyxdg: opensubtitles plugin')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -r "${pkgdir}/usr/lib/mozilla"
+ rm "${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 plugin for web browsers"
+ depends=("totem=${pkgver}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C browser-plugin \
+ plugindir=/usr/lib/mozilla/plugins \
+ xptdir=/usr/lib/mozilla/plugins \
+ DESTDIR="${pkgdir}" install
+
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/totem-plugin/COPYING"
+}
diff --git a/extra/totem/totem.install b/extra/totem/totem.install
new file mode 100644
index 000000000..07cb42dcb
--- /dev/null
+++ b/extra/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/extra/tracker/PKGBUILD b/extra/tracker/PKGBUILD
new file mode 100644
index 000000000..ef949521b
--- /dev/null
+++ b/extra/tracker/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 143537 2011-11-26 00:25:40Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgbase=tracker
+pkgname=(tracker libtracker-sparql)
+pkgver=0.12.8
+_tver=${pkgver%.*}
+pkgrel=1
+pkgdesc="All-in-one indexer, search tool and metadata database"
+arch=(mips64el)
+license=('GPL')
+makedepends=('libgee' 'libgnome-keyring' 'upower' 'libexif' 'exempi'
+ 'poppler-glib' 'libgsf' 'icu' 'enca' 'networkmanager' 'gtk3'
+ 'desktop-file-utils' 'hicolor-icon-theme' 'gobject-introspection'
+ 'intltool' 'giflib' 'gstreamer0.10-base' 'totem-plparser'
+ 'taglib' 'nautilus' 'gnome-panel' 'libvorbis' 'flac' 'vala')
+url="http://www.gnome.org"
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/$_tver/$pkgbase-$pkgver.tar.xz)
+sha256sums=('92b18cc381a80d87d52e386f51ca1475b94f82cf5adf668424669c5b63474473')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/tracker \
+ --disable-unit-tests \
+ --enable-libflac \
+ --enable-libvorbis
+
+ make
+}
+
+package_tracker() {
+ depends=("libtracker-sparql=$pkgver-$pkgrel" 'libgee' 'libgnome-keyring'
+ 'upower' 'libexif' 'exempi' 'poppler-glib' 'libgsf' 'enca'
+ 'networkmanager' 'gtk3' 'desktop-file-utils' 'hicolor-icon-theme')
+ optdepends=('giflib: extractor for GIF data'
+ 'gstreamer0.10-base: video extractor'
+ 'totem-plparser: playlist support'
+ 'nautilus: nautilus-extension'
+ 'libvorbis: Vorbis metadata extractor'
+ 'flac: FLAC metadata extractor'
+ 'taglib: writeback for audio files'
+ 'gnome-panel: tracker-search-bar')
+ groups=('gnome-extra')
+ install=tracker.install
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+### Split libtracker-sparql
+
+ mkdir -p "$srcdir"/sparql/usr/{include,lib}/tracker-$_tver
+ mkdir -p "$srcdir"/sparql/usr/lib/{girepository-1.0,pkgconfig}
+ mkdir -p "$srcdir"/sparql/usr/share/{gir-1.0,vala/vapi}
+
+ mv "$pkgdir"/usr/lib/libtracker-sparql-* "$srcdir/sparql/usr/lib"
+
+ mv "$pkgdir"/usr/lib/tracker-$_tver/*.so* \
+ "$srcdir/sparql/usr/lib/tracker-$_tver"
+
+ mv "$pkgdir"/usr/share/vala/vapi/tracker-sparql-* \
+ "$srcdir/sparql/usr/share/vala/vapi"
+
+ mv {"$pkgdir","$srcdir/sparql"}/usr/include/tracker-$_tver/libtracker-sparql
+ mv {"$pkgdir","$srcdir/sparql"}/usr/lib/girepository-1.0/Tracker-$_tver.typelib
+ mv {"$pkgdir","$srcdir/sparql"}/usr/lib/pkgconfig/tracker-sparql-$_tver.pc
+ mv {"$pkgdir","$srcdir/sparql"}/usr/share/gir-1.0/Tracker-$_tver.gir
+}
+
+package_libtracker-sparql() {
+ pkgdesc="$pkgdesc (SPARQL library)"
+ depends=('sqlite3' 'icu' 'glib2' 'libffi' 'pcre' 'util-linux')
+
+ mv "$srcdir"/sparql/* "$pkgdir"
+}
diff --git a/extra/tracker/tracker.install b/extra/tracker/tracker.install
new file mode 100644
index 000000000..95114273e
--- /dev/null
+++ b/extra/tracker/tracker.install
@@ -0,0 +1,13 @@
+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
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/transcode/PKGBUILD b/extra/transcode/PKGBUILD
new file mode 100644
index 000000000..9faacb49b
--- /dev/null
+++ b/extra/transcode/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 144420 2011-12-05 18:18:14Z jgc $
+# Maintainer:
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: roberto <roberto@archlinux.org>
+
+pkgname=transcode
+_sripver=0.3-4
+pkgver=1.1.7
+pkgrel=1
+pkgdesc="A video/DVD ripper and encoder for the terminal/console"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://tcforge.berlios.de/"
+license=('GPL')
+depends=('gawk' 'imagemagick' 'lzo2' 'libdvdread' 'ffmpeg' 'mjpegtools'
+ 'libmpeg2' 'libxaw' 'libxml2' 'libxv' 'a52dec')
+makedepends=('nasm')
+options=('!libtool')
+source=(https://bitbucket.org/france/transcode-tcforge/downloads/${pkgname}-${pkgver}.tar.bz2
+ http://downloads.sourceforge.net/sourceforge/subtitleripper/subtitleripper-${_sripver}.tgz
+ subtitleripper-0.3.4-linkingorder.patch subtitleripper-0.3.4-respect-ldflags.patch)
+sha1sums=('e35df68b960eb56ef0a59a4cdbed1491be56aee6'
+ 'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d'
+ 'fa05aa1770d9350d90b7cf315aa7c4a1fd921ac7'
+ '591943a33235342a66c3df0625a164a1479c09ae')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --disable-sse --disable-sse2 --disable-altivec --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
+ make
+
+ cd "${srcdir}/subtitleripper"
+ patch -p1 -i "${srcdir}/subtitleripper-0.3.4-linkingorder.patch"
+ patch -p1 -i "${srcdir}/subtitleripper-0.3.4-respect-ldflags.patch"
+ 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 "${srcdir}/subtitleripper"
+ 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/subtitleripper-0.3.4-linkingorder.patch b/extra/transcode/subtitleripper-0.3.4-linkingorder.patch
new file mode 100644
index 000000000..7efe22346
--- /dev/null
+++ b/extra/transcode/subtitleripper-0.3.4-linkingorder.patch
@@ -0,0 +1,28 @@
+Index: subtitleripper/Makefile
+===================================================================
+--- subtitleripper.orig/Makefile
++++ subtitleripper/Makefile
+@@ -70,19 +70,19 @@ vobsub2pgm.o: vobsub2pgm.c vobsub.h spud
+ # Target
+ subtitle2pgm: subtitle2pgm.o spudec.o
+ @echo "Linking $@"
+- @$(CC) $(LIBS) $^ -o $@
++ @$(CC) $^ -o $@ $(LIBS)
+
+ subtitle2vobsub: subtitle2vobsub.o vobsub.o
+ @echo "Linking $@"
+- @$(CC) $(LIBS) $^ -o $@
++ @$(CC) $^ -o $@ $(LIBS)
+
+ srttool: srttool.o
+ @echo "Linking $@"
+- @$(CC) $(LIBS) -g $^ -o $@
++ @$(CC) -g $^ -o $@ $(LIBS)
+
+ vobsub2pgm: vobsub2pgm.o vobsub.o spudec.o
+ @echo "Linking $@"
+- @$(CC) $(LIBS) -g $^ -o $@
++ @$(CC) -g $^ -o $@ $(LIBS)
+
+ .PHONY: clean dist rpm
+ clean:
diff --git a/extra/transcode/subtitleripper-0.3.4-respect-ldflags.patch b/extra/transcode/subtitleripper-0.3.4-respect-ldflags.patch
new file mode 100644
index 000000000..2af11d257
--- /dev/null
+++ b/extra/transcode/subtitleripper-0.3.4-respect-ldflags.patch
@@ -0,0 +1,28 @@
+Index: subtitleripper/Makefile
+===================================================================
+--- subtitleripper.orig/Makefile
++++ subtitleripper/Makefile
+@@ -70,19 +70,19 @@ vobsub2pgm.o: vobsub2pgm.c vobsub.h spud
+ # Target
+ subtitle2pgm: subtitle2pgm.o spudec.o
+ @echo "Linking $@"
+- @$(CC) $^ -o $@ $(LIBS)
++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS)
+
+ subtitle2vobsub: subtitle2vobsub.o vobsub.o
+ @echo "Linking $@"
+- @$(CC) $^ -o $@ $(LIBS)
++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS)
+
+ srttool: srttool.o
+ @echo "Linking $@"
+- @$(CC) -g $^ -o $@ $(LIBS)
++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS)
+
+ vobsub2pgm: vobsub2pgm.o vobsub.o spudec.o
+ @echo "Linking $@"
+- @$(CC) -g $^ -o $@ $(LIBS)
++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS)
+
+ .PHONY: clean dist rpm
+ clean:
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..5bbf5be0e
--- /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' 'mips64el')
+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..76b7e4407
--- /dev/null
+++ b/extra/transmission/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 141093 2011-10-23 18:45:30Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=transmission
+pkgname=('transmission-cli' 'transmission-gtk' 'transmission-qt')
+pkgver=2.42
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.transmissionbt.com/"
+license=('MIT')
+makedepends=('gtk3' 'intltool' 'curl' 'qt' 'libevent')
+source=(http://mirrors.m0k.org/transmission/files/${pkgbase}-${pkgver}.tar.xz
+ transmissiond transmissiond.conf)
+md5sums=('50f6dd76c5c01f45d5ed20783c686815'
+ '08875299e3fbb68fc546c1f350ac1f06'
+ 'be39806c35b7544856fa4070b00fc960')
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ ./configure --prefix=/usr
+ 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' 'gtk3' 'desktop-file-utils' 'hicolor-icon-theme')
+ 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')
+ install=transmission-qt.install
+
+ 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/transmission-qt.install b/extra/transmission/transmission-qt.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/extra/transmission/transmission-qt.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/transmission/transmissiond b/extra/transmission/transmissiond
new file mode 100644
index 000000000..1b4b4dc0e
--- /dev/null
+++ b/extra/transmission/transmissiond
@@ -0,0 +1,46 @@
+#!/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
+ ;;
+ reload)
+ stat_busy "Reloading config"
+ [ ! -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/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..6f5de6602
--- /dev/null
+++ b/extra/trayer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 138436 2011-09-23 04:20:09Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=trayer
+pkgver=1.0
+pkgrel=6
+pkgdesc="A lightweight GTK2-based systray"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://gna.org/projects/fvwm-crystal/"
+license=('GPL' 'MIT')
+depends=('gtk2')
+makedepends=('libxmu')
+options=('!makeflags')
+source=(http://download.gna.org/fvwm-crystal/trayer/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ trayer.diff manpage.diff)
+md5sums=('e1b0b6464f991f2c296561e377585867'
+ '7f66eee885563871f9f76646bca6b14d'
+ '3f1c92bbe275f186b613c04a47e8e977')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i ../trayer.diff
+ patch -p1 -i ../manpage.diff
+ sed -i 's/$(LIBS) $(OBJ) $(SYSTRAYOBJ)/$(OBJ) $(SYSTRAYOBJ) $(LIBS)/' Makefile
+ make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" install
+ install -D -m644 trayer.1 "${pkgdir}/usr/share/man/man1/trayer.1"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/trayer/manpage.diff b/extra/trayer/manpage.diff
new file mode 100644
index 000000000..c99fc71af
--- /dev/null
+++ b/extra/trayer/manpage.diff
@@ -0,0 +1,204 @@
+Description: Debian manpage and path setup
+Author: Jens Peter Secher <jps@debian.org>
+Index: trayer/trayer.1
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ trayer/trayer.1 2011-05-08 21:38:37.000000000 +0200
+@@ -0,0 +1,197 @@
++.TH TRAYER 1 "Feb 14, 2005" "FVWM\-Crystal"
++.SH NAME
++trayer \- a lightweight GTK2\-based systray for UNIX desktop
++.SH SYNOPSIS
++.B trayer \-h
++.br
++.B trayer \-v
++.br
++.B trayer
++.\"
++.RB [\| \-\-edge
++.RI \| left \||\| right \||\| top \||\| bottom \||\| none \|]
++.\"
++.RB [\| \-\-align
++.RI \| left \||\| right \||\| center \|]
++.\"
++.RB [\| \-\-margin
++.RI \| <size> \|]
++.\"
++.RB [\| \-\-widthtype
++.RI \| request \||\| pixel \||\| percent
++.RI \|]
++.\"
++.RB [\| \-\-width
++.RI \| <size> \|]
++.\"
++.RB [\| \-\-heighttype
++.RI \| <pixel> \|]
++.\"
++.RB [\| \-\-height
++.RI \| <size> \|]
++.\"
++.RB [\| \-\-SetDockType
++.RI \| true \||\| false \|]
++.\"
++.RB [\| \-\-SetPartialStrut
++.RI \| true \||\| false \|]
++.\"
++.RB [\| \-\-transparent
++.RI \| true \||\| false \|]
++.\"
++.RB [\| \-\-alpha
++.RI \| <value> \|]
++.\"
++.RB [\| \-\-tint
++.RI \| <color> \|]
++.\"
++.RB [\| \-\-distance
++.RI \| <length> \|]
++.\"
++.RB [\| \-\-distancefrom
++.RI \| left \||\| right \||\| top \||\| bottom \||\| none \|]
++.\"
++.RB [\| \-\-expand
++.RI \| true \||\| false \|]
++.\"
++.RB [\| \-\-padding
++.RI \| <size> \|]
++.\"
++.SH DESCRIPTION
++.B trayer
++is a small program designed to provide system tray similar to these in
++.B GNOME
++/
++.B KDE
++desktop environments for window managers which does not
++support that function. It is similar to other applications such as
++.B peksystray
++and \fBdocker\fP.
++.PP
++System tray is a place, where many applications put their icons, so they are
++always visible. Such icons may present status of an application and allow user
++to control the program.
++.PP
++\fBtrayer\fP's code was extracted from \fBfbpanel\fP application, you can find more
++about it on its homepage: http://fbpanel.sourceforge.net/.
++.SH OPTIONS
++This programs follow the usual GNU command line syntax, with long
++options starting with two dashes (`-').
++A summary of options is included below.
++.TP
++.B \-\-help
++.TP
++.B \-h
++Show summary of options and exit.
++
++.TP
++.B \-\-version
++.TP
++.B \-v
++Show version of program and exit.
++
++.TP
++\fB\-\-edge\fP \fIleft\fP\||\|\fIright\fP\||\|\fItop\fP\||\|\fIbottom\fP\||\|\fInone\fP
++Specifies a screen edge to use.
++
++.TP
++\fB\-\-align\fP \fIleft\fP\||\|\fIcenter\fP\||\|\fIright\fP
++Specifies an align of the icons.
++
++.TP
++\fB\-\-margin\fP \fI<size>\fP
++Specifies length of margin (in pixels)
++
++.TP
++\fB\-\-widthtype\fB \fIrequest\fP\||\|\fIpixel\fP\||\|\fIpercent\fP
++Specifies method of calculating trayer's window width:
++.RS
++.TP
++\fIrequest\fP
++Follow application icons' size, so trayer may shrink or expand dynamically.
++
++.TP
++\fIpixel\fP
++Set a fixed size, given with \fB\-\-width\fP option in pixels.
++
++.TP
++\fIpercent\fP
++Set a fixed size, given with \fB\-\-width\fP option in percentage of a length of screen edge.
++.RE
++
++.TP
++\fB\-\-width\fP \fI<size>\fP
++Width of trayer's window. Ignored when \fB\-\-widthtype\fP is set to \fIrequest\fP.
++
++.TP
++\fB\-\-heighttype\fP \fIrequest\fP\||\|\fIpixel\fP\||\|\fIpercent\fP
++Specifies method of calculating trayer's window height:
++.RS
++.TP
++\fIrequest\fP
++Follow application icons' size, so trayer may shrink or expand dynamically.
++
++.TP
++\fIpixel\fP
++Set a fixed size, given with \fB\-\-height\fP option in pixels.
++
++.TP
++\fIpercent\fP
++Set a fixed size, given with \fB\-\-height\fP option in percentage of a length of screen edge.
++.RE
++
++.TP
++\fB\-\-height\fP \fI<size>\fP
++Height of trayer's window. Ignored when \fB\-\-heighttype\fP is set to \fIrequest\fP.
++
++.TP
++\fB\-\-SetDockType\fP \fItrue\fP\||\|\fIfalse\fP
++Identify panel window type as dock.
++
++.TP
++\fB\-\-SetPartialStrut\fP \fItrue\fP\||\|\fIfalse\fP
++Reserve panel space so that it will not be covered by maximized windows.
++
++.TP
++\fB\-\-transparent\fP \fItrue\fP\||\|\fIfalse\fP
++Use transparency.
++
++.TP
++\fB\-\-alpha\fP \fI<value>\fP
++Percentage of transparency (0 \- nontransparent, 255 \- fully transparent)
++
++.TP
++\fB\-\-tint\fP \fI<color>\fP
++Color used to tint transparent background. Color is given as a 24-bit C hexadecimal integer, for example: 0xff0000 is red, 0xff8800 is orange and 0x00ff00 is green.
++
++.TP
++\fB\-\-distance\fP \fI<length>\fP
++Specifies distance between trayer's window and screen edge (in pixels)
++
++.TP
++\fB\-\-distancefrom\fP \fI<edge>\fP
++Specifies which edge to calculate distance from, see above.
++
++.TP
++\fB\-\-expand\fP \fItrue\fP\||\|\fIfalse\fP
++Specifies whether trayer may accommodate extra space when there is too much
++icons.
++
++.TP
++\fB\-\-padding\fP \fI<size>\fP
++Extra space between icons and trayer window's border.
++
++.SH SEE ALSO
++.BR fbpanel (1)
++.SH AUTHORS
++Anatoly Asviyan <aanatoly@users.sf.net> \- fbpanel
++.br
++Rafal Bisingier <ravbc@man.poznan.pl>
++.br
++Maciej Delmanowski <harnir@users.berlios.de>
++.br
++Grzegorz Nieweglowski <hoppke@dobremiasto.net>
++.br
++Thomas Rydzynski
++.PP
++This manual page was written by Tomasz Melcer <liori@interia.pl>.
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..82294e718
--- /dev/null
+++ b/extra/tree/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 143988 2011-12-01 15:23:36Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=tree
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="A directory listing program displaying a depth indented list of files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://mama.indstate.edu/users/ice/tree/"
+license=('GPL')
+depends=('glibc')
+source=("http://mama.indstate.edu/users/ice/${pkgname}/src/${pkgname}-${pkgver}.tgz")
+md5sums=('04e967a3f4108d50cde3b4b0e89e970a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man/man1" install
+}
diff --git a/extra/truecrypt/PKGBUILD b/extra/truecrypt/PKGBUILD
new file mode 100644
index 000000000..ff3a03d79
--- /dev/null
+++ b/extra/truecrypt/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 141202 2011-10-25 22:33:47Z eric $
+# Maintainer: Paul Mattal <paul.archlinux.org>
+
+pkgname=truecrypt
+pkgver=7.1
+pkgrel=1
+pkgdesc="Free open-source cross-platform disk encryption software"
+url="http://www.truecrypt.org/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom') # TrueCrypt License v2.6
+depends=('fuse>=2.8.0' 'wxgtk>=2.8.9' 'libsm' 'device-mapper')
+makedepends=('nasm')
+optdepends=('sudo: mounting encrypted volumes as nonroot users')
+conflicts=('truecrypt-utils')
+replaces=('truecrypt-utils')
+# 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-${pkgver}.tar.gz{,.sig} \
+ 'ftp://ftp.archlinux.org/other/tc/pkcs-2.20.tar.gz' \
+ "${pkgname}.desktop" \
+ "${pkgname}-arch-detection.patch")
+md5sums=('a8268630a870faff07af940f63fb29eb'
+ 'ddee7c4b2419ecb44b02c8294a08fbed'
+ 'ce6a707b79411e82e8e558aa03e764b0'
+ '183b9bf04a943454d4e216130bcbac01'
+ '00ea70fa8437de877b31b027ac2b4060')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-source"
+
+ # Work around buggy CPU type detection
+ patch -Np1 -i ../${pkgname}-arch-detection.patch
+
+ # Build
+ make PKCS11_INC="${srcdir}/pkcs-2.20"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-source"
+
+ # Install Binary
+ install -D -m755 Main/${pkgname} "${pkgdir}/usr/bin/${pkgname}"
+
+ # Install Desktop file and Icon
+ install -D -m644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -D -m644 Resources/Icons/TrueCrypt-48x48.xpm "${pkgdir}/usr/share/pixmaps/truecrypt.xpm"
+
+ # Install License
+ install -D -m644 License.txt "${pkgdir}/usr/share/licenses/${pkgname}/License.txt"
+}
diff --git a/extra/truecrypt/truecrypt-arch-detection.patch b/extra/truecrypt/truecrypt-arch-detection.patch
new file mode 100644
index 000000000..bc16a2a36
--- /dev/null
+++ b/extra/truecrypt/truecrypt-arch-detection.patch
@@ -0,0 +1,15 @@
+diff -urN truecrypt-7.0a-source/Makefile truecrypt-7.0a-source.fixed/Makefile
+--- truecrypt-7.0a-source/Makefile 2010-09-05 10:32:10.000000000 -0400
++++ truecrypt-7.0a-source.fixed/Makefile 2011-07-05 21:41:50.296437879 -0400
+@@ -120,10 +120,7 @@
+
+ export CPU_ARCH ?= unknown
+
+-ARCH = $(shell uname -p)
+-ifeq "$(ARCH)" "unknown"
+- ARCH = $(shell uname -m)
+-endif
++ARCH = $(shell uname -m)
+
+ ifneq (,$(filter i386 i486 i586 i686 x86,$(ARCH)))
+ CPU_ARCH = x86
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..f2ce9b83d
--- /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' 'mips64el')
+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..f68445bb3
--- /dev/null
+++ b/extra/tumbler/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144453 2011-12-06 03:29:55Z eric $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jan Jezek <honzin.jezek@gmail.com>
+
+pkgname=tumbler
+pkgver=0.1.23
+pkgrel=1
+pkgdesc="D-Bus service for applications to request thumbnails"
+url="http://git.xfce.org/xfce/tumbler/"
+license=('GPL2' 'LGPL')
+arch=('i686' 'x86_64' 'mips64el')
+groups=('xfce4')
+depends=('poppler-glib' 'dbus-glib' 'gdk-pixbuf2')
+makedepends=('intltool' 'ffmpegthumbnailer' 'gstreamer0.10')
+optdepends=('ffmpegthumbnailer: for video thumbnails'
+ 'gstreamer0.10: for video thumbnails')
+options=('!libtool')
+source=(http://archive.xfce.org/src/apps/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('c6cf6821f5d884cbf2c26f45f2fecc74')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --disable-static \
+ --disable-debug
+ 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..caa9c1f0a
--- /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' 'mips64el')
+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..65bd3c55a
--- /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' 'mips64el')
+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/PKGBUILD b/extra/twisted/PKGBUILD
new file mode 100644
index 000000000..55850a084
--- /dev/null
+++ b/extra/twisted/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 126682 2011-06-06 14:53:30Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=twisted
+pkgver=11.0.0
+pkgrel=1
+pkgdesc="Asynchronous networking framework written in Python."
+arch=('i686' 'x86_64' 'mips64el')
+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://twistedmatrix.com/Releases/Twisted/${pkgver%.*}/Twisted-${pkgver}.tar.bz2)
+md5sums=('d7f94a1609a1b8f3b8c8d0146d4cfe54')
+
+build() {
+ cd "${srcdir}/Twisted-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/Twisted-${pkgver}"
+ 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..6e68c52ef
--- /dev/null
+++ b/extra/udisks/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 136339 2011-08-26 17:03:08Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=udisks
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Disk Management Service"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freedesktop.org/wiki/Software/udisks"
+license=('GPL')
+depends=('udev' 'sg3_utils' 'glib2' 'dbus-glib' 'polkit' 'parted' 'device-mapper' 'libatasmart' 'lsof' 'eject')
+makedepends=('intltool' 'docbook-xsl')
+options=(!libtool)
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('854b89368733b9c3a577101b761ad5397ae75a05110c8698ac5b29de9a8bf8f5')
+
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/uim/PKGBUILD b/extra/uim/PKGBUILD
new file mode 100644
index 000000000..4b569279a
--- /dev/null
+++ b/extra/uim/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 133084 2011-07-27 18:50:53Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=uim
+pkgver=1.7.1
+pkgrel=1
+pkgdesc='Multilingual input method library'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://code.google.com/p/uim/'
+license=('custom:BSD')
+depends=('libxft' 'libedit' 'anthy' 'm17n-lib')
+makedepends=('intltool' 'gettext' 'qt' 'gtk2' 'gtk3' 'gnome-panel')
+optdepends=('qt: immodule and helper applications'
+ 'gtk2: immodule and helper applications'
+ 'gtk3: immodules and helper applications'
+ 'gnome-panel: gnome applet indicator')
+options=('!libtool')
+source=("http://uim.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('9001955f9efbd3cf23c9ad62c027f44060553fa8')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/uim \
+ --with-anthy-utf8 \
+ --with-qt4 \
+
+ 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/install b/extra/uim/install
new file mode 100644
index 000000000..83a9cf391
--- /dev/null
+++ b/extra/uim/install
@@ -0,0 +1,12 @@
+post_install() {
+ [[ -x usr/bin/gtk-query-immodules-2.0 ]] && usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ [[ -x usr/bin/gtk-query-immodules-3.0 ]] && usr/bin/gtk-query-immodules-3.0 > usr/lib/gtk-3.0/3.0.0/immodules.cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/umfpack/PKGBUILD b/extra/umfpack/PKGBUILD
new file mode 100644
index 000000000..7e1772adc
--- /dev/null
+++ b/extra/umfpack/PKGBUILD
@@ -0,0 +1,56 @@
+# $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' 'mips64el')
+url="http://www.cise.ufl.edu/research/sparse/umfpack"
+license=('LGPL')
+makedepends=('lapack' 'blas')
+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=('19f5d8b4231ec9114718641ce51cce6e'
+ '526413bbbc94f987cf79619d9110bab4'
+ 'b3e9679ba20635ac4847f01c01d6e992'
+ '9032c5724bee43ccd8f4546338a29fac'
+ '2b4e43c8ef33dacfade6d1ec49542ac1'
+ '79d813d5b54951060fc264172bfb5ca6'
+ 'ce9731da58d58923a3cdc3fbef724c4e')
+
+build() {
+ cd "$srcdir/UMFPACK"
+ cp -rf "$srcdir/UFconfig/xerbla" .
+ cp -L ../UFconfig.mk $startdir/src/UFconfig
+ [ "${CARCH}" != "i686" ] && CFLAGS="${CFLAGS} -fPIC"
+ sed -ri 's#^((C|F77)FLAGS = ).*#\1'"$CFLAGS"'#' $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..ffa6ab40b
--- /dev/null
+++ b/extra/unison/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 126943 2011-06-08 20:05:25Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=unison
+pkgver=2.40.63
+pkgrel=2
+pkgdesc="Unison is a file-synchronization tool"
+arch=(i686 x86_64 'mips64el')
+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=('3281207850cf6f0a17fe73f371893bd3'
+ '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..364881d66
--- /dev/null
+++ b/extra/unixodbc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137809 2011-09-11 11:42:08Z pierre $
+# 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=2.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' 'mips64el')
+license=('GPL2' 'LGPL2.1')
+url="http://www.unixodbc.org/"
+backup=('etc/odbc.ini' 'etc/odbcinst.ini')
+depends=('readline' 'libltdl')
+options=('!libtool')
+source=("http://www.unixodbc.org/unixODBC-$pkgver.tar.gz")
+md5sums=('f2ad22cbdffe836c58987ed2332c2e99')
+
+build() {
+ cd ${srcdir}/unixODBC-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/unixODBC-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/upower/PKGBUILD b/extra/upower/PKGBUILD
new file mode 100644
index 000000000..7092eceee
--- /dev/null
+++ b/extra/upower/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 144364 2011-12-05 10:53:50Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=upower
+pkgver=0.9.15
+pkgrel=1
+pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://upower.freedesktop.org"
+license=('GPL')
+depends=('udev' 'libusb' 'polkit' 'pm-utils' 'dbus-glib' 'libimobiledevice')
+makedepends=('intltool' 'docbook-xsl' 'gobject-introspection')
+options=('!libtool')
+source=($url/releases/$pkgname-$pkgver.tar.xz)
+sha256sums=('d5941480f32dcee47401b3f650485c71f70e7eb0d92537bf4b62410248a6238c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/upower --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/usbmuxd/PKGBUILD b/extra/usbmuxd/PKGBUILD
new file mode 100644
index 000000000..2f893a942
--- /dev/null
+++ b/extra/usbmuxd/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 134490 2011-08-04 15:41:22Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=usbmuxd
+pkgver=1.0.7
+pkgrel=2.1
+pkgdesc="USB Multiplex Daemon"
+url="http://marcansoft.com/blog/iphonelinux/usbmuxd/"
+arch=('i686' 'x86_64' 'mips64el')
+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=('6f431541f3177fa06aa6df9ceecb2da0'
+ '8526f24f4ad16cd6b2a7321c0b59592c')
+
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/usbmuxd/usbmuxd-udevuser.patch b/extra/usbmuxd/usbmuxd-udevuser.patch
new file mode 100644
index 000000000..51c8f3d3a
--- /dev/null
+++ b/extra/usbmuxd/usbmuxd-udevuser.patch
@@ -0,0 +1,12 @@
+diff -Nur usbmuxd-1.0.7.orig/udev/85-usbmuxd.rules.in usbmuxd-1.0.7/udev/85-usbmuxd.rules.in
+--- usbmuxd-1.0.7.orig/udev/85-usbmuxd.rules.in 2011-08-04 15:28:32.751579507 +0000
++++ usbmuxd-1.0.7/udev/85-usbmuxd.rules.in 2011-08-04 15:36:20.139265124 +0000
+@@ -1,7 +1,7 @@
+ # usbmuxd (iPhone "Apple Mobile Device" MUXer listening on /var/run/usbmuxd)
+
+ # Forces iDevices to the last USB configuration and runs usbmuxd
+-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][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}=="12[9a][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/12[9a][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..f8f794675
--- /dev/null
+++ b/extra/usbview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143990 2011-12-01 15:29:15Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=usbview
+pkgver=1.1
+pkgrel=3
+pkgdesc="USB Viewer"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.kroah.com/linux-usb/"
+license=('GPL')
+depends=('gtk2')
+makedepends=('pkg-config')
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" \
+ sysconfdir="${pkgdir}/etc" \
+ localstatedir="${pkgdir}/var" install
+}
diff --git a/extra/usermin/PKGBUILD b/extra/usermin/PKGBUILD
new file mode 100644
index 000000000..b294040a7
--- /dev/null
+++ b/extra/usermin/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 140170 2011-10-08 10:02:07Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=usermin
+pkgver=1.490
+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 'mips64el')
+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=('a6d87aad595ea8abbe6639ce2c08efc1'
+ '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..2d39e01f9
--- /dev/null
+++ b/extra/v4l-utils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 135456 2011-08-13 22:59:53Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=v4l-utils
+pkgver=0.8.5
+pkgrel=1.1
+pkgdesc="Userspace tools and conversion library for Video 4 Linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://freshmeat.net/projects/libv4l"
+provides=("libv4l=$pkgver")
+replaces=('libv4l')
+conflicts=('libv4l')
+license=('LGPL')
+makedepends=('qt')
+optdepends=('qt')
+depends=('glibc' 'gcc-libs' 'sysfsutils' 'libjpeg-turbo')
+source=(http://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('c205848fbaf3489b97519dae04da31be4998bbc170a2ca9791357a8a549e594c')
+
+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..d142a2f8b
--- /dev/null
+++ b/extra/v86d/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 129979 2011-06-30 18:07:08Z thomas $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=v86d
+pkgver=0.1.10
+pkgrel=2
+pkgdesc="userspace helper for uvesafb that runs x86 code in an emulated environment"
+arch=("i686" "x86_64" 'mips64el')
+url="http://dev.gentoo.org/~spock/projects/uvesafb/"
+license=('GPL2')
+depends=('glibc')
+conflicts=('mkinitcpio<0.7')
+backup=('etc/modprobe.d/uvesafb.conf')
+options=('!makeflags')
+source=(http://dev.gentoo.org/~spock/projects/uvesafb/archive/v86d-$pkgver.tar.bz2
+ v86d
+ v86d_hook
+ modprobe.uvesafb)
+md5sums=('51c792ba7b874ad8c43f0d3da4cfabe0'
+ '2748ca01397e5c4435f87692f7d042a8'
+ '813958b8f6c75a7063e4858f31509694'
+ '2d7cc8dc6a41916a13869212d0191147')
+
+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..2065b8e64
--- /dev/null
+++ b/extra/v86d/v86d
@@ -0,0 +1,12 @@
+build() {
+ 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..ee3ae699c
--- /dev/null
+++ b/extra/vala/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143889 2011-11-30 17:59:28Z heftig $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+
+pkgname=vala
+pkgver=0.14.1
+pkgrel=1
+pkgdesc="Compiler for the GObject type system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://live.gnome.org/Vala"
+license=('LGPL')
+depends=('glib2')
+makedepends=('libxslt')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.14/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('bef8c803e6e84d6dd2c6e771b72245ae268f49f554f3d00b2c4a0b7a28f4a439')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-vapigen
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/vamp-plugin-sdk/PKGBUILD b/extra/vamp-plugin-sdk/PKGBUILD
new file mode 100644
index 000000000..599b1c642
--- /dev/null
+++ b/extra/vamp-plugin-sdk/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 134888 2011-08-08 13:42:21Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Orivej Desh <smpuj@bk.ru>
+
+pkgname=vamp-plugin-sdk
+pkgver=2.2
+pkgrel=1
+pkgdesc="The Vamp audio analysis plug-in system"
+arch=('i686' 'x86_64' 'mips64el')
+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=('037cdb83f20a331ff1fa07d54550c773'
+ 'a07e3ef9c657a56cf2e8c4afc0ba1cec')
+
+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/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/varnish/PKGBUILD b/extra/varnish/PKGBUILD
new file mode 100644
index 000000000..11053221d
--- /dev/null
+++ b/extra/varnish/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Douglas Soares de Andrade
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=varnish
+pkgver=3.0.2
+pkgrel=2
+pkgdesc="High-performance HTTP accelerator"
+arch=(mips64el)
+url="http://www.varnish-cache.org/"
+license=('BSD')
+depends=('gcc' 'libedit' 'pcre')
+backup=('etc/conf.d/varnish'
+ 'etc/varnish/default.vcl')
+install=$pkgname.install
+options=('!libtool')
+source=("http://repo.varnish-cache.org/source/$pkgname-$pkgver.tar.gz"
+ "$pkgname.conf.d"
+ "rc.$pkgname")
+md5sums=('c8eae0aabbe66b6daabdf3a1f58cd47a'
+ 'd42eebc7f0ac429d9740125ff1e61daf'
+ '18b7747020ecfe2eac7445971a7014e3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -D -m755 "$srcdir/rc.$pkgname" "$pkgdir/etc/rc.d/$pkgname"
+ install -D -m644 "$srcdir/$pkgname.conf.d" "$pkgdir/etc/conf.d/$pkgname"
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/varnish/rc.varnish b/extra/varnish/rc.varnish
new file mode 100644
index 000000000..2ebd97e33
--- /dev/null
+++ b/extra/varnish/rc.varnish
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/varnish
+
+pidfile=/run/varnish.pid
+if [[ -r $pidfile ]]; then
+ read -r PID < "$pidfile"
+ if [[ ! -d /proc/$PID ]]; then
+ # stale pidfile
+ unset PID
+ rm -f "$pidfile"
+ fi
+fi
+
+case "$1" in
+ start)
+ stat_busy "Starting Varnish Reverse Proxy"
+ if /usr/sbin/varnishd $VARNISHD_OPTS -P "$pidfile"; then
+ add_daemon varnish
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Varnish Reverse Proxy"
+ if [[ $PID ]] && kill $PID &>/dev/null; then
+ rm_daemon varnish
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
diff --git a/extra/varnish/varnish.conf.d b/extra/varnish/varnish.conf.d
new file mode 100644
index 000000000..2970468b7
--- /dev/null
+++ b/extra/varnish/varnish.conf.d
@@ -0,0 +1,9 @@
+#
+# Command line options to varnishd
+#
+
+VARNISHD_OPTS="-a 0.0.0.0:80 \
+ -b localhost:8080 \
+ -T localhost:6082 \
+ -s malloc,64M
+ -u nobody -g nobody"
diff --git a/extra/varnish/varnish.install b/extra/varnish/varnish.install
new file mode 100644
index 000000000..fceaf4be7
--- /dev/null
+++ b/extra/varnish/varnish.install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# remove localstatedir -- compiled VCL and slab files will still be here.
+post_remove() {
+ rm -rf /var/lib/varnish
+}
diff --git a/extra/vcdimager/PKGBUILD b/extra/vcdimager/PKGBUILD
new file mode 100644
index 000000000..f824436cd
--- /dev/null
+++ b/extra/vcdimager/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 135066 2011-08-10 01:37:52Z eric $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=vcdimager
+pkgver=0.7.24
+pkgrel=1
+pkgdesc="A full-featured mastering suite for authoring disassembling and analyzing Video CD's and Super Video CD's"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.vcdimager.org/"
+license=('GPL')
+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=('3af22978fd79c79d5fda6513b6811145')
+
+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
+}
diff --git a/extra/vcdimager/vcdimager.install b/extra/vcdimager/vcdimager.install
new file mode 100644
index 000000000..79e07b5bc
--- /dev/null
+++ b/extra/vcdimager/vcdimager.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(vcd-info.info.gz vcdimager.info.gz vcdxrip.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/vde2/PKGBUILD b/extra/vde2/PKGBUILD
new file mode 100644
index 000000000..3b4b25f6d
--- /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' 'mips64el')
+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..44fcf8506
--- /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' 'mips64el')
+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..e7ff01c5e
--- /dev/null
+++ b/extra/vice/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143992 2011-12-01 15:40:19Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=vice
+pkgver=2.3
+pkgrel=4
+pkgdesc="A Versatile Commodore Emulator"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.viceteam.org/"
+depends=('alsa-lib' 'gcc-libs' 'giflib' 'lame' 'libxrandr'
+ 'libxv' 'libjpeg' 'libpng' '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
+ ./configure --prefix=/usr \
+ --with-alsa \
+ --enable-fullscreen
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
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..e4134fdeb
--- /dev/null
+++ b/extra/vigra/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 144876 2011-12-08 20:54:22Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgbase=vigra
+pkgname=('vigra' 'vigra-doc')
+pkgver=1.8.0
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+url="http://hci.iwr.uni-heidelberg.de/vigra/"
+license=('custom:MIT')
+makedepends=(# runtime deps
+ 'libpng' 'libtiff' 'gcc-libs' 'sh' 'hdf5>=1.8.7' 'fftw'
+ # additional makedeps
+ 'cmake' 'python2-nose' 'doxygen' 'python-sphinx' 'boost' 'python2-numpy')
+options=('!libtool')
+source=(http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/${pkgname}-${pkgver}-src.tar.gz
+ vigra-1.7.1.gcc460.patch)
+md5sums=('15c5544448e529ee60020758ab6be264'
+ '25ef8bc26bc38ee67e5b512d2acd0166')
+sha1sums=('09f1d506c2748ebeb7d9f1c77ce387f9e7b837d2'
+ '1de6381a74dd136ea25df5a27f249187b0dbd17e')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -Np1 -i ${srcdir}/vigra-1.7.1.gcc460.patch
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DWITH_VIGRANUMPY=1 \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2.7 \
+ -DDOCINSTALL=share/doc
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make -k check || /bin/true # i686 fails
+}
+
+package_vigra() {
+ pkgdesc="Computer vision library"
+ depends=('libpng' 'libtiff' 'gcc-libs' 'sh' 'hdf5>=1.8.7' 'fftw')
+ optdepends=('python2: for python bindings'
+ 'boost-libs: for python bindings')
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ # license
+ install -D -m644 LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+
+ # remove doc
+ rm -rf "${pkgdir}"/usr/share/doc
+
+ #fix shebang for python2
+ sed -i 's|python$|python2|' "$pkgdir"/usr/bin/vigra-config
+}
+
+package_vigra-doc() {
+ pkgdesc="Computer vision library - documentation and examples"
+ #depends=('vigra')
+ #arch=('any')
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ # cleanup
+ rm -rf "${pkgdir}"/usr/{bin,include,lib}
+
+ # license
+ install -D -m644 LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/vigra/vigra-1.7.1.gcc460.patch b/extra/vigra/vigra-1.7.1.gcc460.patch
new file mode 100644
index 000000000..46f194dbc
--- /dev/null
+++ b/extra/vigra/vigra-1.7.1.gcc460.patch
@@ -0,0 +1,33 @@
+diff -baur vigra-1.7.1.old/include/vigra/random_forest.hxx vigra-1.7.1/include/vigra/random_forest.hxx
+--- vigra-1.7.1.old/include/vigra/random_forest.hxx 2010-12-03 17:40:34.000000000 +0000
++++ vigra-1.7.1/include/vigra/random_forest.hxx 2011-01-28 00:16:32.000000000 +0000
+@@ -43,6 +43,7 @@
+ #include <set>
+ #include <list>
+ #include <numeric>
++#include <stddef.h>
+ #include "mathutil.hxx"
+ #include "array_vector.hxx"
+ #include "sized_int.hxx"
+diff -baur vigra-1.7.1.old/include/vigra/sifImport.hxx vigra-1.7.1/include/vigra/sifImport.hxx
+--- vigra-1.7.1.old/include/vigra/sifImport.hxx 2010-12-03 17:40:34.000000000 +0000
++++ vigra-1.7.1/include/vigra/sifImport.hxx 2011-01-28 00:23:31.000000000 +0000
+@@ -57,6 +57,7 @@
+ #include <fstream>
+ #include <cstring>
+ #include <vector>
++#include <stddef.h>
+ #include "vigra/multi_array.hxx"
+
+ namespace vigra {
+diff -baur vigra-1.7.1.old/include/vigra/multi_iterator.hxx vigra-1.7.1/include/vigra/multi_iterator.hxx
+--- vigra-1.7.1.old/include/vigra/multi_iterator.hxx 2010-12-03 17:40:34.000000000 +0000
++++ vigra-1.7.1/include/vigra/multi_iterator.hxx 2011-01-28 00:23:31.000000000 +0000
+@@ -41,6 +41,7 @@
+ #define VIGRA_MULTI_ITERATOR_HXX
+
+ #include <sys/types.h>
++#include <stddef.h>
+ #include "tinyvector.hxx"
+ #include "iteratortags.hxx"
+
diff --git a/extra/vim/PKGBUILD b/extra/vim/PKGBUILD
new file mode 100644
index 000000000..e82782240
--- /dev/null
+++ b/extra/vim/PKGBUILD
@@ -0,0 +1,198 @@
+# $Id: PKGBUILD 143639 2011-11-27 23:44:53Z eric $
+# 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=353
+__hgrev=379a6398d462
+_versiondir="vim${_topver//./}"
+pkgver=${_topver}.${_patchlevel}
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:vim')
+url="http://www.vim.org"
+makedepends=('gpm' 'python2' 'python' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2' 'lua')
+source=(ftp://ftp.archlinux.org/other/vim/${pkgname}-${pkgver}.tar.xz
+ pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872
+ vimrc archlinux.vim gvim.desktop urxvt-mouse.diff)
+sha1sums=('1713682c077d26ec3d3e8d0d18bad88a2a447fd5'
+ '4d9dcfb32874aa5467e6f06e418aeb4e675daaf2'
+ '3494baf53a63581ba69f86a81293640ff681c5c5'
+ '25dd3c2ce436e73a367c8f73b68f7f6889682437'
+ '4a579cf66590d711f49c5dfb4a25e5df116ff7ba'
+ '54d8edec6a450a529ba11bab45c5685b1e7c2e84')
+
+# source PKGBUILD && mksource
+mksource() {
+
+ [[ -x /usr/bin/hg ]] || (echo "hg not found. Install mercurial." && return 1)
+
+ __hgroot='http://vim.googlecode.com/hg/'
+ __hgrepo='vim'
+ __hgbranch='default'
+
+ hg clone -b ${__hgbranch} -u ${__hgrev} "${__hgroot}${__hgrepo}" ${__hgrepo}
+
+ pushd ${__hgrepo}
+ if (( $(hg id -n) < $(hg id -nr ${__hgbranch}) )); then
+ printf 'You are not building the latest revision!\n'
+ printf "Consider updating __hgrev to $(hg id -r ${__hgbranch}).\n"
+ fi
+ popd
+
+ mv vim ${pkgname}-${pkgver}
+ find ${pkgname}-${pkgver} -depth -type d -name .hg -exec rm -rf {} \;
+ rm ${pkgname}-${pkgver}/{.hgignore,.hgtags}
+ tar -cJf ${pkgname}-${pkgver}.tar.xz ${pkgname}-${pkgver}/*
+ rm -r ${pkgname}-${pkgver}
+}
+
+build() {
+ cd "${srcdir}"
+
+ (cd ${pkgname}-${pkgver}; patch -p1 -i ../urxvt-mouse.diff)
+
+ cp -a ${pkgname}-${pkgver} vim-build
+
+ # 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)
+
+ cp -a vim-build gvim-build
+
+ cd "${srcdir}"/vim-build
+
+ ./configure --prefix=/usr --localstatedir=/var/lib/vim \
+ --with-features=big --with-compiledby=Parabola \
+ --enable-gpm --enable-acl --with-x=no \
+ --disable-gui --enable-multibyte --enable-cscope \
+ --disable-netbeans --enable-perlinterp --disable-pythoninterp \
+ --disable-python3interp --disable-rubyinterp --disable-luainterp
+
+ make
+
+ cd "${srcdir}"/gvim-build
+
+ ./configure --prefix=/usr --localstatedir=/var/lib/vim \
+ --with-features=big --with-compiledby=ArchLinux \
+ --enable-gpm --enable-acl --with-x=yes \
+ --enable-gui=gtk2 --enable-multibyte --enable-cscope \
+ --enable-netbeans --enable-perlinterp --enable-pythoninterp \
+ --enable-python3interp --enable-rubyinterp --enable-luainterp
+
+ make
+}
+
+package_vim() {
+ pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor'
+ depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm')
+ 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 -Dm644 "${srcdir}"/vim-${pkgver}/runtime/doc/uganda.txt \
+ "${pkgdir}"/usr/share/licenses/${pkgname}/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' 'ruby' 'libxt'
+ 'desktop-file-utils' 'gtk2' 'lua')
+ 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 -Dm644 "${srcdir}"/vim-${pkgver}/runtime/doc/uganda.txt \
+ "${pkgdir}"/usr/share/licenses/${pkgname}/license.txt
+}
+
+package_vim-runtime() {
+ pkgdesc='Runtime for vim and gvim'
+ depends=('perl' 'gawk')
+ 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
+
+ # rgb.txt file
+ install -Dm644 "${srcdir}"/vim-${pkgver}/runtime/rgb.txt \
+ "${pkgdir}"/usr/share/vim/${_versiondir}/rgb.txt
+
+ # 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..675357da5
--- /dev/null
+++ b/extra/vim/gvim.desktop
@@ -0,0 +1,63 @@
+[Desktop Entry]
+Name=Vi IMproved
+Name[bg]=Vi Ðåäàêòîð
+Name[ca]=Vi Millorat
+Name[da]=Vi forbedret
+Name[eo]=VIM
+Name[et]=Täiustatud Vi (vim)
+Name[fr]=Vi étendu (VIM)
+Name[he]=רפושמ Vi
+Name[hu]=Vi
+Name[is]=Vi IMproved ritillinn
+Name[it]=Vi iMproved
+Name[no]=Vi IMproved (forbedret VI)
+Name[pl]=Poprawiony VI (vim)
+Name[ro]=VIM
+Name[ru]=Улучшенный VI
+Name[sk]=Vi IMpreved
+Name[sl]=Izboljšani vi (vim)
+Name[sv]=Förbättrad Vi
+Name[zh_CN.GB2312]=改进的 Vi
+Comment=Powerful text editor with scripting functions and macro recorder
+Comment[bg]=Ðåäàêòîð ñ ìíîãî âúçìîæíîñòè
+Comment[ca]=Editor vi potent
+Comment[cs]=Mocný textový editor vi
+Comment[da]=En kraftig vi tekstbehandler
+Comment[de]=Ein leistungsfähiger vi-Editor
+Comment[el]=Πανίσχυρος διορθωτής vi
+Comment[eo]=VIM similas al redaktilo "vi", sed havas aldonajn ecojn
+Comment[es]=Una versión mejorada del editor vi
+Comment[et]=Võimas tekstiredaktor vi
+Comment[fi]=Tehokas vi-tekstieditori
+Comment[fr]=Éditeur vi puissant
+Comment[gl]=Potente editor vi
+Comment[he]=Vi המצועה בר ךרועה
+Comment[hr]=Napredni vi uređivač
+Comment[hu]=Vi szövegszerkesztő
+Comment[is]=Öflug útgáfa vi ritilsins
+Comment[it]=Un editor vi potenziato
+Comment[ja]=強力なViエディタ
+Comment[lt]=Galingas vi redaktorius
+Comment[mk]=Моќен VI уредувач
+Comment[nl]=Krachtige vi-editor
+Comment[no]=En kraftig vi-redigerer
+Comment[no_NY]=Kraftig vi-tekstredigeringsprogram
+Comment[pl]=Edytor vi
+Comment[pt]=Um poderoso editor de texto
+Comment[ro]=Un editor de texte VI, puternic
+Comment[ru]=Мощный текстовый редактор vi
+Comment[sk]=Silný textový procesor vi
+Comment[sl]=Zmogljivi urejevalnik vi
+Comment[sr]=Moćni vi editor
+Comment[sv]=En kraftfull texteditor
+Comment[ta]=ºì¾¢Å¡öó¾ vi ¦¾¡ÌôÀ¡Ç÷
+Comment[tr]=Güçlü vi düzenleyicisi
+Comment[uk]=Потужний редактор vi
+Comment[zh_CN.GB2312]=功能强大的 vi 编辑器
+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=gvim -f %F
+Icon=gvim
+Type=Application
+Terminal=false
+X-XClassHintResName=VIM
+Categories=Utility;TextEditor;
diff --git a/extra/vim/gvim.install b/extra/vim/gvim.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/extra/vim/gvim.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/vim/urxvt-mouse.diff b/extra/vim/urxvt-mouse.diff
new file mode 100644
index 000000000..9112e7ffd
--- /dev/null
+++ b/extra/vim/urxvt-mouse.diff
@@ -0,0 +1,35 @@
+diff --git a/src/term.c b/src/term.c
+--- a/src/term.c
++++ b/src/term.c
+@@ -1996,6 +1996,7 @@
+ # define HMT_DEC 4
+ # define HMT_JSBTERM 8
+ # define HMT_PTERM 16
++# define HMT_URXVT 32
+ static int has_mouse_termcode = 0;
+ # endif
+
+@@ -2031,6 +2032,11 @@
+ has_mouse_termcode |= HMT_PTERM;
+ else
+ # endif
++# ifdef FEAT_MOUSE_URXVT
++ if (n == KS_URXVT_MOUSE)
++ has_mouse_termcode |= HMT_URXVT;
++ else
++# endif
+ has_mouse_termcode |= HMT_NORMAL;
+ # endif
+ }
+@@ -2068,6 +2074,11 @@
+ has_mouse_termcode &= ~HMT_PTERM;
+ else
+ # endif
++# ifdef FEAT_MOUSE_URXVT
++ if (n == KS_URXVT_MOUSE)
++ has_mouse_termcode &= ~HMT_URXVT;
++ else
++# endif
+ has_mouse_termcode &= ~HMT_NORMAL;
+ # endif
+ }
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..5f141bb08
--- /dev/null
+++ b/extra/vinagre/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 142898 2011-11-17 18:35:12Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=vinagre
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="A VNC Client for the GNOME Desktop"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.gnome.org/projects/vinagre/"
+install=vinagre.install
+depends=('libgnome-keyring' 'gtk-vnc' 'vte3' 'telepathy-glib' 'avahi' 'desktop-file-utils' 'dconf' 'shared-mime-info' 'gnome-icon-theme')
+optdepends=('openssh: SSH plugin'
+ 'rdesktop: RDP plugin')
+makedepends=('gnome-doc-utils' 'intltool' 'rdesktop' 'openssh')
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('1533cc447177f8d6c9cfe45d61b05904efbf66c86b86b4c332e972ff965d76bd')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ #building with as-needed breaks rdp
+ #https://bugzilla.gnome.org/show_bug.cgi?id=653558
+ export LDFLAGS="$LDFLAGS,--no-as-needed"
+ ./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/extra/vinagre/vinagre.install b/extra/vinagre/vinagre.install
new file mode 100644
index 000000000..68158ac80
--- /dev/null
+++ b/extra/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/extra/vino/PKGBUILD b/extra/vino/PKGBUILD
new file mode 100644
index 000000000..2cbfc7219
--- /dev/null
+++ b/extra/vino/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142900 2011-11-17 18:35:14Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=vino
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="a VNC server for the GNOME desktop"
+arch=('i686' 'x86_64' 'mips64el')
+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.xz)
+sha256sums=('51089c35b5187c37ebcd4f8ad921123f9a56713316876531189a3f3765dc87d1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vino \
+ --localstatedir=/var \
+ --enable-gnome-keyring \
+ --enable-avahi \
+ --disable-http-server
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/vino/vino.install b/extra/vino/vino.install
new file mode 100644
index 000000000..469266843
--- /dev/null
+++ b/extra/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/extra/virtuoso/PKGBUILD b/extra/virtuoso/PKGBUILD
new file mode 100644
index 000000000..053c92e47
--- /dev/null
+++ b/extra/virtuoso/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142435 2011-11-09 18:50:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Massimiliano Torromeo <massimiliano DOT torromeo AT google mail service>
+
+pkgname=virtuoso
+pkgver=6.1.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+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=('libldap')
+makedepends=('bison' 'flex')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-opensource-${pkgver}.tar.gz")
+md5sums=('7110a0b4b171b84850d346f4fe648172')
+
+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..be817dda5
--- /dev/null
+++ b/extra/vlc/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 144439 2011-12-05 19:49:38Z andyrtr $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Martin Sandsmark <martin.sandsmark@kde.org>
+
+pkgname=vlc
+pkgver=1.1.12
+pkgrel=5
+pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.videolan.org/vlc/"
+license=('GPL')
+depends=('a52dec' 'fluidsynth' 'libmtp' 'libdvbpsi' 'libxpm' 'libcdio'
+ 'libdca' 'qt' 'libproxy' 'sdl_image' 'libdvdnav' 'mesa'
+ 'lua' 'v4l-utils' 'libcddb' 'smbclient' 'libmatroska' 'zvbi'
+ 'taglib' 'sysfsutils' 'libmpcdec' 'ffmpeg' 'faad2' 'libupnp'
+ 'libshout' 'libmad' 'fribidi' 'libmpeg2' 'libmodplug' 'xcb-util-keysyms'
+ 'ttf-freefont' 'libxv' 'libass' 'xdg-utils' 'desktop-file-utils')
+makedepends=('avahi' 'pkgconfig' 'live-media' 'libnotify'
+ 'flac' 'libtheora' 'alsa-lib' 'jack' 'kdelibs' 'udev'
+ 'libraw1394' 'libdc1394' 'libavc1394' 'libva' 'libpulse'
+ 'lirc-utils' 'gnutls' 'libcaca')
+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'
+ 'libpulse: PulseAudio support'
+ 'vdpau-video: vdpau back-end for nvidia'
+ 'libva-driver-intel: back-end for intel cards')
+[ "$CARCH" = "mips64el" ] && {
+makedepends=('avahi' 'pkgconfig' 'live-media' 'libnotify'
+ 'flac' 'libtheora' 'alsa-lib' 'jack' 'kdelibs' 'udev'
+ 'libraw1394' 'libdc1394' 'libavc1394' 'libva' 'libpulse'
+ 'gnutls' 'libcaca')
+optdepends=('avahi: for service discovery using bonjour protocol'
+ 'libnotify: for notification plugin'
+ 'ncurses: for ncurses interface support'
+ 'libdvdcss: for decoding encrypted DVDs'
+ 'libavc1394: for devices using the 1394ta AV/C'
+ 'libdc1394: for IEEE 1394 plugin'
+ 'kdelibs: KDE Solid hardware integration'
+ 'libpulse: PulseAudio support')
+}
+conflicts=('vlc-plugin')
+replaces=('vlc-plugin')
+backup=('usr/share/vlc/http/.hosts'
+ 'usr/share/vlc/http/dialogs/.hosts'
+ 'usr/share/vlc/lua/http/.hosts'
+ 'usr/share/vlc/lua/http/dialogs/.hosts')
+options=('!libtool')
+install=vlc.install
+source=("http://download.videolan.org/pub/videolan/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+ 'bp-set-channel-map-pulseaudio-1.0.patch')
+md5sums=('91de1ad308c947e35380f9d747ff5713'
+ 'bae24e02207364d76a1a118644de484e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e 's:truetype/freefont:TTF:g' modules/misc/freetype.c
+
+ patch -Np1 -i ${srcdir}/bp-set-channel-map-pulseaudio-1.0.patch
+
+ if [ "$CARCH" = "mips64el" ]; then
+ ./configure --prefix=/usr \
+ --disable-rpath \
+ --enable-faad \
+ --enable-v4l \
+ --enable-snapshot \
+ --enable-dbus-control \
+ --enable-nls \
+ --disable-lirc \
+ --enable-pvr \
+ --enable-ncurses \
+ --with-live555-tree=/usr/lib/live \
+ --enable-upnp \
+ --enable-realrtsp
+ else
+
+ ./configure --prefix=/usr \
+ --disable-rpath \
+ --enable-faad \
+ --enable-v4l \
+ --enable-snapshot \
+ --enable-dbus-control \
+ --enable-nls \
+ --enable-lirc \
+ --enable-pvr \
+ --enable-ncurses \
+ --with-live555-tree=/usr/lib/live \
+ --enable-upnp \
+ --enable-realrtsp
+ fi
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${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
+}
diff --git a/extra/vlc/bp-set-channel-map-pulseaudio-1.0.patch b/extra/vlc/bp-set-channel-map-pulseaudio-1.0.patch
new file mode 100644
index 000000000..e63b3f97b
--- /dev/null
+++ b/extra/vlc/bp-set-channel-map-pulseaudio-1.0.patch
@@ -0,0 +1,33 @@
+From 15a821886296a8efe5f8b9015b6e9c5ae5e3ae79 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Tue, 11 Oct 2011 19:19:21 +0300
+Subject: Set channel map when using PulseAudio 1.0
+
+(cherry picked from commit ca2cb5f01340252a85ad5bed877e84407f092b21)
+---
+ modules/audio_output/pulse.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/modules/audio_output/pulse.c b/modules/audio_output/pulse.c
+index d67dc31..18ee280 100644
+--- a/modules/audio_output/pulse.c
++++ b/modules/audio_output/pulse.c
+@@ -640,6 +640,7 @@ static int Open(vlc_object_t *obj)
+ formatv[formatc]->encoding = encoding;
+ pa_format_info_set_rate(formatv[formatc], ss.rate);
+ pa_format_info_set_channels(formatv[formatc], ss.channels);
++ pa_format_info_set_channel_map(formatv[formatc], &map);
+ formatc++;
+ }
+
+@@ -649,6 +650,7 @@ static int Open(vlc_object_t *obj)
+ pa_format_info_set_sample_format(formatv[formatc], ss.format);
+ pa_format_info_set_rate(formatv[formatc], ss.rate);
+ pa_format_info_set_channels(formatv[formatc], ss.channels);
++ pa_format_info_set_channel_map(formatv[formatc], &map);
+ formatc++;
+
+ /* Create a playback stream */
+--
+1.7.4.1
+
diff --git a/extra/vlc/vlc.install b/extra/vlc/vlc.install
new file mode 100644
index 000000000..dc4961cae
--- /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..8fd3c7949
--- /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' 'mips64el')
+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/vpnc/PKGBUILD b/extra/vpnc/PKGBUILD
new file mode 100644
index 000000000..1e1228bba
--- /dev/null
+++ b/extra/vpnc/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 142551 2011-11-12 00:27:55Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=vpnc
+_vpncver=0.5.3
+pkgver=$_vpncver.svn472
+pkgrel=1
+pkgdesc="VPN client for cisco3000 VPN Concentrators"
+url="http://www.unix-ag.uni-kl.de/~massar/vpnc/"
+license=('GPL')
+depends=('libgcrypt' 'openssl' 'iproute2')
+optdepends=('openresolv: Let vpnc manage resolv.conf')
+arch=('i686' 'x86_64')
+source=("ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.xz"
+ 'vpnc.conf')
+backup=('etc/vpnc/default.conf')
+md5sums=('51c350341ad4e7f8efbba19810b138a3'
+ 'a3f4e0cc682f437e310a1c86ae198e45')
+
+mktarball() {
+ svn co http://svn.unix-ag.uni-kl.de/vpnc/trunk
+ pushd trunk
+ _svnrev=$(svn info | awk '/^Revision:/ { print $2 }')
+ popd
+
+ git clone git://git.infradead.org/users/dwmw2/vpnc-scripts.git
+ cp vpnc-scripts/vpnc-script trunk/
+
+ find trunk/ -type d -name .svn -exec rm -rf {} +
+ mv trunk "$pkgname-$_vpncver.svn$_svnrev"
+ tar cJf "$pkgname-$_vpncver.svn$_svnrev"{.tar.xz,}
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Build hybrid support
+ sed -i 's|^#OPENSSL|OPENSSL|g' Makefile
+
+ # fix resolvconf location for community/openresolv
+ sed -i 's|/sbin/resolvconf|/usr&|g' vpnc-script
+
+ make PREFIX=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+
+ rm -f "$pkgdir"/etc/vpnc/vpnc.conf
+ install -D -m644 "$srcdir"/vpnc.conf "$pkgdir"/etc/vpnc/default.conf
+}
diff --git a/extra/vpnc/vpnc.conf b/extra/vpnc/vpnc.conf
new file mode 100644
index 000000000..914f827fd
--- /dev/null
+++ b/extra/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/extra/vsftpd/PKGBUILD b/extra/vsftpd/PKGBUILD
new file mode 100644
index 000000000..d1651dd39
--- /dev/null
+++ b/extra/vsftpd/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 131827 2011-07-15 23:59:43Z dreisner $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=vsftpd
+pkgver=2.3.4
+pkgrel=2
+pkgdesc="Very Secure FTP daemon"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://security.appspot.com/vsftpd.html"
+license=('GPL2')
+depends=('openssl')
+backup=('etc/vsftpd.conf' 'etc/xinetd.d/vsftpd')
+install=vsftpd.install
+source=("https://security.appspot.com/downloads/${pkgname}-${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_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..14cb5013b
--- /dev/null
+++ b/extra/vte/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 142691 2011-11-12 18:51:31Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=vte
+pkgver=0.28.2
+pkgrel=3
+pkgdesc="Virtual Terminal Emulator widget for use with GTK2"
+arch=('i686' 'x86_64' 'mips64el')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+depends=('gtk2' 'vte-common')
+makedepends=('pygtk' 'intltool' 'gobject-introspection' 'pygobject2-devel')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-$pkgver.tar.xz
+make_alt_work.patch::http://git.gnome.org/browse/vte/patch/?id=b73782a28894e25ed146271f9d6c6775a6836199)
+sha256sums=('86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae'
+ '8307623b13bcaf214cc25207ee7afaf65575d334623460311c24437fbbae14d3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #warning: type-punning to incomplete type might break strict-aliasing rules
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ patch -Np1 -R -i "$srcdir/make_alt_work.patch"
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection --with-gtk=2.0
+ make
+}
+
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ rm "$pkgdir/usr/lib/vte/gnome-pty-helper"
+}
diff --git a/extra/vte3/PKGBUILD b/extra/vte3/PKGBUILD
new file mode 100644
index 000000000..8b2f70aed
--- /dev/null
+++ b/extra/vte3/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 142687 2011-11-12 18:46:20Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=vte3
+pkgname=(vte3 vte-common)
+pkgver=0.30.1
+pkgrel=2
+pkgdesc="Virtual Terminal Emulator widget for use with GTK3"
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+makedepends=('intltool' 'gobject-introspection' 'gtk3')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/vte/0.30/vte-$pkgver.tar.xz
+make_alt_work.patch::http://git.gnome.org/browse/vte/patch/?id=b73782a28894e25ed146271f9d6c6775a6836199)
+sha256sums=('bbe421de3015935c22f685eea0eb8be2c1fecd5021c1f822996b8f0a282f6b64'
+ '8307623b13bcaf214cc25207ee7afaf65575d334623460311c24437fbbae14d3')
+
+build() {
+ cd "$srcdir/vte-$pkgver"
+ #warning: type-punning to incomplete type might break strict-aliasing rules
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ patch -Np1 -R -i "$srcdir/make_alt_work.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection
+ make
+}
+
+package_vte3(){
+ depends=('gtk3' 'vte-common')
+ cd "$srcdir/vte-$pkgver"
+ 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/vte-$pkgver"
+
+ make -C gnome-pty-helper DESTDIR="$pkgdir" install
+}
diff --git a/extra/w3m/GC_set_warn_proc.patch b/extra/w3m/GC_set_warn_proc.patch
new file mode 100644
index 000000000..a679c8d23
--- /dev/null
+++ b/extra/w3m/GC_set_warn_proc.patch
@@ -0,0 +1,12 @@
+--- main.c.orig 2011-09-07 17:30:01.181808262 +0200
++++ main.c 2011-09-07 17:30:52.833808484 +0200
+@@ -833,7 +833,8 @@
+ mySignal(SIGPIPE, SigPipe);
+ #endif
+
+- orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++ orig_GC_warn_proc = GC_get_warn_proc();
++ GC_set_warn_proc(wrap_GC_warn_proc);
+ err_msg = Strnew();
+ if (load_argc == 0) {
+ /* no URL specified */
diff --git a/extra/w3m/PKGBUILD b/extra/w3m/PKGBUILD
new file mode 100644
index 000000000..07360a028
--- /dev/null
+++ b/extra/w3m/PKGBUILD
@@ -0,0 +1,40 @@
+# $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' 'mips64el')
+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"
+ "GC_set_warn_proc.patch")
+sha1sums=('444b6c8cf7094ee95f8e9de96b37f814b9d83237'
+ '8bf1eae3241f5781d121319c8ee9bcda32d1f7bd')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np0 -i "${srcdir}/GC_set_warn_proc.patch"
+ ./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/"
+}
diff --git a/extra/watchdog/PKGBUILD b/extra/watchdog/PKGBUILD
new file mode 100644
index 000000000..95801df8c
--- /dev/null
+++ b/extra/watchdog/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 141081 2011-10-23 14:16:24Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=watchdog
+pkgver=5.9
+pkgrel=2
+pkgdesc="Watchdog daemon"
+arch=(i686 x86_64 'mips64el')
+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
+ watchdog-5.9-use-oom_score_adj.patch)
+md5sums=('d7cae3c9829f5d9a680764f314234867'
+ '854451f554718b55186599faaa8d85f6'
+ '01c1e2e13f515131180b4ebe9b8b7cc3'
+ '9a1ab454e42a7f2969ef6bf2da8a4543')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ patch -p1 -i "${srcdir}"/watchdog-5.9-use-oom_score_adj.patch
+ ./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-5.9-use-oom_score_adj.patch b/extra/watchdog/watchdog-5.9-use-oom_score_adj.patch
new file mode 100644
index 000000000..90508d777
--- /dev/null
+++ b/extra/watchdog/watchdog-5.9-use-oom_score_adj.patch
@@ -0,0 +1,91 @@
+diff -ur watchdog-5.9.orig/src/watchdog.c watchdog-5.9/src/watchdog.c
+--- watchdog-5.9.orig/src/watchdog.c 2010-06-16 15:45:51.000000000 +0200
++++ watchdog-5.9/src/watchdog.c 2011-10-23 15:51:58.631689778 +0200
+@@ -636,7 +636,7 @@
+
+ /* allocate some memory to store a filename, this is needed later on even
+ * if the system runs out of memory */
+- filename_buf = (char*)malloc(max(strlen(logdir) + sizeof("/repair-bin.stdout") + 1, strlen("/proc//oom_adj") + sizeof(int) * CHAR_BIT * 10 / 3 + 1));
++ filename_buf = (char*)malloc(max(strlen(logdir) + sizeof("/repair-bin.stdout") + 1, strlen("/proc//oom_score_adj") + sizeof(int) * CHAR_BIT * 10 / 3 + 1));
+ if (!filename_buf) {
+ error(progname);
+ exit(1);
+@@ -886,11 +886,19 @@
+ #endif
+
+ /* tell oom killer to not kill this process */
+- sprintf(filename_buf, "/proc/%d/oom_adj", pid);
++ sprintf(filename_buf, "/proc/%d/oom_score_adj", pid);
+ fp = fopen(filename_buf, "w");
+ if (fp != NULL) {
+- fprintf(fp, "-17\n");
+- (void) fclose(fp);
++ fprintf(fp, "-1000\n");
++ (void) fclose(fp);
++ }
++ else {
++ sprintf(filename_buf, "/proc/%d/oom_adj", pid);
++ fp = fopen(filename_buf, "w");
++ if (fp != NULL) {
++ fprintf(fp, "-17\n");
++ (void) fclose(fp);
++ }
+ }
+
+ /* main loop: update after <tint> seconds */
+diff -ur watchdog-5.9.orig/src/wd_keepalive.c watchdog-5.9/src/wd_keepalive.c
+--- watchdog-5.9.orig/src/wd_keepalive.c 2010-06-16 15:45:49.000000000 +0200
++++ watchdog-5.9/src/wd_keepalive.c 2011-10-23 15:50:43.061563281 +0200
+@@ -212,7 +212,7 @@
+ FILE *fp;
+ char *configfile = CONFIG_FILENAME;
+ char *filename_buf;
+- pid_t child_pid;
++ pid_t pid, child_pid;
+ int count = 0;
+ int c;
+ /* allow all options watchdog understands too */
+@@ -284,7 +284,7 @@
+
+ /* allocate some memory to store a filename, this is needed later on even
+ * if the system runs out of memory */
+- filename_buf = (char*)malloc(strlen("/proc//oom_adj") + sizeof(int) * CHAR_BIT * 10 / 3 + 1);
++ filename_buf = (char*)malloc(strlen("/proc//oom_score_adj") + sizeof(int) * CHAR_BIT * 10 / 3 + 1);
+ if (!filename_buf) {
+ error(progname);
+ exit(1);
+@@ -363,9 +363,10 @@
+ #endif
+
+ /* tuck my process id away */
++ pid = getpid();
+ fp = fopen(KA_PIDFILE, "w");
+ if ( fp != NULL ) {
+- fprintf(fp, "%d\n", getpid());
++ fprintf(fp, "%d\n", pid);
+ (void) fclose(fp);
+ }
+
+@@ -403,12 +404,20 @@
+ #endif
+
+ /* tell oom killer to not kill this process */
+- sprintf(filename_buf, "/proc/%d/oom_adj", getpid());
++ sprintf(filename_buf, "/proc/%d/oom_score_adj", pid);
+ fp = fopen(filename_buf, "w");
+ if (fp != NULL) {
+- fprintf(fp, "-17\n");
++ fprintf(fp, "-1000\n");
+ (void) fclose(fp);
+ }
++ else {
++ sprintf(filename_buf, "/proc/%d/oom_adj", pid);
++ fp = fopen(filename_buf, "w");
++ if (fp != NULL) {
++ fprintf(fp, "-17\n");
++ (void) fclose(fp);
++ }
++ }
+
+ /* main loop: update after <tint> seconds */
+ while ( _running ) {
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..acb7b5fc4
--- /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' 'mips64el')
+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..03213af1d
--- /dev/null
+++ b/extra/webkit-sharp/PKGBUILD
@@ -0,0 +1,34 @@
+# 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=3
+pkgdesc="Mono/.NET bindings for the WebKit rendering engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.mono-project.com/"
+license=('custom:MIT')
+depends=('gtk-sharp-2' 'libwebkit>=1.4.0')
+makedepends=('pkgconfig>=0.9.0')
+source=(http://download.mono-project.com/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:webkit-1.0@LIB_PREFIX@.2@:libwebkitgtk-1.0@LIB_PREFIX@.0@:' sources/webkit-sharp.dll.config.in
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ 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..daf3477a9
--- /dev/null
+++ b/extra/webmin/PKGBUILD
@@ -0,0 +1,216 @@
+# $Id: PKGBUILD 140171 2011-10-08 10:04:27Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=webmin
+pkgver=1.570
+pkgrel=1
+pkgdesc="a web-based interface for system administration"
+arch=(i686 x86_64 'mips64el')
+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)
+options=(!strip)
+
+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=('20b4f488637366c39458b9b93162eff3'
+ '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..144e12ccc
--- /dev/null
+++ b/extra/weechat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143994 2011-12-01 15:45:52Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: lucke <lucke at o2 dot pl>
+
+pkgname=weechat
+pkgver=0.3.6
+pkgrel=2
+pkgdesc="Fast, light and extensible IRC client (curses UI)"
+arch=('i686' 'x86_64' 'mips64el')
+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=('db2392b8e31738f79f0898f77eda8daa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ mkdir build
+ cd build
+ cmake .. -DPREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+
+ make DESTDIR="${pkgdir}/" install
+}
diff --git a/extra/wesnoth/PKGBUILD b/extra/wesnoth/PKGBUILD
new file mode 100644
index 000000000..ed809500d
--- /dev/null
+++ b/extra/wesnoth/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 144065 2011-12-02 20:54:51Z ibiru $
+# 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.6
+pkgrel=3
+pkgdesc="A turn-based strategy game on a fantasy world"
+arch=('i686' 'x86_64' 'mips64el')
+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
+options=(!emptydirs)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
+ wesnoth-libpng-1.4.0.patch
+ wesnoth-1.8.6-boost-foreach.patch
+ wesnoth.tmpfiles.conf)
+md5sums=('f1c3179869b01b61e253e74aeb241034'
+ 'ca7412ffc4682ef55ddf82d56b0e2f08'
+ 'dc414ab7e1334941548e9db6db9c2460'
+ 'b8122f5054e3895c9c054e87460869dc')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/wesnoth-libpng-1.4.0.patch"
+ patch -Np1 -i "$srcdir/wesnoth-1.8.6-boost-foreach.patch"
+ ./autogen.sh
+ ./configure --prefix=/usr --localstatedir=/var --enable-tools \
+ --enable-editor --enable-server --with-fifodir=/run/wesnothd
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install-exec
+ install -dm755 "$pkgdir/usr/lib/tmpfiles.d/"
+ install -m644 "$srcdir/wesnoth.tmpfiles.conf" "$pkgdir/usr/lib/tmpfiles.d/wesnoth.conf"
+
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "$pkgdir/usr/bin/wesnoth_addon_manager"
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "$pkgdir/usr/bin/wmlindent"
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "$pkgdir/usr/bin/wmlscope"
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "$pkgdir/usr/bin/wmllint"
+}
diff --git a/extra/wesnoth/wesnoth-1.8.6-boost-foreach.patch b/extra/wesnoth/wesnoth-1.8.6-boost-foreach.patch
new file mode 100644
index 000000000..5aee3118c
--- /dev/null
+++ b/extra/wesnoth/wesnoth-1.8.6-boost-foreach.patch
@@ -0,0 +1,70 @@
+--- wesnoth-1.8.6/src/gui/widgets/tree_view_node.cpp~ 2011-07-21 23:05:56.594879049 +0200
++++ wesnoth-1.8.6/src/gui/widgets/tree_view_node.cpp 2011-07-21 23:28:07.540358742 +0200
+@@ -238,6 +238,17 @@ void ttree_view_node::clear()
+
+ struct ttree_view_node_implementation
+ {
++ template<class W, class It>
++ static W* find_at_aux(It begin, It end,
++ const tpoint& coordinate, const bool must_be_active) {
++ for (It it = begin; it != end; ++it) {
++ if(W* widget = it->find_at(coordinate, must_be_active)) {
++ return widget;
++ }
++ }
++ return NULL;
++ }
++
+ template<class W>
+ static W* find_at(
+ typename tconst_duplicator<W, ttree_view_node>::type&
+@@ -255,13 +266,9 @@ struct ttree_view_node_implementation
+ }
+
+ typedef typename tconst_duplicator<W, ttree_view_node>::type thack;
+- foreach(thack& node, tree_view_node.children_) {
+- if(W* widget = node.find_at(coordinate, must_be_active)) {
+- return widget;
+- }
+- }
+-
+- return NULL;
++ return find_at_aux<W>(tree_view_node.children_.begin(),
++ tree_view_node.children_.end(),
++ coordinate, must_be_active);
+ }
+ };
+
+@@ -313,7 +320,9 @@ tpoint ttree_view_node::get_current_size
+ return size;
+ }
+
+- foreach(const ttree_view_node& node, children_) {
++ for (boost::ptr_vector<ttree_view_node>::const_iterator it
++ = children_.begin (); it != children_.end (); ++it) {
++ const ttree_view_node& node = *it;
+
+ if(node.grid_.get_visible() == twidget::INVISIBLE) {
+ continue;
+@@ -344,7 +353,9 @@ tpoint ttree_view_node::get_unfolded_siz
+ size.x += (get_indention_level() - 1) * tree_view().indention_step_size_;
+ }
+
+- foreach(const ttree_view_node& node, children_) {
++ for (boost::ptr_vector<ttree_view_node>::const_iterator it
++ = children_.begin (); it != children_.end (); ++it) {
++ const ttree_view_node& node = *it;
+
+ if(node.grid_.get_visible() == twidget::INVISIBLE) {
+ continue;
+@@ -378,7 +389,9 @@ tpoint ttree_view_node::calculate_best_s
+
+ DBG_GUI_L << LOG_HEADER << " own grid best size " << best_size << ".\n";
+
+- foreach(const ttree_view_node& node, children_) {
++ for (boost::ptr_vector<ttree_view_node>::const_iterator it
++ = children_.begin (); it != children_.end (); ++it) {
++ const ttree_view_node& node = *it;
+
+ if(node.grid_.get_visible() == twidget::INVISIBLE) {
+ continue;
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/wesnoth/wesnoth.tmpfiles.conf b/extra/wesnoth/wesnoth.tmpfiles.conf
new file mode 100644
index 000000000..3ec0f6013
--- /dev/null
+++ b/extra/wesnoth/wesnoth.tmpfiles.conf
@@ -0,0 +1 @@
+D /run/wesnothd 0700 root root -
diff --git a/extra/whois/PKGBUILD b/extra/whois/PKGBUILD
new file mode 100644
index 000000000..727038a39
--- /dev/null
+++ b/extra/whois/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 143998 2011-12-01 15:53:42Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=whois
+pkgver=5.0.13
+pkgrel=1
+pkgdesc="The whois client by Marco d'Itri"
+arch=('i686' 'x86_64' 'mips64el')
+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=('1c703fa6ddc2f41ae94efc7c8bfc794d')
+
+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..c4612bbda
--- /dev/null
+++ b/extra/windowmaker-crm-git/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 137555 2011-09-09 11:26:39Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=windowmaker-crm-git
+pkgver=20110909
+pkgrel=1
+pkgdesc="An X11 window manager with a NEXTSTEP look and feel - git version from Carlos R. Mafra"
+arch=(i686 x86_64 'mips64el')
+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=('594f66f40130fe49b6350579f4d54c2b'
+ '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 --enable-xrandr
+ 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/PKGBUILD b/extra/windowmaker/PKGBUILD
new file mode 100644
index 000000000..f1e781932
--- /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 'mips64el')
+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..c51bcfa2e
--- /dev/null
+++ b/extra/wipe/PKGBUILD
@@ -0,0 +1,29 @@
+# $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' 'mips64el')
+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
+ [ "$CARCH" = "mips64el" ] && extra="--build=$CHOST --host=$CHOST --target=$CHOST"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man $extra
+ 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..a12445446
--- /dev/null
+++ b/extra/wireshark/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 142976 2011-11-19 11:40:12Z 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.6.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+makedepends=('bison' 'flex' 'gtk2' 'krb5' 'libcap' 'libpcap' 'bash' 'gnutls' 'libgcrypt' 'lua')
+url="http://www.wireshark.org/"
+options=(!libtool)
+source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('a348521c514fcdd890d974f2a0b59db3')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --with-ssl \
+ --with-zlib=yes \
+ --with-lua
+ make all
+}
+
+package_wireshark-cli() {
+ pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - CLI version"
+ depends=('krb5' 'libcap' 'libpcap' 'bash' 'gnutls' 'libgcrypt' 'glib2' 'lua')
+ 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..6585ba272
--- /dev/null
+++ b/extra/wireshark/wireshark.install
@@ -0,0 +1,18 @@
+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() {
+ 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
+}
+
+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..2b38788de
--- /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' 'mips64el')
+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..3b626f0d7
--- /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 'mips64el')
+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..73b733286
--- /dev/null
+++ b/extra/wv2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 142173 2011-11-05 11:56:53Z pierre $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=wv2
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="MSWord 9,8,7,6 formats parser"
+arch=('i686' 'x86_64' 'mips64el')
+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
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/wxgtk/PKGBUILD b/extra/wxgtk/PKGBUILD
new file mode 100644
index 000000000..bc628e185
--- /dev/null
+++ b/extra/wxgtk/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 144988 2011-12-13 14:41:40Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=wxgtk
+pkgver=2.8.12.1
+pkgrel=2
+pkgdesc="GTK+ implementation of wxWidgets API for GUI"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://wxwidgets.org"
+license=('custom:wxWindows')
+depends=('gtk2' 'gstreamer0.10-base' 'libgl' 'libxxf86vm' 'libsm')
+makedepends=('gstreamer0.10-base-plugins' 'gconf' 'mesa')
+#source=(http://downloads.sourceforge.net/wxwindows/wxGTK-${pkgver}.tar.bz2)
+source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2)
+sha1sums=('05688dc03d61631750f5904273122bb40a2115f5')
+
+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 --disable-optimize --enable-mediactrl --with-regex=sys \
+ --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys \
+ --disable-precomp-headers
+ make
+ make -C locale allmo
+ cd contrib/src
+ make
+}
+
+package() {
+ cd "${srcdir}/wxPython-src-${pkgver}"
+# 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..3d25c530a
--- /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=11.08.0
+pkgrel=1
+pkgdesc="A wxWidgets GUI for the computer algebra system Maxima"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://wxmaxima.sourceforge.net/"
+license=('GPL2')
+depends=('maxima' 'libxml2' 'wxgtk')
+source=(http://downloads.sourceforge.net/$pkgname/wxMaxima-$pkgver.tar.gz)
+sha1sums=('852a772e4b982bc355120cc95ee6f3d600ce011b')
+
+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/PKGBUILD b/extra/wxpython/PKGBUILD
new file mode 100644
index 000000000..552a2bf27
--- /dev/null
+++ b/extra/wxpython/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144998 2011-12-13 22:53:53Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=wxpython
+pkgver=2.8.12.1
+pkgrel=3
+pkgdesc="A wxWidgets GUI toolkit for Python"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom:wxWindows')
+url="http://www.wxpython.org"
+depends=('wxgtk' 'python2')
+makedepends=('mesa')
+source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2 wxpython-cairo.patch)
+sha1sums=('05688dc03d61631750f5904273122bb40a2115f5'
+ '420700b0a216b853352ffafd054f406a82a30bb3')
+
+build() {
+ cd "${srcdir}/wxPython-src-${pkgver}"
+ find . -type f -exec sed -i 's/env python/env python2/' {} \;
+ mv wxPython/wx/tools/Editra/editra wxPython/wx/tools/Editra/Editra
+ ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=2 --with-opengl --enable-unicode \
+ --enable-graphics_ctx --disable-optimize --enable-mediactrl \
+ --with-regex=sys --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys \
+ --disable-precomp-headers
+ cd "${srcdir}/wxPython-src-${pkgver}/wxPython"
+ patch -p2 -i "${srcdir}/wxpython-cairo.patch"
+ 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/wxpython-cairo.patch b/extra/wxpython/wxpython-cairo.patch
new file mode 100644
index 000000000..f3fc6fba0
--- /dev/null
+++ b/extra/wxpython/wxpython-cairo.patch
@@ -0,0 +1,51 @@
+--- wxPython/trunk/wx/lib/wxcairo.py 2011/08/25 18:50:02 68894
++++ wxPython/trunk/wx/lib/wxcairo.py 2011/09/22 00:30:25 69181
+@@ -401,6 +401,48 @@
+ ctypes.py_object)),
+ ('Check_Status', ctypes.PYFUNCTYPE(ctypes.c_int, ctypes.c_int))]
+
++ # This structure is known good with pycairo 1.10.0. The keep adding stuff
++ # to the middle of the structure instead of only adding to the end!
++ elif cairo.version_info < (1,11):
++ _fields_ = [
++ ('Context_Type', ctypes.py_object),
++ ('Context_FromContext', ctypes.PYFUNCTYPE(ctypes.py_object,
++ ctypes.c_void_p,
++ ctypes.py_object,
++ ctypes.py_object)),
++ ('FontFace_Type', ctypes.py_object),
++ ('ToyFontFace_Type', ctypes.py_object), #** new in 1.8.4
++ ('FontFace_FromFontFace', ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
++ ('FontOptions_Type', ctypes.py_object),
++ ('FontOptions_FromFontOptions', ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
++ ('Matrix_Type', ctypes.py_object),
++ ('Matrix_FromMatrix', ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
++ ('Path_Type', ctypes.py_object),
++ ('Path_FromPath', ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
++ ('Pattern_Type', ctypes.py_object),
++ ('SolidPattern_Type', ctypes.py_object),
++ ('SurfacePattern_Type', ctypes.py_object),
++ ('Gradient_Type', ctypes.py_object),
++ ('LinearGradient_Type', ctypes.py_object),
++ ('RadialGradient_Type', ctypes.py_object),
++ ('Pattern_FromPattern', ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p,
++ ctypes.py_object)), #** changed in 1.8.4
++ ('ScaledFont_Type', ctypes.py_object),
++ ('ScaledFont_FromScaledFont', ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
++ ('Surface_Type', ctypes.py_object),
++ ('ImageSurface_Type', ctypes.py_object),
++ ('PDFSurface_Type', ctypes.py_object),
++ ('PSSurface_Type', ctypes.py_object),
++ ('SVGSurface_Type', ctypes.py_object),
++ ('Win32Surface_Type', ctypes.py_object),
++ ('Win32PrintingSurface_Type', ctypes.py_object),
++ ('XCBSurface_Type', ctypes.py_object),
++ ('XlibSurface_Type', ctypes.py_object),
++ ('Surface_FromSurface', ctypes.PYFUNCTYPE(ctypes.py_object,
++ ctypes.c_void_p,
++ ctypes.py_object)),
++ ('Check_Status', ctypes.PYFUNCTYPE(ctypes.c_int, ctypes.c_int))]
++
+
+ def _loadPycairoAPI():
+ global pycairoAPI
diff --git a/extra/x11-ssh-askpass/PKGBUILD b/extra/x11-ssh-askpass/PKGBUILD
new file mode 100644
index 000000000..37b84c4d0
--- /dev/null
+++ b/extra/x11-ssh-askpass/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 140828 2011-10-19 22:29:39Z bisson $
+
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Mike Sampson <mike at sambodata dot com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Charles Mauch <cmauch@gmail.com>
+
+pkgname=x11-ssh-askpass
+pkgver=1.2.4.1
+pkgrel=3
+pkgdesc='Lightweight passphrase dialog for SSH'
+url='http://www.jmknoble.net/software/x11-ssh-askpass/'
+license=('custom')
+arch=('i686' 'x86_64')
+depends=('libxt')
+makedepends=('imake')
+#source=("${url}${pkgname}-${pkgver}.tar.gz" # httpd only sends half the bits
+source=("http://pkgs.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz"
+ 'profile.d')
+sha1sums=('78c992951685d4dbffb77536f37b83ae2a6eafc7'
+ '28be56290d07e2625bc8e81ae8c7ea741d329c51')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --mandir=/usr/share/man \
+ --libexecdir=/usr/lib/ssh \
+ --with-app-defaults-dir=/usr/share/X11/app-defaults \
+
+ xmkmf
+ make includes
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install install.man
+ install -Dm755 ../profile.d "${pkgdir}/etc/profile.d/${pkgname}.sh"
+
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ sed '109,174p;d' README > "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/x11-ssh-askpass/profile.d b/extra/x11-ssh-askpass/profile.d
new file mode 100644
index 000000000..955d6ad96
--- /dev/null
+++ b/extra/x11-ssh-askpass/profile.d
@@ -0,0 +1,4 @@
+if [ -f "/usr/lib/ssh/x11-ssh-askpass" ] ; then
+ SSH_ASKPASS="/usr/lib/ssh/x11-ssh-askpass"
+ export SSH_ASKPASS
+fi
diff --git a/extra/x11vnc/PKGBUILD b/extra/x11vnc/PKGBUILD
new file mode 100644
index 000000000..c1324d590
--- /dev/null
+++ b/extra/x11vnc/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 137979 2011-09-13 20:01:54Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=x11vnc
+pkgver=0.9.13
+pkgrel=1
+pkgdesc='VNC server for real X displays'
+arch=('i686' 'x86_64' 'mips64el')
+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/project/libvncserver/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'conf.d'
+ 'rc.d')
+sha1sums=('f011d81488ac94dc8dce2d88739c23bd85a976fa'
+ '11011cce06511e9ba61672a1c80bb63a3a187539'
+ '477892cf0f0020043444b7493c80684762ded506')
+
+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}/rc.d" "${pkgdir}/etc/rc.d/x11vnc"
+ install -D -m 644 "${srcdir}/conf.d" "${pkgdir}/etc/conf.d/x11vnc"
+}
diff --git a/extra/x11vnc/conf.d b/extra/x11vnc/conf.d
new file mode 100644
index 000000000..8a81e3286
--- /dev/null
+++ b/extra/x11vnc/conf.d
@@ -0,0 +1,5 @@
+#
+# Parameters to be passed to x11vnc
+#
+
+X11VNC_ARGS=""
diff --git a/extra/x11vnc/rc.d b/extra/x11vnc/rc.d
new file mode 100644
index 000000000..b5f2a6464
--- /dev/null
+++ b/extra/x11vnc/rc.d
@@ -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..78a9bf82e
--- /dev/null
+++ b/extra/x264/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 142608 2011-11-12 17:14:58Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Paul Mattal <paul@archlinux.org>
+
+pkgname=x264
+pkgver=20111030
+pkgrel=1
+pkgdesc="free library for encoding H264/AVC video streams"
+arch=('i686' 'x86_64' 'mips64el')
+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=('fa52ad09dcb7d4e1a66adcaa2dab26bc')
+
+build() {
+ cd "$srcdir/$pkgname-snapshot-$pkgver-2245"
+
+ [ "$CARCH" = "mips64el" ] && extra="--enable-pic"
+
+ ./configure --enable-shared $extra
+
+ 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..3fa89f714
--- /dev/null
+++ b/extra/x2x/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 128494 2011-06-24 05:31:20Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=x2x
+pkgver=1.27
+pkgrel=6
+pkgdesc="Control one X display from another"
+arch=(i686 x86_64 'mips64el')
+url="https://github.com/dottedmag/x2x"
+license=('custom')
+depends=('libxtst')
+makedepends=('imake')
+source=(https://github.com/downloads/dottedmag/x2x/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('3d1bc863f3209ec37caf7f57bde7e8f0'
+ '7ebc35f66a8ded9b8d8d7ca4131c7ae8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ mv x2x.1 x2x.man
+ xmkmf
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" MANPATH=/usr/share/man install install.man
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xalan-java/PKGBUILD b/extra/xalan-java/PKGBUILD
new file mode 100644
index 000000000..f7fa0ad7c
--- /dev/null
+++ b/extra/xalan-java/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
+
+pkgname=xalan-java
+pkgver=2.7.1
+pkgrel=3
+pkgdesc="XSLT processor for transforming XML documents into HTML, text, or other XML document types"
+arch=('any')
+license=('APACHE')
+url="http://xml.apache.org/xalan-j"
+depends=('xerces2-java')
+source=(http://mirror.softaculous.com/apache//xml/xalan-j/xalan-j_${pkgver//./_}-bin-2jars.tar.gz)
+md5sums=('3ccda39bcd08b780436dfd2f22fb23d5')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd ${srcdir}/xalan-j_${pkgver//./_}
+ install -m755 -d ${pkgdir}/usr/share/java
+ install -m644 xalan.jar ${pkgdir}/usr/share/java/ || return 1
+ install -m644 xsltc.jar ${pkgdir}/usr/share/java/ || return 1
+}
diff --git a/extra/xaos/PKGBUILD b/extra/xaos/PKGBUILD
new file mode 100644
index 000000000..28a1f9c9f
--- /dev/null
+++ b/extra/xaos/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 137880 2011-09-12 06:35:34Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xaos
+pkgver=3.5
+pkgrel=4
+pkgdesc="A fast portable real-time interactive fractal zoomer"
+arch=('i686' 'x86_64' 'mips64el')
+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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xaos/xaos.install b/extra/xaos/xaos.install
new file mode 100644
index 000000000..afee50a72
--- /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/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..931513921
--- /dev/null
+++ b/extra/xaw3d/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 124576 2011-05-23 03:13:29Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xaw3d
+pkgver=1.5E
+pkgrel=3
+pkgdesc="Three-D Athena widgets"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://directory.fsf.org/project/xaw3d/"
+license=('MIT')
+depends=('libxmu' 'libxpm')
+makedepends=('imake')
+options=('!makeflags')
+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"
+ patch -Np4 -i "${srcdir}/xaw3d.patch"
+ patch -Np4 -i "${srcdir}/Xaw3d-ia64.patch"
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5-i18n.patch"
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5-box.c.patch"
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5-debian-fixes.patch"
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5E-warnings.patch"
+ ln -s .. X11
+ xmkmf
+ make CDEBUGFLAGS="${CFLAGS} -DARROW_SCROLLBAR"
+}
+
+package() {
+ cd "${srcdir}/xc/lib/Xaw3d"
+ make DESTDIR="${pkgdir}" SHLIBDIR=/usr/lib INCDIR=/usr/include install
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
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..4bd5f8da5
--- /dev/null
+++ b/extra/xawtv/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 130228 2011-07-04 14:14:56Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=xawtv
+pkgver=3.101
+pkgrel=1
+pkgdesc="A simple Xaw-based TV program which uses the bttv driver or video4linux"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://git.linuxtv.org/xawtv3.git"
+license=('GPL')
+depends=('aalib' 'v4l-utils' 'libxv' 'libxxf86dga' 'libxrandr' 'libgl' 'libdv' 'zvbi' 'libxinerama' 'lirc-utils' 'libxft' 'libxaw' 'xorg-fonts-misc')
+makedepends=('mesa')
+source=(http://linuxtv.org/downloads/xawtv/xawtv-${pkgver}.tar.bz2)
+md5sums=('330ce1789595e370be34ad4cae3dc3fa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ autoconf
+ autoheader
+ ./configure --prefix=/usr --disable-motif --disable-quicktime
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xbill/PKGBUILD b/extra/xbill/PKGBUILD
new file mode 100644
index 000000000..7b9503c78
--- /dev/null
+++ b/extra/xbill/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 122895 2011-05-07 05:36:47Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xbill
+pkgver=2.1
+pkgrel=7
+pkgdesc="A game that tests your reflexes as you seek and destroy all forms of Bill"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xbill.org/"
+license=('GPL')
+depends=('xaw3d')
+makedepends=('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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+# 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..b68d88071
--- /dev/null
+++ b/extra/xbill/xbill.install
@@ -0,0 +1,26 @@
+pre_install() {
+ if [ ! -e var/games/xbill/scores -a -e usr/var/xbill/scores ]; then
+ mkdir -p var/games/xbill
+ 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/xcb-util-image/LICENSE b/extra/xcb-util-image/LICENSE
new file mode 100644
index 000000000..5e3822ccd
--- /dev/null
+++ b/extra/xcb-util-image/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-image/PKGBUILD b/extra/xcb-util-image/PKGBUILD
new file mode 100644
index 000000000..516ded1a7
--- /dev/null
+++ b/extra/xcb-util-image/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 144429 2011-12-05 19:49:24Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=xcb-util-image
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding - Port of Xlib's XImage and XShmImage functions"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.7' 'xcb-util>=0.3.8')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=("http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE')
+md5sums=('245a96041f373b05764148e52d2e0211'
+ '2672c2e72dedb40f773e989dd622f298')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xcb-util-keysyms/LICENSE b/extra/xcb-util-keysyms/LICENSE
new file mode 100644
index 000000000..5e3822ccd
--- /dev/null
+++ b/extra/xcb-util-keysyms/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-keysyms/PKGBUILD b/extra/xcb-util-keysyms/PKGBUILD
new file mode 100644
index 000000000..efc92fb6b
--- /dev/null
+++ b/extra/xcb-util-keysyms/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 144431 2011-12-05 19:49:26Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=xcb-util-keysyms
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.7')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=("http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE')
+md5sums=('c75bb20e709093580a67eaf263251b50'
+ '2672c2e72dedb40f773e989dd622f298')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xcb-util-renderutil/LICENSE b/extra/xcb-util-renderutil/LICENSE
new file mode 100644
index 000000000..5e3822ccd
--- /dev/null
+++ b/extra/xcb-util-renderutil/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-renderutil/PKGBUILD b/extra/xcb-util-renderutil/PKGBUILD
new file mode 100644
index 000000000..4acc983b3
--- /dev/null
+++ b/extra/xcb-util-renderutil/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 144433 2011-12-05 19:49:29Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=xcb-util-renderutil
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding - Convenience functions for the Render extension"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.7')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=("http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE')
+md5sums=('b346ff598ee093c141f836fbc0f8f721'
+ '2672c2e72dedb40f773e989dd622f298')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xcb-util-wm/LICENSE b/extra/xcb-util-wm/LICENSE
new file mode 100644
index 000000000..5e3822ccd
--- /dev/null
+++ b/extra/xcb-util-wm/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-wm/PKGBUILD b/extra/xcb-util-wm/PKGBUILD
new file mode 100644
index 000000000..43b712a49
--- /dev/null
+++ b/extra/xcb-util-wm/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 144435 2011-12-05 19:49:32Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=xcb-util-wm
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding - "
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.7')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=("http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE')
+md5sums=('dda47289bc846a6a3e07824e9ec3aef8'
+ '2672c2e72dedb40f773e989dd622f298')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
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..ac43b76d3
--- /dev/null
+++ b/extra/xcb-util/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 144427 2011-12-05 19:49:22Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=xcb-util
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.7')
+makedepends=('gperf' 'xorg-util-macros')
+options=('!libtool')
+source=("http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE')
+md5sums=('8ce019c4bbf20dce246b98f177cfccff'
+ '2672c2e72dedb40f773e989dd622f298')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xchm/PKGBUILD b/extra/xchm/PKGBUILD
new file mode 100644
index 000000000..569da6710
--- /dev/null
+++ b/extra/xchm/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 144000 2011-12-01 15:58:58Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=xchm
+pkgver=1.20
+pkgrel=2
+pkgdesc="A cross-platform GUI front-end to chmlib"
+arch=('i686' 'x86_64' 'mips64el')
+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=('85943645d20af536704a20b58ebd5849'
+ '31fb9692b9ee9f2a205f58b9ff4bc4fe'
+ '4102b0a393f5c60236143cc034664dd0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ ./configure --prefix=/usr \
+ --build=$CHOST \
+ --host=$CHOST
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ install -D -m644 ${srcdir}/xchm.desktop "${pkgdir}/usr/share/applications/xchm.desktop"
+ install -D -m644 ${srcdir}/xchm.xml "${pkgdir}/usr/share/mime/packages/xchm.xml"
+}
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..d14e1bb42
--- /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' 'mips64el')
+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..4769d7443
--- /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' 'mips64el')
+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..c50fe5969
--- /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' 'mips64el')
+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..a7d6c3533
--- /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' 'mips64el')
+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/xerces2-java/PKGBUILD b/extra/xerces2-java/PKGBUILD
new file mode 100644
index 000000000..cccb28bed
--- /dev/null
+++ b/extra/xerces2-java/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 144863 2011-12-08 20:32:13Z andyrtr $
+
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xerces2-java
+pkgver=2.11.0
+pkgrel=1
+pkgdesc="High performance fully compliant Java XML parser"
+arch=('any')
+url="http://xml.apache.org/xerces2-j"
+license=('APACHE')
+provides=("java-xerces2=${pkgver}")
+conflicts=('java-xerces2')
+replaces=('java-xerces2')
+source=(http://mirror.checkdomain.de/apache//xerces/j/Xerces-J-bin.${pkgver}.tar.gz)
+md5sums=('29d731e0ae57eb3f2e09af6594bc2515')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd ${srcdir}/xerces-${pkgver//./_}
+ install -m755 -d ${pkgdir}/usr/share/java
+ rm -f xercesSamples.jar
+ install -m644 *.jar ${pkgdir}/usr/share/java/
+}
diff --git a/extra/xf86-input-acecad/PKGBUILD b/extra/xf86-input-acecad/PKGBUILD
new file mode 100644
index 000000000..c07e69d4a
--- /dev/null
+++ b/extra/xf86-input-acecad/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 140352 2011-10-11 21:29:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-acecad
+pkgver=1.5.0
+pkgrel=2
+pkgdesc="X.Org acecad tablet input driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('sysfsutils')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ assign-local-private-after-allocating.patch)
+sha1sums=('410cee68e4435dc95774fb389fcefae1b2ffe3d1'
+ '9301020b0ef3c6f2081e957481a88d2e187a7973')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/assign-local-private-after-allocating.patch"
+ ./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-acecad/assign-local-private-after-allocating.patch b/extra/xf86-input-acecad/assign-local-private-after-allocating.patch
new file mode 100644
index 000000000..e3e635a6f
--- /dev/null
+++ b/extra/xf86-input-acecad/assign-local-private-after-allocating.patch
@@ -0,0 +1,24 @@
+From ec2c4ead497133ef20d5ef5a9b481b38e1e0f7a2 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 27 Jun 2011 03:13:54 +0000
+Subject: Assign local->private after allocating.
+
+It is detrimental to the user experience when the driver tries to derefernce
+null pointers.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/src/acecad.c b/src/acecad.c
+index ad6d793..604fe91 100644
+--- a/src/acecad.c
++++ b/src/acecad.c
+@@ -343,6 +343,7 @@ AceCadPreInit(InputDriverPtr drv, InputInfoPtr local, int flags)
+ return BadAlloc;
+
+ memset(priv, 0, sizeof(AceCadPrivateRec));
++ local->private = priv;
+
+ local->device_control = DeviceControl;
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xf86-input-aiptek/PKGBUILD b/extra/xf86-input-aiptek/PKGBUILD
new file mode 100644
index 000000000..e4f7ab6ba
--- /dev/null
+++ b/extra/xf86-input-aiptek/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140354 2011-10-11 21:29:43Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-aiptek
+pkgver=1.4.1
+pkgrel=2
+pkgdesc="X.Org Aiptek USB Digital Tablet input driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('55ea7d12d3e24fd72eacc966a59262864dce7769')
+
+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-evdev/PKGBUILD b/extra/xf86-input-evdev/PKGBUILD
new file mode 100644
index 000000000..b56a620c4
--- /dev/null
+++ b/extra/xf86-input-evdev/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140356 2011-10-11 21:29:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <Alexander@archlinux.org
+
+pkgname=xf86-input-evdev
+pkgver=2.6.0
+pkgrel=4
+pkgdesc="X.org evdev input driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+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/PKGBUILD b/extra/xf86-input-joystick/PKGBUILD
new file mode 100644
index 000000000..7c8fa0ab0
--- /dev/null
+++ b/extra/xf86-input-joystick/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 142923 2011-11-18 09:36:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-joystick
+pkgver=1.6.0
+pkgrel=3
+pkgdesc="X.Org Joystick input driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch
+ 50-joystick.conf)
+sha1sums=('3b9aed1b8128e1fbd947fdcdd5e16efccad1c780'
+ '7812a34013a2333641bd7c5d044c46179490cb32'
+ 'e1ff3699a0470c6bb78a53f718df9d8521621e11')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ 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 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-joystick/git-fixes.patch b/extra/xf86-input-joystick/git-fixes.patch
new file mode 100644
index 000000000..b3afa06cc
--- /dev/null
+++ b/extra/xf86-input-joystick/git-fixes.patch
@@ -0,0 +1,399 @@
+From 204dcb86368b011824fc5006f87b9e394d03a394 Mon Sep 17 00:00:00 2001
+From: Terry Lambert <tlambert@chromium.org>
+Date: Sat, 16 Jul 2011 00:23:22 +0000
+Subject: Return proper default for unknown values in pInfo->device_control.
+
+Signed-off-by: Terry Lambert <tlambert@chromium.org>
+Reviewed-by: Stephane Marchesin <marcheu@chromium.org>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/src/jstk.c b/src/jstk.c
+index ec6b79a..6db0e7c 100644
+--- a/src/jstk.c
++++ b/src/jstk.c
+@@ -419,8 +419,7 @@ jstkDeviceControlProc(DeviceIntPtr pJstk,
+
+ default:
+ ErrorF("unsupported mode=%d\n", what);
+- return !Success;
+- break;
++ return BadValue;
+ } /* switch (what) */
+ return Success;
+ }
+diff --git a/src/jstk_key.c b/src/jstk_key.c
+index 3c471ce..d699dcd 100644
+--- a/src/jstk_key.c
++++ b/src/jstk_key.c
+@@ -169,6 +169,8 @@ jstkKeyboardDeviceControlProc(DeviceIntPtr dev,
+ DBG(2, ErrorF("jstkKeyboardDeviceControlProc what=DEVICE_CLOSE\n"));
+ dev->public.on = FALSE;
+ break;
++ default:
++ return BadValue;
+ }
+
+ return Success;
+--
+cgit v0.9.0.2-2-gbebe
+From b3b62328cf3f36c20c54a298f8a921e6eef42c4d Mon Sep 17 00:00:00 2001
+From: Devin J. Pohly <djpohly+xorg@gmail.com>
+Date: Sat, 03 Sep 2011 23:00:07 +0000
+Subject: unify capitalization of joystick properties
+
+the axis keys high/low properties were inconsistently capitalized,
+leading to potential confusion as to why one works but not the other.
+
+Signed-off-by: Devin J. Pohly <djpohly+xorg@gmail.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/include/joystick-properties.h b/include/joystick-properties.h
+index 49ef800..36f4082 100644
+--- a/include/joystick-properties.h
++++ b/include/joystick-properties.h
+@@ -99,7 +99,7 @@ typedef enum _JSTK_MAPPING {
+
+ /** Scancodes for axis in high position */
+ /* 8 bit, 4 per axis */
+-#define JSTK_PROP_AXIS_KEYS_HIGH "Axis keys (high)"
++#define JSTK_PROP_AXIS_KEYS_HIGH "Axis Keys (high)"
+
+ /** Set the mapping of each button to
+ none, x, y, zx, zy, button, key, speed_multiply,
+--
+cgit v0.9.0.2-2-gbebe
+From b607c4ebeea4122694f02ba87f06e4cdb23114f1 Mon Sep 17 00:00:00 2001
+From: Sascha Hlusiak <saschahlusiak@arcor.de>
+Date: Sat, 15 Oct 2011 22:47:52 +0000
+Subject: label buttons and axes
+
+Buttons are labeled "Button %d", starting with 0 and representing the button in X _after_ mapping.
+Mapping can be changed while running so the labels will be constant.
+
+Axes are labeled "Axis %d", starting with 1, representing the _physical_ axis that reports the valuator
+data. The raw valuators can't be dynamically mapped, the first two valuators always are labeled "Rel X"
+and "Rel Y", representing the aggregated post-calculation data from all axes.
+
+Signed-off-by: Sascha Hlusiak <saschahlusiak@arcor.de>
+---
+diff --git a/man/joystick.man b/man/joystick.man
+index da92ceb..b401de5 100644
+--- a/man/joystick.man
++++ b/man/joystick.man
+@@ -140,7 +140,11 @@ Neither
+ .B mode
+ nor
+ .B axis
+-needs to be set to generate extra valuator events.
++needs to be set to generate extra valuator events. The axis will be labelled according to it's physical axis number, beginning with
++.I 1
++, i.e.
++.I \*qAxis 1\*q
++for the first axis (being the 3rd valuator).
+ Default: not set.
+ .TP 7
+ .BI "\*qaxis="[<factor>]<axis> \*q
+@@ -318,6 +322,28 @@ and the second and fourth axis to the arrow keys
+ The keys for the first two axes will be generated in an interval according to the value of the axis. The autorepeat speed of the first axis will be half the speed of that of the second axis.
+ The keys for the third and fourth axis are generated once when the axis moves out of the deadzone and when it moves back into the deadzone. X.Org will autorepeat those keys according to current keyboard settings.
+
++.SH "XI2 Events"
++If you only care about raw events instead of using the joystick as a mouse replacement, don't forget to unmap and add valuators to all axes and map the remaining buttons:
++
++.nf
++.BI " Option \*qMapAxis1\*q \*q" "mode=none valuator" \*q
++.BI " Option \*qMapAxis2\*q \*q" "mode=none valuator" \*q
++.BI " Option \*qMapAxis3\*q \*q" "mode=none valuator" \*q
++.BI " Option \*qMapAxis4\*q \*q" "mode=none valuator" \*q
++\ \ ...
++.BI " Option \*qMapButton1\*q \*q" "button=1" \*q
++.BI " Option \*qMapButton2\*q \*q" "button=2" \*q
++.BI " Option \*qMapButton3\*q \*q" "button=3" \*q
++.BI " Option \*qMapButton4\*q \*q" "button=4" \*q
++.BI " Option \*qMapButton5\*q \*q" "button=5" \*q
++\ \ ...
++.fi
++
++You might also want to set the device "floating" to stop it from reporting core events:
++.nf
++.BI " Option \*qFloating\*q \*q" "true" \*q
++.fi
++
+ .SH "NOTES"
+ Configuration through
+ .I InputClass
+diff --git a/src/jstk.c b/src/jstk.c
+index 6db0e7c..772683f 100644
+--- a/src/jstk.c
++++ b/src/jstk.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 2007-2009 by Sascha Hlusiak. <saschahlusiak@freedesktop.org>
++ * Copyright 2007-2011 by Sascha Hlusiak. <saschahlusiak@freedesktop.org>
+ * Copyright 1995-1999 by Frederic Lepied, France. <Lepied@XFree86.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+@@ -21,7 +21,6 @@
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+-
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
+@@ -300,6 +299,7 @@ jstkDeviceControlProc(DeviceIntPtr pJstk,
+ switch (what) {
+ case DEVICE_INIT: {
+ int m;
++ char str[32];
+ CARD8 buttonmap[BUTTONMAP_SIZE+1];
+ DBG(1, ErrorF("jstkDeviceControlProc what=INIT\n"));
+ /* Probe device and return if error */
+@@ -312,11 +312,14 @@ jstkDeviceControlProc(DeviceIntPtr pJstk,
+ }
+
+ for (m=0; m<=BUTTONMAP_SIZE; m++) {
++ sprintf(str, "Button %d", m);
++
+ buttonmap[m] = m;
+- }
++ btn_labels[m] = MakeAtom(str, strlen(str), TRUE);
++ }
++
++
+
+-
+-
+ if (InitButtonClassDeviceStruct(pJstk, BUTTONMAP_SIZE,
+ btn_labels,
+ buttonmap) == FALSE) {
+@@ -331,7 +334,9 @@ jstkDeviceControlProc(DeviceIntPtr pJstk,
+ if (priv->axis[i].valuator != -1)
+ {
+ DBG(3, ErrorF("Axis %d will be valuator %d\n", i, m));
++ sprintf(str, "Axis %d", i + 1);
+ priv->axis[i].valuator = m++;
++ axes_labels[i] = MakeAtom(str, strlen(str), TRUE);
+ }
+
+ if (InitValuatorClassDeviceStruct(pJstk, m, axes_labels,
+@@ -719,7 +724,6 @@ static XF86ModuleVersionInfo jstkVersionRec =
+ /* a tool */
+ };
+
+-
+ /*
+ ***************************************************************************
+ *
+@@ -732,3 +736,6 @@ _X_EXPORT XF86ModuleData joystickModuleData = {
+ jstkDriverPlug,
+ jstkDriverUnplug
+ };
++
++/* vim: set filetype=c.doxygen ts=4 et: */
++
+--
+cgit v0.9.0.2-2-gbebe
+From e0193debf8f5a72b0a06977d5dea3365ad9cafbe Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 31 Oct 2011 04:27:22 +0000
+Subject: Fix option type for option duplication
+
+xf86OptionListDuplicate() duplicates an XF86Option list, not an InputOption
+list.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+---
+diff --git a/src/jstk_key.c b/src/jstk_key.c
+index d699dcd..e842941 100644
+--- a/src/jstk_key.c
++++ b/src/jstk_key.c
+@@ -253,26 +253,26 @@ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags)
+ int rc;
+ char name[512] = {0};
+ InputAttributes *attrs = NULL;
+- InputOption *options;
+ InputOption *iopts = NULL, *tmp;
+ DeviceIntPtr dev;
++ XF86OptionPtr opts;
+
+ /* duplicate option list, append to name */
+- options = xf86OptionListDuplicate(pInfo->options);
++ opts = xf86OptionListDuplicate(pInfo->options);
+ strcpy(name, pInfo->name);
+ strcat(name, " (keys)");
+- options = xf86ReplaceStrOption(options, "Name", name);
+- options = xf86ReplaceStrOption(options, "_source", "_driver/joystick");
++ opts = xf86ReplaceStrOption(opts, "Name", name);
++ opts = xf86ReplaceStrOption(opts, "_source", "_driver/joystick");
+
+- while(options)
++ while(opts)
+ {
+ tmp = calloc(1, sizeof(InputOption));
+
+- tmp->key = xf86OptionName(options);
+- tmp->value = xf86OptionValue(options);
++ tmp->key = xf86OptionName(opts);
++ tmp->value = xf86OptionValue(opts);
+ tmp->next = iopts;
+ iopts = tmp;
+- options = xf86NextOption(options);
++ opts = xf86NextOption(opts);
+ }
+
+ /* duplicate attribute list */
+--
+cgit v0.9.0.2-2-gbebe
+From 7ccf3a75292d71104c976bf6afb389cccaac1a7d Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 31 Oct 2011 04:33:08 +0000
+Subject: Deal with opaque input option types.
+
+ABI 14 made the InputOption type opaque, move the existing code to ifdefs
+and use the new function calls otherwise.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+---
+diff --git a/src/jstk_key.c b/src/jstk_key.c
+index e842941..a71275a 100644
+--- a/src/jstk_key.c
++++ b/src/jstk_key.c
+@@ -247,13 +247,46 @@ int jstkKeyboardPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
+ return Success;
+ }
+
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 14
++static InputOption*
++input_option_new(InputOption* list, char *key, char *value)
++{
++ InputOption *tmp;
++
++ tmp = calloc(1, sizeof(*tmp));
++ tmp->key = key;
++ tmp->value = value;
++ tmp->next = list;
++
++ return tmp;
++}
++
++static void
++input_option_free_list(InputOption **list)
++{
++ InputOption *iopts = *list;
++
++ while(iopts)
++ {
++ InputOption *tmp = iopts->next;
++ free(iopts->key);
++ free(iopts->value);
++ free(iopts);
++ iopts = tmp;
++ }
++
++ *list = NULL;
++}
++
++#endif
++
+ InputInfoPtr
+ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags)
+ {
+ int rc;
+ char name[512] = {0};
+ InputAttributes *attrs = NULL;
+- InputOption *iopts = NULL, *tmp;
++ InputOption *iopts = NULL;
+ DeviceIntPtr dev;
+ XF86OptionPtr opts;
+
+@@ -266,12 +299,9 @@ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags)
+
+ while(opts)
+ {
+- tmp = calloc(1, sizeof(InputOption));
+-
+- tmp->key = xf86OptionName(opts);
+- tmp->value = xf86OptionValue(opts);
+- tmp->next = iopts;
+- iopts = tmp;
++ iopts = input_option_new(iopts,
++ xf86OptionName(opts),
++ xf86OptionValue(opts));
+ opts = xf86NextOption(opts);
+ }
+
+@@ -280,14 +310,7 @@ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags)
+
+ rc = NewInputDeviceRequest(iopts, attrs, &dev);
+
+- while(iopts)
+- {
+- tmp = iopts->next;
+- free(iopts->key);
+- free(iopts->value);
+- free(iopts);
+- iopts = tmp;
+- }
++ input_option_free_list(&iopts);
+
+ FreeInputAttributes(attrs);
+
+--
+cgit v0.9.0.2-2-gbebe
+From 411c1838456c055d3f911c54ed58bb11a6bf0da3 Mon Sep 17 00:00:00 2001
+From: Sascha Hlusiak <saschahlusiak@arcor.de>
+Date: Sun, 13 Nov 2011 17:04:25 +0000
+Subject: man: valuators are not added automatically
+
+---
+diff --git a/man/joystick.man b/man/joystick.man
+index b401de5..9f38ceb 100644
+--- a/man/joystick.man
++++ b/man/joystick.man
+@@ -129,9 +129,6 @@ can be one of:
+
+ .B none, relative, accelerated, absolute
+
+-Every axis which's mode is not
+-.B none
+-will be reported as an additional valuator.
+ .TP 7
+ .B \*qvaluator\*q
+ Send extra valuator events for this axis. The valuators will be numbered ascending, starting with 2 (valuator 0 and 1 are reserved for pointer movement). The range of the valuators is always
+--
+cgit v0.9.0.2-2-gbebe
+From b217fabdef1714ed4898e08de4c2a6b9cc8d4f0f Mon Sep 17 00:00:00 2001
+From: Sascha Hlusiak <saschahlusiak@arcor.de>
+Date: Sun, 13 Nov 2011 19:36:07 +0000
+Subject: Copy pInfo->driver to option list to fix hotplugging of keyboard device
+
+udev does copy the Driver line to the list of options, but when manually
+specifying the driver in xorg.conf, the option "Driver" is unset. Because we
+do hotplug a sub-device from within the core device, we need the "Driver"
+option to be present in the list.
+
+This should fix archlinux bug #23577:
+ https://bugs.archlinux.org/task/23577
+
+Thanks to Malek for coming up with a fix.
+
+Signed-off-by: Sascha Hlusiak <contact@saschahlusiak.de>
+---
+diff --git a/src/jstk_key.c b/src/jstk_key.c
+index a71275a..241b15d 100644
+--- a/src/jstk_key.c
++++ b/src/jstk_key.c
+@@ -296,6 +296,7 @@ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags)
+ strcat(name, " (keys)");
+ opts = xf86ReplaceStrOption(opts, "Name", name);
+ opts = xf86ReplaceStrOption(opts, "_source", "_driver/joystick");
++ opts = xf86AddNewOption(opts, "Driver", pInfo->driver);
+
+ while(opts)
+ {
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/xf86-input-keyboard/PKGBUILD b/extra/xf86-input-keyboard/PKGBUILD
new file mode 100644
index 000000000..009bc808f
--- /dev/null
+++ b/extra/xf86-input-keyboard/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140360 2011-10-11 21:29:51Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-keyboard
+pkgver=1.6.0
+pkgrel=3
+pkgdesc="X.Org keyboard input driver"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+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..ffff8fec6
--- /dev/null
+++ b/extra/xf86-input-mouse/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140362 2011-10-11 21:29:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-mouse
+pkgver=1.7.1
+pkgrel=2
+pkgdesc="X.org mouse input driver"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('11a6402e82d65bda5fb559c5e9bc72f3fd7af2ed')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..a0b628d28
--- /dev/null
+++ b/extra/xf86-input-synaptics/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 140364 2011-10-11 21:29:57Z 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.5.0
+pkgrel=1
+pkgdesc="Synaptics driver for notebook touchpads"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxtst')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libxi' 'libx11')
+conflicts=('xorg-server<1.10.99.902')
+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=('7373c1e3f02bf7e18f71b65762a982d907b4a053'
+ '68e1f4ef5e1038231d210eb422fa4d18c5922f0f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..411a25c62
--- /dev/null
+++ b/extra/xf86-input-void/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140368 2011-10-11 21:30:01Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-void
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="X.org void input driver"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('49b462d3acb16337eaf78202d4074f19d5e20b29')
+
+
+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-wacom/70-wacom.rules b/extra/xf86-input-wacom/70-wacom.rules
new file mode 100644
index 000000000..f6aa20835
--- /dev/null
+++ b/extra/xf86-input-wacom/70-wacom.rules
@@ -0,0 +1,12 @@
+ACTION!="add|change", GOTO="wacom_end"
+
+# Match all serial wacom tablets with a serial ID starting with WACf
+# Notes: We assign NAME though we shouldn't, but currently the server requires it
+# We assign the lot to subsystem pnp too because server reads NAME from
+# the parent device. Once all that's fixed, as simple SUBSYSTEM="tty"
+# will do and the ENV{NAME} can be removed.
+SUBSYSTEM=="tty|pnp", SUBSYSTEMS=="pnp", ATTRS{id}=="WACf*", ENV{ID_MODEL}="Serial Wacom Tablet $attr{id}", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", ENV{NAME}="Serial Wacom Tablet $attr{id}"
+SUBSYSTEM=="tty|pnp", SUBSYSTEMS=="pnp", ATTRS{id}=="FUJ*", ENV{ID_MODEL}="Serial Wacom Tablet $attr{id}", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", ENV{NAME}="Serial Wacom Tablet $attr{id}"
+
+LABEL="wacom_end"
+
diff --git a/extra/xf86-input-wacom/PKGBUILD b/extra/xf86-input-wacom/PKGBUILD
new file mode 100644
index 000000000..24604d845
--- /dev/null
+++ b/extra/xf86-input-wacom/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 142834 2011-11-16 13:12:15Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: M Rawash <mrawash@gmail.com>
+
+pkgname=xf86-input-wacom
+pkgver=0.12.0
+pkgrel=1
+pkgdesc="X.Org Wacom tablet driver"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://linuxwacom.sourceforge.net/"
+license=('GPL')
+backup=('etc/X11/xorg.conf.d/50-wacom.conf')
+depends=('libxi' 'libxrandr' 'libxinerama')
+makedepends=('xorg-server-devel>=1.11.0' 'libxext')
+conflicts=('xorg-server<1.11.0')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ 70-wacom.rules)
+md5sums=('e1c41d143d5040982ae050c7ef9039e3'
+ '10db4f8272286690255c1bcc18bfdd92')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-xorg-conf-dir=/etc/X11/xorg.conf.d
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ 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..dee8429de
--- /dev/null
+++ b/extra/xf86-video-apm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140350 2011-10-11 21:29:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-apm
+pkgver=1.2.3
+pkgrel=4
+pkgdesc="X.org Alliance ProMotion video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.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..dc5ab26e8
--- /dev/null
+++ b/extra/xf86-video-ark/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140348 2011-10-11 21:29:38Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ark
+pkgver=0.7.3
+pkgrel=4
+pkgdesc="X.org ark video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch)
+sha1sums=('56901ec6097a83433689f208268281f9c98c238b'
+ 'f62cdc7995e9b64c9105382ccfa842732fa81309')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.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/xf86-video-ark/git-fixes.patch b/extra/xf86-video-ark/git-fixes.patch
new file mode 100644
index 000000000..2de0f64be
--- /dev/null
+++ b/extra/xf86-video-ark/git-fixes.patch
@@ -0,0 +1,118 @@
+From 9d3769bed020e9796e51411c63de337da5073bb4 Mon Sep 17 00:00:00 2001
+From: Ondrej Zary <linux@rainbow-software.org>
+Date: Sat, 04 Dec 2010 00:23:51 +0000
+Subject: Don't assume that FB address registers are initialized properly
+
+https://bugs.freedesktop.org/show_bug.cgi?id=28249
+
+ark driver does not work with Hercules Stingray 64 card (ark2000pv).
+X fails to start with:
+
+[...]
+(II) ark(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is
+0x0000
+(II) ark(0): Creating default Display subsection in Screen section
+ "Default Screen Section" for depth/fbbpp 24/32
+(==) ark(0): Depth 24, (--) framebuffer bpp 32
+(==) ark(0): RGB weight 888
+(==) ark(0): Default visual is TrueColor
+(**) ark(0): Chipset: "ark2000pv"
+(--) ark(0): Framebuffer @ 0xe5e50000
+(==) ark(0): Using gamma correction (1.0, 1.0, 1.0)
+(--) ark(0): Detected 2048 bytes video ram
+[...]
+Fatal server error:
+AddScreen/ScreenInit failed for driver 0
+
+Comparing with lspci, the framebuffer address is wrong:
+00:0f.0 VGA compatible controller: ARK Logic Inc 2000PV [Stingray] (prog-if 00 [VGA controller])
+ Flags: medium devsel
+ Memory at e5000000 (32-bit, prefetchable) [size=4M]
+ [virtual] Expansion ROM at 1c000000 [disabled] [size=64K]
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/src/ark.h b/src/ark.h
+index de301dc..077f93b 100644
+--- a/src/ark.h
++++ b/src/ark.h
+@@ -34,7 +34,6 @@ typedef struct _ARKRec {
+ #endif
+ EntityInfoPtr pEnt;
+ CARD32 IOAddress;
+- CARD32 FBAddress;
+ unsigned char * FBBase;
+ unsigned char * MMIOBase;
+ unsigned long videoRam;
+diff --git a/src/ark_driver.c b/src/ark_driver.c
+index 5de3b9a..fec3e1a 100644
+--- a/src/ark_driver.c
++++ b/src/ark_driver.c
+@@ -363,14 +363,14 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags)
+ outb(hwp->PIOOffset + hwp->IOBase + 5, tmp & 0x7f);
+ modinx(hwp->PIOOffset + 0x3c4, 0x1d, 0x01, 0x01);
+
+- /* use membase's later on ??? */
+- pARK->FBAddress = (rdinx(hwp->PIOOffset + 0x3c4, 0x13) << 16) +
+- (rdinx(hwp->PIOOffset + 0x3c4, 0x14) << 24);
+-
+- pScrn->memPhysBase = pARK->FBAddress;
++#ifndef XSERVER_LIBPCIACCESS
++ pScrn->memPhysBase = pARK->PciInfo->memBase[0];
++#else
++ pScrn->memPhysBase = pARK->PciInfo->regions[0].base_addr;
++#endif
+
+ xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Framebuffer @ 0x%lx\n",
+- (unsigned long)pARK->FBAddress);
++ (unsigned long)pScrn->memPhysBase);
+
+ if (!xf86SetGamma(pScrn, gzeros))
+ return FALSE;
+@@ -748,8 +748,13 @@ static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ new->sr10 = rdinx(isaIOBase + 0x3c4, 0x10) & ~0x1f;
+ new->sr10 |= 0x1f;
+
+- new->sr13 = pARK->FBAddress >> 16;
+- new->sr14 = pARK->FBAddress >> 24;
++#ifndef XSERVER_LIBPCIACCESS
++ new->sr13 = pARK->PciInfo->memBase[0] >> 16;
++ new->sr14 = pARK->PciInfo->memBase[0] >> 24;
++#else
++ new->sr13 = pARK->PciInfo->regions[0].base_addr >> 16;
++ new->sr14 = pARK->PciInfo->regions[0].base_addr >> 24;
++#endif
+
+ new->sr12 = rdinx(isaIOBase + 0x3c4, 0x12) & ~0x03;
+ switch (pScrn->videoRam) {
+@@ -1022,7 +1027,7 @@ static Bool ARKMapMem(ScrnInfoPtr pScrn)
+ pARK->PciTag, 0xb8000, 0x8000);
+
+ pARK->FBBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
+- pARK->PciTag, pARK->FBAddress,
++ pARK->PciTag, pARK->PciInfo->memBase[0],
+ pScrn->videoRam * 1024);
+ #else
+
+@@ -1032,14 +1037,17 @@ static Bool ARKMapMem(ScrnInfoPtr pScrn)
+ {
+ void** result = (void**)&pARK->FBBase;
+ int err = pci_device_map_range(pARK->PciInfo,
+- pARK->FBAddress,
++ pARK->PciInfo->regions[0].base_addr,
+ pScrn->videoRam * 1024,
+ PCI_DEV_MAP_FLAG_WRITABLE |
+ PCI_DEV_MAP_FLAG_WRITE_COMBINE,
+ result);
+
+- if (err)
++ if (err) {
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ "Cound not map framebuffer: %d\n", err);
+ return FALSE;
++ }
+ }
+ #endif
+
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/xf86-video-ast/PKGBUILD b/extra/xf86-video-ast/PKGBUILD
new file mode 100644
index 000000000..f3effc947
--- /dev/null
+++ b/extra/xf86-video-ast/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140346 2011-10-11 21:29:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ast
+pkgver=0.93.9
+pkgrel=1
+pkgdesc="X.org ASPEED AST Graphics video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('424cc93d0300e49a882199c0546425f223b3b4bd')
+
+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..d0783dedf
--- /dev/null
+++ b/extra/xf86-video-ati/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 141740 2011-11-02 16:51:06Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-ati
+pkgver=6.14.3
+pkgrel=1
+pkgdesc="X.org ati video driver"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(libpciaccess libdrm udev pixman ati-dri)
+makedepends=('xorg-server-devel>=1.11.0' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.11.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('db635e2e2858d5db90362f546ac0adad85474bad')
+
+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..b0a05fdfe
--- /dev/null
+++ b/extra/xf86-video-chips/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140342 2011-10-11 21:29:31Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-chips
+pkgver=1.2.4
+pkgrel=3
+pkgdesc="X.org Chips and Technologies video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(glibc)
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ gut-overlay-8-16-support-from-driver.patch)
+sha1sums=('71f474335d05f93b2451a7a0750c4409669641a4'
+ 'f6a635196118dacb73fad980571b390849963b3d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/gut-overlay-8-16-support-from-driver.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/xf86-video-chips/gut-overlay-8-16-support-from-driver.patch b/extra/xf86-video-chips/gut-overlay-8-16-support-from-driver.patch
new file mode 100644
index 000000000..b9c832238
--- /dev/null
+++ b/extra/xf86-video-chips/gut-overlay-8-16-support-from-driver.patch
@@ -0,0 +1,580 @@
+From e4bd864898fd276a62dac05cdfff394e98434f02 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Tue, 29 Mar 2011 03:53:31 +0000
+Subject: chips: gut the overlay 8/16 support from driver.
+
+This driver is for chips that were bought by Intel in 1997,
+this feature means maintaining a lot of code in the X server
+for little gain.
+
+Drop it like its hot.
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/man/chips.man b/man/chips.man
+index 740af38..0c022ee 100644
+--- a/man/chips.man
++++ b/man/chips.man
+@@ -165,9 +165,6 @@ Force the use of memory mapped IO where it can be used. Default: off
+ Force driver to leave centering and stretching registers alone. This
+ can fix some laptop suspend/resume problems. Default: off
+ .TP
+-.BI "Option \*qOverlay\*q"
+-Enable 8+24 overlay mode. Only appropriate for depth 24. Default: off.
+-.TP
+ .BI "Option \*qColorKey\*q \*q" integer \*q
+ Set the colormap index used for the transparency key for the depth 8 plane
+ when operating in 8+16 overlay mode. The value must be in the range
+diff --git a/src/ct_accel.c b/src/ct_accel.c
+index 3920b0a..4b5776a 100644
+--- a/src/ct_accel.c
++++ b/src/ct_accel.c
+@@ -428,19 +428,7 @@ chips_imagewrite:
+ infoPtr->ImageWriteFlags |= NO_PLANEMASK;
+ #endif
+
+-
+-#ifdef CHIPS_HIQV
+- if (XAAInit(pScreen, infoPtr)) {
+- if (cPtr->Flags & ChipsOverlay8plus16)
+- return(XAAInitDualFramebufferOverlay(pScreen,
+- CTNAME(DepthChange)));
+- else
+- return TRUE;
+- } else
+- return FALSE;
+-#else
+ return(XAAInit(pScreen, infoPtr));
+-#endif
+ }
+
+ #ifdef CHIPS_HIQV
+@@ -1243,11 +1231,6 @@ CTNAME(SubsequentScreenToScreenColorExpandFill)(ScrnInfoPtr pScrn,
+ #endif
+ w *= cAcl->BytesPerPixel;
+ ctBLTWAIT;
+-#ifdef CHIPS_HIQV
+- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16) &&
+- (pScrn->depth == 8))
+- ctSETPITCH(cAcl->PitchInBytes << 1, cAcl->PitchInBytes);
+-#endif
+ ctSETSRCADDR(srcaddr);
+ ctSETDSTADDR(destaddr);
+ #ifdef CHIPS_HIQV
+@@ -1271,10 +1254,6 @@ CTNAME(SetupForColor8x8PatternFill)(ScrnInfoPtr pScrn, int patx, int paty,
+ patternaddr = (paty * pScrn->displayWidth +
+ (patx & ~0x3F)) * cAcl->BytesPerPixel;
+ cAcl->patternyrot = (patx & 0x3F) >> 3;
+-#ifdef CHIPS_HIQV
+- if (cPtr->Flags & ChipsOverlay8plus16)
+- patternaddr += cPtr->FbOffset16;
+-#endif
+
+ ctBLTWAIT;
+ ctSETPATSRCADDR(patternaddr);
+@@ -1338,10 +1317,7 @@ CTNAME(SetupForMono8x8PatternFill)(ScrnInfoPtr pScrn, int patx, int paty,
+
+ #ifdef CHIPS_HIQV
+ patternaddr = paty * pScrn->displayWidth + patx;
+- if (cPtr->Flags & ChipsOverlay8plus16)
+- patternaddr = patternaddr * 2 + cPtr->FbOffset16;
+- else
+- patternaddr *= cAcl->BytesPerPixel;
++ patternaddr *= cAcl->BytesPerPixel;
+ #else
+ patternaddr = (paty * pScrn->displayWidth + patx) * cAcl->BytesPerPixel;
+ #endif
+@@ -1593,10 +1569,7 @@ CTNAME(WritePixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
+ dwords = (((skipleft + bytesPerLine + 0x7) & ~0x7)) >> 2;
+ destaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
+ destpitch = pScrn->displayWidth * (bpp >> 3);
+- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
+- destaddr += cPtr->FbOffset16;
+- else
+- destaddr += cAcl->FbOffset;
++ destaddr += cAcl->FbOffset;
+
+ ctBLTWAIT;
+
+@@ -1681,10 +1654,7 @@ CTNAME(WritePixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
+ y++;
+
+ destaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
+- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
+- destaddr += cPtr->FbOffset16;
+- else
+- destaddr += cAcl->FbOffset;
++ destaddr += cAcl->FbOffset;
+
+ ctBLTWAIT;
+ ctSETDSTADDR(destaddr);
+@@ -1717,10 +1687,7 @@ CTNAME(ReadPixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
+ dwords = (((bytesPerLine + 0x7) & ~0x7)) >> 2;
+ srcaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
+ srcpitch = pScrn->displayWidth * (bpp >> 3);
+- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
+- srcaddr += cPtr->FbOffset16;
+- else
+- srcaddr += cAcl->FbOffset;
++ srcaddr += cAcl->FbOffset;
+
+ ctBLTWAIT;
+ ctSETROP( ctDSTSYSTEM | ctLEFT2RIGHT | ctTOP2BOTTOM |
+@@ -1755,10 +1722,7 @@ CTNAME(ReadPixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
+ dst += dstwidth;
+ y++;
+ srcaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
+- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
+- srcaddr += cPtr->FbOffset16;
+- else
+- srcaddr += cAcl->FbOffset;
++ srcaddr += cAcl->FbOffset;
+ ctBLTWAIT;
+ ctSETSRCADDR(srcaddr);
+ ctSETHEIGHTWIDTHGO(h, bytesPerLine);
+diff --git a/src/ct_driver.c b/src/ct_driver.c
+index 6624b79..08df050 100644
+--- a/src/ct_driver.c
++++ b/src/ct_driver.c
+@@ -1639,55 +1639,15 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
+ }
+ }
+
+- if ((s = xf86GetOptValString(cPtr->Options, OPTION_OVERLAY))) {
+- if (!*s || !xf86NameCmp(s, "8,16") || !xf86NameCmp(s, "16,8")) {
+- if (pScrn->bitsPerPixel == 16) {
+- if (cPtr->Flags & ChipsLinearSupport) {
+- cPtr->Flags |= ChipsOverlay8plus16;
+- if(!xf86GetOptValInteger(
+- cPtr->Options, OPTION_COLOR_KEY, &(pScrn->colorKey)))
+- pScrn->colorKey = TRANSPARENCY_KEY;
+- pScrn->overlayFlags = OVERLAY_8_16_DUALFB;
+- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+- "PseudoColor overlay enabled.\n");
+- if (!xf86IsOptionSet(cPtr->Options, OPTION_LCD_STRETCH))
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- " - Forcing option \"Stretch\" \"ON\".\n");
+- if (!xf86IsOptionSet(cPtr->Options, OPTION_LCD_CENTER))
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- " - Forcing option \"LcdCenter\" \"OFF\".\n");
+- if (cPtr->Flags & ChipsShadowFB) {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- " - Disabling \"Shadow Framebuffer\".\n");
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- " Not support with option \"8Plus16\".\n");
+- cPtr->Flags &= ~ChipsShadowFB;
+- cPtr->Rotate = 0;
+- }
+- } else {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Option \"Overlay\" ignored. Not supported without linear addressing\n");
+- }
+- } else {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- "Option \"Overlay\" is not supported in this configuration\n");
+- }
+- } else {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- "\"%s\" is not a valid value for Option \"Overlay\"\n", s);
+- }
+- }
+-
+- if (!(cPtr->Flags & ChipsOverlay8plus16)) {
+- if(xf86GetOptValInteger(cPtr->Options, OPTION_VIDEO_KEY,
+- &(cPtr->videoKey))) {
+- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
++ if(xf86GetOptValInteger(cPtr->Options, OPTION_VIDEO_KEY,
++ &(cPtr->videoKey))) {
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
+ cPtr->videoKey);
+- } else {
+- cPtr->videoKey = (1 << pScrn->offset.red) |
++ } else {
++ cPtr->videoKey = (1 << pScrn->offset.red) |
+ (1 << pScrn->offset.green) |
+ (((pScrn->mask.blue >> pScrn->offset.blue) - 1)
+ << pScrn->offset.blue);
+- }
+ }
+
+ if (cPtr->Flags & ChipsShadowFB) {
+@@ -2335,28 +2295,16 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
+ /* and 32bits on the others. Thus multiply by a suitable factor */
+ if (cPtr->Flags & Chips64BitMemory) {
+ if (cPtr->FrameBufferSize && (cPtr->PanelType & ChipsLCD))
+- if (cPtr->Flags & ChipsOverlay8plus16 )
+- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 8 * 0.7 / 4);
+- else
+ cPtr->MaxClock = min(cPtr->MaxClock,
+ MemClk->Clk * 8 * 0.7 / (bytesPerPixel + 1));
+ else
+- if (cPtr->Flags & ChipsOverlay8plus16)
+- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 8 * 0.7 / 3);
+- else
+ cPtr->MaxClock = min(cPtr->MaxClock,
+ MemClk->Clk * 8 * 0.7 / bytesPerPixel);
+ } else {
+ if (cPtr->FrameBufferSize && (cPtr->PanelType & ChipsLCD))
+- if (cPtr->Flags & ChipsOverlay8plus16 )
+- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 4 * 0.7 / 4);
+- else
+ cPtr->MaxClock = min(cPtr->MaxClock,
+ MemClk->Clk * 4 * 0.7 / (bytesPerPixel + 1));
+ else
+- if (cPtr->Flags & ChipsOverlay8plus16)
+- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 4 * 0.7 / 3);
+- else
+ cPtr->MaxClock = min(cPtr->MaxClock,
+ MemClk->Clk * 4 * 0.7 / bytesPerPixel);
+ }
+@@ -3736,8 +3684,7 @@ CHIPSEnterVT(int scrnIndex, int flags)
+ /* Should we re-save the text mode on each VT enter? */
+ if(!chipsModeInit(pScrn, pScrn->currentMode))
+ return FALSE;
+- if ((!(cPtr->Flags & ChipsOverlay8plus16))
+- && (cPtr->Flags & ChipsVideoSupport)
++ if ((cPtr->Flags & ChipsVideoSupport)
+ && (cPtr->Flags & ChipsLinearSupport))
+ CHIPSResetVideo(pScrn);
+
+@@ -3788,8 +3735,7 @@ chipsLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
+ int i, index, shift ;
+ CHIPSEntPtr cPtrEnt;
+
+- shift = ((pScrn->depth == 15) &&
+- (!(cPtr->Flags & ChipsOverlay8plus16))) ? 3 : 0;
++ shift = (pScrn->depth == 15) ? 3 : 0;
+
+ if (cPtr->UseDualChannel) {
+ cPtrEnt = xf86GetEntityPrivate(pScrn->entityList[0],
+@@ -3895,18 +3841,6 @@ chipsLoadPalette16(ScrnInfoPtr pScrn, int numColors, int *indices,
+ hwp->disablePalette(hwp);
+ }
+
+-static Bool
+-cfb8_16ScreenInit(ScreenPtr pScreen, pointer pbits16, pointer pbits8,
+- int xsize, int ysize, int dpix, int dpiy,
+- int width16, int width8)
+-{
+- return
+- (fbOverlaySetupScreen(pScreen, pbits16, pbits8, xsize, ysize,
+- dpix, dpiy, width16, width8, 16, 8) &&
+- fbOverlayFinishScreenInit(pScreen, pbits16, pbits8, xsize, ysize,
+- dpix, dpiy, width16, width8, 16, 8, 16, 8));
+-}
+-
+ /* Mandatory */
+ static Bool
+ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+@@ -3947,22 +3881,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ if (!chipsMapMem(pScrn))
+ return FALSE;
+
+- /* Setup a pointer to the overlay if needed */
+- if (cPtr->Flags & ChipsOverlay8plus16) {
+- cPtr->FbOffset16 = pScrn->displayWidth * pScrn->virtualY;
+- cPtr->FbSize16 = (pScrn->displayWidth << 1) * pScrn->virtualY;
+- if (cPtr->FbSize16 > (cPtr->FbMapSize - cPtr->FrameBufferSize)) {
+- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+- "Too little memory for overlay. Disabling.\n");
+- cPtr->Flags &= ~ChipsOverlay8plus16;
+- }
+- if ((pScrn->displayWidth > 1024) || (pScrn->virtualY > 1024)) {
+- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+- "Max overlay Width/Height 1024 pixels. Disabling.\n");
+- cPtr->Flags &= ~ChipsOverlay8plus16;
+- }
+- }
+-
+ /* Setup the MMIO register access functions if need */
+ if (cPtr->UseFullMMIO && cPtr->MMIOBaseVGA) {
+ CHIPSSetMmioExtFuncs(cPtr);
+@@ -4035,18 +3953,10 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ miClearVisualTypes();
+
+ /* Setup the visuals we support. */
+- if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16)){
+- if (!miSetVisualTypes(8, PseudoColorMask | GrayScaleMask,
+- pScrn->rgbBits, PseudoColor))
+- return FALSE;
+- if (!miSetVisualTypes(16, TrueColorMask, pScrn->rgbBits, TrueColor))
+- return FALSE;
+- } else {
+- if (!miSetVisualTypes(pScrn->depth,
++ if (!miSetVisualTypes(pScrn->depth,
+ miGetDefaultVisualMask(pScrn->depth),
+ pScrn->rgbBits, pScrn->defaultVisual))
+- return FALSE;
+- }
++ return FALSE;
+ miSetPixmapDepths ();
+
+ /*
+@@ -4090,13 +4000,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ break;
+ #endif
+ case 16:
+- if (cPtr->Flags & ChipsOverlay8plus16) {
+- ret = cfb8_16ScreenInit(pScreen, (unsigned char *)FBStart +
+- cPtr->FbOffset16, FBStart, width,
+- height, pScrn->xDpi, pScrn->yDpi,
+- displayWidth, displayWidth);
+- break;
+- }
+ default:
+ ret = fbScreenInit(pScreen, FBStart,
+ width,height,
+@@ -4244,9 +4147,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ if (pScrn->bitsPerPixel < 8)
+ freespace = allocatebase - pScrn->displayWidth *
+ pScrn->virtualY / 2;
+- else if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16))
+- freespace = allocatebase - pScrn->displayWidth *
+- pScrn->virtualY - cPtr->FbSize16;
+ else
+ freespace = allocatebase - pScrn->displayWidth *
+ pScrn->virtualY * (pScrn->bitsPerPixel >> 3);
+@@ -4369,9 +4269,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ AvailFBArea.y2 = cAcl->CacheEnd /
+ (pScrn->displayWidth * (pScrn->bitsPerPixel >> 3));
+
+- if (!(cPtr->Flags & ChipsOverlay8plus16)) {
+- xf86InitFBManager(pScreen, &AvailFBArea);
+- }
++ xf86InitFBManager(pScreen, &AvailFBArea);
+ }
+ if (cPtr->Flags & ChipsAccelSupport) {
+ if (IS_HiQV(cPtr)) {
+@@ -4425,16 +4323,10 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ if (!miCreateDefColormap(pScreen))
+ return FALSE;
+
+- if ((cPtr->Flags & ChipsOverlay8plus16) && (pScrn->bitsPerPixel == 16)) {
+- if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits, chipsLoadPalette,
+- NULL, CMAP_RELOAD_ON_MODE_SWITCH))
+- return FALSE;
+- } else {
+- if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
++ if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
+ (pScrn->depth == 16 ? chipsLoadPalette16 : chipsLoadPalette),
+ NULL, CMAP_RELOAD_ON_MODE_SWITCH | CMAP_PALETTED_TRUECOLOR))
+- return FALSE;
+- }
++ return FALSE;
+
+ #ifndef XSERVER_LIBPCIACCESS
+ racflag = RAC_COLORMAP;
+@@ -4448,8 +4340,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ xf86SetSilkenMouse(pScreen);
+ #endif
+
+- if ((!(cPtr->Flags & ChipsOverlay8plus16))
+- && (cPtr->Flags & ChipsVideoSupport)
++ if ((cPtr->Flags & ChipsVideoSupport)
+ && (cPtr->Flags & ChipsLinearSupport)) {
+ CHIPSInitVideo(pScreen);
+ }
+@@ -4522,10 +4413,7 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags)
+ Base >>= 3;
+ break;
+ case 16:
+- if (!(cPtr->Flags & ChipsOverlay8plus16))
+- Base >>= 1;
+- else
+- Base >>= 2;
++ Base >>= 1;
+ break;
+ case 24:
+ if (!IS_HiQV(cPtr))
+@@ -4581,14 +4469,6 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags)
+ cPtr->writeMSS(cPtr, hwp, MSS);
+ }
+
+- if (cPtr->Flags & ChipsOverlay8plus16) {
+- Base = (Base << 3) & ~(unsigned long)0xF;
+-
+- cPtr->writeMR(cPtr, 0x22, (cPtr->FbOffset16 + Base) & 0xF8);
+- cPtr->writeMR(cPtr, 0x23, ((cPtr->FbOffset16 + Base) >> 8) & 0xFF);
+- cPtr->writeMR(cPtr, 0x24, ((cPtr->FbOffset16 + Base) >> 16) & 0xFF);
+- }
+-
+ }
+
+ /* Mandatory */
+@@ -4652,13 +4532,6 @@ CHIPSValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ CHIPSPtr cPtr = CHIPSPTR(pScrn);
+
+- if (flags & MODECHECK_FINAL) {
+- /* Don't subtract FrambufferSize here as it should be subtracted already */
+- if ((cPtr->Flags & ChipsOverlay8plus16)
+- && ((pScrn->videoRam<<10) - pScrn->displayWidth * 3 * pScrn->virtualY
+- < 0))
+- return MODE_MEM;
+- }
+ /* The tests here need to be expanded */
+ if ((mode->Flags & V_INTERLACE) && (cPtr->PanelType & ChipsLCD))
+ return MODE_NO_INTERLACE;
+@@ -5544,12 +5417,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ } else {
+ ChipsStd->Attribute[0x10] = 0x01; /* mode */
+ }
+- if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16)) {
+- /* Make sure that the overlay isn't visible in the overscan region */
+- if (ChipsStd->Attribute[0x11] == pScrn->colorKey)
+- ChipsStd->Attribute[0x11] = pScrn->colorKey - 1;
+- } else
+- ChipsStd->Attribute[0x11] = 0x00; /* overscan (border) color */
++ ChipsStd->Attribute[0x11] = 0x00; /* overscan (border) color */
+ ChipsStd->Attribute[0x12] = 0x0F; /* enable all color planes */
+ ChipsStd->Attribute[0x13] = 0x00; /* horiz pixel panning 0 */
+
+@@ -5558,8 +5426,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ /* set virtual screen width */
+ tmp = pScrn->displayWidth >> 3;
+ if (pScrn->bitsPerPixel == 16) {
+- if (!(cPtr->Flags & ChipsOverlay8plus16))
+- tmp <<= 1; /* double the width of the buffer */
++ tmp <<= 1; /* double the width of the buffer */
+ } else if (pScrn->bitsPerPixel == 24) {
+ tmp += tmp << 1;
+ } else if (pScrn->bitsPerPixel == 32) {
+@@ -5688,8 +5555,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+
+ /* centering/stretching */
+ if (!xf86ReturnOptValBool(cPtr->Options, OPTION_SUSPEND_HACK, FALSE)) {
+- if (!xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_STRETCH, FALSE) ||
+- (cPtr->Flags & ChipsOverlay8plus16)) {
++ if (!xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_STRETCH, FALSE)) {
+ ChipsNew->FR[0x40] &= 0xDF; /* Disable Horizontal stretching */
+ ChipsNew->FR[0x48] &= 0xFB; /* Disable vertical stretching */
+ ChipsNew->XR[0xA0] = 0x10; /* Disable cursor stretching */
+@@ -5709,8 +5575,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ }
+ }
+
+- if ((xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_CENTER, TRUE))
+- || (cPtr->Flags & ChipsOverlay8plus16)) {
++ if (xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_CENTER, TRUE)) {
+ ChipsNew->FR[0x40] |= 0x3; /* Enable Horizontal centering */
+ ChipsNew->FR[0x48] |= 0x3; /* Enable Vertical centering */
+ } else {
+@@ -5723,8 +5588,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ ChipsNew->XR[0x82] |=0x02;
+
+ /* software mode flag */
+- ChipsNew->XR[0xE2] = chipsVideoMode(((cPtr->Flags & ChipsOverlay8plus16) ?
+- 8 : pScrn->depth), (cPtr->PanelType & ChipsLCD) ?
++ ChipsNew->XR[0xE2] = chipsVideoMode((pScrn->depth), (cPtr->PanelType & ChipsLCD) ?
+ min(mode->CrtcHDisplay, cPtr->PanelSize.HDisplay) :
+ mode->CrtcHDisplay, mode->CrtcVDisplay);
+ #ifdef DEBUG
+@@ -5762,7 +5626,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ }
+ }
+ /* bpp depend */
+- if ((pScrn->bitsPerPixel == 16) && (!(cPtr->Flags & ChipsOverlay8plus16))) {
++ if (pScrn->bitsPerPixel == 16) {
+ ChipsNew->XR[0x81] = (ChipsNew->XR[0x81] & 0xF0) | 0x4;
+ if (cPtr->Flags & ChipsGammaSupport)
+ ChipsNew->XR[0x82] |= 0x0C;
+@@ -5915,60 +5779,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ /* Turn off multimedia by default as it degrades performance */
+ ChipsNew->XR[0xD0] &= 0x0f;
+
+- /* Setup the video/overlay */
+- if (cPtr->Flags & ChipsOverlay8plus16) {
+- ChipsNew->XR[0xD0] |= 0x10; /* Force the Multimedia engine on */
+-#ifdef SAR04
+- ChipsNew->XR[0x4F] = 0x2A; /* SAR04 >352 pixel overlay width */
+-#endif
+- ChipsNew->MR[0x1E] &= 0xE0; /* Set Zoom and Direction */
+- if ((!(cPtr->PanelType & ChipsLCD)) && (mode->Flags & V_INTERLACE))
+- ChipsNew->MR[0x1E] |= 0x10; /* Interlace */
+- ChipsNew->MR[0x1F] &= 0x14; /* Mask reserved bits */
+- ChipsNew->MR[0x1F] |= 0x08; /* RGB 16bpp */
+- if (pScrn->weight.green == 5)
+- ChipsNew->MR[0x1F] |= 0x01; /* RGB 15bpp */
+-
+- ChipsNew->MR[0x20] &= 0x03; /* Mask reserved bits */
+- ChipsNew->MR[0x20] |= 0x80; /* Auto Centre, Use mem ptr1 */
+- ChipsNew->MR[0x22] = cPtr->FbOffset16 & 0xF8; /* Setup Pointer 1 */
+- ChipsNew->MR[0x23] = (cPtr->FbOffset16 >> 8) & 0xFF;
+- ChipsNew->MR[0x24] = (cPtr->FbOffset16 >> 16) & 0xFF;
+- ChipsNew->MR[0x25] = cPtr->FbOffset16 & 0xF8; /* Setup Pointer 2 */
+- ChipsNew->MR[0x26] = (cPtr->FbOffset16 >> 8) & 0xFF;
+- ChipsNew->MR[0x27] = (cPtr->FbOffset16 >> 16) & 0xFF;
+- ChipsNew->MR[0x28] = (pScrn->displayWidth >> 2) - 1; /* Width */
+- ChipsNew->MR[0x34] = (pScrn->displayWidth >> 2) - 1;
+-
+- /* Left Edge of Overlay */
+- ChipsNew->MR[0x2A] = cPtr->OverlaySkewX;
+- ChipsNew->MR[0x2B] &= 0xF8; /* Mask reserved bits */
+- ChipsNew->MR[0x2B] |= ((cPtr->OverlaySkewX >> 8) & 0x7);
+- /* Right Edge of Overlay */
+- ChipsNew->MR[0x2C] = (cPtr->OverlaySkewX + pScrn->displayWidth -
+- 1) & 0xFF;
+- ChipsNew->MR[0x2D] &= 0xF8; /* Mask reserved bits */
+- ChipsNew->MR[0x2D] |= ((cPtr->OverlaySkewX + pScrn->displayWidth -
+- 1) >> 8) & 0x07;
+- /* Top Edge of Overlay */
+- ChipsNew->MR[0x2E] = cPtr->OverlaySkewY;
+- ChipsNew->MR[0x2F] &= 0xF8;
+- ChipsNew->MR[0x2F] |= ((cPtr->OverlaySkewY >> 8) & 0x7);
+- /* Bottom Edge of Overlay*/
+- ChipsNew->MR[0x30] = (cPtr->OverlaySkewY + pScrn->virtualY - 1 )& 0xFF;
+- ChipsNew->MR[0x31] &= 0xF8; /* Mask reserved bits */
+- ChipsNew->MR[0x31] |= ((cPtr->OverlaySkewY + pScrn->virtualY -
+- 1 ) >> 8) & 0x07;
+-
+- ChipsNew->MR[0x3C] &= 0x18; /* Mask reserved bits */
+- ChipsNew->MR[0x3C] |= 0x07; /* Enable keyed overlay window */
+- ChipsNew->MR[0x3D] = 0x00;
+- ChipsNew->MR[0x3E] = 0x00;
+- ChipsNew->MR[0x3F] = pScrn->colorKey; /* 8bpp transparency key */
+- ChipsNew->MR[0x40] = 0xFF;
+- ChipsNew->MR[0x41] = 0xFF;
+- ChipsNew->MR[0x42] = 0x00;
+- } else if (cPtr->Flags & ChipsVideoSupport) {
++ if (cPtr->Flags & ChipsVideoSupport) {
+ #if 0 /* if we do this even though video isn't playing we kill performance */
+ ChipsNew->XR[0xD0] |= 0x10; /* Force the Multimedia engine on */
+ #endif
+@@ -6877,8 +6688,7 @@ chipsRestoreExtendedRegs(ScrnInfoPtr pScrn, CHIPSRegPtr Regs)
+ }
+
+ /* Set SAR04 multimedia register correctly */
+- if ((cPtr->Flags & ChipsOverlay8plus16)
+- || (cPtr->Flags & ChipsVideoSupport)) {
++ if ((cPtr->Flags & ChipsVideoSupport)) {
+ #ifdef SAR04
+ cPtr->writeXR(cPtr, 0x4E, 0x04);
+ if (cPtr->readXR(cPtr, 0x4F) != Regs->XR[0x4F])
+diff --git a/src/ct_driver.h b/src/ct_driver.h
+index d8ce228..10a24d4 100644
+--- a/src/ct_driver.h
++++ b/src/ct_driver.h
+@@ -114,7 +114,6 @@ typedef struct {
+ /* Options flags for the C&T chipsets */
+ #define ChipsHWCursor 0x00001000
+ #define ChipsShadowFB 0x00002000
+-#define ChipsOverlay8plus16 0x00004000
+ #define ChipsUseNewFB 0x00008000
+
+ /* Architecture type flags */
+diff --git a/src/ct_video.c b/src/ct_video.c
+index a68acb9..c9e5bb4 100644
+--- a/src/ct_video.c
++++ b/src/ct_video.c
+@@ -56,8 +56,7 @@ CHIPSInitVideo(ScreenPtr pScreen)
+ CHIPSPtr cPtr = CHIPSPTR(pScrn);
+ int num_adaptors;
+
+- if (!(cPtr->Flags & ChipsOverlay8plus16) &&
+- (cPtr->Flags & ChipsVideoSupport)) {
++ if ((cPtr->Flags & ChipsVideoSupport)) {
+ newAdaptor = CHIPSSetupImageVideo(pScreen);
+ CHIPSInitOffscreenImages(pScreen);
+ }
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/xf86-video-cirrus/PKGBUILD b/extra/xf86-video-cirrus/PKGBUILD
new file mode 100644
index 000000000..3a9024d8d
--- /dev/null
+++ b/extra/xf86-video-cirrus/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140340 2011-10-11 21:29:29Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-cirrus
+pkgver=1.3.2
+pkgrel=7
+pkgdesc="X.org Cirrus Logic video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8195d03ed0be0975c03441e66a9f53b3')
+
+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-dummy/PKGBUILD b/extra/xf86-video-dummy/PKGBUILD
new file mode 100644
index 000000000..7dbc457fe
--- /dev/null
+++ b/extra/xf86-video-dummy/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140338 2011-10-11 21:29:27Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-dummy
+pkgver=0.3.4
+pkgrel=5
+pkgdesc="X.org dummy video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.99.902')
+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..fd626bdb8
--- /dev/null
+++ b/extra/xf86-video-fbdev/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140336 2011-10-11 21:29:25Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-fbdev
+pkgver=0.4.2
+pkgrel=6
+pkgdesc="X.org framebuffer video driver"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+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..0b606721e
--- /dev/null
+++ b/extra/xf86-video-glint/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140334 2011-10-11 21:29:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-glint
+pkgver=1.2.6
+pkgrel=1
+pkgdesc="X.org GLINT/Permedia video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.11.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('d43350ed3c149576db1dbcacf5e9a30a3268a3f49742724c9151b6f1e4bd21a7')
+
+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-i128/PKGBUILD b/extra/xf86-video-i128/PKGBUILD
new file mode 100644
index 000000000..3b0db9e15
--- /dev/null
+++ b/extra/xf86-video-i128/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140332 2011-10-11 21:29:18Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i128
+pkgver=1.3.4
+pkgrel=4
+pkgdesc="X.org Number 9 I128 video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+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..1d7e2446e
--- /dev/null
+++ b/extra/xf86-video-i740/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140330 2011-10-11 21:29:14Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i740
+pkgver=1.3.2
+pkgrel=7
+pkgdesc="X.org Intel i740 video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+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..003d6ddf6
--- /dev/null
+++ b/extra/xf86-video-intel/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144437 2011-12-05 19:49:35Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-intel
+pkgver=2.17.0
+pkgrel=2
+pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('intel-dri' 'libxvmc' 'libpciaccess' 'libdrm' 'xcb-util>=0.3.8' 'libxfixes' 'udev')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'libxrender')
+conflicts=('xorg-server<1.10.99.902' 'xf86-video-i810' 'xf86-video-intel-legacy')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('04ad9fa1f4c4e0a90f48752a709bf14700c864af')
+
+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-mach64/PKGBUILD b/extra/xf86-video-mach64/PKGBUILD
new file mode 100644
index 000000000..efe509fbf
--- /dev/null
+++ b/extra/xf86-video-mach64/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140326 2011-10-11 21:29:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mach64
+pkgver=6.9.0
+pkgrel=2
+pkgdesc="X.org mach64 video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mach64-dri')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.10.99.902')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('95a7ec9761fe11dadbcd9078c55148198a91b2f1')
+
+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-mga/PKGBUILD b/extra/xf86-video-mga/PKGBUILD
new file mode 100644
index 000000000..1ee157c59
--- /dev/null
+++ b/extra/xf86-video-mga/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140324 2011-10-11 21:29:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mga
+pkgver=1.4.13
+pkgrel=4
+pkgdesc="X.org mga video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mga-dri')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch)
+sha1sums=('55aa185cf381def4b5905c8b93694b8dfbd5c378'
+ '74782a39533ef475bd02b8b4645775879494e568')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.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/extra/xf86-video-neomagic/PKGBUILD b/extra/xf86-video-neomagic/PKGBUILD
new file mode 100644
index 000000000..2a1bac87d
--- /dev/null
+++ b/extra/xf86-video-neomagic/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140322 2011-10-11 21:29:00Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-neomagic
+pkgver=1.2.5
+pkgrel=5
+pkgdesc="X.org neomagic video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0' 'xf86dgaproto')
+conflicts=('xorg-server<1.11.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..b235d204a
--- /dev/null
+++ b/extra/xf86-video-nouveau/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 140320 2011-10-11 21:28:57Z jgc $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=xf86-video-nouveau
+_gitdate=20110829
+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' 'mips64el')
+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' 'xf86driproto')
+conflicts=('xorg-server<1.11.0')
+options=('!libtool')
+install=${pkgname}.install
+source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2)
+md5sums=('8f484f6602a3711f4adfbce74fd886c1')
+
+# 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..329f39acb
--- /dev/null
+++ b/extra/xf86-video-nv/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140318 2011-10-11 21:28:55Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-nv
+pkgver=2.1.18
+pkgrel=4
+pkgdesc="X.org nv video driver"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.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/PKGBUILD b/extra/xf86-video-openchrome/PKGBUILD
new file mode 100644
index 000000000..7e4f5bee5
--- /dev/null
+++ b/extra/xf86-video-openchrome/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 140316 2011-10-11 21:28:53Z jgc $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Juergen Hoetzel <juergen@hoetzel.info>
+
+pkgname=xf86-video-openchrome
+pkgver=0.2.904
+_svnver=r933
+pkgrel=6
+pkgdesc="X.Org Openchrome drivers"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://www.openchrome.org"
+depends=('libdrm' 'libxvmc' 'unichrome-dri')
+makedepends=('xorg-server-devel>=1.11.0' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc' 'glproto')
+replaces=('openchrome' 'xf86-video-via')
+options=('!libtool' '!makeflags')
+conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.11.0')
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}-${_svnver}.tar.bz2)
+md5sums=('d661460276a31d3d012d8cdb1a0a73c1')
+
+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-r128/PKGBUILD b/extra/xf86-video-r128/PKGBUILD
new file mode 100644
index 000000000..d40f8b417
--- /dev/null
+++ b/extra/xf86-video-r128/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140314 2011-10-11 21:28:51Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-r128
+pkgver=6.8.1
+pkgrel=7
+pkgdesc="X.org ati Rage128 video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'r128-dri')
+makedepends=('xorg-server-devel>=1.11.0' 'xf86driproto' 'libdrm' 'mesa' 'glproto')
+conflicts=('xorg-server<1.11.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch)
+md5sums=('2b90854a62a4d45d652062f582dc8d13'
+ '3937776d4427861d0797e47119ac327d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+
+ autoreconf -fi
+ ./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-r128/git-fixes.patch b/extra/xf86-video-r128/git-fixes.patch
new file mode 100644
index 000000000..933e8fb2a
--- /dev/null
+++ b/extra/xf86-video-r128/git-fixes.patch
@@ -0,0 +1,842 @@
+diff --git a/COPYING b/COPYING
+index 7f33cbf..05bcb74 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,12 +1,91 @@
+-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.
++Copyright 2007 George Sapountzis
+
+-Please submit updated COPYING files to the Xorg bugzilla:
++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:
+
+-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
++The above copyright notice and this permission notice (including the next
++paragraph) shall be included in all copies or substantial portions of the
++Software.
+
+-All licensing questions regarding this software should be directed at the
+-Xorg mailing list:
++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.
++
++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 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
++Copyright 2002 Tungsten Graphics, 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 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.
++
++Copyright 2000 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.
+
+-http://lists.freedesktop.org/mailman/listinfo/xorg
+diff --git a/Makefile.am b/Makefile.am
+index 1f4c3c4..4c278ba 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,21 +18,15 @@
+ # 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.
+
+-AUTOMAKE_OPTIONS = foreign
+ SUBDIRS = src man
++MAINTAINERCLEANFILES = ChangeLog INSTALL
+
+-if BUILD_LINUXDOC
+-README.r128: README.r128.sgml
+- $(MAKE_TEXT) README.r128.sgml && mv README.r128.txt README.r128
++.PHONY: ChangeLog INSTALL
+
+-endif
+-
+-EXTRA_DIST = README.r128 README.r128.sgml ChangeLog
+-CLEANFILES = ChangeLog
+-
+-.PHONY: ChangeLog
++INSTALL:
++ $(INSTALL_CMD)
+
+ ChangeLog:
+ $(CHANGELOG_CMD)
+
+-dist-hook: ChangeLog
++dist-hook: ChangeLog INSTALL
+diff --git a/README b/README
+index cb61870..5c6f59d 100644
+--- a/README
++++ b/README
+@@ -1,4 +1,161 @@
+-xf86-video-r128 - ATI Rage 128 video driver for the Xorg X server
++ Information for ATI Rage 128 Users
++ Precision Insight, Inc., SuSE GmbH
++ 13 June 2000
++ ____________________________________________________________
++
++ Table of Contents
++
++
++ 1. Supported Hardware
++ 2. Features
++ 3. Technical Notes
++ 4. Reported Working Video Cards
++ 5. Configuration
++ 6. Driver Options
++ 7. Known Limitations
++ 8. Authors
++
++
++ ______________________________________________________________________
++
++ 1. Supported Hardware
++
++
++ o ATI Rage 128 based cards
++
++
++
++ 2. Features
++
++
++ o Full support (including hardware accelerated 2D drawing) for 8, 15,
++ 16, 24 bit pixel depths.
++
++ o Hardware cursor support to reduce sprite flicker.
++
++ o Support for high resolution video modes up to 1800x1440 @ 70Hz.
++
++ o Support for doublescan video modes (e.g., 320x200 and 320x240).
++
++ o Support for gamma correction at all pixel depths.
++
++ o Fully programmable clock supported.
++
++ o Robust text mode restore for VT switching.
++
++
++
++ 3. Technical Notes
++
++
++ o None
++
++
++
++ 4. Reported Working Video Cards
++
++
++ o Rage Fury AGP 32MB
++
++ o XPERT 128 AGP 16MB
++
++ o XPERT 99 AGP 8MB
++
++
++
++ 5. Configuration
++
++ The driver auto-detects all device information necessary to initialize
++ the card. The only lines you need in the "Device" section of your
++ xorg.conf file are:
++
++ Section "Device"
++ Identifier "Rage 128"
++ Driver "r128"
++ EndSection
++
++
++ or let xorgconfig do this for you.
++
++ However, if you have problems with auto-detection, you can specify:
++
++ o VideoRam - in kilobytes
++
++ o MemBase - physical address of the linear framebuffer
++
++ o IOBase - physical address of the memory mapped IO registers
++
++ o ChipID - PCI DEVICE ID
++
++
++
++ 6. Driver Options
++
++
++ o "hw_cursor" - request hardware cursor (default)
++
++ o "sw_cursor" - software cursor only
++
++ o "no_accel" - software rendering only
++
++ o "dac_8_bit" - use color weight 888 in 8 bpp mode (default)
++
++ o "dac_6_bit" - use color weight 666 in 8 bpp mode (VGA emulation)
++
++
++
++ 7. Known Limitations
++
++
++ o None
++
++
++
++ 8. Authors
++
++ The X11R7.5 driver was originally part of XFree86 4.4 rc2.
++
++ The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
++
++ o Rickard E. (Rik) Faith <mailto:faith@precisioninsight.com>
++
++ o Kevin E. Martin <mailto:kevin@precisioninsight.com>
++
++ The XFree86 4 driver was funded by ATI and was donated to The XFree86
++ Project by:
++
++ Precision Insight, Inc.
++ Cedar Park, TX
++ USA
++
++
++ The XFree86 3.3.x driver used for the port was written by:
++
++ o Rickard E. (Rik) Faith <mailto:faith@precisioninsight.com>
++
++ o Kevin E. Martin <mailto:kevin@precisioninsight.com>
++
++ The XFree86 3.3.x driver was funded by ATI and was donated to The
++ XFree86 Project by Precision Insight, Inc. It was based in part on
++ an earlier driver that was written by:
++
++ o Alan Hourihane <mailto:alanh@fairlite.demon.co.uk>
++
++ o Dirk Hohndel <mailto:hohndel@suse.de>
++
++ This early driver was funded and donated to The XFree86 Project by:
++
++ SuSE GmbH
++ Schanzaekerstr. 10
++ 90443 Nuernberg
++ Germany
++
++
++
++ http://www.precisioninsight.com
++
++ http://www.suse.com
++
+
+ Please submit bugs & patches to the Xorg bugzilla:
+
+diff --git a/README.r128 b/README.r128
+deleted file mode 100644
+index dcc2715..0000000
+--- a/README.r128
++++ /dev/null
+@@ -1,160 +0,0 @@
+- Information for ATI Rage 128 Users
+- Precision Insight, Inc., SuSE GmbH
+- 13 June 2000
+- ____________________________________________________________
+-
+- Table of Contents
+-
+-
+- 1. Supported Hardware
+- 2. Features
+- 3. Technical Notes
+- 4. Reported Working Video Cards
+- 5. Configuration
+- 6. Driver Options
+- 7. Known Limitations
+- 8. Authors
+-
+-
+- ______________________________________________________________________
+-
+- 1. Supported Hardware
+-
+-
+- +o ATI Rage 128 based cards
+-
+-
+-
+- 2. Features
+-
+-
+- +o Full support (including hardware accelerated 2D drawing) for 8, 15,
+- 16, 24 bit pixel depths.
+-
+- +o Hardware cursor support to reduce sprite flicker.
+-
+- +o Support for high resolution video modes up to 1800x1440 @ 70Hz.
+-
+- +o Support for doublescan video modes (e.g., 320x200 and 320x240).
+-
+- +o Support for gamma correction at all pixel depths.
+-
+- +o Fully programmable clock supported.
+-
+- +o Robust text mode restore for VT switching.
+-
+-
+-
+- 3. Technical Notes
+-
+-
+- +o None
+-
+-
+-
+- 4. Reported Working Video Cards
+-
+-
+- +o Rage Fury AGP 32MB
+-
+- +o XPERT 128 AGP 16MB
+-
+- +o XPERT 99 AGP 8MB
+-
+-
+-
+- 5. Configuration
+-
+- The driver auto-detects all device information necessary to initialize
+- the card. The only lines you need in the "Device" section of your
+- xorg.conf file are:
+-
+- Section "Device"
+- Identifier "Rage 128"
+- Driver "r128"
+- EndSection
+-
+-
+- or let xorgconfig do this for you.
+-
+- However, if you have problems with auto-detection, you can specify:
+-
+- +o VideoRam - in kilobytes
+-
+- +o MemBase - physical address of the linear framebuffer
+-
+- +o IOBase - physical address of the memory mapped IO registers
+-
+- +o ChipID - PCI DEVICE ID
+-
+-
+-
+- 6. Driver Options
+-
+-
+- +o "hw_cursor" - request hardware cursor (default)
+-
+- +o "sw_cursor" - software cursor only
+-
+- +o "no_accel" - software rendering only
+-
+- +o "dac_8_bit" - use color weight 888 in 8 bpp mode (default)
+-
+- +o "dac_6_bit" - use color weight 666 in 8 bpp mode (VGA emulation)
+-
+-
+-
+- 7. Known Limitations
+-
+-
+- +o None
+-
+-
+-
+- 8. Authors
+-
+- The X11R6.8 driver was originally part of XFree86 4.4 rc2.
+-
+- The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
+-
+- +o Rickard E. (Rik) Faith <faith@precisioninsight.com>
+-
+- +o Kevin E. Martin <kevin@precisioninsight.com>
+-
+- The XFree86 4 driver was funded by ATI and was donated to The XFree86
+- Project by:
+-
+- Precision Insight, Inc.
+- Cedar Park, TX
+- USA
+-
+-
+- The XFree86 3.3.x driver used for the port was written by:
+-
+- +o Rickard E. (Rik) Faith <faith@precisioninsight.com>
+-
+- +o Kevin E. Martin <kevin@precisioninsight.com>
+-
+- The XFree86 3.3.x driver was funded by ATI and was donated to The
+- XFree86 Project by Precision Insight, Inc. It was based in part on
+- an earlier driver that was written by:
+-
+- +o Alan Hourihane <alanh@fairlite.demon.co.uk>
+-
+- +o Dirk Hohndel <hohndel@suse.de>
+-
+- This early driver was funded and donated to The XFree86 Project by:
+-
+- SuSE GmbH
+- Schanzaekerstr. 10
+- 90443 Nuernberg
+- Germany
+-
+-
+-
+- http://www.precisioninsight.com
+-
+- http://www.suse.com
+-
+-
+-
+diff --git a/README.r128.sgml b/README.r128.sgml
+deleted file mode 100644
+index 8d7f448..0000000
+--- a/README.r128.sgml
++++ /dev/null
+@@ -1,138 +0,0 @@
+-<!DOCTYPE linuxdoc PUBLIC "-//Xorg//DTD linuxdoc//EN"[
+-<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+-]>
+-
+-<article>
+-<title>Information for ATI Rage 128 Users
+-<author>Precision Insight, Inc., SuSE GmbH
+-<date>13 June 2000
+-
+-<ident>
+-</ident>
+-
+-<toc>
+-
+-<sect>Supported Hardware
+-<p>
+-<itemize>
+- <item>ATI Rage 128 based cards
+-</itemize>
+-
+-
+-<sect>Features
+-<p>
+-<itemize>
+- <item>Full support (including hardware accelerated 2D drawing) for 8, 15,
+- 16, 24 bit pixel depths.
+- <item>Hardware cursor support to reduce sprite flicker.
+- <item>Support for high resolution video modes up to 1800x1440 @ 70Hz.
+- <item>Support for doublescan video modes (e.g., 320x200 and 320x240).
+- <item>Support for gamma correction at all pixel depths.
+- <item>Fully programmable clock supported.
+- <item>Robust text mode restore for VT switching.
+-</itemize>
+-
+-
+-<sect>Technical Notes
+-<p>
+-<itemize>
+- <item>None
+-</itemize>
+-
+-
+-<sect>Reported Working Video Cards
+-<p>
+-<itemize>
+- <item>Rage Fury AGP 32MB
+- <item>XPERT 128 AGP 16MB
+- <item>XPERT 99 AGP 8MB
+-</itemize>
+-
+-
+-<sect>Configuration
+-<p>
+-The driver auto-detects all device information necessary to
+-initialize the card. The only lines you need in the "Device"
+-section of your xorg.conf file are:
+-<verb>
+- Section "Device"
+- Identifier "Rage 128"
+- Driver "r128"
+- EndSection
+-</verb>
+-or let <tt>xorgconfig</tt> do this for you.
+-
+-However, if you have problems with auto-detection, you can specify:
+-<itemize>
+- <item>VideoRam - in kilobytes
+- <item>MemBase - physical address of the linear framebuffer
+- <item>IOBase - physical address of the memory mapped IO registers
+- <item>ChipID - PCI DEVICE ID
+-</itemize>
+-
+-
+-<sect>Driver Options
+-<p>
+-<itemize>
+- <item>"hw_cursor" - request hardware cursor (default)
+- <item>"sw_cursor" - software cursor only
+- <item>"no_accel" - software rendering only
+- <item>"dac_8_bit" - use color weight 888 in 8 bpp mode (default)
+- <item>"dac_6_bit" - use color weight 666 in 8 bpp mode (VGA emulation)
+-</itemize>
+-
+-
+-<sect>Known Limitations
+-<p>
+-<itemize>
+- <item>None
+-</itemize>
+-
+-
+-<sect>Authors
+-<p>
+-The X11R&relvers; driver was originally part of XFree86 4.4 rc2.
+-
+-The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
+-<itemize>
+- <item>Rickard E. (Rik) Faith <email>faith@precisioninsight.com</email>
+- <item>Kevin E. Martin <email>kevin@precisioninsight.com</email>
+-</itemize>
+-<p>
+-The XFree86 4 driver was funded by ATI and was donated to The XFree86
+-Project by:
+-<verb>
+- Precision Insight, Inc.
+- Cedar Park, TX
+- USA
+-</verb>
+-<p>
+-The XFree86 3.3.x driver used for the port was written by:
+-<itemize>
+- <item>Rickard E. (Rik) Faith <email>faith@precisioninsight.com</email>
+- <item>Kevin E. Martin <email>kevin@precisioninsight.com</email>
+-</itemize>
+-The XFree86 3.3.x driver was funded by ATI and was donated to The XFree86
+-Project by Precision Insight, Inc. It was based in part on an earlier
+-driver that was written by:
+-<itemize>
+- <item>Alan Hourihane <email>alanh@fairlite.demon.co.uk</email>
+- <item>Dirk Hohndel <email>hohndel@suse.de</email>
+-</itemize>
+-<p>This early driver was funded and donated to The XFree86 Project by:
+-<verb>
+- SuSE GmbH
+- Schanzaekerstr. 10
+- 90443 Nuernberg
+- Germany
+-</verb>
+-
+-<p>
+-<htmlurl name="http://www.precisioninsight.com"
+- url="http://www.precisioninsight.com">
+-<p>
+-<htmlurl name="http://www.suse.com"
+- url="http://www.suse.com">
+-
+-
+-</article>
+diff --git a/configure.ac b/configure.ac
+index 4e0f463..d5a0821 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,28 +20,30 @@
+ #
+ # Process this file with autoconf to produce a configure script
+
+-AC_PREREQ(2.57)
++# Initialize Autoconf
++AC_PREREQ([2.60])
+ AC_INIT([xf86-video-r128],
+- 6.8.1,
++ [6.8.1],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+- xf86-video-r128)
+-
++ [xf86-video-r128])
+ AC_CONFIG_SRCDIR([Makefile.am])
+-AM_CONFIG_HEADER([config.h])
++AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR(.)
+
+-AM_INIT_AUTOMAKE([dist-bzip2])
++# Initialize Automake
++AM_INIT_AUTOMAKE([foreign dist-bzip2])
+
+-# Require xorg-macros: XORG_CWARNFLAGS, XORG_CHANGELOG
+-m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
+-XORG_MACROS_VERSION(1.2)
++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
++m4_ifndef([XORG_MACROS_VERSION],
++ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
++XORG_MACROS_VERSION(1.8)
++XORG_DEFAULT_OPTIONS
+
+ AM_MAINTAINER_MODE
+
+-# Checks for programs.
++# Initialize libtool
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-AC_PROG_CC
+
+ if test "x$GCC" = "xyes"; then
+ CPPFLAGS="$CPPFLAGS -Wall"
+@@ -49,38 +51,35 @@ fi
+
+ AH_TOP([#include "xorg-server.h"])
+
++# Define a configure option for an alternate module directory
+ AC_ARG_WITH(xorg-module-dir,
+- AC_HELP_STRING([--with-xorg-module-dir=DIR],
++ AS_HELP_STRING([--with-xorg-module-dir=DIR],
+ [Default xorg module directory [[default=$libdir/xorg/modules]]]),
+ [moduledir="$withval"],
+ [moduledir="$libdir/xorg/modules"])
+
+-AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
++AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
+ [Disable DRI support [[default=auto]]]),
+ [DRI="$enableval"],
+ [DRI=auto])
+
+-# Checks for extensions
+-XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
++# Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+ XORG_DRIVER_CHECK_EXT(XV, videoproto)
+ XORG_DRIVER_CHECK_EXT(XF86MISC, xf86miscproto)
+ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+-# Checks for pkg-config packages
++# Obtain compiler/linker options for the driver dependencies
+ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES])
+ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
+ HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
+ HAVE_XEXTPROTO_71="no")
+ AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
+-sdkdir=$(pkg-config --variable=sdkdir xorg-server)
++sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
+
+ # Checks for libraries.
+
+-# Checks for header files.
+-AC_HEADER_STDC
+-
+ if test "$DRI" != no; then
+ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+@@ -126,26 +125,20 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+ fi
+ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
+-AC_SUBST([XORG_CFLAGS])
+-AC_SUBST([DRI_CFLAGS])
+ AC_SUBST([moduledir])
+
+ DRIVER_NAME=r128
+ AC_SUBST([DRIVER_NAME])
+
+-XORG_MANPAGE_SECTIONS
+-XORG_RELEASE_VERSION
+-XORG_CHECK_LINUXDOC
+-XORG_CHANGELOG
+-
+ AC_MSG_NOTICE(
+ [Please change the Driver line in xorg.conf from "ati" to "r128" or install]
+ [the ati wrapper as well:]
+ [ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati]
+ )
+
+-AC_OUTPUT([
+- Makefile
+- src/Makefile
+- man/Makefile
++AC_CONFIG_FILES([
++ Makefile
++ src/Makefile
++ man/Makefile
+ ])
++AC_OUTPUT
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 858ba62..4e22d61 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -1,27 +1,24 @@
+ #
+ # 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.
++#
++# 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
++# 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.
+ #
+
+ drivermandir = $(DRIVER_MAN_DIR)
+@@ -34,25 +31,11 @@ EXTRA_DIST = r128.man
+
+ CLEANFILES = $(driverman_DATA)
+
+-SED = sed
+
+-# Strings to replace in man pages
+-XORGRELSTRING = @PACKAGE_STRING@
+- XORGMANNAME = X Version 11
++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+
+-MAN_SUBSTS = \
+- -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+- -e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+- -e 's|__xservername__|Xorg|g' \
+- -e 's|__xconfigfile__|xorg.conf|g' \
+- -e 's|__projectroot__|$(prefix)|g' \
+- -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
+- -e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \
+- -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
+- -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
+- -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
+
+ SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
+
+ .man.$(DRIVER_MAN_SUFFIX):
+- sed $(MAN_SUBSTS) < $< > $@
++ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+diff --git a/man/r128.man b/man/r128.man
+index 5c7c4fe..4ba933d 100644
+--- a/man/r128.man
++++ b/man/r128.man
+@@ -1,4 +1,3 @@
+-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128.man,v 1.3 2001/06/01 02:10:05 dawes Exp $
+ .\" shorthand for double quote that works everywhere.
+ .ds q \N'34'
+ .TH R128 __drivermansuffix__ __vendorversion__
+diff --git a/src/r128_driver.c b/src/r128_driver.c
+index d6448b6..9d08d77 100644
+--- a/src/r128_driver.c
++++ b/src/r128_driver.c
+@@ -938,14 +938,6 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn)
+ /* BIOS */
+ from = X_PROBED;
+ info->BIOSAddr = info->PciInfo->biosBase & 0xfffe0000;
+- if (dev->BiosBase) {
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "BIOS address override, using 0x%08lx instead of 0x%08lx\n",
+- dev->BiosBase,
+- info->BIOSAddr);
+- info->BIOSAddr = dev->BiosBase;
+- from = X_CONFIG;
+- }
+ if (info->BIOSAddr) {
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "BIOS at 0x%08lx\n", info->BIOSAddr);
diff --git a/extra/xf86-video-rendition/PKGBUILD b/extra/xf86-video-rendition/PKGBUILD
new file mode 100644
index 000000000..41bb56a7e
--- /dev/null
+++ b/extra/xf86-video-rendition/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 140312 2011-10-11 21:28:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-rendition
+pkgver=4.2.4
+pkgrel=5
+pkgdesc="X.org Rendition video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.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..44b059ea1
--- /dev/null
+++ b/extra/xf86-video-s3/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140308 2011-10-11 21:28:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-s3
+pkgver=0.6.3
+pkgrel=6
+pkgdesc="X.org S3 video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.11.0')
+conflicts=('xorg-server<1.11.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch)
+md5sums=('5eb06d88533fb327d067928faeb20860'
+ '77a455ce7e254c73b1cbd408c7f4ecf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+ autoreconf -fi
+ ./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-s3/git-fixes.patch b/extra/xf86-video-s3/git-fixes.patch
new file mode 100644
index 000000000..712b3c9c0
--- /dev/null
+++ b/extra/xf86-video-s3/git-fixes.patch
@@ -0,0 +1,458 @@
+diff --git a/COPYING b/COPYING
+index 7f33cbf..458ab5f 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,12 +1,70 @@
+-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.
++ Copyright 2001 Ani Joshi <ajoshi@unixbox.com>
+
+-Please submit updated COPYING files to the Xorg bugzilla:
++ XFree86 4.x driver for S3 chipsets
+
+-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+-All licensing questions regarding this software should be directed at the
+-Xorg mailing list:
++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.
++Copyright 2007 George Sapountzis
++
++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
++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.
++
++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.
++
++
++Copyright 1995-1997 The XFree86 Project, Inc.
++Copyright (c) 1999,2000 The XFree86 Project Inc.
+
+-http://lists.freedesktop.org/mailman/listinfo/xorg
+diff --git a/ChangeLog b/ChangeLog
+deleted file mode 100644
+index ad0b227..0000000
+--- a/ChangeLog
++++ /dev/null
+@@ -1,133 +0,0 @@
+-2009-06-25 Evgeny M. zubok <evgeny.zubok@tochka.ru>
+-
+- * src/s3_driver.c:
+- Revert the old behaviour when the BIOS settings are used for
+- intialization of DRAM/VRAM timings, i. e. we don't touch the
+- timings during initialization phase until any memory option (like
+- slow_edodram) is specified.
+-
+- Add manual page.
+-
+-2009-05-25 Evgeny M. Zubok <evgeny.zubok@tochka.ru>
+-
+- * src/s3_driver.c:
+- * src/s3_video.c:
+-
+- Enable Xv extension for Trio64V+ (thanks to Egor Ivanov for
+- testing on real hardware) and Trio64UV+ (Tested only on Trio64V2 by
+- overriding Chipset with "Trio64UV+" but not on real hardware).
+-
+- S3 Trio64V+ now using NewMMIO. Trio64V+ chips have the same ChipId
+- as Trio32/64 but only with chip revision greater or eq 0x40. So if
+- you have problems with NewMMIO, you may override ChipRev in "Device"
+- section of your xorg.conf: "ChipRev" 0x00. Note: disabling the NewMMIO
+- also disables overlay video (Xv) because it isn't implemented for
+- Old MMIO yet.
+-
+-2009-05-04 Evgeny M. Zubok <evgeny.zubok@tochka.ru>
+-
+- * src/s3_driver.c:
+- * src/s3_shadow.c:
+-
+- Add shadowFB option. It can be used to speedup drawing when
+- hardware acceleration is undesirable or unavailable (for colour depth
+- 24 with 24 bpp framebuffer, for example). shadowFB is disabled by
+- default. Enabling shadowFB option disables HW acceleration. Thanks
+- to Egor Ivanov for initial porting of shadowFB from s3virge.
+-
+- Interlace mode support.
+-
+- Close bug #14999.
+-
+-2008-07-06 Evgeny M. Zubok <evgeny.zubok@tochka.ru>
+-
+- * src/s3_video.c:
+-
+- Streams Processor initialization.
+-
+- XVideo support for 16, 24 and 32 bpp (only for TRIO64V2).
+-
+- * src/s3_driver.c:
+-
+- Add XVideo option (enabled by default).
+-
+- Replace "swcursor" by "hwcursor" option (HW cursor
+- not implemented yet for all chipsets).
+-
+- Close bug #5527: 24-bit colour depth support (24bpp and
+- 32bpp framebuffer) for TRIOs. Acceleration doesn't work
+- with packed colour mode (24 bpp FB) but works with 32bpp
+- framebuffer mode (hardware limitation? -- need data).
+-
+- Fix system hang-up when switching between console and X session.
+-
+- Some minor changes of driver messages.
+-
+-2008-02-23 Evgeny M. Zubok <evgeny.zubok@tochka.ru>
+-
+- * src/s3_driver.c: Add DPMS support for S3 Trio64V2 and possibly
+- others (need testing): S3 Trio64UV+. S3 Aurora64V+ and S3 Trio32/64
+- * src/s3_Trio64DAC: Change clocks for S3 Trio64V2 to make
+- the 1024x768@16bpp mode work.
+- Thanks to Richard Driscoll for these patches.
+-
+-2006-04-07 Adam Jackson <ajax@freedesktop.org>
+-
+- * configure.ac:
+- * src/s3.h:
+- Bump to 0.4.1 for Xv changes.
+-
+-2006-04-07 Aaron Plattner <aplattner@nvidia.com>
+-
+- * src/s3_video.c: (S3PutImage):
+- Add a DrawablePtr argument to the XV functions to pave the way for
+- redirected video.
+-
+-2006-04-07 Adam Jackson <ajax@freedesktop.org>
+-
+- * configure.ac:
+- * src/s3.h:
+- * src/s3_IBMRGB.c:
+- * src/s3_Ti.c:
+- * src/s3_Trio64DAC.c:
+- * src/s3_bios.c:
+- * src/s3_cursor.c:
+- * src/s3_dga.c:
+- * src/s3_driver.c:
+- * src/s3_video.c:
+- Unlibcwrap. Bump server version requirement. Bump to 0.4.0.
+-
+-2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+-
+- * configure.ac:
+- Update package version for X11R7 release.
+-
+-2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
+-
+- * configure.ac:
+- Update package version number for final X11R7 release candidate.
+-
+-2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+-
+- * configure.ac:
+- Update package version number for X11R7 RC3 release.
+-
+-2005-12-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+-
+- * configure.ac:
+- Remove extraneous AC_MSG_RESULT.
+-
+-2005-11-29 Adam Jackson <ajax@freedesktop.org>
+-
+- * configure.ac:
+- Only build dlloader modules by default.
+-
+-2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
+-
+- * configure.ac:
+- Update package version number for X11R7 RC2 release.
+-
+-2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+-
+- * configure.ac:
+- Update pkgcheck dependencies to work with separate build roots.
+diff --git a/Makefile.am b/Makefile.am
+index 7052905..4c278ba 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,5 +18,15 @@
+ # 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.
+
+-AUTOMAKE_OPTIONS = foreign
+ SUBDIRS = src man
++MAINTAINERCLEANFILES = ChangeLog INSTALL
++
++.PHONY: ChangeLog INSTALL
++
++INSTALL:
++ $(INSTALL_CMD)
++
++ChangeLog:
++ $(CHANGELOG_CMD)
++
++dist-hook: ChangeLog INSTALL
+diff --git a/configure.ac b/configure.ac
+index 0eecc87..0ac34f9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,42 +20,50 @@
+ #
+ # Process this file with autoconf to produce a configure script
+
+-AC_PREREQ(2.57)
++# Initialize Autoconf
++AC_PREREQ([2.60])
+ AC_INIT([xf86-video-s3],
+- 0.6.3,
++ [0.6.3],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+- xf86-video-s3)
+-
++ [xf86-video-s3])
+ AC_CONFIG_SRCDIR([Makefile.am])
+-AM_CONFIG_HEADER([config.h])
++AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR(.)
+
+-AM_INIT_AUTOMAKE([dist-bzip2])
+-
++# Initialize Automake
++AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ AM_MAINTAINER_MODE
+
+-# Checks for programs.
++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
++m4_ifndef([XORG_MACROS_VERSION],
++ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
++XORG_MACROS_VERSION(1.8)
++XORG_DEFAULT_OPTIONS
++
++# Initialize libtool
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-AC_PROG_CC
++
++# Checks for programs.
++AM_PROG_CC_C_O
+
+ AH_TOP([#include "xorg-server.h"])
+
++# Define a configure option for an alternate module directory
+ AC_ARG_WITH(xorg-module-dir,
+- AC_HELP_STRING([--with-xorg-module-dir=DIR],
++ AS_HELP_STRING([--with-xorg-module-dir=DIR],
+ [Default xorg module directory [[default=$libdir/xorg/modules]]]),
+ [moduledir="$withval"],
+ [moduledir="$libdir/xorg/modules"])
+
+-# Checks for extensions
++# Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+ XORG_DRIVER_CHECK_EXT(XV, videoproto)
+ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+-# Checks for pkg-config packages
++# Obtain compiler/linker options for the driver dependencies
+ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.4 xproto fontsproto $REQUIRED_MODULES])
+-sdkdir=$(pkg-config --variable=sdkdir xorg-server)
+
+ # Checks for libraries.
+ SAVE_CPPFLAGS="$CPPFLAGS"
+@@ -65,28 +73,20 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
+ [#include "xorg-server.h"])
+ CPPFLAGS="$SAVE_CPPFLAGS"
+
+-# Checks for header files.
+-AC_HEADER_STDC
+-
+ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
+ XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
+ fi
+ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
+-AC_SUBST([XORG_CFLAGS])
+ AC_SUBST([moduledir])
+
+ DRIVER_NAME=s3
+ AC_SUBST([DRIVER_NAME])
+
+-XORG_MANPAGE_SECTIONS
+-XORG_RELEASE_VERSION
+-
+-XORG_CHECK_LINUXDOC
+-
+-AC_OUTPUT([
+- Makefile
+- src/Makefile
+- man/Makefile
++AC_CONFIG_FILES([
++ Makefile
++ src/Makefile
++ man/Makefile
+ ])
++AC_OUTPUT
+diff --git a/man/Makefile.am b/man/Makefile.am
+index f0eb29b..b3688ce 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -1,27 +1,24 @@
+ #
+ # 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.
++#
++# 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
++# 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.
+ #
+
+ drivermandir = $(DRIVER_MAN_DIR)
+@@ -34,25 +31,11 @@ EXTRA_DIST = @DRIVER_NAME@.man
+
+ CLEANFILES = $(driverman_DATA)
+
+-SED = sed
+
+-# Strings to replace in man pages
+-XORGRELSTRING = @PACKAGE_STRING@
+- XORGMANNAME = X Version 11
++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+
+-MAN_SUBSTS = \
+- -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+- -e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+- -e 's|__xservername__|Xorg|g' \
+- -e 's|__xconfigfile__|xorg.conf|g' \
+- -e 's|__projectroot__|$(prefix)|g' \
+- -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
+- -e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \
+- -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
+- -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
+- -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
+
+ SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
+
+ .man.$(DRIVER_MAN_SUFFIX):
+- sed $(MAN_SUBSTS) < $< > $@
++ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+diff --git a/src/s3.h b/src/s3.h
+index 49b8a54..0875fc9 100644
+--- a/src/s3.h
++++ b/src/s3.h
+@@ -113,7 +113,6 @@ typedef struct _S3Rec {
+ XAAInfoRecPtr pXAA;
+ xf86CursorInfoPtr pCurs;
+ xf86Int10InfoPtr pInt10;
+- vbeInfoPtr pVBE;
+ XF86VideoAdaptorPtr adaptor;
+ S3PortPrivPtr portPrivate;
+
+diff --git a/src/s3_driver.c b/src/s3_driver.c
+index 29e343d..4519b33 100644
+--- a/src/s3_driver.c
++++ b/src/s3_driver.c
+@@ -309,6 +309,7 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags)
+ S3Ptr pS3;
+ vgaHWPtr hwp;
+ ClockRangePtr clockRanges;
++ vbeInfoPtr pVBE;
+ rgb zeros = {0, 0, 0};
+ Gamma gzeros = {0.0, 0.0, 0.0};
+ int i, vgaCRIndex, vgaCRReg;
+@@ -436,7 +437,8 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags)
+ }
+
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+- pS3->pVBE = VBEInit(pS3->pInt10, pEnt->index);
++ pVBE = VBEInit(pS3->pInt10, pEnt->index);
++ vbeFree(pVBE);
+ }
+
+ if (pS3->shadowFB) {
diff --git a/extra/xf86-video-s3virge/PKGBUILD b/extra/xf86-video-s3virge/PKGBUILD
new file mode 100644
index 000000000..170bd31aa
--- /dev/null
+++ b/extra/xf86-video-s3virge/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 140310 2011-10-11 21:28:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-s3virge
+pkgver=1.10.4
+pkgrel=6
+pkgdesc="X.org S3 Virge video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+options=(!libtool)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ copyright.patch)
+md5sums=('6517bbbf808c700502d51acdc44662f8'
+ 'f91fb259e3632fb9130fcbe69ecd9d6a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${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/xf86-video-savage/PKGBUILD b/extra/xf86-video-savage/PKGBUILD
new file mode 100644
index 000000000..84aabffc1
--- /dev/null
+++ b/extra/xf86-video-savage/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140306 2011-10-11 21:28:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-savage
+pkgver=2.3.3
+pkgrel=1
+pkgdesc="X.org savage video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'savage-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.10.0')
+options=(!libtool !makeflags)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('d3854d375dbf7d83bf90e30d72837ce60d808119c6fa4bb98088e68e7cc7e7b2')
+
+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..e2e588c5c
--- /dev/null
+++ b/extra/xf86-video-siliconmotion/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140304 2011-10-11 21:28:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-siliconmotion
+pkgver=1.7.5
+pkgrel=5
+pkgdesc="X.org siliconmotion video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff)
+sha1sums=('946acae0822d51da57abe8b7ed049691bd731589'
+ '84c98a3341d92ed678ad0dee2033d571bd6b29ca')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ [ "$CARCH" = "mips64el" ] && patch -Np1 -i ${srcdir}/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
+sha1sums=('946acae0822d51da57abe8b7ed049691bd731589'
+ 'b3cc8e8aaaabdf25857b781d6793c70815003f9b')
diff --git a/extra/xf86-video-sis/PKGBUILD b/extra/xf86-video-sis/PKGBUILD
new file mode 100644
index 000000000..2868e778d
--- /dev/null
+++ b/extra/xf86-video-sis/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140302 2011-10-11 21:28:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sis
+pkgver=0.10.3
+pkgrel=5
+pkgdesc="X.org SiS video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'sis-dri')
+makedepends=('xorg-server-devel>=1.11.0' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.11.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-sisimedia/0001-Remove-xorgconfig-xorgcfg-from-See-Also-list-in-man-.patch b/extra/xf86-video-sisimedia/0001-Remove-xorgconfig-xorgcfg-from-See-Also-list-in-man-.patch
new file mode 100644
index 000000000..fd87b6c8c
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0001-Remove-xorgconfig-xorgcfg-from-See-Also-list-in-man-.patch
@@ -0,0 +1,25 @@
+From e4f6a2fcd5712d0f994d3719b9c6c13f5b02bc7c Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri, 9 Jan 2009 16:34:01 -0800
+Subject: [PATCH 01/10] Remove xorgconfig & xorgcfg from See Also list in man page
+
+---
+ man/sis.man | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/man/sis.man b/man/sis.man
+index d743fe6..c321808 100644
+--- a/man/sis.man
++++ b/man/sis.man
+@@ -429,7 +429,7 @@ The amount is to be specified in megabyte, the default is 8.
+ none.
+ .SH "SEE ALSO"
+ #ifdef __xservername__
+-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
++__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
+ #else
+ XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
+ #endif
+--
+1.6.5.4
+
diff --git a/extra/xf86-video-sisimedia/0002-Remove-XFree86-Misc-PassMessage-support.patch b/extra/xf86-video-sisimedia/0002-Remove-XFree86-Misc-PassMessage-support.patch
new file mode 100644
index 000000000..860e593c6
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0002-Remove-XFree86-Misc-PassMessage-support.patch
@@ -0,0 +1,91 @@
+diff -p -up xf86-video-sis-0.9.1/configure.ac.orig xf86-video-sis-0.9.1/configure.ac
+--- xf86-video-sis-0.9.1/configure.ac.orig 2010-01-27 15:34:26.000000000 -0500
++++ xf86-video-sis-0.9.1/configure.ac 2010-01-27 15:34:43.000000000 -0500
+@@ -58,7 +58,6 @@ XORG_DRIVER_CHECK_EXT(XINERAMA, xinerama
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+ XORG_DRIVER_CHECK_EXT(XV, videoproto)
+-XORG_DRIVER_CHECK_EXT(XF86MISC, xf86miscproto)
+ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+ # Checks for pkg-config packages
+diff -p -up xf86-video-sis-0.9.1/src/sis_driver.c.orig xf86-video-sis-0.9.1/src/sis_driver.c
+--- xf86-video-sis-0.9.1/src/sis_driver.c.orig 2010-01-27 15:35:05.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis_driver.c 2010-01-27 15:35:39.000000000 -0500
+@@ -86,8 +86,6 @@
+ #include "mibank.h"
+ #include "mipointer.h"
+ #include "mibstore.h"
+-#define _XF86MISC_SERVER_
+-#include <X11/extensions/xf86misc.h>
+ #include "edid.h"
+
+ #define SIS_NEED_inSISREG
+@@ -506,11 +504,6 @@ xf86DrvMsg(0, X_INFO, "
+ pScrn->FreeScreen = SISFreeScreen;
+ pScrn->ValidMode = SISValidMode;
+ pScrn->PMEvent = SISPMEvent; /*add PM function for ACPI hotkey,Ivans*/
+-#ifdef X_XF86MiscPassMessage
+-// if(xf86GetVersion() >= XF86_VERSION_NUMERIC(4,3,99,2,0)) {
+-// pScrn->HandleMessage = SISHandleMessage;
+-// }
+-#endif
+ foundScreen = TRUE;
+ }
+ #ifdef SISDUALHEAD
+diff -p -up xf86-video-sis-0.9.1/src/sis_driver.h.orig xf86-video-sis-0.9.1/src/sis_driver.h
+--- xf86-video-sis-0.9.1/src/sis_driver.h.orig 2010-01-27 15:35:49.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis_driver.h 2010-01-27 15:36:04.000000000 -0500
+@@ -791,10 +791,6 @@ static Bool SISHotkeySwitchMode(ScrnInfo
+ #ifdef SISDUALHEAD
+ static Bool SISSaveScreenDH(ScreenPtr pScreen, int mode);
+ #endif
+-#ifdef X_XF86MiscPassMessage
+-extern int SISHandleMessage(int scrnIndex, const char *msgtype,
+- const char *msgval, char **retmsg);
+-#endif
+ static void SISFreeScreen(int scrnIndex, int flags);
+ static ModeStatus SISValidMode(int scrnIndex, DisplayModePtr mode,
+ Bool verbose, int flags);
+diff -p -up xf86-video-sis-0.9.1/src/sis_utility.c.orig xf86-video-sis-0.9.1/src/sis_utility.c
+--- xf86-video-sis-0.9.1/src/sis_utility.c.orig 2010-01-27 15:36:23.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis_utility.c 2010-01-27 15:36:59.000000000 -0500
+@@ -40,8 +40,6 @@
+ #define NEED_EVENTS
+ #include <X11/X.h>
+ #include "dixstruct.h"
+-#define _XF86MISC_SERVER_
+-#include <X11/extensions/xf86misc.h>
+
+ #include "sis_videostr.h"
+
+@@ -262,9 +260,6 @@ typedef struct {
+ int (*HandleSiSDirectCommand[SISCTRL_MAX_SCREENS])(xSiSCtrlCommandReply *);
+ } xSiSCtrlScreenTable;
+
+-#ifdef X_XF86MiscPassMessage
+-int SISHandleMessage(int scrnIndex, const char *msgtype, const char *msgval, char **retmsg);
+-#endif
+ void SiSCtrlExtInit(ScrnInfoPtr pScrn);
+ void SiSCtrlExtUnregister(SISPtr pSiS, int index);
+
+@@ -975,19 +970,6 @@ unsigned int SISVGADetected(ScrnInfoPtr
+ }
+
+ /***********************************
+- * MessageHandler interface *
+- * (unused now; use extension) *
+- ***********************************/
+-
+-#ifdef X_XF86MiscPassMessage
+-int
+-SISHandleMessage(int scrnIndex, const char *msgtype, const char *msgval, char **retmsg)
+-{
+- return BadMatch;
+-}
+-#endif
+-
+-/***********************************
+ * SiSCtrl extension interface *
+ ***********************************/
+
diff --git a/extra/xf86-video-sisimedia/0003-Fix-build-with-Werror-format-security.patch b/extra/xf86-video-sisimedia/0003-Fix-build-with-Werror-format-security.patch
new file mode 100644
index 000000000..4fc355bbb
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0003-Fix-build-with-Werror-format-security.patch
@@ -0,0 +1,65 @@
+From 9b010b7db7f0c6730c1a1b3cd473d49b01ed5b5f Mon Sep 17 00:00:00 2001
+From: Ander Conselvan de Oliveira <ander@mandriva.com.br>
+Date: Mon, 22 Jun 2009 16:07:26 -0400
+Subject: [PATCH] Fix build with -Werror=format-security
+
+---
+ src/sis_driver.c | 4 ++--
+ src/sis_mergedfb.c | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 5b91004..0a154db 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -831,14 +831,14 @@ SISErrorLog(ScrnInfoPtr pScrn, const char *format, ...)
+ static const char *str = "**************************************************\n";
+
+ va_start(ap, format);
+- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ " ERROR:\n");
+ xf86VDrvMsgVerb(pScrn->scrnIndex, X_ERROR, 1, format, ap);
+ va_end(ap);
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ " END OF MESSAGE\n");
+- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
+ }
+
+ static void
+diff --git a/src/sis_mergedfb.c b/src/sis_mergedfb.c
+index 61b4255..feca024 100644
+--- a/src/sis_mergedfb.c
++++ b/src/sis_mergedfb.c
+@@ -357,7 +357,7 @@ SiSCopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest,
+
+ strcat(printbuffer, namebuf1);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO, printbuffer);
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%s", printbuffer);
+ }
+
+ mode->next = mode;
+@@ -2137,7 +2137,7 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1)
+ if(infochanged && !usenonrect) {
+ xf86DrvMsgVerb(pScrn1->scrnIndex, X_INFO, pSiS->XineVerb,
+ "Current screen size does not match maximum display modes...\n");
+- xf86DrvMsgVerb(pScrn1->scrnIndex, X_INFO, pSiS->XineVerb, rectxine);
++ xf86DrvMsgVerb(pScrn1->scrnIndex, X_INFO, pSiS->XineVerb, "%s", rectxine);
+ }
+
+ } else if(infochanged && usenonrect) {
+@@ -2145,7 +2145,7 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1)
+ usenonrect = FALSE;
+ xf86DrvMsgVerb(pScrn1->scrnIndex, X_INFO, pSiS->XineVerb,
+ "Only clone modes available for this screen size...\n");
+- xf86DrvMsgVerb(pScrn1->scrnIndex, X_INFO, pSiS->XineVerb, rectxine);
++ xf86DrvMsgVerb(pScrn1->scrnIndex, X_INFO, pSiS->XineVerb, "%s", rectxine);
+
+ }
+
+--
+1.6.2.4
+
diff --git a/extra/xf86-video-sisimedia/0004-Make-sisRegs3D4-big-enough-to-hold-all-values-writte.patch b/extra/xf86-video-sisimedia/0004-Make-sisRegs3D4-big-enough-to-hold-all-values-writte.patch
new file mode 100644
index 000000000..68ec63138
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0004-Make-sisRegs3D4-big-enough-to-hold-all-values-writte.patch
@@ -0,0 +1,32 @@
+From 49c641b638ac36d2a559555c04a3bd2777c8d071 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri, 1 May 2009 16:52:10 -0700
+Subject: [PATCH 04/10] Make sisRegs3D4 big enough to hold all values written to it
+
+Increase size from 0xff to 0x100 since SiS315Save (sis_dac.c line 752)
+writes values into sisRegs3D4[0x00..0xff] if ChipType >= XGI_20
+
+[This bug was found by the Parfait bug checking tool.
+ For more information see http://research.sun.com/projects/parfait ]
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+---
+ src/sis.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/sis.h b/src/sis.h
+index 9bafd4b..773f709 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -747,7 +747,7 @@ typedef struct {
+ UChar sisRegsGR[10];
+ UChar sisDAC[768];
+ UChar sisRegs3C4[0x80];
+- UChar sisRegs3D4[0xff];
++ UChar sisRegs3D4[0x100];
+ UChar sisRegs3C2;
+ UChar sisCapt[0x60];
+ UChar sisVid[0x50];
+--
+1.6.5.4
+
diff --git a/extra/xf86-video-sisimedia/0005-Correct-bounds-check-of-blitClip-array-access.patch b/extra/xf86-video-sisimedia/0005-Correct-bounds-check-of-blitClip-array-access.patch
new file mode 100644
index 000000000..038322bf6
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0005-Correct-bounds-check-of-blitClip-array-access.patch
@@ -0,0 +1,38 @@
+From 933dd8f860883c613acb5bcdf6b66100dbdfa952 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri, 1 May 2009 16:57:22 -0700
+Subject: [PATCH 05/10] Correct bounds check of blitClip array access
+
+Array is defined as blitClip[NUM_BLIT_PORTS], so invalid indexes
+are >= NUM_BLIT_PORTS, not just > NUM_BLIT_PORTS
+
+[This bug was found by the Parfait bug checking tool.
+ For more information see http://research.sun.com/projects/parfait ]
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+---
+ src/sis_video.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: xf86-video-sis-0.9.1/src/sis_video.c
+===================================================================
+--- xf86-video-sis-0.9.1.orig/src/sis_video.c
++++ xf86-video-sis-0.9.1/src/sis_video.c
+@@ -4656,7 +4656,7 @@ SISStopVideoBlit(ScrnInfoPtr pScrn, ULon
+ * adapt->flags but we provide it anyway.
+ */
+
+- if(index > NUM_BLIT_PORTS) return;
++ if(index >= NUM_BLIT_PORTS) return;
+
+ REGION_EMPTY(pScrn->pScreen, &pPriv->blitClip[index]);
+
+@@ -4698,7 +4698,7 @@ SISPutImageBlit_671(
+ int xoffset = 0, yoffset = 0;
+ Bool first;
+
+- if(index > NUM_BLIT_PORTS)
++ if(index >= NUM_BLIT_PORTS)
+ return BadMatch;
+
+ if(!height || !width)
diff --git a/extra/xf86-video-sisimedia/0005-Fix-backlight-off-on-SiS30x.-video-bridges.patch b/extra/xf86-video-sisimedia/0005-Fix-backlight-off-on-SiS30x.-video-bridges.patch
new file mode 100644
index 000000000..f023c774e
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0005-Fix-backlight-off-on-SiS30x.-video-bridges.patch
@@ -0,0 +1,25 @@
+From 910073e0ab3a7bf9e5c9d97437a879d97edc2714 Mon Sep 17 00:00:00 2001
+From: root <root@greentea.conectiva>
+Date: Wed, 1 Jul 2009 09:59:39 -0400
+Subject: [PATCH] Fix backlight off on SiS30x. video bridges.
+
+---
+ src/init301.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/init301.c b/src/init301.c
+index c179ae8..70a6aab 100644
+--- a/src/init301.c
++++ b/src/init301.c
+@@ -9261,7 +9261,7 @@ void
+ SiS_SiS30xBLOff(struct SiS_Private *SiS_Pr)
+ {
+ /* Switch off LCD backlight on SiS30xLV */
+- SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFE);
++ SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFC);
+ SiS_DDC2Delay(SiS_Pr,0xff00);
+ }
+
+--
+1.5.4.3
+
diff --git a/extra/xf86-video-sisimedia/0006-Add-IgnoreHotkeyFlag-driver-option.patch b/extra/xf86-video-sisimedia/0006-Add-IgnoreHotkeyFlag-driver-option.patch
new file mode 100644
index 000000000..8ebc799a7
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0006-Add-IgnoreHotkeyFlag-driver-option.patch
@@ -0,0 +1,89 @@
+From 072af02d180c1965f30246ea269d208292ed6f05 Mon Sep 17 00:00:00 2001
+From: root <root@greentea.conectiva>
+Date: Wed, 1 Jul 2009 14:13:52 -0400
+Subject: [PATCH] Add IgnoreHotkeyFlag driver option.
+
+Some BIOSes do not set the hotkey flag correctly. Without this option
+set, the driver won't change the mirroring state of LCD and VGA
+connections if the BIOS did not set this flag.
+---
+ src/sis.h | 3 +++
+ src/sis_driver.c | 2 +-
+ src/sis_opt.c | 13 ++++++++++++-
+ 3 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/src/sis.h b/src/sis.h
+index c50690b..c82c302 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -1565,6 +1565,9 @@ typedef struct {
+
+ /* Enable special 1366x768x60hz mode of LVDS panel. Ivans@090109 */
+ Bool EnablePanel_1366x768;
++
++ /* Ignore hotkey flag on capability changed APM events */
++ Bool IgnoreHotkeyFlag;
+
+ } SISRec, *SISPtr;
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index c935c11..2a5001c 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -11370,7 +11370,7 @@ SISPMEvent(int scrnIndex, pmEvent event, Bool undo)
+ inSISIDXREG(SISCR,0x3d,hotkeyflag);/*check device switch flag from BIOS CR 0x3d bit[2].*/
+
+
+- if(hotkeyflag & 0x04)
++ if(pSiS->IgnoreHotkeyFlag || (hotkeyflag & 0x04))
+ {
+
+ SISCRT1PreInit(pScrn); /*redetecting CRT1, pSiS->CRT1detected will update.*/
+diff --git a/src/sis_opt.c b/src/sis_opt.c
+index 4b79f7f..7f726ea 100644
+--- a/src/sis_opt.c
++++ b/src/sis_opt.c
+@@ -159,7 +159,8 @@ typedef enum {
+ OPTION_PSEUDO,
+ OPTION_FUTRO_TIMING, /*chaoyu's modified: for Fuji-Siemans specail timing*/
+ OPTION_TRACEVGAMISCW,
+- OPTION_USETIMING1366 /*option of enable 1366x768 timing for LVDS panel. Ivans@090109*/
++ OPTION_USETIMING1366, /*option of enable 1366x768 timing for LVDS panel. Ivans@090109*/
++ OPTION_IGNOREHOTKEYFLAG
+ } SISOpts;
+
+ static const OptionInfoRec SISOptions[] = {
+@@ -305,6 +306,7 @@ static const OptionInfoRec SISOptions[] = {
+ { OPTION_FUTRO_TIMING, "FutroTiming", OPTV_BOOLEAN, {0}, FALSE },/*chaoyu's modified: for Fuji-seimans special timing*/
+ { OPTION_TRACEVGAMISCW, "TraceVgaMISCW", OPTV_BOOLEAN, {0}, FALSE },/*Ivans added for helping detected CRT1 using BIOS setting.*/
+ { OPTION_USETIMING1366, "UseTiming1366", OPTV_BOOLEAN, {0}, FALSE },/*enable 1366 timing on LVDS, Ivans@090109*/
++ { OPTION_IGNOREHOTKEYFLAG, "IgnoreHotkeyFlag", OPTV_BOOLEAN, {0}, FALSE },
+ { -1, NULL, OPTV_NONE, {0}, FALSE }
+ };
+
+@@ -624,6 +626,7 @@ SiSOptions(ScrnInfoPtr pScrn)
+ pSiS->CRT2IsScrn0 = FALSE;
+ #endif
+ #endif
++ pSiS->IgnoreHotkeyFlag = FALSE;
+
+ /* Chipset dependent defaults */
+
+@@ -2419,6 +2422,14 @@ SiSOptions(ScrnInfoPtr pScrn)
+ pSiS->EnablePanel_1366x768 = TRUE;
+ }
+ }
++ /* Ignore hotkey flag for video switch, switch on every
++ * XF86_APM_CAPABILITY_CHANGED event */
++ if(xf86GetOptValBool(pSiS->Options, OPTION_IGNOREHOTKEYFLAG, &val)){
++ if(val){
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO,"Ignoring hotkey flag\n");
++ pSiS->IgnoreHotkeyFlag = TRUE;
++ }
++ }
+
+ }
+
+--
+1.5.4.3
+
diff --git a/extra/xf86-video-sisimedia/0007-Remove-useless-loader-symbol-lists.patch b/extra/xf86-video-sisimedia/0007-Remove-useless-loader-symbol-lists.patch
new file mode 100644
index 000000000..395213375
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0007-Remove-useless-loader-symbol-lists.patch
@@ -0,0 +1,249 @@
+From ae1a7dcebdac904c8068cc38fb77648c548f5075 Mon Sep 17 00:00:00 2001
+From: Paulo Ricardo Zanoni <pzanoni@mandriva.com>
+Date: Thu, 22 Apr 2010 11:19:29 -0300
+Subject: [PATCH] Remove useless loader symbol lists
+
+Adaption of xf86-video-sis patch 74553b5ee476a0dd28e136f5a33a546ea0c3ef28
+---
+ src/sis_driver.c | 150 +-----------------------------------------------------
+ 1 files changed, 1 insertions(+), 149 deletions(-)
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index d56182f..96255d3 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -227,126 +227,6 @@ static PciChipsets XGIPciChipsets[] = {
+ { -1, -1, RES_UNDEFINED }
+ };
+
+-#ifdef SIS_USE_XAA
+-static const char *xaaSymbols[] = {
+- "XAACreateInfoRec",
+- "XAADestroyInfoRec",
+- "XAAHelpPatternROP",
+- "XAAInit",
+- NULL
+-};
+-#endif
+-
+-#ifdef SIS_USE_EXA
+-static const char *exaSymbols[] = {
+- "exaGetVersion",
+- "exaDriverInit",
+- "exaDriverFini",
+- "exaOffscreenAlloc",
+- "exaOffscreenFree",
+- NULL
+-};
+-#endif
+-
+-static const char *fbSymbols[] = {
+- "fbPictureInit",
+- "fbScreenInit",
+- NULL
+-};
+-
+-static const char *shadowSymbols[] = {
+- "ShadowFBInit",
+- NULL
+-};
+-
+-static const char *ramdacSymbols[] = {
+- "xf86CreateCursorInfoRec",
+- "xf86DestroyCursorInfoRec",
+- "xf86InitCursor",
+- NULL
+-};
+-
+-static const char *ddcSymbols[] = {
+- "xf86PrintEDID",
+- "xf86InterpretEDID",
+- NULL
+-};
+-
+-static const char *int10Symbols[] = {
+- "xf86FreeInt10",
+- "xf86InitInt10",
+- NULL
+-};
+-
+-static const char *vbeSymbols[] = {
+-#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,99,0,0)
+- "VBEInit",
+-#else
+- "VBEExtendedInit",
+-#endif
+- "vbeDoEDID",
+- "vbeFree",
+- "VBEGetVBEInfo",
+- "VBEFreeVBEInfo",
+- "VBEGetModeInfo",
+- "VBEFreeModeInfo",
+- "VBESaveRestore",
+- "VBESetVBEMode",
+- "VBEGetVBEMode",
+- "VBESetDisplayStart",
+- "VBESetGetLogicalScanlineLength",
+- NULL
+-};
+-
+-#ifdef XF86DRI
+-static const char *drmSymbols[] = {
+- "drmAddMap",
+- "drmAgpAcquire",
+- "drmAgpRelease",
+- "drmAgpAlloc",
+- "drmAgpFree",
+- "drmAgpBase",
+- "drmAgpBind",
+- "drmAgpUnbind",
+- "drmAgpEnable",
+- "drmAgpGetMode",
+- "drmCtlInstHandler",
+- "drmCtlUninstHandler",
+- "drmGetInterruptFromBusID",
+-#ifndef SISHAVEDRMWRITE
+- "drmSiSAgpInit",
+-#else
+- "drmCommandWrite",
+-#endif
+-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(4,3,0,0,0)
+- "drmGetVersion",
+- "drmFreeVersion",
+-#endif
+- NULL
+-};
+-
+-static const char *driSymbols[] = {
+- "DRICreateInfoRec",
+- "DRIScreenInit",
+- "DRIFinishScreenInit",
+- "DRIDestroyInfoRec",
+- "DRICloseScreen",
+- "DRIGetSAREAPrivate",
+- "DRILock",
+- "DRIUnlock",
+- "DRIQueryVersion",
+- "GlxSetVisualConfigs",
+- NULL
+-};
+-
+-#ifdef XFree86LOADER
+-static const char *driRefSymbols[] = {
+- "DRICreatePCIBusID", /* not REQUIRED, but eventually referenced */
+- NULL
+-};
+-#endif
+-#endif /* XF86DRI */
+-
+ #ifdef XFree86LOADER
+
+ static MODULESETUPPROTO(sisSetup);
+@@ -382,19 +262,6 @@ sisSetup(pointer module, pointer opts, int *errmaj, int *errmin)
+ if(!setupDone) {
+ setupDone = TRUE;
+ xf86AddDriver(&SIS, module, SIS_HaveDriverFuncs);
+- LoaderRefSymLists(fbSymbols,
+-#ifdef SIS_USE_XAA
+- xaaSymbols,
+-#endif
+-#ifdef SIS_USE_EXA
+- exaSymbols,
+-#endif
+- shadowSymbols, ramdacSymbols,
+- vbeSymbols, int10Symbols,
+-#ifdef XF86DRI
+- drmSymbols, driSymbols, driRefSymbols,
+-#endif
+- NULL);
+ return (pointer)TRUE;
+ }
+
+@@ -1068,7 +935,6 @@ SiS_LoadInitVBE(ScrnInfoPtr pScrn)
+ return;
+
+ if(xf86LoadSubModule(pScrn, "vbe")) {
+- xf86LoaderReqSymLists(vbeSymbols, NULL);
+ #if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,99,0,0)
+ pSiS->pVbe = VBEInit(pSiS->pInt, pSiS->pEnt->index);
+ #else
+@@ -1092,7 +958,6 @@ SiSLoadInitDDCModule(ScrnInfoPtr pScrn)
+ return TRUE;
+
+ if(xf86LoadSubModule(pScrn, "ddc")) {
+- xf86LoaderReqSymLists(ddcSymbols, NULL);
+ pSiS->haveDDC = TRUE;
+ return TRUE;
+ }
+@@ -3586,7 +3451,6 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Initializing adapter through int10\n");
+ if(xf86LoadSubModule(pScrn, "int10")) {
+- xf86LoaderReqSymLists(int10Symbols, NULL);
+ pSiS->pInt = xf86InitInt10(pSiS->pEnt->index);
+ } else {
+ SISErrorLog(pScrn, "Failed to load int10 module\n");
+@@ -3683,7 +3547,6 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ SISErrorLog(pScrn, "Could not load ramdac module\n");
+ goto my_error_1;
+ }
+- xf86LoaderReqSymLists(ramdacSymbols, NULL);
+
+ /* Set pScrn->monitor */
+ pScrn->monitor = pScrn->confScreen->monitor;
+@@ -5868,22 +5731,18 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ SISErrorLog(pScrn, "Unsupported framebuffer bpp (%d)\n", pScrn->bitsPerPixel);
+ goto my_error_1;
+ }
+- xf86LoaderReqSymLists(fbSymbols, NULL);
+
+ /* Load XAA/EXA (if needed) */
+ if(!pSiS->NoAccel) {
+ char *modName = NULL;
+- const char **symNames = NULL;
+ #ifdef SIS_USE_XAA
+ if(!pSiS->useEXA) {
+ modName = "xaa";
+- symNames = xaaSymbols;
+ }
+ #endif
+ #ifdef SIS_USE_EXA
+ if(pSiS->useEXA) {
+ modName = "exa";
+- symNames = exaSymbols;
+ }
+ #endif
+ if(modName && (!xf86LoadSubModule(pScrn, modName))) {
+@@ -5894,9 +5753,6 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ pSiS->NoXvideo = TRUE;
+ }
+ #endif
+- } else if(symNames) {
+- xf86LoaderReqSymLists(symNames, NULL);
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "2D acceleration enabled, modename %s\n",modName);
+ }
+ }
+
+@@ -5909,8 +5765,6 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ pSiS->ShadowFB = FALSE;
+ pSiS->Rotate = pSiS->Reflect = 0;
+ }
+- } else {
+- xf86LoaderReqSymLists(shadowSymbols, NULL);
+ }
+ }
+
+@@ -5920,9 +5774,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ if(!xf86LoaderCheckSymbol("DRIScreenInit")) {
+ if(xf86LoadSubModule(pScrn, "dri")) {
+ if(!xf86LoaderCheckSymbol("GlxSetVisualConfigs")) {
+- if(xf86LoadSubModule(pScrn, "glx")) {
+- xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL);
+- } else {
++ if(! xf86LoadSubModule(pScrn, "glx")) {
+ SISErrorLog(pScrn, "Failed to load glx module\n");
+ }
+ }
+--
+1.6.4.4
+
diff --git a/extra/xf86-video-sisimedia/0008-update-to-xextproto-7-1-support.patch b/extra/xf86-video-sisimedia/0008-update-to-xextproto-7-1-support.patch
new file mode 100644
index 000000000..1dcbdf05c
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0008-update-to-xextproto-7-1-support.patch
@@ -0,0 +1,45 @@
+From 59ea80738d22c69a2850fd7ff89bd75330cc310b Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 16 Jul 2009 01:55:25 +0000
+Subject: Update to xextproto 7.1 support.
+
+DPMS header was split into dpms.h (client) and dpmsconst.h (server). Drivers
+need to include dpmsconst.h if xextproto 7.1 is available.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/configure.ac b/configure.ac
+index 089c5fa..f19c1b7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -62,6 +62,10 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto xf86dgaproto $REQUIRED_MODULES])
++PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
++ HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
++ HAVE_XEXTPROTO_71="no")
++AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
+ sdkdir=$(pkg-config --variable=sdkdir xorg-server)
+
+ # Checks for libraries.
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index ef7b522..a1ced97 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -78,8 +78,13 @@
+
+ #include "globals.h"
+
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/dpmsconst.h>
++#else
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
++#endif
++
+
+ #ifdef XF86DRI
+ #include "dri.h"
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xf86-video-sisimedia/0009-update-for-rac-removal.patch b/extra/xf86-video-sisimedia/0009-update-for-rac-removal.patch
new file mode 100644
index 000000000..df1421798
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0009-update-for-rac-removal.patch
@@ -0,0 +1,69 @@
+From 9e1ebb9530bbb71be7fcab9e6f8f9a475be72efe Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Tue, 28 Jul 2009 03:32:37 +0000
+Subject: sis: update for resources/RAC API removal
+
+---
+diff --git a/src/sis.h b/src/sis.h
+index 773f709..e859c78 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -77,7 +77,9 @@
+ #include "xf86Pci.h"
+ #include "xf86Priv.h"
+ #include "xf86_OSproc.h"
++#ifndef XSERVER_LIBPCIACCESS
+ #include "xf86Resources.h"
++#endif
+ #include "xf86.h"
+ #include "xf86PciInfo.h"
+ #include "xf86Cursor.h"
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index a1ced97..bb11cbb 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -49,7 +49,9 @@
+
+ #include "sis.h"
+
++#ifndef XSERVER_LIBPCIACCESS
+ #include "xf86RAC.h"
++#endif
+ #include "dixstruct.h"
+ #include "shadowfb.h"
+ #include "fb.h"
+@@ -3552,6 +3554,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ SiS_MapVGAMem(pScrn);
+ #endif
+
++#ifndef XSERVER_LIBPCIACCESS
+ /* Set operating state */
+
+ /* 1. memory */
+@@ -3581,6 +3584,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ /* Operations for which I/O access is required */
+ pScrn->racIoFlags = RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT;
+
++#endif
++
+ /* Load ramdac module */
+ if(!xf86LoadSubModule(pScrn, "ramdac")) {
+ SISErrorLog(pScrn, "Could not load ramdac module\n");
+@@ -4424,6 +4429,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ xf86DrvMsg(pScrn->scrnIndex, from, "MMIO registers at 0x%lX (size %ldK)\n",
+ (ULong)pSiS->IOAddress, pSiS->mmioSize);
+
++#ifndef XSERVER_LIBPCIACCESS
+ /* Register the PCI-assigned resources */
+ if(xf86RegisterResources(pSiS->pEnt->index, NULL, ResExclusive)) {
+ SISErrorLog(pScrn, "PCI resource conflicts detected\n");
+@@ -4435,6 +4441,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ SISFreeRec(pScrn);
+ return FALSE;
+ }
++#endif
+
+ from = X_PROBED;
+ if(pSiS->pEnt->device->videoRam != 0) {
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xf86-video-sisimedia/0010-change-to-use-abi-version-check.patch b/extra/xf86-video-sisimedia/0010-change-to-use-abi-version-check.patch
new file mode 100644
index 000000000..cb9fd7ea5
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0010-change-to-use-abi-version-check.patch
@@ -0,0 +1,34 @@
+From 8c3eca873717e877048c2bde345c02b1e9099e50 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Tue, 28 Jul 2009 05:22:41 +0000
+Subject: sis: change to using ABI version check
+
+---
+diff --git a/src/sis.h b/src/sis.h
+index e859c78..400b83f 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -77,7 +77,7 @@
+ #include "xf86Pci.h"
+ #include "xf86Priv.h"
+ #include "xf86_OSproc.h"
+-#ifndef XSERVER_LIBPCIACCESS
++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+ #include "xf86Resources.h"
+ #endif
+ #include "xf86.h"
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index bb11cbb..994b02d 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -49,7 +49,7 @@
+
+ #include "sis.h"
+
+-#ifndef XSERVER_LIBPCIACCESS
++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+ #include "xf86RAC.h"
+ #endif
+ #include "dixstruct.h"
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xf86-video-sisimedia/0011-more-rac-removal.patch b/extra/xf86-video-sisimedia/0011-more-rac-removal.patch
new file mode 100644
index 000000000..8175dea98
--- /dev/null
+++ b/extra/xf86-video-sisimedia/0011-more-rac-removal.patch
@@ -0,0 +1,13 @@
+diff -Nrup xf86-video-sis-0.9.1/src/sis_hwmc.c patched/src/sis_hwmc.c
+--- xf86-video-sis-0.9.1/src/sis_hwmc.c 2008-03-04 14:31:10.000000000 -0300
++++ patched/src/sis_hwmc.c 2010-04-20 17:10:21.073690167 -0300
+@@ -43,7 +43,9 @@ THE USE OR OTHER DEALINGS IN THE SOFTWAR
+
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
++#ifndef GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+ #include "xf86Resources.h"
++#endif
+ #include "compiler.h"
+ #include "xf86PciInfo.h"
+ #include "xf86Pci.h"
diff --git a/extra/xf86-video-sisimedia/COPYING b/extra/xf86-video-sisimedia/COPYING
new file mode 100644
index 000000000..d643012d7
--- /dev/null
+++ b/extra/xf86-video-sisimedia/COPYING
@@ -0,0 +1,139 @@
+Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
+
+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.
+
+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.
+
+Copyright (C) 1998, 1999 by Alan Hourihane, Wigan, England.
+Parts Copyright (C) 2001-2005 Thomas Winischhofer, Vienna, Austria.
+
+Licensed under the following terms:
+
+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 appears in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+and that the name of the copyright holder not be used in advertising
+or publicity pertaining to distribution of the software without specific,
+written prior permission. The copyright holder makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without expressed or implied warranty.
+
+THE COPYRIGHT HOLDER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL THE COPYRIGHT HOLDER 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 (C) 2003 Eric Anholt
+
+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 appears in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+and that the name of the copyright holder not be used in advertising
+or publicity pertaining to distribution of the software without specific,
+written prior permission. The copyright holder makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without expressed or implied warranty.
+
+THE COPYRIGHT HOLDER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL THE COPYRIGHT HOLDER 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 (C) 2000 by Alan Hourihane, Sychdyn, North Wales, UK.
+Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
+
+Portions from radeon_dga.c which is
+ Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
+ VA Linux Systems Inc., Fremont, California.
+
+Licensed under the following terms:
+
+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 the providers not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. The providers make no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+THE PROVIDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE PROVIDERS 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 2007 George Sapountzis
+
+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
+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.
+
+Copyright (C) 1999-2004 by The XFree86 Project, Inc.
+based on code written by Mark Vojkovich
+Copyright (C) 2003-2005 Thomas Winischhofer
+
+Licensed under the following terms:
+
+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 appears in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+and that the name of the copyright holder not be used in advertising
+or publicity pertaining to distribution of the software without specific,
+written prior permission. The copyright holder makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without expressed or implied warranty.
+
+THE COPYRIGHT HOLDER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL THE COPYRIGHT HOLDER 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-sisimedia/PKGBUILD b/extra/xf86-video-sisimedia/PKGBUILD
new file mode 100644
index 000000000..b1d9e01d6
--- /dev/null
+++ b/extra/xf86-video-sisimedia/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 142261 2011-11-07 13:08:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sisimedia
+pkgver=0.9.1
+pkgrel=2
+pkgdesc="X.org SiS 671 video driver"
+arch=(i686 x86_64)
+url="http://www.linuxconsulting.ro/xorg-drivers/"
+license=('custom')
+depends=('glibc' 'sis-dri')
+makedepends=('xorg-server-devel>=1.11.0' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.11.0')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/xf86-video-sisimedia/xf86-video-sisimedia-0.9.1_20091203.tar.bz2
+ xf86-video-sis-0.9.1-20102701.patch
+ 0002-Remove-XFree86-Misc-PassMessage-support.patch
+ 0003-Fix-build-with-Werror-format-security.patch
+ 0005-Fix-backlight-off-on-SiS30x.-video-bridges.patch
+ 0006-Add-IgnoreHotkeyFlag-driver-option.patch
+ xf86-video-sis-0.9.1-dump-regs-after-video-init.patch
+ 0007-Remove-useless-loader-symbol-lists.patch
+ 0008-update-to-xextproto-7-1-support.patch
+ 0009-update-for-rac-removal.patch
+ 0010-change-to-use-abi-version-check.patch
+ 0011-more-rac-removal.patch
+ 0001-Remove-xorgconfig-xorgcfg-from-See-Also-list-in-man-.patch
+ 0004-Make-sisRegs3D4-big-enough-to-hold-all-values-writte.patch
+ 0005-Correct-bounds-check-of-blitClip-array-access.patch
+ xserver19.patch
+ fix-xv-crash.patch
+ COPYING)
+sha1sums=('22e6616df49ec82755daae08043a29aaf92fa430'
+ '61715bb86180decde55a56fad9a12d841c89fbb2'
+ '33fdea57187a2758802bcb9572d3a864aaab4d59'
+ '6f05eae535b099b01c2819e63c68d4489b940267'
+ 'a6cb5da9312d32d729ad2619d8ae50cb26ba7d4d'
+ 'df728052a89c4152abbe89826756040dac23b624'
+ '4bed1c2455ed447f7053cb0729e99cbe598b3274'
+ 'd7802db5c49540ab136e71450cc846cfccd8b8d1'
+ 'e2236d2d00338f1658c66d9b972919af39897071'
+ '0c6b9322e6cb22c67e04d50a0b818a2dd4585cf2'
+ '802829a8ebd2b7e35fcc86665d842b1594a8ba30'
+ 'c26afe7508183735b7568b435be9c270ceeb62f1'
+ 'd2fa2a21454f3a161bcd8ae4d349657561049edd'
+ '5e288526bfa2c534f1feabdb571da16da8a1c7a6'
+ 'e86d702cb0b5e9bf43ff732696229965e176db7c'
+ 'b5f260bed7e705808ec05620316e503ed5d52ee5'
+ '1fdd74a2aef9455ac5c37d1fe0146d81aa905d2d'
+ 'a64e244f274bcb155f892d0488a1a4b1b2f7d70d')
+
+build() {
+ cd "${srcdir}/xf86-video-sis-${pkgver}"
+ patch -Np1 -i "${srcdir}/xf86-video-sis-0.9.1-20102701.patch"
+ patch -Np1 -i "${srcdir}/0002-Remove-XFree86-Misc-PassMessage-support.patch"
+ patch -Np1 -i "${srcdir}/0003-Fix-build-with-Werror-format-security.patch"
+ patch -Np1 -i "${srcdir}/0005-Fix-backlight-off-on-SiS30x.-video-bridges.patch"
+ patch -Np1 -i "${srcdir}/0006-Add-IgnoreHotkeyFlag-driver-option.patch"
+ patch -Np1 -i "${srcdir}/xf86-video-sis-0.9.1-dump-regs-after-video-init.patch"
+ patch -Np1 -i "${srcdir}/0007-Remove-useless-loader-symbol-lists.patch"
+ patch -Np1 -i "${srcdir}/0008-update-to-xextproto-7-1-support.patch"
+ patch -Np1 -i "${srcdir}/0009-update-for-rac-removal.patch"
+ patch -Np1 -i "${srcdir}/0010-change-to-use-abi-version-check.patch"
+ patch -Np1 -i "${srcdir}/0011-more-rac-removal.patch"
+ patch -Np1 -i "${srcdir}/0001-Remove-xorgconfig-xorgcfg-from-See-Also-list-in-man-.patch"
+ patch -Np1 -i "${srcdir}/0004-Make-sisRegs3D4-big-enough-to-hold-all-values-writte.patch"
+ patch -Np1 -i "${srcdir}/0005-Correct-bounds-check-of-blitClip-array-access.patch"
+ patch -Np1 -i "${srcdir}/xserver19.patch"
+ patch -Np0 -i "${srcdir}/fix-xv-crash.patch"
+
+ sed -i -e 's,sis_drv,sisimedia_drv,g' src/Makefile.am
+ sed -i -e 's,\"sis\",\"sisimedia\",g' src/sis.h
+ sed -i -e 's,sisModuleData,sisimediaModuleData,g' src/sis_driver.c
+
+ autoreconf -fi
+
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/share/man"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-sisimedia/fix-xv-crash.patch b/extra/xf86-video-sisimedia/fix-xv-crash.patch
new file mode 100644
index 000000000..57e6adec5
--- /dev/null
+++ b/extra/xf86-video-sisimedia/fix-xv-crash.patch
@@ -0,0 +1,11 @@
+--- src/sis_video.c 2008-10-01 09:44:01.000000000 +0200
++++ src/sis_video.c.new 2011-10-17 14:23:07.000000000 +0200
+@@ -1121,7 +1121,7 @@
+ adapt->GetPortAttribute = SISGetPortAttribute;
+ adapt->QueryBestSize = SISQueryBestSize;
+ adapt->PutImage = SISPutImage;
+- adapt->ReputImage = SISReputImage;
++ adapt->ReputImage = NULL;
+ adapt->QueryImageAttributes = SISQueryImageAttributes;
+
+ /* gotta uninit this someplace */
diff --git a/extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-20102701.patch b/extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-20102701.patch
new file mode 100644
index 000000000..944eceb12
--- /dev/null
+++ b/extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-20102701.patch
@@ -0,0 +1,1376 @@
+diff -p -up xf86-video-sis-0.9.1/src/sis.h.orig xf86-video-sis-0.9.1/src/sis.h
+--- xf86-video-sis-0.9.1/src/sis.h.orig 2010-01-27 15:27:11.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis.h 2010-01-27 15:22:42.000000000 -0500
+@@ -98,6 +98,7 @@
+ #define XF86_VERSION_CURRENT XF86_VERSION_NUMERIC(4,3,99,902,0)
+ #endif
+
++#if 0
+ /*** Xorg Version Path <= X-Server 2.0 ***/
+ /* K.T for xorg 1.3 */
+ #if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(2,0,0,0,0)
+@@ -109,33 +110,36 @@
+ #define NEW_XORG_VERSION 1
+ #endif
+ #endif
++#endif
++#define NEW_XORG_VERSION 1
+
+-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,0,0,0)
++//#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,0,0,0)
+ #define SIS_HAVE_RR_FUNC
+ #ifdef HaveDriverFuncs
+ #undef SIS_HaveDriverFuncs
+ #define SIS_HaveDriverFuncs HaveDriverFuncs
+ #define SIS_HAVE_DRIVER_FUNC
+ #endif /* HaveDriverFuncs */
+-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,900,0)
++//#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,900,0)
+ #define SISISXORG6899900
+-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,901,0)
++//#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,901,0)
+ #define SISISXORG6899901
+ #ifdef RANDR
+ #define SIS_HAVE_RR_GET_MODE_MM
+ #define SIS_HAVE_RANDR_SIZE_PATCH
+ #endif /* RANDR */
+-#endif /* >= 6.8.99.901 */
+-#endif /* >= 6.8.99.900 */
+-#endif /* >= 6.8.0.0 */
+-#else /* XORG_VERSION_CURRENT */
+-#include "xf86Version.h"
+-#define SISMYSERVERNAME "XFree86"
++//#endif /* >= 6.8.99.901 */
++//#endif /* >= 6.8.99.900 */
++//#endif /* >= 6.8.0.0 */
++//#else /* XORG_VERSION_CURRENT */
++//#include "xf86Version.h"
++//#define SISMYSERVERNAME "XFree86"
+ #endif
+
+ /*I.L. modified*/
+ //#define NEC_CASE /*It used the old Xorg_Version with new PCI structure.*/
+
++#if 0
+ #ifdef XSERVER_LIBPCIACCESS
+ #ifdef NEC_CASE
+ #define XORG_VERSION_CURRENT (((7) * 10000000) + ((1) * 100000) + ((0) * 1000) + 0)
+@@ -143,6 +147,7 @@
+ #define XORG_VERSION_CURRENT (((7) * 10000000) + ((4) * 100000) + ((0) * 1000) + 0)
+ #endif
+ #endif
++#endif
+
+
+ #define SIS_NAME "SIS"
+@@ -268,16 +273,16 @@
+
+ #undef SISCHECKOSSSE
+ #ifdef XORG_VERSION_CURRENT
+-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,13,0)
++//#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,13,0)
+ #define SISCHECKOSSSE /* Automatic check OS for SSE; requires SigIll facility */
+-#endif
++//#endif
+ #endif
+
+ #undef SISGAMMARAMP
+ #ifdef XORG_VERSION_CURRENT
+-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,13,0)
++//#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,13,0)
+ #define SISGAMMARAMP /* Driver can set gamma ramp; requires additional symbols in xf86sym.h */
+-#endif
++//#endif
+ #endif
+
+ #if 0 /* Perhaps for future use */
+@@ -1031,6 +1036,7 @@ typedef struct {
+ #endif
+
+ PCITAG PciTag;
++
+ int PciBus, PciDevice, PciFunc;
+ EntityInfoPtr pEnt;
+ int Chipset;
+diff -p -up xf86-video-sis-0.9.1/src/sis300_accel.c.orig xf86-video-sis-0.9.1/src/sis300_accel.c
+--- xf86-video-sis-0.9.1/src/sis300_accel.c.orig 2007-05-29 22:12:02.000000000 -0400
++++ xf86-video-sis-0.9.1/src/sis300_accel.c 2010-01-27 15:21:54.000000000 -0500
+@@ -1231,8 +1231,8 @@ SiS300AccelInit(ScreenPtr pScreen)
+
+ #ifdef SIS_USE_EXA /* ----------------------- EXA ----------------------- */
+ if(pSiS->useEXA) {
+-#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+-
++//#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++#if 0
+ if(pSiS->scrnOffset < 8192) {
+ int obase = 0;
+ /* data */
+@@ -1430,7 +1430,8 @@ SiS300AccelInit(ScreenPtr pScreen)
+ pSiS->exa_scratch = exaOffscreenAlloc(pScreen, 128 * 1024, 16, TRUE,
+ SiSScratchSave, pSiS);
+
+- #if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++// #if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++ #if 0
+ if(pSiS->exa_scratch) {
+ pSiS->exa_scratch_next = pSiS->exa_scratch->offset;
+ pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch;
+diff -p -up xf86-video-sis-0.9.1/src/sis310_accel.c.orig xf86-video-sis-0.9.1/src/sis310_accel.c
+--- xf86-video-sis-0.9.1/src/sis310_accel.c.orig 2007-09-29 05:13:12.000000000 -0400
++++ xf86-video-sis-0.9.1/src/sis310_accel.c 2010-01-27 15:21:54.000000000 -0500
+@@ -65,9 +65,9 @@
+ # define SIS_NEED_ARRAY
+ # undef SISNEWRENDER
+ # ifdef XORG_VERSION_CURRENT
+-# if XORG_VERSION_CURRENT > XORG_VERSION_NUMERIC(6,7,0,0,0)
++//# if XORG_VERSION_CURRENT > XORG_VERSION_NUMERIC(6,7,0,0,0)
+ # define SISNEWRENDER
+-# endif
++//# endif
+ # endif
+ # endif
+ #endif
+@@ -1463,7 +1463,7 @@ SiSUploadToScratch(PixmapPtr pSrc, Pixma
+ int dst_pitch, size, w, h, bytes;
+
+ w = pSrc->drawable.width;
+-
++/*
+ #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,8,2,0,0)
+ dst_pitch = ((w * (pSrc->drawable.bitsPerPixel >> 3)) +
+ pSiS->EXADriverPtr->card.offscreenPitch - 1) &
+@@ -1472,17 +1472,17 @@ SiSUploadToScratch(PixmapPtr pSrc, Pixma
+ dst_pitch = ((w * (pSrc->drawable.bitsPerPixel >> 3)) +
+ pSiS->EXADriverPtr->card.pixmapPitchAlign - 1) &
+ ~(pSiS->EXADriverPtr->card.pixmapPitchAlign - 1);
+-#else
++#else*/
+ dst_pitch = ((w * (pSrc->drawable.bitsPerPixel >> 3)) +
+ pSiS->EXADriverPtr->pixmapPitchAlign - 1) &
+ ~(pSiS->EXADriverPtr->pixmapPitchAlign - 1);
+
+-#endif
++//#endif
+ size = dst_pitch * pSrc->drawable.height;
+
+ if(size > pSiS->exa_scratch->size)
+ return FALSE;
+-
++/*
+ #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,8,2,0,0)
+ pSiS->exa_scratch_next = (pSiS->exa_scratch_next +
+ pSiS->EXADriverPtr->card.offscreenByteAlign - 1) &
+@@ -1491,34 +1491,34 @@ SiSUploadToScratch(PixmapPtr pSrc, Pixma
+ pSiS->exa_scratch_next = (pSiS->exa_scratch_next +
+ pSiS->EXADriverPtr->card.pixmapOffsetAlign - 1) &
+ ~(pSiS->EXADriverPtr->card.pixmapOffsetAlign - 1);
+-#else
++#else*/
+ pSiS->exa_scratch_next = (pSiS->exa_scratch_next +
+ pSiS->EXADriverPtr->pixmapOffsetAlign - 1) &
+ ~(pSiS->EXADriverPtr->pixmapOffsetAlign - 1);
+-#endif
+-
++//#endif
++/*
+ #if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+ if(pSiS->exa_scratch_next + size >
+ pSiS->exa_scratch->offset + pSiS->exa_scratch->size) {
+ (pSiS->EXADriverPtr->accel.WaitMarker)(pSrc->drawable.pScreen, 0);
+ pSiS->exa_scratch_next = pSiS->exa_scratch->offset;
+ }
+-#else
++#else*/
+ if(pSiS->exa_scratch_next + size >
+ pSiS->exa_scratch->offset + pSiS->exa_scratch->size) {
+ (pSiS->EXADriverPtr->WaitMarker)(pSrc->drawable.pScreen, 0);
+ pSiS->exa_scratch_next = pSiS->exa_scratch->offset;
+ }
+-#endif
++//#endif
+
+ memcpy(pDst, pSrc, sizeof(*pDst));
+ pDst->devKind = dst_pitch;
+
+-#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+- pDst->devPrivate.ptr = pSiS->EXADriverPtr->card.memoryBase + pSiS->exa_scratch_next;
+-#else
++//#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++// pDst->devPrivate.ptr = pSiS->EXADriverPtr->card.memoryBase + pSiS->exa_scratch_next;
++//#else
+ pDst->devPrivate.ptr = pSiS->EXADriverPtr->memoryBase + pSiS->exa_scratch_next;
+-#endif
++//#endif
+
+ pSiS->exa_scratch_next += size;
+
+@@ -1762,7 +1762,8 @@ SiS315AccelInit(ScreenPtr pScreen)
+
+ #ifdef SIS_USE_EXA /* ----------------------- EXA ----------------------- */
+ if(pSiS->useEXA) {
+-#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++#if 0
++//#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+
+ int obase = 0;
+
+@@ -1952,11 +1953,11 @@ SiS315AccelInit(ScreenPtr pScreen)
+ SiSScratchSave, pSiS);
+ if(pSiS->exa_scratch) {
+ pSiS->exa_scratch_next = pSiS->exa_scratch->offset;
+- #if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+- pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch;
+- #else
++ //#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++ // pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch;
++ //#else
+ pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch;
+- #endif
++ //#endif
+ }
+
+ } else {
+diff -p -up xf86-video-sis-0.9.1/src/sis_3daccel.c.orig xf86-video-sis-0.9.1/src/sis_3daccel.c
+--- xf86-video-sis-0.9.1/src/sis_3daccel.c.orig 2007-08-10 04:22:16.000000000 -0400
++++ xf86-video-sis-0.9.1/src/sis_3daccel.c 2010-01-27 15:21:54.000000000 -0500
+@@ -64,9 +64,9 @@
+ # define SIS_NEED_ARRAY
+ # undef SISNEWRENDER
+ # ifdef XORG_VERSION_CURRENT
+-# if XORG_VERSION_CURRENT > XORG_VERSION_NUMERIC(6,7,0,0,0)
++//# if XORG_VERSION_CURRENT > XORG_VERSION_NUMERIC(6,7,0,0,0)
+ # define SISNEWRENDER
+-# endif
++//# endif
+ # endif
+ # endif
+ #endif
+diff -p -up xf86-video-sis-0.9.1/src/sis_accel.c.orig xf86-video-sis-0.9.1/src/sis_accel.c
+--- xf86-video-sis-0.9.1/src/sis_accel.c.orig 2007-05-29 22:12:02.000000000 -0400
++++ xf86-video-sis-0.9.1/src/sis_accel.c 2010-01-27 15:21:54.000000000 -0500
+@@ -781,50 +781,50 @@ SiSAccelInit(ScreenPtr pScreen)
+
+ #ifdef SIS_USE_EXA /* ----------------------- EXA ----------------------- */
+ if(pSiS->useEXA) {
+-#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++//#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+
+ /* data */
+- pSiS->EXADriverPtr->card.memoryBase = pSiS->FbBase;
+- pSiS->EXADriverPtr->card.memorySize = pSiS->maxxfbmem;
+- pSiS->EXADriverPtr->card.offScreenBase = pScrn->displayWidth * pScrn->virtualY
+- * (pScrn->bitsPerPixel >> 3);
+- if(pSiS->EXADriverPtr->card.memorySize > pSiS->EXADriverPtr->card.offScreenBase) {
+- pSiS->EXADriverPtr->card.flags = EXA_OFFSCREEN_PIXMAPS;
+- } else {
+- pSiS->NoXvideo = TRUE;
+- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+- "Not enough video RAM for offscreen memory manager. Xv disabled\n");
+- }
+-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,8,2,0,0)
+- pSiS->EXADriverPtr->card.offscreenByteAlign = 8; /* src/dst: double quad word boundary */
+- pSiS->EXADriverPtr->card.offscreenPitch = 1;
+-#else
+- pSiS->EXADriverPtr->card.pixmapOffsetAlign = 8; /* src/dst: double quad word boundary */
+- pSiS->EXADriverPtr->card.pixmapPitchAlign = 8; /* could possibly be 1, but who knows for sure */
+-#endif
+- pSiS->EXADriverPtr->card.maxX = 2047;
+- pSiS->EXADriverPtr->card.maxY = 2047;
++// pSiS->EXADriverPtr->card.memoryBase = pSiS->FbBase;
++// pSiS->EXADriverPtr->card.memorySize = pSiS->maxxfbmem;
++// pSiS->EXADriverPtr->card.offScreenBase = pScrn->displayWidth * pScrn->virtualY
++// * (pScrn->bitsPerPixel >> 3);
++// if(pSiS->EXADriverPtr->card.memorySize > pSiS->EXADriverPtr->card.offScreenBase) {
++// pSiS->EXADriverPtr->card.flags = EXA_OFFSCREEN_PIXMAPS;
++// } else {
++// pSiS->NoXvideo = TRUE;
++// xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++// "Not enough video RAM for offscreen memory manager. Xv disabled\n");
++// }
++//#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,8,2,0,0)
++// pSiS->EXADriverPtr->card.offscreenByteAlign = 8; /* src/dst: double quad word boundary */
++// pSiS->EXADriverPtr->card.offscreenPitch = 1;
++//#else
++// pSiS->EXADriverPtr->card.pixmapOffsetAlign = 8; /* src/dst: double quad word boundary */
++// pSiS->EXADriverPtr->card.pixmapPitchAlign = 8; /* could possibly be 1, but who knows for sure */
++//#endif
++// pSiS->EXADriverPtr->card.maxX = 2047;
++// pSiS->EXADriverPtr->card.maxY = 2047;
+
+ /* Sync */
+- pSiS->EXADriverPtr->accel.WaitMarker = SiSEXASync;
++// pSiS->EXADriverPtr->accel.WaitMarker = SiSEXASync;
+
+ /* Solid fill */
+- pSiS->EXADriverPtr->accel.PrepareSolid = SiSPrepareSolid;
+- pSiS->EXADriverPtr->accel.Solid = SiSSolid;
+- pSiS->EXADriverPtr->accel.DoneSolid = SiSDoneSolid;
++// pSiS->EXADriverPtr->accel.PrepareSolid = SiSPrepareSolid;
++// pSiS->EXADriverPtr->accel.Solid = SiSSolid;
++// pSiS->EXADriverPtr->accel.DoneSolid = SiSDoneSolid;
+
+ /* Copy */
+- pSiS->EXADriverPtr->accel.PrepareCopy = SiSPrepareCopy;
+- pSiS->EXADriverPtr->accel.Copy = SiSCopy;
+- pSiS->EXADriverPtr->accel.DoneCopy = SiSDoneCopy;
++// pSiS->EXADriverPtr->accel.PrepareCopy = SiSPrepareCopy;
++// pSiS->EXADriverPtr->accel.Copy = SiSCopy;
++// pSiS->EXADriverPtr->accel.DoneCopy = SiSDoneCopy;
+
+ /* Composite not supported */
+
+ /* Upload, download to/from Screen */
+- pSiS->EXADriverPtr->accel.UploadToScreen = SiSUploadToScreen;
+- pSiS->EXADriverPtr->accel.DownloadFromScreen = SiSDownloadFromScreen;
++// pSiS->EXADriverPtr->accel.UploadToScreen = SiSUploadToScreen;
++// pSiS->EXADriverPtr->accel.DownloadFromScreen = SiSDownloadFromScreen;
+
+-#else /*xorg>=7.0*/
++//#else /*xorg>=7.0*/
+
+ pSiS->EXADriverPtr->exa_major = 2;
+ pSiS->EXADriverPtr->exa_minor = 0;
+@@ -867,7 +867,7 @@ SiSAccelInit(ScreenPtr pScreen)
+
+ #endif /*end of Xorg>=7.0 EXA Setting*/
+ }
+-#endif /* EXA */
++//#endif /* EXA */
+
+ } /* NoAccel */
+
+@@ -946,11 +946,11 @@ SiSAccelInit(ScreenPtr pScreen)
+ SiSScratchSave, pSiS);
+ if(pSiS->exa_scratch) {
+ pSiS->exa_scratch_next = pSiS->exa_scratch->offset;
+- #if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
+- pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch;
+- #else
++ //#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0)
++ // pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch;
++ //#else
+ pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch;
+- #endif
++ //#endif
+ }
+
+ } else {
+diff -p -up xf86-video-sis-0.9.1/src/sis_dri.c.orig xf86-video-sis-0.9.1/src/sis_dri.c
+--- xf86-video-sis-0.9.1/src/sis_dri.c.orig 2008-11-04 08:27:14.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis_dri.c 2010-01-27 15:21:54.000000000 -0500
+@@ -56,7 +56,8 @@ extern Bool drmSiSAgpInit(int driSubFD,
+
+ #ifdef XORG_VERSION_CURRENT
+ #define SISHAVECREATEBUSID
+-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,7,99,1,0)
++#if 0
++//#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,7,99,1,0)
+ /*I.L. modified*/
+ #ifndef XSERVER_LIBPCIACCESS
+ extern char *DRICreatePCIBusID(pciVideoPtr PciInfo);
+diff -p -up xf86-video-sis-0.9.1/src/sis_driver.c.orig xf86-video-sis-0.9.1/src/sis_driver.c
+--- xf86-video-sis-0.9.1/src/sis_driver.c.orig 2009-06-22 08:15:54.000000000 -0400
++++ xf86-video-sis-0.9.1/src/sis_driver.c 2010-01-27 15:21:54.000000000 -0500
+@@ -140,6 +140,17 @@ static int pix24bpp = 0;
+ * an upper-case version of the driver name.
+ */
+
++#if XSERVER_LIBPCIACCESS
++#define SIS_DEVICE_MATCH(d, i)\
++ {PCI_VENDOR_SIS, (d), PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, (i) }
++
++static const struct pci_id_match SIS_device_match[] = {
++ SIS_DEVICE_MATCH (PCI_CHIP_SIS670, 0),
++ SIS_DEVICE_MATCH (PCI_CHIP_SIS671, 0),
++ {0, 0, 0 },
++ };
++#endif
++
+ #ifdef _X_EXPORT
+ _X_EXPORT
+ #endif
+@@ -147,7 +158,11 @@ DriverRec SIS = {
+ SIS_CURRENT_VERSION,
+ SIS_DRIVER_NAME,
+ SISIdentify,
++#if XSERVER_LIBPCIACCESS
++ NULL,
++#else
+ SISProbe,
++#endif
+ SISAvailableOptions,
+ NULL,
+ 0
+@@ -155,6 +170,11 @@ DriverRec SIS = {
+ ,
+ SISDriverFunc
+ #endif
++#if XSERVER_LIBPCIACCESS
++ ,
++ SIS_device_match,
++ SIS_pci_probe
++#endif
+ };
+
+ static SymTabRec SISChipsets[] = {
+@@ -453,7 +473,94 @@ SISDriverFunc(ScrnInfoPtr pScrn, SISDRIV
+ /****************************************************/
+ /* Probe() */
+ /****************************************************/
++static Bool SIS_pci_probe (DriverPtr driver, int entity_num, struct pci_device *device, intptr_t match_data)
++{
++ ScrnInfoPtr pScrn;
++#ifdef SISDUALHEAD
++ EntityInfoPtr pEnt;
++ Bool foundScreen = FALSE;
++#endif
++xf86DrvMsg(0, X_INFO, "SIS_pci_probe - begin, entity_num=%d\n", entity_num);
++xf86DrvMsg(0, X_INFO, " vendor_id=0x%x\n", device->vendor_id);
++xf86DrvMsg(0, X_INFO, " device_id=0x%x\n", device->device_id);
++xf86DrvMsg(0, X_INFO, " bus=%d\n", device->bus);
++xf86DrvMsg(0, X_INFO, " dev=%d\n", device->dev);
++xf86DrvMsg(0, X_INFO, " func=%d\n", device->func);
++ pScrn = NULL;
++ if((pScrn = xf86ConfigPciEntity(pScrn, 0,
++ entity_num,
++ SISPciChipsets,
++ NULL, NULL, NULL, NULL, NULL))) {
++ xf86DrvMsg(0, X_INFO, "SIS_pci_probe - ConfigPciEntity found\n");
++ /* Fill in what we can of the ScrnInfoRec */
++ pScrn->driverVersion = SIS_CURRENT_VERSION;
++ pScrn->driverName = SIS_DRIVER_NAME;
++ pScrn->name = SIS_NAME;
++ pScrn->Probe = NULL;//SISProbe;
++ pScrn->PreInit = SISPreInit;
++ pScrn->ScreenInit = SISScreenInit;
++ pScrn->SwitchMode = SISSwitchMode;
++ pScrn->AdjustFrame = SISAdjustFrame;
++ pScrn->EnterVT = SISEnterVT;
++ pScrn->LeaveVT = SISLeaveVT;
++ pScrn->FreeScreen = SISFreeScreen;
++ pScrn->ValidMode = SISValidMode;
++ pScrn->PMEvent = SISPMEvent; /*add PM function for ACPI hotkey,Ivans*/
++#ifdef X_XF86MiscPassMessage
++// if(xf86GetVersion() >= XF86_VERSION_NUMERIC(4,3,99,2,0)) {
++// pScrn->HandleMessage = SISHandleMessage;
++// }
++#endif
++ foundScreen = TRUE;
++ }
++ #ifdef SISDUALHEAD
++ pEnt = xf86GetEntityInfo(entity_num);
++xf86DrvMsg(0, X_INFO, "SIS_pci_probe - GetEntityInfo chipset is 0x%x\n",pEnt->chipset);
++ switch(pEnt->chipset) {
++ case PCI_CHIP_SIS300:
++ case PCI_CHIP_SIS540:
++ case PCI_CHIP_SIS630:
++ case PCI_CHIP_SIS550:
++ case PCI_CHIP_SIS315:
++ case PCI_CHIP_SIS315H:
++ case PCI_CHIP_SIS315PRO:
++ case PCI_CHIP_SIS650:
++ case PCI_CHIP_SIS330:
++ case PCI_CHIP_SIS660:
++ case PCI_CHIP_SIS340:
++ case PCI_CHIP_SIS670:
++ case PCI_CHIP_SIS671:
++ case PCI_CHIP_XGIXG40:
++ {
++ SISEntPtr pSiSEnt = NULL;
++ DevUnion *pPriv;
++
++ xf86SetEntitySharable(entity_num);
++ if(SISEntityIndex < 0) {
++ SISEntityIndex = xf86AllocateEntityPrivateIndex();
++ }
++ pPriv = xf86GetEntityPrivate(pScrn->entityList[0], SISEntityIndex);
++ if(!pPriv->ptr) {
++ pPriv->ptr = xnfcalloc(sizeof(SISEntRec), 1);
++ pSiSEnt = pPriv->ptr;
++ memset(pSiSEnt, 0, sizeof(SISEntRec));
++ pSiSEnt->lastInstance = -1;
++ } else {
++ pSiSEnt = pPriv->ptr;
++ }
++ pSiSEnt->lastInstance++;
++ xf86SetEntityInstanceForScreen(pScrn, pScrn->entityList[0],
++ pSiSEnt->lastInstance);
++ }
++ break;
+
++ default:
++ break;
++ }
++#endif /* DUALHEAD */
++xf86DrvMsg(0, X_INFO, "SIS_pci_probe - end\n");
++ return foundScreen;
++}
+
+ static Bool
+ SISProbe(DriverPtr drv, int flags)
+@@ -464,7 +571,7 @@ SISProbe(DriverPtr drv, int flags)
+ int numDevSections;
+ int numUsed, numUsedSiS, numUsedXGI;
+ Bool foundScreen = FALSE;
+-
++xf86DrvMsg(0, X_INFO, "SISPRobe() begin, flags=%d\n", flags);
+ /*
+ * The aim here is to find all cards that this driver can handle,
+ * and for the ones not already claimed by another driver, claim
+@@ -490,6 +597,7 @@ SISProbe(DriverPtr drv, int flags)
+ * There's no matching device section in the config file, so quit
+ * now.
+ */
++ xf86DrvMsg(0, X_INFO, "SISProbe - MatchDevice fail\n");
+ return FALSE;
+ }
+
+@@ -526,14 +634,16 @@ SISProbe(DriverPtr drv, int flags)
+ xfree(devSections);
+
+ numUsed = numUsedSiS + numUsedXGI;
+-
+- if(numUsed <= 0)
++xf86DrvMsg(0, X_INFO, "SISPRobe - test1\n");
++ if(numUsed <= 0) {
++ xf86DrvMsg(0, X_INFO, "SISProbe - MatchPciInstances fail\n");
+ return FALSE;
++ }
+
+ if(flags & PROBE_DETECT) {
+
+ foundScreen = TRUE;
+-
++ xf86DrvMsg(0, X_INFO, "SISProbe - flags already probe");
+ } else for(i = 0; i < numUsed; i++) {
+
+ ScrnInfoPtr pScrn;
+@@ -548,6 +658,7 @@ SISProbe(DriverPtr drv, int flags)
+ (i < numUsedSiS) ? usedChipsSiS[i] : usedChipsXGI[i-numUsedSiS],
+ (i < numUsedSiS) ? SISPciChipsets : XGIPciChipsets,
+ NULL, NULL, NULL, NULL, NULL))) {
++ xf86DrvMsg(0, X_INFO, "SISProbe - ConfigPciEntity found\n");
+ /* Fill in what we can of the ScrnInfoRec */
+ pScrn->driverVersion = SIS_CURRENT_VERSION;
+ pScrn->driverName = SIS_DRIVER_NAME;
+@@ -563,16 +674,16 @@ SISProbe(DriverPtr drv, int flags)
+ pScrn->ValidMode = SISValidMode;
+ pScrn->PMEvent = SISPMEvent; /*add PM function for ACPI hotkey,Ivans*/
+ #ifdef X_XF86MiscPassMessage
+- if(xf86GetVersion() >= XF86_VERSION_NUMERIC(4,3,99,2,0)) {
+- pScrn->HandleMessage = SISHandleMessage;
++ if(xf86GetVersion() >= XF86_VERSION_NUMERIC(4,3,99,2,0)) {
++// pScrn->HandleMessage = SISHandleMessage;
+ }
+ #endif
+ foundScreen = TRUE;
+ }
+-
++xf86DrvMsg(0, X_INFO, "SISProbe - test2\n");
+ #ifdef SISDUALHEAD
+ pEnt = xf86GetEntityInfo((i < numUsedSiS) ? usedChipsSiS[i] : usedChipsXGI[i-numUsedSiS]);
+-
++ xf86DrvMsg(0, X_INFO, "SISProbe - GetEntityInfo done\n");
+ switch(pEnt->chipset) {
+ case PCI_CHIP_SIS300:
+ case PCI_CHIP_SIS540:
+@@ -620,7 +731,7 @@ SISProbe(DriverPtr drv, int flags)
+
+ if(usedChipsSiS) xfree(usedChipsSiS);
+ if(usedChipsXGI) xfree(usedChipsXGI);
+-
++xf86DrvMsg(0, X_INFO, "SISProbe end\n");
+ return foundScreen;
+ }
+
+@@ -1306,7 +1417,11 @@ SiSReadROM(ScrnInfoPtr pScrn)
+ }
+
+ if(readpci) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86ReadPciBIOS(0, pSiS->PciTag, 0, pSiS->BIOS, biossize);
++#else
++ pci_device_read_rom(pSiS->PciInfo, pSiS->BIOS);
++#endif
+ if(SISCheckBIOS(pSiS, mypciid, mypcivendor, biossize)) {
+ found = TRUE;
+ }
+@@ -2224,8 +2339,7 @@ SiSSetSyncRangeFromEdid(ScrnInfoPtr pScr
+ { 2, 0x04, 56.6 },
+ { 2, 0x02, 60.1 },
+ { 2, 0x01, 80.1 }
+- };
+-
++ };
+ const myvddctiming myvtiming[11] = {
+ { 1, 0x02, 56 },
+ { 1, 0x01, 60 },
+@@ -2240,11 +2354,6 @@ SiSSetSyncRangeFromEdid(ScrnInfoPtr pScr
+ { 2, 0x01, 75 }
+ };
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSSetSyncRangeFromEdid\n");
+-#endif
+-
+ if(flag) { /* HSync */
+
+ for(i = 0; i < 4; i++) {
+@@ -2350,12 +2459,6 @@ SiSSetSyncRangeFromEdid(ScrnInfoPtr pScr
+ static Bool
+ SiSAllowSyncOverride(SISPtr pSiS, Bool fromDDC, int mfbcrt)
+ {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSAllowSyncOverride\n");
+-#endif
+-// return TRUE;
+-
+ if(!(pSiS->VBFlags2 & VB2_VIDEOBRIDGE)) return FALSE;
+
+ #ifdef SISDUALHEAD
+@@ -2382,11 +2485,10 @@ SiSAllowSyncOverride(SISPtr pSiS, Bool f
+ }
+ #endif
+
+-// PCF
+-// if(!(pSiS->VBFlags & DISPTYPE_CRT1)) {
++ if(!(pSiS->VBFlags & DISPTYPE_CRT1)) {
+ if( (pSiS->VBFlags & CRT2_TV) ||
+ ((pSiS->VBFlags & CRT2_LCD) && (!fromDDC)) ) return TRUE;
+-// } else if((pSiS->VBFlags & CRT1_LCDA) && (!fromDDC)) return TRUE;
++ } else if((pSiS->VBFlags & CRT1_LCDA) && (!fromDDC)) return TRUE;
+
+ return FALSE;
+ }
+@@ -2394,8 +2496,6 @@ SiSAllowSyncOverride(SISPtr pSiS, Bool f
+ static Bool
+ SiSCheckForH(float hsync, MonPtr monitor)
+ {
+-
+-
+ int i;
+ for(i = 0; i < monitor->nHsync; i++) {
+ if((hsync > monitor->hsync[i].lo * (1.0 - SYNC_TOLERANCE)) &&
+@@ -2409,7 +2509,6 @@ SiSCheckForH(float hsync, MonPtr monitor
+ static Bool
+ SiSCheckForV(float vrefresh, MonPtr monitor)
+ {
+-
+ int i;
+ for(i = 0; i < monitor->nVrefresh; i++) {
+ if((vrefresh > monitor->vrefresh[i].lo * (1.0 - SYNC_TOLERANCE)) &&
+@@ -2424,21 +2523,11 @@ static Bool
+ SiSCheckAndOverruleH(ScrnInfoPtr pScrn, MonPtr monitor)
+ {
+ DisplayModePtr mode = monitor->Modes;
+-// PCF
+ float mymin = 30.0, mymax = 80.0, hsync;
+-
+ Bool doit = FALSE;
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSCheckAndOverruleH\n");
+-#endif
+-
+ for(hsync = mymin; hsync <= mymax; hsync += .5) {
+- if(!SiSCheckForH(hsync, monitor))
+- {
+- doit = TRUE;
+- }
++ if(!SiSCheckForH(hsync, monitor)) doit = TRUE;
+ }
+
+ if(mode) {
+@@ -2461,7 +2550,6 @@ SiSCheckAndOverruleH(ScrnInfoPtr pScrn,
+ return TRUE;
+ }
+
+-
+ return FALSE;
+ }
+
+@@ -2469,20 +2557,11 @@ static Bool
+ SiSCheckAndOverruleV(ScrnInfoPtr pScrn, MonPtr monitor)
+ {
+ DisplayModePtr mode = monitor->Modes;
+-// PCF
+- float mymin = 57.0, mymax = 63.0, vrefresh;
++ float mymin = 59.0, mymax = 61.0, vrefresh;
+ Bool doit = FALSE, ret = FALSE;
+-
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSCheckAndOverruleV\n");
+-#endif
+
+ for(vrefresh = mymin; vrefresh <= mymax; vrefresh += 1.0) {
+- if(!SiSCheckForV(vrefresh, monitor))
+- {
+- doit = TRUE;
+- }
++ if(!SiSCheckForV(vrefresh, monitor)) doit = TRUE;
+ }
+
+ if(mode) {
+@@ -2515,7 +2594,6 @@ SiSCheckAndOverruleV(ScrnInfoPtr pScrn,
+ monitor->nVrefresh++;
+ ret = TRUE;
+ }
+-
+ return ret;
+ }
+
+@@ -2529,11 +2607,6 @@ SiSFixupHVRanges(ScrnInfoPtr pScrn, int
+ static const char *saneh = "Correcting %s CRT%d monitor HSync range\n";
+ static const char *sanev = "Correcting %s CRT%d monitor VRefresh range\n";
+ int crtnum;
+-
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSFixupHVRanges\n");
+-#endif
+
+ #ifdef SISDUALHEAD
+ if(pSiS->DualHeadMode) {
+@@ -2610,8 +2683,7 @@ SiSFixupHVRanges(ScrnInfoPtr pScrn, int
+ }
+ }
+ }
+-// PCF
+-// return TRUE;
++
+ return freqoverruled;
+ }
+
+@@ -2623,11 +2695,6 @@ SiSMakeOwnModeList(ScrnInfoPtr pScrn, Bo
+ Bool isfordvi, Bool *havecustommodes, Bool fakecrt2modes, Bool IsForCRT2)
+ {
+ DisplayModePtr tempmode, delmode, mymodes;
+-
+- // PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSMakeOwnModeList\n");
+-#endif
+
+ if((mymodes = SiSBuildBuiltInModeList(pScrn, includelcdmodes, isfordvi, fakecrt2modes, IsForCRT2))) {
+ if(!acceptcustommodes) {
+@@ -2676,11 +2743,6 @@ SiSSetupModeListParmsCRT1(SISPtr pSiS, u
+ Bool *acceptcustommodes, Bool *includelcdmodes, Bool *isfordvi,
+ Bool *fakecrt2modes, Bool *IsForCRT2, Bool *AllowInterlace)
+ {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSSetupModeListParmsCRT1\n");
+-#endif
+-
+ (*acceptcustommodes) = TRUE; /* Accept user modelines */
+ (*includelcdmodes) = TRUE; /* Include modes reported by DDC */
+ (*isfordvi) = FALSE; /* Is for digital DVI output */
+@@ -2815,11 +2877,6 @@ SiSReplaceModeList(ScrnInfoPtr pScrn, Cl
+ * -) crt2 device is not TV, and
+ * -) crt1 is not LCDA, unless bridge is TMDS/LCDA capable (301C)
+ */
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSReplaceModeList\n");
+-#endif
+-
+
+ if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) {
+
+@@ -2881,11 +2938,6 @@ SiSClearModesPrivate(DisplayModePtr mode
+ {
+ DisplayModePtr tempmode;
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSClearModesPrivate\n");
+-#endif
+-
+ /* Make sure that the Private field is NULL */
+ /* (This way we don't have to care for MergedFB
+ * when freeing the mode; just check the Private
+@@ -2904,11 +2956,6 @@ SiSDuplicateMode(DisplayModePtr source)
+ {
+ DisplayModePtr dest = NULL;
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSDuplicateMode\n");
+-#endif
+-
+ if(source) {
+ if((dest = xalloc(sizeof(DisplayModeRec)))) {
+ memcpy(dest, source, sizeof(DisplayModeRec));
+@@ -2972,11 +3019,6 @@ SiSBuildVesaModeList(ScrnInfoPtr pScrn,
+ SISPtr pSiS = SISPTR(pScrn);
+ int i = 0;
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSBuildVesaModeList\n");
+-#endif
+-
+ while(vbe->VideoModePtr[i] != 0xffff) {
+ sisModeInfoPtr m;
+ VbeModeInfoBlock *mode;
+@@ -3014,7 +3056,7 @@ SiSSetMinMaxPixelClock(ScrnInfoPtr pScrn
+ {
+ SISPtr pSiS = SISPTR(pScrn);
+ MessageType from;
+-
++
+ /* Set the min pixel clock */
+ pSiS->MinClock = 5000;
+ if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) {
+@@ -3061,11 +3103,6 @@ SiSRemoveUnsuitableModes(ScrnInfoPtr pSc
+ int maxUsedClock = 0;
+ static const char *notsuitablestr = "Not using mode \"%s\" (not suitable for %s mode)\n";
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiSRemoveUnsuitableModes\n");
+-#endif
+-
+ if((p = first = initial)) {
+
+ do {
+@@ -3222,11 +3259,6 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ static const char *crtsetupstr = "*************************** CRT%d setup ***************************\n";
+ #endif
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SISPreInit Start\n");
+-#endif
+-
+ if(flags & PROBE_DETECT) {
+
+ vbeInfoPtr pVbe;
+@@ -4716,10 +4748,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ mymax = 8192 * 1024;
+ else if(total <= 32768) /* <= 32MB: Use 16MB for X */
+ mymax = 16384 * 1024;
+- else
+-// PCF /* Otherwise: Use 20MB for X */
+-// mymax = 20 * 1024 * 1024;
+- mymax = 20 * 1024 *1024;
++ else /* Otherwise: Use 20MB for X */
++ mymax = 20 * 1024 * 1024;
+ /* availMem is right now adjusted to not use the UMA
+ * area. Make sure that our default doesn't reach
+ * into the UMA area either.
+@@ -4758,9 +4788,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ if(pScrn->videoRam <= 65536)
+ pSiS->maxxfbmem = 16384 * 1024; /* On >=315 series and <=64MB, use 16MB */
+ else
+-// PCF
+-// pSiS->maxxfbmem = 20 * 1024 * 1024; /* On >=315 series and > 64MB, use 20MB */
+- pSiS->maxxfbmem = 20 * 1024 * 1024;
++ pSiS->maxxfbmem = 20 * 1024 * 1024; /* On >=315 series and > 64MB, use 20MB */
+ } else
+ pSiS->maxxfbmem = 12288 * 1024; /* On <315 series, use 12MB */
+
+@@ -4980,7 +5008,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ * via CRT2.)
+ * (TODO: This might need some modification for the
+ * 307 bridges, if these are capable of driving
+- * LCDs > via channel B)
++ * LCDs > 1600 via channel B)
+ */
+ if((pSiS->SiS_SD_Flags & SiS_SD_SUPPORTLCDA) &&
+ (pSiS->VBFlags & CRT2_LCD) &&
+@@ -4995,10 +5023,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ */
+ if(pSiS->ChipType < SIS_662 || pSiS->ChipType >= XGI_20) pSiS->ForceCRT1Type = CRT1_LCDA;
+ pSiS->ForceCRT2Type = CRT2_TV;
+-// PCF
+-// } else if(pSiS->LCDwidth > 1600) {
+- } else if(pSiS->LCDwidth > 1920) {
+-
++ } else if(pSiS->LCDwidth > 1600) {
+ /* If LCD is > 1600, default to LCDA if we don't need CRT1/VGA for other head */
+ Bool NeedCRT1VGA = FALSE;
+ #ifdef SISDUALHEAD
+@@ -5591,11 +5616,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ clockRanges->minClock = pSiS->MinClock;
+ clockRanges->maxClock = pSiS->MaxClock;
+ clockRanges->clockIndex = -1; /* programmable */
+-// PCF
+-// clockRanges->interlaceAllowed = TRUE;
+-// clockRanges->doubleScanAllowed = TRUE;
+- clockRanges->interlaceAllowed = FALSE;
+- clockRanges->doubleScanAllowed = FALSE;
++ clockRanges->interlaceAllowed = TRUE;
++ clockRanges->doubleScanAllowed = TRUE;
+
+ /* Replace default mode list */
+ SiSReplaceModeList(pScrn, clockRanges, FALSE);
+@@ -5623,11 +5645,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ break;
+ case SIS_300_VGA:
+ case SIS_315_VGA:
+-// PCF
+ maxpitch = 4088;
+- maxheight = 4096;
+-// maxpitch = 1600;
+-// maxheight = 1200;
++ maxheight = 4096;
+ break;
+ default:
+ maxpitch = 2048;
+@@ -5688,12 +5707,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ pScrn->monitor->DDC = NULL;
+ }
+ #endif
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"xf86ValidateModes Start\n");
+- xf86DrvMsg(0, X_INFO,"virtualX = %d, virtualY = %d, maxpitch = %d, maxheight = %d, maxxfbmem = %ld \n",
+- pScrn->display->virtualX,pScrn->display->virtualY,maxpitch,maxheight,pSiS->maxxfbmem/1024);
+-#endif
++
+ i = xf86ValidateModes(pScrn,
+ pScrn->monitor->Modes,
+ pScrn->display->modes,
+@@ -5703,13 +5717,9 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ pScrn->bitsPerPixel * 8,
+ minheight, maxheight,
+ pScrn->display->virtualX,
+- pScrn->display->virtualY,
++ pScrn->display->virtualY,
+ pSiS->maxxfbmem,
+ LOOKUP_BEST_REFRESH);
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"xf86ValidateModes End\n");
+-#endif
+
+ pScrn->monitor->DDC = backupddc;
+ }
+@@ -5745,28 +5755,17 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ #endif
+
+ /* Prune the modes marked as invalid */
+-// PCF
+-// xf86DrvMsg(0, X_INFO,"xf86PruneDriverModes Start\n");
+ xf86PruneDriverModes(pScrn);
+-// xf86DrvMsg(0, X_INFO,"xf86PruneDriverModes End\n");
+-
+
+ if(i == 0 || pScrn->modes == NULL) {
+ SISErrorLog(pScrn, "No valid modes found - check VertRefresh/HorizSync\n");
+ goto my_error_1;
+ }
+
+-// PCF
+-// xf86DrvMsg(0, X_INFO,"xf86SetCrtcForModes Start\n");
+ xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
+-// xf86DrvMsg(0, X_INFO,"xf86SetCrtcForModes End\n");
+-
+
+ /* Clear the modes' Private field */
+-// PCF
+-// xf86DrvMsg(0, X_INFO,"SiSClearModesPrivate Start\n");
+ SiSClearModesPrivate(pScrn->modes);
+-// xf86DrvMsg(0, X_INFO,"SiSClearModesPrivate End\n");
+
+ /* Save virtualX/Y calculated by ValidateModes
+ * and overwrite them with our values assumed to
+@@ -5823,23 +5822,9 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ }
+
+ if(usemyprint) {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SiSPrintModes Start\n");
+-#endif
+ SiSPrintModes(pScrn, printfreq);
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SiSPrintModes End\n");
+-#endif
+ } else {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"xf86PrintModes Start\n");
+-#endif
+ xf86PrintModes(pScrn);
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"xf86PrintModes End\n");
+-#endif
+ }
+ }
+
+@@ -6072,10 +6057,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+
+ /*xf86DrvMsg(0,X_INFO,"CurrentMode=%d. \n",pSiS->Hkey_Device_Switch_State);
+ xf86DrvMsg(0,X_INFO,"Init_VBFlags=0X%x. \n",pSiS->VBFlags);*/
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0,X_INFO,"SISPreInit End\n");
+-#endif
++
+ return TRUE;
+
+ /* ---- */
+@@ -7523,9 +7505,7 @@ SiSPreSetMode(ScrnInfoPtr pScrn, Display
+ xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, SISVERBLEVEL, "VBFlags=0x%x\n", pSiS->VBFlags);
+
+ CR30 = 0x00;
+-// PCF
+-// CR31 &= ~0x60; /* Clear VB_Drivermode & VB_OutputDisable */
+- CR31 &= ~0x20; /* Clear VB_Drivermode & VB_OutputDisable */
++ CR31 &= ~0x60; /* Clear VB_Drivermode & VB_OutputDisable */
+ CR31 |= 0x04; /* Set VB_NotSimuMode (not for 30xB/1400x1050?) */
+ CR35 = 0x00;
+
+@@ -8633,11 +8613,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISEntPtr pSiSEnt = NULL;
+ #endif
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit\n");
+-#endif
+-
+ andSISIDXREG(SISCR,0x11,0x7f); /* Unlock CRTC registers */
+
+ SISModifyModeInfo(mode); /* Quick check of the mode parameters */
+@@ -8647,14 +8622,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ }
+
+ if(pSiS->UseVESA) { /* With VESA: */
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit UseVESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit UseVESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit UseVESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit UseVESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit UseVESA\n");
+-#endif
+
+ #ifdef SISDUALHEAD
+ /* No dual head mode when using VESA */
+@@ -8679,7 +8646,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSSetVESAMode() failed\n");
+ return FALSE;
+ }
+-
+ sisSaveUnlockExtRegisterLock(pSiS, NULL, NULL);
+ if(pSiS->VGAEngine == SIS_300_VGA || pSiS->VGAEngine == SIS_315_VGA) {
+ SiSPreSetMode(pScrn, mode, SIS_MODE_SIMU);
+@@ -8697,21 +8663,11 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SiSVGAProtect(pScrn, TRUE);
+ (*pSiS->SiSRestore)(pScrn, &pSiS->ModeReg);
+ SiSVGAProtect(pScrn, FALSE);
+-// xf86DrvMsg(0, X_INFO,"VESA DualHeadMode SetMode\n");
++
+ } else { /* Without VESA: */
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit Without VESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Without VESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Without VESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Without VESA\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Without VESA\n");
+-#endif
+
+ #ifdef SISDUALHEAD
+ if(pSiS->DualHeadMode) {
+-
+- xf86DrvMsg(0, X_INFO,"SISModeInit DualHeadMode\n");
+
+ if(!(*pSiS->ModeInit)(pScrn, mode)) {
+ SISErrorLog(pScrn, "ModeInit() failed\n");
+@@ -8730,10 +8686,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSBIOSSetModeCRT2() failed\n");
+ return FALSE;
+ }
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"DualHeadMode SetCRT2\n");
+-#endif
+ SiSPostSetMode(pScrn, &pSiS->ModeReg);
+ if(pSiSEnt->pScrn_2) {
+ /* No need to go through pScrn->AdjustFrame; the coords
+@@ -8752,11 +8704,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSBIOSSetModeCRT1() failed\n");
+ return FALSE;
+ }
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"DualHeadMode SetCRT1\n");
+-#endif
+-
+ SiS_SiSLVDSBackLight(pSiS, TRUE);
+ SiSPostSetMode(pScrn, &pSiS->ModeReg);
+ if(pSiSEnt->pScrn_1) {
+@@ -8771,20 +8718,8 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+
+ } else {
+ #endif
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit Other\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Other\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Other\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Other\n");
+- xf86DrvMsg(0, X_INFO,"SISModeInit Other\n");
+-#endif
+
+ if(pSiS->VGAEngine == SIS_300_VGA || pSiS->VGAEngine == SIS_315_VGA) {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit SIS_315_VGA\n");
+-#endif
+
+ if(!(*pSiS->ModeInit)(pScrn, mode)) {
+ SISErrorLog(pScrn, "ModeInit() failed\n");
+@@ -8795,10 +8730,7 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+
+ #ifdef SISMERGED
+ if(pSiS->MergedFB) {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit SISMERGED\n");
+-#endif
++
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Setting MergedFB mode %dx%d\n",
+ mode->HDisplay, mode->VDisplay);
+
+@@ -8813,10 +8745,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSBIOSSetModeCRT1() failed\n");
+ return FALSE;
+ }
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISMERGED SetCRT1\n");
+-#endif
+
+ SiSPreSetMode(pScrn, mode, SIS_MODE_CRT2);
+
+@@ -8827,10 +8755,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSBIOSSetModeCRT2() failed\n");
+ return FALSE;
+ }
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISMERGED SetCRT2\n");
+-#endif
+
+ SiS_SiSLVDSBackLight(pSiS, TRUE);
+
+@@ -8838,25 +8762,9 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+
+ } else {
+ #endif
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit Not SISMERGED\n");
+-#endif
+
+ if((pSiS->VBFlags & CRT1_LCDA) || (!(mode->type & M_T_DEFAULT))) {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit #1\n");
+- if(pSiS->VBFlags & CRT1_LCDA)
+- {
+- xf86DrvMsg(0, X_INFO,"SISModeInit #1 LCDA\n");
+-
+- }
+- else
+- {
+- xf86DrvMsg(0, X_INFO,"SISModeInit #1 LCDB\n");
+- }
+-#endif
++
+ pSiS->SiS_Pr->SiS_EnableBackLight = FALSE;
+
+ SiSPreSetMode(pScrn, mode, SIS_MODE_CRT1);
+@@ -8867,10 +8775,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSBIOSSetModeCRT1() failed\n");
+ return FALSE;
+ }
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"NoVESA SetCRT1\n");
+-#endif
+
+ SiSPreSetMode(pScrn, mode, SIS_MODE_CRT2);
+
+@@ -8880,28 +8784,10 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ SISErrorLog(pScrn, "SiSBIOSSetModeCRT2() failed\n");
+ return FALSE;
+ }
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"NoVESA SetCRT2\n");
+-#endif
+-
+
+ SiS_SiSLVDSBackLight(pSiS, TRUE);
+
+ } else {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit #2\n");
+-
+- if(pSiS->VBFlags & CRT1_LCDA)
+- {
+- xf86DrvMsg(0, X_INFO,"SISModeInit #2 LCDA\n");
+- }
+- else
+- {
+- xf86DrvMsg(0, X_INFO,"SISModeInit #2 LCDB\n");
+- }
+-#endif
+
+ pSiS->SiS_Pr->SiS_EnableBackLight = TRUE;
+
+@@ -8918,11 +8804,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ #ifdef SISMERGED
+ }
+ #endif
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit #3\n");
+-#endif
+-
+ SiSPostSetMode(pScrn, &pSiS->ModeReg);
+ #ifdef TWDEBUG
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VBFlags %lx\n", pSiS->VBFlags);
+@@ -8932,10 +8813,6 @@ SISModeInit(ScrnInfoPtr pScrn, DisplayMo
+ #endif
+
+ } else {
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO,"SISModeInit Old method\n");
+-#endif
+
+ /* For other chipsets, use the old method */
+
+@@ -9147,7 +9024,7 @@ SISSaveScreenDH(ScreenPtr pScreen, int m
+ static void
+ SISDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags)
+ {
+- SISPtr pSiS = SISPTR(pScrn);
++ SISPtr pSiS = SISPTR(pScrn);
+ Bool docrt1 = TRUE, docrt2 = TRUE, backlight = TRUE;
+ UChar sr1=0, cr17=0, cr63=0, pmreg=0, sr7=0;
+ UChar p1_13=0, p2_0=0, oldpmreg=0;
+@@ -10237,7 +10114,6 @@ SISScreenInit(int scrnIndex, ScreenPtr p
+ static Bool
+ SiSValidLCDUserMode(SISPtr pSiS, unsigned int VBFlags, DisplayModePtr mode, Bool isforlcda)
+ {
+-
+ if(mode->Flags & V_INTERLACE) return FALSE;
+
+ if(mode->HDisplay > 2048) return FALSE;
+@@ -10352,7 +10228,7 @@ SiS_CheckModeCRT1(ScrnInfoPtr pScrn, Dis
+ }
+
+ }
+-
++
+ return(SiS_GetModeID(pSiS->VGAEngine, VBFlags, mode->HDisplay, mode->VDisplay,
+ i, pSiS->FSTN, pSiS->LCDwidth, pSiS->LCDheight));
+ }
+@@ -10370,12 +10246,8 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, Dis
+ xf86DrvMsg(0, X_INFO, "Inside CheckCalcModeIndex (VBFlags %lx, mode %dx%d)\n",
+ VBFlags,mode->HDisplay, mode->VDisplay);
+ #endif
++
+ if(VBFlags & CRT2_LCD) { /* CRT2 is LCD */
+-
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0, X_INFO, "SiS_CheckModeCRT2 LCDwidth= %d, LCDheight= %d\n",pSiS->LCDwidth,pSiS->LCDheight);
+-#endif
+
+ if((pSiS->VBFlags2 & VB2_SISTMDSBRIDGE) && (!(pSiS->VBFlags2 & VB2_30xBDH))) {
+
+@@ -10403,7 +10275,6 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, Dis
+ return 0xfe;
+
+ }
+-// PCF
+
+ if( ((mode->HDisplay <= pSiS->LCDwidth) &&
+ (mode->VDisplay <= pSiS->LCDheight)) ||
+@@ -10415,15 +10286,11 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, Dis
+ (((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
+ ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) ||
+ ((pSiS->EnablePanel_1366x768)&&(pSiS->LCDwidth==1366)&&(mode->HDisplay==1368))) {/*let 1366x768 mode valid. Ivans@090109*/
+-/*
+- if( (mode->HDisplay <= pSiS->LCDwidth) &&
+- (mode->VDisplay <= pSiS->LCDheight)) {
+-*/
++
+ ModeIndex = SiS_GetModeID_LCD(pSiS->VGAEngine, VBFlags, mode->HDisplay, mode->VDisplay, i,
+ pSiS->FSTN, pSiS->SiS_Pr->SiS_CustomT, pSiS->LCDwidth, pSiS->LCDheight,
+ pSiS->VBFlags2);
+-// PCF
+-// xf86DrvMsg(0, X_INFO, "SiS_CheckModeCRT2 LCDwidth= %d, LCDheight= %d, ModeID= %x\n",pSiS->LCDwidth,pSiS->LCDheight,ModeIndex);
++
+ }
+
+ } else if(VBFlags & CRT2_TV) { /* CRT2 is TV */
+@@ -10514,7 +10381,7 @@ SISValidMode(int scrnIndex, DisplayModeP
+ if(SiS_CheckModeCRT2(pScrn, mode, pSiS->VBFlags,
+ pSiS->VBFlags3, pSiS->HaveCustomModes) < 0x14){
+ #ifdef TWDEBUG
+- xf86DrvMsg(0,X_INFO,"[SISValidMode()]: else condition. passing CheckModeCRT2 and MODE_Fail.\n");
++ xf86DrvMsg(0,X_INFO,"[SISValidMode()]: else condition. passing CheckModeCRT2 and MODE_OK.\n");
+ #endif
+ return MODE_BAD;
+ }
+@@ -10629,18 +10496,12 @@ SISSwitchMode(int scrnIndex, DisplayMode
+ * (In non-MergedFB mode this is also here in order
+ * to get a cheap update of the HWCursor image)
+ */
+-
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0,X_INFO,"SISSwitchMode\n");
+-#endif
+
+ if(!pSiS->skipswitchcheck) {
+ if(SISValidMode(scrnIndex, mode, TRUE, flags) != MODE_OK) {
+ return FALSE;
+ }
+ }
+-
+ /* Mark for 3D full-screen bug */
+ /*
+ #ifdef XF86DRI
+@@ -11510,12 +11371,6 @@ SISHotkeySwitchMode(ScrnInfoPtr pScrn, B
+ int dotclock=65146;
+ int hdisplay=1024;
+
+-// PCF
+-#ifdef TWDEBUG
+- xf86DrvMsg(0,X_INFO,"SISHotkeySwitchMode\n");
+-#endif
+-
+-
+ if(!VidModeGetCurrentModeline(pScrn->scrnIndex,&hkeymode,&dotClock))
+ return FALSE;
+
+diff -p -up xf86-video-sis-0.9.1/src/sis_driver.h.orig xf86-video-sis-0.9.1/src/sis_driver.h
+--- xf86-video-sis-0.9.1/src/sis_driver.h.orig 2008-09-02 10:19:02.000000000 -0400
++++ xf86-video-sis-0.9.1/src/sis_driver.h 2010-01-27 15:21:54.000000000 -0500
+@@ -779,6 +779,9 @@ static Bool SISSwitchMode(int scrnIndex,
+ static void SISNewAdjustFrame(int scrnIndex, int x, int y, int flags);
+ static Bool SISPMEvent(int scrnIndex, pmEvent event, Bool undo);/*APM-ACPI, adding by Ivans.*/
+
++#if XSERVER_LIBPCIACCESS
++static Bool SIS_pci_probe(DriverPtr driver, int entity_num, struct pci_device *device, intptr_t match_data);
++#endif
+ /* ACPI Device Switch functions */
+ static Bool SISHotkeySwitchCRT1Status(ScrnInfoPtr pScrn,int onoff);/*hotkey pressing: switch CRT1 on/off*/
+ static Bool SISHotkeySwitchCRT2Status(ScrnInfoPtr pScrn,ULong newvbflags ,ULong newvbflags3);/*LCD on/off*/
diff --git a/extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-dump-regs-after-video-init.patch b/extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-dump-regs-after-video-init.patch
new file mode 100644
index 000000000..415985921
--- /dev/null
+++ b/extra/xf86-video-sisimedia/xf86-video-sis-0.9.1-dump-regs-after-video-init.patch
@@ -0,0 +1,89 @@
+--- xf86-video-sis-0.9.1/src/sis_driver.c.orig 2010-01-18 13:17:56.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis_driver.c 2010-01-25 16:35:40.000000000 -0500
+@@ -11677,7 +11677,64 @@ SISPMEvent(int scrnIndex, pmEvent event,
+ return 1;/*TRUE*/
+ }
+
++void
++sis_print_registers(SISPtr pSiS)
++{
++#define print(...) xf86ErrorFVerb(1, __VA_ARGS__)
++ auto void print_range(char *name, int base, int first, int last) {
++ int i, j;
++ unsigned char c;
++ char buffer[9];
++ print("%s:\n", name);
++ buffer[8] = 0;
++ for (i = first; i <= last; i++) {
++ inSISIDXREG(base, i, c);
++ for (j = 0; j < 8; j++)
++ buffer[7 - j] = c & (1 << j) ? '1' : '0';
++ print("\t%02x: %02x:%s\n", i, c, buffer);
++ }
++ }
+
++ auto void print_range_int(char *name, int base, int first, int last) {
++ int i, j;
++ unsigned int l;
++ char buffer[33];
++ print("%s:\n", name);
++ buffer[32] = 0;
++ for (i = first; i <= last; i += 4) {
++ l = inSISREGL(base + i);
++ for (j = 0; j < 32; j++)
++ buffer[31 - j] = l & (1 << j) ? '1' : '0';
++ print("\t%02x: %08x:%s\n", i, l, buffer);
++ }
++ }
+
+-
+-
++ print_range_int ("PCI: CNF00 - CNF1B", pSiS->RelIO, 0x00, 0x1b);
++ print_range_int ("PCI: CNF2C - CNF47", pSiS->RelIO, 0x2C, 0x47);
++ print_range_int ("AGP: CNF50 - CNF5B", pSiS->RelIO, 0x50, 0x5B);
++ print_range ("CRT1: SR05 - SR12", SISSR, 0x05, 0x12);
++ print_range ("CRT1: SR13 - SR16 (reserved)", SISSR, 0x13, 0x16);
++ print ("CRT1: SR19 - SR1A (reserved)\n");
++ print_range ("CRT1: SR1B - SR3A", SISSR, 0x1b, 0x3a);
++ print ("CRT1: SR3B (reserved)\n");
++ print_range ("CRT1: SR3C - SR3F", SISSR, 0x3c, 0x3f);
++ print_range ("CRT1: CR19 - CR1A", SISCR, 0x19, 0x1a);
++ print ("CRT1: CR1B - CR27 (undocumented?)\n");
++ print_range ("CRT1: CR28 - CR2E", SISCR, 0x28, 0x2e);
++ print ("CRT1: CR2F (reserved)\n");
++ print_range ("VGA BIOS: CR30 - CR3F", SISCR, 0x30, 0x3f);
++ print_range ("CRT1: CR40 - CR43", SISCR, 0x40, 0x43);
++ print ("CRT1: CR44 - CR45 (reserved)\n");
++ print_range ("CRT1: CR46 - CR67", SISCR, 0x46, 0x67);
++ print ("CRT1: CR68 - CR6F (DRAM registers reserved for backward compatibility with 760)\n");
++ print ("CRT1: CR70 - CR77 (undocumented?)\n");
++ print_range ("SMA BIOS: CR78 - CR7F", SISCR, 0x78, 0x7f);
++ print_range_int ("CRT1: CR80 - CR9B", SISCR, 0x80, 0xb3);
++ print_range_int ("CRT1: CRC0 - CRF3", SISCR, 0xc0, 0xf3);
++ print_range ("CRT2: SIGNAL REGISTERS, PART1 00 - 45", SISPART1, 0x00, 0x45);
++ print_range ("CRT2: TV SIGNAL REGISTERS, PART2 00 - 4d", SISPART2, 0x00, 0x4d);
++ print_range ("CRT2: TV COPY PROTECTION, PART3 00 - 40", SISPART3, 0x00, 0x40);
++ print_range ("CRT2: SIGNAL REGISTERS, PART4 00 - 3A", SISPART4, 0x00, 0x3a);
++ print_range ("CRT2: PALETTE SIGNAL REGISTERS, PART5 00 - 00 (?)", SISPART5, 0x00, 0x00);
++#undef print
++}
+--- xf86-video-sis-0.9.1/src/sis_video.c.orig 2010-01-18 13:17:56.000000000 -0500
++++ xf86-video-sis-0.9.1/src/sis_video.c 2010-01-26 13:38:13.000000000 -0500
+@@ -129,6 +129,8 @@
+
+ #include "sis_video.h"
+
++extern void sis_print_registers(SISPtr pSiS);
++
+ void SiSInitMC(ScreenPtr pScreen);
+
+ /*********************************
+@@ -712,6 +714,8 @@ SISResetVideo(ScrnInfoPtr pScrn)
+ #ifdef SISMERGED
+ pPriv->mustresettap2 = TRUE;
+ #endif
++
++ sis_print_registers(pSiS);
+ }
+
+
diff --git a/extra/xf86-video-sisimedia/xserver19.patch b/extra/xf86-video-sisimedia/xserver19.patch
new file mode 100644
index 000000000..67ef6f585
--- /dev/null
+++ b/extra/xf86-video-sisimedia/xserver19.patch
@@ -0,0 +1,30 @@
+Index: xf86-video-sis-0.9.1/src/sis_driver.c
+===================================================================
+--- xf86-video-sis-0.9.1.orig/src/sis_driver.c
++++ xf86-video-sis-0.9.1/src/sis_driver.c
+@@ -85,7 +85,6 @@
+ #include "shadowfb.h"
+ #include "fb.h"
+ #include "micmap.h"
+-#include "mibank.h"
+ #include "mipointer.h"
+ #include "mibstore.h"
+ #include "edid.h"
+Index: xf86-video-sis-0.9.1/src/sis_mergedfb.c
+===================================================================
+--- xf86-video-sis-0.9.1.orig/src/sis_mergedfb.c
++++ xf86-video-sis-0.9.1/src/sis_mergedfb.c
+@@ -2948,11 +2948,11 @@ SiSXineramaExtensionInit(ScrnInfoPtr pSc
+
+ while(SiSXineramaGeneration != serverGeneration) {
+
+- ClientType = CreateNewResourceType(SiSXineramaFreeClient);
++ ClientType = CreateNewResourceType(SiSXineramaFreeClient, "XineramaClient");
+ if(!ClientType)
+ break;
+
+- EventType = CreateNewResourceType(SiSXineramaFreeEvents);
++ EventType = CreateNewResourceType(SiSXineramaFreeEvents, "XineramaEvents");
+ if(!EventType)
+ break;
+
diff --git a/extra/xf86-video-sisusb/PKGBUILD b/extra/xf86-video-sisusb/PKGBUILD
new file mode 100644
index 000000000..2f60b97b4
--- /dev/null
+++ b/extra/xf86-video-sisusb/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140300 2011-10-11 21:28:37Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sisusb
+pkgver=0.9.4
+pkgrel=5
+pkgdesc="X.org SiS USB video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+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/PKGBUILD b/extra/xf86-video-tdfx/PKGBUILD
new file mode 100644
index 000000000..b14b9c702
--- /dev/null
+++ b/extra/xf86-video-tdfx/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 140298 2011-10-11 21:28:35Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tdfx
+pkgver=1.4.3
+pkgrel=7
+pkgdesc="X.org tdfx video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'tdfx-dri')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.10.99.902')
+options=(!libtool)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ copyright.patch)
+md5sums=('8161bbf2b100c21b609163f0010766b3'
+ 'a3be7ac534ceb846d3f155ddbe14378f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/copyright.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/extra/xf86-video-trident/PKGBUILD b/extra/xf86-video-trident/PKGBUILD
new file mode 100644
index 000000000..94b915cbe
--- /dev/null
+++ b/extra/xf86-video-trident/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140296 2011-10-11 21:28:33Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-trident
+pkgver=1.3.4
+pkgrel=5
+pkgdesc="X.org Trident video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.99.902')
+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}/"
+}
diff --git a/extra/xf86-video-tseng/PKGBUILD b/extra/xf86-video-tseng/PKGBUILD
new file mode 100644
index 000000000..7701c55a3
--- /dev/null
+++ b/extra/xf86-video-tseng/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140294 2011-10-11 21:28:31Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tseng
+pkgver=1.2.4
+pkgrel=5
+pkgdesc="X.org tseng video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ fix-regression-from-pciaccess-conversion.patch)
+sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7'
+ 'df7660ec18cce3e9f04a7c70f72c75daa947e4a9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-regression-from-pciaccess-conversion.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/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..f5812b9fa
--- /dev/null
+++ b/extra/xf86-video-unichrome/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140292 2011-10-11 21:28:27Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-unichrome
+pkgver=0.2.7
+pkgrel=6
+_gitversion=b917bee87db8a65b8e8da0ca12c24a176c9e9fb2
+pkgdesc="Unichrome video drivers for X.Org"
+arch=(i686 x86_64 'mips64el')
+url="http://unichrome.sf.net/"
+license=('custom')
+depends=('glibc' 'unichrome-dri')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libx11' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc' 'glproto')
+options=('!libtool')
+conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.10.99.902')
+source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2)
+md5sums=('f7adef052de08a01af86e245d1932239')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_gitversion}"
+ ./autogen.sh --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 debian/copyright "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
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..24c61207a
--- /dev/null
+++ b/extra/xf86-video-v4l/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 140290 2011-10-11 21:28:21Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-v4l
+pkgver=0.2.0
+pkgrel=9
+pkgdesc="X.org v4l video driver"
+arch=(i686 x86_64 'mips64el')
+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
+ git-fixes.patch
+ LICENSE)
+md5sums=('2251ae2a0a905764941cd7b098e85ad1'
+ 'cdb7113a9564ea9202e847de88440540'
+ '7d4d018f6bbff7e42672d1aabc75c5cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+ autoreconf -fi
+ ./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..c4f795970
--- /dev/null
+++ b/extra/xf86-video-vesa/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 140592 2011-10-17 09:55:09Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-vesa
+pkgver=2.3.0
+pkgrel=7
+pkgdesc="X.org vesa video driver"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel>=1.10.99.902')
+conflicts=('xorg-server<1.10.99.902')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch
+ revert-kernelcheck.patch)
+sha1sums=('4689b7c295d7a8d7326302dafecb812739617134'
+ '1e54ae50daa796ab0c29c8088f25e522dc6faa4a'
+ 'c14454521ac91aaa08aad8a6025d7720a613d54b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+ patch -Np1 -R -i "${srcdir}/revert-kernelcheck.patch"
+ autoreconf -fi
+ ./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-vesa/git-fixes.patch b/extra/xf86-video-vesa/git-fixes.patch
new file mode 100644
index 000000000..c4f442265
--- /dev/null
+++ b/extra/xf86-video-vesa/git-fixes.patch
@@ -0,0 +1,444 @@
+diff --git a/COPYING b/COPYING
+index 22b4b13..f101fb8 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,4 +1,5 @@
+ Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
++Copyright 2008 Red Hat, Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+diff --git a/configure.ac b/configure.ac
+index ff4713d..2e4f542 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,45 +20,44 @@
+ #
+ # Process this file with autoconf to produce a configure script
+
+-AC_PREREQ(2.57)
++# Initialize Autoconf
++AC_PREREQ([2.60])
+ AC_INIT([xf86-video-vesa],
+- 2.3.0,
++ [2.3.0],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+- xf86-video-vesa)
+-
++ [xf86-video-vesa])
+ AC_CONFIG_SRCDIR([Makefile.am])
+-AM_CONFIG_HEADER([config.h])
++AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR(.)
+
++# Initialize Automake
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-
+ AM_MAINTAINER_MODE
+
+-# Require xorg-macros: XORG_DEFAULT_OPTIONS
++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+- [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+-XORG_MACROS_VERSION(1.3)
++ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
++XORG_MACROS_VERSION(1.8)
+ XORG_DEFAULT_OPTIONS
+
+-# Checks for programs.
++# Initialize libtool
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-AC_PROG_CC
+
+ AH_TOP([#include "xorg-server.h"])
+
++# Define a configure option for an alternate module directory
+ AC_ARG_WITH(xorg-module-dir, [ --with-xorg-module-dir=DIR ],
+ [ moduledir="$withval" ],
+ [ moduledir="$libdir/xorg/modules" ])
+ AC_SUBST(moduledir)
+
+-
+-# Checks for extensions
++# Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+-# Checks for pkg-config packages
++# Obtain compiler/linker options for the driver dependencies
+ PKG_CHECK_MODULES(XORG, xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES)
+ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
+ HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
+@@ -93,21 +92,14 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+ fi
+ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
+-CFLAGS="$CFLAGS $XORG_CFLAGS "' -I$(top_srcdir)/src'
+-INCLUDES="$XORG_INCS "'-I$(top_srcdir)/src'
+-AC_SUBST([CFLAGS])
+-AC_SUBST([INCLUDES])
+-
+ # Checks for libraries.
+
+-# Checks for header files.
+-AC_HEADER_STDC
+-
+ DRIVER_NAME=vesa
+ AC_SUBST([DRIVER_NAME])
+
+-AC_OUTPUT([
+- Makefile
+- src/Makefile
+- man/Makefile
++AC_CONFIG_FILES([
++ Makefile
++ src/Makefile
++ man/Makefile
+ ])
++AC_OUTPUT
+diff --git a/man/Makefile.am b/man/Makefile.am
+index f0eb29b..b3688ce 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -1,27 +1,24 @@
+ #
+ # 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.
++#
++# 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
++# 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.
+ #
+
+ drivermandir = $(DRIVER_MAN_DIR)
+@@ -34,25 +31,11 @@ EXTRA_DIST = @DRIVER_NAME@.man
+
+ CLEANFILES = $(driverman_DATA)
+
+-SED = sed
+
+-# Strings to replace in man pages
+-XORGRELSTRING = @PACKAGE_STRING@
+- XORGMANNAME = X Version 11
++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+
+-MAN_SUBSTS = \
+- -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+- -e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+- -e 's|__xservername__|Xorg|g' \
+- -e 's|__xconfigfile__|xorg.conf|g' \
+- -e 's|__projectroot__|$(prefix)|g' \
+- -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
+- -e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \
+- -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
+- -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
+- -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
+
+ SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
+
+ .man.$(DRIVER_MAN_SUFFIX):
+- sed $(MAN_SUBSTS) < $< > $@
++ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+diff --git a/man/vesa.man b/man/vesa.man
+index 19cb766..ce4b369 100644
+--- a/man/vesa.man
++++ b/man/vesa.man
+@@ -1,4 +1,3 @@
+-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.man,v 1.2 2001/01/27 18:20:56 dawes Exp $
+ .\" shorthand for double quote that works everywhere.
+ .ds q \N'34'
+ .TH VESA __drivermansuffix__ __vendorversion__
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 88da8a2..dc702f0 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -24,6 +24,9 @@
+ # -avoid-version prevents gratuitous .0.0.0 version numbers on the end
+ # _ladir passes a dummy rpath to libtool so the thing will actually link
+ # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
++
++AM_CFLAGS = $(XORG_CFLAGS) $(PCIACCESS_CFLAGS)
++
+ vesa_drv_la_LTLIBRARIES = vesa_drv.la
+ vesa_drv_la_LDFLAGS = -module -avoid-version
+ vesa_drv_ladir = @moduledir@/drivers
+diff --git a/src/vesa.c b/src/vesa.c
+index 034a019..61d3550 100644
+--- a/src/vesa.c
++++ b/src/vesa.c
+@@ -281,7 +281,7 @@ static VESAPtr
+ VESAGetRec(ScrnInfoPtr pScrn)
+ {
+ if (!pScrn->driverPrivate)
+- pScrn->driverPrivate = xcalloc(sizeof(VESARec), 1);
++ pScrn->driverPrivate = calloc(sizeof(VESARec), 1);
+
+ return ((VESAPtr)pScrn->driverPrivate);
+ }
+@@ -296,7 +296,7 @@ VESASetModeParameters(vbeInfoPtr pVbe, DisplayModePtr vbemode,
+
+ data = (VbeModeInfoData *)vbemode->Private;
+
+- data->block = xcalloc(sizeof(VbeCRTCInfoBlock), 1);
++ data->block = calloc(sizeof(VbeCRTCInfoBlock), 1);
+ data->block->HorizontalTotal = ddcmode->HTotal;
+ data->block->HorizontalSyncStart = ddcmode->HSyncStart;
+ data->block->HorizontalSyncEnd = ddcmode->HSyncEnd;
+@@ -317,6 +317,30 @@ VESASetModeParameters(vbeInfoPtr pVbe, DisplayModePtr vbemode,
+ (double)(ddcmode->HTotal * ddcmode->VTotal));
+ }
+
++/*
++ * Despite that VBE gives you pixel granularity for mode sizes, some BIOSes
++ * think they can only give sizes in multiples of character cells; and
++ * indeed, the reference CVT and GTF formulae only give results where
++ * (h % 8) == 0. Whatever, let's just try to cope. What we're looking for
++ * here is cases where the display says 1366x768 and the BIOS says 1360x768.
++ */
++static Bool
++vesaModesCloseEnough(DisplayModePtr edid, DisplayModePtr vbe)
++{
++ if (!(edid->type & M_T_DRIVER))
++ return FALSE;
++
++ /* never seen a height granularity... */
++ if (edid->VDisplay != vbe->VDisplay)
++ return FALSE;
++
++ if (edid->HDisplay >= vbe->HDisplay &&
++ (edid->HDisplay & ~7) == (vbe->HDisplay & ~7))
++ return TRUE;
++
++ return FALSE;
++}
++
+ static ModeStatus
+ VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass)
+ {
+@@ -358,9 +382,7 @@ VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass)
+ */
+ if (pScrn->monitor->DDC) {
+ for (mode = pScrn->monitor->Modes; mode; mode = mode->next) {
+- if (mode->type & M_T_DRIVER &&
+- mode->HDisplay == p->HDisplay &&
+- mode->VDisplay == p->VDisplay) {
++ if (vesaModesCloseEnough(mode, p)) {
+ if (xf86CheckModeForMonitor(mode, mon) == MODE_OK) {
+ found = 1;
+ break;
+@@ -391,7 +413,8 @@ VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass)
+ for (v = mon->vrefresh[0].lo; v <= mon->vrefresh[0].hi; v++) {
+ mode = xf86GTFMode(p->HDisplay, p->VDisplay, v, 0, 0);
+ ret = xf86CheckModeForMonitor(mode, mon);
+- xfree(mode);
++ free(mode->name);
++ free(mode);
+ if (ret == MODE_OK)
+ break;
+ }
+@@ -431,8 +454,14 @@ VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
+ pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+ if (pScrn != NULL) {
+- VESAPtr pVesa = VESAGetRec(pScrn);
++ VESAPtr pVesa;
++
++ if (pci_device_has_kernel_driver(dev)) {
++ ErrorF("vesa: Ignoring device with a bound kernel driver\n");
++ return FALSE;
++ }
+
++ pVesa = VESAGetRec(pScrn);
+ VESAInitScrn(pScrn);
+ pVesa->pciInfo = dev;
+ }
+@@ -480,7 +509,7 @@ VESAProbe(DriverPtr drv, int flags)
+ }
+ }
+ }
+- xfree(usedChips);
++ free(usedChips);
+ }
+ }
+ #endif
+@@ -503,11 +532,11 @@ VESAProbe(DriverPtr drv, int flags)
+ foundScreen = TRUE;
+ }
+ }
+- xfree(usedChips);
++ free(usedChips);
+ }
+ #endif
+
+- xfree(devSections);
++ free(devSections);
+
+ return (foundScreen);
+ }
+@@ -554,9 +583,9 @@ VESAFreeRec(ScrnInfoPtr pScrn)
+ VbeModeInfoData *data = (VbeModeInfoData*)mode->Private;
+
+ if (data->block)
+- xfree(data->block);
++ free(data->block);
+
+- xfree(data);
++ free(data);
+
+ mode->Private = NULL;
+ }
+@@ -564,12 +593,12 @@ VESAFreeRec(ScrnInfoPtr pScrn)
+ } while (mode && mode != pScrn->modes);
+ }
+ #endif
+- xfree(pVesa->monitor);
+- xfree(pVesa->vbeInfo);
+- xfree(pVesa->pal);
+- xfree(pVesa->savedPal);
+- xfree(pVesa->fonts);
+- xfree(pScrn->driverPrivate);
++ free(pVesa->monitor);
++ free(pVesa->vbeInfo);
++ free(pVesa->pal);
++ free(pVesa->savedPal);
++ free(pVesa->fonts);
++ free(pScrn->driverPrivate);
+ pScrn->driverPrivate = NULL;
+ }
+
+@@ -712,7 +741,7 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags)
+ else {
+ void *panelid = VBEReadPanelID(pVesa->pVbe);
+ VBEInterpretPanelID(pScrn->scrnIndex, panelid);
+- xfree(panelid);
++ free(panelid);
+ }
+ #endif
+
+@@ -805,7 +834,7 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags)
+
+ /* options */
+ xf86CollectOptions(pScrn, NULL);
+- if (!(pVesa->Options = xalloc(sizeof(VESAOptions)))) {
++ if (!(pVesa->Options = malloc(sizeof(VESAOptions)))) {
+ vbeFree(pVesa->pVbe);
+ return FALSE;
+ }
+@@ -940,7 +969,7 @@ VESAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ pScrn->bitsPerPixel = 8;
+
+ if (pVesa->shadowFB) {
+- pVesa->shadow = xcalloc(1, pScrn->displayWidth * pScrn->virtualY *
++ pVesa->shadow = calloc(1, pScrn->displayWidth * pScrn->virtualY *
+ ((pScrn->bitsPerPixel + 7) / 8));
+ if (!pVesa->shadow) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+@@ -1119,10 +1148,10 @@ VESACloseScreen(int scrnIndex, ScreenPtr pScreen)
+ }
+ if (pVesa->shadowFB && pVesa->shadow) {
+ shadowRemove(pScreen, pScreen->GetScreenPixmap(pScreen));
+- xfree(pVesa->shadow);
++ free(pVesa->shadow);
+ }
+ if (pVesa->pDGAMode) {
+- xfree(pVesa->pDGAMode);
++ free(pVesa->pDGAMode);
+ pVesa->pDGAMode = NULL;
+ pVesa->nDGAMode = 0;
+ }
+@@ -1180,7 +1209,7 @@ VESASetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode)
+ * Free it as it will not be any longer useful
+ */
+ xf86ErrorF(", mode set without customized refresh.\n");
+- xfree(data->block);
++ free(data->block);
+ data->block = NULL;
+ data->mode &= ~(1 << 11);
+ }
+@@ -1315,7 +1344,7 @@ VESALoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
+ int base;
+
+ if (pVesa->pal == NULL)
+- pVesa->pal = xcalloc(1, sizeof(CARD32) * 256);
++ pVesa->pal = calloc(1, sizeof(CARD32) * 256);
+
+ for (i = 0, base = idx = indices[i]; i < numColors; i++, idx++) {
+ int j = indices[i];
+@@ -1414,7 +1443,7 @@ SaveFonts(ScrnInfoPtr pScrn)
+ if (attr10 & 0x01)
+ return;
+
+- pVesa->fonts = xalloc(16384);
++ pVesa->fonts = malloc(16384);
+
+ /* save the registers that are needed here */
+ miscOut = ReadMiscOut();
+@@ -1622,7 +1651,7 @@ VESASaveRestore(ScrnInfoPtr pScrn, vbeSaveRestoreFunction function)
+ && function == MODE_SAVE) {
+ /* don't rely on the memory not being touched */
+ if (pVesa->pstate == NULL)
+- pVesa->pstate = xalloc(pVesa->stateSize);
++ pVesa->pstate = malloc(pVesa->stateSize);
+ memcpy(pVesa->pstate, pVesa->state, pVesa->stateSize);
+ }
+ }
+@@ -1737,7 +1766,7 @@ VESADGAAddModes(ScrnInfoPtr pScrn)
+ DGAModePtr pDGAMode;
+
+ do {
+- pDGAMode = xrealloc(pVesa->pDGAMode,
++ pDGAMode = realloc(pVesa->pDGAMode,
+ (pVesa->nDGAMode + 1) * sizeof(DGAModeRec));
+ if (!pDGAMode)
+ break;
+diff --git a/src/vesa.h b/src/vesa.h
+index 4656e4c..89245b9 100644
+--- a/src/vesa.h
++++ b/src/vesa.h
+@@ -25,8 +25,6 @@
+ * Conectiva Linux.
+ *
+ * Authors: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
+- *
+- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.h,v 1.12 2002/08/06 13:46:27 dawes Exp $
+ */
+
+ #ifndef _VESA_H_
diff --git a/extra/xf86-video-vesa/revert-kernelcheck.patch b/extra/xf86-video-vesa/revert-kernelcheck.patch
new file mode 100644
index 000000000..37418cc3f
--- /dev/null
+++ b/extra/xf86-video-vesa/revert-kernelcheck.patch
@@ -0,0 +1,31 @@
+From b1f7f190f9d4f2ab63d3e9ade3e7e04bb4b1f89f Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Wed, 08 Dec 2010 18:45:32 +0000
+Subject: Refuse to load if there's a kernel driver bound to the device
+
+Ported from the equivalent check in nv.
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/src/vesa.c b/src/vesa.c
+index 168fde1..2523d76 100644
+--- a/src/vesa.c
++++ b/src/vesa.c
+@@ -431,8 +431,14 @@ VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
+ pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+ if (pScrn != NULL) {
+- VESAPtr pVesa = VESAGetRec(pScrn);
++ VESAPtr pVesa;
+
++ if (pci_device_has_kernel_driver(dev)) {
++ ErrorF("vesa: Ignoring device with a bound kernel driver\n");
++ return FALSE;
++ }
++
++ pVesa = VESAGetRec(pScrn);
+ VESAInitScrn(pScrn);
+ pVesa->pciInfo = dev;
+ }
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/xf86-video-voodoo/PKGBUILD b/extra/xf86-video-voodoo/PKGBUILD
new file mode 100644
index 000000000..dc958e86b
--- /dev/null
+++ b/extra/xf86-video-voodoo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 140284 2011-10-11 21:28:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-voodoo
+pkgver=1.2.4
+pkgrel=5
+pkgdesc="X.org 3dfx Voodoo1/Voodoo2 2D video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.99.902')
+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..eba790b99
--- /dev/null
+++ b/extra/xf86-video-xgi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140280 2011-10-11 21:28:09Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgi
+pkgver=1.6.0
+pkgrel=4
+pkgdesc="X.org XGI video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch)
+sha1sums=('826f14d6ba799cd2aae9f0c818f84cf8b75f1ddb'
+ '61ce13325c69befaa710c3389a85a8aa9d1cf28d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.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/xf86-video-xgi/git-fixes.patch b/extra/xf86-video-xgi/git-fixes.patch
new file mode 100644
index 000000000..f15fea88a
--- /dev/null
+++ b/extra/xf86-video-xgi/git-fixes.patch
@@ -0,0 +1,451 @@
+diff --git a/man/xgi.man b/man/xgi.man
+index 19880f2..5699ae4 100644
+--- a/man/xgi.man
++++ b/man/xgi.man
+@@ -1,4 +1,3 @@
+-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/xgi/xgi.man,v 1.14 2003/11/12 16:50:36 twini Exp $
+ .\" shorthand for double quote that works everywhere.
+ .ds q \N'34'
+ .TH XGI __drivermansuffix__ __vendorversion__
+diff --git a/src/vb_init.c b/src/vb_init.c
+index 8338410..50980c4 100755
+--- a/src/vb_init.c
++++ b/src/vb_init.c
+@@ -131,6 +131,8 @@ static void XGINew_SetDRAMDefaultRegister340(PXGI_HW_DEVICE_INFO, USHORT,
+ static void XGINew_SetDRAMDefaultRegisterXG45(PXGI_HW_DEVICE_INFO, USHORT,
+ PVB_DEVICE_INFO);
+ static UCHAR XGINew_Get340DRAMType(PXGI_HW_DEVICE_INFO, PVB_DEVICE_INFO);
++/* horrible */
++#define XGINew_GetXG20DRAMType XGINew_Get340DRAMType
+
+ static int XGINew_SetDDRChannel(int index, UCHAR ChannelNo,
+ UCHAR XGINew_ChannelAB, const USHORT DRAMTYPE_TABLE[][5],
+@@ -1451,7 +1453,7 @@ void XGINew_SetDRAMDefaultRegister340( PXGI_HW_DEVICE_INFO HwDeviceExtension ,
+ }
+
+ temp3 = 0 ;
+- for( k = 0 ; k < 4 ; k++ )
++ for( k = 1 ; k < 4 ; k++ )
+ {
+ XGI_SetRegANDOR((XGIIOADDRESS) P3d4 , 0x6E , 0xFC , temp3 ) ; /* CR6E_D[1:0] select channel */
+ temp2 = 0 ;
+diff --git a/src/vgatypes.h b/src/vgatypes.h
+index 8a60927..7484661 100755
+--- a/src/vgatypes.h
++++ b/src/vgatypes.h
+@@ -1,5 +1,3 @@
+-/* $XFree86$ */
+-/* $XdotOrg$ */
+ /*
+ * General type definitions for universal mode switching modules
+ *
+diff --git a/src/xgi.h b/src/xgi.h
+index 715502f..e818631 100755
+--- a/src/xgi.h
++++ b/src/xgi.h
+@@ -981,6 +981,7 @@ int compute_vclk(int Clock, int *out_n, int *out_dn, int *out_div,
+ void XGI_WaitBeginRetrace(XGIIOADDRESS RelIO);
+ void XGI_WaitEndRetrace(XGIIOADDRESS RelIO);
+
++#include <unistd.h>
+ /* 2005/11/21 added by jjtseng */
+ #define DelayS(sec) usleep((sec)*1000000)
+ #define DelayMS(millisec) usleep((millisec)*1000)
+diff --git a/src/xgi_accel.c b/src/xgi_accel.c
+index c072691..4c298ed 100755
+--- a/src/xgi_accel.c
++++ b/src/xgi_accel.c
+@@ -200,20 +200,7 @@ extern int FbDevExist;
+ #endif
+
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+-static CARD32 BE_SWAP32 (CARD32 val)
+-{
+- PDEBUG(ErrorF("X_BIG_ENDIAN...\n"));
+- if (CurrentColorDepth == 8)
+- return ((((val) & 0x000000ff) << 24) | \
+- (((val) & 0x0000ff00) << 8) | \
+- (((val) & 0x00ff0000) >> 8) | \
+- (((val) & 0xff000000) >> 24));
+- if (CurrentColorDepth == 24)
+- return val;
+- if (CurrentColorDepth == 16)
+- return ((((val) & 0x0000ffff) << 16) | \
+- (((val) & 0xffff0000) >> 16));
+-}
++#define BE_SWAP32(x) lswapl(x)
+ #else
+ static CARD32 BE_SWAP32 (CARD32 val)
+ {
+diff --git a/src/xgi_dga.c b/src/xgi_dga.c
+index 04f90aa..8bd84bc 100755
+--- a/src/xgi_dga.c
++++ b/src/xgi_dga.c
+@@ -103,18 +103,18 @@ XGISetupDGAMode(
+
+ if(pMode->HDisplay != otherPitch) {
+
+- newmodes = xrealloc(modes, (*num + 2) * sizeof(DGAModeRec));
++ newmodes = realloc(modes, (*num + 2) * sizeof(DGAModeRec));
+ oneMore = TRUE;
+
+ } else {
+
+- newmodes = xrealloc(modes, (*num + 1) * sizeof(DGAModeRec));
++ newmodes = realloc(modes, (*num + 1) * sizeof(DGAModeRec));
+ oneMore = FALSE;
+
+ }
+
+ if(!newmodes) {
+- xfree(modes);
++ free(modes);
+ return NULL;
+ }
+ modes = newmodes;
+diff --git a/src/xgi_dri.c b/src/xgi_dri.c
+index 93687e1..e575c19 100755
+--- a/src/xgi_dri.c
++++ b/src/xgi_dri.c
+@@ -46,7 +46,6 @@
+
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
+-#include "xf86Priv.h"
+
+ #include "xf86PciInfo.h"
+ #include "xf86Pci.h"
+@@ -145,13 +144,13 @@ XGIInitVisualConfigs(ScreenPtr pScreen)
+ }
+ if (!(pXGIConfigs = (XGIConfigPrivPtr)xnfcalloc(sizeof(XGIConfigPrivRec),
+ numConfigs))) {
+- xfree(pConfigs);
++ free(pConfigs);
+ return FALSE;
+ }
+ if (!(pXGIConfigPtrs = (XGIConfigPrivPtr*)xnfcalloc(sizeof(XGIConfigPrivPtr),
+ numConfigs))) {
+- xfree(pConfigs);
+- xfree(pXGIConfigs);
++ free(pConfigs);
++ free(pXGIConfigs);
+ return FALSE;
+ }
+ for (i=0; i<numConfigs; i++)
+@@ -333,7 +332,7 @@ Bool XGIDRIScreenInit(ScreenPtr pScreen)
+ pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
+
+ if (!DRIScreenInit(pScreen, pDRIInfo, &pXGI->drmSubFD)) {
+- xfree(pDRIInfo->devPrivate);
++ free(pDRIInfo->devPrivate);
+ pDRIInfo->devPrivate=0;
+ DRIDestroyInfoRec(pXGI->pDRIInfo);
+ pXGI->pDRIInfo=0;
+@@ -537,14 +536,14 @@ XGIDRICloseScreen(ScreenPtr pScreen)
+
+ if (pXGI->pDRIInfo) {
+ if (pXGI->pDRIInfo->devPrivate) {
+- xfree(pXGI->pDRIInfo->devPrivate);
++ free(pXGI->pDRIInfo->devPrivate);
+ pXGI->pDRIInfo->devPrivate=0;
+ }
+ DRIDestroyInfoRec(pXGI->pDRIInfo);
+ pXGI->pDRIInfo=0;
+ }
+- if (pXGI->pVisualConfigs) xfree(pXGI->pVisualConfigs);
+- if (pXGI->pVisualConfigsPriv) xfree(pXGI->pVisualConfigsPriv);
++ if (pXGI->pVisualConfigs) free(pXGI->pVisualConfigs);
++ if (pXGI->pVisualConfigsPriv) free(pXGI->pVisualConfigsPriv);
+
+ if(pXGI->agpSize){
+ /* ErrorF("Freeing agp memory\n"); */
+diff --git a/src/xgi_driver.c b/src/xgi_driver.c
+index b4f83b8..b8b8679 100755
+--- a/src/xgi_driver.c
++++ b/src/xgi_driver.c
+@@ -54,7 +54,7 @@
+ #include "fb.h"
+ #include "micmap.h"
+ #include "xf86.h"
+-#include "xf86Priv.h"
++#include "xf86Module.h"
+ #include "xf86_OSproc.h"
+ #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+ #include "xf86Resources.h"
+@@ -106,6 +106,10 @@
+ #include <unistd.h>
+ #endif
+
++#ifndef DEFAULT_DPI
++#define DEFAULT_DPI 96
++#endif
++
+ /* Jong 01/22/2009; compiler error; type conflict */
+ /*
+ #include <fcntl.h>
+@@ -556,13 +560,13 @@ XGIFreeRec(ScrnInfoPtr pScrn)
+ * head.
+ */
+ if (pXGIEnt->BIOS)
+- xfree(pXGIEnt->BIOS);
++ free(pXGIEnt->BIOS);
+ pXGIEnt->BIOS = pXGI->BIOS = NULL;
+ if (pXGIEnt->XGI_Pr)
+- xfree(pXGIEnt->XGI_Pr);
++ free(pXGIEnt->XGI_Pr);
+ pXGIEnt->XGI_Pr = pXGI->XGI_Pr = NULL;
+ if (pXGIEnt->RenderAccelArray)
+- xfree(pXGIEnt->RenderAccelArray);
++ free(pXGIEnt->RenderAccelArray);
+ pXGIEnt->RenderAccelArray = pXGI->RenderAccelArray = NULL;
+ }
+ else {
+@@ -573,19 +577,19 @@ XGIFreeRec(ScrnInfoPtr pScrn)
+ }
+ else {
+ if (pXGI->BIOS)
+- xfree(pXGI->BIOS);
++ free(pXGI->BIOS);
+ pXGI->BIOS = NULL;
+ if (pXGI->XGI_Pr)
+- xfree(pXGI->XGI_Pr);
++ free(pXGI->XGI_Pr);
+ pXGI->XGI_Pr = NULL;
+ if (pXGI->RenderAccelArray)
+- xfree(pXGI->RenderAccelArray);
++ free(pXGI->RenderAccelArray);
+ pXGI->RenderAccelArray = NULL;
+ }
+
+ #ifdef XGIMERGED
+ if (pXGI->MetaModes)
+- xfree(pXGI->MetaModes);
++ free(pXGI->MetaModes);
+ pXGI->MetaModes = NULL;
+
+ if (pXGI->CRT1Modes) {
+@@ -595,8 +599,8 @@ XGIFreeRec(ScrnInfoPtr pScrn)
+ do {
+ DisplayModePtr p = pScrn->currentMode->next;
+ if (pScrn->currentMode->Private)
+- xfree(pScrn->currentMode->Private);
+- xfree(pScrn->currentMode);
++ free(pScrn->currentMode->Private);
++ free(pScrn->currentMode);
+ pScrn->currentMode = p;
+ } while (pScrn->currentMode != pScrn->modes);
+ }
+@@ -612,7 +616,7 @@ XGIFreeRec(ScrnInfoPtr pScrn)
+ pXGI->pVbe = NULL;
+ if (pScrn->driverPrivate == NULL)
+ return;
+- xfree(pScrn->driverPrivate);
++ free(pScrn->driverPrivate);
+ pScrn->driverPrivate = NULL;
+ }
+
+@@ -975,7 +979,7 @@ XGIProbe(DriverPtr drv, int flags)
+ numDevSections, drv, &usedChips);
+
+ /* Free it since we don't need that list after this */
+- xfree(devSections);
++ free(devSections);
+ if (numUsed <= 0)
+ return FALSE;
+
+@@ -1015,7 +1019,7 @@ XGIProbe(DriverPtr drv, int flags)
+
+ #endif
+ }
+- xfree(usedChips);
++ free(usedChips);
+
+ return foundScreen;
+ }
+@@ -1044,11 +1048,11 @@ XGICopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest,
+
+ ErrorF("XGICopyModeNLink()...Use Virtual Size-1\n");
+
+- if (!((mode = xalloc(sizeof(DisplayModeRec)))))
++ if (!((mode = malloc(sizeof(DisplayModeRec)))))
+ return dest;
+ memcpy(mode, i, sizeof(DisplayModeRec));
+- if (!((mode->Private = xalloc(sizeof(XGIMergedDisplayModeRec))))) {
+- xfree(mode);
++ if (!((mode->Private = malloc(sizeof(XGIMergedDisplayModeRec))))) {
++ free(mode);
+ return dest;
+ }
+ ((XGIMergedDisplayModePtr) mode->Private)->CRT1 = i;
+@@ -1125,8 +1129,8 @@ XGICopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest,
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Skipped %dx%d, not enough video RAM or beyond hardware specs\n",
+ mode->HDisplay, mode->VDisplay);
+- xfree(mode->Private);
+- xfree(mode);
++ free(mode->Private);
++ free(mode);
+
+ return dest;
+ }
+@@ -1559,10 +1563,10 @@ XGIFreeCRT2Structs(XGIPtr pXGI)
+ pXGI->CRT2pScrn->monitor->Modes);
+ }
+ if (pXGI->CRT2pScrn->monitor->DDC)
+- xfree(pXGI->CRT2pScrn->monitor->DDC);
+- xfree(pXGI->CRT2pScrn->monitor);
++ free(pXGI->CRT2pScrn->monitor->DDC);
++ free(pXGI->CRT2pScrn->monitor);
+ }
+- xfree(pXGI->CRT2pScrn);
++ free(pXGI->CRT2pScrn);
+ pXGI->CRT2pScrn = NULL;
+ }
+ }
+@@ -2438,7 +2442,7 @@ XGIDDCPreInit(ScrnInfoPtr pScrn)
+
+ #ifdef XGIMERGED
+ if (pXGI->MergedFB) {
+- pXGI->CRT2pScrn->monitor = xalloc(sizeof(MonRec));
++ pXGI->CRT2pScrn->monitor = malloc(sizeof(MonRec));
+ if (pXGI->CRT2pScrn->monitor) {
+ DisplayModePtr tempm = NULL, currentm = NULL, newm = NULL;
+ memcpy(pXGI->CRT2pScrn->monitor, pScrn->monitor, sizeof(MonRec));
+@@ -2446,11 +2450,11 @@ XGIDDCPreInit(ScrnInfoPtr pScrn)
+ pXGI->CRT2pScrn->monitor->Modes = NULL;
+ tempm = pScrn->monitor->Modes;
+ while (tempm) {
+- if (!(newm = xalloc(sizeof(DisplayModeRec))))
++ if (!(newm = malloc(sizeof(DisplayModeRec))))
+ break;
+ memcpy(newm, tempm, sizeof(DisplayModeRec));
+- if (!(newm->name = xalloc(strlen(tempm->name) + 1))) {
+- xfree(newm);
++ if (!(newm->name = malloc(strlen(tempm->name) + 1))) {
++ free(newm);
+ break;
+ }
+ strcpy(newm->name, tempm->name);
+@@ -2490,7 +2494,7 @@ XGIDDCPreInit(ScrnInfoPtr pScrn)
+ "Failed to allocate memory for CRT2 monitor, %s.\n",
+ mergeddisstr);
+ if (pXGI->CRT2pScrn)
+- xfree(pXGI->CRT2pScrn);
++ free(pXGI->CRT2pScrn);
+ pXGI->CRT2pScrn = NULL;
+ pXGI->MergedFB = FALSE;
+ }
+@@ -3540,7 +3544,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags)
+ /* Do some MergedFB mode initialisation */
+ #ifdef XGIMERGED
+ if (pXGI->MergedFB) {
+- pXGI->CRT2pScrn = xalloc(sizeof(ScrnInfoRec));
++ pXGI->CRT2pScrn = malloc(sizeof(ScrnInfoRec));
+ if (!pXGI->CRT2pScrn) {
+ XGIErrorLog(pScrn,
+ "Failed to allocate memory for 2nd pScrn, %s\n",
+@@ -3586,7 +3590,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags)
+ XGIErrorLog(pScrn, mergednocrt1, mergeddisstr);
+ }
+ if (pXGI->CRT2pScrn)
+- xfree(pXGI->CRT2pScrn);
++ free(pXGI->CRT2pScrn);
+ pXGI->CRT2pScrn = NULL;
+ pXGI->MergedFB = FALSE;
+ }
+@@ -3627,7 +3631,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags)
+ XGIErrorLog(pScrn, mergednocrt2, mergeddisstr);
+ }
+ if (pXGI->CRT2pScrn)
+- xfree(pXGI->CRT2pScrn);
++ free(pXGI->CRT2pScrn);
+ pXGI->CRT2pScrn = NULL;
+ pXGI->MergedFB = FALSE;
+ }
+@@ -4901,7 +4905,7 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+
+ if (pXGI->ShadowFB) {
+ pXGI->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width);
+- pXGI->ShadowPtr = xalloc(pXGI->ShadowPitch * height);
++ pXGI->ShadowPtr = malloc(pXGI->ShadowPitch * height);
+ displayWidth = pXGI->ShadowPitch / (pScrn->bitsPerPixel >> 3);
+ FBStart = pXGI->ShadowPtr;
+ }
+@@ -5777,17 +5781,17 @@ XGICloseScreen(int scrnIndex, ScreenPtr pScreen)
+ }
+
+ if (pXGI->ShadowPtr) {
+- xfree(pXGI->ShadowPtr);
++ free(pXGI->ShadowPtr);
+ pXGI->ShadowPtr = NULL;
+ }
+
+ if (pXGI->DGAModes) {
+- xfree(pXGI->DGAModes);
++ free(pXGI->DGAModes);
+ pXGI->DGAModes = NULL;
+ }
+
+ if (pXGI->adaptor) {
+- xfree(pXGI->adaptor);
++ free(pXGI->adaptor);
+ pXGI->adaptor = NULL;
+ pXGI->ResetXv = pXGI->ResetXvGamma = NULL;
+ }
+diff --git a/src/xgi_opt.c b/src/xgi_opt.c
+index 09346e4..c0608d5 100755
+--- a/src/xgi_opt.c
++++ b/src/xgi_opt.c
+@@ -195,7 +195,7 @@ xgiOptions(ScrnInfoPtr pScrn)
+ xf86CollectOptions(pScrn, NULL);
+
+ /* Process the options */
+- if(!(pXGI->Options = xalloc(sizeof(XGIOptions)))) return;
++ if(!(pXGI->Options = malloc(sizeof(XGIOptions)))) return;
+
+ memcpy(pXGI->Options, XGIOptions, sizeof(XGIOptions));
+
+diff --git a/src/xgi_setup.c b/src/xgi_setup.c
+index c1d2cdc..6641b09 100755
+--- a/src/xgi_setup.c
++++ b/src/xgi_setup.c
+@@ -678,7 +678,7 @@ bAccessVGAPCIInfo(PXGI_HW_DEVICE_INFO pHwDevInfo, ULONG ulOffset, ULONG ulSet, U
+ err = pci_device_cfg_write_u32(pXGI->PciInfo, *pulValue,
+ ulOffset & ~3);
+ } else {
+- err = pci_device_cfg_write_u32(pXGI->PciInfo, pulValue,
++ err = pci_device_cfg_read_u32(pXGI->PciInfo, pulValue,
+ ulOffset & ~3);
+ }
+
+diff --git a/src/xgi_video.c b/src/xgi_video.c
+index 31cffd5..df76d14 100755
+--- a/src/xgi_video.c
++++ b/src/xgi_video.c
+@@ -142,7 +142,7 @@ void XGIInitVideo(ScreenPtr pScreen)
+ adaptors = &newAdaptor;
+ } else {
+ newAdaptors = /* need to free this someplace */
+- xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
++ malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors *
+ sizeof(XF86VideoAdaptorPtr));
+@@ -157,7 +157,7 @@ void XGIInitVideo(ScreenPtr pScreen)
+ xf86XVScreenInit(pScreen, adaptors, num_adaptors);
+
+ if(newAdaptors)
+- xfree(newAdaptors);
++ free(newAdaptors);
+
+ }
+
+@@ -395,7 +395,7 @@ XGISetupImageVideo(ScreenPtr pScreen)
+ struct v4l2_standard standard;
+ # endif//VC
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ sizeof(XGIPortPrivRec) +
+ sizeof(DevUnion))))
+ return NULL;
diff --git a/extra/xf86-video-xgixp/PKGBUILD b/extra/xf86-video-xgixp/PKGBUILD
new file mode 100644
index 000000000..884a53446
--- /dev/null
+++ b/extra/xf86-video-xgixp/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140282 2011-10-11 21:28:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgixp
+pkgver=1.8.0
+pkgrel=4
+pkgdesc="X.org XGIXP video driver"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel>=1.10.99.902' 'libdrm' 'xf86driproto' 'mesa' 'glproto')
+conflicts=('xorg-server<1.10.99.902')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ api-compat-fix-for-DRAWABLE_BUFFER.patch)
+sha1sums=('67caeaa4c746572160208fe23c7257f62cb442a3'
+ 'ea140a13963bbf33cdff1ad75789d765867ec53b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/api-compat-fix-for-DRAWABLE_BUFFER.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/xf86-video-xgixp/api-compat-fix-for-DRAWABLE_BUFFER.patch b/extra/xf86-video-xgixp/api-compat-fix-for-DRAWABLE_BUFFER.patch
new file mode 100644
index 000000000..f8cb64673
--- /dev/null
+++ b/extra/xf86-video-xgixp/api-compat-fix-for-DRAWABLE_BUFFER.patch
@@ -0,0 +1,23 @@
+From 86258a6fd8fc8bb09a52ee446b37abe6bd0843ef Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Fri, 25 Mar 2011 22:46:55 +0000
+Subject: API compat fix for DRAWABLE_BUFFER
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/src/xgi_driver.c b/src/xgi_driver.c
+index e54d8c7..189b84a 100644
+--- a/src/xgi_driver.c
++++ b/src/xgi_driver.c
+@@ -2708,7 +2708,9 @@ xg47_setup_fb_wrap(ReadMemoryProcPtr *read_ptr,
+ {
+ switch (pDraw->type) {
+ case DRAWABLE_WINDOW:
++#ifdef DRAWABLE_BUFFER
+ case DRAWABLE_BUFFER:
++#endif
+ *read_ptr = xg47_read_memory_swap_func;
+ *write_ptr = xg47_write_memory_swap_func;
+ break;
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xfburn/PKGBUILD b/extra/xfburn/PKGBUILD
new file mode 100755
index 000000000..3566c2582
--- /dev/null
+++ b/extra/xfburn/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 141077 2011-10-23 09:32:55Z andyrtr $
+# Maintainer: Tobias Kieslich <tobias funnychar archlinux.org>
+# Contributor: Alois Nespor alois.nespor@gmail.com
+
+pkgname=xfburn
+pkgver=0.4.3
+pkgrel=5
+arch=('i686' 'x86_64' 'mips64el')
+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>=1.0.6.pl00' 'libisofs>=1.0.6' 'libxfcegui4>=4.8.1' 'exo>=0.6.0' 'gstreamer0.10-base>=0.10.26'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'librsvg')
+makedepends=('intltool')
+source=(http://www.xfce.org/archive/src/apps/xfburn/0.4/$pkgname-$pkgver.tar.bz2
+ fix_empty_dir_segfault.diff)
+md5sums=('147cdc2d909e751125be16103b8dc81f'
+ '82a85be2442c42ab93de95e21c6c11b0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # fix https://bugs.archlinux.org/task/26121
+ patch -Np0 -i ${srcdir}/fix_empty_dir_segfault.diff
+
+ ./configure --prefix=/usr \
+ --enable-gstreamer \
+ --enable-dbus \
+ --disable-hal
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfburn/fix_empty_dir_segfault.diff b/extra/xfburn/fix_empty_dir_segfault.diff
new file mode 100644
index 000000000..af3fe07c8
--- /dev/null
+++ b/extra/xfburn/fix_empty_dir_segfault.diff
@@ -0,0 +1,48 @@
+--- xfburn/xfburn-data-composition.c 2011-02-17 16:37:03.000000000 +0100
++++ xfburn/xfburn-data-composition_patched.c 2011-02-17 16:40:40.000000000 +0100
+@@ -1874,26 +1874,29 @@
+ g_error ("Failed adding %s as a node to the image: code %X!", src, r);
+ }
+
+- basename = g_path_get_basename (src);
++ /* Check names only for items not manually created (#613563) */
++ if (type != DATA_COMPOSITION_TYPE_DIRECTORY || src != NULL) {
++ basename = g_path_get_basename (src);
++
++ /* check if the file has been renamed */
++ if (strcmp (basename, name) != 0) {
++ /* rename the iso_node */
++ r = iso_node_set_name (node, name);
++
++ if (r == 0) {
++ /* The first string is the renamed name, the second one the original name */
++ xfce_warn (_("Duplicate filename '%s' for '%s'"), name, src);
++
++ g_free (basename);
++ g_free (name);
++ g_free (src);
+
+- /* check if the file has been renamed */
+- if (strcmp (basename, name) != 0) {
+- /* rename the iso_node */
+- r = iso_node_set_name (node, name);
+-
+- if (r == 0) {
+- /* The first string is the renamed name, the second one the original name */
+- xfce_warn (_("Duplicate filename '%s' for '%s'"), name, src);
+-
+- g_free (basename);
+- g_free (name);
+- g_free (src);
+-
+- continue;
++ continue;
++ }
+ }
++ g_free (basename);
+ }
+
+- g_free (basename);
+ g_free (name);
+ g_free (src);
+
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..0b9203407
--- /dev/null
+++ b/extra/xfce-utils/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 138663 2011-09-27 14:33:37Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce-utils
+pkgver=4.8.3
+pkgrel=1
+pkgdesc="Utilities for Xfce"
+arch=(i686 x86_64 'mips64el')
+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=('03b5fba5f63f4f1a31cc7d3728f3c87e')
+sha1sums=('159d445b689ebbf73462a4b4baf5cce4e04afaab')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-dbus \
+ --disable-debug \
+ --with-vendor-info=Parabola # --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..7d61e5cb6
--- /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.1
+pkgdesc="Xfce application finder"
+arch=('i686' 'x86_64' 'mips64el')
+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..3c989fdf2
--- /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.1
+pkgdesc="A battery monitor plugin for the Xfce panel"
+arch=(i686 x86_64 'mips64el')
+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..0c85faa38
--- /dev/null
+++ b/extra/xfce4-clipman-plugin/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 141959 2011-11-03 17:33:58Z eric $
+# Maintainer: tobias <tobias at archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-clipman-plugin
+pkgver=1.2.2
+pkgrel=1.1
+pkgdesc="A clipboard plugin for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libunique' 'libxtst')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('60df7769a8271d7fcab177210f4291e8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|$(TARGET_DIR)/C/media|$(docdir)/html/C/media|' doc/Makefile.in
+ ./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
+}
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..980cd727d
--- /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.1
+pkgdesc="CPU frequency plugin for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..c546f0bd7
--- /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.1
+pkgdesc="CPU graph plugin for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..e8d559062
--- /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.1
+pkgdesc="A date and time display plugin for the Xfce panel"
+arch=('i686' 'x86_64' 'mips64el')
+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-dev-tools/PKGBUILD b/extra/xfce4-dev-tools/PKGBUILD
new file mode 100644
index 000000000..7b47fcb20
--- /dev/null
+++ b/extra/xfce4-dev-tools/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142012 2011-11-04 02:41:52Z eric $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=xfce4-dev-tools
+pkgver=4.9.0
+pkgrel=1.1
+pkgdesc="Xfce developer tools"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=('gtk-doc' 'automake' 'automake' 'make' 'intltool' 'pkg-config')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/xfce4-dev-tools/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('325047a072f5599ec7fda9f970c47091')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var
+ 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..933c812f3
--- /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.1
+pkgdesc="A dictionary plugin for the Xfce panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..2cff43272
--- /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.1
+pkgdesc="Plugin for the Xfce4 panel displaying instant disk/partition performance"
+arch=('i686' 'x86_64' 'mips64el')
+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..4ef421a92
--- /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.1
+pkgdesc="A rolling eyes (following mouse pointer) plugin for the Xfce panel"
+arch=(i686 x86_64 'mips64el')
+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..841aabb83
--- /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.1
+pkgdesc="File system usage monitor plugin for the Xfce4 panel"
+arch=(i686 x86_64 'mips64el')
+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..702154b4f
--- /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.1
+pkgdesc="plugin that monitors customizable programs stdout for the Xfce4 panel"
+arch=(i686 x86_64 'mips64el')
+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..71b7041c9
--- /dev/null
+++ b/extra/xfce4-mailwatch-plugin/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 135816 2011-08-18 15:04:58Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Suzy Williams <suzanne.williams3@verizon.net>
+
+pkgname=xfce4-mailwatch-plugin
+pkgver=1.1.0
+pkgrel=4.1
+pkgdesc="A mailbox watch/check plugin for the Xfce4 panel"
+arch=(i686 x86_64 'mips64el')
+license=('GPL2')
+url="http://spurint.org/projects/xfce4-mailwatch-plugin/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'gnutls' 'libgcrypt' '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..22ec53e7c
--- /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.1
+pkgdesc="The volume control plugin for the Xfce panel"
+arch=(i686 x86_64 'mips64el')
+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..6fcb594ba
--- /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.1
+pkgdesc="plugin for the Xfce4 panel to mount and unmount volumes"
+arch=('i686' 'x86_64' 'mips64el')
+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..fccd2750d
--- /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.1
+pkgdesc="plugin to control the music player daemon from the xfce4-panel"
+arch=(i686 x86_64 'mips64el')
+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..51d76e094
--- /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.1
+pkgdesc="A netload plugin for the Xfce panel"
+arch=(i686 x86_64 'mips64el')
+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..e4d2f3fff
--- /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.1
+pkgdesc="A notes plugin for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..b8e89437a
--- /dev/null
+++ b/extra/xfce4-notifyd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 141355 2011-10-29 18:34:46Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-notifyd
+pkgver=0.2.2
+pkgrel=2.1
+pkgdesc="Notification daemon for the Xfce desktop"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://goodies.xfce.org/projects/applications/xfce4-notifyd"
+license=('GPL2')
+groups=('xfce4-goodies')
+depends=('libxfce4ui' 'hicolor-icon-theme')
+makedepends=('intltool')
+provides=('notification-daemon')
+options=('!libtool')
+install=$pkgname.install
+source=(http://archive.xfce.org/src/apps/$pkgname/0.2/$pkgname-$pkgver.tar.bz2)
+sha1sums=('31888132d949cc7b47d12889b8aaf5dabc546d8b')
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/xfce4-notifyd/xfce4-notifyd.install b/extra/xfce4-notifyd/xfce4-notifyd.install
new file mode 100644
index 000000000..abf924aa2
--- /dev/null
+++ b/extra/xfce4-notifyd/xfce4-notifyd.install
@@ -0,0 +1,14 @@
+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/extra/xfce4-panel/PKGBUILD b/extra/xfce4-panel/PKGBUILD
new file mode 100644
index 000000000..06aa739e4
--- /dev/null
+++ b/extra/xfce4-panel/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 138667 2011-09-27 14:43:08Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-panel
+pkgver=4.8.6
+pkgrel=1.1
+pkgdesc="Panel for the Xfce desktop environment"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('exo>=0.6.0' 'garcon>=0.1.5' 'libxfce4ui>=4.8.0' 'libwnck' 'libsm' 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('intltool' 'gtk-doc')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('9d7bf0503d5867c4044cef04bb5845b1')
+sha1sums=('332fc968332e6271e1bb65d6de8de2524b0440ec')
+
+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..bce670aff
--- /dev/null
+++ b/extra/xfce4-panel/xfce4-panel.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/xfce4-power-manager/PKGBUILD b/extra/xfce4-power-manager/PKGBUILD
new file mode 100644
index 000000000..d61157a7d
--- /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.1
+pkgdesc="power manager for xfce4 desktop"
+arch=(i686 x86_64 'mips64el')
+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..753317362
--- /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.1
+pkgdesc="plugin that creates 4 little application launcher in the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..b20629bf4
--- /dev/null
+++ b/extra/xfce4-screenshooter/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 143213 2011-11-23 12:30:04Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-screenshooter
+pkgver=1.8.0
+pkgrel=2.1
+pkgdesc="Plugin that makes screenshots for the Xfce panel"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
+license=('GPL2')
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libsoup' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=$pkgname.install
+options=('!libtool')
+source=(http://archive.xfce.org/src/apps/$pkgname/1.8/$pkgname-$pkgver.tar.bz2
+ xfce4-screenshooter-1.7.9-dsofix.patch
+ fs-25873-segfault-in-awesome-wm.patch)
+conflicts=('xfce4-screenshooter-plugin')
+replaces=('xfce4-screenshooter-plugin')
+sha256sums=('68748a42ae68c5a8e9ed1c14ec5c741a344ab30b5b325b8812220539548ad83e'
+ '6902495c0394af19a76e2f90399ca7295e8dfb3ffb29d3b4f3b3a9fb7489c464'
+ '76cc9127167c9f4a800b01e9d16b85bf3af335d0eb44588d859739aa9d457e38')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/xfce4-screenshooter-1.7.9-dsofix.patch"
+
+ # segfaults trying to capture screenshot of active window in awesome WM
+ # https://bugs.archlinux.org/task/25873
+ # patch by Bruno Ramos @ https://bugzilla.xfce.org/show_bug.cgi?id=8080#c2
+ patch -Np1 -i "$srcdir/fs-25873-segfault-in-awesome-wm.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
+}
+
+# vim:set ts=2 sw=2 et:
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/fs-25873-segfault-in-awesome-wm.patch b/extra/xfce4-screenshooter/fs-25873-segfault-in-awesome-wm.patch
new file mode 100644
index 000000000..47e067144
--- /dev/null
+++ b/extra/xfce4-screenshooter/fs-25873-segfault-in-awesome-wm.patch
@@ -0,0 +1,21 @@
+--- a/lib/screenshooter-capture.c
++++ a/lib/screenshooter-capture.c
+@@ -381,6 +381,18 @@ static GdkPixbuf
+ rec_height += rectangle.y;
+ }
+
++ if (rec_x < 0)
++ {
++ rec_width = rec_width + rec_x;
++ rec_x = 0;
++ }
++
++ if (rec_y < 0)
++ {
++ rec_height = rec_height + rec_y;
++ rec_y = 0;
++ }
++
+ if (x_orig + rec_x + rec_width > gdk_screen_width ())
+ rec_width = gdk_screen_width () - x_orig - rec_x;
+
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..e4f8fd06c
--- /dev/null
+++ b/extra/xfce4-screenshooter/xfce4-screenshooter.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/extra/xfce4-sensors-plugin/PKGBUILD b/extra/xfce4-sensors-plugin/PKGBUILD
new file mode 100644
index 000000000..1a08005de
--- /dev/null
+++ b/extra/xfce4-sensors-plugin/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 136067 2011-08-22 12:16:31Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Merk Matthias <macem@chello.at>
+
+pkgname=xfce4-sensors-plugin
+pkgver=1.2.3
+pkgrel=2.1
+pkgdesc="A lm_sensors plugin for the Xfce panel"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'lm_sensors' 'libnotify>=0.7.1' 'hicolor-icon-theme') #'libxfcegui4'
+makedepends=('pkgconfig' 'intltool' 'hddtemp>=0.3.beta15.45-2' 'gnu-netcat' 'xfce4-dev-tools')
+optdepends=('gnu-netcat: for hddtemp access')
+options=(!libtool !makeflags)
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.2/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2edf376d140449ca42c4e4f591e626f8')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --datadir=/usr/share \
+ --datarootdir=/usr/share \
+ --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.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..a385ea3a8
--- /dev/null
+++ b/extra/xfce4-session/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 141722 2011-11-02 15:10:56Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-session
+pkgver=4.8.2
+pkgrel=3.1
+pkgdesc="A session manager for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xfce.org/"
+license=('GPL2')
+groups=('xfce4')
+# keep xorg-server-utils for https://bugs.archlinux.org/task/21096
+# upower and consolekit for reboot/shutdown/hibernate/suspend
+depends=('xfce4-panel' 'gconf' 'libgnome-keyring' 'libwnck' 'libsm'
+ 'xorg-iceauth' 'upower' 'consolekit' 'hicolor-icon-theme')
+makedepends=('intltool')
+optdepends=('fortune-mod: for xfce4-tips')
+replaces=('xfce4-toys')
+options=('!libtool')
+install=$pkgname.install
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.8/$pkgname-$pkgver.tar.bz2)
+sha256sums=('31bca2a559e05a8a859f150394a901517e5842414ef171a85c5da234e344c0d0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-hal \
+ --enable-gnome \
+ --enable-libgnome-keyring \
+ --enable-session-screenshots \
+ --enable-upower \
+ --enable-consolekit \
+ --enable-polkit \
+ --enable-panel-plugin \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/xfce4-session/xfce4-session.install b/extra/xfce4-session/xfce4-session.install
new file mode 100644
index 000000000..e4f8fd06c
--- /dev/null
+++ b/extra/xfce4-session/xfce4-session.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/extra/xfce4-settings/PKGBUILD b/extra/xfce4-settings/PKGBUILD
new file mode 100644
index 000000000..42ac1fe14
--- /dev/null
+++ b/extra/xfce4-settings/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 143211 2011-11-23 12:04:45Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=xfce4-settings
+pkgver=4.8.3
+pkgrel=2.1
+pkgdesc="Settings manager for xfce"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xfce.org/"
+license=('GPL2')
+groups=('xfce4')
+depends=('exo' 'libxfce4ui' 'libnotify' 'libxklavier' '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)
+sha256sums=('d878cc474e1e677e9607279b9a1007cb90ed35ff078de180259a8b2b8d06bc2e'
+ 'c91d246cc678014a7fa8af37f2a24640bcc8823e41e064361130da7ae3809ed5')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # enable gnome icon theme, clearlooks theme and font hinting by default
+ # (taken from Fedora)
+ patch -Np1 -i "$srcdir/xfce4-settings-4.6.0.patch"
+
+ ./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
+}
+
+# vim:set ts=2 sw=2 et:
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..559e2f9e5
--- /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="gnome"/>
+ </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/PKGBUILD b/extra/xfce4-smartbookmark-plugin/PKGBUILD
new file mode 100644
index 000000000..c1d000134
--- /dev/null
+++ b/extra/xfce4-smartbookmark-plugin/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 141671 2011-11-02 05:08:45Z eric $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-smartbookmark-plugin
+pkgver=0.4.4
+pkgrel=1.1
+pkgdesc="Plugin for the Xfce4 panel that let you quicksearch from selected websites"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4')
+makedepends=('intltool' 'libxt')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2
+ xfce4-smartbookmark-plugin-archlinux.patch)
+md5sums=('273e38306a82f14e1b8c2c5db912f6c3'
+ '323ac898cfcfdb078f67f9ecd1905aec')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i "${srcdir}/xfce4-smartbookmark-plugin-archlinux.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-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..11cba5978
--- /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.1
+pkgdesc="A system load plugin for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..975a78879
--- /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.1
+pkgdesc="Easy to use task manager"
+arch=(i686 x86_64 'mips64el')
+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..5a8145735
--- /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.1
+pkgdesc="Take a break from your computer with this plugin for XFCE4."
+arch=(i686 x86_64 'mips64el')
+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..7e1932349
--- /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.1
+pkgdesc="plugin to track time for the Xfce4 panel"
+arch=(i686 x86_64 'mips64el')
+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..afdfbe32c
--- /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.1
+pkgdesc="command line plugin Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..b4cd88179
--- /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.1
+pkgdesc="plugin to monitor wifi connectivity for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+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..4953361d5
--- /dev/null
+++ b/extra/xfce4-weather-plugin/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 142430 2011-11-09 18:10:30Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Suzy Williams <suzanne.williams3@verizon.net>
+
+pkgname=xfce4-weather-plugin
+pkgver=0.7.4
+pkgrel=2.1
+pkgdesc="A weather plugin for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
+license=('GPL2')
+groups=('xfce4-goodies')
+depends=('xfce4-panel' '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)
+sha256sums=('3f76207b8a845d15bfec6825bd5300aedd086c455259c4dd8670a89a3c8ab382')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Switch to a working license key
+ # https://bugs.archlinux.org/task/26815
+ sed -i \
+ -e 's/^#define PARTNER_ID.*/#define PARTNER_ID "1003666583"/' \
+ -e 's/^#define LICENSE_KEY.*/#define LICENSE_KEY "4128909340a9b2fc"/' \
+ panel-plugin/weather.h
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
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..e4f8fd06c
--- /dev/null
+++ b/extra/xfce4-weather-plugin/xfce4-weather-plugin.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/extra/xfce4-xkb-plugin/PKGBUILD b/extra/xfce4-xkb-plugin/PKGBUILD
new file mode 100644
index 000000000..0c5af90db
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 141039 2011-10-22 08:26:43Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-xkb-plugin
+pkgver=0.5.4.2
+pkgrel=1.1
+pkgdesc="plugin to switch keyboard layouts for the Xfce4 panel"
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxklavier>=5.0' 'librsvg')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.5/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b79f7c65f8155cb77d99dcf9716bb38b')
+
+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-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..8f57230a6
--- /dev/null
+++ b/extra/xfconf/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 130064 2011-07-01 20:39:13Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfconf
+pkgver=4.8.0
+pkgrel=3
+pkgdesc="a simple client-server configuration storage and query system"
+arch=('i686' 'x86_64' 'mips64el')
+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'
+'perl-xml-parser' '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..f300f061c
--- /dev/null
+++ b/extra/xfdesktop/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 138129 2011-09-17 02:28:33Z allan $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfdesktop
+pkgver=4.8.3
+pkgrel=1
+pkgdesc="A desktop manager for Xfce"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('libxfce4ui' 'thunar>=1.2.0' 'garcon' 'hicolor-icon-theme' 'libwnck>=2.30.0')
+makedepends=('intltool' 'xfce4-panel>=4.8.0')
+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=('617c667c469698e8c974e38412cb484c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./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..faf519d2d
--- /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' 'mips64el')
+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/xfwm4/PKGBUILD b/extra/xfwm4/PKGBUILD
new file mode 100644
index 000000000..c7f2e6d81
--- /dev/null
+++ b/extra/xfwm4/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 138685 2011-09-27 16:03:39Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfwm4
+pkgver=4.8.2
+pkgrel=1
+pkgdesc="Xfce window manager"
+arch=('i686' 'x86_64' 'mips64el')
+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=('41b730d5abf39a69fc3b221728ddaa75')
+sha1sums=('7822408eaddd9fc4937d9e6825eda7d56dc46b06')
+
+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..9eab2ca68
--- /dev/null
+++ b/extra/xine-lib/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142780 2011-11-15 05:34:03Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xine-lib
+pkgver=1.1.20
+pkgrel=1
+pkgdesc="A multimedia playback engine"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xine-project.org"
+license=('LGPL' 'GPL')
+depends=('libxvmc' 'flac' 'ffmpeg' 'libxinerama' 'libmodplug')
+makedepends=('wavpack' 'faad2' 'libmng' 'imagemagick' 'smbclient' 'mesa'
+ 'v4l-utils' 'vcdimager' 'jack' 'gdk-pixbuf2' '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' \
+ 'gdk-pixbuf2: for using the gdk-pixbuf plugin' \
+ 'mesa: for using the opengl plugin' \
+ 'libpulse: for using the pulseaudio plugin' \
+ 'speex: for using the speex plugin' \
+ 'v4l-utils: for using the v4l plugin' \
+ 'wavpack: for using the wavpack plugin' \
+ 'faad2: for using the faad plugin' \
+ 'libmng: for using the mng plugin' \
+ 'aalib: for using the aalib plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('1dbd48e14113739101429391d45f65ebbf6519fc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|linux/videodev.h|libv4l1-videodev.h|' \
+ configure src/input/input_v4l.c src/video_out/video_out_syncfb.h
+ ./configure --prefix=/usr --with-wavpack --with-external-ffmpeg --with-external-libfaad \
+ --disable-optimizations
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xine-ui/PKGBUILD b/extra/xine-ui/PKGBUILD
new file mode 100644
index 000000000..0ff24e168
--- /dev/null
+++ b/extra/xine-ui/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 144037 2011-12-02 17:33:46Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xine-ui
+pkgver=0.99.6
+pkgrel=3
+pkgdesc="A free video player for Unix"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.xine-project.org"
+depends=('xine-lib' 'curl' 'libxtst' 'libpng' 'libxft' 'libxxf86vm'
+ 'xdg-utils' 'shared-mime-info' 'hicolor-icon-theme'
+ 'desktop-file-utils' 'lirc-utils')
+makedepends=('libxt')
+options=('!strip')
+install=xine-ui.install
+source=(http://downloads.sourceforge.net/xine/${pkgname}-${pkgver}.tar.xz
+ lirc-check-a89347673097.patch lirc-makefile-a68dd15ff7ae.patch
+ fix_lirc.diff xine-ui-xdg.diff)
+sha1sums=('abbdb331898c14025ee6b132f63ab7d3c1b5b31e'
+ 'b2df43ede3a9d1a34b80139704a4cbbc7295c584'
+ '8bbd39f61de7b6991385457a4944b8ea104da88b'
+ '2361df9ddad59c426b0f863414c6d527b463a38a'
+ '9c70c6543dae6815710b239b4638ffe3843bac86')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < "${srcdir}/lirc-check-a89347673097.patch"
+ patch -p1 < "${srcdir}/lirc-makefile-a68dd15ff7ae.patch"
+ patch -p1 < "${srcdir}/fix_lirc.diff"
+ patch -p1 < "${srcdir}/xine-ui-xdg.diff"
+ sed -i '/\#include <curl\/types.h>/d' src/xitk/download.c
+ autoconf
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-x --enable-lirc --without-aalib --enable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" desktopdir=/usr/share/applications install
+}
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-xdg.diff b/extra/xine-ui/xine-ui-xdg.diff
new file mode 100644
index 000000000..959d674b2
--- /dev/null
+++ b/extra/xine-ui/xine-ui-xdg.diff
@@ -0,0 +1,206 @@
+--- xine-ui-0.99.6.orig/src/xitk/common.h
++++ xine-ui-0.99.6/src/xitk/common.h
+@@ -331,6 +331,5 @@ typedef struct {
+ int use_root_window;
+
+ int ssaver_enabled;
+- int ssaver_timeout;
+
+ int skip_by_chapter;
+--- xine-ui-0.99.6.orig/src/xitk/main.c
++++ xine-ui-0.99.6/src/xitk/main.c
+@@ -1383,6 +1383,8 @@ int main(int argc, char *argv[]) {
+ if (sigprocmask (SIG_BLOCK, &vo_mask, NULL))
+ fprintf (stderr, "sigprocmask() failed.\n");
+
++ signal(SIGCHLD, SIG_IGN);
++
+ gGui = (gGui_t *) calloc(1, sizeof(gGui_t));
+
+ gGui->stream = NULL;
+--- xine-ui-0.99.6.orig/src/xitk/panel.c
++++ xine-ui-0.99.6/src/xitk/panel.c
+@@ -356,7 +356,6 @@ void panel_update_runtime_display(void)
+ * Update slider thread.
+ */
+ static void *slider_loop(void *dummy) {
+- int screensaver_timer = 0;
+ int status, speed;
+ int pos, secs;
+ int i = 0;
+@@ -441,20 +440,7 @@ static void *slider_loop(void *dummy) {
+ else
+ video_window_set_mrl((char *)gGui->mmk.mrl);
+
+- if(!xitk_is_window_iconified(gGui->video_display, gGui->video_window)) {
+-
+- if(gGui->ssaver_timeout) {
+-
+- if(!(i % 2))
+- screensaver_timer++;
+-
+- if(screensaver_timer >= gGui->ssaver_timeout) {
+- screensaver_timer = 0;
+- video_window_reset_ssaver();
+-
+- }
+- }
+- }
++ video_window_suspend_ssaver(!xitk_is_window_iconified(gGui->video_display, gGui->video_window));
+
+ if(gGui->logo_mode == 0) {
+
+@@ -494,6 +480,8 @@ static void *slider_loop(void *dummy) {
+ stream_infos_update_infos();
+
+ }
++ } else {
++ video_window_suspend_ssaver(0);
+ }
+ }
+
+--- xine-ui-0.99.6.orig/src/xitk/videowin.c
++++ xine-ui-0.99.6/src/xitk/videowin.c
+@@ -1087,6 +1087,9 @@ static void video_window_adapt_size (voi
+
+ /* The old window should be destroyed now */
+ if(old_video_window != None) {
++ /* Screensaver control is tied to our window id */
++ video_window_suspend_ssaver(0);
++
+ XDestroyWindow(gGui->video_display, old_video_window);
+
+ if(gGui->cursor_grabbed)
+@@ -2261,69 +2264,34 @@ static void video_window_handle_event (X
+
+ }
+
+-void video_window_reset_ssaver(void) {
++void video_window_suspend_ssaver(int do_suspend) {
++ static int was_suspended;
+
+- if(gGui->ssaver_enabled && (xitk_get_last_keypressed_time() >= (long int) gGui->ssaver_timeout)) {
++ do_suspend = do_suspend && gGui->ssaver_enabled;
+
+-#ifdef HAVE_XTESTEXTENSION
+- if(gVw.have_xtest == True) {
+-
+- gVw.fake_key_cur++;
+-
+- if(gVw.fake_key_cur >= 2)
+- gVw.fake_key_cur = 0;
+-
+- XLockDisplay(gGui->video_display);
+- XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], True, CurrentTime);
+- XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], False, CurrentTime);
+- XSync(gGui->video_display, False);
+- XUnlockDisplay(gGui->video_display);
++ if(was_suspended != do_suspend) {
++ if(fork() == 0) {
++ char window_id[30];
++ char *args[] = { "xdg-screensaver", NULL, window_id, NULL };
++ int fd;
++
++ for(fd = 3; fd < 256; fd++)
++ close(fd);
++
++ args[1] = do_suspend ? "suspend" : "resume";
++ sprintf(window_id, "%lu", (unsigned long)gGui->video_window);
++ execvp(args[0], args);
++ _exit(0);
+ }
+- else
+-#endif
+- {
+- /* Reset the gnome screensaver. Look up the command in PATH only once to save time, */
+- /* assuming its location and permission will not change during run time of xine-ui. */
+- {
+- static char *const gssaver_args[] = { "gnome-screensaver-command", "--poke", NULL };
+- static char *gssaver_path = NULL;
+-
+- if(!gssaver_path) {
+- char *path = getenv("PATH");
+-
+- if(!path)
+- path = "/usr/local/bin:/usr/bin";
+- do {
+- char *p, *pbuf;
+- int plen;
+-
+- for(p = path; *path && *path != ':'; path++)
+- ;
+- if(p == path)
+- plen = 1, p = ".";
+- else
+- plen = path - p;
+- asprintf(&pbuf, "%.*s/%s", plen, p, gssaver_args[0]);
+- if ( access(pbuf, X_OK) ) {
+- free(pbuf);
+- gssaver_path = "";
+- } else
+- gssaver_path = pbuf;
+- } while(!gssaver_path[0] && *path++);
+- }
+- if(gssaver_path[0] && (fork() == 0)) {
+- execv(gssaver_path, gssaver_args);
+- exit(0);
+- }
+- }
+
+- XLockDisplay(gGui->video_display);
+- XResetScreenSaver(gGui->video_display);
+- XUnlockDisplay(gGui->video_display);
+- }
++ was_suspended = do_suspend;
+ }
+ }
+
++void video_window_reset_ssaver(void) {
++ video_window_suspend_ssaver(1);
++}
++
+ void video_window_get_frame_size(int *w, int *h) {
+ if(w)
+ *w = gVw.frame_width;
+--- xine-ui-0.99.6.orig/src/xitk/videowin.h
++++ xine-ui-0.99.6/src/xitk/videowin.h
+@@ -81,6 +81,7 @@ void video_window_get_mag (float *xmag,
+ void video_window_update_logo(void);
+ void video_window_change_skins(int);
+
++void video_window_suspend_ssaver(int do_suspend);
+ void video_window_reset_ssaver(void);
+
+ void video_window_get_frame_size(int *w, int *h);
+--- xine-ui-0.99.6.orig/src/xitk/event.c
++++ xine-ui-0.99.6/src/xitk/event.c
+@@ -135,9 +135,6 @@ static void skip_by_chapter_cb(void *dat
+ gGui->skip_by_chapter = cfg->num_value;
+ panel_update_nextprev_tips();
+ }
+-static void ssaver_timeout_cb(void *data, xine_cfg_entry_t *cfg) {
+- gGui->ssaver_timeout = cfg->num_value;
+-}
+
+ static void visual_anim_cb(void *data, xine_cfg_entry_t *cfg) {
+
+@@ -1614,14 +1611,6 @@ void gui_init (int nfiles, char *filenam
+ snapshot_loc_cb,
+ CONFIG_NO_DATA);
+
+- gGui->ssaver_timeout =
+- xine_config_register_num (__xineui_global_xine_instance, "gui.screensaver_timeout", 10,
+- _("Screensaver reset interval (s)"),
+- _("Time, in seconds, between two faked events to keep a screensaver quiet, 0 to disable."),
+- CONFIG_LEVEL_ADV,
+- ssaver_timeout_cb,
+- CONFIG_NO_DATA);
+-
+ gGui->skip_by_chapter =
+ xine_config_register_bool (__xineui_global_xine_instance, "gui.skip_by_chapter", 1,
+ _("Chapter hopping"),
+
+
+
+
+
diff --git a/extra/xine-ui/xine-ui.install b/extra/xine-ui/xine-ui.install
new file mode 100644
index 000000000..3b3aff7d9
--- /dev/null
+++ b/extra/xine-ui/xine-ui.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/xmahjongg/PKGBUILD b/extra/xmahjongg/PKGBUILD
new file mode 100644
index 000000000..2e954d29d
--- /dev/null
+++ b/extra/xmahjongg/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 123155 2011-05-09 00:53:15Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xmahjongg
+pkgver=3.7
+pkgrel=4
+pkgdesc="Mahjongg game for X-Window"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.lcdf.org/xmahjongg/"
+license=('GPL')
+depends=('gcc-libs' '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
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xmlsec/PKGBUILD b/extra/xmlsec/PKGBUILD
new file mode 100644
index 000000000..88df6c5b0
--- /dev/null
+++ b/extra/xmlsec/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 135818 2011-08-18 15:05:00Z 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.18
+pkgrel=2
+pkgdesc="XML Security Library is a C library based on LibXML2"
+license=('custom')
+arch=(i686 x86_64 'mips64el')
+url="http://www.aleksey.com/xmlsec/index.html"
+depends=('libxslt>=1.1.26' 'openssl>=1.0.0' 'gnutls' 'nss>=3.12.10' 'libtool')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.aleksey.com/xmlsec/download/${pkgname}1-${pkgver}.tar.gz)
+md5sums=('8694b4609aab647186607f79e1da7f1a')
+
+build() {
+ cd ${srcdir}/${pkgname}1-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "$srcdir/${pkgname}1-$pkgver"
+ make -k 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..8301002d9
--- /dev/null
+++ b/extra/xmlto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144002 2011-12-01 16:02:56Z 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.24
+pkgrel=2
+pkgdesc="Convert xml to many other formats"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://cyberelk.net/tim/software/xmlto/"
+license=('GPL')
+depends=('libxslt' 'perl-yaml-syck' 'perl-test-pod')
+makedepends=('docbook-xsl')
+source=("https://fedorahosted.org/releases/x/m/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('9d45bbe43f7c66c6bf585ba6635df31a')
+
+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/xmms/PKGBUILD b/extra/xmms/PKGBUILD
new file mode 100644
index 000000000..90020879c
--- /dev/null
+++ b/extra/xmms/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 134338 2011-08-02 23:29:16Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xmms
+pkgver=1.2.11
+pkgrel=4
+pkgdesc="The X MultiMedia System - a multimedia player"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://legacy.xmms2.org/"
+license=('GPL')
+depends=('gtk' 'libxxf86vm' 'libsm' 'desktop-file-utils')
+makedepends=('mesa' 'libmikmod' 'libvorbis' 'alsa-lib' 'libgl')
+optdepends=('libmikmod: for the MikMod input plugin' \
+ 'libvorbis: for the Ogg Vorbis input plugin' \
+ 'alsa-lib: for the alsa output plugin' \
+ 'libgl: for the OpenGL Spectrum analyser visualization plugin')
+options=('!libtool')
+install=xmms.install
+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)
+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/xmms/xmms.install b/extra/xmms/xmms.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/extra/xmms/xmms.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/xorg-appres/PKGBUILD b/extra/xorg-appres/PKGBUILD
new file mode 100644
index 000000000..9af921b3b
--- /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 'mips64el')
+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..80920d665
--- /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 'mips64el')
+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..09ec5570f
--- /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 'mips64el')
+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..8af9aa2b0
--- /dev/null
+++ b/extra/xorg-iceauth/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125572 2011-05-26 20:17:22Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-iceauth
+pkgver=1.0.5
+pkgrel=1
+pkgdesc="ICE authority file utility"
+arch=(i686 x86_64 'mips64el')
+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=('d996c6ecaa93dcaccee4a11991eeacd40bddc13e')
+
+build() {
+ cd "${srcdir}/iceauth-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/iceauth-${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-luit/PKGBUILD b/extra/xorg-luit/PKGBUILD
new file mode 100644
index 000000000..3b7f03484
--- /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 'mips64el')
+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..55bd8bf0f
--- /dev/null
+++ b/extra/xorg-mkfontscale/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 130725 2011-07-07 22:14:26Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-mkfontscale
+pkgver=1.0.9
+pkgrel=1
+pkgdesc="Create an index of scalable font files for X"
+arch=(i686 x86_64 'mips64el')
+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=(''5a8ac438d6d6694dcf1314b74c4d9f029da4f486)
+
+build() {
+ cd "${srcdir}/mkfontscale-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/mkfontscale-${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-oclock/PKGBUILD b/extra/xorg-oclock/PKGBUILD
new file mode 100644
index 000000000..0453c41e4
--- /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 'mips64el')
+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..c2c9c34a2
--- /dev/null
+++ b/extra/xorg-server/PKGBUILD
@@ -0,0 +1,243 @@
+# $Id: PKGBUILD 142918 2011-11-18 09:17:26Z 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.11.2
+pkgrel=2.1
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org"
+makedepends=('pixman' 'libx11' 'mesa' 'libgl' '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' 'xorg-util-macros' 'xorg-font-util' 'glproto' 'udev' 'libgcrypt')
+[ "$CARCH" = "mips64el" ] || makedepends+=('xf86driproto' 'dri2proto')
+options=('!libtool')
+source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
+ autoconfig-nvidia.patch
+ autoconfig-sis.patch
+ revert-trapezoids.patch
+ git-fixes.patch
+ xserver-1.11.2-record-crasher.patch
+ Xi-allow-passive-keygrabs-on-the-XIAll-Master-Device.patch
+ xvfb-run
+ xvfb-run.1
+ 10-quirks.conf
+ loongson.patch)
+md5sums=('8796fff441e5435ee36a72579008af24'
+ '6c7e87d63ac4b535e19a80c89d0cf091'
+ 'f8194638ca4872c2b0a67862a70bcebf'
+ 'f6c84f4936f8e00abdfbd9fb4eda83fb'
+ '6fb42ec979ecd6125b6599f54dc00d14'
+ '3f9de4dbfee2da90167192d8ca9eb2b4'
+ '47f9b979fe38043b42ff86eeee6fd0d0'
+ '52fd3effd80d7bc6c1660d4ecf23d31c'
+ '376c70308715cd2643f7bff936d9934b'
+ 'd4f7dfc6be4ef4e2c6dd7632a9d88abe'
+ 'd39c2e1a70bb4e400bb688cc74cd15f8')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # Use nouveau/nv/nvidia drivers for nvidia devices
+ patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch"
+
+ # Use unofficial imedia SiS driver for supported SiS devices
+ patch -Np0 -i "${srcdir}/autoconfig-sis.patch"
+
+ # Revert commit that causes huge slowdowns with binary nVidia driver
+ patch -Np1 -i "${srcdir}/revert-trapezoids.patch"
+
+ # Add post-release patches from 1.11 branch
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+
+ # From Fedora.
+ # Upstream URL: http://patchwork.freedesktop.org/patch/7866/
+ patch -Np1 -i "${srcdir}/xserver-1.11.2-record-crasher.patch"
+
+ # From Fedora.
+ # Upstream URL: https://bugs.freedesktop.org/show_bug.cgi?id=42298
+ patch -Np1 -i "${srcdir}/Xi-allow-passive-keygrabs-on-the-XIAll-Master-Device.patch"
+
+ # Based on http://lists.freedesktop.org/archives/xorg-devel/2011-October/026249.html
+ patch -Np1 -i "${srcdir}/loongson.patch"
+
+ autoreconf -fi
+ if [ "$CARCH" = "mips64el" ]; then
+ ./configure --prefix=/usr \
+ --enable-ipv6 \
+ --disable-dri \
+ --disable-dri2 \
+ --enable-dmx \
+ --enable-xvfb \
+ --enable-xnest \
+ --enable-composite \
+ --enable-xcsecurity \
+ --enable-xorg \
+ --enable-xephyr \
+ --disable-glx \
+ --disable-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
+ else
+ ./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
+ fi
+ make
+
+ # Disable subdirs for make install rule to make splitting easier
+ 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 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"
+
+ if [ "$CARCH" != "mips64el" ]; then
+ # 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"
+ fi
+
+ 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 xineramaproto xorg-util-macros pixman libpciaccess)
+[ "$CARCH" = "mips64el" ] || depends+=('dri2proto')
+
+ 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/Xi-allow-passive-keygrabs-on-the-XIAll-Master-Device.patch b/extra/xorg-server/Xi-allow-passive-keygrabs-on-the-XIAll-Master-Device.patch
new file mode 100644
index 000000000..8bddb2945
--- /dev/null
+++ b/extra/xorg-server/Xi-allow-passive-keygrabs-on-the-XIAll-Master-Device.patch
@@ -0,0 +1,31 @@
+From 97f2af5876dab0dfab06be735416f3fc950ed39e Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 27 Oct 2011 11:03:39 +1000
+Subject: [PATCH] Xi: allow passive keygrabs on the XIAll(Master)Devices fake
+ devices
+
+They don't have a KeyClassRec, but we must still allow passive grabs on
+them.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Tested-by: Bastien Nocera <hadess@hadess.net>
+---
+ Xi/exevents.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Xi/exevents.c b/Xi/exevents.c
+index 053c76f..edf2c39 100644
+--- a/Xi/exevents.c
++++ b/Xi/exevents.c
+@@ -1495,7 +1495,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr modifier_device,
+ rc = CheckGrabValues(client, param);
+ if (rc != Success)
+ return rc;
+- if (k == NULL)
++ if ((dev->id != XIAllDevices && dev->id != XIAllMasterDevices) && k == NULL)
+ return BadMatch;
+ if (grabtype == GRABTYPE_XI)
+ {
+--
+1.7.7
+
diff --git a/extra/xorg-server/autoconfig-nvidia.patch b/extra/xorg-server/autoconfig-nvidia.patch
new file mode 100644
index 000000000..baa2eb601
--- /dev/null
+++ b/extra/xorg-server/autoconfig-nvidia.patch
@@ -0,0 +1,29 @@
+--- a/hw/xfree86/common/xf86pciBus.c
++++ b/hw/xfree86/common/xf86pciBus.c
+@@ -1123,7 +1123,25 @@ videoPtrToDriverList(struct pci_device *
+ break;
+ case 0x102b: driverList[0] = "mga"; break;
+ case 0x10c8: driverList[0] = "neomagic"; break;
+- case 0x10de: case 0x12d2: driverList[0] = "nv"; break;
++ case 0x10de: case 0x12d2:
++ switch (dev->device_id) {
++ /* NV1 */
++ case 0x0008:
++ case 0x0009:
++ driverList[0] = "vesa";
++ break;
++ /* NV3 */
++ case 0x0018:
++ case 0x0019:
++ driverList[0] = "nv";
++ break;
++ default:
++ driverList[0] = "nouveau";
++ driverList[1] = "nv";
++ driverList[2] = "nvidia";
++ break;
++ }
++ break;
+ case 0x1106: driverList[0] = "openchrome"; break;
+ case 0x1b36: driverList[0] = "qxl"; break;
+ case 0x1163: driverList[0] = "rendition"; break;
diff --git a/extra/xorg-server/autoconfig-sis.patch b/extra/xorg-server/autoconfig-sis.patch
new file mode 100644
index 000000000..d936efaaa
--- /dev/null
+++ b/extra/xorg-server/autoconfig-sis.patch
@@ -0,0 +1,19 @@
+--- hw/xfree86/common/xf86pciBus.c.orig 2011-09-24 10:53:45.421697668 +0000
++++ hw/xfree86/common/xf86pciBus.c 2011-09-24 10:55:56.416250708 +0000
+@@ -1140,7 +1140,15 @@
+ driverList[0] = "savage"; break;
+ }
+ break;
+- case 0x1039: driverList[0] = "sis"; break;
++ case 0x1039:
++ switch (dev->device_id)
++ {
++ case 0x6350: case 0x6351:
++ driverList[0] = "sisimedia"; driverList[1] = "sis"; break;
++ default:
++ driverList[0] = "sis"; break;
++ }
++ break;
+ case 0x126f: driverList[0] = "siliconmotion"; break;
+ case 0x121a:
+ if (dev->device_id < 0x0003)
diff --git a/extra/xorg-server/git-fixes.patch b/extra/xorg-server/git-fixes.patch
new file mode 100644
index 000000000..27da61eca
--- /dev/null
+++ b/extra/xorg-server/git-fixes.patch
@@ -0,0 +1,161 @@
+From 89626304ea1ad316c5b7145a40f09377148cff21 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Thu, 20 Oct 2011 13:43:01 +0000
+Subject: xf86Crtc: handle no outputs with no modes harder.
+
+If you started an X server with no connected outputs, we pick a default
+1024x768 mode, however if you then ran an xvidmode using app against that
+server it would segfault the server due to not finding any valid modes.
+
+This was due to the no output mode set code, only adding the modes to the
+scrn->modes once, when something called randr 1.2 xf86SetScrnInfoModes would
+get called and remove all the modes and we'd end up with 0.
+
+This change fixes xf86SetScrnInfoModes to always report a scrn mode of at
+least 1024x768, and pushes the initial configuration to just call it instead
+of setting up the mode itself.
+
+Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=746926
+
+I've seen other bugs like this on other distros so it might also actually fix them.
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+(cherry picked from commit 17416e88dcfcc584fe5f87580d5d2b719b3521c3)
+---
+diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
+index d75cd77..8906806 100644
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -1915,19 +1915,25 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
+ break;
+ }
+
+- if (scrn->modes != NULL) {
+- /* For some reason, scrn->modes is circular, unlike the other mode
+- * lists. How great is that?
+- */
+- for (last = scrn->modes; last && last->next; last = last->next)
+- ;
+- last->next = scrn->modes;
+- scrn->modes->prev = last;
+- if (mode) {
+- while (scrn->modes != mode)
+- scrn->modes = scrn->modes->next;
+- }
++ if (!scrn->modes) {
++ scrn->modes = xf86ModesAdd(scrn->modes,
++ xf86CVTMode(scrn->display->virtualX,
++ scrn->display->virtualY,
++ 60, 0, 0));
++ }
++
++ /* For some reason, scrn->modes is circular, unlike the other mode
++ * lists. How great is that?
++ */
++ for (last = scrn->modes; last && last->next; last = last->next)
++ ;
++ last->next = scrn->modes;
++ scrn->modes->prev = last;
++ if (mode) {
++ while (scrn->modes != mode)
++ scrn->modes = scrn->modes->next;
+ }
++
+ scrn->currentMode = scrn->modes;
+ #ifdef XFreeXDGA
+ if (scrn->pScreen)
+@@ -2529,16 +2535,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
+ width, height);
+ }
+
+- if (have_outputs) {
+- /* Mirror output modes to scrn mode list */
+- xf86SetScrnInfoModes (scrn);
+- } else {
+- /* Clear any existing modes from scrn->modes */
+- while (scrn->modes != NULL)
+- xf86DeleteMode(&scrn->modes, scrn->modes);
+- scrn->modes = xf86ModesAdd(scrn->modes,
+- xf86CVTMode(width, height, 60, 0, 0));
+- }
++ xf86SetScrnInfoModes (scrn);
+
+ success = TRUE;
+ bailout:
+--
+cgit v0.9.0.2-2-gbebe
+From 97f2ae60fc0cc755abd8b88df826fcb1a20464fe Mon Sep 17 00:00:00 2001
+From: Christopher Yeleighton <giecrilj@stegny.2a.pl>
+Date: Tue, 25 Oct 2011 01:47:06 +0000
+Subject: Bug 38420: Xvfb crashes in miInitVisuals() when started with depth=2
+
+https://bugs.freedesktop.org/show_bug.cgi?id=38420
+
+Exit with fatal error message, not segfault.
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+(cherry picked from commit 7d50211ab57a35910d79fc3f67ae89aff91fa995)
+---
+diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
+index 31ed505..dce3f84 100644
+--- a/hw/vfb/InitOutput.c
++++ b/hw/vfb/InitOutput.c
+@@ -864,6 +864,8 @@ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
+ (1 << DirectColor)),
+ 10, TrueColor, 0x3ff00000, 0x000ffc00, 0x000003ff);
+ break;
++ default:
++ return FALSE;
+ }
+
+ miSetPixmapDepths ();
+--
+cgit v0.9.0.2-2-gbebe
+From 34bb83b9df20ff63dbb147ed661f39efb8bae8e4 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 24 Oct 2011 02:00:32 +0000
+Subject: dix: block signals when closing all devices
+
+When closing down all devices, we manually unset master for all attached
+devices, but the device's sprite info still points to the master's sprite
+info. This leaves us a window where the master is freed already but the
+device isn't yet. A signal during that window causes dereference of the
+already freed spriteInfo in mieqEnqueue's EnqueueScreen macro.
+
+Simply block signals when removing all devices. It's not like we're really
+worrying about high-responsive input at this stage.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=737031
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Julien Cristau <jcristau@debian.org>
+(cherry picked from commit d7c44a7c9760449bef263413ad3b20f19b1dc95a)
+---
+diff --git a/dix/devices.c b/dix/devices.c
+index 0ccf252..cbdd4ea 100644
+--- a/dix/devices.c
++++ b/dix/devices.c
+@@ -982,6 +982,8 @@ CloseDownDevices(void)
+ {
+ DeviceIntPtr dev;
+
++ OsBlockSignals();
++
+ /* Float all SDs before closing them. Note that at this point resources
+ * (e.g. cursors) have been freed already, so we can't just call
+ * AttachDevice(NULL, dev, NULL). Instead, we have to forcibly set master
+@@ -1004,6 +1006,8 @@ CloseDownDevices(void)
+ inputInfo.keyboard = NULL;
+ inputInfo.pointer = NULL;
+ XkbDeleteRulesDflts();
++
++ OsReleaseSignals();
+ }
+
+ /**
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/xorg-server/loongson.patch b/extra/xorg-server/loongson.patch
new file mode 100644
index 000000000..b6c9692fc
--- /dev/null
+++ b/extra/xorg-server/loongson.patch
@@ -0,0 +1,49 @@
+diff -ru xorg-server-1.11.2.orig/hw/xfree86/dri/sarea.h xorg-server-1.11.2/hw/xfree86/dri/sarea.h
+--- xorg-server-1.11.2.orig/hw/xfree86/dri/sarea.h 2011-12-07 16:47:06.971237310 +0100
++++ xorg-server-1.11.2/hw/xfree86/dri/sarea.h 2011-12-07 16:48:40.132392770 +0100
+@@ -42,6 +42,8 @@
+ /* SAREA area needs to be at least a page */
+ #if defined(__alpha__)
+ #define SAREA_MAX 0x2000
++#elif defined(__mips__)
++#define SAREA_MAX 0x4000
+ #elif defined(__ia64__)
+ #define SAREA_MAX 0x10000 /* 64kB */
+ #else
+diff -ru xorg-server-1.11.2.orig/hw/xfree86/os-support/linux/lnx_video.c xorg-server-1.11.2/hw/xfree86/os-support/linux/lnx_video.c
+--- xorg-server-1.11.2.orig/hw/xfree86/os-support/linux/lnx_video.c 2011-12-07 16:47:06.967237429 +0100
++++ xorg-server-1.11.2/hw/xfree86/os-support/linux/lnx_video.c 2011-12-07 16:52:33.200881187 +0100
+@@ -493,9 +493,10 @@
+ Bool
+ xf86EnableIO(void)
+ {
+-#if defined(__powerpc__)
++#if defined(__powerpc__) || defined(__mips__)
+ int fd;
+ unsigned int ioBase_phys;
++ extern unsigned int IOPortBase;
+ #endif
+
+ if (ExtendedEnabled)
+@@ -520,6 +521,21 @@
+ #endif
+ }
+ close(fd);
++#elif defined(__mips__)
++ fd = open("/dev/mem", O_RDWR);
++ IOPortBase = (volatile unsigned char *)mmap(0, 0x20000,
++ PROT_READ | PROT_WRITE, MAP_SHARED, fd,
++ 0x1fd00000);
++ if (IOPortBase == MAP_FAILED) {
++ xf86Msg(X_WARNING,
++ "xf86EnableIOPorts: Failed to map iobase (%s)\n",
++ strerror(errno));
++ return FALSE;
++ }
++ close(fd);
++ xf86Msg(X_WARNING,
++ "xf86EnableIOPorts: map iobase (%x)\n",
++ IOPortBase);
+ #elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__) && !defined(__m32r__) && !defined(__nds32__)
+ if (ioperm(0, 1024, 1) || iopl(3)) {
+ if (errno == ENODEV)
diff --git a/extra/xorg-server/revert-trapezoids.patch b/extra/xorg-server/revert-trapezoids.patch
new file mode 100644
index 000000000..b9046c5cb
--- /dev/null
+++ b/extra/xorg-server/revert-trapezoids.patch
@@ -0,0 +1,179 @@
+diff -ru a/fb/fbpict.c b/fb/fbpict.c
+--- a/fb/fbpict.c 2011-08-01 01:44:24.000000000 +0200
++++ b/fb/fbpict.c 2011-10-05 22:45:29.000000000 +0200
+@@ -364,7 +364,7 @@
+ ps->Glyphs = miGlyphs;
+ ps->CompositeRects = miCompositeRects;
+ ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
+- ps->Trapezoids = fbTrapezoids;
++ ps->Trapezoids = miTrapezoids;
+ ps->AddTraps = fbAddTraps;
+ ps->AddTriangles = fbAddTriangles;
+ ps->Triangles = fbTriangles;
+diff -ru a/render/mipict.c b/render/mipict.c
+--- a/render/mipict.c 2011-04-04 05:19:50.000000000 +0200
++++ b/render/mipict.c 2011-10-05 22:02:53.000000000 +0200
+@@ -573,6 +573,67 @@
+ }
+ }
+
++void
++miTrapezoids (CARD8 op,
++ PicturePtr pSrc,
++ PicturePtr pDst,
++ PictFormatPtr maskFormat,
++ INT16 xSrc,
++ INT16 ySrc,
++ int ntrap,
++ xTrapezoid *traps)
++{
++ ScreenPtr pScreen = pDst->pDrawable->pScreen;
++ PictureScreenPtr ps = GetPictureScreen(pScreen);
++
++ /*
++ * Check for solid alpha add
++ */
++ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
++ {
++ for (; ntrap; ntrap--, traps++)
++ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0);
++ }
++ else if (maskFormat)
++ {
++ PicturePtr pPicture;
++ BoxRec bounds;
++ INT16 xDst, yDst;
++ INT16 xRel, yRel;
++
++ xDst = traps[0].left.p1.x >> 16;
++ yDst = traps[0].left.p1.y >> 16;
++
++ miTrapezoidBounds (ntrap, traps, &bounds);
++ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
++ return;
++ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
++ bounds.x2 - bounds.x1,
++ bounds.y2 - bounds.y1);
++ if (!pPicture)
++ return;
++ for (; ntrap; ntrap--, traps++)
++ (*ps->RasterizeTrapezoid) (pPicture, traps,
++ -bounds.x1, -bounds.y1);
++ xRel = bounds.x1 + xSrc - xDst;
++ yRel = bounds.y1 + ySrc - yDst;
++ CompositePicture (op, pSrc, pPicture, pDst,
++ xRel, yRel, 0, 0, bounds.x1, bounds.y1,
++ bounds.x2 - bounds.x1,
++ bounds.y2 - bounds.y1);
++ FreePicture (pPicture, 0);
++ }
++ else
++ {
++ if (pDst->polyEdge == PolyEdgeSharp)
++ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
++ else
++ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
++ for (; ntrap; ntrap--, traps++)
++ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps);
++ }
++}
++
+ Bool
+ miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
+ {
+@@ -599,7 +660,7 @@
+ ps->Composite = 0; /* requires DDX support */
+ ps->Glyphs = miGlyphs;
+ ps->CompositeRects = miCompositeRects;
+- ps->Trapezoids = 0;
++ ps->Trapezoids = miTrapezoids;
+ ps->Triangles = 0;
+
+ ps->RasterizeTrapezoid = 0; /* requires DDX support */
+diff -ru a/render/mipict.h b/render/mipict.h
+--- a/render/mipict.h 2011-04-04 05:19:50.000000000 +0200
++++ b/render/mipict.h 2011-10-05 22:06:19.000000000 +0200
+@@ -129,6 +129,23 @@
+ CARD32 pixel,
+ xRenderColor *color);
+
++extern _X_EXPORT PicturePtr
++miCreateAlphaPicture (ScreenPtr pScreen,
++ PicturePtr pDst,
++ PictFormatPtr pPictFormat,
++ CARD16 width,
++ CARD16 height);
++
++extern _X_EXPORT void
++miTrapezoids (CARD8 op,
++ PicturePtr pSrc,
++ PicturePtr pDst,
++ PictFormatPtr maskFormat,
++ INT16 xSrc,
++ INT16 ySrc,
++ int ntrap,
++ xTrapezoid *traps);
++
+ extern _X_EXPORT Bool
+ miIsSolidAlpha (PicturePtr pSrc);
+
+diff -ru a/render/mitrap.c b/render/mitrap.c
+--- a/render/mitrap.c 2011-04-04 05:19:50.000000000 +0200
++++ b/render/mitrap.c 2011-10-05 22:05:29.000000000 +0200
+@@ -34,6 +34,55 @@
+ #include "picturestr.h"
+ #include "mipict.h"
+
++PicturePtr
++miCreateAlphaPicture (ScreenPtr pScreen,
++ PicturePtr pDst,
++ PictFormatPtr pPictFormat,
++ CARD16 width,
++ CARD16 height)
++{
++ PixmapPtr pPixmap;
++ PicturePtr pPicture;
++ GCPtr pGC;
++ int error;
++ xRectangle rect;
++
++ if (width > 32767 || height > 32767)
++ return 0;
++
++ if (!pPictFormat)
++ {
++ if (pDst->polyEdge == PolyEdgeSharp)
++ pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
++ else
++ pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
++ if (!pPictFormat)
++ return 0;
++ }
++
++ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height,
++ pPictFormat->depth, 0);
++ if (!pPixmap)
++ return 0;
++ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen);
++ if (!pGC)
++ {
++ (*pScreen->DestroyPixmap) (pPixmap);
++ return 0;
++ }
++ ValidateGC (&pPixmap->drawable, pGC);
++ rect.x = 0;
++ rect.y = 0;
++ rect.width = width;
++ rect.height = height;
++ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect);
++ FreeScratchGC (pGC);
++ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat,
++ 0, 0, serverClient, &error);
++ (*pScreen->DestroyPixmap) (pPixmap);
++ return pPicture;
++}
++
+ static xFixed
+ miLineFixedX (xLineFixed *l, xFixed y, Bool ceil)
+ {
+
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/xserver-1.11.2-record-crasher.patch b/extra/xorg-server/xserver-1.11.2-record-crasher.patch
new file mode 100644
index 000000000..3af207bb9
--- /dev/null
+++ b/extra/xorg-server/xserver-1.11.2-record-crasher.patch
@@ -0,0 +1,241 @@
+From patchwork Tue Nov 8 18:22:13 2011
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Subject: Save major/minor opcodes in ClientRec for RecordAReply
+Date: Tue, 08 Nov 2011 18:22:13 -0000
+From: Keith Packard <keithp@keithp.com>
+X-Patchwork-Id: 7866
+Message-Id: <1320776533-3120-1-git-send-email-keithp@keithp.com>
+To: xorg-devel@lists.freedesktop.org
+
+The record extension needs the major and minor opcodes in the reply
+hook, but the request buffer may have been freed by the time the hook
+is invoked. Saving the request major and minor codes as the request is
+executed avoids fetching from the defunct request buffer.
+
+This patch also eliminates the public MinorOpcodeOfRequest function,
+making it static to dispatch. Usages of that function have been
+replaced with direct access to the new ClientRec field.
+
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Reviewed-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
+
+---
+Here's what I was thinking of to fix this -- just record the major and
+minor opcodes of the request in the ClientRec during Dispatch and then
+using those fields in RecordAReply instead of fetching the discarded
+request buffer.
+
+This is entirely untested; I don't know how to make the old code break.
+
+ Xext/security.c | 4 +---
+ Xext/xselinux_hooks.c | 4 ++--
+ dix/dispatch.c | 31 ++++++++++++++++++++++---------
+ dix/extension.c | 14 --------------
+ include/dixstruct.h | 1 +
+ include/extension.h | 2 --
+ record/record.c | 8 +++-----
+ 7 files changed, 29 insertions(+), 35 deletions(-)
+
+[ fedora: technically this is an ABI breaker since it's changing ClientRec,
+ but hopefully not in a way that matters. If it does matter, easiest thing
+ to do is have Record add a hook for XaceHookDispatch. - ajax ]
+
+diff --git a/Xext/security.c b/Xext/security.c
+index 08d8158..b0d82ab 100644
+--- a/Xext/security.c
++++ b/Xext/security.c
+@@ -148,9 +148,7 @@ SecurityLabelInitial(void)
+ static _X_INLINE const char *
+ SecurityLookupRequestName(ClientPtr client)
+ {
+- int major = ((xReq *)client->requestBuffer)->reqType;
+- int minor = MinorOpcodeOfRequest(client);
+- return LookupRequestName(major, minor);
++ return LookupRequestName(client->majorOp, client->minorOp);
+ }
+
+
+diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c
+index f1d8e5d..0d4c9ab 100644
+--- a/Xext/xselinux_hooks.c
++++ b/Xext/xselinux_hooks.c
+@@ -263,8 +263,8 @@ SELinuxAudit(void *auditdata,
+ if (client) {
+ REQUEST(xReq);
+ if (stuff) {
+- major = stuff->reqType;
+- minor = MinorOpcodeOfRequest(client);
++ major = client->majorOp;
++ minor = client->minorOp;
+ }
+ }
+ if (audit->id)
+diff --git a/dix/dispatch.c b/dix/dispatch.c
+index 6e33615..3600acd 100644
+--- a/dix/dispatch.c
++++ b/dix/dispatch.c
+@@ -337,7 +337,20 @@ DisableLimitedSchedulingLatency(void)
+ SmartScheduleLatencyLimited = 0;
+ }
+
+-#define MAJOROP ((xReq *)client->requestBuffer)->reqType
++static inline unsigned short
++MinorOpcodeOfRequest(ClientPtr client)
++{
++ unsigned char major;
++ ExtensionEntry *ext;
++
++ major = ((xReq *)client->requestBuffer)->reqType;
++ if (major < EXTENSION_BASE)
++ return 0;
++ ext = GetExtensionEntry(major);
++ if (!ext)
++ return 0;
++ return ext->MinorOpcode (client);
++}
+
+ void
+ Dispatch(void)
+@@ -419,21 +432,23 @@ Dispatch(void)
+ }
+
+ client->sequence++;
++ client->majorOp = ((xReq *)client->requestBuffer)->reqType;
++ client->minorOp = MinorOpcodeOfRequest(client);
+ #ifdef XSERVER_DTRACE
+- XSERVER_REQUEST_START(LookupMajorName(MAJOROP), MAJOROP,
++ XSERVER_REQUEST_START(LookupMajorName(client->majorOp), client->majorOp,
+ ((xReq *)client->requestBuffer)->length,
+ client->index, client->requestBuffer);
+ #endif
+ if (result > (maxBigRequestSize << 2))
+ result = BadLength;
+ else {
+- result = XaceHookDispatch(client, MAJOROP);
++ result = XaceHookDispatch(client, client->majorOp);
+ if (result == Success)
+- result = (* client->requestVector[MAJOROP])(client);
++ result = (* client->requestVector[client->majorOp])(client);
+ XaceHookAuditEnd(client, result);
+ }
+ #ifdef XSERVER_DTRACE
+- XSERVER_REQUEST_DONE(LookupMajorName(MAJOROP), MAJOROP,
++ XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp), client->majorOp,
+ client->sequence, client->index, result);
+ #endif
+
+@@ -444,8 +459,8 @@ Dispatch(void)
+ }
+ else if (result != Success)
+ {
+- SendErrorToClient(client, MAJOROP,
+- MinorOpcodeOfRequest(client),
++ SendErrorToClient(client, client->majorOp,
++ client->minorOp,
+ client->errorValue, result);
+ break;
+ }
+@@ -466,8 +481,6 @@ Dispatch(void)
+ SmartScheduleLatencyLimited = 0;
+ }
+
+-#undef MAJOROP
+-
+ static int VendorRelease = VENDOR_RELEASE;
+ static char *VendorString = VENDOR_NAME;
+
+diff --git a/dix/extension.c b/dix/extension.c
+index c7bbac5..b677cdb 100644
+--- a/dix/extension.c
++++ b/dix/extension.c
+@@ -228,20 +228,6 @@ StandardMinorOpcode(ClientPtr client)
+ return ((xReq *)client->requestBuffer)->data;
+ }
+
+-unsigned short
+-MinorOpcodeOfRequest(ClientPtr client)
+-{
+- unsigned char major;
+-
+- major = ((xReq *)client->requestBuffer)->reqType;
+- if (major < EXTENSION_BASE)
+- return 0;
+- major -= EXTENSION_BASE;
+- if (major >= NumExtensions)
+- return 0;
+- return (*extensions[major]->MinorOpcode)(client);
+-}
+-
+ void
+ CloseDownExtensions(void)
+ {
+diff --git a/include/dixstruct.h b/include/dixstruct.h
+index 6cc9614..0a85f40 100644
+--- a/include/dixstruct.h
++++ b/include/dixstruct.h
+@@ -122,6 +122,7 @@ typedef struct _Client {
+
+ DeviceIntPtr clientPtr;
+ ClientIdPtr clientIds;
++ unsigned short majorOp, minorOp;
+ } ClientRec;
+
+ /*
+diff --git a/include/extension.h b/include/extension.h
+index 29a11c3..9249951 100644
+--- a/include/extension.h
++++ b/include/extension.h
+@@ -52,8 +52,6 @@ _XFUNCPROTOBEGIN
+
+ extern _X_EXPORT unsigned short StandardMinorOpcode(ClientPtr /*client*/);
+
+-extern _X_EXPORT unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/);
+-
+ extern _X_EXPORT Bool EnableDisableExtension(char *name, Bool enable);
+
+ extern _X_EXPORT void EnableDisableExtensionError(char *name, Bool enable);
+diff --git a/record/record.c b/record/record.c
+index 68311ac..4a0fe23 100644
+--- a/record/record.c
++++ b/record/record.c
+@@ -546,7 +546,7 @@ RecordARequest(ClientPtr client)
+ }
+ else /* extension, check minor opcode */
+ {
+- int minorop = MinorOpcodeOfRequest(client);
++ int minorop = client->minorOp;
+ int numMinOpInfo;
+ RecordMinorOpPtr pMinorOpInfo = pRCAP->pRequestMinOpInfo;
+
+@@ -603,12 +603,9 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
+ RecordContextPtr pContext;
+ RecordClientsAndProtocolPtr pRCAP;
+ int eci;
+- int majorop;
+ ReplyInfoRec *pri = (ReplyInfoRec *)calldata;
+ ClientPtr client = pri->client;
+- REQUEST(xReq);
+
+- majorop = stuff->reqType;
+ for (eci = 0; eci < numEnabledContexts; eci++)
+ {
+ pContext = ppAllContexts[eci];
+@@ -616,6 +613,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
+ NULL);
+ if (pRCAP)
+ {
++ int majorop = client->majorOp;
+ if (pContext->continuedReply)
+ {
+ RecordAProtocolElement(pContext, client, XRecordFromServer,
+@@ -635,7 +633,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
+ }
+ else /* extension, check minor opcode */
+ {
+- int minorop = MinorOpcodeOfRequest(client);
++ int minorop = client->minorOp;
+ int numMinOpInfo;
+ RecordMinorOpPtr pMinorOpInfo = pRCAP->pReplyMinOpInfo;
+ assert (pMinorOpInfo);
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..e7b850a1d
--- /dev/null
+++ b/extra/xorg-sessreg/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 141120 2011-10-24 12:17:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-sessreg
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="Register X sessions in system utmp/utmpx databases"
+arch=(i686 x86_64 'mips64el')
+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)
+sha256sums=('8734ee580264ab92e984d8f84611dada89906d6b548334a5e7d4b0ddba7c2e52')
+
+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..2aceaead9
--- /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 'mips64el')
+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..ba53babaa
--- /dev/null
+++ b/extra/xorg-smproxy/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 130730 2011-07-07 22:18:10Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-smproxy
+pkgver=1.0.5
+pkgrel=1
+pkgdesc="Allows X applications that do not support X11R6 session management to participate in an X11R6 session"
+arch=(i686 x86_64 'mips64el')
+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=('59e19def9a351896cb3101cb580ae424e9e48a3e')
+
+build() {
+ cd "${srcdir}/smproxy-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/smproxy-${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-twm/PKGBUILD b/extra/xorg-twm/PKGBUILD
new file mode 100644
index 000000000..94e32f41b
--- /dev/null
+++ b/extra/xorg-twm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 134274 2011-08-02 18:36:40Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-twm
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="Tab Window Manager for the X Window System"
+arch=(i686 x86_64 'mips64el')
+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)
+sha256sums=('0f5d53dec62540fa97c96b4e983695cc32114836d256b64885253ab58b5bcd44')
+
+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..489dac0b2
--- /dev/null
+++ b/extra/xorg-x11perf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 134289 2011-08-02 18:59:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-x11perf
+pkgver=1.5.4
+pkgrel=1
+pkgdesc="Simple X server performance benchmarker"
+arch=(i686 x86_64 'mips64el')
+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)
+sha256sums=('24ee8857a2bf414b360addabf1c27ef797f7f504ee9bc409c151760bfbe53184')
+
+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..fc3b2bb16
--- /dev/null
+++ b/extra/xorg-xauth/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 125581 2011-05-26 20:38:49Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xauth
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="X.Org authorization settings program"
+arch=(i686 x86_64 'mips64el')
+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=('10a68367ecc60a641b9aa89e6f24f7ca71f23874')
+
+build() {
+ cd "${srcdir}/xauth-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xauth-${pkgver}"
+ 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..2b1a3c230
--- /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 'mips64el')
+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..47bd31dd8
--- /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 'mips64el')
+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..d4d16a8c4
--- /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 'mips64el')
+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..60c4d624b
--- /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 'mips64el')
+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..f3d2ee24e
--- /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 'mips64el')
+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..9687e02fb
--- /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 'mips64el')
+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..1ecc9eeac
--- /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 'mips64el')
+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..31e374a1d
--- /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 'mips64el')
+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..ac47ef1e2
--- /dev/null
+++ b/extra/xorg-xdm/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 140275 2011-10-11 21:28:00Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=xorg-xdm
+pkgver=1.1.11
+pkgrel=1
+pkgdesc="X Display Manager"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('pam' 'libxaw' 'libxinerama' 'xorg-xrdb' 'xorg-sessreg' 'libxft' 'consolekit')
+makedepends=('pkgconfig' 'xorg-util-macros')
+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-consolekit.patch
+ xdm.pam)
+md5sums=('64a1af1f7eb69feae12e75d4cc3aaf19'
+ '234ae568e7b22cbc09433bb396ff3d80'
+ '2c30078c50bc653d72eb5114506eb313'
+ '46b11173b58e2241577d5ffd48ab8f8d'
+ '419d6289ba6f851135f5c70c0e3cbec4')
+sha256sums=('d4da426ddea0124279a3f2e00a26db61944690628ee818a64df9d27352081c47'
+ 'fd3e7c20837b42a8ab111369fd6dc9612f9edb91c1f6904cca1d6a1fa3cfa0ff'
+ '77a1ce9bdf363591b72798db08b4df3589bd4e64737fd32cf9028f9245450edb'
+ '47190f311c97c0d85b1fcab47ee5a8575013db1200a5e30a57a7ea4ef3e0c23a'
+ '36cf924a893ef851855ebcdc5468523a9d182c3620698e01dffc35d05d74764b')
+
+build() {
+ cd "${srcdir}/xdm-${pkgver}"
+ patch -Np0 -i "${srcdir}/Xsession-loginshell.patch"
+ patch -Np1 -i "${srcdir}/Xsession-xsm.patch"
+ patch -Np1 -i "${srcdir}/xdm-consolekit.patch"
+
+ autoreconf -fi
+ ./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-consolekit.patch b/extra/xorg-xdm/xdm-consolekit.patch
new file mode 100644
index 000000000..7d85b97e0
--- /dev/null
+++ b/extra/xorg-xdm/xdm-consolekit.patch
@@ -0,0 +1,225 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -362,6 +362,20 @@
+
+ AM_CONDITIONAL(DYNAMIC_GREETER, test x$DYNAMIC_GREETER = xyes)
+
++# ConsoleKit support
++AC_ARG_WITH(consolekit, AC_HELP_STRING([--with-consolekit], [Use ConsoleKit]),
++ [USE_CONSOLEKIT=$withval], [USE_CONSOLEKIT=yes])
++if test x"$USE_CONSOLEKIT" != xno; then
++ PKG_CHECK_MODULES(CK_CONNECTOR, ck-connector,
++ [USE_CONSOLEKIT=yes], [USE_CONSOLEKIT=no])
++ if test x"$USE_CONSOLEKIT" = xyes; then
++ AC_DEFINE([USE_CONSOLEKIT], 1, [Define to 1 to use ConsoleKit])
++ XDM_CFLAGS="$XDM_CFLAGS $CK_CONNECTOR_CFLAGS -DUSE_CONSOLEKIT"
++ XDM_LIBS="$XDM_LIBS $CK_CONNECTOR_LIBS"
++ fi
++fi
++dnl AM_CONDITIONAL(USE_CONSOLEKIT, test$USE_CONSOLEKIT = xyes)
++
+ #
+ # XDM
+ #
+--- a/xdm/session.c
++++ b/xdm/session.c
+@@ -66,6 +66,11 @@
+ #endif
+ #endif /* USE_PAM */
+
++#ifdef USE_CONSOLEKIT
++#include <ck-connector.h>
++#include <dbus/dbus.h>
++#endif
++
+ #ifdef __SCO__
+ #include <prot.h>
+ #endif
+@@ -472,6 +477,97 @@
+ }
+ }
+
++#ifdef USE_CONSOLEKIT
++
++static CkConnector *connector;
++
++static int openCKSession(struct verify_info *verify, struct display *d)
++{
++ int ret;
++ DBusError error;
++ char *remote_host_name = "";
++ dbus_bool_t is_local;
++ char *display_name = "";
++ char *display_device = "";
++ char devtmp[16];
++
++ if (!use_consolekit)
++ return 1;
++
++ is_local = d->displayType.location == Local;
++ if (d->peerlen > 0 && d->peer)
++ remote_host_name = d->peer;
++ if (d->name)
++ display_name = d->name;
++ /* how can we get the corresponding tty at best...? */
++ if (d->windowPath) {
++ display_device = strchr(d->windowPath, ':');
++ if (display_device && display_device[1])
++ display_device++;
++ else
++ display_device = d->windowPath;
++ snprintf(devtmp, sizeof(devtmp), "/dev/tty%s", display_device);
++ display_device = devtmp;
++ }
++
++ connector = ck_connector_new();
++ if (!connector) {
++ LogOutOfMem("ck_connector");
++ return 0;
++ }
++
++ dbus_error_init(&error);
++ ret = ck_connector_open_session_with_parameters(
++ connector, &error,
++ "unix-user", &verify->uid,
++ "x11-display", &display_name,
++ "x11-display-device", &display_device,
++ "remote-host-name", &remote_host_name,
++ "is-local", &is_local,
++ NULL);
++ if (!ret) {
++ if (dbus_error_is_set(&error)) {
++ LogError("Dbus error: %s\n", error.message);
++ dbus_error_free(&error);
++ } else {
++ LogError("ConsoleKit error\n");
++ }
++ LogError("console-kit-daemon not running?\n");
++ ck_connector_unref(connector);
++ connector = NULL;
++ return 0;
++ }
++
++ verify->userEnviron = setEnv(verify->userEnviron,
++ "XDG_SESSION_COOKIE", ck_connector_get_cookie(connector));
++ return 1;
++}
++
++static void closeCKSession(void)
++{
++ DBusError error;
++
++ if (!connector)
++ return;
++
++ dbus_error_init(&error);
++ if (!ck_connector_close_session(connector, &error)) {
++ if (dbus_error_is_set(&error)) {
++ LogError("Dbus error: %s\n", error.message);
++ dbus_error_free(&error);
++ } else {
++ LogError("ConsoleKit close error\n");
++ }
++ LogError("console-kit-daemon not running?\n");
++ }
++ ck_connector_unref(connector);
++ connector = NULL;
++}
++#else
++#define openCKSession(v,d) 1
++#define closeCKSession()
++#endif
++
+ void
+ SessionExit (struct display *d, int status, int removeAuth)
+ {
+@@ -486,6 +580,8 @@
+ }
+ #endif
+
++ closeCKSession();
++
+ /* make sure the server gets reset after the session is over */
+ if (d->serverPid >= 2 && d->resetSignal)
+ kill (d->serverPid, d->resetSignal);
+@@ -568,6 +664,10 @@
+ #ifdef USE_PAM
+ if (pamh) pam_open_session(pamh, 0);
+ #endif
++
++ if (!openCKSession(verify, d))
++ return 0;
++
+ switch (pid = fork ()) {
+ case 0:
+ CleanUpChild ();
+--- a/include/dm.h
++++ b/include/dm.h
+@@ -325,6 +325,9 @@
+ extern char *prngdSocket;
+ extern int prngdPort;
+ # endif
++#ifdef USE_CONSOLEKIT
++extern int use_consolekit;
++#endif
+
+ extern char *greeterLib;
+ extern char *willing;
+--- a/xdm/resource.c
++++ b/xdm/resource.c
+@@ -68,6 +68,9 @@
+ char *prngdSocket;
+ int prngdPort;
+ #endif
++#ifdef USE_CONSOLEKIT
++int use_consolekit;
++#endif
+
+ char *greeterLib;
+ char *willing;
+@@ -258,6 +261,10 @@
+ "false"} ,
+ { "willing", "Willing", DM_STRING, &willing,
+ ""} ,
++#ifdef USE_CONSOLEKIT
++{ "consoleKit", "ConsoleKit", DM_BOOL, (char **) &use_consolekit,
++ "true"} ,
++#endif
+ };
+
+ # define NUM_DM_RESOURCES (sizeof DmResources / sizeof DmResources[0])
+@@ -440,7 +447,11 @@
+ {"-debug", "*debugLevel", XrmoptionSepArg, (caddr_t) NULL },
+ {"-xrm", NULL, XrmoptionResArg, (caddr_t) NULL },
+ {"-daemon", ".daemonMode", XrmoptionNoArg, "true" },
+-{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" }
++{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" },
++#ifdef USE_CONSOLEKIT
++{"-consolekit", ".consoleKit", XrmoptionNoArg, "true" },
++{"-noconsolekit", ".consoleKit", XrmoptionNoArg, "false" }
++#endif
+ };
+
+ static int originalArgc;
+--- a/man/xdm.man
++++ b/man/xdm.man
+@@ -51,6 +51,8 @@
+ ] [
+ .B \-session
+ .I session_program
++] [
++.B \-noconsolekit
+ ]
+ .SH DESCRIPTION
+ .I Xdm
+@@ -218,6 +220,10 @@
+ .IP "\fB\-xrm\fP \fIresource_specification\fP"
+ Allows an arbitrary resource to be specified, as in most
+ X Toolkit applications.
++.IP "\fB\-noconsolekit\fP"
++Specifies ``false'' as the value for the \fBDisplayManager.consoleKit\fP
++resource.
++This suppresses the session management using ConsoleKit.
+ .SH RESOURCES
+ At many stages the actions of
+ .I xdm
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..48c4b5ae9
--- /dev/null
+++ b/extra/xorg-xdpyinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 141118 2011-10-24 12:15:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xdpyinfo
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="Display information utility for X"
+arch=(i686 x86_64 'mips64el')
+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)
+sha256sums=('23ee4944a32b5701b4379cb420729eb7a4dde54de2b5b006d4747855efd6d73f')
+
+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..f247c07ee
--- /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 'mips64el')
+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..d9f9d49d7
--- /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 'mips64el')
+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..7e981106a
--- /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 'mips64el')
+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..5c18175bb
--- /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 'mips64el')
+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..5c4bba1c6
--- /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 'mips64el')
+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..827003048
--- /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 'mips64el')
+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..cb7244db9
--- /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 'mips64el')
+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..fd9a43f7c
--- /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 'mips64el')
+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..82519eab8
--- /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 'mips64el')
+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..e313a264b
--- /dev/null
+++ b/extra/xorg-xinit/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 140273 2011-10-11 21:27:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xorg-xinit
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="X.Org initialisation program "
+arch=('i686' 'x86_64' 'mips64el')
+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=('ee234056d8a3dbf37b61b4bcb35b88e4'
+ '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..a7afa3c17
--- /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 'mips64el')
+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..058840aac
--- /dev/null
+++ b/extra/xorg-xkbcomp/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 130738 2011-07-07 22:22:56Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbcomp
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="X Keyboard description compiler"
+arch=(i686 x86_64 mips64el)
+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=('c20d1b5b8e25634cc9a79c5e4c3397a5ffbee1e0')
+
+build() {
+ cd "${srcdir}/xkbcomp-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xkbcomp-${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-xkbevd/PKGBUILD b/extra/xorg-xkbevd/PKGBUILD
new file mode 100644
index 000000000..e95a0944d
--- /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 'mips64el')
+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..81e2c9050
--- /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 'mips64el')
+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..a2b3f1580
--- /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 'mips64el')
+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..1451a91a0
--- /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 'mips64el')
+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..56fbc99e2
--- /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 'mips64el')
+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..9a7f32f6e
--- /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 'mips64el')
+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..efae30be0
--- /dev/null
+++ b/extra/xorg-xlsclients/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 126568 2011-06-06 09:58:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlsclients
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="List client applications running on a display"
+arch=(i686 x86_64 'mips64el')
+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/xlsclients-${pkgver}.tar.bz2)
+sha1sums=('c4051429c190444ae9ba327f0ad776a74eb7b27b')
+
+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..4e3728a34
--- /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 'mips64el')
+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..d56b4fe44
--- /dev/null
+++ b/extra/xorg-xman/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 113771 2011-03-10 15:39:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xman
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="Unix manual page viewer"
+arch=(i686 x86_64 'mips64el')
+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=('ba10cf0b2d0c2b40ded93e892c69e7bd4586ad1e')
+
+build() {
+ cd "${srcdir}/xman-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xman-${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-xmessage/PKGBUILD b/extra/xorg-xmessage/PKGBUILD
new file mode 100644
index 000000000..82c3fe420
--- /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 'mips64el')
+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..92942a1e3
--- /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 'mips64el')
+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..6bd56b68f
--- /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 'mips64el')
+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..ae86243b8
--- /dev/null
+++ b/extra/xorg-xprop/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 130748 2011-07-07 22:27:50Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xprop
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Property displayer for X"
+arch=(i686 x86_64 'mips64el')
+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=('d531be0f5f2b7758216ea4d7890f88c42c5fa3fd')
+
+build() {
+ cd "${srcdir}/xprop-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xprop-${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-xrandr/PKGBUILD b/extra/xorg-xrandr/PKGBUILD
new file mode 100644
index 000000000..f15457c98
--- /dev/null
+++ b/extra/xorg-xrandr/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 130753 2011-07-07 22:30:11Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrandr
+pkgver=1.3.5
+pkgrel=1
+pkgdesc="Primitive command line interface to RandR extension"
+arch=(i686 x86_64 'mips64el')
+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=('ef45925d5b0e72c73d21798d65a41d476fdb0d3f')
+
+build() {
+ cd "${srcdir}/xrandr-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xrandr-${pkgver}"
+ 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..a1e0d6f50
--- /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 'mips64el')
+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..de950df12
--- /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 'mips64el')
+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..7e0c40c51
--- /dev/null
+++ b/extra/xorg-xset/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 134284 2011-08-02 18:56:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xset
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="User preference utility for X"
+arch=(i686 x86_64 'mips64el')
+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)
+sha256sums=('61371c140030b8b05075a1378b34a4d7c438ed9159496a95f10782c6f4aec1e8')
+
+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..3758d9c6a
--- /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 'mips64el')
+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..e7426b638
--- /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 'mips64el')
+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..4684113fb
--- /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 'mips64el')
+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..a4de8a9f1
--- /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 'mips64el')
+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..59fcd44af
--- /dev/null
+++ b/extra/xorg-xwininfo/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 130758 2011-07-07 22:32:22Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwininfo
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="Command-line utility to print information about windows on an X server"
+arch=(i686 x86_64 'mips64el')
+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=('c90b3c289f95474aa8eb6cf1bf4caf3b9dbf82d3')
+
+build() {
+ cd "${srcdir}/xwininfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xwininfo-${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-xwud/PKGBUILD b/extra/xorg-xwud/PKGBUILD
new file mode 100644
index 000000000..5b7a4a430
--- /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 'mips64el')
+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..76d0c7f1c
--- /dev/null
+++ b/extra/xournal/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 140585 2011-10-17 08:15:15Z jgc $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=xournal
+pkgver=0.4.5
+pkgrel=5
+pkgdesc='Notetaking and sketching application'
+arch=('i686' 'x86_64' 'mips64el')
+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')
+source=("http://downloads.sourceforge.net/xournal/xournal-${pkgver}.tar.gz"
+ 'pdf-export-64.patch'
+ 'poppler-api.patch')
+sha1sums=('390cb275774469ed1b04b7268dd625bd456c895e'
+ 'f23f53b9f69ba8a5773c53d7bca99abf9d8504f8'
+ '5aedd5610b42df96e964bb889d4bf0831c2080bc')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../pdf-export-64.patch # from xournal CVS, see FS#21693
+ patch -p1 -i ../poppler-api.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install desktop-install
+}
diff --git a/extra/xournal/install b/extra/xournal/install
new file mode 100644
index 000000000..dfcb68374
--- /dev/null
+++ b/extra/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/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/poppler-api.patch b/extra/xournal/poppler-api.patch
new file mode 100644
index 000000000..9e33c7feb
--- /dev/null
+++ b/extra/xournal/poppler-api.patch
@@ -0,0 +1,158 @@
+diff -aur old/src/xo-file.c new/src/xo-file.c
+--- old/src/xo-file.c 2009-09-29 09:36:05.000000000 +1000
++++ new/src/xo-file.c 2011-10-06 03:11:17.307822836 +1100
+@@ -975,6 +975,140 @@
+ g_free(req);
+ }
+
++/*
++ * Copied from http://cgit.freedesktop.org/poppler/poppler/tree/glib/poppler-page.cc?h=poppler-0.16#n617
++ * as a temporary workaround to poppler removing depreciated functions while we wait for
++ * upstream to rewrite against cairo
++ */
++static void
++copy_cairo_surface_to_pixbuf (cairo_surface_t *surface, GdkPixbuf *pixbuf)
++{
++ int cairo_width, cairo_height, cairo_rowstride;
++ unsigned char *pixbuf_data, *dst, *cairo_data;
++ int pixbuf_rowstride, pixbuf_n_channels;
++ unsigned int *src;
++ int x, y;
++
++ cairo_width = cairo_image_surface_get_width (surface);
++ cairo_height = cairo_image_surface_get_height (surface);
++ cairo_rowstride = cairo_image_surface_get_stride (surface);
++ cairo_data = cairo_image_surface_get_data (surface);
++
++ pixbuf_data = gdk_pixbuf_get_pixels (pixbuf);
++ pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
++ pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf);
++
++ if (cairo_width > gdk_pixbuf_get_width (pixbuf))
++ cairo_width = gdk_pixbuf_get_width (pixbuf);
++ if (cairo_height > gdk_pixbuf_get_height (pixbuf))
++ cairo_height = gdk_pixbuf_get_height (pixbuf);
++ for (y = 0; y < cairo_height; y++)
++ {
++ src = (unsigned int *) (cairo_data + y * cairo_rowstride);
++ dst = pixbuf_data + y * pixbuf_rowstride;
++ for (x = 0; x < cairo_width; x++)
++ {
++ dst[0] = (*src >> 16) & 0xff;
++ dst[1] = (*src >> 8) & 0xff;
++ dst[2] = (*src >> 0) & 0xff;
++ if (pixbuf_n_channels == 4)
++ dst[3] = (*src >> 24) & 0xff;
++ dst += pixbuf_n_channels;
++ src++;
++ }
++ }
++}
++
++static void
++_poppler_page_render_to_pixbuf (PopplerPage *page,
++ int src_x, int src_y,
++ int src_width, int src_height,
++ double scale,
++ int rotation,
++ gboolean printing,
++ GdkPixbuf *pixbuf)
++{
++ cairo_t *cr;
++ cairo_surface_t *surface;
++
++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
++ src_width, src_height);
++ cr = cairo_create (surface);
++ cairo_save (cr);
++ switch (rotation) {
++ case 90:
++ cairo_translate (cr, src_x + src_width, -src_y);
++ break;
++ case 180:
++ cairo_translate (cr, src_x + src_width, src_y + src_height);
++ break;
++ case 270:
++ cairo_translate (cr, -src_x, src_y + src_height);
++ break;
++ default:
++ cairo_translate (cr, -src_x, -src_y);
++ }
++
++ if (scale != 1.0)
++ cairo_scale (cr, scale, scale);
++
++ if (rotation != 0)
++ cairo_rotate (cr, rotation * G_PI / 180.0);
++
++ if (printing)
++ poppler_page_render_for_printing (page, cr);
++ else
++ poppler_page_render (page, cr);
++ cairo_restore (cr);
++
++ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
++ cairo_set_source_rgb (cr, 1., 1., 1.);
++ cairo_paint (cr);
++
++ cairo_destroy (cr);
++
++ copy_cairo_surface_to_pixbuf (surface, pixbuf);
++ cairo_surface_destroy (surface);
++}
++
++/**
++ * poppler_page_render_to_pixbuf:
++ * @page: the page to render from
++ * @src_x: x coordinate of upper left corner
++ * @src_y: y coordinate of upper left corner
++ * @src_width: width of rectangle to render
++ * @src_height: height of rectangle to render
++ * @scale: scale specified as pixels per point
++ * @rotation: rotate the document by the specified degree
++ * @pixbuf: pixbuf to render into
++ *
++ * First scale the document to match the specified pixels per point,
++ * then render the rectangle given by the upper left corner at
++ * (src_x, src_y) and src_width and src_height.
++ * This function is for rendering a page that will be displayed.
++ * If you want to render a page that will be printed use
++ * poppler_page_render_to_pixbuf_for_printing() instead
++ *
++ * Deprecated: 0.16
++ **/
++void
++poppler_page_render_to_pixbuf (PopplerPage *page,
++ int src_x, int src_y,
++ int src_width, int src_height,
++ double scale,
++ int rotation,
++ GdkPixbuf *pixbuf)
++{
++ g_return_if_fail (POPPLER_IS_PAGE (page));
++ g_return_if_fail (scale > 0.0);
++ g_return_if_fail (pixbuf != NULL);
++
++ _poppler_page_render_to_pixbuf (page, src_x, src_y,
++ src_width, src_height,
++ scale, rotation,
++ FALSE,
++ pixbuf);
++}
+ /* process a bg PDF request from the queue, and recurse */
+
+ gboolean bgpdf_scheduler_callback(gpointer data)
+diff -aur old/src/xo-file.h new/src/xo-file.h
+--- old/src/xo-file.h 2009-09-28 08:45:53.000000000 +1000
++++ new/src/xo-file.h 2011-10-06 03:11:17.311156160 +1100
+@@ -36,3 +36,10 @@
+ void init_config_default(void);
+ void load_config_from_file(void);
+ void save_config_to_file(void);
++
++void poppler_page_render_to_pixbuf (PopplerPage *page,
++ int src_x, int src_y,
++ int src_width, int src_height,
++ double scale,
++ int rotation,
++ GdkPixbuf *pixbuf);
diff --git a/extra/xpdf/PKGBUILD b/extra/xpdf/PKGBUILD
new file mode 100644
index 000000000..d5034ea67
--- /dev/null
+++ b/extra/xpdf/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 135889 2011-08-20 02:28:50Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=xpdf
+#pkgver=3.03_pl1
+pkgver=3.03
+pkgrel=1
+pkgdesc='Viewer for Portable Document Format (PDF) files'
+url='http://www.foolabs.com/xpdf/'
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+depends=('lesstif' 'gsfonts' 'libxt')
+optdepends=('poppler: tools that used to be included in xpdf'
+ 'desktop-file-utils: for desktop environments')
+# "ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}pl1.patch"
+source=("ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}.tar.gz"
+ 'char.patch'
+ 'desktop')
+sha1sums=('499423e8a795e0efd76ca798239eb4d0d52fe248'
+ '5c471944685a6b24a2b0c0e000562d1a3263aeeb'
+ '3b6fe01636253676ffa0efe1b237a75af4721f6d')
+
+install=install
+backup=('etc/xpdfrc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver%_*}"
+
+# patch -p1 -i "../${pkgname}-${_srcver}pl1.patch"
+ patch -p1 -i ../char.patch
+
+ sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' xpdf/GlobalParams.cc
+ sed -i 's:times-medium-r-normal--16:times-medium-r-normal--14:' xpdf/XPDFViewer.cc # FS#14217
+
+ ./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}-${pkgver%_*}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 ../desktop "${pkgdir}/usr/share/applications/xpdf.desktop"
+ install -Dm644 xpdf/xpdfIcon.xpm "${pkgdir}/usr/share/pixmaps/xpdf.xpm"
+
+ # remove libs and manpages provided by poppler
+ # pdfdetach should go there too once it is in poppler
+ for tool in pdffonts pdfimages pdfinfo pdftoppm pdftops pdftotext ; do
+ rm "${pkgdir}/usr/bin/${tool}"
+ rm "${pkgdir}/usr/share/man/man1/${tool}.1"
+ done
+}
diff --git a/extra/xpdf/char.patch b/extra/xpdf/char.patch
new file mode 100644
index 000000000..8e49393a6
--- /dev/null
+++ b/extra/xpdf/char.patch
@@ -0,0 +1,12 @@
+diff -aur old/xpdf/XPDFViewer.cc new/xpdf/XPDFViewer.cc
+--- old/xpdf/XPDFViewer.cc 2011-08-15 14:08:53.000000000 -0700
++++ new/xpdf/XPDFViewer.cc 2011-08-17 11:05:55.739431215 -0700
+@@ -1803,7 +1803,7 @@
+ menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n);
+ for (i = 0; i < nZoomMenuItems; ++i) {
+ n = 0;
+- s = XmStringCreateLocalized(zoomMenuInfo[i].label);
++ s = XmStringCreateLocalized((char *)zoomMenuInfo[i].label);
+ XtSetArg(args[n], XmNlabelString, s); ++n;
+ XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n;
+ sprintf(buf, "zoom%d", i);
diff --git a/extra/xpdf/desktop b/extra/xpdf/desktop
new file mode 100644
index 000000000..06830ecda
--- /dev/null
+++ b/extra/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/install b/extra/xpdf/install
new file mode 100644
index 000000000..c6cf149dd
--- /dev/null
+++ b/extra/xpdf/install
@@ -0,0 +1,11 @@
+post_install() {
+ [[ -x /usr/bin/update-desktop-database ]] && update-desktop-database -q || true
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/xsane/PKGBUILD b/extra/xsane/PKGBUILD
new file mode 100644
index 000000000..0a0f1c527
--- /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 'mips64el')
+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/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..03236b2d9
--- /dev/null
+++ b/extra/xscreensaver/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 139172 2011-09-30 22:43:18Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xscreensaver
+pkgver=5.15
+pkgrel=2
+pkgdesc="Screen saver and locker for the X Window System"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.jwz.org/xscreensaver/"
+license=('BSD')
+depends=('libxxf86vm' 'libglade' 'mesa' 'pam' 'xorg-appres' 'libxmu' 'perl-libwww')
+makedepends=('bc')
+backup=('etc/pam.d/xscreensaver')
+source=(http://www.jwz.org/xscreensaver/${pkgname}-${pkgver}.tar.gz \
+ add-electricsheep.diff xscreensaver.pam LICENSE)
+sha1sums=('b5ce7caa19f4d57c3bac83377a36dddbe7095052'
+ '677496218b81a42d90bee400026e94dd87fb8ffb'
+ '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-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..18b4dea97
--- /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 @@
+ @GL_KLUDGE@ GL: rubikblocks -root \n\
+ @GL_KLUDGE@ GL: companioncube -root \n\
+ @GL_KLUDGE@ GL: hilbert -root \n\
+-@GL_KLUDGE@ GL: tronbit -root \n
++@GL_KLUDGE@ GL: tronbit -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..3e0a1b614
--- /dev/null
+++ b/extra/xsp/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 120915 2011-04-27 09:28:00Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=xsp
+pkgver=2.10.2
+pkgrel=1
+pkgdesc="A simple webserver based on mono - provides ASP.NET support"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://www.go-mono.com"
+depends=('mono>=2.10.2' '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=('4fe62fc95ad5dc136d8a7f3299d523b6'
+ '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..bc19589f7
--- /dev/null
+++ b/extra/xterm/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 139849 2011-10-05 10:55:56Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xterm
+pkgver=275
+pkgrel=1
+pkgdesc="X Terminal Emulator"
+arch=('i686' 'x86_64' 'mips64el')
+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=('bbbe6a4566c04656ec21863351570ac8'
+ '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 \
+ --with-utmp-setgid=utmp
+ 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..53196d886
--- /dev/null
+++ b/extra/xulrunner/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 142354 2011-11-08 18:38:40Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xulrunner
+pkgver=8.0
+_ffoxver=8.0
+pkgrel=2
+pkgdesc="Mozilla Runtime Environment"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'libvpx')
+makedepends=('zip' 'unzip' 'pkg-config' 'diffutils' 'python2' 'wireless_tools' 'yasm' 'mesa')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+source=(http://ftp.gnu.org/gnu/gnuzilla/${_ffoxver}/icecat-${_ffoxver}.tar.xz
+ mozconfig
+ mips.patch
+ mozilla-pkgconfig.patch)
+options=('!emptydirs')
+replaces=('xulrunner-oss')
+md5sums=('9395a5be13da119bd8d53c3225e5d17c'
+ '8dfb78c5bd0581c8cf4753813132bf0b'
+ '639ea80e823543dd415b90c0ee804186')
+
+build() {
+ cd "$srcdir/mozilla-release"
+ cp "$srcdir/mozconfig" .mozconfig
+
+ [[ "$CARCH" == "mips64el" ]] && {
+ echo "ac_add_options --disable-ipc" >> .mozconfig
+ patch -Np0 -i "${srcdir}/mips.patch"
+ }
+
+ #fix libdir/sdkdir - fedora
+ patch -Np1 -i "$srcdir/mozilla-pkgconfig.patch"
+
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/xulrunner"
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "$srcdir/mozilla-release"
+ make -j1 -f client.mk DESTDIR="$pkgdir" install
+
+ # add xulrunner library path to ld.so.conf
+ install -d $pkgdir/etc/ld.so.conf.d
+ echo "/usr/lib/xulrunner-$pkgver" > $pkgdir/etc/ld.so.conf.d/xulrunner.conf
+
+ chmod +x "${pkgdir}/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py"
+}
diff --git a/extra/xulrunner/mips.patch b/extra/xulrunner/mips.patch
new file mode 100644
index 000000000..f9de910b2
--- /dev/null
+++ b/extra/xulrunner/mips.patch
@@ -0,0 +1,114 @@
+--- ../../tmp.ne6Bz1oy72/xulrunner/src/mozilla-2.0/js/src/assembler/jit/ExecutableAllocator.h 2011-03-18 20:33:47.000000000 -0300
++++ js/src/assembler/jit/ExecutableAllocator.h 2011-03-30 15:45:07.537247142 -0300
+@@ -44,9 +44,7 @@
+ #include <e32std.h>
+ #endif
+
+-#if WTF_CPU_MIPS && WTF_PLATFORM_LINUX
+ #include <sys/cachectl.h>
+-#endif
+
+ #if WTF_PLATFORM_WINCE
+ // From pkfuncs.h (private header file from the Platform Builder)
+@@ -311,89 +309,10 @@
+ #endif
+
+
+-#if WTF_CPU_X86 || WTF_CPU_X86_64
+- static void cacheFlush(void*, size_t)
+- {
+- }
+-#elif WTF_CPU_MIPS
+ static void cacheFlush(void* code, size_t size)
+ {
+-#if WTF_COMPILER_GCC && (GCC_VERSION >= 40300)
+-#if WTF_MIPS_ISA_REV(2) && (GCC_VERSION < 40403)
+- int lineSize;
+- asm("rdhwr %0, $1" : "=r" (lineSize));
+- //
+- // Modify "start" and "end" to avoid GCC 4.3.0-4.4.2 bug in
+- // mips_expand_synci_loop that may execute synci one more time.
+- // "start" points to the fisrt byte of the cache line.
+- // "end" points to the last byte of the line before the last cache line.
+- // Because size is always a multiple of 4, this is safe to set
+- // "end" to the last byte.
+- //
+- intptr_t start = reinterpret_cast<intptr_t>(code) & (-lineSize);
+- intptr_t end = ((reinterpret_cast<intptr_t>(code) + size - 1) & (-lineSize)) - 1;
+- __builtin___clear_cache(reinterpret_cast<char*>(start), reinterpret_cast<char*>(end));
+-#else
+- intptr_t end = reinterpret_cast<intptr_t>(code) + size;
+- __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
+-#endif
+-#else
+ _flush_cache(reinterpret_cast<char*>(code), size, BCACHE);
+-#endif
+- }
+-#elif WTF_CPU_ARM_THUMB2 && WTF_PLATFORM_IPHONE
+- static void cacheFlush(void* code, size_t size)
+- {
+- sys_dcache_flush(code, size);
+- sys_icache_invalidate(code, size);
+- }
+-#elif WTF_CPU_ARM_THUMB2 && WTF_PLATFORM_LINUX
+- static void cacheFlush(void* code, size_t size)
+- {
+- asm volatile (
+- "push {r7}\n"
+- "mov r0, %0\n"
+- "mov r1, %1\n"
+- "movw r7, #0x2\n"
+- "movt r7, #0xf\n"
+- "movs r2, #0x0\n"
+- "svc 0x0\n"
+- "pop {r7}\n"
+- :
+- : "r" (code), "r" (reinterpret_cast<char*>(code) + size)
+- : "r0", "r1", "r2");
+- }
+-#elif WTF_PLATFORM_SYMBIAN
+- static void cacheFlush(void* code, size_t size)
+- {
+- User::IMB_Range(code, static_cast<char*>(code) + size);
+- }
+-#elif WTF_CPU_ARM_TRADITIONAL && WTF_PLATFORM_LINUX && WTF_COMPILER_RVCT
+- static __asm void cacheFlush(void* code, size_t size);
+-#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID) && WTF_COMPILER_GCC
+- static void cacheFlush(void* code, size_t size)
+- {
+- asm volatile (
+- "push {r7}\n"
+- "mov r0, %0\n"
+- "mov r1, %1\n"
+- "mov r7, #0xf0000\n"
+- "add r7, r7, #0x2\n"
+- "mov r2, #0x0\n"
+- "svc 0x0\n"
+- "pop {r7}\n"
+- :
+- : "r" (code), "r" (reinterpret_cast<char*>(code) + size)
+- : "r0", "r1", "r2");
+- }
+-#elif WTF_PLATFORM_WINCE
+- static void cacheFlush(void* code, size_t size)
+- {
+- CacheRangeFlush(code, size, CACHE_SYNC_ALL);
+ }
+-#else
+- #error "The cacheFlush support is missing on this platform."
+-#endif
+
+ private:
+
+--- js/src/Makefile.in.orig 2011-03-30 22:02:39.725318514 -0300
++++ js/src/Makefile.in 2011-03-30 22:02:51.689347820 -0300
+@@ -914,7 +914,7 @@
+ # Needed to "configure" it correctly. Unfortunately these
+ # flags wind up being applied to all code in js/src, not just
+ # the code in js/src/assembler.
+-CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1
++CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_JIT=1
+
+ INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
+
+
diff --git a/extra/xulrunner/mozconfig b/extra/xulrunner/mozconfig
new file mode 100644
index 000000000..82a6ae512
--- /dev/null
+++ b/extra/xulrunner/mozconfig
@@ -0,0 +1,38 @@
+. $topsrcdir/xulrunner/config/mozconfig
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+
+# System libraries
+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 --with-system-libvpx
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-cairo
+ac_add_options --enable-system-pixman
+ac_add_options --with-pthreads
+
+# Features
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-startup-notification
+ac_add_options --enable-gio
+
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+
+# Optimization
+ac_add_options --enable-optimize
+
+export MOZILLA_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/xvidcore/PKGBUILD b/extra/xvidcore/PKGBUILD
new file mode 100644
index 000000000..924265186
--- /dev/null
+++ b/extra/xvidcore/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 126345 2011-06-04 23:54:53Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=xvidcore
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="XviD is an open source MPEG-4 video codec"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.xvid.org/"
+license=('GPL')
+depends=('glibc')
+makedepends=('nasm')
+source=(http://downloads.xvid.org/downloads/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('34389e980d4f849688f8b1e168f4e2f9')
+sha1sums=('74f9ce9c1bebcc9806bf21cb53274b8102700309')
+
+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..be80c0c5b
--- /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' 'mips64el')
+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..88c6e535b
--- /dev/null
+++ b/extra/yasm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 142979 2011-11-19 15:19:43Z roman $
+# Maintainer: Роман Кирилич (Roman Kyrylych) <roman@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+
+pkgname=yasm
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.)"
+arch=('i686' 'x86_64' 'mips64el')
+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=('4cfc0686cf5350dd1305c4d905eb55a6')
+
+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..bcc94143e
--- /dev/null
+++ b/extra/yelp/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 140963 2011-10-20 05:44:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=yelp
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="A help browser for GNOME"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('libwebkit3' 'yelp-xsl' 'libxslt' 'hicolor-icon-theme' 'dbus-glib' 'xz' 'bzip2' 'desktop-file-utils' 'dconf')
+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.xz)
+sha256sums=('f22cc5e24df4349bffc42a75844615d86924f6b3f4a1951e0240a03a1a40981d')
+
+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/yelp/yelp.install b/extra/yelp/yelp.install
new file mode 100644
index 000000000..f3bf19a93
--- /dev/null
+++ b/extra/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/extra/yp-tools/PKGBUILD b/extra/yp-tools/PKGBUILD
new file mode 100644
index 000000000..d17e30adc
--- /dev/null
+++ b/extra/yp-tools/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 126193 2011-06-02 14:34:36Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=yp-tools
+pkgver=2.12
+pkgrel=2
+pkgdesc='Linux NIS Tools'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.linux-nis.org/nis/yp-tools/'
+license=('GPL2')
+depends=('ypbind-mt')
+source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz")
+sha1sums=('10b0ef5d4c5723e0716d7a1431a900c0ba6ef703')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ 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..279d11481
--- /dev/null
+++ b/extra/ypbind-mt/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 138068 2011-09-15 22:41:35Z tomegun $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ypbind-mt
+pkgver=1.33
+pkgrel=3
+pkgdesc='Linux NIS daemon'
+url='http://www.linux-nis.org/nis/ypbind-mt/'
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('networkmanager')
+depends=('rpcbind' 'openslp' 'dbus-glib')
+optdepends=('yp-tools: to set a domain name')
+backup=('etc/yp.conf' 'etc/conf.d/ypbind' 'etc/conf.d/nisdomainname')
+source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/${pkgname}-${pkgver}.tar.gz"
+ 'nisdomainname.conf'
+ 'ypbind.conf'
+ 'ypbind')
+sha1sums=('49f578d15aa5d4f4130a2e96cd9c0e519263fc88'
+ 'eb00aecc0679e25a36b007e797f4468b40cb3e8e'
+ '07dee386d001fb9e9e6b76dda8af5b2092e5a4a2'
+ '112fc2aedfe3f761325b69647b7938bc1be5bfcd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --enable-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 -m644 ../nisdomainname.conf "${pkgdir}"/etc/conf.d/nisdomainname
+ install -d -m755 "${pkgdir}"/var/yp/binding
+}
diff --git a/extra/ypbind-mt/nisdomainname.conf b/extra/ypbind-mt/nisdomainname.conf
new file mode 100644
index 000000000..bbbbf8fc7
--- /dev/null
+++ b/extra/ypbind-mt/nisdomainname.conf
@@ -0,0 +1,4 @@
+#
+# NIS domain to be set in /etc/rc.d/ypbind
+#
+NISDOMAINNAME=""
diff --git a/extra/ypbind-mt/ypbind b/extra/ypbind-mt/ypbind
new file mode 100755
index 000000000..6a5ef11e3
--- /dev/null
+++ b/extra/ypbind-mt/ypbind
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+. /etc/conf.d/ypbind
+. /etc/conf.d/nisdomainname
+
+name=ypbind
+PID=$(pidof -o %PPID /usr/sbin/ypbind)
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ [[ -n $NISDOMAINNAME ]] && /usr/bin/domainname "$NISDOMAINNAME" &>/dev/null
+ [[ -z "$PID" ]] && /usr/sbin/ypbind $YPBIND_ARGS &>/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 1
+ $0 start
+ ;;
+*)
+ echo "usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+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..134c34643
--- /dev/null
+++ b/extra/ypserv/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143826 2011-11-29 13:33:57Z stephane $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ypserv
+pkgver=2.26
+pkgrel=3
+pkgdesc='Linux NIS Server'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.linux-nis.org/nis/ypserv/'
+license=('GPL2')
+depends=('gdbm' 'openslp' 'inetutils')
+backup=('etc/ypserv.conf' 'etc/netgroup' 'var/yp/securenets')
+source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/${pkgname}-${pkgver}.tar.gz" \
+ 'yppasswd'
+ 'ypserv')
+sha1sums=('0d7ab3f04ff7fa5f611e71ea0f3c188659602743'
+ '96192b628afe36709496e4801d016c4bff343f0e'
+ 'b625381bfa6cf62345377a7df30b8f45935206c5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 etc/netgroup "${pkgdir}"/etc/netgroup
+ install -D -m644 etc/ypserv.conf "${pkgdir}"/etc/ypserv.conf
+ install -D -m644 etc/securenets "${pkgdir}"/var/yp/securenets
+ install -D -m755 ../ypserv "${pkgdir}"/etc/rc.d/ypserv
+ install -D -m755 ../yppasswd "${pkgdir}"/etc/rc.d/yppasswd
+}
diff --git a/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..13b8b846a
--- /dev/null
+++ b/extra/zenity/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 139461 2011-10-01 19:02:18Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=zenity
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Display graphical dialog boxes from shell scripts"
+arch=(i686 x86_64 'mips64el')
+license=('LGPL')
+depends=('gtk3' 'libnotify')
+makedepends=('intltool' 'gtk-doc')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('e6a778db3655957770653745a2ecaef08a41a71f4a0a92cb7c5dc8ce0e9902d8')
+
+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/extra/zile/PKGBUILD b/extra/zile/PKGBUILD
new file mode 100644
index 000000000..505c92c23
--- /dev/null
+++ b/extra/zile/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 140498 2011-10-15 20:33:55Z kevin $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=zile
+pkgver=2.4.2
+pkgrel=1.1
+pkgdesc="A small, fast, and powerful Emacs clone"
+arch=(i686 x86_64 'mips64el')
+url="http://www.gnu.org/software/zile/"
+# Lua is not required, the author uses it to generate some source files.
+depends=('gc' 'ncurses')
+license=('GPL')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2a68ac77cebbeca1eacf170ba9072dbe')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/extra/zip/PKGBUILD b/extra/zip/PKGBUILD
new file mode 100644
index 000000000..ecf3e02a5
--- /dev/null
+++ b/extra/zip/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 121305 2011-04-30 13:24:04Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=zip
+pkgver=3.0
+_pkgver=30
+pkgrel=2
+pkgdesc="Creates PKZIP-compatible .zip files"
+arch=(i686 x86_64 'mips64el')
+url="http://www.info-zip.org/pub/infozip/Zip.html"
+license=('BSD')
+depends=('bzip2')
+options=('!makeflags')
+source=("ftp://ftp.info-zip.org/pub/infozip/src/${pkgname}${_pkgver}.zip")
+md5sums=('e88492c8abd68fa9cfba72bc08757dba')
+
+build() {
+ cd "${srcdir}/${pkgname}${_pkgver}"
+ make -f unix/Makefile LOCAL_ZIP="$CFLAGS" prefix=/usr generic_gcc
+}
+
+package() {
+ cd "${srcdir}/${pkgname}${_pkgver}"
+ make -f unix/Makefile INSTALL=/bin/install prefix=${pkgdir}/usr \
+ MANDIR=${pkgdir}/usr/share/man/man1 install
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/zsh/PKGBUILD b/extra/zsh/PKGBUILD
new file mode 100644
index 000000000..d11a75e9f
--- /dev/null
+++ b/extra/zsh/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 144599 2011-12-07 15:40:43Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=zsh
+pkgver=4.3.14
+pkgrel=2
+pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.zsh.org/'
+license=('custom')
+depends=('pcre' 'libcap' 'gdbm')
+install=zsh.install
+source=("ftp://ftp.zsh.org/pub/${pkgname}-${pkgver}.tar.bz2"
+ 'zprofile')
+backup=('etc/zsh/zprofile')
+md5sums=('1c819a3ff7302b42eba988e333e76109'
+ '24a9335edf77252a7b5f52e079f7aef7')
+
+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/zsh/zprofile \
+ --enable-zshrc=/etc/zsh/zshrc \
+ --enable-maildir-support \
+ --with-term-lib='ncursesw' \
+ --enable-multibyte \
+ --enable-function-subdirs \
+ --enable-fndir=/usr/share/zsh/functions \
+ --enable-scriptdir=/usr/share/zsh/scripts \
+ --with-tcsetpgrp \
+ --enable-pcre \
+ --enable-cap \
+ --enable-zsh-secure-free
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # This test wont work with the noatime mount option
+ rm Test/C02cond.ztst
+ HOME="${srcdir}" make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/" install
+ install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile"
+ install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/zsh/modules.patch b/extra/zsh/modules.patch
new file mode 100644
index 000000000..315d40b98
--- /dev/null
+++ b/extra/zsh/modules.patch
@@ -0,0 +1,11 @@
+--- a/Completion/Linux/Command/_modutils
++++ b/Completion/Linux/Command/_modutils
+@@ -107,7 +107,7 @@ case "$state" in
+ ! _retrieve_cache modules-$kver;
+ then
+ # 2011-01-02 gi1242: Do we need .o files? Or is .ko enough?
+- modules=( $modules_dir/$kver/(*~(source|build))/**/*.(o|ko)(.:t:r) )
++ modules=( $modules_dir/$kver/(*~(source|build))/**/*.(o|ko|ko.gz)(.:t:r:r) )
+ _store_cache modules-$kver modules
+ fi
+
diff --git a/extra/zsh/zprofile b/extra/zsh/zprofile
new file mode 100644
index 000000000..6bfcdf7cb
--- /dev/null
+++ b/extra/zsh/zprofile
@@ -0,0 +1 @@
+emulate sh -c 'source /etc/profile'
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..4f3dd1622
--- /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 'mips64el')
+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/extra/zziplib/PKGBUILD b/extra/zziplib/PKGBUILD
new file mode 100644
index 000000000..73d728632
--- /dev/null
+++ b/extra/zziplib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 126501 2011-06-05 18:50:29Z remy $
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=zziplib
+pkgver=0.13.60
+pkgrel=1
+pkgdesc="A lightweight library that offers the ability to easily extract data from files archived in a single zip file"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://zziplib.sourceforge.net"
+license=('LGPL' 'MPL')
+depends=('zlib')
+makedepends=('python2')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ zziplib-0.13.60-ldflags.patch)
+md5sums=('54a6aa53262483a4d54f7c59f0a7258b'
+ 'e585052f884525a338ca341b5d2957dc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export PYTHON=/usr/bin/python2
+ patch -p1 -i ../zziplib-0.13.60-ldflags.patch
+ ./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/extra/zziplib/zziplib-0.13.60-ldflags.patch b/extra/zziplib/zziplib-0.13.60-ldflags.patch
new file mode 100644
index 000000000..3c95ff465
--- /dev/null
+++ b/extra/zziplib/zziplib-0.13.60-ldflags.patch
@@ -0,0 +1,14 @@
+https://sourceforge.net/tracker/?func=detail&aid=3175466&group_id=6389&atid=306389
+https://bugs.gentoo.org/354051
+
+--- a/configure
++++ b/configure
+@@ -292,7 +292,7 @@
+ # ---------------------------------------------------------------
+ AC_MSG_CHECKING([link options])
+ ZZIPLIB_LDFLAGS=""
+-test ".$can_build_shared" != ".no" && ZZIPLIB_LDFLAGS="--export-dynamic"
++test ".$can_build_shared" != ".no" && ZZIPLIB_LDFLAGS="-export-dynamic"
+ RESOLVES=" # "
+ case "$host_os" in mingw*)
+ ZZIPLIB_LDFLAGS="-no-undefined -export-all-symbols -mconsole"
diff --git a/kde-unstable/kactivities/PKGBUILD b/kde-unstable/kactivities/PKGBUILD
new file mode 100644
index 000000000..cbb4efee4
--- /dev/null
+++ b/kde-unstable/kactivities/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 144769 2011-12-08 10:29:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kactivities
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='API for using and interacting with Activities'
+url='http://kde.org/'
+license=('GPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('23ae79b85dd8c754950fcbabbd4cae5c9f139e74')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kactivities/fix-activities.patch b/kde-unstable/kactivities/fix-activities.patch
new file mode 100644
index 000000000..5cf62c48c
--- /dev/null
+++ b/kde-unstable/kactivities/fix-activities.patch
@@ -0,0 +1,156 @@
+--- kactivities-4.7.80/service/ActivityManager.cpp~ 2011-11-24 16:05:52.777981854 +0000
++++ kactivities-4.7.80/service/ActivityManager.cpp 2011-11-24 16:06:32.721637122 +0000
+@@ -75,14 +75,14 @@
+ QHash < WId, SharedInfo::WindowData > & _windows,
+ QHash < KUrl, SharedInfo::ResourceData > & _resources
+ )
+- : haveSessions(false),
+- config("activitymanagerrc"),
+- windows(_windows),
+- resources(_resources),
++ : config("activitymanagerrc"),
++ windows(_windows),
++ resources(_resources),
+ #ifdef HAVE_NEPOMUK
+- m_nepomukInitCalled(false),
++ m_nepomukInitCalled(false),
+ #endif
+- q(parent)
++ q(parent),
++ ksmserverInterface(0)
+ {
+ // Initializing config
+ connect(&configSyncTimer, SIGNAL(timeout()),
+@@ -116,20 +116,26 @@
+ this, SLOT(activeWindowChanged(WId)));
+
+ //listen to ksmserver for starting/stopping
++ QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.kde.ksmserver",
++ QDBusConnection::sessionBus(),
++ QDBusServiceWatcher::WatchForRegistration);
++ connect(watcher, SIGNAL(serviceRegistered(QString)), this, SLOT(sessionServiceRegistered()));
++ sessionServiceRegistered();
++}
++
++void ActivityManagerPrivate::sessionServiceRegistered()
++{
++ delete ksmserverInterface;
+ ksmserverInterface = new QDBusInterface("org.kde.ksmserver", "/KSMServer", "org.kde.KSMServerInterface");
+ if (ksmserverInterface->isValid()) {
+ ksmserverInterface->setParent(this);
+ connect(ksmserverInterface, SIGNAL(subSessionOpened()), this, SLOT(startCompleted()));
+ connect(ksmserverInterface, SIGNAL(subSessionClosed()), this, SLOT(stopCompleted()));
+ connect(ksmserverInterface, SIGNAL(subSessionCloseCanceled()), this, SLOT(stopCancelled())); //spelling fail :)
+- haveSessions = true;
+ } else {
+- kDebug() << "couldn't connect to ksmserver! session stuff won't work";
+- //note: in theory it's nice to try again later
+- //but in practice, ksmserver is either there or it isn't (killing it logs you out)
+- //so in this case there's no point. :)
+- ksmserverInterface->deleteLater();
++ delete ksmserverInterface;
+ ksmserverInterface = 0;
++ kDebug() << "couldn't connect to ksmserver! session stuff won't work";
+ }
+ }
+
+@@ -519,26 +525,24 @@
+ {
+ bool called = false;
+ // start the starting :)
+- if (haveSessions) {
+- QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
+- if (kwin.isValid()) {
+- QDBusMessage reply = kwin.call("startActivity", id);
+- if (reply.type() == QDBusMessage::ErrorMessage) {
+- kDebug() << "dbus error:" << reply.errorMessage();
++ QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
++ if (kwin.isValid()) {
++ QDBusMessage reply = kwin.call("startActivity", id);
++ if (reply.type() == QDBusMessage::ErrorMessage) {
++ kDebug() << "dbus error:" << reply.errorMessage();
++ } else {
++ QList<QVariant> ret = reply.arguments();
++ if (ret.length() == 1 && ret.first().toBool()) {
++ called = true;
+ } else {
+- QList<QVariant> ret = reply.arguments();
+- if (ret.length() == 1 && ret.first().toBool()) {
+- called = true;
+- } else {
+- kDebug() << "call returned false; probably ksmserver is busy";
+- setActivityState(transitioningActivity, ActivityManager::Stopped);
+- transitioningActivity.clear();
+- return; //assume we're mid-logout and just don't touch anything
+- }
++ kDebug() << "call returned false; probably ksmserver is busy";
++ setActivityState(transitioningActivity, ActivityManager::Stopped);
++ transitioningActivity.clear();
++ return; //assume we're mid-logout and just don't touch anything
+ }
+- } else {
+- kDebug() << "couldn't get kwin interface";
+ }
++ } else {
++ kDebug() << "couldn't get kwin interface";
+ }
+
+ if (!called) {
+@@ -585,25 +589,23 @@
+ {
+ bool called = false;
+ // start the stopping :)
+- if (haveSessions) {
+- QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
+- if (kwin.isValid()) {
+- QDBusMessage reply = kwin.call("stopActivity", id);
+- if (reply.type() == QDBusMessage::ErrorMessage) {
+- kDebug() << "dbus error:" << reply.errorMessage();
++ QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
++ if (kwin.isValid()) {
++ QDBusMessage reply = kwin.call("stopActivity", id);
++ if (reply.type() == QDBusMessage::ErrorMessage) {
++ kDebug() << "dbus error:" << reply.errorMessage();
++ } else {
++ QList<QVariant> ret = reply.arguments();
++ if (ret.length() == 1 && ret.first().toBool()) {
++ called = true;
+ } else {
+- QList<QVariant> ret = reply.arguments();
+- if (ret.length() == 1 && ret.first().toBool()) {
+- called = true;
+- } else {
+- kDebug() << "call returned false; probably ksmserver is busy";
+- stopCancelled();
+- return; //assume we're mid-logout and just don't touch anything
+- }
++ kDebug() << "call returned false; probably ksmserver is busy";
++ stopCancelled();
++ return; //assume we're mid-logout and just don't touch anything
+ }
+- } else {
+- kDebug() << "couldn't get kwin interface";
+ }
++ } else {
++ kDebug() << "couldn't get kwin interface";
+ }
+
+ if (!called) {
+--- kactivities-4.7.80/service/ActivityManager_p.h~ 2011-11-24 16:06:01.618054620 +0000
++++ kactivities-4.7.80/service/ActivityManager_p.h 2011-11-24 16:06:32.721637122 +0000
+@@ -68,7 +68,6 @@
+
+ //opening/closing activity (ksmserver can only handle one at a time)
+ QString transitioningActivity;
+- bool haveSessions; //whether ksmserver's available
+
+ // Configuration
+ QTimer configSyncTimer;
+@@ -106,6 +105,7 @@
+
+ void backstoreAvailable();
+ void syncActivitiesWithNepomuk();
++ void sessionServiceRegistered();
+
+ private:
+ ActivityManager * const q;
diff --git a/kde-unstable/kdeaccessibility-jovie/PKGBUILD b/kde-unstable/kdeaccessibility-jovie/PKGBUILD
new file mode 100644
index 000000000..7e3f1b849
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-jovie/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144780 2011-12-08 10:36:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-jovie
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='A text to speech application'
+url='http://kde.org/applications/utilities/jovie/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime' 'speech-dispatcher')
+makedepends=('cmake' 'automoc4')
+replaces=('kdeaccessibility-kttsd')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/jovie-${pkgver}.tar.bz2")
+sha1sums=('7c4ce5adcf6c7762c22706c99d467775254aeaa8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../jovie-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install b/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD b/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD
new file mode 100644
index 000000000..6d5157bd4
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144781 2011-12-08 10:36:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kaccessible
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Provides accessibility services like focus tracking and a screenreader'
+url='http://accessibility.kde.org/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdelibs' 'speech-dispatcher')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kaccessible-${pkgver}.tar.bz2")
+sha1sums=('320c7ec5a9cc7d67b768db6efcfff1f18854d045')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kaccessible-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmag/PKGBUILD b/kde-unstable/kdeaccessibility-kmag/PKGBUILD
new file mode 100644
index 000000000..c608359a5
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmag/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144782 2011-12-08 10:37:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmag
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Screen Magnifier'
+url='http://kde.org/applications/utilities/kmag/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmag-${pkgver}.tar.bz2")
+sha1sums=('e0e1f5f7307576f7ba651f0ab3090b169b330648')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmag-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install b/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD b/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD
new file mode 100644
index 000000000..790170dea
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144783 2011-12-08 10:37:45Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmousetool
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
+url='http://kde.org/applications/utilities/kmousetool/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmousetool-${pkgver}.tar.bz2")
+sha1sums=('bca35f26870d3922aa0631212780509f925639a3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmousetool-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install b/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kmouth/PKGBUILD b/kde-unstable/kdeaccessibility-kmouth/PKGBUILD
new file mode 100644
index 000000000..c912eccf6
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmouth/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144784 2011-12-08 10:38:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmouth
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Speech Synthesizer Frontend'
+url='http://kde.org/applications/utilities/kmouth/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmouth-${pkgver}.tar.bz2")
+sha1sums=('b013e3bbeea1ee0ef14b65301db10371ee42dec5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmouth-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install b/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeadmin/PKGBUILD b/kde-unstable/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..a46225a0a
--- /dev/null
+++ b/kde-unstable/kdeadmin/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 144785 2011-12-08 10:38:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+ 'kdeadmin-ksystemlog'
+ 'kdeadmin-kuser'
+ 'kdeadmin-system-config-printer-kde')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('cmake' 'automoc4' 'kdebindings-python' 'system-config-printer-common')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'syslog-path.patch')
+sha1sums=('188265229fcc401706e760db9b5247f66e6f4931'
+ '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -p1 -i ${srcdir}/syslog-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_strigi-analyzer=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdeadmin-kcron() {
+ pkgdesc='Configure and schedule tasks'
+ depends=('kdelibs')
+ cd $srcdir/build/kcron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+ pkgdesc='System log viewer tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/ksystemlog/"
+ cd $srcdir/build/ksystemlog
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksystemlog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+ pkgdesc='User Manager'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/system/kuser/"
+ install='kdeadmin.install'
+ cd $srcdir/build/kuser
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kuser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+ pkgdesc='Configure local and remote Printers'
+ depends=('kdebindings-python' 'system-config-printer-common' 'python2-pyqt')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/system-config-printer-kde/{system-config-printer-kde,authconn}.py
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' \
+ "${pkgdir}"/usr/share/apps/system-config-printer-kde/pysmb.py
+}
diff --git a/kde-unstable/kdeadmin/kdeadmin.install b/kde-unstable/kdeadmin/kdeadmin.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeadmin/kdeadmin.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeadmin/syslog-path.patch b/kde-unstable/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/kde-unstable/kdeadmin/syslog-path.patch
@@ -0,0 +1,11 @@
+--- kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h~ 2011-01-27 14:24:29.840000005 +0100
++++ kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h 2011-01-27 14:24:53.803333335 +0100
+@@ -39,7 +39,7 @@
+ SystemConfiguration() :
+ GenericLogModeConfiguration(
+ QLatin1String( SYSTEM_LOG_MODE_ID ),
+- QStringList() << QLatin1String( "/var/log/syslog" ),
++ QStringList() << QLatin1String( "/var/log/messages.log" ),
+ QList<int>() << INFORMATION_LOG_LEVEL_ID
+ ) {
+
diff --git a/kde-unstable/kdeartwork/PKGBUILD b/kde-unstable/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..1af1a6205
--- /dev/null
+++ b/kde-unstable/kdeartwork/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 144786 2011-12-08 10:39:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+ 'kdeartwork-colorschemes'
+ 'kdeartwork-desktopthemes'
+ 'kdeartwork-emoticons'
+ 'kdeartwork-iconthemes'
+ 'kdeartwork-kscreensaver'
+ 'kdeartwork-sounds'
+ 'kdeartwork-styles'
+ 'kdeartwork-wallpapers'
+ 'kdeartwork-weatherwallpapers')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('cmake' 'automoc4' 'xscreensaver' 'eigen' 'kdebase-workspace'
+ 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('fe7fc5262c677a963fb42784b817b3a2c2659271')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeartwork-aurorae() {
+ pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+ cd $srcdir/build/aurorae
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+ pkgdesc='KDE color schemes'
+ replaces=('kdeaccessibility-colorschemes')
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+ pkgdesc='KDE desktop themes'
+ cd $srcdir/build/desktopthemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+ pkgdesc='KDE emoticons'
+ cd $srcdir/build/emoticons
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+ pkgdesc='KDE icon themes'
+ replaces=('kdeaccessibility-iconthemes')
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/kscreensaver
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+ pkgdesc='KDE sounds'
+ cd $srcdir/build/sounds
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+ pkgdesc='KDE styles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/styles
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwin-styles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+ pkgdesc='KDE wallpapers'
+ cd $srcdir/build/wallpapers
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/HighResolutionWallpapers
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+ pkgdesc='KDE weather wallpapers'
+ cd $srcdir/build/WeatherWallpapers
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase-konsole/PKGBUILD b/kde-unstable/kdebase-konsole/PKGBUILD
new file mode 100644
index 000000000..020e0639a
--- /dev/null
+++ b/kde-unstable/kdebase-konsole/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144787 2011-12-08 10:42:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebase-konsole
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://kde.org/applications/system/konsole/'
+pkgdesc="Terminal"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/konsole-${pkgver}.tar.bz2")
+sha1sums=('c4e99b07fcca2ddef6e155ca03d26a495a9e362b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../konsole-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebase-runtime/PKGBUILD b/kde-unstable/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..b8c6543b8
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 144756 2011-12-08 10:22:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="KDE Base Runtime Environment"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'ntrack' 'smbclient' 'libssh' 'libcanberra' 'oxygen-icons'
+ 'xorg-xauth')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'doxygen'
+ 'xine-lib')
+optdepends=('htdig: to build the search index in khelpcenter'
+ 'rarian: needed by khelpcenter'
+ 'gdb: drkonq crash handler')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-runtime-${pkgver}.tar.bz2")
+sha1sums=('834f3a0c4743e9d537139a856eb066a2c6251c15')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kde-runtime-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+
+ # Fix Python2 path
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/nepomuk-simpleresource-rcgen
+}
diff --git a/kde-unstable/kdebase-runtime/kdebase-runtime.install b/kde-unstable/kdebase-runtime/kdebase-runtime.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/kdebase-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase/PKGBUILD b/kde-unstable/kdebase/PKGBUILD
new file mode 100644
index 000000000..5007b40a8
--- /dev/null
+++ b/kde-unstable/kdebase/PKGBUILD
@@ -0,0 +1,120 @@
+# $Id: PKGBUILD 144771 2011-12-08 10:31:45Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+ 'kdebase-kdepasswd'
+ 'kdebase-kdialog'
+ 'kdebase-keditbookmarks'
+ 'kdebase-kfind'
+ 'kdebase-konq-plugins'
+ 'kdebase-konqueror'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-baseapps-${pkgver}.tar.bz2")
+sha1sums=('4e1bf22e8b42b84ef4c779dcdd736f376a2c459b')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../kde-baseapps-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-dolphin() {
+ pkgdesc='File Manager'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ optdepends=('kdegraphics-svgpart: thumbailers for SVG files'
+ 'kdegraphics-thumbnailers: thumbnailers for graphics file'
+ 'ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ install=kdebase-dolphin.install
+ cd $srcdir/build/dolphin
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dolphin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+ pkgdesc='Change Password'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ cd $srcdir/build/kdepasswd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdepasswd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+ pkgdesc='A utility for displaying dialog boxes from shell scripts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kdialog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+ pkgdesc='Bookmark Organizer and Editor'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/keditbookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+ pkgdesc='Find Files/Folders'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ url="http://kde.org/applications/utilities/kfind/"
+ install='kdebase.install'
+ cd $srcdir/build/kfind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfind
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konq-plugins() {
+ pkgdesc='Extra plugins for Konqueror'
+ depends=('kdebase-konqueror' 'tidyhtml')
+ replaces=('konq-plugins')
+ install='kdebase.install'
+ cd $srcdir/build/konq-plugins
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+ pkgdesc='KDE File Manager & Web Browser'
+ depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+ optdepends=('kwebkitpart: to enable webkit engine')
+ url="http://kde.org/applications/internet/konqueror/"
+ install='kdebase-konqueror.install'
+ conflicts=('kdebase-nsplugins')
+ replaces=('kdebase-nsplugins')
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdebase-lib() {
+ pkgdesc='KDE libraries for the basic desktop applications'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/lib
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+ pkgdesc='Display the contents of folders (User´s home folder as default)'
+ depends=('kdebase-workspace' 'kdebase-lib')
+ cd $srcdir/build/plasma
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase/kdebase-dolphin.install b/kde-unstable/kdebase/kdebase-dolphin.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase-dolphin.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase/kdebase-konqueror.install b/kde-unstable/kdebase/kdebase-konqueror.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase-konqueror.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase/kdebase.install b/kde-unstable/kdebase/kdebase.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebindings-kimono/PKGBUILD b/kde-unstable/kdebindings-kimono/PKGBUILD
new file mode 100644
index 000000000..d8ad9eb77
--- /dev/null
+++ b/kde-unstable/kdebindings-kimono/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144788 2011-12-08 10:42:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-kimono
+pkgver=4.7.90
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qyoto' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/kimono-${pkgver}.tar.bz2")
+sha1sums=('db61f32a15e37a84ef44746e3e04b33667df71c9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kimono-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-korundum/PKGBUILD b/kde-unstable/kdebindings-korundum/PKGBUILD
new file mode 100644
index 000000000..f83c1ef3a
--- /dev/null
+++ b/kde-unstable/kdebindings-korundum/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144789 2011-12-08 10:43:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-korundum
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="KDE bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qtruby' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/korundum-${pkgver}.tar.bz2")
+sha1sums=('8336a5504f90111772ff4004eff971e779f92327')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../korundum-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-kross/PKGBUILD b/kde-unstable/kdebindings-kross/PKGBUILD
new file mode 100644
index 000000000..329a3628b
--- /dev/null
+++ b/kde-unstable/kdebindings-kross/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 144790 2011-12-08 10:43:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdebindings-kross
+pkgname=('kdebindings-kross-python'
+# 'kdebindings-kross-ruby'
+ 'kdebindings-kross-java')
+pkgver=4.7.90
+pkgrel=1
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'java-environment')
+source=("http://download.kde.org/unstable/${pkgver}/src/kross-interpreters-${pkgver}.tar.bz2")
+sha1sums=('bf52cd779c91b289b59b627db10112e2fa015547')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kross-interpreters-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_ruby=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdebindings-kross-python() {
+ pkgdesc="Python2 language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'python2')
+
+ cd "${srcdir}"/build/python
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-java() {
+ pkgdesc="Java language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'java-environment')
+
+ cd "${srcdir}"/build/java
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-ruby() {
+ pkgdesc="Ruby language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'ruby')
+
+ cd "${srcdir}"/build/ruby
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlkde/PKGBUILD b/kde-unstable/kdebindings-perlkde/PKGBUILD
new file mode 100644
index 000000000..8833c0573
--- /dev/null
+++ b/kde-unstable/kdebindings-perlkde/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144791 2011-12-08 10:44:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlkde
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Perl bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-perlqt' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs'
+ 'kdegraphics-okular' 'kdesdk-kate')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlkde-${pkgver}.tar.bz2")
+sha1sums=('4bb4cb048ec96fb52a9bb49d2a32938a28f37355')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlkde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlqt/PKGBUILD b/kde-unstable/kdebindings-perlqt/PKGBUILD
new file mode 100644
index 000000000..d186f60bd
--- /dev/null
+++ b/kde-unstable/kdebindings-perlqt/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144764 2011-12-08 10:27:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlqt
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Perl bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlqt-${pkgver}.tar.bz2")
+sha1sums=('0526a7b5b32934e85ff8432a597e3e88c9362ecc')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-python/PKGBUILD b/kde-unstable/kdebindings-python/PKGBUILD
new file mode 100644
index 000000000..d5d38aebe
--- /dev/null
+++ b/kde-unstable/kdebindings-python/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144765 2011-12-08 10:27:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-python
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="KDE bindings for Python"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/pykde4-${pkgver}.tar.bz2")
+sha1sums=('ada3862a46add5f0901d03a84c0c04759a944401')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../pykde4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/kde-unstable/kdebindings-qtruby/PKGBUILD b/kde-unstable/kdebindings-qtruby/PKGBUILD
new file mode 100644
index 000000000..cfa6a28c8
--- /dev/null
+++ b/kde-unstable/kdebindings-qtruby/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144768 2011-12-08 10:28:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qtruby
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Qt bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'ruby')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/qtruby-${pkgver}.tar.bz2")
+sha1sums=('8679b33dff47a6d73616ef75ab5119452e54c246')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qtruby-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-qyoto/PKGBUILD b/kde-unstable/kdebindings-qyoto/PKGBUILD
new file mode 100644
index 000000000..75ebea31f
--- /dev/null
+++ b/kde-unstable/kdebindings-qyoto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144766 2011-12-08 10:28:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qyoto
+pkgver=4.7.90
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'mono')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/qyoto-${pkgver}.tar.bz2")
+sha1sums=('b81fc239f3465daadbda3fa5da8478fd3f26e740')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qyoto-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokegen/PKGBUILD b/kde-unstable/kdebindings-smokegen/PKGBUILD
new file mode 100644
index 000000000..ba2b2146f
--- /dev/null
+++ b/kde-unstable/kdebindings-smokegen/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144759 2011-12-08 10:24:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokegen
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A general purpose C++ parser with a plugin infrastructure"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokegen-${pkgver}.tar.bz2"
+ 'fix-crash.patch')
+sha1sums=('c852cf97a7b2d7516a4995d19ad3be6035aa0c17'
+ 'b209b2b7017622fea3406c5a9636e2334566af01')
+
+build() {
+ cd "${srcdir}"/smokegen-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-crash.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokegen-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokegen/fix-crash.patch b/kde-unstable/kdebindings-smokegen/fix-crash.patch
new file mode 100644
index 000000000..5864da3f3
--- /dev/null
+++ b/kde-unstable/kdebindings-smokegen/fix-crash.patch
@@ -0,0 +1,13 @@
+diff -up smokegen-4.7.0/parser/type_compiler.cpp.orig smokegen-4.7.0/parser/type_compiler.cpp
+diff -up smokegen-4.7.0/type_compiler.cpp.orig smokegen-4.7.0/type_compiler.cpp
+--- smokegen-4.7.0/type_compiler.cpp.orig 2011-08-02 14:34:08.000000000 +0200
++++ smokegen-4.7.0/type_compiler.cpp 2011-08-02 14:34:34.000000000 +0200
+@@ -191,6 +191,8 @@ void TypeCompiler::visitParameterDeclara
+
+ void TypeCompiler::visitPtrOperator(PtrOperatorAST* node)
+ {
++ if ( ! m_session->token_stream ) return;
++ if ( ! token_text(m_session->token_stream->kind(node->op)) ) return;
+ if (token_text(m_session->token_stream->kind(node->op))[0] == '*') {
+ QPair<bool, bool> cv = m_visitor->parseCv(node->cv);
+ pointerDepth.append(cv.first);
diff --git a/kde-unstable/kdebindings-smokekde/PKGBUILD b/kde-unstable/kdebindings-smokekde/PKGBUILD
new file mode 100644
index 000000000..ad02576b9
--- /dev/null
+++ b/kde-unstable/kdebindings-smokekde/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144763 2011-12-08 10:26:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokekde
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Language independent library for KDE bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokekde-${pkgver}.tar.bz2")
+sha1sums=('22aa60f5ee75d124c64dbff66903a57467f4675e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokekde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokeqt/PKGBUILD b/kde-unstable/kdebindings-smokeqt/PKGBUILD
new file mode 100644
index 000000000..efd5c4166
--- /dev/null
+++ b/kde-unstable/kdebindings-smokeqt/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144760 2011-12-08 10:24:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokeqt
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Language independent library for Qt bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'kdebindings-smokegen')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokeqt-${pkgver}.tar.bz2")
+sha1sums=('394f5e5d00abfaffffecf46da0a3c274fa5d192b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokeqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Qwt5=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-analitza/PKGBUILD b/kde-unstable/kdeedu-analitza/PKGBUILD
new file mode 100644
index 000000000..a3296b3a9
--- /dev/null
+++ b/kde-unstable/kdeedu-analitza/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144779 2011-12-08 10:35:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-analitza
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A library to add mathematical features to your program"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/analitza-${pkgver}.tar.bz2")
+sha1sums=('f9193fa475d595df0b289dc1f390796dc8a8abcc')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../analitza-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/PKGBUILD b/kde-unstable/kdeedu-blinken/PKGBUILD
new file mode 100644
index 000000000..83a338aed
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144792 2011-12-08 10:44:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-blinken
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Memory Enhancement Game"
+url="http://kde.org/applications/education/blinken/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/blinken-${pkgver}.tar.bz2")
+sha1sums=('6650df9ded1d935f9e767cdac25f33dcd1cec632')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../blinken-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/kdeedu-blinken.install b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-cantor/PKGBUILD b/kde-unstable/kdeedu-cantor/PKGBUILD
new file mode 100644
index 000000000..a1f8eef3e
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144793 2011-12-08 10:45:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-cantor
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="KDE Frontend to Mathematical Software"
+url="http://kde.org/applications/education/cantor/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libspectre' 'kdeedu-analitza')
+makedepends=('cmake' 'automoc4' 'r')
+optdepends=('maxima: Maxima backend'
+ 'octave: Octave backend'
+ 'r: R backend')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/cantor-${pkgver}.tar.bz2")
+sha1sums=('a23450b3b0772730adc7c1c00aed4c4bee23a9b6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../cantor-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-cantor/kdeedu-cantor.install b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/PKGBUILD b/kde-unstable/kdeedu-kalgebra/PKGBUILD
new file mode 100644
index 000000000..7c90967e1
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144794 2011-12-08 10:45:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalgebra
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Graph Calculator"
+url="http://kde.org/applications/education/kalgebra/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu' 'kdeedu-analitza')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalgebra-${pkgver}.tar.bz2")
+sha1sums=('5455555357ef314da3480baabe8c557e9a4b8c60')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalgebra-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kalzium/PKGBUILD b/kde-unstable/kdeedu-kalzium/PKGBUILD
new file mode 100644
index 000000000..4608c0945
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144795 2011-12-08 10:46:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalzium
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Periodic Table of Elements"
+url="http://kde.org/applications/education/kalzium/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs' 'avogadro' 'ocaml' 'facile')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalzium-${pkgver}.tar.bz2")
+sha1sums=('97e9ddf6b7b122cc1c294468de199414e067e261')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalzium-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kanagram/PKGBUILD b/kde-unstable/kdeedu-kanagram/PKGBUILD
new file mode 100644
index 000000000..c7699f6cb
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144796 2011-12-08 10:46:57Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kanagram
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Letter Order Game"
+url="http://kde.org/applications/education/kanagram/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kanagram-${pkgver}.tar.bz2")
+sha1sums=('89de86ddda5d94a56dca341ae67ad5a2337cceec')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kanagram-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kbruch/PKGBUILD b/kde-unstable/kdeedu-kbruch/PKGBUILD
new file mode 100644
index 000000000..e5c7c70ae
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144797 2011-12-08 10:47:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kbruch
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Exercise Fractions"
+url="http://kde.org/applications/education/kbruch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kbruch-${pkgver}.tar.bz2")
+sha1sums=('ab327db23a577ed18eedc06b9e0f1e6ab64961a6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kbruch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kgeography/PKGBUILD b/kde-unstable/kdeedu-kgeography/PKGBUILD
new file mode 100644
index 000000000..b1f050fa3
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144798 2011-12-08 10:47:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kgeography
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Geography Trainer"
+url="http://kde.org/applications/education/kgeography/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgeography-${pkgver}.tar.bz2")
+sha1sums=('0018ebb2b62ba6f577a3e424500c35797353c222')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgeography-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-khangman/PKGBUILD b/kde-unstable/kdeedu-khangman/PKGBUILD
new file mode 100644
index 000000000..21d10c7eb
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144799 2011-12-08 10:48:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-khangman
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Hangman Game"
+url="http://kde.org/applications/education/khangman/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/khangman-${pkgver}.tar.bz2")
+sha1sums=('712d4acec177e790b16a99aace00405143da0aa9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../khangman-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-khangman/kdeedu-khangman.install b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kig/PKGBUILD b/kde-unstable/kdeedu-kig/PKGBUILD
new file mode 100644
index 000000000..5435e00a6
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144800 2011-12-08 10:49:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kig
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Interactive Geometry"
+url="http://kde.org/applications/education/kig/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kig-${pkgver}.tar.bz2")
+sha1sums=('04f0ad06edf4b3c759d2d9b51dadf25846b3a330')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kig-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/bin/pykig.py
+}
diff --git a/kde-unstable/kdeedu-kig/kdeedu-kig.install b/kde-unstable/kdeedu-kig/kdeedu-kig.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/kdeedu-kig.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kiten/PKGBUILD b/kde-unstable/kdeedu-kiten/PKGBUILD
new file mode 100644
index 000000000..016506080
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144801 2011-12-08 10:49:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kiten
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Japanese Reference/Study Tool"
+url="http://kde.org/applications/education/kiten/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kiten-${pkgver}.tar.bz2")
+sha1sums=('737de5bdb23b84739dad4d791195b697e9f161e3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kiten-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kiten/kdeedu-kiten.install b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-klettres/PKGBUILD b/kde-unstable/kdeedu-klettres/PKGBUILD
new file mode 100644
index 000000000..82c8e5b39
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144802 2011-12-08 10:50:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-klettres
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Learn The Alphabet"
+url="http://kde.org/applications/education/klettres/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/klettres-${pkgver}.tar.bz2")
+sha1sums=('1b3a30f69399a6770a8dce86db54f62d2ff9ac7d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../klettres-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-klettres/kdeedu-klettres.install b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kmplot/PKGBUILD b/kde-unstable/kdeedu-kmplot/PKGBUILD
new file mode 100644
index 000000000..3fa8055d2
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144803 2011-12-08 10:50:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kmplot
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Mathematical Function Plotter"
+url="http://kde.org/applications/education/kmplot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmplot-${pkgver}.tar.bz2")
+sha1sums=('895c2adb0b53bd2800b1eb47d187b8b16ba574f4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmplot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kstars/PKGBUILD b/kde-unstable/kdeedu-kstars/PKGBUILD
new file mode 100644
index 000000000..79b65825b
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144804 2011-12-08 10:51:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kstars
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Desktop Planetarium"
+url="http://kde.org/applications/education/kstars/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'eigen' 'cfitsio' 'libindi')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kstars-${pkgver}.tar.bz2")
+sha1sums=('7e818cddfb9d52c44a8702edc56321b14924c9a2')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kstars-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xplanet=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kstars/kdeedu-kstars.install b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-ktouch/PKGBUILD b/kde-unstable/kdeedu-ktouch/PKGBUILD
new file mode 100644
index 000000000..a12ceb3f3
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144805 2011-12-08 10:52:10Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-ktouch
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Touch Typing Tutor"
+url="http://kde.org/applications/education/ktouch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktouch-${pkgver}.tar.bz2")
+sha1sums=('faa97d88e132788e21a93e044c1977030f246180')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktouch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kturtle/PKGBUILD b/kde-unstable/kdeedu-kturtle/PKGBUILD
new file mode 100644
index 000000000..3e79f0a48
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144806 2011-12-08 10:52:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kturtle
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Educational Programming Environment"
+url="http://kde.org/applications/education/kturtle/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kturtle-${pkgver}.tar.bz2")
+sha1sums=('be1250b25efde8d74ca9c64f6f2af1fe7f3ae655')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kturtle-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/PKGBUILD b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
new file mode 100644
index 000000000..1df9a8d7a
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144807 2011-12-08 10:53:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kwordquiz
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Flash Card Trainer"
+url="http://kde.org/applications/education/kwordquiz/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwordquiz-${pkgver}.tar.bz2")
+sha1sums=('6bf02eb04565e9b2b12cd1f1a71b747b5f9a5d09')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwordquiz-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-marble/PKGBUILD b/kde-unstable/kdeedu-marble/PKGBUILD
new file mode 100644
index 000000000..5f26bf757
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144774 2011-12-08 10:32:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-marble
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Desktop Globe"
+url="http://kde.org/applications/education/marble/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'gpsd')
+optdepends=('gpsd: gps support')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/marble-${pkgver}.tar.bz2")
+sha1sums=('5b184a51a5e6448657ebc9926ee41c7f894e5898')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../marble-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-marble/kdeedu-marble.install b/kde-unstable/kdeedu-marble/kdeedu-marble.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/kdeedu-marble.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-parley/PKGBUILD b/kde-unstable/kdeedu-parley/PKGBUILD
new file mode 100644
index 000000000..27ba8fdae
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144808 2011-12-08 10:53:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-parley
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Vocabulary Trainer"
+url="http://kde.org/applications/education/parley/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/parley-${pkgver}.tar.bz2")
+sha1sums=('feb71126d177327df5be96a3f1fdd0e844edd94f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../parley-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-parley/kdeedu-parley.install b/kde-unstable/kdeedu-parley/kdeedu-parley.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/kdeedu-parley.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-rocs/PKGBUILD b/kde-unstable/kdeedu-rocs/PKGBUILD
new file mode 100644
index 000000000..d088c9b55
--- /dev/null
+++ b/kde-unstable/kdeedu-rocs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144809 2011-12-08 10:54:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-rocs
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Rocs Graph Theory"
+url="http://kde.org/applications/education/rocs/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/rocs-${pkgver}.tar.bz2")
+sha1sums=('308ee10484e60d21476507b400b8bacdec64ba9f')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../rocs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/PKGBUILD b/kde-unstable/kdeedu-step/PKGBUILD
new file mode 100644
index 000000000..de8bd83a3
--- /dev/null
+++ b/kde-unstable/kdeedu-step/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144810 2011-12-08 10:54:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-step
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Interactive Physical Simulator"
+url="http://kde.org/applications/education/step/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libqalculate' 'gsl' 'eigen')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/step-${pkgver}.tar.bz2")
+sha1sums=('280fb584332f6bb043f40a367b8ba9b0e1a4f783')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../step-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/kdeedu-step.install b/kde-unstable/kdeedu-step/kdeedu-step.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-step/kdeedu-step.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/PKGBUILD b/kde-unstable/kdegames/PKGBUILD
new file mode 100644
index 000000000..aeb8950bb
--- /dev/null
+++ b/kde-unstable/kdegames/PKGBUILD
@@ -0,0 +1,516 @@
+# $Id: PKGBUILD 144811 2011-12-08 10:56:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+ 'kdegames-bovo'
+ 'kdegames-granatier'
+ 'kdegames-kajongg'
+ 'kdegames-kapman'
+ 'kdegames-katomic'
+ 'kdegames-kbattleship'
+ 'kdegames-kblackbox'
+ 'kdegames-kblocks'
+ 'kdegames-kbounce'
+ 'kdegames-kbreakout'
+ 'kdegames-kdiamond'
+ 'kdegames-kfourinline'
+ 'kdegames-kgoldrunner'
+ 'kdegames-kigo'
+ 'kdegames-killbots'
+ 'kdegames-kiriki'
+ 'kdegames-kjumpingcube'
+ 'kdegames-klines'
+ 'kdegames-klickety'
+ 'kdegames-kmahjongg'
+ 'kdegames-kmines'
+ 'kdegames-knetwalk'
+ 'kdegames-kolf'
+ 'kdegames-kollision'
+ 'kdegames-konquest'
+ 'kdegames-kpatience'
+ 'kdegames-kreversi'
+ 'kdegames-kshisen'
+ 'kdegames-ksirk'
+ 'kdegames-kspaceduel'
+ 'kdegames-ksquares'
+ 'kdegames-ksudoku'
+ 'kdegames-ktron'
+ 'kdegames-ktuberling'
+ 'kdegames-kubrick'
+ 'kdegames-libkdegames'
+ 'kdegames-libkmahjongg'
+ 'kdegames-lskat'
+ 'kdegames-palapeli')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('cmake' 'automoc4' 'ggz-client-libs' 'twisted' 'kdebindings-python'
+ 'openal')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('bfc61fba50d8674a0f8ba5437d23ff3e7254886b')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdegames-bomber() {
+ pkgdesc='Arcade Bombing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bomber/"
+ install='kdegames.install'
+ cd $srcdir/build/bomber
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bomber
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+ pkgdesc='Five-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bovo/"
+ install='kdegames.install'
+ cd $srcdir/build/bovo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bovo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+ pkgdesc='Granatier'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/granatier/"
+ install='kdegames.install'
+ cd $srcdir/build/granatier
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/granatier
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+ pkgdesc='The ancient Chinese board game for 4 players'
+ depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted')
+ url="http://www.kde.org/applications/games/kajongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kajongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kajongg
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+ pkgdesc='Eat pills escaping ghosts'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kapman/"
+ install='kdegames.install'
+ cd $srcdir/build/kapman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+ pkgdesc='Sokoban-like Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/katomic/"
+ install='kdegames.install'
+ cd $srcdir/build/katomic
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/katomic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+ pkgdesc='Battleship Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kbattleship/"
+ install='kdegames-kbattleship.install'
+ cd $srcdir/build/kbattleship
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbattleship
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kbattleship/src/module.dsc \
+ $pkgdir/usr/share/ggz/kbattleship.dsc
+}
+
+package_kdegames-kblackbox() {
+ pkgdesc='Blackbox Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblackbox/"
+ install='kdegames.install'
+ cd $srcdir/build/kblackbox
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblackbox
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+ pkgdesc='Falling Blocks Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblocks/"
+ install='kdegames.install'
+ cd $srcdir/build/kblocks
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblocks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+ pkgdesc='Ball Bouncing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbounce/"
+ install='kdegames.install'
+ cd $srcdir/build/kbounce
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbounce
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+ pkgdesc='Breakout-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbreakout/"
+ install='kdegames.install'
+ cd $srcdir/build/kbreakout
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbreakout
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+ pkgdesc='Three-in-a-row game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kdiamond/"
+ install='kdegames.install'
+ cd $srcdir/build/kdiamond
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdiamond
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+ pkgdesc='Four-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kfourinline/"
+ install='kdegames-kfourinline.install'
+ cd $srcdir/build/kfourinline
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfourinline
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+ pkgdesc='A game of action and puzzle-solving'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/kgoldrunner/"
+ install='kdegames.install'
+ cd $srcdir/build/kgoldrunner
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgoldrunner
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+ pkgdesc='Go Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+ url="http://kde.org/applications/games/kigo/"
+ install='kdegames-kigo.install'
+ cd $srcdir/build/kigo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kigo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+ pkgdesc='Killbots'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/killbots/"
+ install='kdegames.install'
+ cd $srcdir/build/killbots
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/killbots
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+ pkgdesc='Yahtzee-like Dice Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kiriki/"
+ install='kdegames.install'
+ cd $srcdir/build/kiriki
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiriki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+ pkgdesc='Territory Capture Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kjumpingcube/"
+ install='kdegames.install'
+ cd $srcdir/build/kjumpingcube
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kjumpingcube
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+ pkgdesc='Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ replaces=('kdegames-ksame')
+ conflicts=('kdegames-ksame')
+ url="http://kde.org/applications/games/ksame/"
+ install='kdegames.install'
+ cd $srcdir/build/klickety
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klickety
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+ pkgdesc='Tactical Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/klines/"
+ install='kdegames.install'
+ cd $srcdir/build/klines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+ pkgdesc='Mahjongg Solitaire'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kmahjongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kmahjongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+ pkgdesc='Minesweeper-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kmines/"
+ install='kdegames.install'
+ cd $srcdir/build/kmines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+ pkgdesc='Network Construction Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/knetwalk/"
+ install='kdegames.install'
+ cd $srcdir/build/knetwalk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/knetwalk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+ pkgdesc='Miniature Golf'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kolf/"
+ install='kdegames-kolf.install'
+ cd $srcdir/build/kolf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+ pkgdesc='A simple ball dodging game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kollision/"
+ install='kdegames.install'
+ cd $srcdir/build/kollision
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kollision
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+ pkgdesc='Galactic Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/konquest/"
+ install='kdegames.install'
+ cd $srcdir/build/konquest
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/konquest
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+ pkgdesc='Patience Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kpatience/"
+ install='kdegames-kpatience.install'
+ replaces=('kdegames-kpat')
+ cd $srcdir/build/kpat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kpat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+ pkgdesc='Reversi Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kreversi/"
+ install='kdegames-kreversi.install'
+ cd $srcdir/build/kreversi
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kreversi
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kreversi/module.dsc \
+ $pkgdir/usr/share/ggz/kreversi.dsc
+}
+
+package_kdegames-kshisen() {
+ pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kshisen/"
+ install='kdegames.install'
+ cd $srcdir/build/kshisen
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kshisen
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+ pkgdesc='World Domination Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksirk/"
+ install='kdegames.install'
+ cd $srcdir/build/ksirk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksirk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+ pkgdesc='Space Arcade Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kspaceduel/"
+ install='kdegames-kspaceduel.install'
+ cd $srcdir/build/kspaceduel
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kspaceduel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+ pkgdesc='Connect the dots to create squares'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/ksquares/"
+ install='kdegames-ksquares.install'
+ cd $srcdir/build/ksquares
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksquares
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/ksquares/src/module.dsc \
+ $pkgdir/usr/share/ggz/ksquares.dsc
+}
+
+package_kdegames-ksudoku() {
+ pkgdesc='KSudoku, Sudoku game & more for KDE'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksudoku/"
+ install='kdegames.install'
+ cd $srcdir/build/ksudoku
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksudoku
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+ pkgdesc='Tron-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktron/"
+ install='kdegames.install'
+ cd $srcdir/build/ktron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+ pkgdesc='Picture Game for Children'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktuberling/"
+ install='kdegames-ktuberling.install'
+ cd $srcdir/build/ktuberling
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktuberling
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+ pkgdesc='A 3-D game based on Rubik´s Cube'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kubrick/"
+ install='kdegames.install'
+ cd $srcdir/build/kubrick
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kubrick
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+ pkgdesc='KDE game library'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkdegames
+ make DESTDIR=$pkgdir install
+ for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+ install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+ done
+}
+
+package_kdegames-libkmahjongg() {
+ pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+ pkgdesc='Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/lskat/"
+ install='kdegames-lskat.install'
+ cd $srcdir/build/lskat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lskat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+ pkgdesc='Jigsaw puzzle game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/palapeli/"
+ install='kdegames-palapeli.install'
+ cd $srcdir/build/palapeli
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/palapeli
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdegames/kdegames-kbattleship.install b/kde-unstable/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ac4516ed0
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,24 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kbattleship.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kbattleship.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
diff --git a/kde-unstable/kdegames/kdegames-kfourinline.install b/kde-unstable/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kigo.install b/kde-unstable/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kolf.install b/kde-unstable/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kpatience.install b/kde-unstable/kdegames/kdegames-kpatience.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kpatience.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kreversi.install b/kde-unstable/kdegames/kdegames-kreversi.install
new file mode 100644
index 000000000..4623e6e49
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kreversi.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ ggz-config -i -f -m usr/share/ggz/kreversi.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kreversi.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kreversi.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdegames/kdegames-kspaceduel.install b/kde-unstable/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-ksquares.install b/kde-unstable/kdegames/kdegames-ksquares.install
new file mode 100644
index 000000000..5a619897d
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ksquares.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ ggz-config -i -f -m usr/share/ggz/ksquares.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/ksquares.dsc ]; then
+ ggz-config -r -m usr/share/ggz/ksquares.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdegames/kdegames-ktuberling.install b/kde-unstable/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-lskat.install b/kde-unstable/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-palapeli.install b/kde-unstable/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames.install b/kde-unstable/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/PKGBUILD b/kde-unstable/kdegraphics-gwenview/PKGBUILD
new file mode 100644
index 000000000..33b6d1a62
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144812 2011-12-08 10:58:01Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-gwenview
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A fast and easy to use image viewer for KDE"
+url="http://kde.org/applications/graphics/gwenview/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-lib' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins: extra plugins to share photos')
+install=$pkgname.install
+source=("http://download.kde.org/unstable/${pkgver}/src/gwenview-${pkgver}.tar.bz2")
+sha1sums=('4ce42d89a91d1dda669e9ac6630613413a8644d8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../gwenview-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kamera/PKGBUILD b/kde-unstable/kdegraphics-kamera/PKGBUILD
new file mode 100644
index 000000000..bc333aafc
--- /dev/null
+++ b/kde-unstable/kdegraphics-kamera/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144813 2011-12-08 10:58:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kamera
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Configure Kamera"
+url="http://kde.org/applications/graphics/kamera/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'gphoto2')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kamera-${pkgver}.tar.bz2")
+sha1sums=('d431167c4a4c9b5df9105095b41ce9f340851e64')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kamera-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
new file mode 100644
index 000000000..b9faa7484
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144814 2011-12-08 10:59:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kcolorchooser
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Color Chooser"
+url="http://kde.org/applications/graphics/kcolorchooser/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcolorchooser-${pkgver}.tar.bz2")
+sha1sums=('f16bdd87bb6233cbfd2ab647cab7335d3d34d062')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcolorchooser-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kgamma/PKGBUILD b/kde-unstable/kdegraphics-kgamma/PKGBUILD
new file mode 100644
index 000000000..7a569633b
--- /dev/null
+++ b/kde-unstable/kdegraphics-kgamma/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144815 2011-12-08 10:59:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kgamma
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+url="http://kde.org/applications/graphics/kgamma/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+# note on libxxf86vm:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxxf86vm
+depends=('kdebase-runtime' 'libxxf86vm')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kgamma-${pkgver}.tar.bz2")
+sha1sums=('1424d9e79e709550f2093d74abc9b2530b0326b8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgamma-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/PKGBUILD b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
new file mode 100644
index 000000000..d513500d3
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144816 2011-12-08 11:00:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kolourpaint
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Paint Program"
+url="http://kde.org/applications/graphics/kolourpaint/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kolourpaint-${pkgver}.tar.bz2")
+sha1sums=('20d46610bfc8943cfe5b83e2e9b0902a6389b973')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kolourpaint-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kruler/PKGBUILD b/kde-unstable/kdegraphics-kruler/PKGBUILD
new file mode 100644
index 000000000..eb890bc3f
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144817 2011-12-08 11:00:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kruler
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Screen Ruler"
+url="http://kde.org/applications/graphics/kruler/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kruler-${pkgver}.tar.bz2")
+sha1sums=('89ec4ca602371264b0587649b92631bb74093a4a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kruler-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
new file mode 100644
index 000000000..81637de54
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144818 2011-12-08 11:01:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksaneplugin
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A scan plugin that implements the scanning"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libksane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/ksaneplugin-${pkgver}.tar.bz2")
+sha1sums=('f493dcad48561622baf4e67958faf932f221a032')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksaneplugin-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/PKGBUILD b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
new file mode 100644
index 000000000..585129c84
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144819 2011-12-08 11:01:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksnapshot
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Screen Capture Program"
+url="http://kde.org/applications/graphics/ksnapshot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdelibs' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ksnapshot-${pkgver}.tar.bz2")
+sha1sums=('d8a7b36516c905c1f69e0d1b50b87c78094f9caf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksnapshot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-mobipocket/PKGBUILD b/kde-unstable/kdegraphics-mobipocket/PKGBUILD
new file mode 100644
index 000000000..fa8d5066a
--- /dev/null
+++ b/kde-unstable/kdegraphics-mobipocket/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144820 2011-12-08 11:02:01Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-mobipocket
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A collection of plugins to handle mobipocket files"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/mobipocket-${pkgver}.tar.bz2")
+sha1sums=('82e978474ab0f9a3edbdd74f0ddb9834cd5b1736')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../mobipocket-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install b/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-okular/PKGBUILD b/kde-unstable/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..54928f2b2
--- /dev/null
+++ b/kde-unstable/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144761 2011-12-08 10:25:19Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/okular-${pkgver}.tar.bz2")
+sha1sums=('ca6208448ccc2e0ce1f0545ab7d76f6e59f767b0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-okular/kdegraphics-okular.install b/kde-unstable/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-okular/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
new file mode 100644
index 000000000..978ed2868
--- /dev/null
+++ b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144821 2011-12-08 11:02:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-strigi-analyzer
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Strigi analyzers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('6ce63fd58bf35b86e854bd39332ec493de2c3a0d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-svgpart/PKGBUILD b/kde-unstable/kdegraphics-svgpart/PKGBUILD
new file mode 100644
index 000000000..5f6dbf5c4
--- /dev/null
+++ b/kde-unstable/kdegraphics-svgpart/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144822 2011-12-08 11:03:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-svgpart
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A KPart for viewving SVGs"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/svgpart-${pkgver}.tar.bz2")
+sha1sums=('4280bca62347bc9116a8e499065dcd6c7a4adea3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../svgpart-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-thumbnailers/PKGBUILD b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
new file mode 100644
index 000000000..e5322b996
--- /dev/null
+++ b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144823 2011-12-08 11:03:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-thumbnailers
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Thumbnailers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('61247ab0fb8b94c9431c5bce4f68c514ad0ec722')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdelibs/PKGBUILD b/kde-unstable/kdelibs/PKGBUILD
new file mode 100644
index 000000000..b663c6cf2
--- /dev/null
+++ b/kde-unstable/kdelibs/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 144751 2011-12-08 10:17:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
+ 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
+ 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
+ 'phonon' 'upower' 'udisks' 'libxcursor')
+makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch' 'archlinux-menu.patch')
+sha1sums=('888a37f78cd44d16101c244f86576a39adc89bb6'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menus
+ patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+ # add Archlinux menu entry
+ patch -p1 -i "${srcdir}"/archlinux-menu.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/kde-unstable/kdelibs/archlinux-menu.patch b/kde-unstable/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/kde-unstable/kdelibs/archlinux-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu 2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu 2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ </DefaultLayout>
+ <Layout>
+ <Merge type="menus"/>
++ <Menuname>Arch Linux</Menuname>
+ <Menuname>Applications</Menuname>
+ <Merge type="files"/>
+ </Layout>
+
+ <Menu>
++ <Name>Arch Linux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu>
++ <Menu>
+ <Name>Applications</Name>
+ <Directory>kde-unknown.directory</Directory>
+ <OnlyUnallocated/>
diff --git a/kde-unstable/kdelibs/kde-applications-menu.patch b/kde-unstable/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/kde-unstable/kdelibs/kde-applications-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt 2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt 2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp 2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp 2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+ if (!m_trackId.isEmpty())
+ g_vfolder->setTrackId(m_trackId);
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
diff --git a/kde-unstable/kdelibs/kdelibs.install b/kde-unstable/kdelibs/kdelibs.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdelibs/kdelibs.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia/PKGBUILD b/kde-unstable/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..dde82bf7f
--- /dev/null
+++ b/kde-unstable/kdemultimedia/PKGBUILD
@@ -0,0 +1,108 @@
+# $Id: PKGBUILD 144824 2011-12-08 11:04:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdemultimedia
+pkgname=('kdemultimedia-dragonplayer'
+ 'kdemultimedia-ffmpegthumbs'
+ 'kdemultimedia-juk'
+ 'kdemultimedia-kioslave'
+ 'kdemultimedia-kmix'
+ 'kdemultimedia-kscd'
+ 'kdemultimedia-mplayerthumbs')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('cmake' 'automoc4' 'kdelibs' 'tunepimp' 'ffmpeg' 'mplayer'
+ 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'mplayerthumbs.config')
+sha1sums=('438e74972985616afbd019d0814863a208abe64b'
+ 'ba016fa2563c14ffcba852c62506b66bfc6ee683')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdemultimedia-dragonplayer() {
+ pkgdesc='Video Player'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/dragonplayer/"
+ install='kdemultimedia-dragonplayer.install'
+ cd $srcdir/build/dragonplayer
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dragonplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-ffmpegthumbs() {
+ pkgdesc='Video Files (ffmpegthumbs)'
+ depends=('kdebase-runtime' 'ffmpeg')
+ install='kdemultimedia.install'
+ cd $srcdir/build/ffmpegthumbs
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-juk() {
+ pkgdesc='Music Player'
+ depends=('kdebase-runtime' 'tunepimp')
+ url="http://kde.org/applications/multimedia/juk"
+ install='kdemultimedia.install'
+ cd $srcdir/build/juk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/juk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kioslave() {
+ pkgdesc='Audio CD Browser'
+ depends=('kdelibs' 'libmusicbrainz3' 'cdparanoia')
+ conflicts=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+ replaces=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+ for i in kioslave doc/kioslave libkcddb libkcompactdisc; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdemultimedia-kmix() {
+ pkgdesc='Sound Mixer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/kmix"
+ install='kdemultimedia.install'
+ cd $srcdir/build/kmix
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmix
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kscd() {
+ pkgdesc='CD Player'
+ depends=('kdebase-runtime' 'libmusicbrainz3')
+ url="http://kde.org/applications/multimedia/kscd"
+ install='kdemultimedia.install'
+ cd $srcdir/build/kscd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/cddbretrieval
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-mplayerthumbs() {
+ pkgdesc='Video Files (MPlayerThumbs)'
+ depends=('kdebase-runtime' 'mplayer')
+ replaces=('mplayerthumbs')
+ conflicts=('mplayerthumbs')
+ cd $srcdir/build/mplayerthumbs
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/mplayerthumbs.config $pkgdir/usr/share/config/mplayerthumbs
+}
diff --git a/kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install b/kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia/kdemultimedia.install b/kde-unstable/kdemultimedia/kdemultimedia.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdemultimedia/kdemultimedia.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia/mplayerthumbs.config b/kde-unstable/kdemultimedia/mplayerthumbs.config
new file mode 100644
index 000000000..761a17953
--- /dev/null
+++ b/kde-unstable/kdemultimedia/mplayerthumbs.config
@@ -0,0 +1,2 @@
+[MPlayerThumbsCfg]
+backend=0
diff --git a/kde-unstable/kdenetwork/PKGBUILD b/kde-unstable/kdenetwork/PKGBUILD
new file mode 100644
index 000000000..27cbb4168
--- /dev/null
+++ b/kde-unstable/kdenetwork/PKGBUILD
@@ -0,0 +1,110 @@
+# $Id: PKGBUILD 144825 2011-12-08 11:05:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-filesharing'
+ 'kdenetwork-kdnssd'
+ 'kdenetwork-kget'
+ 'kdenetwork-kopete'
+ 'kdenetwork-kppp'
+ 'kdenetwork-krdc'
+ 'kdenetwork-krfb')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp'
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
+ 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
+ 'telepathy-qt4' 'libktorrent' 'libmms' 'mediastreamer')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('7b2389d3c11b928a57677171901598a0007181f0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+ -DWITH_Xmms=OFF \
+ -DWITH_LibMeanwhile=OFF
+ make
+}
+
+package_kdenetwork-filesharing() {
+ pkgdesc='Konqueror properties dialog plugin to share a directory with the local network'
+ depends=('kdelibs' 'smbclient')
+ install='kdenetwork.install'
+ cd $srcdir/build/filesharing
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kdnssd() {
+ pkgdesc='Monitors the network for DNS-SD services'
+ depends=('kdelibs')
+ cd $srcdir/build/kdnssd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kget() {
+ pkgdesc='Download Manager'
+ depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms')
+ url="http://kde.org/applications/internet/kget/"
+ install='kdenetwork-kget.install'
+ cd $srcdir/build/kget
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kget
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'libgadu' 'mediastreamer')
+ url="http://kde.org/applications/internet/kopete/"
+ install='kdenetwork-kopete.install'
+ cd $srcdir/build/kopete
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kppp() {
+ pkgdesc='Internet Dial-Up Tool'
+ depends=('kdebase-runtime' 'ppp')
+ url="http://kde.org/applications/internet/kppp/"
+ install='kdenetwork-kppp.install'
+ cd $srcdir/build/kppp
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kppp
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krdc() {
+ pkgdesc='Remote Desktop Client'
+ depends=('kdebase-runtime' 'libvncserver' 'rdesktop' 'telepathy-qt4')
+ optdepends=('kdebase-keditbookmarks: to edit bookmarks')
+ url="http://kde.org/applications/internet/krdc/"
+ cd $srcdir/build/krdc
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/krdc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krfb() {
+ pkgdesc='Desktop Sharing'
+ # note on libxdamage:
+ # not detected by namcap because libgl depends on it
+ # but nvidia providing libgl does not depend on libxdamage
+ depends=('kdebase-runtime' 'libvncserver' 'libxdamage')
+ cd $srcdir/build/krfb
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/krfb
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kget.install b/kde-unstable/kdenetwork/kdenetwork-kget.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kget.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kopete.install b/kde-unstable/kdenetwork/kdenetwork-kopete.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kopete.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kppp.install b/kde-unstable/kdenetwork/kdenetwork-kppp.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kppp.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork.install b/kde-unstable/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim-runtime/PKGBUILD b/kde-unstable/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..6ca841a19
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144757 2011-12-08 10:22:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='KDE PIM Runtime Environment'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepimlibs' 'kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('8833bb270f9dcd3f89abe84c0276a338df553fca')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepim-runtime/kdepim-runtime.install b/kde-unstable/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/kdepim-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdepim/PKGBUILD b/kde-unstable/kdepim/PKGBUILD
new file mode 100644
index 000000000..247c1f439
--- /dev/null
+++ b/kde-unstable/kdepim/PKGBUILD
@@ -0,0 +1,253 @@
+# $Id: PKGBUILD 144826 2011-12-08 11:06:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim'
+ 'kdepim-wizards')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' 'pilot-link'
+ 'kde-agent')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('c29ef1490c5dad892072014e2facfafb72dc5fbb')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ install=kdepim-kleopatra.install
+ url="http://kde.org/applications/utilities/kleopatra/"
+ cd "${srcdir}"/build/kleopatra
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kleopatra
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kmail() {
+ pkgdesc='Mail Client'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/kmail/"
+ install='kdepim-kmail.install'
+ conflicts=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ replaces=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ for i in kmail doc/kmail kmailcvt ksendemail libksieve mailcommon \
+ mailfilteragent ontologies kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim-korganizer.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer templateparser plugins/messageviewer \
+ plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdepim-kresources')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/wizards
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepim/kdepim-kleopatra.install b/kde-unstable/kdepim/kdepim-kleopatra.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-kleopatra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim-kmail.install b/kde-unstable/kdepim/kdepim-kmail.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-kmail.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim-korganizer.install b/kde-unstable/kdepim/kdepim-korganizer.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-korganizer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim.install b/kde-unstable/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepimlibs/PKGBUILD b/kde-unstable/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..77a1d2ae0
--- /dev/null
+++ b/kde-unstable/kdepimlibs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144753 2011-12-08 10:18:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison')
+makedepends=('cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap')
+install='kdepimlibs.install'
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('6f4b0bbc3e8f88d16d4e3830fe0d50c7f3a65f83')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdepimlibs/kdepimlibs.install b/kde-unstable/kdepimlibs/kdepimlibs.install
new file mode 100644
index 000000000..99262607c
--- /dev/null
+++ b/kde-unstable/kdepimlibs/kdepimlibs.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/PKGBUILD b/kde-unstable/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..8f052bc2e
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,618 @@
+# $Id: PKGBUILD 144827 2011-12-08 11:06:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeplasma-addons
+pkgname=('kdeplasma-addons-applets-bball'
+ 'kdeplasma-addons-applets-binary-clock'
+ 'kdeplasma-addons-applets-blackboard'
+ 'kdeplasma-addons-applets-bookmarks'
+ 'kdeplasma-addons-applets-bubblemon'
+ 'kdeplasma-addons-applets-calculator'
+ 'kdeplasma-addons-applets-charselect'
+ 'kdeplasma-addons-applets-comic'
+ 'kdeplasma-addons-applets-community'
+ 'kdeplasma-addons-applets-dict'
+ 'kdeplasma-addons-applets-eyes'
+ 'kdeplasma-addons-applets-fifteenpuzzle'
+ 'kdeplasma-addons-applets-filewatcher'
+ 'kdeplasma-addons-applets-frame'
+ 'kdeplasma-addons-applets-fuzzy-clock'
+ 'kdeplasma-addons-applets-icontasks'
+ 'kdeplasma-addons-applets-incomingmsg'
+ 'kdeplasma-addons-applets-kdeobservatory'
+ 'kdeplasma-addons-applets-kimpanel'
+ 'kdeplasma-addons-applets-knowledgebase'
+ 'kdeplasma-addons-applets-kolourpicker'
+ 'kdeplasma-addons-applets-konqprofiles'
+ 'kdeplasma-addons-applets-konsoleprofiles'
+ 'kdeplasma-addons-applets-lancelot'
+ 'kdeplasma-addons-applets-leavenote'
+ 'kdeplasma-addons-applets-life'
+ 'kdeplasma-addons-applets-luna'
+ 'kdeplasma-addons-applets-magnifique'
+ 'kdeplasma-addons-applets-mediaplayer'
+ 'kdeplasma-addons-applets-microblog'
+ 'kdeplasma-addons-applets-news'
+ 'kdeplasma-addons-applets-notes'
+ 'kdeplasma-addons-applets-nowplaying'
+ 'kdeplasma-addons-applets-paste'
+ 'kdeplasma-addons-applets-pastebin'
+ 'kdeplasma-addons-applets-plasmaboard'
+ 'kdeplasma-addons-applets-previewer'
+ 'kdeplasma-addons-applets-qalculate'
+ 'kdeplasma-addons-applets-rememberthemilk'
+ 'kdeplasma-addons-applets-rssnow'
+ 'kdeplasma-addons-applets-showdashboard'
+ 'kdeplasma-addons-applets-showdesktop'
+ 'kdeplasma-addons-applets-social-news'
+ 'kdeplasma-addons-applets-spellcheck'
+ 'kdeplasma-addons-applets-systemloadviewer'
+ 'kdeplasma-addons-applets-timer'
+ 'kdeplasma-addons-applets-unitconverter'
+ 'kdeplasma-addons-applets-weather'
+ 'kdeplasma-addons-applets-weatherstation'
+ 'kdeplasma-addons-applets-webslice'
+ 'kdeplasma-addons-containments'
+ 'kdeplasma-addons-libs'
+ 'kdeplasma-addons-runners-audioplayercontrol'
+ 'kdeplasma-addons-runners-browserhistory'
+ 'kdeplasma-addons-runners-characters'
+ 'kdeplasma-addons-runners-contacts'
+ 'kdeplasma-addons-runners-converter'
+ 'kdeplasma-addons-runners-datetime'
+ 'kdeplasma-addons-runners-events'
+ 'kdeplasma-addons-runners-katesessions'
+ 'kdeplasma-addons-runners-konquerorsessions'
+ 'kdeplasma-addons-runners-konsolesessions'
+ 'kdeplasma-addons-runners-kopete'
+ 'kdeplasma-addons-runners-mediawiki'
+ 'kdeplasma-addons-runners-spellchecker'
+ 'kdeplasma-addons-wallpapers-mandelbrot'
+ 'kdeplasma-addons-wallpapers-marble'
+ 'kdeplasma-addons-wallpapers-pattern'
+ 'kdeplasma-addons-wallpapers-potd'
+ 'kdeplasma-addons-wallpapers-virus'
+ 'kdeplasma-addons-wallpapers-weather')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen'
+ 'scim' 'qwt' 'boost' 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('b32064ec97f089adf7d769b714ee095c78f499cb')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeplasma-addons-applets-bball() {
+ pkgdesc='A bouncy ball for plasma'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/bball
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+ pkgdesc='Time displayed in binary format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/binary-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+ pkgdesc='Black Board'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/blackboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+ pkgdesc='Quick Access to the Bookmarks'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+ pkgdesc='A pretty bubble that monitors your system.'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bubblemon
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+ pkgdesc='Calculate simple sums'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/calculator
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+ pkgdesc='View, select, and copy characters from a font collection'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/charselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+ pkgdesc='View comic strips from the Internet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/comic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+ pkgdesc='Communicate using the Social Desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/community
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+ pkgdesc='Look up the meaning of words and their translation into different languages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/dict
+ make DESTDIR=$pkgdir install
+ # FIXME
+ # /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+ rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+ pkgdesc='XEyes clone'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/eyes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+ pkgdesc='Put the pieces in order'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/fifteenPuzzle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+ pkgdesc='Watch for changes in specified files'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fileWatcher
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+ pkgdesc='Display your favorite pictures'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/applets/frame
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+ pkgdesc='Time displayed in a less precise format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fuzzy-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-icontasks() {
+ pkgdesc='Switch between running applications'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/icontasks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-incomingmsg() {
+ pkgdesc='Notification of new messages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/incomingmsg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kdeobservatory() {
+ pkgdesc='Visualize the KDE ecosystem'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs' 'qwt')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/kdeobservatory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kimpanel() {
+ pkgdesc='A generic input method panel for Oriental languages'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ optdepends=('scim: SCIM backend'
+ 'fcitx: FCITX backend')
+ cd $srcdir/build/applets/kimpanel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-knowledgebase() {
+ pkgdesc='Opendesktop Knowledgebase'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/knowledgebase
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kolourpicker() {
+ pkgdesc='Pick a color from the desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/kolourpicker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konqprofiles() {
+ pkgdesc='List and launch Konqueror profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konqprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konsoleprofiles() {
+ pkgdesc='List and launch Konsole profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konsoleprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-lancelot() {
+ pkgdesc='Launcher to start applications'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ replaces=('lancelot')
+ provides=('lancelot')
+ conflicts=('lancelot')
+ install='kdeplasma-addons-applets-lancelot.install'
+ cd $srcdir/build/applets/lancelot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-leavenote() {
+ pkgdesc='Leave notes for users while they are away'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/leavenote
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-life() {
+ pkgdesc='Life'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/life
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-luna() {
+ pkgdesc='Display moon phases for your location'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/luna
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-magnifique() {
+ pkgdesc='A magnification glass for the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/magnifique
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-mediaplayer() {
+ pkgdesc='Widget that can play video and sound'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/mediaplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-microblog() {
+ pkgdesc='Update and view your microblog status.'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs' 'qoauth' 'qca-ossl')
+ cd $srcdir/build/applets/microblog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-news() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-notes() {
+ pkgdesc='Desktop sticky notes'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/notes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-nowplaying() {
+ pkgdesc='Displays currently playing audio'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/nowplaying
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-paste() {
+ pkgdesc='Paste text snippets'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/paste
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-pastebin() {
+ pkgdesc='Paste text/images to a remote server'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/pastebin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-plasmaboard() {
+ pkgdesc='A virtual, on-screen keyboard'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/plasmaboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-previewer() {
+ pkgdesc='Preview This File'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/previewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-qalculate() {
+ pkgdesc='A powerful mathematical equation solver'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/qalculate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rememberthemilk() {
+ pkgdesc='Remember The Milk Todo list applet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/rememberthemilk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rssnow() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/rssnow
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdashboard() {
+ pkgdesc='Show the Plasma widget dashboard above other windows'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdashboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdesktop() {
+ pkgdesc='Show the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdesktop
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-social-news() {
+ pkgdesc='Stay informed with the Social Desktop'
+ replaces=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ conflicts=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/social-news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-spellcheck() {
+ pkgdesc='Fast spell checking'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/spellcheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-systemloadviewer() {
+ pkgdesc='Tiny CPU/RAM/Swap monitor'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/systemloadviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-timer() {
+ pkgdesc='Countdown over a specified time period'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/timer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-unitconverter() {
+ pkgdesc='Plasmoid for converting units'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/unitconverter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weather() {
+ pkgdesc='Displays Weather information'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weather
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weatherstation() {
+ pkgdesc='Weather reports with an LCD display style'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weatherstation
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-webslice() {
+ pkgdesc='Show a part of a webpage'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/webslice
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-containments() {
+ pkgdesc='Activities types for Plasma shells'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/containments
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-libs() {
+ pkgdesc='Plasma Addon Library'
+ depends=('kdebase-workspace')
+ groups=()
+ replaces=('kdeplasma-addons-dataengines')
+ provides=('kdeplasma-addons-dataengines')
+ conflicts=('kdeplasma-addons-dataengines')
+ cd $srcdir/build/libs
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/dataengines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-audioplayercontrol() {
+ pkgdesc='Allows to control MPRIS audio players (it is able to search through Amarok´s collection, too)'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/audioplayercontrol
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-browserhistory() {
+ pkgdesc='Searches in Konqueror´s history'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/browserhistory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-characters() {
+ pkgdesc='special Characters'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/characters
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-contacts() {
+ pkgdesc='Finds entries in your address book'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/contacts
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-converter() {
+ pkgdesc='Convert values to different units'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/converter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-datetime() {
+ pkgdesc='The current date and time, locally or in any timezone'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/datetime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-events() {
+ pkgdesc='Calendar Events runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/events
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-katesessions() {
+ pkgdesc='Matches Kate Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/katesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konquerorsessions() {
+ pkgdesc='Matches Konqueror Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konquerorsessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konsolesessions() {
+ pkgdesc='Matches Konsole Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konsolesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-kopete() {
+ pkgdesc='Kopete Contact runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-mediawiki() {
+ pkgdesc='Search on Wikitravel'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/mediawiki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-spellchecker() {
+ pkgdesc='Check the spelling of a word'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/spellchecker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-mandelbrot() {
+ pkgdesc='Mandelbrot'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/mandelbrot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-marble() {
+ pkgdesc='Globe'
+ depends=('kdebase-workspace' 'kdeedu-marble')
+ cd $srcdir/build/wallpapers/marble
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-pattern() {
+ pkgdesc='Pattern'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/pattern
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-potd() {
+ pkgdesc='Picture of the Day'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/potd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-virus() {
+ pkgdesc='Virus'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/virus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-weather() {
+ pkgdesc='Weather'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/weather
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeplasma-addons/fix-build.patch b/kde-unstable/kdeplasma-addons/fix-build.patch
new file mode 100644
index 000000000..79e1d1f8c
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/fix-build.patch
@@ -0,0 +1,163 @@
+From: Aaron Seigo <aseigo@kde.org>
+Date: Tue, 22 Nov 2011 20:10:45 +0000
+Subject: fix build
+X-Git-Url: http://quickgit.kde.org/?p=kdeplasma-addons.git&amp;a=commitdiff&amp;h=6967ee53518136651b4fd5d691293a3c866d7a47
+---
+fix build
+---
+
+
+--- a/libs/lancelot-datamodels/OpenDocuments.cpp
++++ b/libs/lancelot-datamodels/OpenDocuments.cpp
+@@ -66,41 +66,41 @@ OpenDocuments::~OpenDocuments()
+ delete d;
+ }
+
+-void OpenDocuments::Private::connectTask(TaskPtr task)
++void OpenDocuments::Private::connectTask(::TaskManager::Task *task)
+ {
+ Q_ASSERT(task);
+ connect(
+- task.constData(), SIGNAL(changed(::TaskManager::TaskChanges)),
++ task, SIGNAL(changed(::TaskManager::TaskChanges)),
+ this, SLOT(taskChanged())
+ );
+ }
+
+ void OpenDocuments::load()
+ {
+- foreach (TaskPtr task, TaskManager::TaskManager::self()->tasks()) {
++ foreach (TaskManager::Task *task, TaskManager::TaskManager::self()->tasks()) {
+ if (d->setDataForTask(task)) {
+ d->connectTask(task);
+ }
+ }
+
+ connect(
+- TaskManager::TaskManager::self(), SIGNAL(taskAdded(TaskPtr)),
+- d, SLOT(taskAdded(TaskPtr))
++ TaskManager::TaskManager::self(), SIGNAL(taskAdded(::TaskManager::Task*)),
++ d, SLOT(taskAdded(::TaskManager::Task*))
+ );
+
+ connect(
+- TaskManager::TaskManager::self(), SIGNAL(taskRemoved(TaskPtr)),
+- d, SLOT(taskRemoved(TaskPtr))
++ TaskManager::TaskManager::self(), SIGNAL(taskRemoved(::TaskManager::Task*)),
++ d, SLOT(taskRemoved(::TaskManager::Task*))
+ );
+ }
+
+-void OpenDocuments::Private::taskAdded(TaskPtr task)
++void OpenDocuments::Private::taskAdded(::TaskManager::Task *task)
+ {
+ connectTask(task);
+ setDataForTask(task);
+ }
+
+-void OpenDocuments::Private::taskRemoved(TaskPtr task)
++void OpenDocuments::Private::taskRemoved(::TaskManager::Task *task)
+ {
+ Q_ASSERT(task);
+ int index = indexOf(task->window());
+@@ -115,10 +115,10 @@ void OpenDocuments::Private::taskChanged
+ TaskManager::Task* task = qobject_cast<TaskManager::Task*>(sender());
+ Q_ASSERT(task);
+
+- setDataForTask(TaskPtr(task));
++ setDataForTask(task);
+ }
+
+-bool OpenDocuments::Private::setDataForTask(TaskPtr task)
++bool OpenDocuments::Private::setDataForTask(::TaskManager::Task *task)
+ {
+ Q_ASSERT(task);
+
+
+--- a/libs/lancelot-datamodels/OpenDocuments.h
++++ b/libs/lancelot-datamodels/OpenDocuments.h
+@@ -26,8 +26,6 @@
+ #include <taskmanager/taskmanager.h>
+ #include <QSet>
+
+-using TaskManager::TaskPtr;
+-
+ namespace Lancelot {
+ namespace Models {
+
+
+--- a/libs/lancelot-datamodels/OpenDocuments_p.h
++++ b/libs/lancelot-datamodels/OpenDocuments_p.h
+@@ -24,8 +24,6 @@
+ #include <taskmanager/taskmanager.h>
+ #include <QSet>
+
+-using TaskManager::TaskPtr;
+-
+ namespace Lancelot {
+ namespace Models {
+
+@@ -44,16 +42,16 @@ public:
+
+ public Q_SLOTS:
+ void taskChanged();
+- void taskAdded(TaskPtr task);
+- void taskRemoved(TaskPtr task);
++ void taskAdded(::TaskManager::Task *task);
++ void taskRemoved(::TaskManager::Task *task);
+
+- void connectTask(TaskPtr task);
+- bool setDataForTask(TaskPtr task);
++ void connectTask(::TaskManager::Task *task);
++ bool setDataForTask(::TaskManager::Task *task);
+
+ int indexOf(WId wid);
+
+ public:
+- QMap <WId, TaskPtr > tasks;
++ QMap <WId, TaskManager::Task *> tasks;
+ QList <SupportedTask> supportedTasks;
+
+ private:
+
+From: Aaron Seigo <aseigo@kde.org>
+Date: Tue, 22 Nov 2011 13:07:59 +0000
+Subject: remove outdated using statements
+X-Git-Url: http://quickgit.kde.org/?p=kdeplasma-addons.git&amp;a=commitdiff&amp;h=b0c70d7fd866efb628036f43978bc791e0485f90
+---
+remove outdated using statements
+---
+
+
+--- a/applets/icontasks/taskitemlayout.h
++++ b/applets/icontasks/taskitemlayout.h
+@@ -32,9 +32,6 @@ class TaskGroupItem;
+ class AbstractTaskItem;
+ class LauncherSeparator;
+
+-using TaskManager::StartupPtr;
+-using TaskManager::TaskPtr;
+-
+ /**
+ * A Layout for the expanded group
+ */
+
+--- a/applets/icontasks/tasks.h
++++ b/applets/icontasks/tasks.h
+@@ -54,15 +54,6 @@ namespace TaskManager
+ class GroupManager;
+ } // namespace TaskManager
+
+-using TaskManager::StartupPtr;
+-using TaskManager::TaskPtr;
+-using TaskManager::StartupPtr;
+-using TaskManager::GroupPtr;
+-using TaskManager::AbstractGroupableItem;
+-using TaskManager::TaskItem;
+-using TaskManager::TaskGroup;
+-using TaskManager::LauncherItem;
+-
+ class TaskGroupItem;
+ class GroupManager;
+
+
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
new file mode 100644
index 000000000..c4ef46ba8
--- /dev/null
+++ b/kde-unstable/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/kde-unstable/kdesdk-kate/PKGBUILD b/kde-unstable/kdesdk-kate/PKGBUILD
new file mode 100644
index 000000000..80490b36c
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 144762 2011-12-08 10:25:57Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdesdk-kate
+pkgname=('kdebase-kwrite'
+ 'kdesdk-kate')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('kdelibs ''cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kate-${pkgver}.tar.bz2"
+ 'pkgbuild-syntax-highlight.patch')
+sha1sums=('0d6b11fffc02de0ee22e2f866446d5b92b987423'
+ '0a928253bd2077f0264d96a6c8823c69c47b6a8d')
+
+build() {
+ cd "${srcdir}"/kate-${pkgver}
+ patch -p1 -i "${srcdir}"/pkgbuild-syntax-highlight.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kate-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_KTEXTEDITOR=OFF
+ make
+}
+
+package_kdebase-kwrite() {
+ pkgdesc="Text Editor"
+ depends=('kdebase-runtime')
+ groups=('kde' 'kdebase')
+ url="http://www.kde.org/applications/utilities/kwrite/"
+ install='kdebase-kwrite.install'
+
+ cd "${srcdir}"/build/kwrite
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/part
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kwrite
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdesdk-kate() {
+ pkgdesc="Advanced Text Editor"
+ depends=('kdebase-kwrite')
+ groups=('kde' 'kdesdk')
+ url="http://www.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
+}
diff --git a/kde-unstable/kdesdk-kate/kdebase-kwrite.install b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/kdesdk-kate.install b/kde-unstable/kdesdk-kate/kdesdk-kate.install
new file mode 100644
index 000000000..a9c01ef06
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdesdk-kate.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
new file mode 100644
index 000000000..27729d1ad
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
@@ -0,0 +1,11 @@
+--- kate-4.7.80/part/syntax/data/bash.xml~ 2011-11-20 06:14:30.581097154 +0000
++++ kate-4.7.80/part/syntax/data/bash.xml 2011-11-20 06:14:45.494553146 +0000
+@@ -8,7 +8,7 @@
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
+ ]>
+-<language name="Bash" version="2.14" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
++<language name="Bash" version="2.14" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+
+ <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
+ Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
diff --git a/kde-unstable/kdesdk/PKGBUILD b/kde-unstable/kdesdk/PKGBUILD
new file mode 100644
index 000000000..fb7567423
--- /dev/null
+++ b/kde-unstable/kdesdk/PKGBUILD
@@ -0,0 +1,258 @@
+# $Id: PKGBUILD 144772 2011-12-08 10:31:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdesdk
+pkgname=('kdesdk-cervisia'
+ 'kdesdk-dolphin-plugins'
+ 'kdesdk-kapptemplate'
+ 'kdesdk-kcachegrind'
+ 'kdesdk-kdeaccounts-plugin'
+ 'kdesdk-kdepalettes'
+ 'kdesdk-kioslave'
+ 'kdesdk-kmtrace'
+ 'kdesdk-kompare'
+ 'kdesdk-kpartloader'
+ 'kdesdk-kprofilemethod'
+ 'kdesdk-kstartperf'
+ 'kdesdk-kuiviewer'
+ 'kdesdk-lokalize'
+ 'kdesdk-okteta'
+ 'kdesdk-poxml'
+ 'kdesdk-scripts'
+ 'kdesdk-strigi-analyzer'
+ 'kdesdk-umbrello')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdesdk')
+makedepends=('cmake' 'automoc4' 'boost' 'subversion' 'antlr2' 'kdepimlibs'
+ 'kdebase-lib')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'fix-python2-path.patch')
+sha1sums=('0a1592c1886bdd3828d2b41f7e78c0662f725014'
+ '923cabd7a877cf9a68efeb24fbf3d5827e1d949e')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # Fix hardcoded python2 cmd
+ patch -Np1 -i ${srcdir}/fix-python2-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdesdk-cervisia() {
+ pkgdesc='CVS Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/cervisia/"
+ install='kdesdk-cervisia.install'
+ cd $srcdir/build/cervisia
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/cervisia
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-dolphin-plugins() {
+ pkgdesc='Extra Dolphin plugins'
+ depends=('kdebase-dolphin' 'subversion' 'git' 'kdesdk-kompare')
+ install='kdesdk.install'
+ cd $srcdir/build/dolphin-plugins/git
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/dolphin-plugins/svn
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kapptemplate() {
+ pkgdesc='KDE Template Generator'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kapptemplate/"
+ install='kdesdk.install'
+ cd $srcdir/build/kapptemplate
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapptemplate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kcachegrind() {
+ pkgdesc='Visualization of Performance Profiling Data'
+ depends=('kdebase-runtime' 'python2')
+ optdepends=('php: PHP support')
+ url="http://kde.org/applications/development/kcachegrind/"
+ install='kdesdk-kcachegrind.install'
+ cd $srcdir/build/kcachegrind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcachegrind
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/hotshot2calltree
+}
+
+package_kdesdk-kdeaccounts-plugin() {
+ pkgdesc='KDE Repository Accounts'
+ depends=('kdepim-runtime')
+ cd $srcdir/build/kdeaccounts-plugin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kdepalettes() {
+ pkgdesc='Palettes for the Gimp that match the KDE standard color palette'
+ optdepends=('gimp')
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kdepalettes/KDE_Gimp \
+ $pkgdir/usr/share/gimp/2.0/palettes/KDE.gpl
+}
+
+package_kdesdk-kioslave() {
+ pkgdesc='KDED Subversion Module'
+ depends=('kdebase-runtime' 'subversion')
+ install='kdesdk.install'
+ cd $srcdir/build/kioslave
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kmtrace() {
+ pkgdesc='A KDE tool to assist with malloc debugging using glibc´s "mtrace" functionality'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kmtrace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmtrace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kompare() {
+ pkgdesc='Diff/Patch Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kompare/"
+ install='kdesdk.install'
+ cd $srcdir/build/kompare
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kompare
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kpartloader() {
+ pkgdesc='A test application for KParts'
+ depends=('kdebase-runtime')
+ install='kdesdk.install'
+ cd $srcdir/build/kpartloader
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kprofilemethod() {
+ pkgdesc='Macros helping to profile'
+ cd $srcdir/build/kprofilemethod
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kspy() {
+ pkgdesc='An Object Inspector for Qt/KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kspy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kstartperf() {
+ pkgdesc='Startup time measurement tool for KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kstartperf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kuiviewer() {
+ pkgdesc='Qt Designer UI File Viewer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kuiviewer/"
+ install='kdesdk-kuiviewer.install'
+ cd $srcdir/build/kuiviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-lokalize() {
+ pkgdesc='Computer-Aided Translation System'
+ depends=('kdebase-runtime' 'kdebindings-python')
+ url="http://kde.org/applications/development/lokalize/"
+ optdepends=('translate-toolkit: enable extra python script')
+ install='kdesdk-lokalize.install'
+ cd $srcdir/build/lokalize
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lokalize
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/lokalize/scripts/odf/xliffmerge.py
+}
+
+package_kdesdk-okteta() {
+ pkgdesc='Hex Editor'
+ depends=('kdebase-runtime')
+ replaces=('kdeutils-okteta')
+ conflicts=('kdeutils-okteta')
+ url="http://kde.org/applications/utilities/okteta/"
+ install='kdesdk-okteta.install'
+ cd $srcdir/build/okteta
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/okteta
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-poxml() {
+ pkgdesc='Translates DocBook XML files using gettext po files'
+ depends=('qt' 'antlr2')
+ cd $srcdir/build/poxml
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/poxml
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scheck() {
+ pkgdesc='An interface style to highlight accel and style guide conflicts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/scheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scripts() {
+ pkgdesc='KDE SDK scripts'
+ depends=('python2')
+ cd $srcdir/build/scripts
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/scripts
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/{{kde-systemsettings-tree,kdelnk2desktop,zonetab2pot}.py,kde_generate_export_header}
+}
+
+package_kdesdk-strigi-analyzer() {
+ pkgdesc='Strigi-Analyzer for KDE SDK'
+ depends=('kdelibs')
+ cd $srcdir/build/strigi-analyzer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-umbrello() {
+ pkgdesc='UML Modeller'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/umbrello/"
+ install='kdesdk-umbrello.install'
+ cd $srcdir/build/umbrello
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/umbrello
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/umbrello/headings/heading.py
+}
diff --git a/kde-unstable/kdesdk/fix-python2-path.patch b/kde-unstable/kdesdk/fix-python2-path.patch
new file mode 100644
index 000000000..720487031
--- /dev/null
+++ b/kde-unstable/kdesdk/fix-python2-path.patch
@@ -0,0 +1,32 @@
+--- kdesdk-4.5.80/lokalize/scripts/msgmerge.py~ 2010-11-24 11:22:42.120000002 +0100
++++ kdesdk-4.5.80/lokalize/scripts/msgmerge.py 2010-11-24 11:22:42.146666670 +0100
+@@ -114,7 +114,7 @@
+ print >>sys.stderr, "Execution failed:", e
+
+ cmd='%s/odf/xliffmerge.py -i %s -t %s -o %s' % (ourPath,xliffpathname,xlifftemplatepathname,xliffpathname)
+- if os.name!='nt': cmd='python '+cmd
++ if os.name!='nt': cmd='python2 '+cmd
+ else: cmd=cmd.replace('/','\\')
+ os.system(cmd)
+
+--- kdesdk-4.5.80/lokalize/scripts/xliff2odf.py~ 2010-11-24 11:24:10.853333336 +0100
++++ kdesdk-4.5.80/lokalize/scripts/xliff2odf.py 2010-11-24 11:24:10.883333336 +0100
+@@ -42,7 +42,7 @@
+ xliff2odf.convertxliff(xliffinput, translatedodfpathname, odf)
+
+ ourpath=([p for p in sys.path if os.path.exists(p+'/xliff2odf.py')]+[''])[0]
+- os.system('python "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
++ os.system('python2 "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
+
+ try: convert()
+ except: print 'error occured'
+--- kdesdk-4.5.80/scripts/svn2log.sh~ 2010-11-24 11:46:24.863333337 +0100
++++ kdesdk-4.5.80/scripts/svn2log.sh 2010-11-24 11:46:24.896666669 +0100
+@@ -17,6 +17,6 @@
+ svn cat svn://anonsvn.kde.org/home/kde/trunk/kde-common/accounts > /tmp/accounts.$PPID
+
+ echo "Creating changelog...";
+-svn log -v --xml $1 | python $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
++svn log -v --xml $1 | python2 $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
+
+ rm /tmp/accounts.$PPID \ No newline at end of file
diff --git a/kde-unstable/kdesdk/kdesdk-cervisia.install b/kde-unstable/kdesdk/kdesdk-cervisia.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-cervisia.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kcachegrind.install b/kde-unstable/kdesdk/kdesdk-kcachegrind.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kcachegrind.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kompare.install b/kde-unstable/kdesdk/kdesdk-kompare.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kompare.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kuiviewer.install b/kde-unstable/kdesdk/kdesdk-kuiviewer.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kuiviewer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-lokalize.install b/kde-unstable/kdesdk/kdesdk-lokalize.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-lokalize.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-okteta.install b/kde-unstable/kdesdk/kdesdk-okteta.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-okteta.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-umbrello.install b/kde-unstable/kdesdk/kdesdk-umbrello.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-umbrello.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk.install b/kde-unstable/kdesdk/kdesdk.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdetoys/PKGBUILD b/kde-unstable/kdetoys/PKGBUILD
new file mode 100644
index 000000000..e93491d23
--- /dev/null
+++ b/kde-unstable/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 144828 2011-12-08 11:07:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('cmake' 'automoc4' 'kdebase-workspace')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('fd49f8bd04572c47eebb8a180c3db833b2e17da8')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdetoys-amor() {
+ pkgdesc='On-Screen Creature'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/amor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/amor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-kteatime() {
+ pkgdesc='Tea Cooker'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/kteatime
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kteatime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-ktux() {
+ pkgdesc='KTux'
+ depends=('kdebase-workspace' )
+ install='kdetoys.install'
+ cd $srcdir/build/ktux
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdetoys/kdetoys.install b/kde-unstable/kdetoys/kdetoys.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdetoys/kdetoys.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-filelight/PKGBUILD b/kde-unstable/kdeutils-filelight/PKGBUILD
new file mode 100644
index 000000000..073cfcf92
--- /dev/null
+++ b/kde-unstable/kdeutils-filelight/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144830 2011-12-08 11:08:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-filelight
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='View disk usage information'
+url='http://kde.org/applications/utilities/filelight'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+replaces=('filelight')
+conflicts=('filelight')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/filelight-${pkgver}.tar.bz2")
+sha1sums=('fe30a6749254eaec6aff7f62aa569ac7bd807be4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../filelight-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-filelight/kdeutils-filelight.install b/kde-unstable/kdeutils-filelight/kdeutils-filelight.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-filelight/kdeutils-filelight.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kcalc/PKGBUILD b/kde-unstable/kdeutils-kcalc/PKGBUILD
new file mode 100644
index 000000000..6d31d0098
--- /dev/null
+++ b/kde-unstable/kdeutils-kcalc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144831 2011-12-08 11:09:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kcalc
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Scientific Calculator'
+url='http://kde.org/applications/utilities/kcalc/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcalc-${pkgver}.tar.bz2")
+sha1sums=('d7c267f92ea5a15e5a3f9377b17dcad117627ed1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcalc-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install b/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kcharselect/PKGBUILD b/kde-unstable/kdeutils-kcharselect/PKGBUILD
new file mode 100644
index 000000000..66b541aa6
--- /dev/null
+++ b/kde-unstable/kdeutils-kcharselect/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144832 2011-12-08 11:09:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kcharselect
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Character Selector'
+url="http://kde.org/applications/utilities/kcharselect/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/kcharselect-${pkgver}.tar.bz2")
+sha1sums=('b95231c0718c3351c1b8846f083b884502e3c0fe')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcharselect-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kdf/PKGBUILD b/kde-unstable/kdeutils-kdf/PKGBUILD
new file mode 100644
index 000000000..708ef66dd
--- /dev/null
+++ b/kde-unstable/kdeutils-kdf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144833 2011-12-08 11:10:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kdf
+pkgver=4.7.90
+pkgrel=1
+url="http://kde.org/applications/system/kdiskfree/"
+arch=('i686' 'x86_64')
+pkgdesc='View Disk Usage'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kdf-${pkgver}.tar.bz2")
+sha1sums=('e93e7e566773e32075a812976d2553a0f63cba5a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kdf-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kdf/kdeutils-kdf.install b/kde-unstable/kdeutils-kdf/kdeutils-kdf.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kdf/kdeutils-kdf.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kfloppy/PKGBUILD b/kde-unstable/kdeutils-kfloppy/PKGBUILD
new file mode 100644
index 000000000..5d882035e
--- /dev/null
+++ b/kde-unstable/kdeutils-kfloppy/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144834 2011-12-08 11:10:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kfloppy
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Floppy Formatter'
+url='http://kde.org/applications/utilities/kfloppy/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kfloppy-${pkgver}.tar.bz2")
+sha1sums=('d88adef423e3938a7fe6f07991ad9c9b266896ef')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kfloppy-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install b/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kgpg/PKGBUILD b/kde-unstable/kdeutils-kgpg/PKGBUILD
new file mode 100644
index 000000000..fb7190e3b
--- /dev/null
+++ b/kde-unstable/kdeutils-kgpg/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144835 2011-12-08 11:11:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kgpg
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='A GnuPG frontend'
+url='http://kde.org/applications/utilities/kgpg/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepim-runtime' 'kde-agent')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgpg-${pkgver}.tar.bz2")
+sha1sums=('77f2bf2eeed2945046a9b563a8d8dc040c5559ab')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgpg-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install b/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kremotecontrol/PKGBUILD b/kde-unstable/kdeutils-kremotecontrol/PKGBUILD
new file mode 100644
index 000000000..a3621be0c
--- /dev/null
+++ b/kde-unstable/kdeutils-kremotecontrol/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kremotecontrol
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Configure your remote controls for use with applications'
+url='http://kde.org/applications/utilities/kremotecontrol/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-workspace')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+replaces=('kdeutils-kdelirc')
+conflicts=('kdeutils-kdelirc')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kremotecontrol-${pkgver}.tar.bz2")
+sha1sums=('deecb178365fb8baf90fe807ddd0b3a63bee0e67')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kremotecontrol-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install b/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-ktimer/PKGBUILD b/kde-unstable/kdeutils-ktimer/PKGBUILD
new file mode 100644
index 000000000..95a4b4515
--- /dev/null
+++ b/kde-unstable/kdeutils-ktimer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144837 2011-12-08 11:11:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-ktimer
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Countdown Launcher'
+url='http://kde.org/applications/utilities/ktimer/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktimer-${pkgver}.tar.bz2")
+sha1sums=('b3af39fcb5a0bdc93fea85b4fd2e2af5b7953634')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktimer-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install b/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kwallet/PKGBUILD b/kde-unstable/kdeutils-kwallet/PKGBUILD
new file mode 100644
index 000000000..2557fe1c2
--- /dev/null
+++ b/kde-unstable/kdeutils-kwallet/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144838 2011-12-08 11:12:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kwallet
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='Wallet Management Tool'
+url='http://kde.org/applications/system/kwalletmanager/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwallet-${pkgver}.tar.bz2")
+sha1sums=('a2c667f38852c9293866a3cdd71073c3c46079d5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwallet-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install b/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-printer-applet/PKGBUILD b/kde-unstable/kdeutils-printer-applet/PKGBUILD
new file mode 100644
index 000000000..48d1a009c
--- /dev/null
+++ b/kde-unstable/kdeutils-printer-applet/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 144839 2011-12-08 11:12:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-printer-applet
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='System tray icon for managing print jobs'
+url='http://kde.org/applications/system/printerapplet/'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'kdebindings-python' 'system-config-printer-common')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/printer-applet-${pkgver}.tar.bz2")
+sha1sums=('b30e5089389c0147e7256080323f7f6777ef422e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../printer-applet-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/printer-applet/{authconn,debug,monitor,printer-applet,statereason}.py
+}
diff --git a/kde-unstable/kdeutils-superkaramba/PKGBUILD b/kde-unstable/kdeutils-superkaramba/PKGBUILD
new file mode 100644
index 000000000..0fc73c92c
--- /dev/null
+++ b/kde-unstable/kdeutils-superkaramba/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144840 2011-12-08 11:13:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-superkaramba
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='An engine for cool desktop eyecandy'
+url='http://kde.org/applications/utilities/superkaramba/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/superkaramba-${pkgver}.tar.bz2")
+sha1sums=('6135759152daa625e1b3de694a75d3b229452e30')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../superkaramba-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install b/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-sweeper/PKGBUILD b/kde-unstable/kdeutils-sweeper/PKGBUILD
new file mode 100644
index 000000000..55308a9e9
--- /dev/null
+++ b/kde-unstable/kdeutils-sweeper/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144841 2011-12-08 11:13:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-sweeper
+pkgver=4.7.90
+pkgrel=1
+pkgdesc='System Cleaner'
+url='http://kde.org/applications/utilities/sweeper'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/sweeper-${pkgver}.tar.bz2")
+sha1sums=('1de3c266d237b4914993a99a5267fe904f66f21b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../sweeper-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdewebdev/PKGBUILD b/kde-unstable/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..d0386bf93
--- /dev/null
+++ b/kde-unstable/kdewebdev/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 144842 2011-12-08 11:14:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.7.90
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdewebdev')
+makedepends=('cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepim-runtime' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('22a8a85eed8e4d070e2bc4b1bff73610703936ec')
+
+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')
+ url="http://www.kde.org/applications/development/kimagemapeditor/"
+ install='kdewebdev-kimagemapeditor.install'
+ cd $srcdir/build/kimagemapeditor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kimagemapeditor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-klinkstatus() {
+ pkgdesc='Link Checker'
+ depends=('kdepim-runtime' 'tidyhtml')
+ url="http://www.kde.org/applications/development/klinkstatus/"
+ 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')
+ url="http://www.kde.org/applications/development/kommander/"
+ cd $srcdir/build/kommander
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install b/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdewebdev/kdewebdev.install b/kde-unstable/kdewebdev/kdewebdev.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdewebdev/kdewebdev.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkdcraw/PKGBUILD b/kde-unstable/libkdcraw/PKGBUILD
new file mode 100644
index 000000000..7ea7b684b
--- /dev/null
+++ b/kde-unstable/libkdcraw/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144775 2011-12-08 10:33:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdcraw
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A C++ interface used to decode RAW picture"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'lcms')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('79cd12cf888936ca2b64c5309261f57e540bab4d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdcraw/libkdcraw.install b/kde-unstable/libkdcraw/libkdcraw.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkdcraw/libkdcraw.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkdeedu/PKGBUILD b/kde-unstable/libkdeedu/PKGBUILD
new file mode 100644
index 000000000..85fde3cd5
--- /dev/null
+++ b/kde-unstable/libkdeedu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144773 2011-12-08 10:32:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdeedu
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="Libraries used by KDE Education applications"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+replaces=('kdeedu-libkdeedu' 'kdeedu-data')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('0fe65883164162d464046da0249a905298597df8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdeedu/libkdeedu.install b/kde-unstable/libkdeedu/libkdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkdeedu/libkdeedu.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkexiv2/PKGBUILD b/kde-unstable/libkexiv2/PKGBUILD
new file mode 100644
index 000000000..96bb47fbd
--- /dev/null
+++ b/kde-unstable/libkexiv2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144776 2011-12-08 10:34:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkexiv2
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="A library to manipulate pictures metadata"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('4d27c1d5e97d719e5cf2c5cada8d030ed3c8a4ea')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkipi/PKGBUILD b/kde-unstable/libkipi/PKGBUILD
new file mode 100644
index 000000000..ec2b2d1db
--- /dev/null
+++ b/kde-unstable/libkipi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144777 2011-12-08 10:34:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkipi
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="An interface to use kipi-plugins from a KDE application"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('d8051403f165f76ccdffcfb831c247729b70b507')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkipi/libkipi.install b/kde-unstable/libkipi/libkipi.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkipi/libkipi.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libksane/PKGBUILD b/kde-unstable/libksane/PKGBUILD
new file mode 100644
index 000000000..042e8c4cc
--- /dev/null
+++ b/kde-unstable/libksane/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144778 2011-12-08 10:35:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libksane
+pkgver=4.7.90
+pkgrel=1
+pkgdesc="An image scanning library"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'sane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('ca3166bb334babf232d90d9c82dfe4a1e646d842')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libksane/libksane.install b/kde-unstable/libksane/libksane.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libksane/libksane.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre-testing/b43-tools-git/PKGBUILD b/libre-testing/b43-tools-git/PKGBUILD
index 42e331f7b..030f535ac 100644
--- a/libre-testing/b43-tools-git/PKGBUILD
+++ b/libre-testing/b43-tools-git/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=b43-tools-git
pkgver=20110214
pkgrel=1
pkgdesc="Tools for the Broadcom 43xx series WLAN chip."
-arch=('i686' 'x86_64' 'ppc')
+arch=('i686' 'x86_64' 'ppc' 'mips64el')
url="http://bu3sch.de/gitweb?p=b43-tools.git;a=summary"
license=('GPL2' 'GPL3')
depends=('python2')
diff --git a/libre-testing/unace-libre/PKGBUILD b/libre-testing/unace-libre/PKGBUILD
index 8708694c6..fe5bac90f 100644
--- a/libre-testing/unace-libre/PKGBUILD
+++ b/libre-testing/unace-libre/PKGBUILD
@@ -4,7 +4,7 @@ _pkgname=unace
pkgver=1.2b
pkgrel=2
pkgdesc="Extract, view and test ACE 1.x archives"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.emerge.de/"
license=('GPL')
depends=()
diff --git a/libre/abiword-libre/PKGBUILD b/libre/abiword-libre/PKGBUILD
new file mode 100644
index 000000000..a9f003a90
--- /dev/null
+++ b/libre/abiword-libre/PKGBUILD
@@ -0,0 +1,94 @@
+# $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-libre
+pkgname=('abiword-libre' 'abiword-libre-plugins')
+pkgver=2.8.6
+pkgrel=4
+arch=('i686' 'x86_64' 'mips64el')
+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' 'ttf-liberation')
+options=('!libtool')
+source=("http://repo.parabolagnulinux.org/other/${pkgbase}-${pkgver}.tar.gz"
+ liberation-fonts.patch
+ compat_libwpg_0_9.patch)
+conflicts=('abiword')
+replaces=('abiword')
+provides=("abiword=$pkgver")
+
+
+# source PKGBUILD; mksource
+mksource() {
+ #wget http://www.abisource.com/downloads/abiword/${pkgver}/source/abiword-${pkgver}.tar.gz -O -| \
+ # tar xzf -
+
+ pushd abiword-${pkgver}
+ #find -type f -print0 | xargs -0 sed -i "s:Times New Roman:Liberation Serif:g"
+ patch -Np1 -i ../liberation-fonts.patch || return 1
+ popd
+
+ mv abiword-${pkgver} ${pkgbase}-${pkgver}
+ tar czf ${pkgbase}-${pkgver}.tar.gz ${pkgbase}-${pkgver}/
+
+ rm -r ${pkgbase}-${pkgver}/
+
+}
+
+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
+
+
+ sed -ir 's/--no-undefined/-no-undefined/' src/Makefile
+ make
+}
+
+package_abiword-libre() {
+ pkgdesc="A fully-featured word processor that doesn't recommend unfree fonts"
+ 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-libre-plugins() {
+ pkgdesc="Additional plugins for Abiword"
+ depends=("abiword-libre=${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
+}
+md5sums=('d0f5d16d9259792fba0a3200c30ff6ae'
+ '6dcbf402f58d55cb4a9732348facd236'
+ '09446a2ebba8288fc611e88f7cf17298')
+md5sums=('d0f5d16d9259792fba0a3200c30ff6ae'
+ '880b17db6f249d977d2a7cd012d9ce02'
+ '09446a2ebba8288fc611e88f7cf17298')
diff --git a/libre/abiword-libre/compat_libwpg_0_9.patch b/libre/abiword-libre/compat_libwpg_0_9.patch
new file mode 100644
index 000000000..cf36e188e
--- /dev/null
+++ b/libre/abiword-libre/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/libre/abiword-libre/liberation-fonts.patch b/libre/abiword-libre/liberation-fonts.patch
new file mode 100644
index 000000000..a009b18f5
--- /dev/null
+++ b/libre/abiword-libre/liberation-fonts.patch
@@ -0,0 +1,1606 @@
+diff -auNpr abiword-2.8.6/plugins/latex/xp/ie_exp_LaTeX.cpp abiword-libre-2.8.6/plugins/latex/xp/ie_exp_LaTeX.cpp
+--- abiword-2.8.6/plugins/latex/xp/ie_exp_LaTeX.cpp 2009-07-20 16:22:04.000000000 -0300
++++ abiword-libre-2.8.6/plugins/latex/xp/ie_exp_LaTeX.cpp 2011-07-02 15:37:16.397564815 -0300
+@@ -1062,7 +1062,7 @@ void s_LaTeX_Listener::_openSpan(PT_Attr
+ m_pie->write("\\texttt{");
+ m_NumCloseBrackets++;
+ }
+- if (!strcmp("Arial", szValue) ||
++ if (!strcmp("Liberation Sans", szValue) ||
+ !strcmp("Helvetic", szValue) ||
+ !strcmp("Luxi Sans",szValue)) {
+ m_pie->write("\\textsf{");
+diff -auNpr abiword-2.8.6/plugins/opendocument/imp/xp/ODi_FontFaceDecls.cpp abiword-libre-2.8.6/plugins/opendocument/imp/xp/ODi_FontFaceDecls.cpp
+--- abiword-2.8.6/plugins/opendocument/imp/xp/ODi_FontFaceDecls.cpp 2008-04-20 11:44:51.000000000 -0300
++++ abiword-libre-2.8.6/plugins/opendocument/imp/xp/ODi_FontFaceDecls.cpp 2011-07-02 15:37:12.791762814 -0300
+@@ -59,7 +59,7 @@ void ODi_FontFaceDecls::startElement (co
+ fontFamily = pFontFamily;
+
+ if (pFontFamily && (pFontFamily[0] == '\'') && (pFontFamily[strlen(pFontFamily)-1] == '\'')) {
+- // e.g.: Turns a "'Times New Roman'" into a "Times New Roman".
++ // e.g.: Turns a "'Liberation Serif'" into a "Liberation Serif".
+ // OpenOffice.org sometimes adds those extra "'" surrounding the
+ // font family name if it's composed by more than one word.
+ m_fontFamilies[pStyleName] =
+diff -auNpr abiword-2.8.6/plugins/openwriter/xp/ie_exp_OpenWriter.cpp abiword-libre-2.8.6/plugins/openwriter/xp/ie_exp_OpenWriter.cpp
+--- abiword-2.8.6/plugins/openwriter/xp/ie_exp_OpenWriter.cpp 2009-06-25 18:29:32.000000000 -0300
++++ abiword-libre-2.8.6/plugins/openwriter/xp/ie_exp_OpenWriter.cpp 2011-07-02 15:37:16.561646815 -0300
+@@ -899,12 +899,12 @@ bool OO_StylesWriter::writeStyles(PD_Doc
+ {
+ "<office:styles>\n",
+ "<style:default-style style:family=\"graphics\">\n",
+- "<style:properties draw:start-line-spacing-horizontal=\"0.283cm\" draw:start-line-spacing-vertical=\"0.283cm\" draw:end-line-spacing-horizontal=\"0.283cm\" draw:end-line-spacing-vertical=\"0.283cm\" fo:color=\"#000000\" style:font-name=\"Nimbus Roman No9 L\" fo:font-size=\"12pt\" fo:language=\"en\" fo:country=\"US\" style:font-name-asian=\"HG Mincho Light J\" style:font-size-asian=\"12pt\" style:language-asian=\"none\" style:country-asian=\"none\" style:font-name-complex=\"Arial Unicode MS\" style:font-size-complex=\"12pt\" style:language-complex=\"none\" style:country-complex=\"none\" style:text-autospace=\"ideograph-alpha\" style:punctuation-wrap=\"simple\" style:line-break=\"strict\">\n",
++ "<style:properties draw:start-line-spacing-horizontal=\"0.283cm\" draw:start-line-spacing-vertical=\"0.283cm\" draw:end-line-spacing-horizontal=\"0.283cm\" draw:end-line-spacing-vertical=\"0.283cm\" fo:color=\"#000000\" style:font-name=\"Nimbus Roman No9 L\" fo:font-size=\"12pt\" fo:language=\"en\" fo:country=\"US\" style:font-name-asian=\"HG Mincho Light J\" style:font-size-asian=\"12pt\" style:language-asian=\"none\" style:country-asian=\"none\" style:font-name-complex=\"Liberation Sans\" style:font-size-complex=\"12pt\" style:language-complex=\"none\" style:country-complex=\"none\" style:text-autospace=\"ideograph-alpha\" style:punctuation-wrap=\"simple\" style:line-break=\"strict\">\n",
+ "<style:tab-stops/>\n",
+ "</style:properties>\n",
+ "</style:default-style>\n",
+ "<style:default-style style:family=\"paragraph\">\n",
+- "<style:properties fo:color=\"#000000\" style:font-name=\"Nimbus Roman No9 L\" fo:font-size=\"12pt\" fo:language=\"en\" fo:country=\"US\" style:font-name-asian=\"HG Mincho Light J\" style:font-size-asian=\"12pt\" style:language-asian=\"none\" style:country-asian=\"none\" style:font-name-complex=\"Arial Unicode MS\" style:font-size-complex=\"12pt\" style:language-complex=\"none\" style:country-complex=\"none\" fo:hyphenate=\"false\" fo:hyphenation-remain-char-count=\"2\" fo:hyphenation-push-char-count=\"2\" fo:hyphenation-ladder-count=\"no-limit\" style:text-autospace=\"ideograph-alpha\" style:punctuation-wrap=\"hanging\" style:line-break=\"strict\" style:tab-stop-distance=\"2.205cm\"/>\n",
++ "<style:properties fo:color=\"#000000\" style:font-name=\"Nimbus Roman No9 L\" fo:font-size=\"12pt\" fo:language=\"en\" fo:country=\"US\" style:font-name-asian=\"HG Mincho Light J\" style:font-size-asian=\"12pt\" style:language-asian=\"none\" style:country-asian=\"none\" style:font-name-complex=\"Liberation Sans\" style:font-size-complex=\"12pt\" style:language-complex=\"none\" style:country-complex=\"none\" fo:hyphenate=\"false\" fo:hyphenation-remain-char-count=\"2\" fo:hyphenation-push-char-count=\"2\" fo:hyphenation-ladder-count=\"no-limit\" style:text-autospace=\"ideograph-alpha\" style:punctuation-wrap=\"hanging\" style:line-break=\"strict\" style:tab-stop-distance=\"2.205cm\"/>\n",
+ "</style:default-style>\n"
+ };
+
+diff -auNpr abiword-2.8.6/plugins/openxml/common/xp/OXML_FontManager.cpp abiword-libre-2.8.6/plugins/openxml/common/xp/OXML_FontManager.cpp
+--- abiword-2.8.6/plugins/openxml/common/xp/OXML_FontManager.cpp 2008-01-16 15:02:48.000000000 -0200
++++ abiword-libre-2.8.6/plugins/openxml/common/xp/OXML_FontManager.cpp 2011-07-02 15:37:13.944338815 -0300
+@@ -34,7 +34,7 @@
+ #include <string>
+
+ OXML_FontManager::OXML_FontManager() :
+- m_defaultFont("Times New Roman")
++ m_defaultFont("Liberation Serif")
+ {
+ m_major_rts.clear();
+ m_minor_rts.clear();
+diff -auNpr abiword-2.8.6/plugins/openxml/common/xp/OXML_List.cpp abiword-libre-2.8.6/plugins/openxml/common/xp/OXML_List.cpp
+--- abiword-2.8.6/plugins/openxml/common/xp/OXML_List.cpp 2009-07-02 12:20:55.000000000 -0300
++++ abiword-libre-2.8.6/plugins/openxml/common/xp/OXML_List.cpp 2011-07-02 15:37:13.960346815 -0300
+@@ -258,7 +258,7 @@ UT_Error OXML_List::serialize(IE_Exp_Ope
+ txt = txt.replace(index+1, 1, 1, '1'+i);
+ }
+
+- std::string fontFamily("Times New Roman");
++ std::string fontFamily("Liberation Serif");
+ const gchar* listType = "bullet";
+ switch(type)
+ {
+diff -auNpr abiword-2.8.6/plugins/passepartout/xp/ie_exp_Passepartout.cpp abiword-libre-2.8.6/plugins/passepartout/xp/ie_exp_Passepartout.cpp
+--- abiword-2.8.6/plugins/passepartout/xp/ie_exp_Passepartout.cpp 2009-05-07 18:45:16.000000000 -0300
++++ abiword-libre-2.8.6/plugins/passepartout/xp/ie_exp_Passepartout.cpp 2011-07-02 15:37:14.172452815 -0300
+@@ -318,7 +318,7 @@ void Passepartout_Listener::_openBlock(P
+ }
+ else
+ {
+- TempStr = UT_UTF8String_sprintf(" font-family=\"%s\"", "Times New Roman" );
++ TempStr = UT_UTF8String_sprintf(" font-family=\"%s\"", "Liberation Serif" );
+ m_pie->write(TempStr.utf8_str());
+ }
+
+@@ -426,7 +426,7 @@ void Passepartout_Listener::_openFont(PT
+ }
+ else
+ {
+- TempStr = UT_UTF8String_sprintf(" font-family=\"%s\"", "Times New Roman" );
++ TempStr = UT_UTF8String_sprintf(" font-family=\"%s\"", "Liberation Serif" );
+ m_pie->write(TempStr.utf8_str());
+ }
+
+diff -auNpr abiword-2.8.6/plugins/t602/xp/ie_imp_T602.cpp abiword-libre-2.8.6/plugins/t602/xp/ie_imp_T602.cpp
+--- abiword-2.8.6/plugins/t602/xp/ie_imp_T602.cpp 2009-01-04 18:34:28.000000000 -0200
++++ abiword-libre-2.8.6/plugins/t602/xp/ie_imp_T602.cpp 2011-07-02 15:37:14.676704815 -0300
+@@ -620,7 +620,7 @@ switch (c)
+ case 0x01:
+ m_sfont ^=1;
+ if (m_sfont & 1)
+- { m_size=static_cast<int>(0.8*m_basesize); m_family="Arial";
++ { m_size=static_cast<int>(0.8*m_basesize); m_family="Liberation Sans";
+ /* FIXME? -> .profile?*/ }
+ else
+ { m_size=m_basesize; m_family=m_basefamily; }
+diff -auNpr abiword-2.8.6/src/af/gr/gtk/gr_UnixCairoGraphics.cpp abiword-libre-2.8.6/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
+--- abiword-2.8.6/src/af/gr/gtk/gr_UnixCairoGraphics.cpp 2009-09-04 09:40:10.000000000 -0300
++++ abiword-libre-2.8.6/src/af/gr/gtk/gr_UnixCairoGraphics.cpp 2011-07-02 15:36:53.578160816 -0300
+@@ -182,7 +182,7 @@ GR_Font * GR_UnixCairoGraphics::getGUIFo
+ GtkStyle *tempStyle = gtk_style_new();
+ const char *guiFontName = pango_font_description_get_family(tempStyle->font_desc);
+ if (!guiFontName)
+- guiFontName = "'Times New Roman'";
++ guiFontName = "'Liberation Serif'";
+
+ UT_UTF8String s = XAP_EncodingManager::get_instance()->getLanguageISOName();
+
+diff -auNpr abiword-2.8.6/src/af/gr/xp/gr_CairoGraphics.cpp abiword-libre-2.8.6/src/af/gr/xp/gr_CairoGraphics.cpp
+--- abiword-2.8.6/src/af/gr/xp/gr_CairoGraphics.cpp 2010-04-14 18:13:41.000000000 -0300
++++ abiword-libre-2.8.6/src/af/gr/xp/gr_CairoGraphics.cpp 2011-07-02 15:36:53.918330816 -0300
+@@ -756,8 +756,8 @@ bool GR_CairoGraphics::shape(GR_ShapingI
+
+ /*
+ * Pango does a royally bad job of the font substitution in
+- * pango_itemize(): it will happily return 'Times New Roman' as
+- * font when we have requested 'Arial', even though the latter is
++ * pango_itemize(): it will happily return 'Liberation Serif' as
++ * font when we have requested 'Liberation Sans', even though the latter is
+ * present and has the necessary coverage. Consequently we have to
+ * do the font substitution manually even on the first shapping.
+ *
+@@ -2931,7 +2931,7 @@ GR_Font * GR_CairoGraphics::getDefaultFo
+
+ case GR_Font::FF_Technical:
+ case GR_Font::FF_BiDi:
+- pszFontFamily = "Arial";
++ pszFontFamily = "Liberation Sans";
+ break;
+
+ default:
+diff -auNpr abiword-2.8.6/src/af/util/xp/ut_misc.cpp abiword-libre-2.8.6/src/af/util/xp/ut_misc.cpp
+--- abiword-2.8.6/src/af/util/xp/ut_misc.cpp 2009-06-28 19:09:08.000000000 -0300
++++ abiword-libre-2.8.6/src/af/util/xp/ut_misc.cpp 2011-07-02 15:36:54.746744816 -0300
+@@ -606,7 +606,7 @@ const gchar ** UT_setPropsToValue(const
+ }
+
+ /*!
+- splits the xml property string (font-size:24pt;font-face:Arial') into names and values
++ splits the xml property string (font-size:24pt;font-face:Liberation Sans') into names and values
+ and stores them in an array
+
+ the caller has to delete[] the array; the process is destructive to props
+diff -auNpr abiword-2.8.6/src/af/xap/cocoa/xap_CocoaToolPalette.nib/keyedobjects.nib abiword-libre-2.8.6/src/af/xap/cocoa/xap_CocoaToolPalette.nib/keyedobjects.nib
+--- abiword-2.8.6/src/af/xap/cocoa/xap_CocoaToolPalette.nib/keyedobjects.nib 2005-08-02 02:31:06.000000000 -0300
++++ abiword-libre-2.8.6/src/af/xap/cocoa/xap_CocoaToolPalette.nib/keyedobjects.nib 2011-07-02 15:36:51.257000816 -0300
+@@ -10910,7 +10910,7 @@
+ <integer>624</integer>
+ </dict>
+ </dict>
+- <string>Times New Roman</string>
++ <string>Liberation Serif</string>
+ <string>_popUpItemAction:</string>
+ <dict>
+ <key>$class</key>
+diff -auNpr abiword-2.8.6/src/af/xap/gtk/xap_UnixDlg_FileOpenSaveAs.cpp abiword-libre-2.8.6/src/af/xap/gtk/xap_UnixDlg_FileOpenSaveAs.cpp
+--- abiword-2.8.6/src/af/xap/gtk/xap_UnixDlg_FileOpenSaveAs.cpp 2009-09-01 11:49:33.000000000 -0300
++++ abiword-libre-2.8.6/src/af/xap/gtk/xap_UnixDlg_FileOpenSaveAs.cpp 2011-07-02 15:36:50.404574816 -0300
+@@ -878,7 +878,7 @@ gint XAP_UnixDialog_FileOpenSaveAs::prev
+
+ const gchar * file_name = gtk_file_chooser_get_uri (m_FC);
+
+- GR_Font * fnt = pGr->findFont("Times New Roman",
++ GR_Font * fnt = pGr->findFont("Liberation Serif",
+ "normal", "", "normal",
+ "", "12pt",
+ pSS->getLanguageName());
+diff -auNpr abiword-2.8.6/src/af/xap/win/xap_Win32Dlg_About.cpp abiword-libre-2.8.6/src/af/xap/win/xap_Win32Dlg_About.cpp
+--- abiword-2.8.6/src/af/xap/win/xap_Win32Dlg_About.cpp 2009-07-08 05:17:51.000000000 -0300
++++ abiword-libre-2.8.6/src/af/xap/win/xap_Win32Dlg_About.cpp 2011-07-02 15:36:50.788766816 -0300
+@@ -258,7 +258,7 @@ void XAP_Win32Dialog_About::runModal(XAP
+ lf.lfWeight = 0;
+ HFONT hfontSmall = CreateFontIndirect(&lf);
+
+- strcpy(lf.lfFaceName, "Arial");
++ strcpy(lf.lfFaceName, "Liberation Sans");
+ lf.lfHeight = 36;
+ lf.lfWeight = FW_BOLD;
+ HFONT hfontHeading = CreateFontIndirect(&lf);
+diff -auNpr abiword-2.8.6/src/af/xap/xp/xap_Dlg_FontChooser.cpp abiword-libre-2.8.6/src/af/xap/xp/xap_Dlg_FontChooser.cpp
+--- abiword-2.8.6/src/af/xap/xp/xap_Dlg_FontChooser.cpp 2009-05-30 11:03:24.000000000 -0300
++++ abiword-libre-2.8.6/src/af/xap/xp/xap_Dlg_FontChooser.cpp 2011-07-02 15:36:52.893818816 -0300
+@@ -569,7 +569,7 @@ void XAP_Preview_FontPreview::draw(void)
+ std::string sWeight = getVal("font-weight");
+
+ if(sFamily.empty())
+- sFamily = "Times New Roman";
++ sFamily = "Liberation Serif";
+
+ if(sStyle.empty())
+ sStyle = "normal";
+diff -auNpr abiword-2.8.6/src/af/xap/xp/xap_Dlg_Zoom.cpp abiword-libre-2.8.6/src/af/xap/xp/xap_Dlg_Zoom.cpp
+--- abiword-2.8.6/src/af/xap/xp/xap_Dlg_Zoom.cpp 2007-01-16 20:17:27.000000000 -0300
++++ abiword-libre-2.8.6/src/af/xap/xp/xap_Dlg_Zoom.cpp 2011-07-02 15:36:52.681712816 -0300
+@@ -124,7 +124,7 @@ void XAP_Dialog_Zoom::_createPreviewFrom
+ UT_ASSERT(m_zoomPreview);
+
+ m_zoomPreview->setWindowSize(width, height);
+- m_zoomPreview->setString("10-pt Times New Roman");
++ m_zoomPreview->setString("10-pt Liberation Serif");
+ m_zoomPreview->setFont(XAP_Preview_Zoom::font_NORMAL);
+ m_zoomPreview->setZoomPercent(m_zoomPercent);
+
+diff -auNpr abiword-2.8.6/src/af/xap/xp/xap_Preview_Zoom.cpp abiword-libre-2.8.6/src/af/xap/xp/xap_Preview_Zoom.cpp
+--- abiword-2.8.6/src/af/xap/xp/xap_Preview_Zoom.cpp 2009-10-29 14:47:05.000000000 -0300
++++ abiword-libre-2.8.6/src/af/xap/xp/xap_Preview_Zoom.cpp 2011-07-02 15:36:52.753748816 -0300
+@@ -63,7 +63,7 @@ void XAP_Preview_Zoom::setFont(XAP_Previ
+ {
+ case XAP_Preview_Zoom::font_NORMAL:
+ sprintf (fontString, "%dpt", (10 * m_zoomPercent / 100));
+- found = m_gc->findFont("Times New Roman",
++ found = m_gc->findFont("Liberation Serif",
+ "normal", "", "normal",
+ "", fontString,
+ NULL);
+diff -auNpr abiword-2.8.6/src/text/fmt/xp/fl_BlockLayout.cpp abiword-libre-2.8.6/src/text/fmt/xp/fl_BlockLayout.cpp
+--- abiword-2.8.6/src/text/fmt/xp/fl_BlockLayout.cpp 2010-06-13 11:02:39.000000000 -0300
++++ abiword-libre-2.8.6/src/text/fmt/xp/fl_BlockLayout.cpp 2011-07-02 15:37:06.980858815 -0300
+@@ -9733,7 +9733,7 @@ void fl_BlockLayout::StartList( const gc
+ {
+ FL_ListType lType = getListTypeFromStyle(szListStyle);
+ if(IS_NUMBERED_LIST_TYPE(lType))
+- szFont = "Times New Roman";
++ szFont = "Liberation Serif";
+ else
+ szFont = "symbol";
+ UT_ASSERT(0);
+diff -auNpr abiword-2.8.6/src/text/fmt/xp/fp_Line.cpp abiword-libre-2.8.6/src/text/fmt/xp/fp_Line.cpp
+--- abiword-2.8.6/src/text/fmt/xp/fp_Line.cpp 2009-09-09 03:20:32.000000000 -0300
++++ abiword-libre-2.8.6/src/text/fmt/xp/fp_Line.cpp 2011-07-02 15:37:07.265000815 -0300
+@@ -1273,7 +1273,7 @@ void fp_Line::_doClearScreenFromRunToEnd
+ pRun = m_vecRuns.getNthItem(_getRunLogIndx(runIndex));
+
+ // Handle case where character extends behind the left side
+- // like italic Times New Roman f. Clear a litle bit before if
++ // like italic Liberation Serif f. Clear a litle bit before if
+ // there is clear screen there
+ UT_sint32 j = runIndex - 1;
+
+diff -auNpr abiword-2.8.6/src/text/fmt/xp/fp_TextRun.cpp abiword-libre-2.8.6/src/text/fmt/xp/fp_TextRun.cpp
+--- abiword-2.8.6/src/text/fmt/xp/fp_TextRun.cpp 2010-04-14 18:49:37.000000000 -0300
++++ abiword-libre-2.8.6/src/text/fmt/xp/fp_TextRun.cpp 2011-07-02 15:37:08.021378815 -0300
+@@ -1434,7 +1434,7 @@ void fp_TextRun::_clearScreen(bool /* bF
+
+ //
+ // Handle case where character extend behind the left side
+- // like italic Times New Roman f
++ // like italic Liberation Serif f
+ //
+ fp_Line * thisLine = getLine();
+ fp_Run * pPrev = getPrevRun();
+diff -auNpr abiword-2.8.6/src/text/fmt/xp/fv_View.cpp abiword-libre-2.8.6/src/text/fmt/xp/fv_View.cpp
+--- abiword-2.8.6/src/text/fmt/xp/fv_View.cpp 2010-06-13 11:02:39.000000000 -0300
++++ abiword-libre-2.8.6/src/text/fmt/xp/fv_View.cpp 2011-07-02 15:37:08.353544815 -0300
+@@ -519,9 +519,9 @@ FV_View::FV_View(XAP_App * pApp, void* p
+ s += pCountry;
+ }
+
+- // do a fuzzy match for Times New Roman
++ // do a fuzzy match for Liberation Serif
+ const char * pszFamily =
+- GR_Graphics::findNearestFont ("Times New Roman",
++ GR_Graphics::findNearestFont ("Liberation Serif",
+ "normal", "normal",
+ "normal", "normal",
+ "12pt", s.utf8_str());
+diff -auNpr abiword-2.8.6/src/text/ptbl/xp/pp_Property.cpp abiword-libre-2.8.6/src/text/ptbl/xp/pp_Property.cpp
+--- abiword-2.8.6/src/text/ptbl/xp/pp_Property.cpp 2009-05-18 23:33:18.000000000 -0300
++++ abiword-libre-2.8.6/src/text/ptbl/xp/pp_Property.cpp 2011-07-02 15:37:09.053894814 -0300
+@@ -99,7 +99,7 @@ static PP_Property _props[] =
+
+ { "field-color", "dcdcdc", true, NULL, PP_LEVEL_FIELD},
+ { "field-font", "NULL", true, NULL, PP_LEVEL_FIELD},
+- { "font-family", "Times New Roman", true, NULL, PP_LEVEL_CHAR},
++ { "font-family", "Liberation Serif", true, NULL, PP_LEVEL_CHAR},
+ { "font-size", "12pt", true, NULL, PP_LEVEL_CHAR}, // MS word defaults to 10pt, but it just seems too small
+ { "font-stretch", "normal", true, NULL, PP_LEVEL_CHAR},
+ { "font-style", "normal", true, NULL, PP_LEVEL_CHAR},
+diff -auNpr abiword-2.8.6/src/text/ptbl/xp/pp_Revision.cpp abiword-libre-2.8.6/src/text/ptbl/xp/pp_Revision.cpp
+--- abiword-2.8.6/src/text/ptbl/xp/pp_Revision.cpp 2009-05-07 23:35:14.000000000 -0300
++++ abiword-libre-2.8.6/src/text/ptbl/xp/pp_Revision.cpp 2011-07-02 15:37:08.881808814 -0300
+@@ -350,7 +350,7 @@ void PP_RevisionAttr::_init(const gchar
+ return;
+
+ // the string we are parsing looks like
+- // "+1,-2,!3{font-family: Times New Roman}"
++ // "+1,-2,!3{font-family: Liberation Serif}"
+
+ // first duplicate the string so we can play with it ...
+ char * s = (char*) g_strdup(r);
+diff -auNpr abiword-2.8.6/src/text/ptbl/xp/pp_Revision.h abiword-libre-2.8.6/src/text/ptbl/xp/pp_Revision.h
+--- abiword-2.8.6/src/text/ptbl/xp/pp_Revision.h 2009-01-04 20:32:46.000000000 -0200
++++ abiword-libre-2.8.6/src/text/ptbl/xp/pp_Revision.h 2011-07-02 15:37:09.530132814 -0300
+@@ -101,7 +101,7 @@ class ABI_EXPORT PP_Revision: public PP_
+ where n is a numerical id of the revision and props is regular
+ property string, for instance
+
+- font-family:Times New Roman
++ font-family:Liberation Serif
+
+ revoval of property/attribute is indicated by setting to -/-, e.g.,
+
+diff -auNpr abiword-2.8.6/src/text/ptbl/xp/pt_PT_Styles.cpp abiword-libre-2.8.6/src/text/ptbl/xp/pt_PT_Styles.cpp
+--- abiword-2.8.6/src/text/ptbl/xp/pt_PT_Styles.cpp 2009-01-04 18:34:28.000000000 -0200
++++ abiword-libre-2.8.6/src/text/ptbl/xp/pt_PT_Styles.cpp 2011-07-02 15:37:09.101918814 -0300
+@@ -155,7 +155,7 @@ bool pt_PieceTable::_loadBuiltinStyles(v
+ s += pCountry;
+ }
+
+- const char* pszFamily = XAP_App::findNearestFont("Times New Roman",
++ const char* pszFamily = XAP_App::findNearestFont("Liberation Serif",
+ "normal", "",
+ "normal", "", "12pt",
+ s.utf8_str());
+@@ -167,7 +167,7 @@ bool pt_PieceTable::_loadBuiltinStyles(v
+ "text-indent:0in; text-position:normal; line-height:1.0; "
+ "color:000000; bgcolor:transparent; widows:2", pszFamily);
+
+- pszFamily = XAP_App::findNearestFont("Arial", "normal", "",
++ pszFamily = XAP_App::findNearestFont("Liberation Sans", "normal", "",
+ "normal", "", "12pt", s.utf8_str());
+
+ // used to set the dom-dir of the style here, but we do not want to do that. The
+@@ -239,7 +239,7 @@ bool pt_PieceTable::_loadBuiltinStyles(v
+ UT_String_sprintf(stTmp, list_fmt, "Heart List","0", LIST_DEFAULT_INDENT, LIST_DEFAULT_INDENT_LABEL, "transparent", "%L", "Dingbats", "NULL");
+ _s("Heart List",false, "P", "", "Current Settings", stTmp.c_str());
+
+- // pszFamily is the nearest font to Arial found in the system
++ // pszFamily is the nearest font to Liberation Sans found in the system
+ UT_String_sprintf(stTmp, "tabstops:0.3in/L0; list-style:Numbered List; "
+ "start-value:1; margin-left:0.0in; text-indent:0.0in; "
+ "field-color:transparent; list-delim:%%L.; field-font:%s; "
+@@ -250,7 +250,7 @@ bool pt_PieceTable::_loadBuiltinStyles(v
+ _s("Numbered Heading 2",true,"P","Heading 2","Normal", stTmp.c_str());
+ _s("Numbered Heading 3",true,"P","Heading 3","Normal", stTmp.c_str());
+
+- // pszFamily is the nearest font to Arial found in the system
++ // pszFamily is the nearest font to Liberation Sans found in the system
+
+ UT_String_sprintf(stTmp, list_fmt, "Numbered List", "1",LIST_DEFAULT_INDENT, LIST_DEFAULT_INDENT_LABEL, "transparent", "%L.", "NULL", ".");
+
+diff -auNpr abiword-2.8.6/src/wp/ap/xp/ap_Dialog_Lists.cpp abiword-libre-2.8.6/src/wp/ap/xp/ap_Dialog_Lists.cpp
+--- abiword-2.8.6/src/wp/ap/xp/ap_Dialog_Lists.cpp 2009-05-20 18:22:35.000000000 -0300
++++ abiword-libre-2.8.6/src/wp/ap/xp/ap_Dialog_Lists.cpp 2011-07-02 15:37:01.798268815 -0300
+@@ -1170,7 +1170,7 @@ void AP_Lists_preview::setData(const gch
+ //
+ if(!pszFont || strcmp(pszFont,"NULL")== 0)
+ {
+- m_pFont = m_gc->findFont("Times New Roman",
++ m_pFont = m_gc->findFont("Liberation Serif",
+ "normal", "", "normal",
+ "", "16pt", NULL);
+ }
+diff -auNpr abiword-2.8.6/src/wp/ap/xp/ap_Dialog_PageNumbers.cpp abiword-libre-2.8.6/src/wp/ap/xp/ap_Dialog_PageNumbers.cpp
+--- abiword-2.8.6/src/wp/ap/xp/ap_Dialog_PageNumbers.cpp 2007-05-08 14:16:33.000000000 -0300
++++ abiword-libre-2.8.6/src/wp/ap/xp/ap_Dialog_PageNumbers.cpp 2011-07-02 15:37:02.462600815 -0300
+@@ -88,7 +88,7 @@ AP_Preview_PageNumbers::AP_Preview_PageN
+ char fontString [10];
+ sprintf(fontString, "%dpt", 8);
+
+- GR_Font * found = m_gc->findFont("Times New Roman", "normal",
++ GR_Font * found = m_gc->findFont("Liberation Serif", "normal",
+ "", "normal", "", fontString,
+ NULL);
+
+diff -auNpr abiword-2.8.6/src/wp/ap/xp/ap_Preview_Annotation.cpp abiword-libre-2.8.6/src/wp/ap/xp/ap_Preview_Annotation.cpp
+--- abiword-2.8.6/src/wp/ap/xp/ap_Preview_Annotation.cpp 2009-09-29 10:58:11.000000000 -0300
++++ abiword-libre-2.8.6/src/wp/ap/xp/ap_Preview_Annotation.cpp 2011-07-02 15:37:03.311024815 -0300
+@@ -94,7 +94,7 @@ void AP_Preview_Annotation::setSizeFromA
+ pG = pView->getGraphics();
+
+ UT_return_if_fail(pG);
+- GR_Font * pFont = pG->findFont("Times New Roman", "normal",
++ GR_Font * pFont = pG->findFont("Liberation Serif", "normal",
+ "normal", "normal",
+ "normal", "12pt",
+ NULL);
+@@ -122,7 +122,7 @@ void AP_Preview_Annotation::draw(void)
+ UT_RGBColor FGcolor(0,0,0);
+ UT_RGBColor BGcolor(m_clrBackground);
+
+- m_pFont = m_gc->findFont("Times New Roman", "normal",
++ m_pFont = m_gc->findFont("Liberation Serif", "normal",
+ "normal", "normal",
+ "normal", "12pt",
+ NULL);
+diff -auNpr abiword-2.8.6/src/wp/ap/xp/ap_Preview_Paragraph.cpp abiword-libre-2.8.6/src/wp/ap/xp/ap_Preview_Paragraph.cpp
+--- abiword-2.8.6/src/wp/ap/xp/ap_Preview_Paragraph.cpp 2009-03-09 17:01:46.000000000 -0200
++++ abiword-libre-2.8.6/src/wp/ap/xp/ap_Preview_Paragraph.cpp 2011-07-02 15:37:03.527132815 -0300
+@@ -539,7 +539,7 @@ void AP_Preview_Paragraph::draw(void)
+ bool AP_Preview_Paragraph::_loadDrawFont(void)
+ {
+ // we draw at 7 points in this preview
+- GR_Font * font = m_gc->findFont("Times New Roman",
++ GR_Font * font = m_gc->findFont("Liberation Serif",
+ "normal", "", "normal",
+ "", "7pt",
+ NULL); // might need to get the real lang
+diff -auNpr abiword-2.8.6/src/wp/impexp/xp/ie_exp_RTF.cpp abiword-libre-2.8.6/src/wp/impexp/xp/ie_exp_RTF.cpp
+--- abiword-2.8.6/src/wp/impexp/xp/ie_exp_RTF.cpp 2009-09-29 17:00:48.000000000 -0300
++++ abiword-libre-2.8.6/src/wp/impexp/xp/ie_exp_RTF.cpp 2011-07-02 15:37:03.939338815 -0300
+@@ -2829,7 +2829,7 @@ void IE_Exp_RTF::_output_ListRTF(fl_Auto
+ case DASHED_LIST:
+ Param = 23;
+ bulletsym = '-';
+- fontName = "Times New Roman";
++ fontName = "Liberation Serif";
+ break;
+ case SQUARE_LIST:
+ Param = 23;
+diff -auNpr abiword-2.8.6/src/wp/impexp/xp/ie_imp_MsWord_97.cpp abiword-libre-2.8.6/src/wp/impexp/xp/ie_imp_MsWord_97.cpp
+--- abiword-2.8.6/src/wp/impexp/xp/ie_imp_MsWord_97.cpp 2009-09-23 02:22:43.000000000 -0300
++++ abiword-libre-2.8.6/src/wp/impexp/xp/ie_imp_MsWord_97.cpp 2011-07-02 15:37:03.883310815 -0300
+@@ -621,10 +621,10 @@ s_fieldFontForListStyle (MSWordListIdTyp
+ return "NULL";
+
+ case WLNF_UPPER_LETTER: // upper letter
+- return "Times New Roman";
++ return "Liberation Serif";
+
+ case WLNF_LOWER_LETTER: // lower letter
+- return "Times New Roman";
++ return "Liberation Serif";
+
+ case WLNF_BULLETS: // bullet list
+ UT_DEBUGMSG(("Fieldfont set to symbol \n"));
+@@ -632,11 +632,11 @@ s_fieldFontForListStyle (MSWordListIdTyp
+
+ case WLNF_EUROPEAN_ARABIC:
+ case WLNF_ORDINAL: // ordinal
+- return "Times New Roman";
++ return "Liberation Serif";
+
+ default:
+- UT_DEBUGMSG(("unknown list type %d field-font set to Times New Roman \n",id));
+- return "Times New Roman";
++ UT_DEBUGMSG(("unknown list type %d field-font set to Liberation Serif \n",id));
++ return "Liberation Serif";
+ }
+ }
+
+@@ -5243,7 +5243,7 @@ void IE_Imp_MsWord_97::_generateCharProp
+ if(fname)
+ s += fname;
+ else
+- s += "Times New Roman";
++ s += "Liberation Serif";
+ FREEP(fname);
+ }
+
+diff -auNpr abiword-2.8.6/src/wp/impexp/xp/ie_imp_RTF.cpp abiword-libre-2.8.6/src/wp/impexp/xp/ie_imp_RTF.cpp
+--- abiword-2.8.6/src/wp/impexp/xp/ie_imp_RTF.cpp 2009-07-27 02:26:14.000000000 -0300
++++ abiword-libre-2.8.6/src/wp/impexp/xp/ie_imp_RTF.cpp 2011-07-02 15:37:04.239488815 -0300
+@@ -5958,11 +5958,11 @@ bool IE_Imp_RTF::buildCharacterProps(UT_
+ // {\f83\fnil\fcharset0\fprq0{\*\panose 00000000000000000000} ;}
+ // note the empty slot after the panose entry
+ // later it gets referenced: {\b\f83\fs24\cf1\cgrid0 Malte Cornils
+- // this turns those into "Times New Roman" for now, as a hack to keep from crashing
++ // this turns those into "Liberation Serif" for now, as a hack to keep from crashing
+ if ( pFont->m_pFontName != NULL )
+ propBuffer += pFont->m_pFontName;
+ else
+- propBuffer += "Times New Roman";
++ propBuffer += "Liberation Serif";
+ }
+ if (m_currentRTFState.m_charProps.m_hasColour)
+ {
+@@ -8612,7 +8612,7 @@ bool IE_Imp_RTF::ReadFontTable()
+ {
+ // NB: Ignores whitespace until we've seen non-whitespace data.
+ // This means we pick up the spaces in font names like
+- // "Times New Roman", but it also means that any font names
++ // "Liberation Serif", but it also means that any font names
+ // that genuinely start with spaces will have them discarded.
+ // This is hopefully not a problem.
+ tokenType = NextToken(keyword, &parameter,& paramUsed,
+@@ -8680,11 +8680,11 @@ bool IE_Imp_RTF::ReadFontTable()
+ // It's possible that the font name will be empty. This might happend
+ // because the font table didn't specify a name, or because the \ansicpgN
+ // command was invalid, in which case the mbtowc convertion might fail.
+- // In these cases, substitute "Times New Roman".
++ // In these cases, substitute "Liberation Serif".
+ if (!sFontNamesAndPanose[SFontTableState::MainFontName].length())
+ {
+- UT_DEBUGMSG(("RTF: Font Index %d: Substituting \"Times New Roman\" for missing font name.\n", fontIndex));
+- sFontNamesAndPanose[SFontTableState::MainFontName] = "Times New Roman";
++ UT_DEBUGMSG(("RTF: Font Index %d: Substituting \"Liberation Serif\" for missing font name.\n", fontIndex));
++ sFontNamesAndPanose[SFontTableState::MainFontName] = "Liberation Serif";
+ }
+ // Validate and post-process the Panose string.
+ if (!PostProcessAndValidatePanose(sFontNamesAndPanose[SFontTableState::Panose]))
+diff -auNpr abiword-2.8.6/user/wp/readme.abw abiword-libre-2.8.6/user/wp/readme.abw
+--- abiword-2.8.6/user/wp/readme.abw 2009-07-23 16:50:13.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/readme.abw 2011-07-02 15:37:19.891310814 -0300
+@@ -16,9 +16,9 @@
+ <version id="9" started="1131226323" uid="e94517c8-4e44-11da-9bf9-8faddbe5f409" auto="0" top-xid="120"/>
+ </history>
+ <styles>
+-<s type="P" name="Heading 1" basedon="Normal" followedby="Normal" props="keep-with-next:1; margin-top:22pt; font-weight:bold; margin-bottom:3pt; font-family:Arial; font-size:17pt; lang:-none-"/>
+-<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:0pt; font-style:normal; margin-left:0pt; lang:-none-; dom-dir:ltr; font-variant:normal; text-indent:0in; margin-bottom:12pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s type="P" name="Heading 2" basedon="Normal" followedby="Normal" props="keep-with-next:1; margin-top:22pt; font-weight:bold; margin-bottom:3pt; font-family:Arial; font-size:14pt; lang:-none-"/>
++<s type="P" name="Heading 1" basedon="Normal" followedby="Normal" props="keep-with-next:1; margin-top:22pt; font-weight:bold; margin-bottom:3pt; font-family:Liberation Sans; font-size:17pt; lang:-none-"/>
++<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:0pt; font-style:normal; margin-left:0pt; lang:-none-; dom-dir:ltr; font-variant:normal; text-indent:0in; margin-bottom:12pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s type="P" name="Heading 2" basedon="Normal" followedby="Normal" props="keep-with-next:1; margin-top:22pt; font-weight:bold; margin-bottom:3pt; font-family:Liberation Sans; font-size:14pt; lang:-none-"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section xid="1">
+diff -auNpr abiword-2.8.6/user/wp/templates/Business-Letter.awt abiword-libre-2.8.6/user/wp/templates/Business-Letter.awt
+--- abiword-2.8.6/user/wp/templates/Business-Letter.awt 2009-05-22 07:15:16.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Business-Letter.awt 2011-07-02 15:37:19.995362813 -0300
+@@ -19,14 +19,14 @@
+ <version id="4" started="1097285263" uid="6ad98dfc-1992-11d9-90cf-d572573794e2" auto="0"/>
+ </history>
+ <styles>
+-<s followedby="Return Address Section" name="Return Address Section" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:0pt; font-style:normal; margin-left:0.0000in; bgcolor:transparent; text-decoration:none; text-indent:0in; font-variant:normal; color:000000; lang:en-US; margin-right:0.0000in; margin-bottom:0pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s type="P" name="Normal" followedby="Current Settings" props="text-indent:0in; margin-top:0pt; margin-left:0pt; font-stretch:normal; line-height:1.0; text-align:left; bgcolor:transparent; lang:en-US; margin-bottom:0pt; font-weight:normal; text-decoration:none; font-variant:normal; color:000000; text-position:normal; font-size:12pt; margin-right:0pt; font-style:normal; widows:2; font-family:Times New Roman"/>
+-<s followedby="Letter Body" name="Inside Address" basedon="Block Text" type="P" props="text-indent:0in; orphans:2; margin-top:0pt; margin-left:0.0000in; list-decimal:.; line-height:1.0; keep-with-next:no; text-align:left; list-style:None; bgcolor:transparent; lang:en-US; margin-bottom:0pt; font-weight:normal; text-decoration:none; start-value:1; font-variant:normal; color:000000; font-stretch:normal; keep-together:no; font-size:12pt; margin-right:0.0000in; font-style:normal; widows:2; list-delim:%L; font-family:Times New Roman"/>
++<s followedby="Return Address Section" name="Return Address Section" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:0pt; font-style:normal; margin-left:0.0000in; bgcolor:transparent; text-decoration:none; text-indent:0in; font-variant:normal; color:000000; lang:en-US; margin-right:0.0000in; margin-bottom:0pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s type="P" name="Normal" followedby="Current Settings" props="text-indent:0in; margin-top:0pt; margin-left:0pt; font-stretch:normal; line-height:1.0; text-align:left; bgcolor:transparent; lang:en-US; margin-bottom:0pt; font-weight:normal; text-decoration:none; font-variant:normal; color:000000; text-position:normal; font-size:12pt; margin-right:0pt; font-style:normal; widows:2; font-family:Liberation Serif"/>
++<s followedby="Letter Body" name="Inside Address" basedon="Block Text" type="P" props="text-indent:0in; orphans:2; margin-top:0pt; margin-left:0.0000in; list-decimal:.; line-height:1.0; keep-with-next:no; text-align:left; list-style:None; bgcolor:transparent; lang:en-US; margin-bottom:0pt; font-weight:normal; text-decoration:none; start-value:1; font-variant:normal; color:000000; font-stretch:normal; keep-together:no; font-size:12pt; margin-right:0.0000in; font-style:normal; widows:2; list-delim:%L; font-family:Liberation Serif"/>
+ <s type="P" name="Block Text" basedon="Normal" followedby="Current Settings" props="margin-bottom:6pt; margin-right:1in; margin-left:1in"/>
+-<s followedby="Letter Body" name="Letter Body" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:12pt; font-style:normal; margin-left:0pt; bgcolor:transparent; text-decoration:none; text-indent:0.0000in; font-variant:normal; color:000000; lang:en-US; margin-right:0pt; margin-bottom:0pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Letter Body" name="Greeting" basedon="Normal" type="P" props="font-family:Times New Roman; margin-top:12pt; font-variant:normal; margin-left:0pt; text-align:left; font-style:normal; text-indent:0in; color:000000; line-height:1.0; widows:2; bgcolor:transparent; margin-right:0pt; text-decoration:none; font-size:12pt; font-weight:normal; margin-bottom:0pt; lang:en-US; font-stretch:normal"/>
+-<s followedby="Signature Line" name="Closing" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:12pt; font-style:normal; margin-left:0.0000in; bgcolor:transparent; text-decoration:none; text-indent:0in; font-variant:normal; color:000000; lang:en-US; margin-right:0pt; margin-bottom:48pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Block Text" name="Signature Line" basedon="Return Address Section" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:0pt; font-style:normal; margin-left:0.0000in; bgcolor:transparent; text-decoration:none; text-indent:0in; font-variant:normal; color:000000; lang:en-US; margin-right:0.0000in; margin-bottom:0pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Letter Body" name="Letter Body" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:12pt; font-style:normal; margin-left:0pt; bgcolor:transparent; text-decoration:none; text-indent:0.0000in; font-variant:normal; color:000000; lang:en-US; margin-right:0pt; margin-bottom:0pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Letter Body" name="Greeting" basedon="Normal" type="P" props="font-family:Liberation Serif; margin-top:12pt; font-variant:normal; margin-left:0pt; text-align:left; font-style:normal; text-indent:0in; color:000000; line-height:1.0; widows:2; bgcolor:transparent; margin-right:0pt; text-decoration:none; font-size:12pt; font-weight:normal; margin-bottom:0pt; lang:en-US; font-stretch:normal"/>
++<s followedby="Signature Line" name="Closing" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:12pt; font-style:normal; margin-left:0.0000in; bgcolor:transparent; text-decoration:none; text-indent:0in; font-variant:normal; color:000000; lang:en-US; margin-right:0pt; margin-bottom:48pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Block Text" name="Signature Line" basedon="Return Address Section" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:0pt; font-style:normal; margin-left:0.0000in; bgcolor:transparent; text-decoration:none; text-indent:0in; font-variant:normal; color:000000; lang:en-US; margin-right:0.0000in; margin-bottom:0pt; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
+ <section props="page-margin-footer:0.5in; page-margin-header:0.5in">
+diff -auNpr abiword-2.8.6/user/wp/templates/Business-Report.awt abiword-libre-2.8.6/user/wp/templates/Business-Report.awt
+--- abiword-2.8.6/user/wp/templates/Business-Report.awt 2009-05-22 07:15:18.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Business-Report.awt 2011-07-02 15:37:20.011370813 -0300
+@@ -21,7 +21,7 @@
+ <p style="Normal" props="text-align:right"><c props="lang:en-US; font-size:12 pt"></c></p>
+ <p style="Normal" props="text-align:right"><c props="lang:en-US; font-size:12 pt"></c></p>
+ <p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:48 pt; font-weight:bold">Title</c><c props="lang:en-US; font-size:48 pt; font-weight:bold"></c></p>
+-<p style="Normal" props="text-align:left"><c props="font-family:Times New Roman; text-decoration:none; color:000000; lang:en-US; text-position:normal; font-weight:bold; font-style:normal; font-size:48pt">Subtitle</c><c props="font-family:Times New Roman; text-decoration:none; color:000000; lang:en-US; text-position:normal; font-weight:bold; font-style:normal; font-size:48pt"></c></p>
++<p style="Normal" props="text-align:left"><c props="font-family:Liberation Serif; text-decoration:none; color:000000; lang:en-US; text-position:normal; font-weight:bold; font-style:normal; font-size:48pt">Subtitle</c><c props="font-family:Liberation Serif; text-decoration:none; color:000000; lang:en-US; text-position:normal; font-weight:bold; font-style:normal; font-size:48pt"></c></p>
+ <p style="Normal" props="text-align:right; margin-top:0pt; line-height:1.0"><c props="lang:en-US; font-size:8 pt"></c><image dataid="/home/dickk/images/balk.png_0" props="lang:en-US; height:0.090551in; width:6.295276in"/></p>
+ <p style="Normal" props="text-align:right; margin-top:0pt; line-height:1.0"><c props="lang:en-US; font-size:18 pt; font-weight:bold">Release 1.0</c></p>
+ <p style="Normal"><c props="lang:en-US"></c></p>
+@@ -99,11 +99,11 @@
+ <section footer="1961180032" header="671410933">
+ <p style="Normal"></p>
+ <p style="Normal"></p>
+-<p level="1" listid="1908846824" parentid="0" style="Numbered Heading 1" props="start-value:1; text-indent:0.0000in; list-style:Numbered List; field-font:Arial; margin-left:0.0000in"><c props="list-tag:254800672"><pbr/></c><c props="list-tag:254800672"></c><field type="list_label" props="width:0in; font-family:Arial; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:17pt"></field><c type="list_label" props="width:0in; font-family:Arial; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:17pt"> Heading 1</c></p>
++<p level="1" listid="1908846824" parentid="0" style="Numbered Heading 1" props="start-value:1; text-indent:0.0000in; list-style:Numbered List; field-font:Liberation Sans; margin-left:0.0000in"><c props="list-tag:254800672"><pbr/></c><c props="list-tag:254800672"></c><field type="list_label" props="width:0in; font-family:Liberation Sans; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:17pt"></field><c type="list_label" props="width:0in; font-family:Liberation Sans; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:17pt"> Heading 1</c></p>
+ <p style="Normal"><c type="list_label" props="lang:en-US; height:0in; width:0in">text</c><c type="list_label" props="lang:en-US; height:0in; width:0in"></c></p>
+-<p level="2" listid="686698307" parentid="1908846824" style="Numbered Heading 2" props="start-value:1; text-indent:0.0000in; list-style:Numbered List; field-font:Arial; margin-left:0.0000in"><c type="list_label" props="lang:en-US; height:0in; width:0in; list-tag:1877104478"></c><field type="list_label" props="width:0in; font-family:Arial; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:14pt"></field><c type="list_label" props="width:0in; font-family:Arial; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:14pt"> Heading 2</c></p>
++<p level="2" listid="686698307" parentid="1908846824" style="Numbered Heading 2" props="start-value:1; text-indent:0.0000in; list-style:Numbered List; field-font:Liberation Sans; margin-left:0.0000in"><c type="list_label" props="lang:en-US; height:0in; width:0in; list-tag:1877104478"></c><field type="list_label" props="width:0in; font-family:Liberation Sans; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:14pt"></field><c type="list_label" props="width:0in; font-family:Liberation Sans; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:14pt"> Heading 2</c></p>
+ <p style="Normal"><c type="list_label" props="lang:en-US; height:0in; width:0in">text</c><c type="list_label" props="lang:en-US; height:0in; width:0in"></c></p>
+-<p level="3" listid="1990149216" parentid="686698307" style="Numbered Heading 3" props="start-value:1; text-indent:0.0000in; list-style:Numbered List; field-font:Arial; margin-left:0.0000in"><c type="list_label" props="lang:en-US; height:0in; width:0in; list-tag:1324672020"></c><field type="list_label" props="width:0in; font-family:Arial; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></field><c type="list_label" props="width:0in; font-family:Arial; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"> Heading 3</c></p>
++<p level="3" listid="1990149216" parentid="686698307" style="Numbered Heading 3" props="start-value:1; text-indent:0.0000in; list-style:Numbered List; field-font:Liberation Sans; margin-left:0.0000in"><c type="list_label" props="lang:en-US; height:0in; width:0in; list-tag:1324672020"></c><field type="list_label" props="width:0in; font-family:Liberation Sans; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></field><c type="list_label" props="width:0in; font-family:Liberation Sans; color:000000; font-weight:bold; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"> Heading 3</c></p>
+ <p style="Normal"><c type="list_label" props="lang:en-US; height:0in; width:0in"></c></p>
+ </section>
+ <section id="1961180032" listid="0" parentid="0" type="footer">
+diff -auNpr abiword-2.8.6/user/wp/templates/Employee-Directory.awt abiword-libre-2.8.6/user/wp/templates/Employee-Directory.awt
+--- abiword-2.8.6/user/wp/templates/Employee-Directory.awt 2009-05-22 07:15:21.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Employee-Directory.awt 2011-07-02 15:37:20.047388813 -0300
+@@ -10,9 +10,9 @@
+
+ <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
+ <section props="page-margin-footer:0.5in; page-margin-header:0.5in">
+-<p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:20pt; font-family:Times New Roman">Company Name</c></p>
+-<p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:26pt; font-family:Times New Roman">Directory of Employees</c></p>
+-<p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:12pt; font-family:Times New Roman"></c><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_0" props="height:0.15in; font-size:12pt; width:8.23in"/></p>
++<p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:20pt; font-family:Liberation Serif">Company Name</c></p>
++<p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:26pt; font-family:Liberation Serif">Directory of Employees</c></p>
++<p style="Normal" props="text-align:left"><c props="lang:en-US; font-size:12pt; font-family:Liberation Serif"></c><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_0" props="height:0.15in; font-size:12pt; width:8.23in"/></p>
+ <p style="Normal" props="text-align:center"><c props="lang:en-US; font-size:12pt"></c></p>
+ <p style="Normal" props="text-align:center"><c props="lang:en-US; font-size:12pt"></c></p>
+ <p style="Normal" props="text-align:center"><c props="lang:en-US"></c></p>
+@@ -36,59 +36,59 @@
+ <p style="Normal" props="tabstops:2.0000in/L0"><c type="date">Normal Style (123) 555-1212</c></p>
+ <p style="Normal" props="text-align:left; tabstops:2.0000in/L0"><c type="date" props="font-weight:normal; font-size:11pt; font-style:normal"></c></p>
+ <p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-weight:normal; font-size:11pt; font-style:normal"></c></p>
+-<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Arial; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; lang:en-US; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"></c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Arial; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Arial; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Arial; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
+-<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Arial; font-size:12pt; color:000000; lang:en-US; text-position:normal; font-weight:bold; font-style:normal; text-decoration:underline ">General Numbers</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Front Desk (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Security (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Building Management (123) 555-1212</c></p>
+-<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Times New Roman; font-size:12pt; color:000000; lang:en-US; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none">Other General Numbers (123) 555-1212</c></p>
++<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Liberation Sans; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; lang:en-US; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"></c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Liberation Sans; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Liberation Sans; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Liberation Sans; font-size:12pt; color:000000; text-decoration:underline ; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">Department Name</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:bold; font-style:normal; lang:en-US">The big boss upstairs (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Last Name, First Name (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US"></c></p>
++<p style="Heading 3" props="margin-top:0.3056in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0417in; text-indent:0.0000in; line-height:1.000000; text-align:center; margin-right:0.0000in"><c type="date" props="font-family:Liberation Sans; font-size:12pt; color:000000; lang:en-US; text-position:normal; font-weight:bold; font-style:normal; text-decoration:underline ">General Numbers</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Front Desk (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Security (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">Building Management (123) 555-1212</c></p>
++<p style="Normal" props="margin-top:0.0000in; margin-left:0.0000in; tabstops:2.000000in/L0; margin-bottom:0.0000in; text-indent:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"><c type="date" props="font-family:Liberation Serif; font-size:12pt; color:000000; lang:en-US; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none">Other General Numbers (123) 555-1212</c></p>
+ </section>
+ <data>
+ <d name="C:\Documents and Settings\jgz\Desktop\bookopen.bmp_0" mime-type="image/png" base64="yes">
+diff -auNpr abiword-2.8.6/user/wp/templates/Fax-Coversheet.awt abiword-libre-2.8.6/user/wp/templates/Fax-Coversheet.awt
+--- abiword-2.8.6/user/wp/templates/Fax-Coversheet.awt 2009-05-22 07:15:24.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Fax-Coversheet.awt 2011-07-02 15:37:20.027378813 -0300
+@@ -10,26 +10,26 @@
+
+ <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
+ <section props="page-margin-footer:0.5in; page-margin-header:0.5in">
+-<p style="Normal" props="tabstops:6.2500in/R0,2.7500in/L0,4.5000in/C0"><c props="lang:en-US"> </c><c props="bgcolor:000000; lang:en-US; font-size:24pt; font-family:Arial Black; color:ffffff"> Company Name </c><c props="bgcolor:000000; lang:en-US; font-size:12pt; font-family:Arial Black; color:ffffff"></c></p>
+-<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000">Company Address Line 1</c></p>
+-<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000">Company Address Line 2</c></p>
+-<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000">Company Address Line 3</c></p>
+-<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000"></c></p>
+-<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:72pt; font-family:Arial Black; color:000000">FAX</c></p>
+-<p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0"><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt">TO: </c><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000"> </c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt">From: </c></p>
+-<p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0"><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_0" props="height:0.15in; width:8.23in"/><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt">Fax: </c><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000"> </c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt">Pages: </c></p>
+-<p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0"><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_1" props="height:0.15in; width:8.23in"/><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt">Phone: </c><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Arial; color:000000"> </c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt">Date: </c><field type="date_mdy" param=""></field></p>
++<p style="Normal" props="tabstops:6.2500in/R0,2.7500in/L0,4.5000in/C0"><c props="lang:en-US"> </c><c props="bgcolor:000000; lang:en-US; font-size:24pt; font-family:Liberation Sans Bold; color:ffffff"> Company Name </c><c props="bgcolor:000000; lang:en-US; font-size:12pt; font-family:Liberation Sans Bold; color:ffffff"></c></p>
++<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000">Company Address Line 1</c></p>
++<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000">Company Address Line 2</c></p>
++<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000">Company Address Line 3</c></p>
++<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000"></c></p>
++<p style="Normal"><c props="bgcolor:ffffff; lang:en-US; font-size:72pt; font-family:Liberation Sans Bold; color:000000">FAX</c></p>
++<p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0"><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt">TO: </c><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000"> </c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt">From: </c></p>
++<p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0"><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_0" props="height:0.15in; width:8.23in"/><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt">Fax: </c><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000"> </c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt">Pages: </c></p>
++<p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0"><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_1" props="height:0.15in; width:8.23in"/><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt">Phone: </c><c props="bgcolor:ffffff; lang:en-US; font-size:12pt; font-family:Liberation Sans; color:000000"> </c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt">Date: </c><field type="date_mdy" param=""></field></p>
+ <p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0; margin-left:0.0000in"><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_2" props="height:0.15in; width:8.23in"/></p>
+ <p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0; margin-left:0.0000in"><c type="date_mdy" param="" props="font-weight:bold">Re: </c><c type="date_mdy" param=""> </c><c type="date_mdy" param="" props="font-weight:bold">CC: </c></p>
+ <p style="Normal" props="tabstops:4.0000in/L0,0.7500in/L0,3.2500in/L0; margin-left:0.0000in"><c type="date_mdy" param="" props="font-weight:bold"></c><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_4" props="height:0.15in; width:8.23in"/></p>
+ <p style="Normal" props="tabstops:2.2500in/L0,1.0000in/L0,3.7500in/L0,5.0000in/L0; margin-left:0.0000in"></p>
+-<p style="Normal" props="tabstops:2.2500in/L0,1.0000in/L0,3.7500in/L0,5.0000in/L0; margin-left:0.0000in"><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Times New Roman; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Urgent </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">For Review </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Times New Roman; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Please Comment </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Times New Roman; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Please Reply </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Times New Roman; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Please Recycle</c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt"> </c></p>
+-<p style="Normal" props="tabstops:2.2500in/L0,1.0000in/L0,3.7500in/L0,5.0000in/L0; margin-left:0.0000in"><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Arial; font-size:12pt"></c><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_5" props="height:0.15in; width:8.23in"/></p>
++<p style="Normal" props="tabstops:2.2500in/L0,1.0000in/L0,3.7500in/L0,5.0000in/L0; margin-left:0.0000in"><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Liberation Serif; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Urgent </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">For Review </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Liberation Serif; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Please Comment </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Liberation Serif; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Please Reply </c><c type="date_mdy" param="" props="font-family:Symbol; font-weight:bold"></c><c type="date_mdy" param="" props="font-family:Liberation Serif; font-weight:bold"> </c><c type="date_mdy" param="" props="font-weight:bold">Please Recycle</c><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt"> </c></p>
++<p style="Normal" props="tabstops:2.2500in/L0,1.0000in/L0,3.7500in/L0,5.0000in/L0; margin-left:0.0000in"><c props="bgcolor:ffffff; lang:en-US; font-weight:bold; color:000000; font-family:Liberation Sans; font-size:12pt"></c><image dataid="C:\Documents and Settings\jgz\Desktop\bar.bmp_5" props="height:0.15in; width:8.23in"/></p>
+ <p style="Normal"></p>
+ <p style="Normal"></p>
+-<p style="Normal" props="text-align:center"><c props="font-family:Arial; text-decoration:underline; color:000000; lang:en-US; bgcolor:ffffff; font-weight:bold; font-size:16pt">Comments</c></p>
++<p style="Normal" props="text-align:center"><c props="font-family:Liberation Sans; text-decoration:underline; color:000000; lang:en-US; bgcolor:ffffff; font-weight:bold; font-size:16pt">Comments</c></p>
+ <p style="Normal" props="margin-left:0.0000in"></p>
+-<p style="Normal" props="margin-left:0.0000in"><c props="font-family:Arial; color:000000; font-size:10pt; text-position:normal; lang:en-US; bgcolor:ffffff; font-weight:normal; font-style:normal; text-decoration:none">This text should the replaced with your comments about the fax and any </c><c props="font-family:Arial; bgcolor:ffffff; font-size:10pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">additional</c><c props="font-family:Arial; color:000000; font-size:10pt; text-position:normal; lang:en-US; bgcolor:ffffff; font-weight:normal; font-style:normal; text-decoration:none"> comment to the receiver. </c></p>
++<p style="Normal" props="margin-left:0.0000in"><c props="font-family:Liberation Sans; color:000000; font-size:10pt; text-position:normal; lang:en-US; bgcolor:ffffff; font-weight:normal; font-style:normal; text-decoration:none">This text should the replaced with your comments about the fax and any </c><c props="font-family:Liberation Sans; bgcolor:ffffff; font-size:10pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">additional</c><c props="font-family:Liberation Sans; color:000000; font-size:10pt; text-position:normal; lang:en-US; bgcolor:ffffff; font-weight:normal; font-style:normal; text-decoration:none"> comment to the receiver. </c></p>
+ </section>
+ <data>
+ <d name="C:\Documents and Settings\jgz\Desktop\bar.bmp_0" mime-type="image/png" base64="yes">
+diff -auNpr abiword-2.8.6/user/wp/templates/Friendly-Letter.awt abiword-libre-2.8.6/user/wp/templates/Friendly-Letter.awt
+--- abiword-2.8.6/user/wp/templates/Friendly-Letter.awt 2009-05-22 07:15:27.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Friendly-Letter.awt 2011-07-02 15:37:20.023376813 -0300
+@@ -16,12 +16,12 @@
+ <version id="1" started="1096736888" uid="a22a447e-1495-11d9-9525-9e1170ef822d" auto="0"/>
+ </history>
+ <styles>
+-<s followedby="Return Address Section" name="Return Address Section" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:0pt; font-style:normal; margin-left:4.5000in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.0000in; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s type="P" name="Normal" followedby="Current Settings" props="text-indent:0in; margin-top:0pt; margin-left:0pt; font-stretch:normal; line-height:1.0; text-align:left; bgcolor:transparent; lang:en-US; margin-bottom:0pt; text-decoration:none; font-weight:normal; font-variant:normal; color:000000; text-position:normal; font-size:12pt; margin-right:0pt; font-style:normal; widows:2; font-family:Times New Roman"/>
+-<s followedby="Letter Body" name="Greeting" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:12pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Letter Body" name="Letter Body" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:12pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0.5000in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Signature Line" name="Closing" basedon="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:12pt; font-style:normal; margin-left:4.5000in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:48pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s type="P" name="Signature Line" basedon="Return Address Section" followedby="Block Text" props="font-weight:normal; font-family:Times New Roman; margin-top:0pt; font-style:normal; margin-left:4.5000in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.0000in; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Return Address Section" name="Return Address Section" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:0pt; font-style:normal; margin-left:4.5000in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.0000in; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s type="P" name="Normal" followedby="Current Settings" props="text-indent:0in; margin-top:0pt; margin-left:0pt; font-stretch:normal; line-height:1.0; text-align:left; bgcolor:transparent; lang:en-US; margin-bottom:0pt; text-decoration:none; font-weight:normal; font-variant:normal; color:000000; text-position:normal; font-size:12pt; margin-right:0pt; font-style:normal; widows:2; font-family:Liberation Serif"/>
++<s followedby="Letter Body" name="Greeting" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:12pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Letter Body" name="Letter Body" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:12pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0.5000in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Signature Line" name="Closing" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:12pt; font-style:normal; margin-left:4.5000in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:48pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s type="P" name="Signature Line" basedon="Return Address Section" followedby="Block Text" props="font-weight:normal; font-family:Liberation Serif; margin-top:0pt; font-style:normal; margin-left:4.5000in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.0000in; color:000000; font-size:12pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
+ <section props="page-margin-footer:0.5in; page-margin-header:0.5in">
+diff -auNpr abiword-2.8.6/user/wp/templates/Memo.awt abiword-libre-2.8.6/user/wp/templates/Memo.awt
+--- abiword-2.8.6/user/wp/templates/Memo.awt 2009-05-22 07:15:31.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Memo.awt 2011-07-02 15:37:19.915322814 -0300
+@@ -14,10 +14,10 @@
+ <m key="abiword.date_last_changed">Fri Mar 12 21:07:56 2004</m>
+ </metadata>
+ <styles>
+-<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Times New Roman; margin-top:0pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:10pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:10pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Normal" name="Heading 3" basedon="Normal" type="P" props="font-weight:normal; margin-top:22pt; keep-with-next:1; margin-bottom:3pt; font-family:Arial; font-size:10pt"/>
+-<s followedby="Normal" name="Heading 2" basedon="Normal" type="P" props="margin-top:22pt; font-size:10pt; margin-bottom:3pt; text-align:right; font-style:italic; font-weight:normal; font-family:Arial; keep-with-next:1"/>
+-<s type="P" name="Heading 1" basedon="Normal" followedby="Normal" props="keep-with-next:1; margin-top:22pt; font-weight:bold; margin-bottom:3pt; font-family:Arial; font-size:17pt"/>
++<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Liberation Serif; margin-top:0pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:10pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:10pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Normal" name="Heading 3" basedon="Normal" type="P" props="font-weight:normal; margin-top:22pt; keep-with-next:1; margin-bottom:3pt; font-family:Liberation Sans; font-size:10pt"/>
++<s followedby="Normal" name="Heading 2" basedon="Normal" type="P" props="margin-top:22pt; font-size:10pt; margin-bottom:3pt; text-align:right; font-style:italic; font-weight:normal; font-family:Liberation Sans; keep-with-next:1"/>
++<s type="P" name="Heading 1" basedon="Normal" followedby="Normal" props="keep-with-next:1; margin-top:22pt; font-weight:bold; margin-bottom:3pt; font-family:Liberation Sans; font-size:17pt"/>
+ </styles>
+ <lists>
+ <l id="1002" parentid="0" type="5" start-value="0" list-delim="%L" list-decimal="NULL"/>
+@@ -59,10 +59,10 @@
+ <p style="Normal">The box that this text is in uses AbiWord's table support to draw the border. You can either allow the border to fit to the size of the text as it is now, or press &lt;ENTER&gt; repeatedly at the end of your memo to expand the border to fill the rest of the page.</p>
+ <p style="Normal">Don't forget to change the header and footer before printing! If you wish to save this memo for later and ensure that the date above is saved as today's (not automatically updating), select it and type the desired date text over it.</p>
+ <p style="Normal">The styles used in this document for correct conversion, import, export, and HTML are:</p>
+-<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="list-tag:1003"></c><field type="list_label" props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Heading 1 for Company Name</c></p>
+-<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="width:0in; list-tag:1004; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; lang:en-US; font-variant:normal; color:000000; list-style:Bullet List; bgcolor:transparent; font-size:10pt; homogeneous:1; text-decoration:none; height:0in; text-position:normal; font-stretch:normal"></c><field type="list_label" props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Heading 2 for Slogan</c></p>
+-<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="width:0in; list-tag:1005; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; lang:en-US; font-variant:normal; color:000000; list-style:Bullet List; bgcolor:transparent; font-size:10pt; homogeneous:1; text-decoration:none; height:0in; text-position:normal; font-stretch:normal"></c><field type="list_label" props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Heading 3 for "Date:", "To:", etc.</c></p>
+-<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="width:0in; list-tag:1006; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; lang:en-US; font-variant:normal; color:000000; list-style:Bullet List; bgcolor:transparent; font-size:10pt; homogeneous:1; text-decoration:none; height:0in; text-position:normal; font-stretch:normal"></c><field type="list_label" props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Times New Roman; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Normal for body text</c></p>
++<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="list-tag:1003"></c><field type="list_label" props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Heading 1 for Company Name</c></p>
++<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="width:0in; list-tag:1004; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; lang:en-US; font-variant:normal; color:000000; list-style:Bullet List; bgcolor:transparent; font-size:10pt; homogeneous:1; text-decoration:none; height:0in; text-position:normal; font-stretch:normal"></c><field type="list_label" props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Heading 2 for Slogan</c></p>
++<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="width:0in; list-tag:1005; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; lang:en-US; font-variant:normal; color:000000; list-style:Bullet List; bgcolor:transparent; font-size:10pt; homogeneous:1; text-decoration:none; height:0in; text-position:normal; font-stretch:normal"></c><field type="list_label" props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Heading 3 for "Date:", "To:", etc.</c></p>
++<p level="1" listid="1002" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="width:0in; list-tag:1006; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; lang:en-US; font-variant:normal; color:000000; list-style:Bullet List; bgcolor:transparent; font-size:10pt; homogeneous:1; text-decoration:none; height:0in; text-position:normal; font-stretch:normal"></c><field type="list_label" props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"></field><c props="width:0in; font-family:Liberation Serif; display:inline; font-style:normal; font-weight:normal; bgcolor:transparent; lang:en-US; text-position:normal; homogeneous:1; color:000000; font-variant:normal; text-decoration:none; font-size:10pt; height:0in; list-style:Bullet List; font-stretch:normal"> Normal for body text</c></p>
+ </cell>
+ </table>
+ <p style="Normal"></p>
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt abiword-libre-2.8.6/user/wp/templates/normal.awt
+--- abiword-2.8.6/user/wp/templates/normal.awt 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt 2011-07-02 15:37:20.019374813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+
+ <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-am_ET abiword-libre-2.8.6/user/wp/templates/normal.awt-am_ET
+--- abiword-2.8.6/user/wp/templates/normal.awt-am_ET 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-am_ET 2011-07-02 15:37:20.015372813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ar abiword-libre-2.8.6/user/wp/templates/normal.awt-ar
+--- abiword-2.8.6/user/wp/templates/normal.awt-ar 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ar 2011-07-02 15:37:20.019374813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ar_EG abiword-libre-2.8.6/user/wp/templates/normal.awt-ar_EG
+--- abiword-2.8.6/user/wp/templates/normal.awt-ar_EG 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ar_EG 2011-07-02 15:37:19.979354813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ar_SA abiword-libre-2.8.6/user/wp/templates/normal.awt-ar_SA
+--- abiword-2.8.6/user/wp/templates/normal.awt-ar_SA 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ar_SA 2011-07-02 15:37:19.999364813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-bg_BG abiword-libre-2.8.6/user/wp/templates/normal.awt-bg_BG
+--- abiword-2.8.6/user/wp/templates/normal.awt-bg_BG 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-bg_BG 2011-07-02 15:37:19.975352813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ca_ES abiword-libre-2.8.6/user/wp/templates/normal.awt-ca_ES
+--- abiword-2.8.6/user/wp/templates/normal.awt-ca_ES 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ca_ES 2011-07-02 15:37:19.923326814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-cs_CZ abiword-libre-2.8.6/user/wp/templates/normal.awt-cs_CZ
+--- abiword-2.8.6/user/wp/templates/normal.awt-cs_CZ 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-cs_CZ 2011-07-02 15:37:20.003366813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-da_DK abiword-libre-2.8.6/user/wp/templates/normal.awt-da_DK
+--- abiword-2.8.6/user/wp/templates/normal.awt-da_DK 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-da_DK 2011-07-02 15:37:19.995362813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-de abiword-libre-2.8.6/user/wp/templates/normal.awt-de
+--- abiword-2.8.6/user/wp/templates/normal.awt-de 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-de 2011-07-02 15:37:20.007368813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-de_AT abiword-libre-2.8.6/user/wp/templates/normal.awt-de_AT
+--- abiword-2.8.6/user/wp/templates/normal.awt-de_AT 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-de_AT 2011-07-02 15:37:19.975352813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-de_CH abiword-libre-2.8.6/user/wp/templates/normal.awt-de_CH
+--- abiword-2.8.6/user/wp/templates/normal.awt-de_CH 2008-04-09 21:48:42.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-de_CH 2011-07-02 15:37:19.979354813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-de_DE abiword-libre-2.8.6/user/wp/templates/normal.awt-de_DE
+--- abiword-2.8.6/user/wp/templates/normal.awt-de_DE 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-de_DE 2011-07-02 15:37:20.035382813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-div_MV abiword-libre-2.8.6/user/wp/templates/normal.awt-div_MV
+--- abiword-2.8.6/user/wp/templates/normal.awt-div_MV 2007-01-14 12:52:46.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-div_MV 2011-07-02 15:37:20.071400813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; lang:div-MV; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; lang:div-MV; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-el_GR abiword-libre-2.8.6/user/wp/templates/normal.awt-el_GR
+--- abiword-2.8.6/user/wp/templates/normal.awt-el_GR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-el_GR 2011-07-02 15:37:20.063396813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-en_AU abiword-libre-2.8.6/user/wp/templates/normal.awt-en_AU
+--- abiword-2.8.6/user/wp/templates/normal.awt-en_AU 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_AU 2011-07-02 15:37:19.903316814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-en_CA abiword-libre-2.8.6/user/wp/templates/normal.awt-en_CA
+--- abiword-2.8.6/user/wp/templates/normal.awt-en_CA 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_CA 2011-07-02 15:37:20.079404813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="Letter" orientation="portrait" width="216.000000" height="279.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-en_GB abiword-libre-2.8.6/user/wp/templates/normal.awt-en_GB
+--- abiword-2.8.6/user/wp/templates/normal.awt-en_GB 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_GB 2011-07-02 15:37:19.911320814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-en_IE abiword-libre-2.8.6/user/wp/templates/normal.awt-en_IE
+--- abiword-2.8.6/user/wp/templates/normal.awt-en_IE 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_IE 2011-07-02 15:37:20.075402813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-en_NZ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_NZ
+--- abiword-2.8.6/user/wp/templates/normal.awt-en_NZ 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_NZ 2011-07-02 15:37:20.067398813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-en_ZA abiword-libre-2.8.6/user/wp/templates/normal.awt-en_ZA
+--- abiword-2.8.6/user/wp/templates/normal.awt-en_ZA 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-en_ZA 2011-07-02 15:37:20.079404813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-es abiword-libre-2.8.6/user/wp/templates/normal.awt-es
+--- abiword-2.8.6/user/wp/templates/normal.awt-es 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-es 2011-07-02 15:37:19.903316814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-es_AR abiword-libre-2.8.6/user/wp/templates/normal.awt-es_AR
+--- abiword-2.8.6/user/wp/templates/normal.awt-es_AR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-es_AR 2011-07-02 15:37:20.039384813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-es_ES abiword-libre-2.8.6/user/wp/templates/normal.awt-es_ES
+--- abiword-2.8.6/user/wp/templates/normal.awt-es_ES 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-es_ES 2011-07-02 15:37:20.063396813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-es_IR abiword-libre-2.8.6/user/wp/templates/normal.awt-es_IR
+--- abiword-2.8.6/user/wp/templates/normal.awt-es_IR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-es_IR 2011-07-02 15:37:20.011370813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-es_MX abiword-libre-2.8.6/user/wp/templates/normal.awt-es_MX
+--- abiword-2.8.6/user/wp/templates/normal.awt-es_MX 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-es_MX 2011-07-02 15:37:19.919324814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fa_IR abiword-libre-2.8.6/user/wp/templates/normal.awt-fa_IR
+--- abiword-2.8.6/user/wp/templates/normal.awt-fa_IR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fa_IR 2011-07-02 15:37:20.003366813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fi_FI abiword-libre-2.8.6/user/wp/templates/normal.awt-fi_FI
+--- abiword-2.8.6/user/wp/templates/normal.awt-fi_FI 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fi_FI 2011-07-02 15:37:19.999364813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fr abiword-libre-2.8.6/user/wp/templates/normal.awt-fr
+--- abiword-2.8.6/user/wp/templates/normal.awt-fr 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fr 2011-07-02 15:37:20.019374813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fr_BE abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_BE
+--- abiword-2.8.6/user/wp/templates/normal.awt-fr_BE 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_BE 2011-07-02 15:37:20.075402813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fr_CA abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_CA
+--- abiword-2.8.6/user/wp/templates/normal.awt-fr_CA 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_CA 2011-07-02 15:37:19.907318814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="Letter" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fr_CH abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_CH
+--- abiword-2.8.6/user/wp/templates/normal.awt-fr_CH 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_CH 2011-07-02 15:37:19.899314814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-fr_FR abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_FR
+--- abiword-2.8.6/user/wp/templates/normal.awt-fr_FR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-fr_FR 2011-07-02 15:37:19.983356813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-gl_ES abiword-libre-2.8.6/user/wp/templates/normal.awt-gl_ES
+--- abiword-2.8.6/user/wp/templates/normal.awt-gl_ES 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-gl_ES 2011-07-02 15:37:20.023376813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-he abiword-libre-2.8.6/user/wp/templates/normal.awt-he
+--- abiword-2.8.6/user/wp/templates/normal.awt-he 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-he 2011-07-02 15:37:19.995362813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-he_IL abiword-libre-2.8.6/user/wp/templates/normal.awt-he_IL
+--- abiword-2.8.6/user/wp/templates/normal.awt-he_IL 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-he_IL 2011-07-02 15:37:19.979354813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-hu_HU abiword-libre-2.8.6/user/wp/templates/normal.awt-hu_HU
+--- abiword-2.8.6/user/wp/templates/normal.awt-hu_HU 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-hu_HU 2011-07-02 15:37:19.979354813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-it_IT abiword-libre-2.8.6/user/wp/templates/normal.awt-it_IT
+--- abiword-2.8.6/user/wp/templates/normal.awt-it_IT 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-it_IT 2011-07-02 15:37:19.911320814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ja_JP abiword-libre-2.8.6/user/wp/templates/normal.awt-ja_JP
+--- abiword-2.8.6/user/wp/templates/normal.awt-ja_JP 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ja_JP 2011-07-02 15:37:20.027378813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-lt_LT abiword-libre-2.8.6/user/wp/templates/normal.awt-lt_LT
+--- abiword-2.8.6/user/wp/templates/normal.awt-lt_LT 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-lt_LT 2011-07-02 15:37:19.899314814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-nb_NO abiword-libre-2.8.6/user/wp/templates/normal.awt-nb_NO
+--- abiword-2.8.6/user/wp/templates/normal.awt-nb_NO 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-nb_NO 2011-07-02 15:37:19.999364813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-nl_NL abiword-libre-2.8.6/user/wp/templates/normal.awt-nl_NL
+--- abiword-2.8.6/user/wp/templates/normal.awt-nl_NL 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-nl_NL 2011-07-02 15:37:19.911320814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-nn_NO abiword-libre-2.8.6/user/wp/templates/normal.awt-nn_NO
+--- abiword-2.8.6/user/wp/templates/normal.awt-nn_NO 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-nn_NO 2011-07-02 15:37:20.031380813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-pl_PL abiword-libre-2.8.6/user/wp/templates/normal.awt-pl_PL
+--- abiword-2.8.6/user/wp/templates/normal.awt-pl_PL 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-pl_PL 2011-07-02 15:37:20.011370813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ps abiword-libre-2.8.6/user/wp/templates/normal.awt-ps
+--- abiword-2.8.6/user/wp/templates/normal.awt-ps 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ps 2011-07-02 15:37:20.035382813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-pt_BR abiword-libre-2.8.6/user/wp/templates/normal.awt-pt_BR
+--- abiword-2.8.6/user/wp/templates/normal.awt-pt_BR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-pt_BR 2011-07-02 15:37:19.915322814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-pt_PT abiword-libre-2.8.6/user/wp/templates/normal.awt-pt_PT
+--- abiword-2.8.6/user/wp/templates/normal.awt-pt_PT 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-pt_PT 2011-07-02 15:37:20.035382813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ru abiword-libre-2.8.6/user/wp/templates/normal.awt-ru
+--- abiword-2.8.6/user/wp/templates/normal.awt-ru 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ru 2011-07-02 15:37:19.907318814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ru_RU abiword-libre-2.8.6/user/wp/templates/normal.awt-ru_RU
+--- abiword-2.8.6/user/wp/templates/normal.awt-ru_RU 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ru_RU 2011-07-02 15:37:19.919324814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-sk_SK abiword-libre-2.8.6/user/wp/templates/normal.awt-sk_SK
+--- abiword-2.8.6/user/wp/templates/normal.awt-sk_SK 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-sk_SK 2011-07-02 15:37:20.075402813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-sl abiword-libre-2.8.6/user/wp/templates/normal.awt-sl
+--- abiword-2.8.6/user/wp/templates/normal.awt-sl 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-sl 2011-07-02 15:37:20.031380813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-sv abiword-libre-2.8.6/user/wp/templates/normal.awt-sv
+--- abiword-2.8.6/user/wp/templates/normal.awt-sv 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-sv 2011-07-02 15:37:20.015372813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-sv_SE abiword-libre-2.8.6/user/wp/templates/normal.awt-sv_SE
+--- abiword-2.8.6/user/wp/templates/normal.awt-sv_SE 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-sv_SE 2011-07-02 15:37:20.067398813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-syr abiword-libre-2.8.6/user/wp/templates/normal.awt-syr
+--- abiword-2.8.6/user/wp/templates/normal.awt-syr 2007-01-14 12:52:46.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-syr 2011-07-02 15:37:20.079404813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; lang:syr; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; lang:syr; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-tr abiword-libre-2.8.6/user/wp/templates/normal.awt-tr
+--- abiword-2.8.6/user/wp/templates/normal.awt-tr 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-tr 2011-07-02 15:37:19.903316814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-tr_TR abiword-libre-2.8.6/user/wp/templates/normal.awt-tr_TR
+--- abiword-2.8.6/user/wp/templates/normal.awt-tr_TR 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-tr_TR 2011-07-02 15:37:19.911320814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-uk_UA abiword-libre-2.8.6/user/wp/templates/normal.awt-uk_UA
+--- abiword-2.8.6/user/wp/templates/normal.awt-uk_UA 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-uk_UA 2011-07-02 15:37:20.003366813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-ur_PK abiword-libre-2.8.6/user/wp/templates/normal.awt-ur_PK
+--- abiword-2.8.6/user/wp/templates/normal.awt-ur_PK 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-ur_PK 2011-07-02 15:37:20.067398813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-yi abiword-libre-2.8.6/user/wp/templates/normal.awt-yi
+--- abiword-2.8.6/user/wp/templates/normal.awt-yi 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-yi 2011-07-02 15:37:19.919324814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-zh_CN abiword-libre-2.8.6/user/wp/templates/normal.awt-zh_CN
+--- abiword-2.8.6/user/wp/templates/normal.awt-zh_CN 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-zh_CN 2011-07-02 15:37:20.015372813 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/normal.awt-zh_TW abiword-libre-2.8.6/user/wp/templates/normal.awt-zh_TW
+--- abiword-2.8.6/user/wp/templates/normal.awt-zh_TW 2007-01-20 13:20:58.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/normal.awt-zh_TW 2011-07-02 15:37:19.907318814 -0300
+@@ -9,7 +9,7 @@
+ <!-- ===================================================================== -->
+
+ <styles>
+-<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
++<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Liberation Serif; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="A4" orientation="portrait" width="210.000000" height="297.000000" units="mm" page-scale="1.000000"/>
+ <section props="page-margin-right:1.0000in; page-margin-footer:0.5000in; page-margin-header:0.5000in; page-margin-left:1.0000in; page-margin-top:1.0000in; page-margin-bottom:1.0000in">
+diff -auNpr abiword-2.8.6/user/wp/templates/Press-Release.awt abiword-libre-2.8.6/user/wp/templates/Press-Release.awt
+--- abiword-2.8.6/user/wp/templates/Press-Release.awt 2009-05-22 07:15:33.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Press-Release.awt 2011-07-02 15:37:20.071400813 -0300
+@@ -16,19 +16,19 @@
+ <version id="3" started="1080258930" uid="0c5a8b0e-7ec0-11d8-92e5-d7901b3e7f1a" auto="0"/>
+ </history>
+ <styles>
+-<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Arial; margin-top:0pt; font-style:normal; margin-left:0.5000in; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.5000in; color:000000; font-size:12pt; line-height:1.000000; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Normal" name="Heading 1" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:17pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Arial"/>
+-<s followedby="Press Release" name="Press Release" basedon="Normal" type="P" props="font-weight:normal; font-family:Arial; margin-top:0.1667in; font-style:normal; margin-left:0.5000in; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.5000in; color:000000; font-size:12pt; line-height:1.000000; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="About Companies" name="About Companies" basedon="Press Release" type="P" props="font-weight:normal; font-family:Arial; margin-top:0.1111in; font-style:normal; margin-left:0.7500in; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.7500in; color:000000; font-size:10pt; line-height:1.000000; text-align:justify; widows:2; font-stretch:normal"/>
++<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Liberation Sans; margin-top:0pt; font-style:normal; margin-left:0.5000in; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.5000in; color:000000; font-size:12pt; line-height:1.000000; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Normal" name="Heading 1" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:17pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Liberation Sans"/>
++<s followedby="Press Release" name="Press Release" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Sans; margin-top:0.1667in; font-style:normal; margin-left:0.5000in; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.5000in; color:000000; font-size:12pt; line-height:1.000000; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="About Companies" name="About Companies" basedon="Press Release" type="P" props="font-weight:normal; font-family:Liberation Sans; margin-top:0.1111in; font-style:normal; margin-left:0.7500in; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0.7500in; color:000000; font-size:10pt; line-height:1.000000; text-align:justify; widows:2; font-stretch:normal"/>
+ <s type="P" name="Block Text" basedon="Normal" followedby="Current Settings" props="line-height:1.000000; margin-bottom:0.0833in; margin-right:1.0000in; margin-left:1.0000in"/>
+ <s type="P" name="Box List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Box List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Bullet List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Symbol; list-style:Bullet List; line-height:1.000000; text-indent:-0.300000in"/>
+-<s followedby="Normal" name="Chapter Heading" basedon="Numbered Heading 1" type="P" props="list-delim:Chapter %L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Arial; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:1.100000in/L0"/>
++<s followedby="Normal" name="Chapter Heading" basedon="Numbered Heading 1" type="P" props="list-delim:Chapter %L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Liberation Sans; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:1.100000in/L0"/>
+ <s followedby="Normal" name="Contents 1" basedon="Normal" type="P" props="list-delim:%L.; list-decimal:.; field-color:transparent; start-value:1; margin-left:0.5000in; field-font:NULL; list-style:Numbered List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s followedby="Normal" name="Contents 2" basedon="Normal" type="P" props="list-delim:%L.; list-decimal:.; field-color:transparent; start-value:1; margin-left:1.0000in; field-font:NULL; list-style:Numbered List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s followedby="Normal" name="Contents 3" basedon="Normal" type="P" props="list-delim:%L.; list-decimal:.; field-color:transparent; start-value:1; margin-left:1.5000in; field-font:NULL; list-style:Numbered List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s followedby="Normal" name="Contents 4" basedon="Normal" type="P" props="list-delim:%L.; list-decimal:.; field-color:transparent; start-value:1; margin-left:2.0000in; field-font:NULL; list-style:Numbered List; line-height:1.000000; text-indent:-0.300000in"/>
+-<s followedby="Normal" name="Contents Header" basedon="Normal" type="P" props="margin-top:0.1667in; font-size:16pt; margin-bottom:0.0833in; text-align:center; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Arial"/>
++<s followedby="Normal" name="Contents Header" basedon="Normal" type="P" props="margin-top:0.1667in; font-size:16pt; margin-bottom:0.0833in; text-align:center; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Liberation Sans"/>
+ <s type="P" name="Dashed List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:NULL; list-style:Dashed List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Diamond List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Diamond List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="C" name="Endnote Reference" basedon="None" followedby="Current Settings" props="text-position:superscript; line-height:1.000000; font-size:10pt"/>
+@@ -36,19 +36,19 @@
+ <s type="C" name="Footnote Reference" basedon="None" followedby="Current Settings" props="text-position:superscript; line-height:1.000000; font-size:10pt"/>
+ <s type="C" name="Footnote Text" basedon="Normal" followedby="Current Settings" props="text-position:normal; line-height:1.000000; font-size:10pt"/>
+ <s type="P" name="Hand List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Hand List; line-height:1.000000; text-indent:-0.300000in"/>
+-<s followedby="Normal" name="Heading 2" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:14pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Arial"/>
+-<s followedby="Normal" name="Heading 3" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:12pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Arial"/>
+-<s followedby="Normal" name="Heading 4" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:12pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Arial"/>
++<s followedby="Normal" name="Heading 2" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:14pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Liberation Sans"/>
++<s followedby="Normal" name="Heading 3" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:12pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Liberation Sans"/>
++<s followedby="Normal" name="Heading 4" basedon="Normal" type="P" props="margin-top:0.3056in; font-size:12pt; margin-bottom:0.0417in; line-height:1.000000; font-weight:bold; keep-with-next:1; font-family:Liberation Sans"/>
+ <s type="P" name="Heart List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Heart List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Implies List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Symbol; list-style:Implies List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Lower Case List" basedon="Numbered List" followedby="Current Settings" props="list-delim:%L); list-decimal:.; field-color:transparent; start-value:1; margin-left:0.5000in; field-font:NULL; list-style:Lower Case List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Lower Roman List" basedon="Normal" followedby="Current Settings" props="list-delim:%L; list-decimal:.; field-color:transparent; start-value:1; margin-left:0.5000in; field-font:NULL; list-style:Lower Roman List; line-height:1.000000; text-indent:-0.300000in"/>
+-<s followedby="Normal" name="Numbered Heading 1" basedon="Heading 1" type="P" props="list-delim:%L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Arial; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:0.299306in/L0"/>
+-<s followedby="Normal" name="Numbered Heading 2" basedon="Heading 2" type="P" props="list-delim:%L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Arial; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:0.299306in/L0"/>
+-<s followedby="Normal" name="Numbered Heading 3" basedon="Heading 3" type="P" props="list-delim:%L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Arial; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:0.299306in/L0"/>
++<s followedby="Normal" name="Numbered Heading 1" basedon="Heading 1" type="P" props="list-delim:%L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Liberation Sans; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:0.299306in/L0"/>
++<s followedby="Normal" name="Numbered Heading 2" basedon="Heading 2" type="P" props="list-delim:%L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Liberation Sans; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:0.299306in/L0"/>
++<s followedby="Normal" name="Numbered Heading 3" basedon="Heading 3" type="P" props="list-delim:%L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Liberation Sans; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:0.299306in/L0"/>
+ <s type="P" name="Numbered List" followedby="Current Settings" props="list-delim:%L.; list-decimal:.; field-color:transparent; start-value:1; margin-left:0.5000in; field-font:NULL; list-style:Numbered List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Plain Text" basedon="Normal" followedby="Current Settings" props="font-family:Courier New; line-height:1.000000"/>
+-<s followedby="Normal" name="Section Heading" basedon="Numbered Heading 1" type="P" props="list-delim:Section %L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Arial; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:1.100000in/L0"/>
++<s followedby="Normal" name="Section Heading" basedon="Numbered Heading 1" type="P" props="list-delim:Section %L.; field-color:transparent; start-value:1; margin-left:0.0in; field-font:Liberation Sans; list-style:Numbered List; line-height:1.000000; text-indent:0.0in; tabstops:1.100000in/L0"/>
+ <s type="P" name="Square List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Square List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Star List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Star List; line-height:1.000000; text-indent:-0.300000in"/>
+ <s type="P" name="Tick List" followedby="Current Settings" props="list-delim:%L; list-decimal:NULL; field-color:transparent; start-value:0; margin-left:0.5000in; field-font:Dingbats; list-style:Tick List; line-height:1.000000; text-indent:-0.300000in"/>
+@@ -77,7 +77,7 @@
+ <p style="Normal"><c props="lang:en-US"></c></p>
+ </cell>
+ <cell props="bot-attach:3; left-attach:0; right-attach:1; top-attach:2">
+-<p style="Normal" props="text-align:center"><c props="font-family:Arial; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">FOR IMMEDIATE RELEASE</c></p>
++<p style="Normal" props="text-align:center"><c props="font-family:Liberation Sans; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:en-US">FOR IMMEDIATE RELEASE</c></p>
+ </cell>
+ </table>
+ <p></p>
+diff -auNpr abiword-2.8.6/user/wp/templates/Resume.awt abiword-libre-2.8.6/user/wp/templates/Resume.awt
+--- abiword-2.8.6/user/wp/templates/Resume.awt 2009-05-22 07:15:36.000000000 -0300
++++ abiword-libre-2.8.6/user/wp/templates/Resume.awt 2011-07-02 15:37:20.031380813 -0300
+@@ -14,11 +14,11 @@
+ <m key="abiword.date_last_changed">Fri Mar 12 22:08:25 2004</m>
+ </metadata>
+ <styles>
+-<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Arial; margin-top:0pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:9pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+-<s followedby="Normal" name="Heading 1" basedon="Normal" type="P" props="font-weight:bold; margin-top:22pt; keep-with-next:1; margin-bottom:3pt; font-family:Arial; font-size:20pt"/>
+-<s followedby="Normal" name="Heading 2" basedon="Normal" type="P" props="margin-top:22pt; font-size:11pt; margin-bottom:3pt; font-weight:normal; text-align:right; font-family:Arial; keep-with-next:1"/>
+-<s followedby="Normal" name="Heading 3" basedon="Normal" type="P" props="font-weight:bold; margin-top:22pt; keep-with-next:1; margin-bottom:3pt; font-family:Arial; font-size:9pt"/>
+-<s followedby="Heading 3" name="Brief" basedon="Normal" type="P" props="font-weight:normal; font-family:Arial; margin-top:0pt; font-style:normal; margin-left:0.2500in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:9pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:9pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Current Settings" name="Normal" type="P" props="font-weight:normal; font-family:Liberation Sans; margin-top:0pt; font-style:normal; margin-left:0pt; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:0pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:9pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
++<s followedby="Normal" name="Heading 1" basedon="Normal" type="P" props="font-weight:bold; margin-top:22pt; keep-with-next:1; margin-bottom:3pt; font-family:Liberation Sans; font-size:20pt"/>
++<s followedby="Normal" name="Heading 2" basedon="Normal" type="P" props="margin-top:22pt; font-size:11pt; margin-bottom:3pt; font-weight:normal; text-align:right; font-family:Liberation Sans; keep-with-next:1"/>
++<s followedby="Normal" name="Heading 3" basedon="Normal" type="P" props="font-weight:bold; margin-top:22pt; keep-with-next:1; margin-bottom:3pt; font-family:Liberation Sans; font-size:9pt"/>
++<s followedby="Heading 3" name="Brief" basedon="Normal" type="P" props="font-weight:normal; font-family:Liberation Sans; margin-top:0pt; font-style:normal; margin-left:0.2500in; lang:en-US; font-variant:normal; text-indent:0in; margin-bottom:9pt; text-decoration:none; bgcolor:transparent; margin-right:0pt; color:000000; font-size:9pt; line-height:1.0; text-align:left; widows:2; font-stretch:normal"/>
+ </styles>
+ <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
+ <section header="0" props="page-margin-footer:0.5in; page-margin-header:0.4375in; page-margin-top:1.1250in">
diff --git a/libre/abuse-libre/PKGBUILD b/libre/abuse-libre/PKGBUILD
index d8e5d8e4f..d822004e6 100644
--- a/libre/abuse-libre/PKGBUILD
+++ b/libre/abuse-libre/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=abuse-libre
pkgver=0.8
pkgrel=1
pkgdesc='A side-scroller action game that pits you against ruthless alien killers. Without unfree "Claudio"'
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url='http://abuse.zoy.org/'
license=('GPL' 'custom:PublicDomain')
depends=('gcc-libs' 'libgl' 'sdl' 'sdl_mixer')
diff --git a/libre/aspell-pl-libre/PKGBUILD b/libre/aspell-pl-libre/PKGBUILD
index f932a95d1..692b7b6eb 100644
--- a/libre/aspell-pl-libre/PKGBUILD
+++ b/libre/aspell-pl-libre/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=aspell-pl-libre
pkgver=20110907
pkgrel=1
pkgdesc="Polish dictionary for aspell"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.sjp.pl/slownik/en/"
license=('GPL' 'LGPL' 'MPL')
depends=('aspell')
diff --git a/libre/audacious-plugins-libre/PKGBUILD b/libre/audacious-plugins-libre/PKGBUILD
index 9cbde26be..0dc7a2830 100644
--- a/libre/audacious-plugins-libre/PKGBUILD
+++ b/libre/audacious-plugins-libre/PKGBUILD
@@ -15,12 +15,12 @@ license=('GPL' 'GPL3' 'LGPL' 'custom')
# Licensing issues:
# The plugins 'scrobbler', stereoplugin', 'wavepack' and 'plugin_echo' have no license notice
# but I've been informed by an upstream dev, <nenolod>, that they are all GPL of some type.
-#
+#
# The plugin 'psf' is currently BSD+noncommercial, but is apparently being changed to GPL.
# However, 'psf' is apparently an emulator for running non-free code, so I'll leave it out.
#
# All the other custom licensed plugins I think are mostly modified BSD or ISC.
-
+
provides=("audacious-plugins=$pkgver")
replaces=("${pkgname%-libre}")
conflicts=("${pkgname%-libre}")
@@ -99,7 +99,7 @@ build() {
head -n 17 unix-io/unix-io.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.unix-io
head -n 18 voice_removal/voice_removal.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.voice_removal
head -n 25 xsf/corlett.c | cut -c 2- | tail -n 23 > ${tmpdir}/LICENSE.xfs
- l=${pkgdir}/usr/share/licenses/${pkgname}/
+ l=${pkgdir}/usr/share/licenses/${pkgname}/
install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
cd ..
pushd $tmpdir
diff --git a/libre/audacity-libre/PKGBUILD b/libre/audacity-libre/PKGBUILD
index a0c1b154d..cbb0aad47 100644
--- a/libre/audacity-libre/PKGBUILD
+++ b/libre/audacity-libre/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=audacity-libre
pkgver=1.3.13
pkgrel=1
pkgdesc="A program that lets you manipulate digital audio waveforms, libre"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://audacity.sourceforge.net/"
license=('GPL')
depends=('libvorbis' 'libmad' 'libid3tag' 'wxgtk' 'libsamplerate' 'lame' 'hicolor-icon-theme'
diff --git a/libre/aufs2-libre/PKGBUILD b/libre/aufs2-libre/PKGBUILD
index bd177ef9c..f12df73ae 100644
--- a/libre/aufs2-libre/PKGBUILD
+++ b/libre/aufs2-libre/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=4
#_kernver=${pkgver%_*}-LIBRE
_kernver=2.6.38-LIBRE
pkgdesc="Another Unionfs Implementation for the Linux-Libre kernel"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://aufs.sourceforge.net/"
license=('GPL2')
depends=('kernel26-libre>=2.6.38' 'kernel26-libre<2.6.39')
diff --git a/libre/crosstool-ng/PKGBUILD b/libre/crosstool-ng/PKGBUILD
index 8843af016..c836e7a24 100644
--- a/libre/crosstool-ng/PKGBUILD
+++ b/libre/crosstool-ng/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=crosstool-ng
pkgver=1.13.0
pkgrel=1
pkgdesc="A versatile cross toolchain generator (eglibc addons patch)"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://crosstool-ng.org/"
license=(GPL2)
depends=('cvs' 'curl')
diff --git a/libre/ffmpeg-libre/PKGBUILD b/libre/ffmpeg-libre/PKGBUILD
index 41c332dca..a0c4e3aba 100644
--- a/libre/ffmpeg-libre/PKGBUILD
+++ b/libre/ffmpeg-libre/PKGBUILD
@@ -8,14 +8,16 @@ 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')
+arch=('i686' 'x86_64' 'mips64el')
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=(ftp://ftp.archlinux.org/other/ffmpeg/ffmpeg-${pkgver}.tar.xz
+ ffmpeg-loongson.patch)
+md5sums=('dd682a876a496b9f9ae8afb3b3b70389'
+ 'a178dab43d73388543689df4828fb2d2')
#source=(http://ffmpeg.org/releases//releases/ffmpeg-${pkgver}.tar.bz2)
provides=("ffmpeg=$pkgver")
conflicts=('ffmpeg')
diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD
index fc7ebe757..bf9c3b705 100644
--- a/libre/file-roller-libre/PKGBUILD
+++ b/libre/file-roller-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=file-roller-libre
pkgver=3.2.0
pkgrel=1
pkgdesc="Archive manipulator for GNOME"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'nautilus')
makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'nautilus' 'libsm')
diff --git a/libre/ghostscript-libre/PKGBUILD b/libre/ghostscript-libre/PKGBUILD
index eda488048..81796c041 100644
--- a/libre/ghostscript-libre/PKGBUILD
+++ b/libre/ghostscript-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=ghostscript-libre
pkgver=9.04
pkgrel=5
pkgdesc="An interpreter for the PostScript language without non-free files"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL3') #non free files removed
depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng' 'libjpeg' 'libtiff' 'lcms') # 'lcms2' won't get used) # move in libpaper from community?
makedepends=('gtk2' 'gnutls')
diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD
index 9f445eb1d..3680a5228 100644
--- a/libre/grub2/PKGBUILD
+++ b/libre/grub2/PKGBUILD
@@ -11,11 +11,12 @@ _grub2_ntldr_ver=17
_grub2_915_ver=7
pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386')
+[ "$CARCH" = "mips64el" ] && pkgname=('grub2-common' 'grub2-loongson')
pkgbase="grub2"
pkgver='1.99'
pkgrel=4
url="http://www.gnu.org/software/grub/"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL3')
epoch=1
makedepends=('bdf-unifont' 'python2' 'xz' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper')
@@ -61,6 +62,7 @@ build() {
_HOST="${CARCH}"
build_grub2-common_and_bios
+ [ "$CARCH" = "mips64el" ] || \
build_grub2-efi
}
@@ -98,6 +100,17 @@ build_grub2-common_and_bios() {
# mkdir ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS
# cd ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS
+ if [ "$CARCH" = "mips64el" ]; then
+ CFLAGS="" ./configure \
+ --with-platform=yeeloong --enable-mm-debug \
+ --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
+ else
CFLAGS="" ./configure \
--with-platform=pc --enable-mm-debug \
${_EFIEMU} --host=${CARCH}-unknown-linux-gnu \
@@ -107,6 +120,7 @@ build_grub2-common_and_bios() {
--sysconfdir=/etc --enable-nls \
--program-transform-name=s,grub,grub,
CFLAGS="" make
+ fi
}
build_grub2-efi() {
@@ -204,3 +218,18 @@ package_grub2-efi-i386() {
rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share}
rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib}
}
+
+# Same as -bios but different pkgdesc
+package_grub2-loongson() {
+ pkgdesc="The GNU GRand Unified Bootloader version 2 - Built for Loogson"
+ depends=(grub2-common=${epoch}:${pkgver})
+ replaces=('grub2' 'grub2-libre')
+ provides=('grub2' 'grub2-libre')
+
+ 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}
+}
diff --git a/libre/gstreamer0.10-bad-libre/PKGBUILD b/libre/gstreamer0.10-bad-libre/PKGBUILD
index 59fbf021b..c5dfd46d1 100644
--- a/libre/gstreamer0.10-bad-libre/PKGBUILD
+++ b/libre/gstreamer0.10-bad-libre/PKGBUILD
@@ -6,15 +6,17 @@ pkgbase=gstreamer0.10-bad-libre
pkgname=('gstreamer0.10-bad-libre' 'gstreamer0.10-bad-libre-plugins')
pkgver=0.10.22
pkgrel=1
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('LGPL' 'GPL')
makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.34' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg')
url="http://gstreamer.freedesktop.org/"
options=(!libtool !emptydirs)
-source=(${url}/src/gst-plugins-bad/gst-plugins-bad-${pkgver}.tar.bz2)
+source=(${url}/src/gst-plugins-bad/gst-plugins-bad-${pkgver}.tar.bz2
+ mpeg2enc-mjpegtools-2.0.patch)
build() {
cd "${srcdir}/gst-plugins-bad-${pkgver}"
+ patch -Np1 -i "${srcdir}/mpeg2enc-mjpegtools-2.0.patch"
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--disable-static --enable-experimental \
--with-package-name="GStreamer Bad Plugins (Parabola)" \
@@ -51,4 +53,5 @@ package_gstreamer0.10-bad-libre-plugins() {
make -C sys DESTDIR="${pkgdir}" install
make -C gst-libs DESTDIR="${pkgdir}" uninstall
}
-md5sums=('9a2acee1f386f71247003d0d7090fb1c')
+md5sums=('9a2acee1f386f71247003d0d7090fb1c'
+ 'e3068957abab56b474abf183adce7da3')
diff --git a/libre/gstreamer0.10-bad-libre/mpeg2enc-mjpegtools-2.0.patch b/libre/gstreamer0.10-bad-libre/mpeg2enc-mjpegtools-2.0.patch
new file mode 100644
index 000000000..771d75743
--- /dev/null
+++ b/libre/gstreamer0.10-bad-libre/mpeg2enc-mjpegtools-2.0.patch
@@ -0,0 +1,26 @@
+From 407b02578689804dc6bc47e53be9e87cc1b25597 Mon Sep 17 00:00:00 2001
+From: Götz Waschk <waschk@mandriva.org>
+Date: Tue, 24 May 2011 13:42:44 +0000
+Subject: mpeg2enc: support mjpegtools 2.0
+
+This adds conditional includes for the renamed headers in mjpegtools 2.0.
+Fixes: #650970.
+---
+diff --git a/ext/mpeg2enc/gstmpeg2encoder.cc b/ext/mpeg2enc/gstmpeg2encoder.cc
+index acfda50..31f1a30 100644
+--- a/ext/mpeg2enc/gstmpeg2encoder.cc
++++ b/ext/mpeg2enc/gstmpeg2encoder.cc
+@@ -26,7 +26,10 @@
+
+ #include <mpegconsts.h>
+ #include <quantize.hh>
+-#if GST_MJPEGTOOLS_API >= 10900
++#if GST_MJPEGTOOLS_API >= 10903
++#include <ontheflyratectlpass1.hh>
++#include <ontheflyratectlpass2.hh>
++#elif GST_MJPEGTOOLS_API >= 10900
+ #include <ontheflyratectl.hh>
+ #include <pass1ratectl.hh>
+ #include <pass2ratectl.hh>
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/libre/hardinfo/PKGBUILD b/libre/hardinfo/PKGBUILD
index 869d2f52a..73dffcdbd 100644
--- a/libre/hardinfo/PKGBUILD
+++ b/libre/hardinfo/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=hardinfo
pkgver=0.5.1
pkgrel=2.1
pkgdesc="A system information and benchmark tool."
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://hardinfo.berlios.de/wiki/index.php/Main_Page"
license=('GPL2')
depends=('gtk2' 'libsoup' 'gnutls')
diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD
index 9ab8d6c71..e45da8749 100644
--- a/libre/icecat/PKGBUILD
+++ b/libre/icecat/PKGBUILD
@@ -83,6 +83,11 @@ build() {
#patch -Np1 -i "$srcdir/mozilla-firefox-1.0-lang.patch"
#patch -Np1 -i "$srcdir/firefox-version.patch"
+<<<<<<< HEAD
+ [ "$CARCH" = "mips64el" ] && echo "ac_add_options --disable-ipc" >> .mozconfig
+
+=======
+>>>>>>> libre/master
# Fix PRE_RELEASE_SUFFIX
sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \
browser/base/Makefile.in
diff --git a/libre/kdeutils-libre/PKGBUILD b/libre/kdeutils-libre/PKGBUILD
index 4337580e3..45679d919 100644
--- a/libre/kdeutils-libre/PKGBUILD
+++ b/libre/kdeutils-libre/PKGBUILD
@@ -18,7 +18,7 @@ pkgname=('kdeutils-ark-libre'
'kdeutils-sweeper')
pkgver=4.7.2
pkgrel=1
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdeutils')
diff --git a/libre/kernel26-libre-lts/PKGBUILD b/libre/kernel26-libre-lts/PKGBUILD
index acbdde5ad..2bf359698 100644
--- a/libre/kernel26-libre-lts/PKGBUILD
+++ b/libre/kernel26-libre-lts/PKGBUILD
@@ -9,7 +9,7 @@ _basekernel=2.6.32
_preset=kernel26-lts.preset
pkgver=${_basekernel}.42
pkgrel=1
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
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
diff --git a/libre/kernel26-libre/Kbuild b/libre/kernel26-libre/Kbuild
new file mode 100644
index 000000000..8a9d7dceb
--- /dev/null
+++ b/libre/kernel26-libre/Kbuild
@@ -0,0 +1,19 @@
+# Fail on warnings - also for files referenced in subdirs
+# -Werror can be disabled for specific files using:
+# CFLAGS_<file.o> := -Wno-error
+subdir-ccflags-y := -Wno-error
+
+# platform specific definitions
+include arch/mips/Kbuild.platforms
+obj-y := $(platform-y)
+
+# make clean traverses $(obj-) without having included .config, so
+# everything ends up here
+obj- := $(platform-)
+
+# mips object files
+# The object files are linked as core-y files would be linked
+
+obj-y += kernel/
+obj-y += mm/
+obj-y += math-emu/
diff --git a/libre/kernel26-libre/Kbuild.platforms b/libre/kernel26-libre/Kbuild.platforms
new file mode 100644
index 000000000..90a226888
--- /dev/null
+++ b/libre/kernel26-libre/Kbuild.platforms
@@ -0,0 +1,6 @@
+# All platforms listed in alphabetic order
+
+platforms += loongson
+
+# include the platform specific files
+include $(patsubst %, $(srctree)/arch/mips/%/Platform, $(platforms))
diff --git a/libre/lame-libre/PKGBUILD b/libre/lame-libre/PKGBUILD
index 205d81c1f..66d50a1bf 100644
--- a/libre/lame-libre/PKGBUILD
+++ b/libre/lame-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=lame-libre
pkgver=3.98.4
pkgrel=3
pkgdesc="An MP3 encoder and graphical frame analyzer"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://lame.sourceforge.net/"
depends=('ncurses')
makedepends=('nasm')
diff --git a/libre/lesspipe-libre/PKGBUILD b/libre/lesspipe-libre/PKGBUILD
index 48d5ebe0f..22c6ecbd8 100644
--- a/libre/lesspipe-libre/PKGBUILD
+++ b/libre/lesspipe-libre/PKGBUILD
@@ -8,7 +8,7 @@ pkgver=1.71
pkgrel=1
pkgdesc='an input filter for the pager less'
depends=('less')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
optdepends=('rpmextract: support for rpm files'
'fastjar: support for jar files'
diff --git a/libre/libquicktime-libre/PKGBUILD b/libre/libquicktime-libre/PKGBUILD
index c6e4ab588..d3f51d911 100644
--- a/libre/libquicktime-libre/PKGBUILD
+++ b/libre/libquicktime-libre/PKGBUILD
@@ -6,7 +6,7 @@ _pkgname=libquicktime
pkgver=1.2.2
pkgrel=3
pkgdesc="A library for reading and writing quicktime files (no unfree faac support)."
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://libquicktime.sourceforge.net/"
depends=('gtk2' 'ffmpeg' 'alsa-lib' 'libxv' 'libgl' 'libxaw' 'x264' 'faad2')
diff --git a/libre/libretools/PKGBUILD b/libre/libretools/PKGBUILD
index 4eafae894..69b3bc5d4 100644
--- a/libre/libretools/PKGBUILD
+++ b/libre/libretools/PKGBUILD
@@ -2,7 +2,7 @@
# Contributor: fauno <fauno@kiwwwi.com.ar>
pkgbase=libretools
-pkgname=(libretools libretools-pr libretools-mips64el)
+pkgname=(libretools libretools-mips64el)
pkgver=$(date -u +%Y%m%d)
pkgrel=1
pkgdesc="Scripts for easing Parabola's tasks"
diff --git a/libre/liferea-libre/PKGBUILD b/libre/liferea-libre/PKGBUILD
index 8ee55b4ba..76c631b72 100644
--- a/libre/liferea-libre/PKGBUILD
+++ b/libre/liferea-libre/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=liferea-libre
pkgver=1.6.6b
pkgrel=1
pkgdesc="A desktop news aggregator for online news feeds and weblogs"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://liferea.sourceforge.net/"
provides=("liferea=$pkgver")
replaces=('liferea')
diff --git a/libre/linux-libre/Kbuild b/libre/linux-libre/Kbuild
new file mode 100644
index 000000000..8a9d7dceb
--- /dev/null
+++ b/libre/linux-libre/Kbuild
@@ -0,0 +1,19 @@
+# Fail on warnings - also for files referenced in subdirs
+# -Werror can be disabled for specific files using:
+# CFLAGS_<file.o> := -Wno-error
+subdir-ccflags-y := -Wno-error
+
+# platform specific definitions
+include arch/mips/Kbuild.platforms
+obj-y := $(platform-y)
+
+# make clean traverses $(obj-) without having included .config, so
+# everything ends up here
+obj- := $(platform-)
+
+# mips object files
+# The object files are linked as core-y files would be linked
+
+obj-y += kernel/
+obj-y += mm/
+obj-y += math-emu/
diff --git a/libre/linux-libre/Kbuild.platforms b/libre/linux-libre/Kbuild.platforms
new file mode 100644
index 000000000..90a226888
--- /dev/null
+++ b/libre/linux-libre/Kbuild.platforms
@@ -0,0 +1,6 @@
+# All platforms listed in alphabetic order
+
+platforms += loongson
+
+# include the platform specific files
+include $(patsubst %, $(srctree)/arch/mips/%/Platform, $(platforms))
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 4e10d29a0..77e514293 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -9,19 +9,28 @@ pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -
# pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux-libre}
_basekernel=3.1
+<<<<<<< HEAD
+pkgver=${_basekernel}.4
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+=======
pkgver=${_basekernel}.5
pkgrel=1
arch=('i686' 'x86_64')
+>>>>>>> libre/master
url="http://linux-libre.fsfla.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl')
options=('!strip')
source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-libre/linux-${_basekernel}-libre.tar.xz"
"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basekernel}-libre-${pkgver}-libre.xz"
+ "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${pkgver}-libre-lemote_0lxo_mipsel.tar.bz2"
# the main kernel config files
'config.i686' 'config.x86_64'
# standard config files for mkinitcpio ramdisk
"${pkgname}.preset"
+ 'Kbuild'
+ 'Kbuild.platforms'
'boot-logo.patch'
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
@@ -59,7 +68,18 @@ build() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
- cat "${srcdir}/config.${CARCH}" > ./.config # simpler
+ if [ "$CARCH" == "mips64el" ]; then
+ sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
+ msg2 "Adding loongson-community patches"
+ patch -Np1 -i ${srcdir}/${_basekernel}-*-loongson-community.patch
+ patch -Np0 -i "${srcdir}/lxo-config.patch"
+
+# ensure N32
+ sed -i "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" ./.config
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"-LIBRE\"|g" ./.config
+ else
+ cat "${srcdir}/config.${CARCH}" > ./.config # simpler
+ fi
if [ "${_kernelname}" != "" ]; then
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
@@ -89,7 +109,11 @@ build() {
yes "" | make config
# build!
- make ${MAKEFLAGS} bzImage modules
+ if [ "$CARCH" == "mips64el" ]; then
+ make ${MAKEFLAGS} vmlinuz modules
+ else
+ make ${MAKEFLAGS} bzImage modules
+ fi
}
package_linux-libre() {
@@ -106,13 +130,19 @@ package_linux-libre() {
cd "${srcdir}/linux-${_basekernel}"
KARCH=x86
+ [[ $CARCH = "mips64el" ]] && KARCH=mips
# get kernel version
_kernver="$(make kernelrelease)"
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
make INSTALL_MOD_PATH="${pkgdir}" modules_install
- cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgname}"
+
+ if [ "$CARCH" == "mips64el" ]; then
+ cp vmlinuz ${pkgdir}/boot/vmlinuz-${pkgname}
+ else
+ cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgname}"
+ fi
# add vmlinux
install -D -m644 vmlinux "${pkgdir}/usr/src/linux-${_kernver}/vmlinux"
@@ -131,6 +161,13 @@ package_linux-libre() {
-e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgname}-fallback.img\"|g" \
-i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+# mkinitcpio 0.7 relies on bzImage to find the kernel version
+ if [ "$CARCH" == "mips64el" ]; then
+ sed \
+ -e "s|ALL_kver=.*|ALL_kver=\"${_kernver}\"|g" \
+ -i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+ fi
+
# remove build and source links
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
# remove the firmware
@@ -149,6 +186,18 @@ package_linux-libre-headers() {
provides=('kernel26-headers' "linux-headers=${pkgver}")
conflicts=('kernel26-headers' 'kernel26-libre-headers' 'linux-headers')
replaces=('kernel26-headers' 'kernel26-libre-headers' 'linux-headers')
+<<<<<<< HEAD
+
+ KARCH=x86
+ [[ $CARCH = "mips64el" ]] && KARCH=mips
+
+# In case of repackaging this is empty
+ if [ -z "${_kernver}" ]; then
+ cd ${srcdir}/linux-$pkgver
+ _kernver="$(make kernelrelease)"
+ fi
+=======
+>>>>>>> libre/master
mkdir -p "${pkgdir}/lib/modules/${_kernver}"
@@ -171,13 +220,19 @@ package_linux-libre-headers() {
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/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}"
+ cp -a "arch/${KARCH}/include" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
# copy files necessary for later builds
cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
+ if [ "$CARCH" = "mips64el" ]; then
+ cp -a "arch/${KARCH}/Kbuild" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ cp -a "arch/${KARCH}/loongson" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ cp -a "${srcdir}/Kbuild.platforms" "${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/"
+ fi
+
# fix permissions on scripts dir
chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
@@ -272,7 +327,12 @@ package_linux-libre-headers() {
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}
+ rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+ if [ "$CARCH" = "mips64el" ]; then
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
+ else
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/mips
+ fi
}
package_linux-libre-docs() {
@@ -292,10 +352,20 @@ package_linux-libre-docs() {
rm -f "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
}
md5sums=('d73df15ab1d36fe3c102755d8f42117f'
+<<<<<<< HEAD
+ 'ad965eeb168f19c536722ede6e22983b'
+ '9b116e9b7a87ed9f6235deae432b9fd6'
+ '7d8fac41f4c4c2d14d8c65645fb676bd'
+ '2a0302eda795903d3b01e41ba807c91e'
+ 'a8a3843046926eb7ab81312cd438c5c5'
+ '2967cecc3af9f954ccc822fd63dca6ff'
+ '8267264d9a8966e57fdacd1fa1fc65c4'
+=======
'06b461d4db995ddcbecbf345ae3b8987'
'7d8fac41f4c4c2d14d8c65645fb676bd'
'2a0302eda795903d3b01e41ba807c91e'
'a8a3843046926eb7ab81312cd438c5c5'
+>>>>>>> libre/master
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install
index d75b48c8f..79e11697d 100644
--- a/libre/linux-libre/linux-libre.install
+++ b/libre/linux-libre/linux-libre.install
@@ -2,7 +2,11 @@
# arg 2: the old package version
KERNEL_NAME=
+<<<<<<< HEAD
+KERNEL_VERSION=3.1.4-1-LIBRE
+=======
KERNEL_VERSION=3.1.5-1-LIBRE
+>>>>>>> libre/master
post_install () {
# updating module dependencies
diff --git a/libre/linux-libre/linux-libre.preset.mips64el b/libre/linux-libre/linux-libre.preset.mips64el
new file mode 100644
index 000000000..7af90ba7a
--- /dev/null
+++ b/libre/linux-libre/linux-libre.preset.mips64el
@@ -0,0 +1,14 @@
+# mkinitcpio preset file for the 'linux' package
+
+ALL_config="/etc/mkinitcpio.conf"
+ALL_kver="/boot/vmlinuz-linux-libre"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/initramfs-linux-libre.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/initramfs-linux-libre-fallback.img"
+fallback_options="-S autodetect"
diff --git a/libre/mesa-demos-libre/PKGBUILD b/libre/mesa-demos-libre/PKGBUILD
index 46f7a75e8..2e7d14fe3 100644
--- a/libre/mesa-demos-libre/PKGBUILD
+++ b/libre/mesa-demos-libre/PKGBUILD
@@ -4,7 +4,7 @@
pkgname='mesa-demos-libre'
pkgver=8.0.1
pkgrel=1
-arch=(i686 x86_64)
+arch=(i686 x86_64 'mips64el')
pkgdesc="Mesa demos and tools, libre"
url="http://mesa3d.sourceforge.net"
license=('custom')
diff --git a/libre/metalog/PKGBUILD b/libre/metalog/PKGBUILD
index dee52d986..3692229e0 100644
--- a/libre/metalog/PKGBUILD
+++ b/libre/metalog/PKGBUILD
@@ -39,5 +39,7 @@ package() {
install -D -m644 $srcdir/metalog.confd $pkgdir/etc/conf.d/metalog
install -D -m644 metalog.conf $pkgdir/etc/metalog.conf
-}
+# compat symlink
+ ln -s metalog $pkgdir/etc/rc.d/syslog-ng
+} \ No newline at end of file
diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD
index 4dd9b5b0b..d5f6be604 100644
--- a/libre/mplayer-libre/PKGBUILD
+++ b/libre/mplayer-libre/PKGBUILD
@@ -11,6 +11,11 @@ arch=('i686' 'x86_64')
makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient'
'aalib' 'jack' 'libcaca' 'x264' 'faad2' 'lirc-utils' 'libxvmc' 'enca' 'libvdpau' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx' 'speex'
'libpulse' 'fribidi' 'unzip' 'mesa' 'live-media' 'yasm' 'git' 'fontconfig' 'mpg123' 'ladspa' 'libass')
+# no lirc
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient'
+'aalib' 'jack' 'libcaca' 'x264' 'faad2' 'libxvmc' 'enca' 'libvdpau' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx' 'speex'
+'libpulse' 'fribidi' 'unzip' 'mesa' 'live-media' 'yasm' 'git' 'fontconfig' 'mpg123' 'ladspa' 'libass')
license=('GPL')
url="http://www.mplayerhq.hu/"
options=(!buildflags !emptydirs)
@@ -49,6 +54,10 @@ package_mplayer-libre() {
depends=('desktop-file-utils' 'ttf-dejavu' 'enca' 'libxss' 'a52dec' 'libvpx' 'lirc-utils' 'x264' 'libmng' 'libdca' 'aalib' 'lame' 'fontconfig' 'libgl' 'speex'
'libxinerama' 'libvdpau' 'libpulse' 'smbclient' 'xvidcore' 'opencore-amr' 'jack' 'cdparanoia' 'libmad' 'sdl' 'libtheora' 'libcaca' 'libxxf86dga' 'fribidi'
'libjpeg' 'faad2' 'libxvmc' 'schroedinger' 'mpg123' 'libass')
+[ "$CARCH" = "mips64el" ] && \
+ depends=('desktop-file-utils' 'ttf-dejavu' 'enca' 'libxss' 'a52dec' 'libvpx' 'x264' 'libmng' 'libdca' 'aalib' 'lame' 'fontconfig' 'libgl' 'speex'
+ 'libxinerama' 'libvdpau' 'libpulse' 'smbclient' 'xvidcore' 'opencore-amr' 'jack' 'cdparanoia' 'libmad' 'sdl' 'libtheora' 'libcaca' 'libxxf86dga' 'fribidi'
+ 'libjpeg' 'faad2' 'libxvmc' 'schroedinger' 'mpg123' 'libass')
provides=("mplayer=$pkgver")
replaces=('mplayer')
conflicts=('mplayer')
diff --git a/libre/mplayer-vaapi-libre/PKGBUILD b/libre/mplayer-vaapi-libre/PKGBUILD
index 73f3e6022..e06c9a9b1 100644
--- a/libre/mplayer-vaapi-libre/PKGBUILD
+++ b/libre/mplayer-vaapi-libre/PKGBUILD
@@ -10,7 +10,7 @@ pkgver=33161
_vaapi_version=20110127
pkgrel=3
pkgdesc="A movie player, compiled with vaapi support, without faac dependency, added speex support"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/"
license=('GPL')
depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl'
diff --git a/libre/p7zip-libre/PKGBUILD b/libre/p7zip-libre/PKGBUILD
index 61d0d5d71..de2a3b1fb 100644
--- a/libre/p7zip-libre/PKGBUILD
+++ b/libre/p7zip-libre/PKGBUILD
@@ -12,7 +12,7 @@ pkgrel=4
pkgdesc='Command-line version of the 7zip compressed file archiver without Rar'
url='http://p7zip.sourceforge.net/'
license=('GPL')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
provides=("p7zip=$pkgver" 'unzip')
conflicts=('p7zip' 'unzip')
replaces=('p7zip' 'unzip')
@@ -40,7 +40,7 @@ mksource() {
msg "Removing unRar"
# Generate patch
# sed -e '/Rar/d' -i makefile*
-# find -name '*Rar*' -print0 | xargs -0 rm -rvf
+# find -name '*Rar*' -print0 | xargs -0 rm -rvf
# Remove Rar mentions in CPP/7zip/Bundles/Format7zFree/makefile
patch -Np1 -i ../p7zip-libre.patch
@@ -52,11 +52,16 @@ mksource() {
build() {
cd "${srcdir}/${_pkgname}_${pkgver}"
- [[ $CARCH = x86_64 ]] \
- && cp makefile.linux_amd64_asm makefile.machine \
- || cp makefile.linux_x86_asm_gcc_4.X makefile.machine
+ case $CARCH in
+ x86_64) cp makefile.linux_amd64_asm makefile.machine ;;
+ i686) cp makefile.linux_x86_asm_gcc_4.X makefile.machine ;;
+ esac
- make all4 OPTFLAGS="${CXXFLAGS}"
+ if [ "$CARCH" = "mips64el" ]; then
+ make all3 OPTFLAGS="${CXXFLAGS}"
+ else
+ make all4 OPTFLAGS="${CXXFLAGS}"
+ fi
}
package() {
@@ -83,4 +88,3 @@ package() {
# Install unzip replacement script
install -D -m755 "${srcdir}/unzip" "${pkgdir}/usr/bin/unzip"
}
-
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 1768684e1..dd0ff5fda 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -3,7 +3,11 @@
pkgname=pacman
pkgver=3.5.4
+<<<<<<< HEAD
+pkgrel=4.2
+=======
pkgrel=4
+>>>>>>> libre/master
pkgdesc="A library-based package manager with dependency support"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.archlinux.org/pacman/"
@@ -21,12 +25,15 @@ source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz
pacman.conf.mips64el
makepkg.conf
0001-makepkg-fix-removing-symbolic-link.patch)
+<<<<<<< HEAD
+=======
md5sums=('2dd3a85d55ee3dd89abd349aa837447c'
'ba85525fe868f030bef209b0487dd5a5'
'7aaccf24479f396d4a5987c8ccd2f3a2'
'150a2854816cd67b1608e00f99701c1c'
'be10d3d2e533515a0470237761415568'
'749a4ddc6d8418d8d031f1c9b4e09d6f')
+>>>>>>> libre/master
# keep an upgrade path for older installations
PKGEXT='.pkg.tar.gz'
@@ -67,7 +74,11 @@ package() {
mycarch="mips64el"
mychost="mips64el-unknown-linux-gnu"
myflags="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
+<<<<<<< HEAD
+ myldflags="-Wl,--as-needed"
+=======
myldflags=""
+>>>>>>> libre/master
;;
esac
install -m644 $srcdir/makepkg.conf $pkgdir/etc/
@@ -86,3 +97,9 @@ package() {
}
# vim: set ts=2 sw=2 et:
+md5sums=('2dd3a85d55ee3dd89abd349aa837447c'
+ 'ba85525fe868f030bef209b0487dd5a5'
+ '7aaccf24479f396d4a5987c8ccd2f3a2'
+ '150a2854816cd67b1608e00f99701c1c'
+ 'be10d3d2e533515a0470237761415568'
+ '749a4ddc6d8418d8d031f1c9b4e09d6f')
diff --git a/libre/pacman/makepkg.conf.mips64el b/libre/pacman/makepkg.conf.mips64el
new file mode 100644
index 000000000..ae090a1fa
--- /dev/null
+++ b/libre/pacman/makepkg.conf.mips64el
@@ -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@"
+CXXFLAGS="@CARCHFLAGS@"
+#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/libre/pacman/mips64el.patch b/libre/pacman/mips64el.patch
new file mode 100644
index 000000000..1dac6194f
--- /dev/null
+++ b/libre/pacman/mips64el.patch
@@ -0,0 +1,26 @@
+--- configure.ac.orig 2011-06-10 14:50:19.241750094 -0300
++++ configure.ac 2011-06-10 14:50:35.537678580 -0300
+@@ -271,6 +271,10 @@ case "${host}" in
+ CARCH="arm"
+ CARCHFLAGS="-march=armv4 "
+ ;;
++ mips64el-*)
++ CARCH="mips64el"
++ CARCHFLAGS=""
++ ;;
+ *)
+ AC_MSG_WARN([[Your architecture is unknown for makepkg.conf, consider adding it to configure.ac]])
+ CARCH="unknown"
+--- configure.orig 2011-06-10 14:57:12.971308117 -0300
++++ configure 2011-06-10 14:56:49.963295618 -0300
+@@ -15673,6 +15673,10 @@ case "${host}" in
+ CARCH="arm"
+ CARCHFLAGS="-march=armv4 "
+ ;;
++ mips64el-*)
++ CARCH="mips64el"
++ CARCHFLAGS=""
++ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your architecture is unknown for makepkg.conf, consider adding it to configure.ac" >&5
+ $as_echo "$as_me: WARNING: Your architecture is unknown for makepkg.conf, consider adding it to configure.ac" >&2;}
diff --git a/libre/psutils-libre/PKGBUILD b/libre/psutils-libre/PKGBUILD
index 6ed3b7f60..a2ee853d1 100644
--- a/libre/psutils-libre/PKGBUILD
+++ b/libre/psutils-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=psutils-libre
pkgver=1.17
pkgrel=1
pkgdesc="A set of postscript utilities"
-arch=(i686 x86_64)
+arch=(i686 x86_64 'mips64el')
license=('custom')
depends=('glibc' 'ghostscript')
provides=('psutils-lprng' 'psutils')
diff --git a/libre/python-reportlab-libre/PKGBUILD b/libre/python-reportlab-libre/PKGBUILD
index e0dfc9d9c..41e2a4d00 100644
--- a/libre/python-reportlab-libre/PKGBUILD
+++ b/libre/python-reportlab-libre/PKGBUILD
@@ -9,7 +9,7 @@ _origname=reportlab
pkgver=2.5
pkgrel=1
pkgdesc="A proven industry-strength PDF generating solution"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('python2' 'freetype2' 'ttf-bitstream-vera' 'gsfonts' 'python-imaging')
license=('custom')
source=(http://www.reportlab.org/ftp/${_origname}-$pkgver.tar.gz
diff --git a/libre/python2-libre/PKGBUILD b/libre/python2-libre/PKGBUILD
index c4f09188d..1e97a8f24 100644
--- a/libre/python2-libre/PKGBUILD
+++ b/libre/python2-libre/PKGBUILD
@@ -9,7 +9,7 @@ pkgver=2.7.2
pkgrel=4
_pybasever=2.7
pkgdesc="A high-level scripting language"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('PSF')
url="http://www.python.org/"
depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite3' 'libffi')
diff --git a/libre/rp-pppoe-libre/PKGBUILD b/libre/rp-pppoe-libre/PKGBUILD
index a360e113e..cea9ca4d3 100644
--- a/libre/rp-pppoe-libre/PKGBUILD
+++ b/libre/rp-pppoe-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=rp-pppoe-libre
pkgver=3.10
pkgrel=7
pkgdesc="Roaring Penguin's Point-to-Point Protocol over Ethernet client. Unfree software recommendation removed."
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.roaringpenguin.com/pppoe/"
license=('GPL')
depends=('ppp>=2.4.5' 'sh' 'net-tools')
diff --git a/libre/sdl-libre/PKGBUILD b/libre/sdl-libre/PKGBUILD
index 20f6ece4b..b5e29fd4c 100644
--- a/libre/sdl-libre/PKGBUILD
+++ b/libre/sdl-libre/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=sdl-libre
pkgver=1.2.14
pkgrel=7.1
pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.libsdl.org"
license=('LGPL')
provides=("sdl=${pkgver}")
diff --git a/libre/seamonkey-libre/PKGBUILD b/libre/seamonkey-libre/PKGBUILD
index 343f3e3ed..21fc89d96 100644
--- a/libre/seamonkey-libre/PKGBUILD
+++ b/libre/seamonkey-libre/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=seamonkey-libre
pkgver=2.0.12
pkgrel=1
pkgdesc="SeaMonkey internet suite, with GNUZilla addons"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
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')
diff --git a/libre/sqlite3/PKGBUILD b/libre/sqlite3/PKGBUILD
index 2a939aa57..9e380bd73 100644
--- a/libre/sqlite3/PKGBUILD
+++ b/libre/sqlite3/PKGBUILD
@@ -13,7 +13,7 @@ _amalgamationver2=${_amalgamationver/00/}
pkgver=${_amalgamationver2//0/.}
pkgrel=2
pkgdesc="A C library that implements an SQL database engine"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('custom')
url="http://www.sqlite.org/"
makedepends=('tcl' 'readline>=6.0.00')
diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD
index 25048150c..f6835db87 100644
--- a/libre/texlive-bin-libre/PKGBUILD
+++ b/libre/texlive-bin-libre/PKGBUILD
@@ -8,7 +8,7 @@ _luatex_ver=0.70.1
pkgrel=5.1
pkgdesc="TeX Live binaries"
license=('GPL')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('t1lib' 'gd' 'poppler>=0.18.1' 'libsigsegv' 'zziplib')
makedepends=('perl' 'clisp' 'ffcall' 'pkg-config')
optdepends=('ed: for texconfig')
@@ -250,7 +250,7 @@ package() {
mkdir -p $pkgdir/usr/share/tlpkg/TeXLive
install -m644 ${srcdir}/source/utils/biber/TeXLive/*.pm $pkgdir/usr/share/tlpkg/TeXLive
- # create symlinks for formats
+ # create symlinks for formats
echo "--> Create symlinks for TeX formats ..."
LD_PRELOAD="${pkgdir}/usr/lib/libkpathsea.so.6" PATH="$PATH:${pkgdir}/usr/bin" texlinks -f $pkgdir/usr/share/texmf/web2c/fmtutil.cnf $pkgdir/usr/bin/
#############################################################
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
index a018b87a6..06aff86fd 100644
--- a/libre/thunderbird-libre/PKGBUILD
+++ b/libre/thunderbird-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=thunderbird-libre
pkgver=8.0
pkgrel=1
pkgdesc="Standalone Mail/News reader"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('MPL' 'GPL')
url="http://www.mozilla.org/thunderbird/"
depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
diff --git a/libre/unarchiver/PKGBUILD b/libre/unarchiver/PKGBUILD
index a02607b28..84bab9c17 100644
--- a/libre/unarchiver/PKGBUILD
+++ b/libre/unarchiver/PKGBUILD
@@ -3,7 +3,7 @@ pkgname=unarchiver
pkgver=2.7.1
pkgrel=3
pkgdesc="An Objective-C application for uncompressing archive files"
-arch=('x86_64' 'i686')
+arch=('x86_64' 'i686' 'mips64el')
url="http://wakaba.c3.cx/s/apps/unarchiver.html"
license=('LGPL2.1')
depends=('gnustep-base-libre>=1.23.0' 'openssl' 'bzip2' 'icu' 'gcc-libs' 'zlib')
diff --git a/libre/unrar-libre/PKGBUILD b/libre/unrar-libre/PKGBUILD
index e08e90220..0096718b4 100644
--- a/libre/unrar-libre/PKGBUILD
+++ b/libre/unrar-libre/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=unrar-libre
pkgver=0.0.1
pkgrel=1
pkgdesc="A free software library to decompress .rar files."
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://gna.org/projects/unrar/"
license=('GPL')
provides=(unrar)
diff --git a/libre/xarchiver-libre/PKGBUILD b/libre/xarchiver-libre/PKGBUILD
index 001873ad3..70a105323 100644
--- a/libre/xarchiver-libre/PKGBUILD
+++ b/libre/xarchiver-libre/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=xarchiver-libre
pkgver=0.5.2
pkgrel=4
pkgdesc="GTK+ frontend to various command line archivers"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://xarchiver.sourceforge.net"
license=('GPL')
groups=('xfce4-goodies')
diff --git a/libre/xchat-libre/PKGBUILD b/libre/xchat-libre/PKGBUILD
index f04ec2f47..a8092476a 100644
--- a/libre/xchat-libre/PKGBUILD
+++ b/libre/xchat-libre/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=xchat-libre
pkgver=2.8.8
pkgrel=7
pkgdesc="A GTK+ based IRC client without non-free browser reference"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.xchat.org/"
provides=("xchat=$pkgver")
replaces=('xchat')
diff --git a/multilib-testing/binutils-multilib/PKGBUILD b/multilib-testing/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..5cef1fa67
--- /dev/null
+++ b/multilib-testing/binutils-multilib/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 59997 2011-12-03 03:15:32Z 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.22
+pkgrel=1
+_date=20111201
+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.14' '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=('77c15027ac112c65fd5f73ca91b0651c')
+
+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
+
+ # check the host environment and makes sure all the necessary tools are available
+ 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..2ce757d3f
--- /dev/null
+++ b/multilib-testing/gcc-multilib/PKGBUILD
@@ -0,0 +1,303 @@
+# $Id: PKGBUILD 59998 2011-12-03 03:38:14Z 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.2
+pkgrel=2
+_snapshot=4.6-20111125
+_libstdcppmanver=20110814 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib'
+ 'lib32-glibc>=2.14')
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_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=('922b0ee688669c188d237bbd21d42d07'
+ 'ce920d2550ff7e042b9f091d27764d8f'
+ '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
+
+ 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-libssp --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.14' "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 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.14' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp 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=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl')
+ 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++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+
+ # 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..8c0baf8e2
--- /dev/null
+++ b/multilib-testing/gcc-multilib/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/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..61b3494d5
--- /dev/null
+++ b/multilib-testing/lib32-glibc/PKGBUILD
@@ -0,0 +1,167 @@
+# $Id: PKGBUILD 59996 2011-12-03 03:13:45Z 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.14.1
+pkgrel=2
+_glibcdate=20111025
+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.6')
+options=('!strip' '!emptydirs')
+source=(ftp://ftp.archlinux.org/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-futex.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-revert-4768ae77.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ lib32-glibc.conf)
+md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ '6970bcfeb3bf88913436d5112d16f588'
+ '7da8c554a3b591c7401d7023b1928afc'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ 'a8f4549c716cd37244fbf1ed059497f8')
+
+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=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # Revert commit causing issues with crappy DNS servers...
+ # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER!
+ # Note that both these patches do not fix the issue completely:
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ export CC="gcc -m32"
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/lib32" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${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 \
+ --enable-multi-arch i686-unknown-linux-gnu
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "s#=no#=yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+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 -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 \
+ lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ lib32/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib32/{pt_chown,{audit,gconv}/*.so}
+
+ # Dynamic linker
+ mkdir ${pkgdir}/lib
+ ln -s ../lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add lib32 paths 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.14-libdl-crash.patch b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch b/multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch
new file mode 100644
index 000000000..11f087cb7
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch
@@ -0,0 +1,37 @@
+diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
+--- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000
++++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000
+@@ -549,7 +549,7 @@
+ ns, ansp, ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ } else {
+ /* Use datagrams. */
+@@ -559,7 +559,7 @@
+ ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ if (v_circuit)
+ // XXX Check whether both requests failed or
+@@ -1275,14 +1275,10 @@
+ (*thisresplenp > *thisanssizp)
+ ? *thisanssizp : *thisresplenp);
+
+- if (recvresp1 || (buf2 != NULL && recvresp2)) {
+- *resplen2 = 0;
++ if (recvresp1 || (buf2 != NULL && recvresp2))
+ return resplen;
+- }
+ if (buf2 != NULL)
+ {
+- /* No data from the first reply. */
+- resplen = 0;
+ /* We are waiting for a possible second reply. */
+ if (hp->id == anhp->id)
+ recvresp1 = 1;
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..a1c8c4199
--- /dev/null
+++ b/multilib-testing/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1,2 @@
+/lib32
+/usr/lib32
diff --git a/multilib/jack2-multilib/40-hpet-permissions.rules b/multilib/jack2-multilib/40-hpet-permissions.rules
new file mode 100644
index 000000000..7af3780f9
--- /dev/null
+++ b/multilib/jack2-multilib/40-hpet-permissions.rules
@@ -0,0 +1,2 @@
+KERNEL=="rtc0", GROUP="audio"
+KERNEL=="hpet", GROUP="audio"
diff --git a/multilib/jack2-multilib/99-audio.conf b/multilib/jack2-multilib/99-audio.conf
new file mode 100644
index 000000000..eb76ef920
--- /dev/null
+++ b/multilib/jack2-multilib/99-audio.conf
@@ -0,0 +1,2 @@
+@audio - rtprio 99
+@audio - memlock unlimited
diff --git a/multilib/jack2-multilib/PKGBUILD b/multilib/jack2-multilib/PKGBUILD
new file mode 100644
index 000000000..7c61a3571
--- /dev/null
+++ b/multilib/jack2-multilib/PKGBUILD
@@ -0,0 +1,142 @@
+# $Id: PKGBUILD 52694 2011-07-27 17:23:48Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+# This one is in response to a need for an equivalent to lib32-jack for
+# jack2. A lib32-jack2 would require much patching and invading the pure
+# jack2 package, and what's more, the buildsystem provides a flag just to
+# build a hybrid jack2 in full. As such, we have opted to provide multilib
+# users with a replacement package instead of the usual lib32 add-on.
+#
+# See http://mailman.archlinux.org/pipermail/arch-multilib/2011-December/000251.html
+
+pkgbase=jack2-multilib
+pkgname=('jack2-multilib' 'jack2-dbus-multilib')
+#pkgname= # single build (overrides split)
+_tarname=jack
+pkgver=1.9.7
+pkgrel=1
+arch=('x86_64')
+url="http://jackaudio.org/"
+backup=(etc/security/limits.d/99-audio.conf)
+license=('GPL')
+makedepends=('python2' 'libffado' 'libsamplerate' 'celt'
+ 'doxygen' 'gcc-multilib' 'lib32-dbus-core')
+source=("http://www.grame.fr/~letz/$_tarname-$pkgver.tar.bz2"
+ '99-audio.conf'
+ '40-hpet-permissions.rules')
+md5sums=('9759670feecbd43eeccf1c0f743ec199'
+ 'ae65b7c9ebe0fff6c918ba9d97ae342d'
+ '471aad533ff56c5d3cbbf65ce32cadef')
+
+_pyfix() {
+ sed -i 's:bin/env python:bin/env python2:' \
+ "$pkgdir/usr/bin/jack_control"
+}
+
+_wafconf() {
+ python2 waf configure --prefix=/usr \
+ --alsa \
+ --firewire \
+ --mixed \
+ --doxygen $@
+}
+
+_isbuild() {
+ printf "%s\n" ${pkgname[@]} | grep -qx $1
+}
+
+_mklinks() {
+ ln -s /usr/lib32/libjack.so.0.1.0 "$pkgdir/usr/lib32/libjack.so.0"
+ ln -s /usr/lib32/libjack.so.0 "$pkgdir/usr/lib32/libjack.so"
+}
+
+build() {
+ cd "$srcdir"
+
+ # fix doxygen building
+ sed -i 's:build/default/html:html:' $_tarname-$pkgver/wscript
+
+ # we may do 2 different builds
+ cp -r $_tarname-$pkgver $_tarname-dbus-$pkgver
+
+ # mixed dbus/classic build
+ if _isbuild jack2-multilib; then
+ cd $_tarname-$pkgver
+ msg2 "Running Mixed D-Bus/Classic build"
+ _wafconf --classic --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+
+ # dbus-ONLY build
+ if _isbuild jack2-dbus-multilib; then
+ cd $_tarname-dbus-$pkgver
+ msg2 "Running D-Bus-only build"
+ _wafconf --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+}
+
+package_jack2-multilib() {
+ ! _isbuild jack2-multilib && return 0
+
+ pkgdesc="The next-generation JACK with SMP support & mixed mode"
+ depends=('libsamplerate' 'gcc-libs-multilib')
+ optdepends=('libffado: FireWire support'
+ 'celt: NetJACK2 driver'
+ 'lib32-dbus-core: jackdbus'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2' 'lib32-jack')
+ provides=('jack' 'jack2' 'lib32-jack' 'jackmp'
+ 'jackdmp' 'jackdbus' 'lib32-jack2')
+
+ cd "$srcdir/$_tarname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ # fix for major python transition
+ _pyfix
+
+ # configure realtime access/scheduling
+ # see https://bugs.archlinux.org/task/26343
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ # should be done by upstream
+ # see http://trac.jackaudio.org/ticket/200
+ _mklinks
+}
+
+package_jack2-dbus-multilib() {
+ ! _isbuild jack2-dbus-multilib && return 0
+
+ pkgdesc="The next-generation JACK with SMP support & mixed mode (for D-BUS interaction only)"
+ depends=('libsamplerate' 'lib32-dbus-core')
+ optdepends=('libffado: FireWire support'
+ 'celt: NetJACK2 driver'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2' 'lib32-jack' 'jack2-multilib')
+ provides=('jack' 'jack2' 'lib32-jack' 'jack2-multilib'
+ 'jackmp' 'jackdmp' 'jackdbus' 'lib32-jack2')
+
+ cd "$srcdir/$_tarname-dbus-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ _pyfix
+
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ _mklinks
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/social/batctl/PKGBUILD b/social/batctl/PKGBUILD
index b37c0f666..912011781 100644
--- a/social/batctl/PKGBUILD
+++ b/social/batctl/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=batctl
pkgver=2011.3.0
pkgrel=1
pkgdesc="B.A.T.M.A.N. advanced control and management tool"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.open-mesh.net/"
license=('GPL')
depends=('glibc')
diff --git a/social/bitcoin-daemon/PKGBUILD b/social/bitcoin-daemon/PKGBUILD
index 39a0b22b1..dee3f8daa 100644
--- a/social/bitcoin-daemon/PKGBUILD
+++ b/social/bitcoin-daemon/PKGBUILD
@@ -9,7 +9,7 @@ _pkgname=bitcoin
pkgver=0.4.0
pkgrel=1
pkgdesc="Bitcoin is a peer-to-peer network based digital currency (daemon with JSON-RPC interface)."
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.bitcoin.org/"
depends=('expat' 'boost-libs>=1.46' 'miniupnpc>=1.6')
makedepends=('boost')
diff --git a/social/diaspora-git/PKGBUILD b/social/diaspora-git/PKGBUILD
index b15f66916..61c62ceea 100644
--- a/social/diaspora-git/PKGBUILD
+++ b/social/diaspora-git/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=diaspora-git
pkgver=20110623
pkgrel=1
pkgdesc="A privacy aware, personally controlled, do-it-all, open source social network"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.joindiaspora.com/"
license=('AGPL3')
depends=('ruby' 'mysql-ruby' 'redis' 'imagemagick' 'libxslt')
diff --git a/social/ffingerd/PKGBUILD b/social/ffingerd/PKGBUILD
index 4e312232b..dd87137ab 100644
--- a/social/ffingerd/PKGBUILD
+++ b/social/ffingerd/PKGBUILD
@@ -2,7 +2,7 @@ pkgname=ffingerd
pkgver=1.28
pkgrel=2
pkgdesc="Secure finger daemon"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.fefe.de/ffingerd/"
license=('GPL2')
depends=('glibc' 'xinetd')
diff --git a/social/haveged/PKGBUILD b/social/haveged/PKGBUILD
index b5f2e680a..74d53a602 100644
--- a/social/haveged/PKGBUILD
+++ b/social/haveged/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=haveged
pkgver=1.1
pkgrel=1
pkgdesc="A simple entropy daemon."
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.issihosts.com/haveged"
license="GPL"
source=(${url}/${pkgname}-${pkgver}.tar.gz
diff --git a/social/inadyn-opendns/PKGBUILD b/social/inadyn-opendns/PKGBUILD
index 75e8dc1ae..e75e25aca 100644
--- a/social/inadyn-opendns/PKGBUILD
+++ b/social/inadyn-opendns/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=inadyn-opendns
pkgver=1.99
pkgrel=3
pkgdesc="Simple dynamic DNS client with SSL support"
-arch=('i686')
+arch=('i686' 'mips64el')
url="http://www.opendns.com/account/dynamic_dns/downloads"
license=('GPL')
makedepends=('unzip')
diff --git a/social/liblockfile/PKGBUILD b/social/liblockfile/PKGBUILD
index e3428763c..8d7c70484 100644
--- a/social/liblockfile/PKGBUILD
+++ b/social/liblockfile/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=liblockfile
pkgver=1.08_4
pkgrel=1
pkgdesc="a library with NFS-safe locking functions"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://packages.debian.org/unstable/libs/liblockfile1"
depends=('glibc')
@@ -19,11 +19,12 @@ build() {
patch -p1 < ../debian/patches/$p
done
- ./configure --prefix=/usr --mandir=/usr/share/man || return 1
- make || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared --disable-static
+ sed -i "/ldconfig/d" Makefile
+ make
- 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
+ mkdir -p $pkgdir/usr/{lib,bin,include,share/man/man1,share/man/man3}
+ make install prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man
}
md5sums=('c24e2dfb4a2aab0263fe5ac1564d305e'
diff --git a/social/libowfat/PKGBUILD b/social/libowfat/PKGBUILD
index ea43adfab..677b12f39 100644
--- a/social/libowfat/PKGBUILD
+++ b/social/libowfat/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=libowfat
pkgver=0.28
pkgrel=4
pkgdesc='GPL reimplementation of libdjb'
-arch=(i686 x86_64)
+arch=(i686 x86_64 mips64el)
url=http://www.fefe.de/libowfat/
depends=()
license=(GPL)
diff --git a/social/lockfile-progs/PKGBUILD b/social/lockfile-progs/PKGBUILD
index 57d833952..5e404c684 100644
--- a/social/lockfile-progs/PKGBUILD
+++ b/social/lockfile-progs/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=lockfile-progs
pkgver=0.1.15
pkgrel=1
pkgdesc="programs for locking and unlocking files and mailboxes"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://packages.debian.org/unstable/misc/lockfile-progs"
depends=('glibc')
@@ -12,9 +12,11 @@ makedepends=('liblockfile')
source=(http://ftp.debian.org/debian/pool/main/l/lockfile-progs/${pkgname}_${pkgver}.tar.gz)
build() {
- cd $startdir/src/sid
+ cd $srcdir/sid
- make || return 1
+ [ "$CARCH" = "mips64el" ] && sed -i "s/-Werror//" Makefile
+
+ make
mkdir -p $startdir/pkg/usr/bin
install -s bin/* $startdir/pkg/usr/bin
diff --git a/social/miniupnpc/PKGBUILD b/social/miniupnpc/PKGBUILD
index 4d139afdc..eb11f384b 100644
--- a/social/miniupnpc/PKGBUILD
+++ b/social/miniupnpc/PKGBUILD
@@ -3,7 +3,7 @@ pkgname=miniupnpc
pkgver=1.6
pkgrel=2
pkgdesc='A small UPnP client library/tool to access Internet Gateway Devices'
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://miniupnp.free.fr"
license=('BSD')
depends=('sh')
diff --git a/social/monkeysphere/PKGBUILD b/social/monkeysphere/PKGBUILD
index ba869598e..60e4d0b8e 100644
--- a/social/monkeysphere/PKGBUILD
+++ b/social/monkeysphere/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=monkeysphere
pkgver=0.35
pkgrel=2
pkgdesc="Leverage the OpenPGP web of trust for OpenSSH and Web authentication"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://web.monkeysphere.info/"
license=('GPL3')
depends=('gnupg' 'lockfile-progs' 'perl-crypt-openssl-rsa' 'perl-digest-sha1')
diff --git a/social/olsrd/PKGBUILD b/social/olsrd/PKGBUILD
index dea029844..8fce985f6 100644
--- a/social/olsrd/PKGBUILD
+++ b/social/olsrd/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=olsrd
pkgver="0.6.1"
pkgrel=1
pkgdesc="OLSR routing daemon (RFC 3626)"
-arch=(i686 x86_64 ppc)
+arch=(i686 x86_64 ppc mips64el)
url="http://www.olsr.org"
license=('BSD')
depends=('glibc')
diff --git a/social/opentracker/PKGBUILD b/social/opentracker/PKGBUILD
index f328607e7..fffb5d712 100644
--- a/social/opentracker/PKGBUILD
+++ b/social/opentracker/PKGBUILD
@@ -4,13 +4,13 @@ pkgname=opentracker
pkgver=20111020
pkgrel=1
pkgdesc='An open and free bittorrent tracker (open mode)'
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url='http://erdgeist.org/arts/software/opentracker/'
license=('custom:Beer' 'GPL')
makedepends=('libowfat' 'cvs')
depends=('bash' 'zlib')
backup=('etc/opentracker/config')
-install=${pkgname}.install
+#install=${pkgname}.install
source=("http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.gz"
'opentracker.rc.d'
'license.txt')
diff --git a/social/tomoyo-tools/PKGBUILD b/social/tomoyo-tools/PKGBUILD
index aacd1dbe4..9ca0e3181 100644
--- a/social/tomoyo-tools/PKGBUILD
+++ b/social/tomoyo-tools/PKGBUILD
@@ -6,7 +6,7 @@ _timestamp=20110211
pkgver=${_basever}.${_timestamp}
pkgrel=4
pkgdesc='TOMOYO Linux 2.3.x userspace tools for Linux kernel 2.6.36 and later'
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url='http://tomoyo.sourceforge.jp'
license=('GPL')
depends=('ncurses')
diff --git a/staging/cloog/PKGBUILD b/staging/cloog/PKGBUILD
new file mode 100644
index 000000000..148d10d70
--- /dev/null
+++ b/staging/cloog/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144977 2011-12-12 23:18:46Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=cloog
+pkgver=0.17.0
+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=('8562effdf567ea94b008510bd83b6ea9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-isl=system --with-gmp=system
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/staging/gcc/PKGBUILD b/staging/gcc/PKGBUILD
new file mode 100644
index 000000000..c7d2789f4
--- /dev/null
+++ b/staging/gcc/PKGBUILD
@@ -0,0 +1,259 @@
+# $Id: PKGBUILD 144979 2011-12-12 23:21:41Z 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.2
+pkgrel=4
+_snapshot=4.6-20111125
+_libstdcppmanver=20110814 # 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.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada')
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_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
+ gcc-pr49720.patch)
+md5sums=('922b0ee688669c188d237bbd21d42d07'
+ 'ce920d2550ff7e042b9f091d27764d8f'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '4df25b623799b148a0703eaeec8fdf3f'
+ 'f9d7e5b792c59175f3da3f8421447512')
+
+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
+
+ # fix compiler segfault in binutils testsuite
+ patch -Np1 -i ${srcdir}/gcc-pr49720.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-libssp --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.14')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp 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=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' '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++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+
+ # 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/staging/gcc/gcc-ada.install b/staging/gcc/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/staging/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/staging/gcc/gcc-fortran.install b/staging/gcc/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/staging/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/staging/gcc/gcc-go.install b/staging/gcc/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/staging/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/staging/gcc/gcc-hash-style-both.patch b/staging/gcc/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/staging/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/staging/gcc/gcc-libs.install b/staging/gcc/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/staging/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/staging/gcc/gcc-pr49720.patch b/staging/gcc/gcc-pr49720.patch
new file mode 100644
index 000000000..8f50c4120
--- /dev/null
+++ b/staging/gcc/gcc-pr49720.patch
@@ -0,0 +1,26 @@
+--- trunk/gcc/simplify-rtx.c 2011/10/28 05:55:10 180603
++++ trunk/gcc/simplify-rtx.c 2011/10/28 06:35:31 180604
+@@ -4352,10 +4352,20 @@
+ {
+ rtx x = XEXP (op0, 0);
+ rtx c = XEXP (op0, 1);
++ enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS;
++ rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c);
+
+- c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS,
+- cmp_mode, op1, c);
+- return simplify_gen_relational (code, mode, cmp_mode, x, c);
++ /* Detect an infinite recursive condition, where we oscillate at this
++ simplification case between:
++ A + B == C <---> C - B == A,
++ where A, B, and C are all constants with non-simplifiable expressions,
++ usually SYMBOL_REFs. */
++ if (GET_CODE (tem) == invcode
++ && CONSTANT_P (x)
++ && rtx_equal_p (c, XEXP (tem, 1)))
++ return NULL_RTX;
++
++ return simplify_gen_relational (code, mode, cmp_mode, x, tem);
+ }
+
+ /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is
diff --git a/staging/gcc/gcc.install b/staging/gcc/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/staging/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/staging/gcc/gcc_pure64.patch b/staging/gcc/gcc_pure64.patch
new file mode 100644
index 000000000..8c0baf8e2
--- /dev/null
+++ b/staging/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/staging/isl/PKGBUILD b/staging/isl/PKGBUILD
new file mode 100644
index 000000000..6c4dcf315
--- /dev/null
+++ b/staging/isl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144975 2011-12-12 23:17:00Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=isl
+pkgver=0.08
+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=('ea6d534348cae97ff9b20ac5ea13d6bc')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -j1 DESTDIR="$pkgdir/" install
+
+ # this seems a better place for this file...
+ install -dm755 $pkgdir/usr/share/gdb/auto-load/
+ mv $pkgdir/usr/{lib,share/gdb/auto-load}/libisl.so.8.0.0-gdb.py
+}
diff --git a/staging/kadu/PKGBUILD b/staging/kadu/PKGBUILD
new file mode 100644
index 000000000..9f3f341ab
--- /dev/null
+++ b/staging/kadu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 57137 2011-10-22 11:15:09Z bpiotrowski $
+# Maintainer: Mateusz Herych
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=kadu
+pkgver=0.10.1
+pkgrel=2
+pkgdesc="A Qt-based Jabber/XMPP and Gadu-Gadu client"
+arch=('i686' 'x86_64')
+url="http://www.kadu.net/"
+license=('GPL')
+depends=('libgadu' 'libxss' 'aspell' 'phonon' 'qca-ossl' 'libidn' 'libmpdclient' 'qtwebkit')
+makedepends=('cmake' 'libao' 'libsndfile' 'libxtst' 'curl')
+source=(http://www.kadu.net/download/stable/$pkgname-$pkgver.tar.bz2)
+md5sums=('6211a9a9e02d645268cbf055892601a0')
+
+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/staging/kdeaccessibility/PKGBUILD b/staging/kdeaccessibility/PKGBUILD
new file mode 100644
index 000000000..1ecd64674
--- /dev/null
+++ b/staging/kdeaccessibility/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 144135 2011-12-04 09:13:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeaccessibility
+pkgname=('kdeaccessibility-jovie'
+ 'kdeaccessibility-kaccessible'
+ 'kdeaccessibility-kmag'
+ 'kdeaccessibility-kmousetool'
+ 'kdeaccessibility-kmouth')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://accessibility.kde.org'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdelibs' 'speech-dispatcher')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('03f4ac8234dcc49eb93eff3630f76e226e290fff')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+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/jovie/doc
+ 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/kmag/doc
+ 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/kmousetool/doc
+ 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/kmouth/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdeaccessibility/kdeaccessibility.install b/staging/kdeaccessibility/kdeaccessibility.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdeadmin/PKGBUILD b/staging/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..0272df4c9
--- /dev/null
+++ b/staging/kdeadmin/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 144136 2011-12-04 09:13:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+ 'kdeadmin-ksystemlog'
+ 'kdeadmin-kuser'
+ 'kdeadmin-system-config-printer-kde')
+pkgver=4.7.4
+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')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'syslog-path.patch')
+sha1sums=('1a294315645adbbff348a380196d4300a408b70d'
+ '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -p1 -i ${srcdir}/syslog-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_strigi-analyzer=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdeadmin-kcron() {
+ pkgdesc='Configure and schedule tasks'
+ depends=('kdelibs')
+ cd $srcdir/build/kcron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+ pkgdesc='System log viewer tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/ksystemlog/"
+ cd $srcdir/build/ksystemlog
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksystemlog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+ pkgdesc='User Manager'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/system/kuser/"
+ install='kdeadmin.install'
+ cd $srcdir/build/kuser
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kuser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+ pkgdesc='Configure local and remote Printers'
+ depends=('kdebindings-python' 'system-config-printer-common' 'python2-pyqt')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find ${pkgdir} -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/staging/kdeadmin/kdeadmin.install b/staging/kdeadmin/kdeadmin.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdeadmin/syslog-path.patch b/staging/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/staging/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/staging/kdeartwork/PKGBUILD b/staging/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..c4f18cb90
--- /dev/null
+++ b/staging/kdeartwork/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 144137 2011-12-04 09:13:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+ 'kdeartwork-colorschemes'
+ 'kdeartwork-desktopthemes'
+ 'kdeartwork-emoticons'
+ 'kdeartwork-iconthemes'
+ 'kdeartwork-kscreensaver'
+ 'kdeartwork-sounds'
+ 'kdeartwork-styles'
+ 'kdeartwork-wallpapers'
+ 'kdeartwork-weatherwallpapers')
+pkgver=4.7.4
+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' 'libkexiv2')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('f397f49a73273baadabcaf45cf18c4d6a3efbe44')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeartwork-aurorae() {
+ pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+ cd $srcdir/build/aurorae
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+ pkgdesc='KDE color schemes'
+ replaces=('kdeaccessibility-colorschemes')
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+ pkgdesc='KDE desktop themes'
+ cd $srcdir/build/desktopthemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+ pkgdesc='KDE emoticons'
+ cd $srcdir/build/emoticons
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+ pkgdesc='KDE icon themes'
+ replaces=('kdeaccessibility-iconthemes')
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/kscreensaver
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+ pkgdesc='KDE sounds'
+ cd $srcdir/build/sounds
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+ pkgdesc='KDE styles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/styles
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwin-styles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+ pkgdesc='KDE wallpapers'
+ cd $srcdir/build/wallpapers
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/HighResolutionWallpapers
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+ pkgdesc='KDE weather wallpapers'
+ cd $srcdir/build/WeatherWallpapers
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdebase-konsole/PKGBUILD b/staging/kdebase-konsole/PKGBUILD
new file mode 100644
index 000000000..ae29b2e63
--- /dev/null
+++ b/staging/kdebase-konsole/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144138 2011-12-04 09:13:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebase-konsole
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://kde.org/applications/system/konsole/'
+pkgdesc="Terminal"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/konsole-${pkgver}.tar.bz2")
+sha1sums=('33e1bc6f1043c9bf6186190b66b21483301eac7e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../konsole-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebase-runtime/PKGBUILD b/staging/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..1afca4691
--- /dev/null
+++ b/staging/kdebase-runtime/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 144215 2011-12-04 09:37:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.7.4
+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')
+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/kde-runtime-${pkgver}.tar.bz2"
+ 'libqzeitgeist08.patch')
+sha1sums=('bf5c266b7748cda44cc3a2fb231a2d6dde2b09f6'
+ '164c9e4305029cb68a2101cfeeb76c7066c2fd39')
+
+build() {
+ cd "${srcdir}"/kde-runtime-${pkgver}
+ patch -p1 -i "${srcdir}"/libqzeitgeist08.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kde-runtime-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+}
diff --git a/staging/kdebase-runtime/kdebase-runtime.install b/staging/kdebase-runtime/kdebase-runtime.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/staging/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/staging/kdebase-runtime/libqzeitgeist08.patch b/staging/kdebase-runtime/libqzeitgeist08.patch
new file mode 100644
index 000000000..f832cd8b2
--- /dev/null
+++ b/staging/kdebase-runtime/libqzeitgeist08.patch
@@ -0,0 +1,102 @@
+--- kde-runtime-4.7.2/activitymanager/CMakeLists.txt~ 2011-10-29 15:46:55.003710230 +0000
++++ kde-runtime-4.7.2/activitymanager/CMakeLists.txt 2011-10-29 15:47:28.910716093 +0000
+@@ -21,7 +21,7 @@
+ )
+ endif(Nepomuk_FOUND)
+
+-# Checking for QtZeitgeist
++# Checking for QZeitgeist
+ macro_optional_find_package(QZeitgeist)
+
+ if (QZEITGEIST_INCLUDE_DIR)
+@@ -30,8 +30,8 @@
+
+ macro_log_feature(
+ QZeitgeist_FOUND
+- "QtZeitgeist" "Qt bindings for Zeitgeist" "http://gitorious.org/kde-zeitgeist/libqzeitgeist/" FALSE ""
+- "RECOMMENDED: Zeitgeist and QtZeitgeist is needed for resource tracking")
++ "QZeitgeist" "Qt bindings for Zeitgeist" "http://gitorious.org/kde-zeitgeist/libqzeitgeist/" FALSE ""
++ "RECOMMENDED: Zeitgeist and QZeitgeist is needed for resource tracking")
+ if (QZeitgeist_FOUND)
+ set(HAVE_QZEITGEIST 1)
+ include_directories(${QZEITGEIST_INCLUDE_DIR})
+--- kde-runtime-4.7.2/activitymanager/ZeitgeistEventBackend.cpp~ 2011-10-29 15:47:40.960836591 +0000
++++ kde-runtime-4.7.2/activitymanager/ZeitgeistEventBackend.cpp 2011-10-29 15:48:57.034930073 +0000
+@@ -21,31 +21,31 @@
+
+ #ifndef HAVE_QZEITGEIST
+ #ifdef __GNUC__
+- #warning "No QtZeitgeist, disabling desktop events processing"
++ #warning "No QZeitgeist, disabling desktop events processing"
+ #endif
+
+ #else // HAVE_QZEITGEIST
+
+ #include "ZeitgeistEventBackend.h"
+
+-#include <QtZeitgeist/QtZeitgeist>
+-#include <QtZeitgeist/Interpretation>
+-#include <QtZeitgeist/Manifestation>
++#include <QZeitgeist/QZeitgeist>
++#include <QZeitgeist/Interpretation>
++#include <QZeitgeist/Manifestation>
+
+ static QString eventInterpretation(Event::Type type)
+ {
+ switch (type) {
+ case Event::Accessed:
+- return QtZeitgeist::Interpretation::Event::ZGAccessEvent;
++ return QZeitgeist::Interpretation::Event::ZGAccessEvent;
+
+ case Event::Opened:
+- return QtZeitgeist::Interpretation::Event::ZGAccessEvent;
++ return QZeitgeist::Interpretation::Event::ZGAccessEvent;
+
+ case Event::Modified:
+- return QtZeitgeist::Interpretation::Event::ZGModifyEvent;
++ return QZeitgeist::Interpretation::Event::ZGModifyEvent;
+
+ case Event::Closed:
+- return QtZeitgeist::Interpretation::Event::ZGLeaveEvent;
++ return QZeitgeist::Interpretation::Event::ZGLeaveEvent;
+
+ }
+
+@@ -57,23 +57,23 @@
+ {
+ switch (reason) {
+ case Event::User:
+- return QtZeitgeist::Manifestation::Event::ZGUserActivity;
++ return QZeitgeist::Manifestation::Event::ZGUserActivity;
+
+ case Event::Heuristic:
+- return QtZeitgeist::Manifestation::Event::ZGHeuristicActivity;
++ return QZeitgeist::Manifestation::Event::ZGHeuristicActivity;
+
+ case Event::Scheduled:
+- return QtZeitgeist::Manifestation::Event::ZGScheduledActivity;
++ return QZeitgeist::Manifestation::Event::ZGScheduledActivity;
+
+ case Event::System:
+- return QtZeitgeist::Manifestation::Event::ZGSystemNotification;
++ return QZeitgeist::Manifestation::Event::ZGSystemNotification;
+
+ case Event::World:
+- return QtZeitgeist::Manifestation::Event::ZGWorldActivity;
++ return QZeitgeist::Manifestation::Event::ZGWorldActivity;
+ }
+
+ // shut up GCC
+- return QtZeitgeist::Manifestation::Event::ZGUserActivity;
++ return QZeitgeist::Manifestation::Event::ZGUserActivity;
+ }
+
+ static QString applicationUri(const QString & application)
+@@ -84,7 +84,6 @@
+
+ ZeitgeistEventBackend::ZeitgeistEventBackend()
+ {
+- QtZeitgeist::init();
+ }
+
+ void ZeitgeistEventBackend::addEvents(const EventList & events)
diff --git a/staging/kdebase-workspace/PKGBUILD b/staging/kdebase-workspace/PKGBUILD
new file mode 100644
index 000000000..571af4f3a
--- /dev/null
+++ b/staging/kdebase-workspace/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 144126 2011-12-04 09:06:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-workspace
+_pkgname=kde-workspace
+pkgver=4.7.4
+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' 'libqalculate'
+ 'qimageblitz' 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage'
+ 'libxklavier' 'xorg-xsetroot' 'libxcomposite' 'libxinerama'
+ 'xorg-xrdb')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdebindings-python'
+ 'networkmanager')
+optdepends=('kde-wallpapers: officials KDE wallapers')
+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')
+options=('emptydirs')
+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' 'kdm-xinitrd.patch')
+sha1sums=('b7810ba13f6f2a1c4783b153ad9349a1dd27b495'
+ '8c2bdefb23a03b753b78d16944d03fa3939d2d99'
+ '5db3a245201bd4a50e65aa2ef583cf5490e4f646'
+ 'f7b38af38549242a240f1a90ab9964ca8a366129'
+ '603cc79c4d2b4eae62bb5f244aeecb3a778b5516'
+ '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
+ 'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+ 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
+ 'd509dac592bd8b310df27991b208c95b6d907514')
+
+build() {
+ cd "${srcdir}"/${_pkgname}-${pkgver}
+ patch -p0 -i "${srcdir}"/kdm-zsh-profile.patch
+ patch -p1 -i "${srcdir}"/kdm-xinitrd.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_libgps=OFF \
+ -DWITH_OpenGLES=OFF \
+ -DKWIN_BUILD_WITH_OPENGLES=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ 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/staging/kdebase-workspace/fix-powerprofiles.patch b/staging/kdebase-workspace/fix-powerprofiles.patch
new file mode 100644
index 000000000..309fcf3db
--- /dev/null
+++ b/staging/kdebase-workspace/fix-powerprofiles.patch
@@ -0,0 +1,23 @@
+From: Dario Freddi <drf@kde.org>
+Date: Tue, 04 Oct 2011 14:09:09 +0000
+Subject: Use full config when reading settings
+X-Git-Url: http://quickgit.kde.org/?p=kde-workspace.git&amp;a=commitdiff&amp;h=8d59876457387d1c72ca3626ae2d267adf100014
+---
+Use full config when reading settings
+
+BUG: 267323
+---
+
+
+--- a/powerdevil/daemon/powerdevilcore.cpp
++++ b/powerdevil/daemon/powerdevilcore.cpp
+@@ -88,7 +88,7 @@ void Core::onBackendReady()
+ {
+ kDebug() << "Backend is ready, KDE Power Management system initialized";
+
+- m_profilesConfig = KSharedConfig::openConfig("powerdevil2profilesrc", KConfig::SimpleConfig);
++ m_profilesConfig = KSharedConfig::openConfig("powerdevil2profilesrc", KConfig::FullConfig);
+
+ // Is it brand new?
+ if (m_profilesConfig->groupList().isEmpty()) {
+
diff --git a/staging/kdebase-workspace/fixpath.patch b/staging/kdebase-workspace/fixpath.patch
new file mode 100644
index 000000000..be2b8383e
--- /dev/null
+++ b/staging/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/staging/kdebase-workspace/kde-np.pam b/staging/kdebase-workspace/kde-np.pam
new file mode 100644
index 000000000..81eeef47b
--- /dev/null
+++ b/staging/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/staging/kdebase-workspace/kde.pam b/staging/kdebase-workspace/kde.pam
new file mode 100644
index 000000000..1a259390f
--- /dev/null
+++ b/staging/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/staging/kdebase-workspace/kdebase-workspace.install b/staging/kdebase-workspace/kdebase-workspace.install
new file mode 100644
index 000000000..f7d6d305b
--- /dev/null
+++ b/staging/kdebase-workspace/kdebase-workspace.install
@@ -0,0 +1,25 @@
+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
+ update-desktop-database -q
+}
+
+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
+ update-desktop-database -q
+}
+
+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/staging/kdebase-workspace/kdm b/staging/kdebase-workspace/kdm
new file mode 100644
index 000000000..799d58f4b
--- /dev/null
+++ b/staging/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/staging/kdebase-workspace/kdm-xinitrd.patch b/staging/kdebase-workspace/kdm-xinitrd.patch
new file mode 100644
index 000000000..f5fc0e571
--- /dev/null
+++ b/staging/kdebase-workspace/kdm-xinitrd.patch
@@ -0,0 +1,18 @@
+--- kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c~ 2011-10-04 22:11:24.787771512 +0000
++++ kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c 2011-10-04 22:13:58.612702824 +0000
+@@ -742,6 +742,15 @@
+ "[ -f /etc/xprofile ] && . /etc/xprofile\n"
+ "[ -f $HOME/.xprofile ] && . $HOME/.xprofile\n"
+ "\n"
++"# run all system xinitrc shell scripts.\n"
++"if [ -d /etc/X11/xinit/xinitrc.d ]; then\n"
++" for i in /etc/X11/xinit/xinitrc.d/* ; do\n"
++" if [ -x \"$i\" ]; then\n"
++" . \"$i\"\n"
++" fi\n"
++" done\n"
++"fi\n"
++"\n"
+ "if [ -d /etc/X11/Xresources ]; then\n"
+ " for i in /etc/X11/Xresources/*; do\n"
+ " [ -f $i ] && xrdb -merge $i\n"
diff --git a/staging/kdebase-workspace/kdm-zsh-profile.patch b/staging/kdebase-workspace/kdm-zsh-profile.patch
new file mode 100644
index 000000000..779456b39
--- /dev/null
+++ b/staging/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/staging/kdebase-workspace/kscreensaver.pam b/staging/kdebase-workspace/kscreensaver.pam
new file mode 100644
index 000000000..b4d80c21f
--- /dev/null
+++ b/staging/kdebase-workspace/kscreensaver.pam
@@ -0,0 +1 @@
+auth required pam_unix_auth.so
diff --git a/staging/kdebase-workspace/terminate-server.patch b/staging/kdebase-workspace/terminate-server.patch
new file mode 100644
index 000000000..094591317
--- /dev/null
+++ b/staging/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/staging/kdebase/PKGBUILD b/staging/kdebase/PKGBUILD
new file mode 100644
index 000000000..11f1e4fc6
--- /dev/null
+++ b/staging/kdebase/PKGBUILD
@@ -0,0 +1,119 @@
+# $Id: PKGBUILD 144127 2011-12-04 09:06:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+ 'kdebase-kdepasswd'
+ 'kdebase-kdialog'
+ 'kdebase-keditbookmarks'
+ 'kdebase-kfind'
+ 'kdebase-konq-plugins'
+ 'kdebase-konqueror'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'pkgconfig' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.bz2")
+sha1sums=('ad4b6d8479bcf8be49b5f53ee8fdcc1b3d1106d6')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../kde-baseapps-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-dolphin() {
+ pkgdesc='File Manager'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ optdepends=('kdegraphics-svgpart: thumbailers for SVG files'
+ 'kdegraphics-thumbnailers: thumbnailers for graphics file'
+ 'ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ cd $srcdir/build/dolphin
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dolphin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+ pkgdesc='Change Password'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ cd $srcdir/build/kdepasswd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdepasswd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+ pkgdesc='A utility for displaying dialog boxes from shell scripts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kdialog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+ pkgdesc='Bookmark Organizer and Editor'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/keditbookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+ pkgdesc='Find Files/Folders'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ url="http://kde.org/applications/utilities/kfind/"
+ install='kdebase.install'
+ cd $srcdir/build/kfind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfind
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konq-plugins() {
+ pkgdesc='Extra plugins for Konqueror'
+ depends=('kdebase-konqueror' 'tidyhtml')
+ replaces=('konq-plugins')
+ install='kdebase.install'
+ cd $srcdir/build/konq-plugins
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+ pkgdesc='KDE File Manager & Web Browser'
+ depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+ optdepends=('kwebkitpart: to enable webkit engine')
+ url="http://kde.org/applications/internet/konqueror/"
+ install='kdebase.install'
+ conflicts=('kdebase-nsplugins')
+ replaces=('kdebase-nsplugins')
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdebase-lib() {
+ pkgdesc='KDE libraries for the basic desktop applications'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/lib
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+ pkgdesc='Display the contents of folders (User´s home folder as default)'
+ depends=('kdebase-workspace' 'kdebase-lib')
+ cd $srcdir/build/plasma
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdebase/kdebase.install b/staging/kdebase/kdebase.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdebindings-kimono/PKGBUILD b/staging/kdebindings-kimono/PKGBUILD
new file mode 100644
index 000000000..64ab10908
--- /dev/null
+++ b/staging/kdebindings-kimono/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144139 2011-12-04 09:13:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-kimono
+pkgver=4.7.4
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qyoto' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/stable/${pkgver}/src/kimono-${pkgver}.tar.bz2")
+sha1sums=('8f260e09bffcf74bad18a5168016d0dad5db3656')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kimono-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-korundum/PKGBUILD b/staging/kdebindings-korundum/PKGBUILD
new file mode 100644
index 000000000..97fa12662
--- /dev/null
+++ b/staging/kdebindings-korundum/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144292 2011-12-04 09:44:31Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-korundum
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qtruby' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/korundum-${pkgver}.tar.bz2")
+sha1sums=('e220dc672461aa1369e58de325f980139fcd52f6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../korundum-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-kross/PKGBUILD b/staging/kdebindings-kross/PKGBUILD
new file mode 100644
index 000000000..a187bb81c
--- /dev/null
+++ b/staging/kdebindings-kross/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 144141 2011-12-04 09:14:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdebindings-kross
+pkgname=('kdebindings-kross-python'
+# 'kdebindings-kross-ruby'
+ 'kdebindings-kross-java')
+pkgver=4.7.4
+pkgrel=1
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'openjdk6')
+source=("http://download.kde.org/stable/${pkgver}/src/kross-interpreters-${pkgver}.tar.bz2")
+sha1sums=('416e9f25ff2050d9c5518254a7cc7d4cad22b648')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kross-interpreters-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_ruby=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdebindings-kross-python() {
+ pkgdesc="Python2 language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'python2')
+
+ cd "${srcdir}"/build/python
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-java() {
+ pkgdesc="Java language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'openjdk6')
+
+ cd "${srcdir}"/build/java
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-ruby() {
+ pkgdesc="Ruby language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'ruby')
+
+ cd "${srcdir}"/build/ruby
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-perlkde/PKGBUILD b/staging/kdebindings-perlkde/PKGBUILD
new file mode 100644
index 000000000..927e6107d
--- /dev/null
+++ b/staging/kdebindings-perlkde/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144142 2011-12-04 09:14:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlkde
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Perl bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-perlqt' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs'
+ 'kdegraphics-okular' 'kdesdk-kate')
+source=("http://download.kde.org/stable/${pkgver}/src/perlkde-${pkgver}.tar.bz2")
+sha1sums=('7116668ecd5baf55734a8349a2f0b04d0e701898')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlkde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-perlqt/PKGBUILD b/staging/kdebindings-perlqt/PKGBUILD
new file mode 100644
index 000000000..c13a644d0
--- /dev/null
+++ b/staging/kdebindings-perlqt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144122 2011-12-04 09:06:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlqt
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Perl bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+source=("http://download.kde.org/stable/${pkgver}/src/perlqt-${pkgver}.tar.bz2")
+sha1sums=('b4b3d8ce2b08af62202f5ae79fe57bde60dd9a85')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-python/PKGBUILD b/staging/kdebindings-python/PKGBUILD
new file mode 100644
index 000000000..938795b00
--- /dev/null
+++ b/staging/kdebindings-python/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144123 2011-12-04 09:06:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-python
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE bindings for Python"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/pykde4-${pkgver}.tar.bz2")
+sha1sums=('cac4b94098dba73d58fb4f7d73d7c65c306517d1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../pykde4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/staging/kdebindings-qtruby/PKGBUILD b/staging/kdebindings-qtruby/PKGBUILD
new file mode 100644
index 000000000..b2d2acce2
--- /dev/null
+++ b/staging/kdebindings-qtruby/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144125 2011-12-04 09:06:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qtruby
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Qt bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'ruby')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/stable/${pkgver}/src/qtruby-${pkgver}.tar.bz2")
+sha1sums=('e49e38a59238cf6f5ec9c2d9afc06f3330369fc7')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qtruby-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-qyoto/PKGBUILD b/staging/kdebindings-qyoto/PKGBUILD
new file mode 100644
index 000000000..2491e41e5
--- /dev/null
+++ b/staging/kdebindings-qyoto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144124 2011-12-04 09:06:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qyoto
+pkgver=4.7.4
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'mono')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/stable/${pkgver}/src/qyoto-${pkgver}.tar.bz2")
+sha1sums=('8f2412a8bbb343bdb1e14c0fc6ef3681afe9d601')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qyoto-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-smokegen/PKGBUILD b/staging/kdebindings-smokegen/PKGBUILD
new file mode 100644
index 000000000..c853bee64
--- /dev/null
+++ b/staging/kdebindings-smokegen/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144217 2011-12-04 09:37:41Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokegen
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A general purpose C++ parser with a plugin infrastructure"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/stable/${pkgver}/src/smokegen-${pkgver}.tar.bz2"
+ 'fix-crash.patch')
+sha1sums=('068d37e2404311b9caa23d78ee7fa262188a8622'
+ 'b209b2b7017622fea3406c5a9636e2334566af01')
+
+build() {
+ cd "${srcdir}"/smokegen-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-crash.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokegen-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-smokegen/fix-crash.patch b/staging/kdebindings-smokegen/fix-crash.patch
new file mode 100644
index 000000000..5864da3f3
--- /dev/null
+++ b/staging/kdebindings-smokegen/fix-crash.patch
@@ -0,0 +1,13 @@
+diff -up smokegen-4.7.0/parser/type_compiler.cpp.orig smokegen-4.7.0/parser/type_compiler.cpp
+diff -up smokegen-4.7.0/type_compiler.cpp.orig smokegen-4.7.0/type_compiler.cpp
+--- smokegen-4.7.0/type_compiler.cpp.orig 2011-08-02 14:34:08.000000000 +0200
++++ smokegen-4.7.0/type_compiler.cpp 2011-08-02 14:34:34.000000000 +0200
+@@ -191,6 +191,8 @@ void TypeCompiler::visitParameterDeclara
+
+ void TypeCompiler::visitPtrOperator(PtrOperatorAST* node)
+ {
++ if ( ! m_session->token_stream ) return;
++ if ( ! token_text(m_session->token_stream->kind(node->op)) ) return;
+ if (token_text(m_session->token_stream->kind(node->op))[0] == '*') {
+ QPair<bool, bool> cv = m_visitor->parseCv(node->cv);
+ pointerDepth.append(cv.first);
diff --git a/staging/kdebindings-smokekde/PKGBUILD b/staging/kdebindings-smokekde/PKGBUILD
new file mode 100644
index 000000000..a409f3409
--- /dev/null
+++ b/staging/kdebindings-smokekde/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144121 2011-12-04 09:06:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokekde
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Language independent library for KDE bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/stable/${pkgver}/src/smokekde-${pkgver}.tar.bz2")
+sha1sums=('c3e2bd07158c4bc6a19123d5ae8e81529b52e07b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokekde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdebindings-smokeqt/PKGBUILD b/staging/kdebindings-smokeqt/PKGBUILD
new file mode 100644
index 000000000..9640ce0c2
--- /dev/null
+++ b/staging/kdebindings-smokeqt/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144218 2011-12-04 09:37:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokeqt
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Language independent library for Qt bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'kdebindings-smokegen')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/stable/${pkgver}/src/smokeqt-${pkgver}.tar.bz2")
+sha1sums=('2b1033732d166946db3096ddbf6eb9a6ddb61877')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokeqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Qwt5=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-blinken/PKGBUILD b/staging/kdeedu-blinken/PKGBUILD
new file mode 100644
index 000000000..0ddaf0cc8
--- /dev/null
+++ b/staging/kdeedu-blinken/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144143 2011-12-04 09:14:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-blinken
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Memory Enhancement Game"
+url="http://kde.org/applications/education/blinken/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/blinken-${pkgver}.tar.bz2")
+sha1sums=('edeb024db23da00cf896bc41c6e3efa371d9867d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../blinken-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-blinken/kdeedu-blinken.install b/staging/kdeedu-blinken/kdeedu-blinken.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-blinken/kdeedu-blinken.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-cantor/PKGBUILD b/staging/kdeedu-cantor/PKGBUILD
new file mode 100644
index 000000000..b2ee91fbd
--- /dev/null
+++ b/staging/kdeedu-cantor/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144144 2011-12-04 09:14:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-cantor
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE Frontend to Mathematical Software"
+url="http://kde.org/applications/education/cantor/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libspectre')
+makedepends=('cmake' 'automoc4' 'r')
+optdepends=('maxima: Maxima backend'
+ 'octave: Octave backend'
+ 'r: R backend')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/cantor-${pkgver}.tar.bz2")
+sha1sums=('da39832093c1ea6eb28c6b5b4f67cb24473d8fb5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../cantor-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-cantor/kdeedu-cantor.install b/staging/kdeedu-cantor/kdeedu-cantor.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-cantor/kdeedu-cantor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kalgebra/PKGBUILD b/staging/kdeedu-kalgebra/PKGBUILD
new file mode 100644
index 000000000..01499438f
--- /dev/null
+++ b/staging/kdeedu-kalgebra/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144145 2011-12-04 09:14:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalgebra
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Graph Calculator"
+url="http://kde.org/applications/education/kalgebra/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kalgebra-${pkgver}.tar.bz2")
+sha1sums=('8ef005a50316d7d86b7bc1ed306380d69ce946a0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalgebra-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kalgebra/kdeedu-kalgebra.install b/staging/kdeedu-kalgebra/kdeedu-kalgebra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-kalgebra/kdeedu-kalgebra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kalzium/PKGBUILD b/staging/kdeedu-kalzium/PKGBUILD
new file mode 100644
index 000000000..24e1dc140
--- /dev/null
+++ b/staging/kdeedu-kalzium/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144146 2011-12-04 09:14:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalzium
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Periodic Table of Elements"
+url="http://kde.org/applications/education/kalzium/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs' 'avogadro' 'ocaml')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kalzium-${pkgver}.tar.bz2")
+sha1sums=('6cb65b2c524f529976e4c63a75a7637a181d08d9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalzium-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kalzium/kdeedu-kalzium.install b/staging/kdeedu-kalzium/kdeedu-kalzium.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kalzium/kdeedu-kalzium.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kanagram/PKGBUILD b/staging/kdeedu-kanagram/PKGBUILD
new file mode 100644
index 000000000..57d9f3d11
--- /dev/null
+++ b/staging/kdeedu-kanagram/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144147 2011-12-04 09:14:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kanagram
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Letter Order Game"
+url="http://kde.org/applications/education/kanagram/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kanagram-${pkgver}.tar.bz2")
+sha1sums=('15fda47cd6685a7e19fb4744ec930b9a4dcfbe05')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kanagram-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kanagram/kdeedu-kanagram.install b/staging/kdeedu-kanagram/kdeedu-kanagram.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kanagram/kdeedu-kanagram.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kbruch/PKGBUILD b/staging/kdeedu-kbruch/PKGBUILD
new file mode 100644
index 000000000..8b7afd5e5
--- /dev/null
+++ b/staging/kdeedu-kbruch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144148 2011-12-04 09:14:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kbruch
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Exercise Fractions"
+url="http://kde.org/applications/education/kbruch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kbruch-${pkgver}.tar.bz2")
+sha1sums=('36165292cb9935343d1aa2572935a130b6619f00')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kbruch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kbruch/kdeedu-kbruch.install b/staging/kdeedu-kbruch/kdeedu-kbruch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kbruch/kdeedu-kbruch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kgeography/PKGBUILD b/staging/kdeedu-kgeography/PKGBUILD
new file mode 100644
index 000000000..73ea071ad
--- /dev/null
+++ b/staging/kdeedu-kgeography/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144149 2011-12-04 09:14:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kgeography
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Geography Trainer"
+url="http://kde.org/applications/education/kgeography/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kgeography-${pkgver}.tar.bz2")
+sha1sums=('4a90c59928a4947c5cd970ed72e5e9cea370d8e6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgeography-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kgeography/kdeedu-kgeography.install b/staging/kdeedu-kgeography/kdeedu-kgeography.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kgeography/kdeedu-kgeography.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-khangman/PKGBUILD b/staging/kdeedu-khangman/PKGBUILD
new file mode 100644
index 000000000..a2857b29a
--- /dev/null
+++ b/staging/kdeedu-khangman/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144150 2011-12-04 09:14:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-khangman
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Hangman Game"
+url="http://kde.org/applications/education/khangman/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/khangman-${pkgver}.tar.bz2")
+sha1sums=('c5999ba4218cb0331b906fbcaafa7f497762221d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../khangman-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-khangman/kdeedu-khangman.install b/staging/kdeedu-khangman/kdeedu-khangman.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-khangman/kdeedu-khangman.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kig/PKGBUILD b/staging/kdeedu-kig/PKGBUILD
new file mode 100644
index 000000000..b600e7b62
--- /dev/null
+++ b/staging/kdeedu-kig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144152 2011-12-04 09:18:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kig
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Interactive Geometry"
+url="http://kde.org/applications/education/kig/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kig-${pkgver}.tar.bz2")
+sha1sums=('4c76ef89e6210f2f25e719176db4d8a2b31b6222')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kig-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/bin/pykig.py
+}
diff --git a/staging/kdeedu-kig/kdeedu-kig.install b/staging/kdeedu-kig/kdeedu-kig.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-kig/kdeedu-kig.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kiten/PKGBUILD b/staging/kdeedu-kiten/PKGBUILD
new file mode 100644
index 000000000..3c1406cf1
--- /dev/null
+++ b/staging/kdeedu-kiten/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144153 2011-12-04 09:18:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kiten
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Japanese Reference/Study Tool"
+url="http://kde.org/applications/education/kiten/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kiten-${pkgver}.tar.bz2")
+sha1sums=('8ec806306a7b08cb8ca5e567a48417cd2268e501')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kiten-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kiten/kdeedu-kiten.install b/staging/kdeedu-kiten/kdeedu-kiten.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kiten/kdeedu-kiten.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-klettres/PKGBUILD b/staging/kdeedu-klettres/PKGBUILD
new file mode 100644
index 000000000..5909a5498
--- /dev/null
+++ b/staging/kdeedu-klettres/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144154 2011-12-04 09:18:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-klettres
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Learn The Alphabet"
+url="http://kde.org/applications/education/klettres/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/klettres-${pkgver}.tar.bz2")
+sha1sums=('d2450f7aa24fc0118dd20d2e11d61fca68ba5461')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../klettres-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-klettres/kdeedu-klettres.install b/staging/kdeedu-klettres/kdeedu-klettres.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-klettres/kdeedu-klettres.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kmplot/PKGBUILD b/staging/kdeedu-kmplot/PKGBUILD
new file mode 100644
index 000000000..277416ae8
--- /dev/null
+++ b/staging/kdeedu-kmplot/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144155 2011-12-04 09:18:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kmplot
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Mathematical Function Plotter"
+url="http://kde.org/applications/education/kmplot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kmplot-${pkgver}.tar.bz2")
+sha1sums=('b0b2b748e4ea0f670ffe5c9be01a6997a061a75c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmplot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kmplot/kdeedu-kmplot.install b/staging/kdeedu-kmplot/kdeedu-kmplot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-kmplot/kdeedu-kmplot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kstars/PKGBUILD b/staging/kdeedu-kstars/PKGBUILD
new file mode 100644
index 000000000..91f063fc1
--- /dev/null
+++ b/staging/kdeedu-kstars/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144156 2011-12-04 09:18:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kstars
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Desktop Planetarium"
+url="http://kde.org/applications/education/kstars/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'eigen' 'cfitsio' 'libindi')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kstars-${pkgver}.tar.bz2")
+sha1sums=('d4e489093b440e4246c817821187193e4e53be66')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kstars-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xplanet=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kstars/kdeedu-kstars.install b/staging/kdeedu-kstars/kdeedu-kstars.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kstars/kdeedu-kstars.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-ktouch/PKGBUILD b/staging/kdeedu-ktouch/PKGBUILD
new file mode 100644
index 000000000..6c962ca14
--- /dev/null
+++ b/staging/kdeedu-ktouch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144157 2011-12-04 09:18:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-ktouch
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Touch Typing Tutor"
+url="http://kde.org/applications/education/ktouch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/ktouch-${pkgver}.tar.bz2")
+sha1sums=('92d7e446216bdfdf68e13c9f0ba39d44e02b29c9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktouch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-ktouch/kdeedu-ktouch.install b/staging/kdeedu-ktouch/kdeedu-ktouch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-ktouch/kdeedu-ktouch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kturtle/PKGBUILD b/staging/kdeedu-kturtle/PKGBUILD
new file mode 100644
index 000000000..e40ff0fee
--- /dev/null
+++ b/staging/kdeedu-kturtle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144158 2011-12-04 09:18:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kturtle
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Educational Programming Environment"
+url="http://kde.org/applications/education/kturtle/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kturtle-${pkgver}.tar.bz2")
+sha1sums=('b3baa81277417f352d4a0bdca61df75515f30c0d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kturtle-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kturtle/kdeedu-kturtle.install b/staging/kdeedu-kturtle/kdeedu-kturtle.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-kturtle/kdeedu-kturtle.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-kwordquiz/PKGBUILD b/staging/kdeedu-kwordquiz/PKGBUILD
new file mode 100644
index 000000000..e1c62e334
--- /dev/null
+++ b/staging/kdeedu-kwordquiz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144159 2011-12-04 09:18:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kwordquiz
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Flash Card Trainer"
+url="http://kde.org/applications/education/kwordquiz/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kwordquiz-${pkgver}.tar.bz2")
+sha1sums=('c726b0856234ce78fab0ecd61072cdb035e66513')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwordquiz-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-kwordquiz/kdeedu-kwordquiz.install b/staging/kdeedu-kwordquiz/kdeedu-kwordquiz.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-kwordquiz/kdeedu-kwordquiz.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-marble/PKGBUILD b/staging/kdeedu-marble/PKGBUILD
new file mode 100644
index 000000000..934a14298
--- /dev/null
+++ b/staging/kdeedu-marble/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144129 2011-12-04 09:06:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-marble
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Desktop Globe"
+url="http://kde.org/applications/education/marble/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'gpsd')
+optdepends=('gpsd: gps support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/marble-${pkgver}.tar.bz2")
+sha1sums=('e560c355a8d91bbb61b9f2e6c7cb11bd79eba1ab')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../marble-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-marble/kdeedu-marble.install b/staging/kdeedu-marble/kdeedu-marble.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-marble/kdeedu-marble.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-parley/PKGBUILD b/staging/kdeedu-parley/PKGBUILD
new file mode 100644
index 000000000..0a2166ea0
--- /dev/null
+++ b/staging/kdeedu-parley/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144160 2011-12-04 09:18:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-parley
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Vocabulary Trainer"
+url="http://kde.org/applications/education/parley/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/parley-${pkgver}.tar.bz2")
+sha1sums=('e61d0192dce0e1427ee41ff96f1bcb73c77cbcef')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../parley-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-parley/kdeedu-parley.install b/staging/kdeedu-parley/kdeedu-parley.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdeedu-parley/kdeedu-parley.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeedu-rocs/PKGBUILD b/staging/kdeedu-rocs/PKGBUILD
new file mode 100644
index 000000000..fa293bb09
--- /dev/null
+++ b/staging/kdeedu-rocs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144161 2011-12-04 09:18:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-rocs
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Rocs Graph Theory"
+url="http://kde.org/applications/education/rocs/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/rocs-${pkgver}.tar.bz2")
+sha1sums=('f808118fcd5df59a9a808747be940a88b30cf6f3')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../rocs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-step/PKGBUILD b/staging/kdeedu-step/PKGBUILD
new file mode 100644
index 000000000..5308ebf03
--- /dev/null
+++ b/staging/kdeedu-step/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144162 2011-12-04 09:18:31Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-step
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Interactive Physical Simulator"
+url="http://kde.org/applications/education/step/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libqalculate' 'gsl' 'eigen')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/step-${pkgver}.tar.bz2")
+sha1sums=('30dba80e6f34124fd5a8ebf6688e261ab109d0d4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../step-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdeedu-step/kdeedu-step.install b/staging/kdeedu-step/kdeedu-step.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu-step/kdeedu-step.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/PKGBUILD b/staging/kdegames/PKGBUILD
new file mode 100644
index 000000000..7e7a07026
--- /dev/null
+++ b/staging/kdegames/PKGBUILD
@@ -0,0 +1,515 @@
+# $Id: PKGBUILD 144163 2011-12-04 09:18:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+ 'kdegames-bovo'
+ 'kdegames-granatier'
+ 'kdegames-kajongg'
+ 'kdegames-kapman'
+ 'kdegames-katomic'
+ 'kdegames-kbattleship'
+ 'kdegames-kblackbox'
+ 'kdegames-kblocks'
+ 'kdegames-kbounce'
+ 'kdegames-kbreakout'
+ 'kdegames-kdiamond'
+ 'kdegames-kfourinline'
+ 'kdegames-kgoldrunner'
+ 'kdegames-kigo'
+ 'kdegames-killbots'
+ 'kdegames-kiriki'
+ 'kdegames-kjumpingcube'
+ 'kdegames-klines'
+ 'kdegames-klickety'
+ 'kdegames-kmahjongg'
+ 'kdegames-kmines'
+ 'kdegames-knetwalk'
+ 'kdegames-kolf'
+ 'kdegames-kollision'
+ 'kdegames-konquest'
+ 'kdegames-kpatience'
+ 'kdegames-kreversi'
+ 'kdegames-kshisen'
+ 'kdegames-ksirk'
+ 'kdegames-kspaceduel'
+ 'kdegames-ksquares'
+ 'kdegames-ksudoku'
+ 'kdegames-ktron'
+ 'kdegames-ktuberling'
+ 'kdegames-kubrick'
+ 'kdegames-libkdegames'
+ 'kdegames-libkmahjongg'
+ 'kdegames-lskat'
+ 'kdegames-palapeli')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ggz-client-libs' 'twisted'
+ 'kdebindings-python' 'openal')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('a1f97524f868ab9dae0439abcbf4b41f68715598')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdegames-bomber() {
+ pkgdesc='Arcade Bombing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bomber/"
+ install='kdegames.install'
+ cd $srcdir/build/bomber
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bomber
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+ pkgdesc='Five-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bovo/"
+ install='kdegames.install'
+ cd $srcdir/build/bovo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bovo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+ pkgdesc='Granatier'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/granatier/"
+ install='kdegames.install'
+ cd $srcdir/build/granatier
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/granatier
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+ pkgdesc='The ancient Chinese board game for 4 players'
+ depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted')
+ install='kdegames.install'
+ cd $srcdir/build/kajongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kajongg
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+ pkgdesc='Eat pills escaping ghosts'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kapman/"
+ install='kdegames.install'
+ cd $srcdir/build/kapman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+ pkgdesc='Sokoban-like Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/katomic/"
+ install='kdegames.install'
+ cd $srcdir/build/katomic
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/katomic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+ pkgdesc='Battleship Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kbattleship/"
+ install='kdegames-kbattleship.install'
+ cd $srcdir/build/kbattleship
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbattleship
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kbattleship/src/module.dsc \
+ $pkgdir/usr/share/ggz/kbattleship.dsc
+}
+
+package_kdegames-kblackbox() {
+ pkgdesc='Blackbox Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblackbox/"
+ install='kdegames.install'
+ cd $srcdir/build/kblackbox
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblackbox
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+ pkgdesc='Falling Blocks Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblocks/"
+ install='kdegames.install'
+ cd $srcdir/build/kblocks
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblocks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+ pkgdesc='Ball Bouncing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbounce/"
+ install='kdegames.install'
+ cd $srcdir/build/kbounce
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbounce
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+ pkgdesc='Breakout-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbreakout/"
+ install='kdegames.install'
+ cd $srcdir/build/kbreakout
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbreakout
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+ pkgdesc='Three-in-a-row game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kdiamond/"
+ install='kdegames.install'
+ cd $srcdir/build/kdiamond
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdiamond
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+ pkgdesc='Four-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kfourinline/"
+ install='kdegames-kfourinline.install'
+ cd $srcdir/build/kfourinline
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfourinline
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+ pkgdesc='A game of action and puzzle-solving'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/kgoldrunner/"
+ install='kdegames.install'
+ cd $srcdir/build/kgoldrunner
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgoldrunner
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+ pkgdesc='Go Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+ url="http://kde.org/applications/games/kigo/"
+ install='kdegames-kigo.install'
+ cd $srcdir/build/kigo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kigo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+ pkgdesc='Killbots'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/killbots/"
+ install='kdegames.install'
+ cd $srcdir/build/killbots
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/killbots
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+ pkgdesc='Yahtzee-like Dice Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kiriki/"
+ install='kdegames.install'
+ cd $srcdir/build/kiriki
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiriki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+ pkgdesc='Territory Capture Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kjumpingcube/"
+ install='kdegames.install'
+ cd $srcdir/build/kjumpingcube
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kjumpingcube
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+ pkgdesc='Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ replaces=('kdegames-ksame')
+ conflicts=('kdegames-ksame')
+ url="http://kde.org/applications/games/ksame/"
+ install='kdegames.install'
+ cd $srcdir/build/klickety
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klickety
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+ pkgdesc='Tactical Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/klines/"
+ install='kdegames.install'
+ cd $srcdir/build/klines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+ pkgdesc='Mahjongg Solitaire'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kmahjongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kmahjongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+ pkgdesc='Minesweeper-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kmines/"
+ install='kdegames.install'
+ cd $srcdir/build/kmines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+ pkgdesc='Network Construction Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/knetwalk/"
+ install='kdegames.install'
+ cd $srcdir/build/knetwalk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/knetwalk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+ pkgdesc='Miniature Golf'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kolf/"
+ install='kdegames-kolf.install'
+ cd $srcdir/build/kolf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+ pkgdesc='A simple ball dodging game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kollision/"
+ install='kdegames.install'
+ cd $srcdir/build/kollision
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kollision
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+ pkgdesc='Galactic Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/konquest/"
+ install='kdegames.install'
+ cd $srcdir/build/konquest
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/konquest
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+ pkgdesc='Patience Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kpatience/"
+ install='kdegames.install'
+ replaces=('kdegames-kpat')
+ cd $srcdir/build/kpat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kpat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+ pkgdesc='Reversi Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kreversi/"
+ install='kdegames-kreversi.install'
+ cd $srcdir/build/kreversi
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kreversi
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kreversi/module.dsc \
+ $pkgdir/usr/share/ggz/kreversi.dsc
+}
+
+package_kdegames-kshisen() {
+ pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kshisen/"
+ install='kdegames.install'
+ cd $srcdir/build/kshisen
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kshisen
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+ pkgdesc='World Domination Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksirk/"
+ install='kdegames.install'
+ cd $srcdir/build/ksirk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksirk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+ pkgdesc='Space Arcade Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kspaceduel/"
+ install='kdegames-kspaceduel.install'
+ cd $srcdir/build/kspaceduel
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kspaceduel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+ pkgdesc='Connect the dots to create squares'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/ksquares/"
+ install='kdegames-ksquares.install'
+ cd $srcdir/build/ksquares
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksquares
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/ksquares/src/module.dsc \
+ $pkgdir/usr/share/ggz/ksquares.dsc
+}
+
+package_kdegames-ksudoku() {
+ pkgdesc='KSudoku, Sudoku game & more for KDE'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksudoku/"
+ install='kdegames.install'
+ cd $srcdir/build/ksudoku
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksudoku
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+ pkgdesc='Tron-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktron/"
+ install='kdegames.install'
+ cd $srcdir/build/ktron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+ pkgdesc='Picture Game for Children'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktuberling/"
+ install='kdegames-ktuberling.install'
+ cd $srcdir/build/ktuberling
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktuberling
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+ pkgdesc='A 3-D game based on Rubik´s Cube'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kubrick/"
+ install='kdegames.install'
+ cd $srcdir/build/kubrick
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kubrick
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+ pkgdesc='KDE game library'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkdegames
+ make DESTDIR=$pkgdir install
+ for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+ install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+ done
+}
+
+package_kdegames-libkmahjongg() {
+ pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+ pkgdesc='Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/lskat/"
+ install='kdegames-lskat.install'
+ cd $srcdir/build/lskat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lskat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+ pkgdesc='Jigsaw puzzle game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/palapeli/"
+ install='kdegames-palapeli.install'
+ cd $srcdir/build/palapeli
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/palapeli
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdegames/kdegames-kbattleship.install b/staging/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ac4516ed0
--- /dev/null
+++ b/staging/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,24 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kbattleship.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kbattleship.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
diff --git a/staging/kdegames/kdegames-kfourinline.install b/staging/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-kigo.install b/staging/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-kolf.install b/staging/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-kreversi.install b/staging/kdegames/kdegames-kreversi.install
new file mode 100644
index 000000000..4623e6e49
--- /dev/null
+++ b/staging/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/staging/kdegames/kdegames-kspaceduel.install b/staging/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-ksquares.install b/staging/kdegames/kdegames-ksquares.install
new file mode 100644
index 000000000..5a619897d
--- /dev/null
+++ b/staging/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/staging/kdegames/kdegames-ktuberling.install b/staging/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-lskat.install b/staging/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-palapeli.install b/staging/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/staging/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames.install b/staging/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdegraphics-gwenview/PKGBUILD b/staging/kdegraphics-gwenview/PKGBUILD
new file mode 100644
index 000000000..c65f8bd4f
--- /dev/null
+++ b/staging/kdegraphics-gwenview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144164 2011-12-04 09:18:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-gwenview
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A fast and easy to use image viewer for KDE"
+url="http://kde.org/applications/graphics/gwenview/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-lib' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins: extra plugins to share photos')
+install=$pkgname.install
+source=("http://download.kde.org/stable/${pkgver}/src/gwenview-${pkgver}.tar.bz2")
+sha1sums=('598714d18cf7adab8afd4f906070f0915e1cdc95')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../gwenview-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-gwenview/kdegraphics-gwenview.install b/staging/kdegraphics-gwenview/kdegraphics-gwenview.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-gwenview/kdegraphics-gwenview.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-kamera/PKGBUILD b/staging/kdegraphics-kamera/PKGBUILD
new file mode 100644
index 000000000..132ffe373
--- /dev/null
+++ b/staging/kdegraphics-kamera/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 144165 2011-12-04 09:18:41Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kamera
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Configure Kamera"
+url="http://kde.org/applications/graphics/kamera/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'gphoto2')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/kamera-${pkgver}.tar.bz2")
+sha1sums=('098c71d7588d5163656cb07a476efbfc6755900a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kamera-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-kcolorchooser/PKGBUILD b/staging/kdegraphics-kcolorchooser/PKGBUILD
new file mode 100644
index 000000000..345fd9112
--- /dev/null
+++ b/staging/kdegraphics-kcolorchooser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144166 2011-12-04 09:18:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kcolorchooser
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Color Chooser"
+url="http://kde.org/applications/graphics/kcolorchooser/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kcolorchooser-${pkgver}.tar.bz2")
+sha1sums=('bbfda234e8aec109c63226499fc72355b1c051ca')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcolorchooser-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install b/staging/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-kgamma/PKGBUILD b/staging/kdegraphics-kgamma/PKGBUILD
new file mode 100644
index 000000000..bfee18e39
--- /dev/null
+++ b/staging/kdegraphics-kgamma/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 144167 2011-12-04 09:18:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kgamma
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+url="http://kde.org/applications/graphics/kgamma/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+# note on libxxf86vm:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxxf86vm
+depends=('kdebase-runtime' 'libxxf86vm')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/kgamma-${pkgver}.tar.bz2")
+sha1sums=('cd528839b6a9be997ed8d4a2fc87a8b5b8e8de91')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgamma-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-kolourpaint/PKGBUILD b/staging/kdegraphics-kolourpaint/PKGBUILD
new file mode 100644
index 000000000..ca2c0adc6
--- /dev/null
+++ b/staging/kdegraphics-kolourpaint/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144168 2011-12-04 09:18:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kolourpaint
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Paint Program"
+url="http://kde.org/applications/graphics/kolourpaint/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kolourpaint-${pkgver}.tar.bz2")
+sha1sums=('31e23ab6735291ec86ebd83e2eee7afa191a4a59')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kolourpaint-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install b/staging/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-kruler/PKGBUILD b/staging/kdegraphics-kruler/PKGBUILD
new file mode 100644
index 000000000..e45f98738
--- /dev/null
+++ b/staging/kdegraphics-kruler/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144169 2011-12-04 09:18:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kruler
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Screen Ruler"
+url="http://kde.org/applications/graphics/kruler/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/kruler-${pkgver}.tar.bz2")
+sha1sums=('a854213e5342e382d3b9c4a29d1aada654378d0f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kruler-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-kruler/kdegraphics-kruler.install b/staging/kdegraphics-kruler/kdegraphics-kruler.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-kruler/kdegraphics-kruler.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-ksaneplugin/PKGBUILD b/staging/kdegraphics-ksaneplugin/PKGBUILD
new file mode 100644
index 000000000..796109c0d
--- /dev/null
+++ b/staging/kdegraphics-ksaneplugin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144170 2011-12-04 09:18:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksaneplugin
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A scan plugin that implements the scanning"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libksane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/ksaneplugin-${pkgver}.tar.bz2")
+sha1sums=('15f7ca6fbabb757898cc0f18685f5e204e6b3f56')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksaneplugin-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-ksnapshot/PKGBUILD b/staging/kdegraphics-ksnapshot/PKGBUILD
new file mode 100644
index 000000000..bc728d44d
--- /dev/null
+++ b/staging/kdegraphics-ksnapshot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144171 2011-12-04 09:18:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksnapshot
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Screen Capture Program"
+url="http://kde.org/applications/graphics/ksnapshot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdelibs' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/ksnapshot-${pkgver}.tar.bz2")
+sha1sums=('bc40ae740e3a684e47ba1b5af01aeb427bb4336e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksnapshot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install b/staging/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-mobipocket/PKGBUILD b/staging/kdegraphics-mobipocket/PKGBUILD
new file mode 100644
index 000000000..cf984f21e
--- /dev/null
+++ b/staging/kdegraphics-mobipocket/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144172 2011-12-04 09:19:01Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-mobipocket
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A collection of plugins to handle mobipocket files"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/mobipocket-${pkgver}.tar.bz2")
+sha1sums=('db278a2ebe4680a94c4963a53c1501cf1f1d9d2a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../mobipocket-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-okular/PKGBUILD b/staging/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..0afa6af0e
--- /dev/null
+++ b/staging/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144219 2011-12-04 09:37:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.7.4
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.bz2")
+sha1sums=('5f02bbfeff81b55e0fd5d9e973cb927909faccb1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-okular/kdegraphics-okular.install b/staging/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-okular/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-okular/staging-i686/PKGBUILD b/staging/kdegraphics-okular/staging-i686/PKGBUILD
new file mode 100644
index 000000000..8b08d240f
--- /dev/null
+++ b/staging/kdegraphics-okular/staging-i686/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144119 2011-12-04 09:06:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.7.4
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.bz2")
+sha1sums=('5f02bbfeff81b55e0fd5d9e973cb927909faccb1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-okular/staging-i686/kdegraphics-okular.install b/staging/kdegraphics-okular/staging-i686/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-okular/staging-i686/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics-strigi-analyzer/PKGBUILD b/staging/kdegraphics-strigi-analyzer/PKGBUILD
new file mode 100644
index 000000000..df96289d6
--- /dev/null
+++ b/staging/kdegraphics-strigi-analyzer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144173 2011-12-04 09:19:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-strigi-analyzer
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Strigi analyzers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('39b3b0312663a3ef7a68c972b39bf12fb4cabe8b')
+
+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/staging/kdegraphics-svgpart/PKGBUILD b/staging/kdegraphics-svgpart/PKGBUILD
new file mode 100644
index 000000000..615b6b0fb
--- /dev/null
+++ b/staging/kdegraphics-svgpart/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144174 2011-12-04 09:19:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-svgpart
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A KPart for viewving SVGs"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/svgpart-${pkgver}.tar.bz2")
+sha1sums=('38dcb3c468ca359e7b0a0027523b8156de6a06a1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../svgpart-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-thumbnailers/PKGBUILD b/staging/kdegraphics-thumbnailers/PKGBUILD
new file mode 100644
index 000000000..42dcd5faa
--- /dev/null
+++ b/staging/kdegraphics-thumbnailers/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144175 2011-12-04 09:19:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-thumbnailers
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Thumbnailers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('0e1636da30c78ad2c186bcd30c0566406b920126')
+
+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/staging/kdelibs/PKGBUILD b/staging/kdelibs/PKGBUILD
new file mode 100644
index 000000000..9fa99ee19
--- /dev/null
+++ b/staging/kdelibs/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 144213 2011-12-04 09:37:30Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5'
+ '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' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install='kdelibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch' 'archlinux-menu.patch')
+sha1sums=('78b25e93a8c70ccc1e0f117cce960fe4e1deb8d8'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menus
+ patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+ # add Archlinux menu entry
+ patch -p1 -i "${srcdir}"/archlinux-menu.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/staging/kdelibs/archlinux-menu.patch b/staging/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/staging/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/staging/kdelibs/kde-applications-menu.patch b/staging/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/staging/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/staging/kdelibs/kdelibs.install b/staging/kdelibs/kdelibs.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/staging/kdelibs/kdelibs.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdemultimedia/PKGBUILD b/staging/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..6fc645930
--- /dev/null
+++ b/staging/kdemultimedia/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 144176 2011-12-04 09:19:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdemultimedia
+pkgname=('kdemultimedia-dragonplayer'
+ 'kdemultimedia-ffmpegthumbs'
+ 'kdemultimedia-juk'
+ 'kdemultimedia-kioslave'
+ 'kdemultimedia-kmix'
+ 'kdemultimedia-kscd'
+ 'kdemultimedia-mplayerthumbs')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdelibs' 'tunepimp'
+ 'ffmpeg' 'mplayer' 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'mplayerthumbs.config')
+sha1sums=('e0001afac38e35e3ab7b919d79f74cd57e3c18dd'
+ '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/staging/kdemultimedia/kdemultimedia.install b/staging/kdemultimedia/kdemultimedia.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdemultimedia/mplayerthumbs.config b/staging/kdemultimedia/mplayerthumbs.config
new file mode 100644
index 000000000..761a17953
--- /dev/null
+++ b/staging/kdemultimedia/mplayerthumbs.config
@@ -0,0 +1,2 @@
+[MPlayerThumbsCfg]
+backend=0
diff --git a/staging/kdenetwork/PKGBUILD b/staging/kdenetwork/PKGBUILD
new file mode 100644
index 000000000..a07fa1800
--- /dev/null
+++ b/staging/kdenetwork/PKGBUILD
@@ -0,0 +1,111 @@
+# $Id: PKGBUILD 144177 2011-12-04 09:19:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-filesharing'
+ 'kdenetwork-kdnssd'
+ 'kdenetwork-kget'
+ 'kdenetwork-kopete'
+ 'kdenetwork-kppp'
+ 'kdenetwork-krdc'
+ 'kdenetwork-krfb')
+pkgver=4.7.4
+pkgrel=1
+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' 'libktorrent' 'libmms' 'mediastreamer')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('15d5bdcda0e05de6247b22b96c6ca4a98da8a278')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+ -DWITH_Xmms=OFF \
+ -DWITH_LibMeanwhile=OFF
+ make
+}
+
+package_kdenetwork-filesharing() {
+ pkgdesc='Konqueror properties dialog plugin to share a directory with the local network'
+ depends=('kdelibs' 'smbclient')
+ install='kdenetwork.install'
+ cd $srcdir/build/filesharing
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kdnssd() {
+ pkgdesc='Monitors the network for DNS-SD services'
+ depends=('kdelibs')
+ cd $srcdir/build/kdnssd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kget() {
+ pkgdesc='Download Manager'
+ depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms')
+ 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
+}
+
+package_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'v4l-utils' 'libgadu' 'mediastreamer')
+ 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/staging/kdenetwork/kdenetwork.install b/staging/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdepim-runtime/PKGBUILD b/staging/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..52a24909d
--- /dev/null
+++ b/staging/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144216 2011-12-04 09:37:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.7.4
+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/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('fb02f53673316aaafb65b7c4dd570f3be3b4e935')
+
+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/staging/kdepim-runtime/kdepim-runtime.install b/staging/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/staging/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/staging/kdepim/PKGBUILD b/staging/kdepim/PKGBUILD
new file mode 100644
index 000000000..52e26e307
--- /dev/null
+++ b/staging/kdepim/PKGBUILD
@@ -0,0 +1,252 @@
+# $Id: PKGBUILD 144178 2011-12-04 09:19:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim'
+ 'kdepim-wizards')
+pkgver=4.7.4
+pkgrel=1
+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')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('233f6c413eeedd4af7cf15106a2af7b8f29977bf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ 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 kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer templateparser plugins/messageviewer \
+ plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdepim-kresources')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/wizards
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdepim/kdepim.install b/staging/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdepimlibs/PKGBUILD b/staging/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..04ec4d14f
--- /dev/null
+++ b/staging/kdepimlibs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144214 2011-12-04 09:37:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap')
+install='kdepimlibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('a539e29557c0a30779e752b9349b3a0c000ffbba')
+
+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/staging/kdepimlibs/kdepimlibs.install b/staging/kdepimlibs/kdepimlibs.install
new file mode 100644
index 000000000..99262607c
--- /dev/null
+++ b/staging/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/staging/kdeplasma-addons/PKGBUILD b/staging/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..69c374746
--- /dev/null
+++ b/staging/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,603 @@
+# $Id: PKGBUILD 144179 2011-12-04 09:19:22Z 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.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble'
+ 'eigen' 'scim' 'qwt' 'boost' 'libkexiv2')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('2bbf77d77e809733e6a74ff5688e6ff5487bc8bf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeplasma-addons-applets-bball() {
+ pkgdesc='A bouncy ball for plasma'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/bball
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+ pkgdesc='Time displayed in binary format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/binary-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+ pkgdesc='Black Board'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/blackboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+ pkgdesc='Quick Access to the Bookmarks'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+ pkgdesc='A pretty bubble that monitors your system.'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bubblemon
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+ pkgdesc='Calculate simple sums'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/calculator
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+ pkgdesc='View, select, and copy characters from a font collection'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/charselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+ pkgdesc='View comic strips from the Internet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/comic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+ pkgdesc='Communicate using the Social Desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/community
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+ pkgdesc='Look up the meaning of words and their translation into different languages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/dict
+ make DESTDIR=$pkgdir install
+ # FIXME
+ # /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+ rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+ pkgdesc='XEyes clone'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/eyes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+ pkgdesc='Put the pieces in order'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/fifteenPuzzle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+ pkgdesc='Watch for changes in specified files'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fileWatcher
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+ pkgdesc='Display your favorite pictures'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/applets/frame
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+ pkgdesc='Time displayed in a less precise format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fuzzy-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-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/staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/staging/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/staging/kdeplasma-addons/kdeplasma-addons-applets.install b/staging/kdeplasma-addons/kdeplasma-addons-applets.install
new file mode 100644
index 000000000..c4ef46ba8
--- /dev/null
+++ b/staging/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/staging/kdesdk-kate/PKGBUILD b/staging/kdesdk-kate/PKGBUILD
new file mode 100644
index 000000000..9341b1b22
--- /dev/null
+++ b/staging/kdesdk-kate/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 144120 2011-12-04 09:06:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdesdk-kate
+pkgname=('kdebase-kwrite'
+ 'kdesdk-kate')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('kdelibs ''cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/kate-${pkgver}.tar.bz2"
+ 'pkgbuild-syntax-highlight.patch')
+sha1sums=('b808f01213e0e44607e8f2577f9d1b4f88e14388'
+ 'ab0c5d2a796b0f283154799add161c99f48ffcd5')
+
+build() {
+ cd "${srcdir}"/kate-${pkgver}
+ patch -p1 -i "${srcdir}"/pkgbuild-syntax-highlight.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kate-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_KTEXTEDITOR=OFF
+ make
+}
+
+package_kdebase-kwrite() {
+ pkgdesc="Text Editor"
+ depends=('kdebase-runtime')
+ groups=('kde' 'kdebase')
+ install='kdebase-kwrite.install'
+
+ cd "${srcdir}"/build/kwrite
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/part
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kwrite
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdesdk-kate() {
+ pkgdesc="Advanced Text Editor"
+ depends=('kdebase-kwrite')
+ groups=('kde' 'kdesdk')
+ install='kdesdk-kate.install'
+
+ cd "${srcdir}"/build/kate
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kate
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdesdk-kate/kdebase-kwrite.install b/staging/kdesdk-kate/kdebase-kwrite.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdesdk-kate/kdebase-kwrite.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdesdk-kate/kdesdk-kate.install b/staging/kdesdk-kate/kdesdk-kate.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdesdk-kate/kdesdk-kate.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/staging/kdesdk-kate/pkgbuild-syntax-highlight.patch b/staging/kdesdk-kate/pkgbuild-syntax-highlight.patch
new file mode 100644
index 000000000..3c43eca0f
--- /dev/null
+++ b/staging/kdesdk-kate/pkgbuild-syntax-highlight.patch
@@ -0,0 +1,11 @@
+--- kate-4.6.80/part/syntax/data/bash.xml~ 2011-05-23 21:20:34.295137123 +0000
++++ kate-4.6.80/part/syntax/data/bash.xml 2011-05-23 21:20:54.581993368 +0000
+@@ -8,7 +8,7 @@
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
+ ]>
+-<language name="Bash" version="2.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" 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/staging/kdesdk/PKGBUILD b/staging/kdesdk/PKGBUILD
new file mode 100644
index 000000000..4b7174f41
--- /dev/null
+++ b/staging/kdesdk/PKGBUILD
@@ -0,0 +1,247 @@
+# $Id: PKGBUILD 144180 2011-12-04 09:19:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdesdk
+pkgname=('kdesdk-cervisia'
+ 'kdesdk-dolphin-plugins'
+ 'kdesdk-kapptemplate'
+ 'kdesdk-kcachegrind'
+ 'kdesdk-kdeaccounts-plugin'
+ 'kdesdk-kdepalettes'
+ 'kdesdk-kioslave'
+ 'kdesdk-kmtrace'
+ 'kdesdk-kompare'
+ 'kdesdk-kpartloader'
+ 'kdesdk-kprofilemethod'
+# 'kdesdk-kspy'
+ 'kdesdk-kstartperf'
+ 'kdesdk-kuiviewer'
+ 'kdesdk-lokalize'
+ 'kdesdk-okteta'
+ 'kdesdk-poxml'
+# 'kdesdk-scheck'
+ 'kdesdk-scripts'
+ 'kdesdk-strigi-analyzer'
+ 'kdesdk-umbrello')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdesdk')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'subversion' 'antlr2'
+ 'kdepimlibs' 'kdebase-lib')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'fix-python2-path.patch')
+sha1sums=('3a0f61204653dc3f9f975732b6f67659c60ecaf3'
+ '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-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'
+ optdepends=('gimp')
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kdepalettes/KDE_Gimp \
+ $pkgdir/usr/share/gimp/2.0/palettes/KDE.gpl
+}
+
+package_kdesdk-kioslave() {
+ pkgdesc='KDED Subversion Module'
+ depends=('kdebase-runtime' 'subversion')
+ cd $srcdir/build/kioslave
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kmtrace() {
+ pkgdesc='A KDE tool to assist with malloc debugging using glibc´s "mtrace" functionality'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kmtrace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmtrace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kompare() {
+ pkgdesc='Diff/Patch Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kompare/"
+ install='kdesdk.install'
+ cd $srcdir/build/kompare
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kompare
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kpartloader() {
+ pkgdesc='A test application for KParts'
+ depends=('kdebase-runtime')
+ install='kdesdk.install'
+ cd $srcdir/build/kpartloader
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kprofilemethod() {
+ pkgdesc='Macros helping to profile'
+ cd $srcdir/build/kprofilemethod
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kspy() {
+ pkgdesc='An Object Inspector for Qt/KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kspy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kstartperf() {
+ pkgdesc='Startup time measurement tool for KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kstartperf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kuiviewer() {
+ pkgdesc='Qt Designer UI File Viewer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kuiviewer/"
+ install='kdesdk.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-scheck() {
+ pkgdesc='An interface style to highlight accel and style guide conflicts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/scheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scripts() {
+ pkgdesc='KDE SDK scripts'
+ depends=('python2')
+ cd $srcdir/build/scripts
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/scripts
+ make DESTDIR=$pkgdir install
+}
+
+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/staging/kdesdk/fix-python2-path.patch b/staging/kdesdk/fix-python2-path.patch
new file mode 100644
index 000000000..c2c0745d1
--- /dev/null
+++ b/staging/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/staging/kdesdk/kdesdk-okteta.install b/staging/kdesdk/kdesdk-okteta.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/staging/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/staging/kdesdk/kdesdk.install b/staging/kdesdk/kdesdk.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdetoys/PKGBUILD b/staging/kdetoys/PKGBUILD
new file mode 100644
index 000000000..50dbfe8e3
--- /dev/null
+++ b/staging/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 144181 2011-12-04 09:19:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.7.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('f929e598180f420d7fc6e4642ed56af9eee5a22b')
+
+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/staging/kdetoys/kdetoys.install b/staging/kdetoys/kdetoys.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdeutils/PKGBUILD b/staging/kdeutils/PKGBUILD
new file mode 100644
index 000000000..60a9ed46c
--- /dev/null
+++ b/staging/kdeutils/PKGBUILD
@@ -0,0 +1,191 @@
+# $Id: PKGBUILD 144182 2011-12-04 09:19:31Z 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.7.4
+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'
+ 'qjson')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('4630f01f36558eb5494fc562086fbd4e488e411e')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+
+ # Use Python2
+ sed -i 's|/usr/bin/python|/usr/bin/python2|' \
+ kcharselect/kcharselect-generate-datafile.py \
+ superkaramba/examples/richtext/rtext.py
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ printer-applet/{authconn,debug,monitor,printer-applet,statereason}.py
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_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/ark/doc
+ 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/filelight/doc
+ 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/kcalc/doc
+ 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/kcharselect/doc
+ 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/kdf/doc
+ 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/kfloppy/doc
+ 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/kgpg/doc
+ 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/kremotecontrol/doc
+ 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/ktimer/doc
+ 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/kwallet/doc
+ 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
+ cd $srcdir/build/printer-applet/doc
+ make DESTDIR=$pkgdir install
+}
+
+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
+ cd $srcdir/build/sweeper/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdeutils/kdeutils.install b/staging/kdeutils/kdeutils.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/kdewebdev/PKGBUILD b/staging/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..1ab9ce284
--- /dev/null
+++ b/staging/kdewebdev/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 144183 2011-12-04 09:19:34Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.7.4
+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'
+ 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('1e37e877d4f5ec8f6dcd05e828b4a8f0fd743d2c')
+
+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/staging/kdewebdev/kdewebdev.install b/staging/kdewebdev/kdewebdev.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/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/staging/libkdcraw/PKGBUILD b/staging/libkdcraw/PKGBUILD
new file mode 100644
index 000000000..a853eafd7
--- /dev/null
+++ b/staging/libkdcraw/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144130 2011-12-04 09:06:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdcraw
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A C++ interface used to decode RAW picture"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'lcms')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('f97516a2da26da3c15075a007bec7c8f9860379b')
+
+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/staging/libkdcraw/libkdcraw.install b/staging/libkdcraw/libkdcraw.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/libkdcraw/libkdcraw.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/libkdeedu/PKGBUILD b/staging/libkdeedu/PKGBUILD
new file mode 100644
index 000000000..451bada83
--- /dev/null
+++ b/staging/libkdeedu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144128 2011-12-04 09:06:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdeedu
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="Libraries used by KDE Education applications"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+replaces=('kdeedu-libkdeedu' 'kdeedu-data')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('2f508c6efa9ef9561d25578000c7d5bb5ed1c5ee')
+
+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/staging/libkdeedu/libkdeedu.install b/staging/libkdeedu/libkdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/libkdeedu/libkdeedu.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/libkexiv2/PKGBUILD b/staging/libkexiv2/PKGBUILD
new file mode 100644
index 000000000..26a20c532
--- /dev/null
+++ b/staging/libkexiv2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 144131 2011-12-04 09:06:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkexiv2
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A library to manipulate pictures metadata"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('19031140c87d9d7003fef564b6927c6f69d7e3d3')
+
+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/staging/libkipi/PKGBUILD b/staging/libkipi/PKGBUILD
new file mode 100644
index 000000000..f348dfff8
--- /dev/null
+++ b/staging/libkipi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144133 2011-12-04 09:12:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkipi
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="An interface to use kipi-plugins from a KDE application"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('3225ac0c55f5e4fef71a8baee8d3c49efff6adbf')
+
+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/staging/libkipi/libkipi.install b/staging/libkipi/libkipi.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/libkipi/libkipi.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/libksane/PKGBUILD b/staging/libksane/PKGBUILD
new file mode 100644
index 000000000..0eb2780a1
--- /dev/null
+++ b/staging/libksane/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 144134 2011-12-04 09:13:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libksane
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="An image scanning library"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'sane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('3c7a8d5b7fd80175684a0373fae26197e8158565')
+
+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/staging/libksane/libksane.install b/staging/libksane/libksane.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/libksane/libksane.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD
new file mode 100644
index 000000000..a1b61d31f
--- /dev/null
+++ b/testing/binutils/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 144110 2011-12-04 03:46:03Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.22
+pkgrel=2
+_date=20111201
+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-devel')
+depends=('glibc>=2.14' 'zlib')
+checkdepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
+md5sums=('77c15027ac112c65fd5f73ca91b0651c')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_22-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
+
+ # check the host environment and makes sure all the necessary tools are available
+ 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/fakeroot/PKGBUILD b/testing/fakeroot/PKGBUILD
new file mode 100644
index 000000000..966f32b38
--- /dev/null
+++ b/testing/fakeroot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 144101 2011-12-03 22:12:51Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=fakeroot
+pkgver=1.18.2
+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' 'sed' 'util-linux' 'sh')
+options=('!libtool')
+source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2)
+md5sums=('79f32331358ad58499704ea5e19fd0ae')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \
+ --disable-static --with-ipc=sysv
+ 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/testing/fakeroot/fakeroot.install b/testing/fakeroot/fakeroot.install
new file mode 100644
index 000000000..986c91b06
--- /dev/null
+++ b/testing/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/testing/fontforge/PKGBUILD b/testing/fontforge/PKGBUILD
new file mode 100644
index 000000000..91f7527d4
--- /dev/null
+++ b/testing/fontforge/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 145014 2011-12-14 10:50:55Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fontforge
+pkgver=20111214
+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=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('55c3f00c0b486492ba071fc479e1feb426562e2b')
+
+# git clone git://fontforge.git.sourceforge.net/gitroot/fontforge/fontforge; cd fontforge; git archive --prefix=${pkgname}-${pkgver}/ master | xz > ../${pkgname}-${pkgver}.tar.xz
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/python /python2 /g' Makefile.dynamic.in
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-type3 \
+ --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/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD
new file mode 100644
index 000000000..d57464ec6
--- /dev/null
+++ b/testing/gcc/PKGBUILD
@@ -0,0 +1,259 @@
+# $Id: PKGBUILD 144107 2011-12-04 02:41:48Z 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.2
+pkgrel=3
+_snapshot=4.6-20111125
+_libstdcppmanver=20110814 # 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.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada')
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_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
+ gcc-pr49720.patch)
+md5sums=('922b0ee688669c188d237bbd21d42d07'
+ 'ce920d2550ff7e042b9f091d27764d8f'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '4df25b623799b148a0703eaeec8fdf3f'
+ 'f9d7e5b792c59175f3da3f8421447512')
+
+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
+
+ # fix compiler segfault in binutils testsuite
+ patch -Np1 -i ${srcdir}/gcc-pr49720.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-libssp --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.14')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp 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=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' '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++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+
+ # 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-pr49720.patch b/testing/gcc/gcc-pr49720.patch
new file mode 100644
index 000000000..8f50c4120
--- /dev/null
+++ b/testing/gcc/gcc-pr49720.patch
@@ -0,0 +1,26 @@
+--- trunk/gcc/simplify-rtx.c 2011/10/28 05:55:10 180603
++++ trunk/gcc/simplify-rtx.c 2011/10/28 06:35:31 180604
+@@ -4352,10 +4352,20 @@
+ {
+ rtx x = XEXP (op0, 0);
+ rtx c = XEXP (op0, 1);
++ enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS;
++ rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c);
+
+- c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS,
+- cmp_mode, op1, c);
+- return simplify_gen_relational (code, mode, cmp_mode, x, c);
++ /* Detect an infinite recursive condition, where we oscillate at this
++ simplification case between:
++ A + B == C <---> C - B == A,
++ where A, B, and C are all constants with non-simplifiable expressions,
++ usually SYMBOL_REFs. */
++ if (GET_CODE (tem) == invcode
++ && CONSTANT_P (x)
++ && rtx_equal_p (c, XEXP (tem, 1)))
++ return NULL_RTX;
++
++ return simplify_gen_relational (code, mode, cmp_mode, x, tem);
+ }
+
+ /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is
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..aef26d06e
--- /dev/null
+++ b/testing/ghc/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142984 2011-11-19 18:41:40Z vesa $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Special note for devs looking to upgrade this package:
+# ghc places a unique hash for each library when it is built.
+# Libraries depend on versions specified by those hashes.
+# This implies that all libraries need to be rebuilt when ghc is rebuilt.
+# Also, due to dependency loop problems, haskell-ghc-paths and haddock
+# do not carry version dependencies. You will have to remember to build them too.
+pkgname=ghc
+pkgver=7.2.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 libxslt docbook-xsl)
+install=ghc.install
+options=(!strip)
+groups=(haskell)
+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
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/ghc/license
+ install -d $pkgdir/usr/share/haskell
+}
+
+md5sums=('fa19d9fe5049b7a1352b0b7c9880c141'
+ '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..4e0c2d26e
--- /dev/null
+++ b/testing/glibc/PKGBUILD
@@ -0,0 +1,204 @@
+# $Id: PKGBUILD 144073 2011-12-02 21:32:48Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+pkgname=glibc
+pkgver=2.14.1
+pkgrel=2
+_glibcdate=20111025
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=3.1' 'tzdata')
+makedepends=('gcc>=4.6')
+backup=(etc/gai.conf
+ 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-futex.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-revert-4768ae77.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ '6970bcfeb3bf88913436d5112d16f588'
+ '7da8c554a3b591c7401d7023b1928afc'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ git checkout -b glibc-2.14-arch origin/release/2.14/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=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # Revert commit causing issues with crappy DNS servers...
+ # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER!
+ # Note that both these patches do not fix the issue completely:
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.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
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${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 \
+ --enable-multi-arch
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "s#=no#=yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+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 -f ${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}
+ [[ $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,{audit,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.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/testing/glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/testing/glibc/glibc-2.14-revert-4768ae77.patch b/testing/glibc/glibc-2.14-revert-4768ae77.patch
new file mode 100644
index 000000000..11f087cb7
--- /dev/null
+++ b/testing/glibc/glibc-2.14-revert-4768ae77.patch
@@ -0,0 +1,37 @@
+diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
+--- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000
++++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000
+@@ -549,7 +549,7 @@
+ ns, ansp, ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ } else {
+ /* Use datagrams. */
+@@ -559,7 +559,7 @@
+ ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ if (v_circuit)
+ // XXX Check whether both requests failed or
+@@ -1275,14 +1275,10 @@
+ (*thisresplenp > *thisanssizp)
+ ? *thisanssizp : *thisresplenp);
+
+- if (recvresp1 || (buf2 != NULL && recvresp2)) {
+- *resplen2 = 0;
++ if (recvresp1 || (buf2 != NULL && recvresp2))
+ return resplen;
+- }
+ if (buf2 != NULL)
+ {
+- /* No data from the first reply. */
+- resplen = 0;
+ /* We are waiting for a possible second reply. */
+ if (hp->id == anhp->id)
+ recvresp1 = 1;
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/kdevplatform/PKGBUILD b/testing/kdevplatform/PKGBUILD
new file mode 100644
index 000000000..75e543a98
--- /dev/null
+++ b/testing/kdevplatform/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 144746 2011-12-08 09:39:48Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=kdevplatform
+pkgver=1.2.3
+_pkgver=4.2.3
+pkgrel=2
+pkgdesc="A C/C++ development platform for KDE"
+arch=('i686' 'x86_64')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdelibs''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"
+ 'subversion17.patch')
+sha1sums=('c8badd157c2477b1b299403d01d40f68a1ba14cd'
+ '08e2ab2005a7a447f1733e8449a9bc926035fb9e')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/subversion17.patch
+
+ 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/testing/kdevplatform/kdevplatform.install b/testing/kdevplatform/kdevplatform.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/testing/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/testing/kdevplatform/subversion17.patch b/testing/kdevplatform/subversion17.patch
new file mode 100644
index 000000000..782ac38ea
--- /dev/null
+++ b/testing/kdevplatform/subversion17.patch
@@ -0,0 +1,127 @@
+commit 74dec52749e3c3af2ac6492f50e2676128f35b27
+Author: Milian Wolff <mail@milianw.de>
+Date: Fri Nov 18 16:26:06 2011 +0100
+
+ fix svn api usage: use svn_dirent_canonicalize instead of svn_path_internal_style
+
+ this was suggested by Stephan Sperling
+
+ CCBUG: 284061
+
+diff --git a/plugins/subversion/kdevsvncpp/path.cpp b/plugins/subversion/kdevsvncpp/path.cpp
+index eaa84c1..4dced08 100644
+--- a/plugins/subversion/kdevsvncpp/path.cpp
++++ b/plugins/subversion/kdevsvncpp/path.cpp
+@@ -24,6 +24,7 @@
+
+ // subversion api
+ #include "svn_path.h"
++#include "svn_dirent_uri.h"
+
+ // apr api
+ #include "apr_file_io.h"
+@@ -63,8 +64,7 @@ namespace svn
+ m_path = "";
+ else
+ {
+- const char * int_path =
+- svn_path_internal_style(path, pool.pool());
++ const char * int_path = svn_dirent_canonicalize(path, pool);
+
+ m_path = int_path;
+
+commit cc7f0798d314cdac14b90e427abe22e99c6bd591
+Author: Milian Wolff <mail@milianw.de>
+Date: Fri Nov 18 16:23:36 2011 +0100
+
+ properly initialize client context for compatibility with subversion API
+
+ this should hopefully fix the crash with svn 1.7 in kdevelop, please test
+
+ BUG: 284061
+
+diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp
+index d277591..ddbb657 100644
+--- a/plugins/subversion/kdevsvncpp/context.cpp
++++ b/plugins/subversion/kdevsvncpp/context.cpp
+@@ -65,7 +65,7 @@ public:
+ bool logIsSet;
+ int promptCounter;
+ Pool pool;
+- svn_client_ctx_t ctx;
++ svn_client_ctx_t * ctx;
+ std::string username;
+ std::string password;
+ std::string logMessage;
+@@ -205,26 +205,26 @@ public:
+ svn_auth_open(&ab, providers, pool);
+
+ // initialize ctx structure
+- memset(&ctx, 0, sizeof(ctx));
++ svn_client_create_context(&ctx, pool);
+
+ // get the config based on the configDir passed in
+- svn_config_get_config(&ctx.config, c_configDir, pool);
++ svn_config_get_config(&ctx->config, c_configDir, pool);
+
+ // tell the auth functions where the config is
+ svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
+ c_configDir);
+
+- ctx.auth_baton = ab;
+- ctx.log_msg_func = onLogMsg;
+- ctx.log_msg_baton = this;
+- ctx.notify_func = onNotify;
+- ctx.notify_baton = this;
+- ctx.cancel_func = onCancel;
+- ctx.cancel_baton = this;
++ ctx->auth_baton = ab;
++ ctx->log_msg_func = onLogMsg;
++ ctx->log_msg_baton = this;
++ ctx->notify_func = onNotify;
++ ctx->notify_baton = this;
++ ctx->cancel_func = onCancel;
++ ctx->cancel_baton = this;
+
+ #if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2)
+- ctx.notify_func2 = onNotify2;
+- ctx.notify_baton2 = this;
++ ctx->notify_func2 = onNotify2;
++ ctx->notify_baton2 = this;
+ #endif
+ }
+
+@@ -234,7 +234,7 @@ public:
+ if (!value)
+ param = (void *)"1";
+
+- svn_auth_set_parameter(ctx.auth_baton,
++ svn_auth_set_parameter(ctx->auth_baton,
+ SVN_AUTH_PARAM_NO_AUTH_CACHE,
+ param);
+ }
+@@ -245,7 +245,7 @@ public:
+ username = usr;
+ password = pwd;
+
+- svn_auth_baton_t * ab = ctx.auth_baton;
++ svn_auth_baton_t * ab = ctx->auth_baton;
+ svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
+ username.c_str());
+ svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
+@@ -654,13 +654,13 @@ public:
+
+ Context::operator svn_client_ctx_t * ()
+ {
+- return &(m->ctx);
++ return m->ctx;
+ }
+
+ svn_client_ctx_t *
+ Context::ctx()
+ {
+- return &(m->ctx);
++ return m->ctx;
+ }
+
+ void
diff --git a/testing/keyutils/PKGBUILD b/testing/keyutils/PKGBUILD
new file mode 100644
index 000000000..79bde8741
--- /dev/null
+++ b/testing/keyutils/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 143944 2011-11-30 21:52:16Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=keyutils
+pkgver=1.5.5
+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)
+md5sums=('9e8ab5164bc8f84be148761cc89e9d6f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i "s|/lib64|/lib|g" Makefile
+ make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/krb5/PKGBUILD b/testing/krb5/PKGBUILD
new file mode 100644
index 000000000..9cbe8c3d7
--- /dev/null
+++ b/testing/krb5/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 144605 2011-12-07 21:28:52Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=krb5
+pkgver=1.9.2
+pkgrel=2
+pkgdesc="The Kerberos network authentication system"
+arch=('i686' 'x86_64')
+url="http://web.mit.edu/kerberos/"
+license=('custom')
+depends=('e2fsprogs' 'libldap' 'keyutils')
+makedepends=('perl')
+provides=('heimdal')
+replaces=('heimdal')
+conflicts=('heimdal')
+backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf')
+source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.9/${pkgname}-${pkgver}-signed.tar
+ krb5-kadmind
+ krb5-kdc
+ krb5-kpropd
+ krb5-1.9.1-config-script.patch
+ krb5-1.9.1-2011-007.patch)
+sha1sums=('aa06f778ee1f9791cd4c5cf4c9e9465769ffec92'
+ '2aa229369079ed1bbb201a1ef72c47bf143f4dbe'
+ '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393'
+ '7f402078fa65bb9ff1beb6cbbbb017450df78560'
+ '7342410760cf44bfa01bb99bb4c49e12496cb46f'
+ 'ec917dd1d1c96fa331f512331d5aa37c2e9b9df7')
+options=('!emptydirs')
+
+build() {
+ tar zxvf ${pkgname}-${pkgver}.tar.gz
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+
+ # - Make krb5-config suppress CFLAGS output when called with --libs
+ # cf https://bugzilla.redhat.com/show_bug.cgi?id=544391
+ #
+ # - Omit extra libraries because their interfaces are not exposed to applications
+ # by libkrb5, unless do_deps is set to 1, which indicates that the caller
+ # wants the whole list.
+ #
+ # Patch from upstream :
+ # http://anonsvn.mit.edu/viewvc/krb5/trunk/src/krb5-config.in?r1=23662&r2=25236
+ patch -Np2 -i ${srcdir}/krb5-1.9.1-config-script.patch
+
+ # Apply upstream patch to fix a null pointer dereference when processing TGS requests
+ # CVE-2011-1530
+ # see http://web.mit.edu/kerberos/advisories/MITKRB5-SA-2011-007.txt
+ patch -Np2 -i ${srcdir}/krb5-1.9.1-2011-007.patch
+
+ # FS#25384
+ sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4
+
+ export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all"
+ export CPPFLAGS+=" -I/usr/include/et"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --localstatedir=/var/lib \
+ --enable-shared \
+ --with-system-et \
+ --with-system-ss \
+ --disable-rpath \
+ --without-tcl \
+ --enable-dns-for-realm \
+ --with-ldap
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ make DESTDIR="${pkgdir}" EXAMPLEDIR="/usr/share/doc/${pkgname}/examples" install
+
+ # Sample KDC config file
+ install -dm 755 "${pkgdir}"/var/lib/krb5kdc
+ install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf
+
+ # Default configuration file
+ install -dm 755 "${pkgdir}"/etc
+ install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf
+
+ install -dm 755 "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-kdc "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-kadmind "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-kpropd "${pkgdir}"/etc/rc.d
+
+ install -dm 755 "${pkgdir}"/usr/share/aclocal
+ install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal
+
+ install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/testing/krb5/krb5-1.9.1-2011-007.patch b/testing/krb5/krb5-1.9.1-2011-007.patch
new file mode 100644
index 000000000..336a4ad31
--- /dev/null
+++ b/testing/krb5/krb5-1.9.1-2011-007.patch
@@ -0,0 +1,40 @@
+diff --git a/src/kdc/Makefile.in b/src/kdc/Makefile.in
+index f46cad3..102fbaa 100644
+--- a/src/kdc/Makefile.in
++++ b/src/kdc/Makefile.in
+@@ -67,6 +67,7 @@ check-unix:: rtest
+
+ check-pytests::
+ $(RUNPYTEST) $(srcdir)/t_workers.py $(PYTESTFLAGS)
++ $(RUNPYTEST) $(srcdir)/t_emptytgt.py $(PYTESTFLAGS)
+
+ install::
+ $(INSTALL_PROGRAM) krb5kdc ${DESTDIR}$(SERVER_BINDIR)/krb5kdc
+diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
+index c169c54..840a2ef 100644
+--- a/src/kdc/do_tgs_req.c
++++ b/src/kdc/do_tgs_req.c
+@@ -243,7 +243,8 @@ tgt_again:
+ if (!tgs_1 || !data_eq(*server_1, *tgs_1)) {
+ errcode = find_alternate_tgs(request, &server);
+ firstpass = 0;
+- goto tgt_again;
++ if (errcode == 0)
++ goto tgt_again;
+ }
+ }
+ status = "UNKNOWN_SERVER";
+diff --git a/src/kdc/t_emptytgt.py b/src/kdc/t_emptytgt.py
+new file mode 100644
+index 0000000..1760bcd
+--- /dev/null
++++ b/src/kdc/t_emptytgt.py
+@@ -0,0 +1,8 @@
++#!/usr/bin/python
++from k5test import *
++
++realm = K5Realm(start_kadmind=False, create_host=False)
++output = realm.run_as_client([kvno, 'krbtgt/'], expected_code=1)
++if 'not found in Kerberos database' not in output:
++ fail('TGT lookup for empty realm failed in unexpected way')
++success('Empty tgt lookup.')
diff --git a/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch b/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch
new file mode 100644
index 000000000..e5a38498f
--- /dev/null
+++ b/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch
@@ -0,0 +1,58 @@
+diff -Naur krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c krb5-1.9.1/src/lib/krb5/krb/get_creds.c
+--- krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c 2011-02-09 16:55:36.000000000 -0500
++++ krb5-1.9.1/src/lib/krb5/krb/get_creds.c 2011-09-26 18:42:01.465190278 -0400
+@@ -470,13 +470,10 @@
+
+ /***** STATE_REFERRALS *****/
+
+-/*
+- * Possibly retry a request in the fallback realm after a referral request
+- * failure in the local realm. Expects ctx->reply_code to be set to the error
+- * from a referral request.
+- */
++/* Possibly try a non-referral request after a referral request failure.
++ * Expects ctx->reply_code to be set to the error from a referral request. */
+ static krb5_error_code
+-try_fallback_realm(krb5_context context, krb5_tkt_creds_context ctx)
++try_fallback(krb5_context context, krb5_tkt_creds_context ctx)
+ {
+ krb5_error_code code;
+ char **hrealms;
+@@ -485,9 +482,10 @@
+ if (ctx->referral_count > 1)
+ return ctx->reply_code;
+
+- /* Only fall back if the original request used the referral realm. */
++ /* If the request used a specified realm, make a non-referral request to
++ * that realm (in case it's a KDC which rejects KDC_OPT_CANONICALIZE). */
+ if (!krb5_is_referral_realm(&ctx->req_server->realm))
+- return ctx->reply_code;
++ return begin_non_referral(context, ctx);
+
+ if (ctx->server->length < 2) {
+ /* We need a type/host format principal to find a fallback realm. */
+@@ -500,10 +498,10 @@
+ if (code != 0)
+ return code;
+
+- /* Give up if the fallback realm isn't any different. */
++ /* If the fallback realm isn't any different, use the existing TGT. */
+ if (data_eq_string(ctx->server->realm, hrealms[0])) {
+ krb5_free_host_realm(context, hrealms);
+- return ctx->reply_code;
++ return begin_non_referral(context, ctx);
+ }
+
+ /* Rewrite server->realm to be the fallback realm. */
+@@ -540,9 +538,9 @@
+ krb5_error_code code;
+ const krb5_data *referral_realm;
+
+- /* Possibly retry with the fallback realm on error. */
++ /* Possibly try a non-referral fallback request on error. */
+ if (ctx->reply_code != 0)
+- return try_fallback_realm(context, ctx);
++ return try_fallback(context, ctx);
+
+ if (krb5_principal_compare(context, ctx->reply_creds->server,
+ ctx->server)) {
diff --git a/testing/krb5/krb5-1.9.1-config-script.patch b/testing/krb5/krb5-1.9.1-config-script.patch
new file mode 100644
index 000000000..a72a75edf
--- /dev/null
+++ b/testing/krb5/krb5-1.9.1-config-script.patch
@@ -0,0 +1,27 @@
+diff -Naur krb5-1.9.1.ori/src/krb5-config.in krb5-1.9.1/src/krb5-config.in
+--- krb5-1.9.1.ori/src/krb5-config.in 2010-01-19 13:44:57.000000000 -0500
++++ krb5-1.9.1/src/krb5-config.in 2011-09-26 18:27:09.018487087 -0400
+@@ -186,7 +186,7 @@
+ -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \
+ -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \
+ -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \
+- -e 's#\$(CFLAGS)#'"$CFLAGS"'#'`
++ -e 's#\$(CFLAGS)##'`
+
+ if test $library = 'kdb'; then
+ lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB"
+@@ -214,9 +214,13 @@
+ fi
+
+ if test $library = 'krb5'; then
+- lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err $GEN_LIB $LIBS $DL_LIB"
++ lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err"
+ fi
+
++ # If we ever support a flag to generate output suitable for static
++ # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB"
++ # here.
++
+ echo $lib_flags
+ fi
+
diff --git a/testing/krb5/krb5-kadmind b/testing/krb5/krb5-kadmind
new file mode 100644
index 000000000..04df0dcff
--- /dev/null
+++ b/testing/krb5/krb5-kadmind
@@ -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 Kerberos Admin Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kadmind
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon krb5-kadmind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Admin Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon krb5-kadmind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/testing/krb5/krb5-kdc b/testing/krb5/krb5-kdc
new file mode 100644
index 000000000..05a03411e
--- /dev/null
+++ b/testing/krb5/krb5-kdc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/krb5kdc`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Authentication"
+ if [ -z "$PID" ]; then
+ /usr/sbin/krb5kdc
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon krb5-kdc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Authentication"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon krb5-kdc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/testing/krb5/krb5-kpropd b/testing/krb5/krb5-kpropd
new file mode 100644
index 000000000..a0077d68e
--- /dev/null
+++ b/testing/krb5/krb5-kpropd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kpropd`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Database Propagation Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kpropd -S
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kpropd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Database Propagation Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kpropd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
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..91583d99a
--- /dev/null
+++ b/testing/libdrm/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 144601 2011-12-07 17:32:22Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdrm
+pkgver=2.4.28
+pkgrel=1
+pkgdesc="Userspace interface to kernel DRM services"
+arch=(i686 x86_64)
+license=('custom')
+depends=('glibc' 'libpciaccess')
+makedepends=('cairo')
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch
+ COPYING
+ git_fixes.diff
+ #missing files from http://cgit.freedesktop.org/mesa/drm/snapshot/drm-902ee661f1864aaf8325621085f6a1b5a6a3673a.tar.bz2 - https://bugs.freedesktop.org/show_bug.cgi?id=43538
+ rbo.h list.h)
+md5sums=('6488f64119c6439fa4038e9cd7b30b67'
+ 'c722c8406507b7e3a8da7a3030d1d9cf'
+ 'ba65e71c481b94ef0fb6c23c7f21ffa1'
+ '671b87f9670e709e54a19cd292c6330d'
+ '073846ea43fb4d6130062c1897d92e40'
+ 'ce867d3331862c2b87d1a37461b42dbe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+
+ # add a missing file in the release tarball
+ patch -Np1 -i ${srcdir}/git_fixes.diff
+ cp ${srcdir}/{rbo,list}.h "${srcdir}/${pkgname}-${pkgver}"/tests/radeon/
+
+ #libtoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr \
+ --enable-udev \
+ --enable-intel \
+ --enable-radeon \
+ --enable-vmwgfx-experimental-api \
+ --enable-nouveau-experimental-api
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -k check
+}
+
+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/git_fixes.diff b/testing/libdrm/git_fixes.diff
new file mode 100644
index 000000000..5ebcb606a
--- /dev/null
+++ b/testing/libdrm/git_fixes.diff
@@ -0,0 +1,19 @@
+From 902ee661f1864aaf8325621085f6a1b5a6a3673a Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 05 Dec 2011 21:24:48 +0000
+Subject: test/radeon: add missing files for dist
+
+---
+diff --git a/tests/radeon/Makefile.am b/tests/radeon/Makefile.am
+index 021ca72..1775669 100644
+--- a/tests/radeon/Makefile.am
++++ b/tests/radeon/Makefile.am
+@@ -9,4 +9,6 @@ noinst_PROGRAMS = \
+
+ radeon_ttm_SOURCES = \
+ rbo.c \
++ rbo.h \
++ list.h \
+ radeon_ttm.c
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/libdrm/list.h b/testing/libdrm/list.h
new file mode 100644
index 000000000..305c903e1
--- /dev/null
+++ b/testing/libdrm/list.h
@@ -0,0 +1,137 @@
+/*
+ *
+ * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA.
+ * 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 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 COPYRIGHT HOLDERS, AUTHORS 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.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ */
+
+/**
+ * \file
+ * List macros heavily inspired by the Linux kernel
+ * list handling. No list looping yet.
+ *
+ * Is not threadsafe, so common operations need to
+ * be protected using an external mutex.
+ */
+#ifndef _U_DOUBLE_LIST_H_
+#define _U_DOUBLE_LIST_H_
+
+#include <stddef.h>
+
+struct list_head
+{
+ struct list_head *prev;
+ struct list_head *next;
+};
+
+static void list_inithead(struct list_head *item)
+{
+ item->prev = item;
+ item->next = item;
+}
+
+static void list_add(struct list_head *item, struct list_head *list)
+{
+ item->prev = list;
+ item->next = list->next;
+ list->next->prev = item;
+ list->next = item;
+}
+
+static void list_addtail(struct list_head *item, struct list_head *list)
+{
+ item->next = list;
+ item->prev = list->prev;
+ list->prev->next = item;
+ list->prev = item;
+}
+
+static void list_replace(struct list_head *from, struct list_head *to)
+{
+ to->prev = from->prev;
+ to->next = from->next;
+ from->next->prev = to;
+ from->prev->next = to;
+}
+
+static void list_del(struct list_head *item)
+{
+ item->prev->next = item->next;
+ item->next->prev = item->prev;
+}
+
+static void list_delinit(struct list_head *item)
+{
+ item->prev->next = item->next;
+ item->next->prev = item->prev;
+ item->next = item;
+ item->prev = item;
+}
+
+#define LIST_INITHEAD(__item) list_inithead(__item)
+#define LIST_ADD(__item, __list) list_add(__item, __list)
+#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list)
+#define LIST_REPLACE(__from, __to) list_replace(__from, __to)
+#define LIST_DEL(__item) list_del(__item)
+#define LIST_DELINIT(__item) list_delinit(__item)
+
+#define LIST_ENTRY(__type, __item, __field) \
+ ((__type *)(((char *)(__item)) - offsetof(__type, __field)))
+
+#define LIST_IS_EMPTY(__list) \
+ ((__list)->next == (__list))
+
+#ifndef container_of
+#define container_of(ptr, sample, member) \
+ (void *)((char *)(ptr) \
+ - ((char *)&(sample)->member - (char *)(sample)))
+#endif
+
+#define LIST_FOR_EACH_ENTRY(pos, head, member) \
+ for (pos = container_of((head)->next, pos, member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.next, pos, member))
+
+#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \
+ for (pos = container_of((head)->next, pos, member), \
+ storage = container_of(pos->member.next, pos, member); \
+ &pos->member != (head); \
+ pos = storage, storage = container_of(storage->member.next, storage, member))
+
+#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \
+ for (pos = container_of((head)->prev, pos, member), \
+ storage = container_of(pos->member.prev, pos, member); \
+ &pos->member != (head); \
+ pos = storage, storage = container_of(storage->member.prev, storage, member))
+
+#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \
+ for (pos = container_of((start), pos, member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.next, pos, member))
+
+#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \
+ for (pos = container_of((start), pos, member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.prev, pos, member))
+
+#endif /*_U_DOUBLE_LIST_H_*/
diff --git a/testing/libdrm/no-pthread-stubs.patch b/testing/libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..348c2a795
--- /dev/null
+++ b/testing/libdrm/no-pthread-stubs.patch
@@ -0,0 +1,66 @@
+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
+@@ -47,10 +47,6 @@
+ LT_INIT([disable-static])
+
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
+ AC_SUBST(PCIACCESS_CFLAGS)
+ AC_SUBST(PCIACCESS_LIBS)
+--- 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,14 +26,13 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ $(PCIACCESS_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@ @PCIACCESS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @PCIACCESS_LIBS@ @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_bufmgr.c \
+--- 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/libdrm/rbo.h b/testing/libdrm/rbo.h
new file mode 100644
index 000000000..c25c73a4c
--- /dev/null
+++ b/testing/libdrm/rbo.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright © 2011 Red Hat
+ *
+ * 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
+ * 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.
+ *
+ * Authors:
+ * Jerome Glisse <j.glisse@gmail.com>
+ */
+#ifndef RBO_H
+#define RBO_H
+
+#include "list.h"
+
+struct rbo {
+ struct list_head list;
+ int fd;
+ unsigned refcount;
+ unsigned mapcount;
+ unsigned handle;
+ unsigned size;
+ unsigned alignment;
+ void *data;
+};
+
+struct rbo *rbo(int fd, unsigned handle, unsigned size,
+ unsigned alignment, void *ptr);
+int rbo_map(struct rbo *bo);
+void rbo_unmap(struct rbo *bo);
+struct rbo *rbo_incref(struct rbo *bo);
+struct rbo *rbo_decref(struct rbo *bo);
+int rbo_wait(struct rbo *bo);
+
+#endif
diff --git a/testing/linux-api-headers/PKGBUILD b/testing/linux-api-headers/PKGBUILD
new file mode 100644
index 000000000..7cb4c6034
--- /dev/null
+++ b/testing/linux-api-headers/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 144067 2011-12-02 21:02:11Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=3.1.4
+_basever=3.1
+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/v3.x/linux-${_basever}.tar.xz
+ http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz)
+# NOTE: signatures are not automatically verified by makepkg
+ #http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_basever}.tar.sign
+ #http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign
+md5sums=('edbdc798f23ae0f8045c82f6fa22c536'
+ 'ffb768bb3c42c94876f3f84aa6f779e5')
+
+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/llvm/PKGBUILD b/testing/llvm/PKGBUILD
new file mode 100644
index 000000000..6248f6406
--- /dev/null
+++ b/testing/llvm/PKGBUILD
@@ -0,0 +1,199 @@
+# $Id: PKGBUILD 144360 2011-12-05 04:48:47Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@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=3.0
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://llvm.org/"
+license=('custom:University of Illinois/NCSA Open Source License')
+makedepends=('libffi' 'python2' 'ocaml')
+source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tar.gz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz
+ clang-plugin-loader-registry.patch
+ cindexer-clang-path.patch
+ clang-pure64.patch
+ enable-lto.patch
+ fix-gold-lto-linking.patch)
+sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477'
+ 'b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d'
+ 'a0a4494f2a692789670be37fd390906dcaa37b1824f740bdaaea21182f2f3a9c'
+ '3074df5322900e087377a8e03a02115463ccc0011c25917c2f06df11facd9b92'
+ '288a82fbff17bc554f5863734246500e637882af33ee8511019d5e0d6cd20524'
+ 'cf8922a932e1859f3783bef2af8ac1e90ce96f8eec79928392327b71b3d7cb89'
+ '24d275cdf170f53844bc7174b065fb51b6ddbb9642ced34702cde1f0f74d9192')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver.src"
+
+ # 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.src" 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
+
+ # 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 clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799)
+ patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch"
+
+ if [[ $CARCH == x86_64 ]]; then
+ # Adjust linker path
+ patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch"
+ fi
+
+ # Make -flto work
+ # Use gold instead of default linker, and always use the plugin
+ patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch"
+
+ # Fix libLTO.so location in gold plugin
+ patch -Np1 -i "$srcdir/fix-gold-lto-linking.patch"
+
+ # Apply strip option to configure
+ _optimized_switch="enable"
+ [[ $(check_option strip) == n ]] && _optimized_switch="disable"
+
+ # Include location of libffi headers in CPPFLAGS
+ export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
+
+ # Force the use of GCC instead of clang
+ CC=gcc CXX=g++ \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib/llvm \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-libffi \
+ --enable-targets=all \
+ --disable-expensive-checks \
+ --disable-debug-runtime \
+ --disable-assertions \
+ --with-binutils-include=/usr/include \
+ --$_optimized_switch-optimized
+
+ make REQUIRES_RTTI=1
+}
+
+package_llvm() {
+ pkgdesc="Low Level Virtual Machine"
+ depends=('perl' 'libffi')
+
+ cd "$srcdir/$pkgname-$pkgver.src"
+
+ # 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"
+ # Copy missing file into the expected location
+ cp bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/Release/
+ # -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.*
+
+ # 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.src"
+
+ 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/"
+ depends=("llvm=$pkgver-$pkgrel" 'gcc')
+
+ # Fix installation path for clang docs
+ sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \
+ "$srcdir/llvm-$pkgver.src/Makefile.config"
+
+ cd "$srcdir/llvm-$pkgver.src/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.src/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.src/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$/&2/' \
+ "$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/testing/llvm/cindexer-clang-path.patch b/testing/llvm/cindexer-clang-path.patch
new file mode 100644
index 000000000..ddaab690e
--- /dev/null
+++ b/testing/llvm/cindexer-clang-path.patch
@@ -0,0 +1,10 @@
+--- tools/libclang/CIndexer.cpp.orig 2011-04-07 13:08:24.000000000 +0300
++++ tools/libclang/CIndexer.cpp 2011-04-07 13:11:52.224884642 +0300
+@@ -80,6 +80,7 @@ std::string CIndexer::getClangResourcesP
+
+ // We now have the CIndex directory, locate clang relative to it.
+ LibClangPath.eraseComponent();
++ LibClangPath.eraseComponent();
+ #endif
+
+ LibClangPath.appendComponent("clang");
diff --git a/testing/llvm/clang-plugin-loader-registry.patch b/testing/llvm/clang-plugin-loader-registry.patch
new file mode 100644
index 000000000..f46eb9fce
--- /dev/null
+++ b/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/testing/llvm/clang-pure64.patch b/testing/llvm/clang-pure64.patch
new file mode 100644
index 000000000..9bbbfaa8b
--- /dev/null
+++ b/testing/llvm/clang-pure64.patch
@@ -0,0 +1,13 @@
+Index: lib/Driver/Tools.cpp
+===================================================================
+--- lib/Driver/Tools.cpp (revision 123373)
++++ lib/Driver/Tools.cpp (working copy)
+@@ -3306,7 +3306,7 @@
+ else if (ToolChain.getArch() == llvm::Triple::ppc64)
+ CmdArgs.push_back("/lib64/ld64.so.1");
+ else
+- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
++ CmdArgs.push_back("/lib/ld-linux-x86-64.so.2");
+ }
+
+ CmdArgs.push_back("-o");
diff --git a/testing/llvm/enable-lto.patch b/testing/llvm/enable-lto.patch
new file mode 100644
index 000000000..3c8691b17
--- /dev/null
+++ b/testing/llvm/enable-lto.patch
@@ -0,0 +1,32 @@
+Index: lib/Driver/ToolChains.cpp
+===================================================================
+--- lib/Driver/ToolChains.cpp (revision 123373)
++++ lib/Driver/ToolChains.cpp (working copy)
+@@ -1398,7 +1398,7 @@
+ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+ GCCInstallation.getTriple() + "/bin").str());
+
+- Linker = GetProgramPath("ld");
++ Linker = GetProgramPath("ld.gold");
+
+ LinuxDistro Distro = DetectLinuxDistro(Arch);
+
+Index: lib/Driver/Tools.cpp
+===================================================================
+--- lib/Driver/Tools.cpp (revision 123373)
++++ lib/Driver/Tools.cpp (working copy)
+@@ -3412,11 +3412,11 @@
+ }
+ }
+
+- if (Args.hasArg(options::OPT_use_gold_plugin)) {
++ // if (Args.hasArg(options::OPT_use_gold_plugin)) {
+ CmdArgs.push_back("-plugin");
+- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
++ std::string Plugin = ToolChain.getDriver().Dir + "/../lib/llvm/LLVMgold.so";
+ CmdArgs.push_back(Args.MakeArgString(Plugin));
+- }
++ // }
+
+ C.addCommand(new Command(JA, *this, ToolChain.Linker.c_str(), CmdArgs));
+ }
diff --git a/testing/llvm/fix-gold-lto-linking.patch b/testing/llvm/fix-gold-lto-linking.patch
new file mode 100644
index 000000000..84d166471
--- /dev/null
+++ b/testing/llvm/fix-gold-lto-linking.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-3.0.src.orig/tools/gold/Makefile llvm-3.0.src/tools/gold/Makefile
+--- llvm-3.0.src.orig/tools/gold/Makefile 2011-05-31 23:00:45.000000000 +0300
++++ llvm-3.0.src/tools/gold/Makefile 2011-12-04 22:06:59.000000000 +0200
+@@ -26,6 +26,6 @@ LINK_COMPONENTS := support
+ # Because off_t is used in the public API, the largefile parts are required for
+ # ABI compatibility.
+ CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+-CXXFLAGS+=$(SharedLibDir)/$(SharedPrefix)LTO$(SHLIBEXT)
++CXXFLAGS+=-L $(SharedLibDir) -lLTO
+
+ include $(LEVEL)/Makefile.common
diff --git a/testing/module-init-tools/PKGBUILD b/testing/module-init-tools/PKGBUILD
new file mode 100644
index 000000000..918527cd2
--- /dev/null
+++ b/testing/module-init-tools/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 144112 2011-12-04 04:52:36Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=module-init-tools
+pkgver=3.16
+pkgrel=3
+pkgdesc="Utilities needed by Linux systems for managing loadable kernel modules"
+arch=('i686' 'x86_64')
+url="https://modules.wiki.kernel.org"
+license=('GPL')
+depends=('glibc')
+makedepends=('docbook2x')
+backup=('etc/modprobe.d/modprobe.conf'
+ 'etc/depmod.d/depmod.conf')
+source=("http://www.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.bz2"
+ modprobe.conf
+ depmod.conf
+ docfix.patch)
+md5sums=('bc44832c6e41707b8447e2847d2019f5'
+ '325657db471b3190f685e5a89c9b90e3'
+ '4b8cbcbc54b9029c99fd730e257d4436'
+ '4320d19902ded43bed55c804b065cdc7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fix headers in SGML manpage sources and an XML typo
+ patch -Np0 < "$srcdir/docfix.patch"
+
+ ./configure --prefix=/usr --exec-prefix=/ --enable-zlib
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR=$pkgdir install
+
+ # extra modprobe.d and depmod.d conf dirs
+ install -dm755 "$pkgdir/lib/modprobe.d" "$pkgdir/etc/depmod.d"
+
+ # Install custom depmod config to allow searching extramodules/
+ install -Dm644 "$srcdir/depmod.conf" "$pkgdir/etc/depmod.d/depmod.conf"
+
+ # Install our custom (empty) modprobe.conf
+ install -Dm644 "$srcdir/modprobe.conf" "$pkgdir/etc/modprobe.d/modprobe.conf"
+}
diff --git a/testing/module-init-tools/depmod.conf b/testing/module-init-tools/depmod.conf
new file mode 100644
index 000000000..3feb67b05
--- /dev/null
+++ b/testing/module-init-tools/depmod.conf
@@ -0,0 +1,5 @@
+#
+# /etc/depmod.d/depmod.conf
+#
+
+search updates extramodules built-in
diff --git a/testing/module-init-tools/docfix.patch b/testing/module-init-tools/docfix.patch
new file mode 100644
index 000000000..0151ca3f1
--- /dev/null
+++ b/testing/module-init-tools/docfix.patch
@@ -0,0 +1,90 @@
+--- doc/depmod.conf.sgml.orig 2011-06-25 10:07:15.897805024 -0400
++++ doc/depmod.conf.sgml 2011-06-25 10:07:48.810805020 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/depmod.sgml.orig 2011-06-25 10:07:15.898805024 -0400
++++ doc/depmod.sgml 2011-06-25 10:07:56.636805021 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+@@ -52,7 +52,7 @@
+ <arg><option>-n</option></arg>
+ <arg><option>-v</option></arg>
+ <arg><option>-P <replaceable>prefix</replaceable></option></arg>
+- <arg><option>-w</option><arg>
++ <arg><option>-w</option></arg>
+ <arg><option><replaceable>version</replaceable></option></arg>
+ <arg rep='repeat'><option><replaceable>filename</replaceable></option></arg>
+ </cmdsynopsis>
+--- doc/insmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
++++ doc/insmod.sgml 2011-06-25 10:07:59.228805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/lsmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
++++ doc/lsmod.sgml 2011-06-25 10:08:04.804805020 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modinfo.sgml.orig 2011-06-25 10:07:15.900805024 -0400
++++ doc/modinfo.sgml 2011-06-25 10:08:07.630805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modprobe.conf.sgml.orig 2011-06-25 10:07:15.901805024 -0400
++++ doc/modprobe.conf.sgml 2011-06-25 10:08:10.173805018 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modprobe.sgml.orig 2011-06-25 10:07:15.902805024 -0400
++++ doc/modprobe.sgml 2011-06-25 10:08:13.623805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modules.dep.sgml.orig 2011-06-25 10:07:15.903805024 -0400
++++ doc/modules.dep.sgml 2011-06-25 10:08:19.323805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/rmmod.sgml.orig 2011-06-25 10:07:15.904805024 -0400
++++ doc/rmmod.sgml 2011-06-25 10:08:27.691805017 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
diff --git a/testing/module-init-tools/modprobe.conf b/testing/module-init-tools/modprobe.conf
new file mode 100644
index 000000000..551bdfbdf
--- /dev/null
+++ b/testing/module-init-tools/modprobe.conf
@@ -0,0 +1,3 @@
+#
+# /etc/modprobe.d/modprobe.conf
+#
diff --git a/testing/openldap/PKGBUILD b/testing/openldap/PKGBUILD
new file mode 100644
index 000000000..8a06572b5
--- /dev/null
+++ b/testing/openldap/PKGBUILD
@@ -0,0 +1,96 @@
+# $Id: PKGBUILD 145019 2011-12-14 23:01:42Z eric $
+# Maintainer:
+
+pkgbase=openldap
+pkgname=('libldap' 'openldap')
+pkgver=2.4.28
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.openldap.org/"
+license=('custom')
+makedepends=('libfetch' 'libltdl' 'libsasl' 'e2fsprogs' 'util-linux')
+source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
+ slapd slapd.default ntlm.patch)
+sha1sums=('d888beae1723002a5a2ff5509d3040df40885774'
+ 'bd1ea19256d3d467f1f803e0f4046ef50f17628f'
+ 'd89b8a533045123f1ab46c9c430cf132d58a20a4'
+ 'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -Np1 -i "${srcdir}"/ntlm.patch
+ sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in
+ sed -i 's|#define LDAPI_SOCK LDAP_RUNDIR LDAP_DIRSEP "run" LDAP_DIRSEP "ldapi"|#define LDAPI_SOCK LDAP_DIRSEP "run" LDAP_DIRSEP "openldap" LDAP_DIRSEP "ldapi"|' include/ldap_defaults.h
+ sed -i 's|%LOCALSTATEDIR%/run|/run/openldap|' servers/slapd/slapd.conf
+ sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in
+
+ LDFLAGS="$LDFLAGS -L\"${pkgdir}\"/libldap/usr/lib"
+ ./configure --prefix=/usr --mandir=/usr/share/man --libexecdir=/usr/lib \
+ --sysconfdir=/etc --localstatedir=/var/lib/openldap \
+ --enable-ipv6 --enable-syslog --enable-local \
+ --enable-bdb --enable-hdb \
+ --enable-crypt --enable-dynamic \
+ --with-threads --disable-wrappers \
+ --enable-spasswd --with-cyrus-sasl \
+ --enable-overlays=mod --enable-modules=yes
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ make test
+}
+
+package_libldap() {
+ pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
+ depends=('libsasl' 'libfetch' 'e2fsprogs')
+ backup=('etc/openldap/ldap.conf')
+ options=('!libtool')
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ for dir in include libraries doc/man/man3 ; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ install -Dm644 doc/man/man5/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 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_openldap() {
+ pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
+ depends=("libldap>=${pkgver}" 'libltdl' 'util-linux')
+ backup=('etc/openldap/slapd.conf' 'etc/conf.d/slapd')
+ options=('!libtool' 'emptydirs')
+ install=openldap.install
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ for dir in clients servers doc/man/man{1,5,8} ; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ rm "${pkgdir}"/usr/share/man/man5/ldap.conf.5
+ rm -r "${pkgdir}"/run
+
+# get rid of duplicate default conf files
+ rm "${pkgdir}"/etc/openldap/*.default
+
+ ln -s ../lib/slapd "${pkgdir}"/usr/sbin/slapd
+
+ chown root:439 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
+ chmod 640 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
+
+ install -dm700 -o 439 -g 439 "${pkgdir}"/var/lib/openldap
+ install -dm700 -o 439 -g 439 "${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 -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/testing/openldap/ntlm.patch b/testing/openldap/ntlm.patch
new file mode 100644
index 000000000..6804b610d
--- /dev/null
+++ b/testing/openldap/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 ldif.c fetch.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 ldif.lo fetch.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 ldif.c fetch.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 ldif.lo fetch.lo
+
+ LDAP_INCDIR= ../../include
diff --git a/testing/openldap/openldap.install b/testing/openldap/openldap.install
new file mode 100644
index 000000000..cf3cb9f25
--- /dev/null
+++ b/testing/openldap/openldap.install
@@ -0,0 +1,20 @@
+post_install(){
+ groupadd -g 439 ldap &>/dev/null
+ useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
+ chown -R ldap:ldap var/lib/openldap &>/dev/null
+}
+
+post_upgrade(){
+ getent group ldap >/dev/null 2>&1 || groupadd -g 439 ldap &>/dev/null
+ getent passwd ldap >/dev/null 2>&1 || useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
+ chown -R ldap:ldap var/lib/openldap &>/dev/null
+}
+
+post_remove(){
+ if getent passwd ldap >/dev/null 2>&1; then
+ userdel ldap
+ fi
+ if getent group ldap >/dev/null 2>&1; then
+ groupdel ldap
+ fi
+}
diff --git a/testing/openldap/slapd b/testing/openldap/slapd
new file mode 100755
index 000000000..4f212da66
--- /dev/null
+++ b/testing/openldap/slapd
@@ -0,0 +1,49 @@
+#!/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"
+ [ ! -d /run/openldap ] && install -d -m755 -o ldap -g ldap /run/openldap
+ if [ -z "$PID" ]; then
+ if [ -z "$SLAPD_SERVICES" ]; then
+ /usr/sbin/slapd -u ldap -g ldap $SLAPD_OPTIONS
+ else
+ /usr/sbin/slapd -u ldap -g ldap -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 /run/openldap/slapd.pid
+ rm -f /run/openldap/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/testing/openldap/slapd.default b/testing/openldap/slapd.default
new file mode 100644
index 000000000..72ae2a6a7
--- /dev/null
+++ b/testing/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/testing/pcre/PKGBUILD b/testing/pcre/PKGBUILD
new file mode 100644
index 000000000..88e858d56
--- /dev/null
+++ b/testing/pcre/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 144981 2011-12-13 00:29:03Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=pcre
+pkgver=8.21
+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{,.sig})
+md5sums=('0a7b592bea64b7aa7f4011fc7171a730'
+ '4768871445dff956e620a9e902b4db55')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+ ./configure --prefix=/usr --enable-jit \
+ --enable-utf8 --enable-unicode-properties
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make check
+}
+
+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/testing/pyalpm/PKGBUILD b/testing/pyalpm/PKGBUILD
new file mode 100644
index 000000000..6053b3214
--- /dev/null
+++ b/testing/pyalpm/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer : Rémy Oudompheng <remy@archlinux.org>
+
+pkgname=pyalpm
+pkgver=0.5.3
+pkgrel=1
+pkgdesc="Libalpm bindings for Python 3"
+arch=('i686' 'x86_64')
+url="http://projects.archlinux.org/users/remy/pyalpm.git/"
+license=('GPL')
+depends=('python>=3.2' 'pacman>=4')
+source=("ftp://ftp.archlinux.org/other/pyalpm/$pkgname-$pkgver.tar.gz")
+md5sums=('a76019106d17de3a5933c773013a63d1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python setup.py build
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python setup.py install --root=${pkgdir}
+}
+
diff --git a/testing/shadow/LICENSE b/testing/shadow/LICENSE
new file mode 100644
index 000000000..c5ab15a56
--- /dev/null
+++ b/testing/shadow/LICENSE
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 1990 - 1994, Julianne Frances Haugh
+ * Copyright (c) 1996 - 2000, Marek Michałkiewicz
+ * Copyright (c) 2001 - 2006, Tomasz Kłoczko
+ * Copyright (c) 2007 - 2009, Nicolas François
+ * 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 copyright holders or contributors may not 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
+ * HOLDERS 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/testing/shadow/PKGBUILD b/testing/shadow/PKGBUILD
new file mode 100644
index 000000000..c7196a385
--- /dev/null
+++ b/testing/shadow/PKGBUILD
@@ -0,0 +1,107 @@
+# $Id: PKGBUILD 144103 2011-12-04 01:16:49Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=shadow
+pkgver=4.1.4.3
+pkgrel=5
+pkgdesc="Password and account management tool suite with support for shadow files and PAM"
+arch=('i686' 'x86_64')
+url='http://pkg-shadow.alioth.debian.org/'
+license=('BSD')
+groups=('base')
+depends=('bash' 'pam' 'acl')
+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
+#http://pkg-shadow.alioth.debian.org/releases/shadow-$pkgver.tar.bz2
+# shadow 4.1.4.3 is just shadow 4.1.4.2 with shadow_CVE-2011-0721.patch applied
+source=(ftp://ftp.archlinux.org/other/shadow/shadow_4.1.4.2+svn3283.orig.tar.gz
+ adduser chgpasswd chpasswd defaults.pam login login.defs newusers
+ passwd shadow.cron.daily useradd.defaults LICENSE
+ xstrdup.patch shadow_CVE-2011-0721.patch shadow-strncpy-usage.patch
+ shadow-add-missing-include.patch)
+sha1sums=('8b704b8f07718e329205f23d457c3121c0f3679e'
+ '78ec184a499f9708adcfcf0b7a3b22a60bf39f91'
+ '4ad0e059406a305c8640ed30d93c2a1f62c2f4ad'
+ '12427b1ca92a9b85ca8202239f0d9f50198b818f'
+ '0e56fed7fc93572c6bf0d8f3b099166558bb46f1'
+ '895aad07c192b288b457e19dd7b8c55841b4ad22'
+ 'e5cab2118ecb1e61874cde842d7d04d1003f35cb'
+ '12427b1ca92a9b85ca8202239f0d9f50198b818f'
+ '611be25d91c3f8f307c7fe2485d5f781e5dee75f'
+ '5d83ba7e11c765c951867cbe00b0ae7ff57148fa'
+ '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'
+ '33a6cf1e44a1410e5c9726c89e5de68b78f5f922'
+ '6010fffeed1fc6673ad9875492e1193b1a847b53'
+ '6bfe6528391eb38d338beacedd620407877b637d'
+ '9db9e62ad173f31e1039121c0124cf60826ffd7e'
+ '0697a21f7519de30821da7772677035652df4ad2')
+
+build() {
+ cd "$srcdir/$pkgname-4.1.4.2+svn3283"
+
+ #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 -p1 -i "$srcdir/xstrdup.patch"
+ patch -p1 -i "$srcdir/shadow_CVE-2011-0721.patch"
+ patch -p1 -i "$srcdir/shadow-strncpy-usage.patch"
+ patch -p1 -i "$srcdir/shadow-add-missing-include.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-4.1.4.2+svn3283"
+ make DESTDIR="$pkgdir" install
+
+ # license
+ install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE"
+
+ # 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 - custom
+ 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 "$pkgdir/bin/su"
+ find "$pkgdir/usr/share/man" -name 'su.1' -delete
+}
diff --git a/testing/shadow/adduser b/testing/shadow/adduser
new file mode 100644
index 000000000..a5d7fd4fa
--- /dev/null
+++ b/testing/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/testing/shadow/chgpasswd b/testing/shadow/chgpasswd
new file mode 100644
index 000000000..8f49f5cc8
--- /dev/null
+++ b/testing/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/testing/shadow/chpasswd b/testing/shadow/chpasswd
new file mode 100644
index 000000000..5d447985a
--- /dev/null
+++ b/testing/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 sha512 shadow
diff --git a/testing/shadow/defaults.pam b/testing/shadow/defaults.pam
new file mode 100644
index 000000000..a7bf8a4a5
--- /dev/null
+++ b/testing/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/testing/shadow/login b/testing/shadow/login
new file mode 100644
index 000000000..b8555f89c
--- /dev/null
+++ b/testing/shadow/login
@@ -0,0 +1,21 @@
+#%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 sha512 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
+-session optional pam_systemd.so
diff --git a/testing/shadow/login.defs b/testing/shadow/login.defs
new file mode 100644
index 000000000..2500ee447
--- /dev/null
+++ b/testing/shadow/login.defs
@@ -0,0 +1,197 @@
+#
+# /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
+
+#
+# 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/testing/shadow/newusers b/testing/shadow/newusers
new file mode 100644
index 000000000..5d447985a
--- /dev/null
+++ b/testing/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 sha512 shadow
diff --git a/testing/shadow/passwd b/testing/shadow/passwd
new file mode 100644
index 000000000..ab56da496
--- /dev/null
+++ b/testing/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 sha512 shadow use_authtok
+password required pam_unix.so sha512 shadow nullok
diff --git a/testing/shadow/shadow-add-missing-include.patch b/testing/shadow/shadow-add-missing-include.patch
new file mode 100644
index 000000000..5c9e946ef
--- /dev/null
+++ b/testing/shadow/shadow-add-missing-include.patch
@@ -0,0 +1,11 @@
+diff -Naur shadow-4.1.4.2+svn3283/libmisc/copydir.c shadow-4.1.4.2+svn3283.new/libmisc/copydir.c
+--- shadow-4.1.4.2+svn3283/libmisc/copydir.c 2010-09-05 11:35:26.000000000 -0400
++++ shadow-4.1.4.2+svn3283.new/libmisc/copydir.c 2011-06-26 01:26:52.000000000 -0400
+@@ -34,6 +34,7 @@
+
+ #ident "$Id: copydir.c 3283 2010-09-05 15:34:42Z nekral-guest $"
+
++#include <stdarg.h>
+ #include <assert.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
diff --git a/testing/shadow/shadow-strncpy-usage.patch b/testing/shadow/shadow-strncpy-usage.patch
new file mode 100644
index 000000000..46df74ace
--- /dev/null
+++ b/testing/shadow/shadow-strncpy-usage.patch
@@ -0,0 +1,27 @@
+diff -ur shadow-4.1.4.3.orig/src/login.c shadow-4.1.4.3/src/login.c
+--- shadow-4.1.4.3.orig/src/login.c 2011-03-05 22:17:10.032524948 -0800
++++ shadow-4.1.4.3/src/login.c 2011-03-05 22:17:59.154342059 -0800
+@@ -748,8 +748,9 @@
+ sizeof (loginprompt),
+ _("%s login: "), hostn);
+ } else {
++ loginprompt[sizeof (loginprompt) - 1] = '\0';
+ strncpy (loginprompt, _("login: "),
+- sizeof (loginprompt));
++ sizeof (loginprompt) - 1);
+ }
+
+ retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
+diff -ur shadow-4.1.4.3.orig/src/usermod.c shadow-4.1.4.3/src/usermod.c
+--- shadow-4.1.4.3.orig/src/usermod.c 2011-03-05 22:17:10.029191265 -0800
++++ shadow-4.1.4.3/src/usermod.c 2011-03-05 22:18:42.665576968 -0800
+@@ -182,7 +182,8 @@
+ struct tm *tp;
+
+ if ((negativ != NULL) && (date < 0)) {
+- strncpy (buf, negativ, maxsize);
++ buf[maxsize - 1] = '\0';
++ strncpy (buf, negativ, maxsize - 1);
+ } else {
+ time_t t = (time_t) date;
+ tp = gmtime (&t);
diff --git a/testing/shadow/shadow.cron.daily b/testing/shadow/shadow.cron.daily
new file mode 100755
index 000000000..1931a793e
--- /dev/null
+++ b/testing/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/testing/shadow/shadow.install b/testing/shadow/shadow.install
new file mode 100644
index 000000000..e990bfe39
--- /dev/null
+++ b/testing/shadow/shadow.install
@@ -0,0 +1,9 @@
+post_upgrade() {
+ grpck -r >/dev/null 2>&1
+ if [ $? -eq 2 ]; then
+ printf '%s\n' \
+ "==> Warning: /etc/group or /etc/gshadow are inconsistant." \
+ " Run 'grpck' to correct this."
+ fi
+ return 0
+}
diff --git a/testing/shadow/shadow_CVE-2011-0721.patch b/testing/shadow/shadow_CVE-2011-0721.patch
new file mode 100644
index 000000000..eb9ad80a2
--- /dev/null
+++ b/testing/shadow/shadow_CVE-2011-0721.patch
@@ -0,0 +1,57 @@
+Goal: Input sanitization for chfn and chsh
+
+Fixes: CVE-2011-0721
+
+Status wrt upstream: Already applied upstream (4.1.4.3)
+
+--- a/src/chfn.c
++++ b/src/chfn.c
+@@ -551,14 +551,14 @@
+ static void check_fields (void)
+ {
+ int err;
+- err = valid_field (fullnm, ":,=");
++ err = valid_field (fullnm, ":,=\n");
+ if (err > 0) {
+ fprintf (stderr, _("%s: name with non-ASCII characters: '%s'\n"), Prog, fullnm);
+ } else if (err < 0) {
+ fprintf (stderr, _("%s: invalid name: '%s'\n"), Prog, fullnm);
+ fail_exit (E_NOPERM);
+ }
+- err = valid_field (roomno, ":,=");
++ err = valid_field (roomno, ":,=\n");
+ if (err > 0) {
+ fprintf (stderr, _("%s: room number with non-ASCII characters: '%s'\n"), Prog, roomno);
+ } else if (err < 0) {
+@@ -566,17 +566,17 @@
+ Prog, roomno);
+ fail_exit (E_NOPERM);
+ }
+- if (valid_field (workph, ":,=") != 0) {
++ if (valid_field (workph, ":,=\n") != 0) {
+ fprintf (stderr, _("%s: invalid work phone: '%s'\n"),
+ Prog, workph);
+ fail_exit (E_NOPERM);
+ }
+- if (valid_field (homeph, ":,=") != 0) {
++ if (valid_field (homeph, ":,=\n") != 0) {
+ fprintf (stderr, _("%s: invalid home phone: '%s'\n"),
+ Prog, homeph);
+ fail_exit (E_NOPERM);
+ }
+- err = valid_field (slop, ":");
++ err = valid_field (slop, ":\n");
+ if (err > 0) {
+ fprintf (stderr, _("%s: '%s' contains non-ASCII characters\n"), Prog, slop);
+ } else if (err < 0) {
+--- a/src/chsh.
++++ b/src/chsh.c
+@@ -528,7 +528,7 @@
+ * users are restricted to using the shells in /etc/shells.
+ * The shell must be executable by the user.
+ */
+- if (valid_field (loginsh, ":,=") != 0) {
++ if (valid_field (loginsh, ":,=\n") != 0) {
+ fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog, loginsh);
+ fail_exit (1);
+ }
diff --git a/testing/shadow/useradd.defaults b/testing/shadow/useradd.defaults
new file mode 100644
index 000000000..b800b1777
--- /dev/null
+++ b/testing/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/testing/shadow/xstrdup.patch b/testing/shadow/xstrdup.patch
new file mode 100644
index 000000000..bce434264
--- /dev/null
+++ b/testing/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/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD
new file mode 100644
index 000000000..9d587905d
--- /dev/null
+++ b/testing/subversion/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 144461 2011-12-06 07:12:44Z eric $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=subversion
+pkgver=1.7.2
+pkgrel=1
+pkgdesc="A Modern Concurrent Version Control System"
+arch=('i686' 'x86_64')
+license=('APACHE')
+depends=('neon' 'apr-util' 'sqlite3' 'file')
+optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \
+ 'python2: for some hook scripts' 'ruby: for some hook scripts')
+makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'java-runtime' 'java-environment'
+ 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
+backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
+url="http://subversion.apache.org/"
+provides=('svn')
+options=('!makeflags' '!libtool')
+source=(http://apache.mirror.rafal.ca/subversion/$pkgname-$pkgver.tar.bz2{,.asc}
+ svnserve svn svnserve.conf svnmerge.py
+ subversion.rpath.fix.patch)
+sha1sums=('8c0824aeb7f42da1ff4f7cd296877af7f59812bb'
+ '66293923ddc1b12a43b0e86f6b6a3c23b70df6ae'
+ '64ba3e6ebafc08ac62f59d788f7a825fdce69573'
+ '73b36c046c09cec2093354911c89e3ba8056af6c'
+ 'ad117bf3b2a838a9a678a93fd8db1a066ad46c41'
+ 'd240228e5755495c26e89d7ef47a75fb097dd040'
+ '3d1e28408a9abb42af2e531adc0d01ce21acfad6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export PYTHON=/usr/bin/python2
+
+ patch -p0 -i ../subversion.rpath.fix.patch
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py
+
+ ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
+ --with-zlib=/usr --with-neon=/usr --with-apxs \
+ --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.2 \
+ --enable-javahl --with-gnome-keyring --with-kwallet
+
+ make external-all
+ make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all
+ make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
+ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl # swig-rb
+}
+
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# export LANG=C LC_ALL=C
+# make check check-swig-pl check-swig-py check-javahl CLEANUP=yes # check-swig-rb
+#}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export LD_LIBRARY_PATH="${pkgdir}"/usr/lib:$LD_LIBRARY_PATH
+ make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \
+ swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
+ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
+ install install-swig-py install-swig-pl install-javahl # install-swig-rb
+
+ install -d "${pkgdir}"/usr/share/subversion
+ cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/
+ rm -f "${pkgdir}"/usr/share/subversion/hook-scripts/*.in
+
+ rm -f "${pkgdir}"/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist
+ rm -rf "${pkgdir}"/usr/lib/perl5/core_perl
+
+ install -D -m 755 "${srcdir}"/svnserve "${pkgdir}"/etc/rc.d/svnserve
+ install -D -m 644 "${srcdir}"/svn "${pkgdir}"/etc/xinetd.d/svn
+ install -D -m 644 "${srcdir}"/svnserve.conf "${pkgdir}"/etc/conf.d/svnserve
+ install -m 755 "${srcdir}"/svnmerge.py "${pkgdir}"/usr/bin/svnmerge
+
+ # bash completion
+ install -Dm 644 tools/client-side/bash_completion \
+ "${pkgdir}"/etc/bash_completion.d/subversion
+}
diff --git a/testing/subversion/subversion.rpath.fix.patch b/testing/subversion/subversion.rpath.fix.patch
new file mode 100644
index 000000000..ba6ee9e4e
--- /dev/null
+++ b/testing/subversion/subversion.rpath.fix.patch
@@ -0,0 +1,10 @@
+--- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200
++++ Makefile.in 2009-06-04 00:56:29.000000000 -0300
+@@ -678,6 +678,7 @@
+
+ $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
+ cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
++ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}}
+
+ swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
+ $(SWIG_PL_DIR)/native/Makefile
diff --git a/testing/subversion/svn b/testing/subversion/svn
new file mode 100644
index 000000000..8988aaf63
--- /dev/null
+++ b/testing/subversion/svn
@@ -0,0 +1,11 @@
+service svn
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/bin/svnserve
+ server_args = -i
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/subversion/svnmerge.py b/testing/subversion/svnmerge.py
new file mode 100644
index 000000000..d8931648f
--- /dev/null
+++ b/testing/subversion/svnmerge.py
@@ -0,0 +1,2370 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+# Copyright (c) 2005, Giovanni Bajo
+# Copyright (c) 2004-2005, Awarix, Inc.
+# All rights reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+# Author: Archie Cobbs <archie at awarix dot com>
+# Rewritten in Python by: Giovanni Bajo <rasky at develer dot com>
+#
+# Acknowledgments:
+# John Belmonte <john at neggie dot net> - metadata and usability
+# improvements
+# Blair Zajac <blair at orcaware dot com> - random improvements
+# Raman Gupta <rocketraman at fastmail dot fm> - bidirectional and transitive
+# merging support
+# Dustin J. Mitchell <dustin at zmanda dot com> - support for multiple
+# location identifier formats
+#
+# $HeadURL$
+# $LastChangedDate$
+# $LastChangedBy$
+# $LastChangedRevision$
+#
+# Requisites:
+# svnmerge.py has been tested with all SVN major versions since 1.1 (both
+# client and server). It is unknown if it works with previous versions.
+#
+# Differences from svnmerge.sh:
+# - More portable: tested as working in FreeBSD and OS/2.
+# - Add double-verbose mode, which shows every svn command executed (-v -v).
+# - "svnmerge avail" now only shows commits in source, not also commits in
+# other parts of the repository.
+# - Add "svnmerge block" to flag some revisions as blocked, so that
+# they will not show up anymore in the available list. Added also
+# the complementary "svnmerge unblock".
+# - "svnmerge avail" has grown two new options:
+# -B to display a list of the blocked revisions
+# -A to display both the blocked and the available revisions.
+# - Improved generated commit message to make it machine parsable even when
+# merging commits which are themselves merges.
+# - Add --force option to skip working copy check
+# - Add --record-only option to "svnmerge merge" to avoid performing
+# an actual merge, yet record that a merge happened.
+# - Can use a variety of location-identifier formats
+#
+# TODO:
+# - Add "svnmerge avail -R": show logs in reverse order
+#
+# Information for Hackers:
+#
+# Identifiers for branches:
+# A branch is identified in three ways within this source:
+# - as a working copy (variable name usually includes 'dir')
+# - as a fully qualified URL
+# - as a path identifier (an opaque string indicating a particular path
+# in a particular repository; variable name includes 'pathid')
+# A "target" is generally user-specified, and may be a working copy or
+# a URL.
+
+import sys, os, getopt, re, types, tempfile, time, locale
+from bisect import bisect
+from xml.dom import pulldom
+
+NAME = "svnmerge"
+if not hasattr(sys, "version_info") or sys.version_info < (2, 0):
+ error("requires Python 2.0 or newer")
+
+# Set up the separator used to separate individual log messages from
+# each revision merged into the target location. Also, create a
+# regular expression that will find this same separator in already
+# committed log messages, so that the separator used for this run of
+# svnmerge.py will have one more LOG_SEPARATOR appended to the longest
+# separator found in all the commits.
+LOG_SEPARATOR = 8 * '.'
+LOG_SEPARATOR_RE = re.compile('^((%s)+)' % re.escape(LOG_SEPARATOR),
+ re.MULTILINE)
+
+# Each line of the embedded log messages will be prefixed by LOG_LINE_PREFIX.
+LOG_LINE_PREFIX = 2 * ' '
+
+# Set python to the default locale as per environment settings, same as svn
+# TODO we should really parse config and if log-encoding is specified, set
+# the locale to match that encoding
+locale.setlocale(locale.LC_ALL, '')
+
+# We want the svn output (such as svn info) to be non-localized
+# Using LC_MESSAGES should not affect localized output of svn log, for example
+if os.environ.has_key("LC_ALL"):
+ del os.environ["LC_ALL"]
+os.environ["LC_MESSAGES"] = "C"
+
+###############################################################################
+# Support for older Python versions
+###############################################################################
+
+# True/False constants are Python 2.2+
+try:
+ True, False
+except NameError:
+ True, False = 1, 0
+
+def lstrip(s, ch):
+ """Replacement for str.lstrip (support for arbitrary chars to strip was
+ added in Python 2.2.2)."""
+ i = 0
+ try:
+ while s[i] == ch:
+ i = i+1
+ return s[i:]
+ except IndexError:
+ return ""
+
+def rstrip(s, ch):
+ """Replacement for str.rstrip (support for arbitrary chars to strip was
+ added in Python 2.2.2)."""
+ try:
+ if s[-1] != ch:
+ return s
+ i = -2
+ while s[i] == ch:
+ i = i-1
+ return s[:i+1]
+ except IndexError:
+ return ""
+
+def strip(s, ch):
+ """Replacement for str.strip (support for arbitrary chars to strip was
+ added in Python 2.2.2)."""
+ return lstrip(rstrip(s, ch), ch)
+
+def rsplit(s, sep, maxsplits=0):
+ """Like str.rsplit, which is Python 2.4+ only."""
+ L = s.split(sep)
+ if not 0 < maxsplits <= len(L):
+ return L
+ return [sep.join(L[0:-maxsplits])] + L[-maxsplits:]
+
+###############################################################################
+
+def kwextract(s):
+ """Extract info from a svn keyword string."""
+ try:
+ return strip(s, "$").strip().split(": ")[1]
+ except IndexError:
+ return "<unknown>"
+
+__revision__ = kwextract('$Rev$')
+__date__ = kwextract('$Date$')
+
+# Additional options, not (yet?) mapped to command line flags
+default_opts = {
+ "svn": "svn",
+ "prop": NAME + "-integrated",
+ "block-prop": NAME + "-blocked",
+ "commit-verbose": True,
+ "verbose": 0,
+}
+logs = {}
+
+def console_width():
+ """Get the width of the console screen (if any)."""
+ try:
+ return int(os.environ["COLUMNS"])
+ except (KeyError, ValueError):
+ pass
+
+ try:
+ # Call the Windows API (requires ctypes library)
+ from ctypes import windll, create_string_buffer
+ h = windll.kernel32.GetStdHandle(-11)
+ csbi = create_string_buffer(22)
+ res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
+ if res:
+ import struct
+ (bufx, bufy,
+ curx, cury, wattr,
+ left, top, right, bottom,
+ maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
+ return right - left + 1
+ except ImportError:
+ pass
+
+ # Parse the output of stty -a
+ if os.isatty(1):
+ out = os.popen("stty -a").read()
+ m = re.search(r"columns (\d+);", out)
+ if m:
+ return int(m.group(1))
+
+ # sensible default
+ return 80
+
+def error(s):
+ """Subroutine to output an error and bail."""
+ print >> sys.stderr, "%s: %s" % (NAME, s)
+ sys.exit(1)
+
+def report(s):
+ """Subroutine to output progress message, unless in quiet mode."""
+ if opts["verbose"]:
+ print "%s: %s" % (NAME, s)
+
+def prefix_lines(prefix, lines):
+ """Given a string representing one or more lines of text, insert the
+ specified prefix at the beginning of each line, and return the result.
+ The input must be terminated by a newline."""
+ assert lines[-1] == "\n"
+ return prefix + lines[:-1].replace("\n", "\n"+prefix) + "\n"
+
+def recode_stdout_to_file(s):
+ if locale.getdefaultlocale()[1] is None or not hasattr(sys.stdout, "encoding") \
+ or sys.stdout.encoding is None:
+ return s
+ u = s.decode(sys.stdout.encoding)
+ return u.encode(locale.getdefaultlocale()[1])
+
+class LaunchError(Exception):
+ """Signal a failure in execution of an external command. Parameters are the
+ exit code of the process, the original command line, and the output of the
+ command."""
+
+try:
+ """Launch a sub-process. Return its output (both stdout and stderr),
+ optionally split by lines (if split_lines is True). Raise a LaunchError
+ exception if the exit code of the process is non-zero (failure).
+
+ This function has two implementations, one based on subprocess (preferred),
+ and one based on popen (for compatibility).
+ """
+ import subprocess
+ import shlex
+
+ def launch(cmd, split_lines=True):
+ # Requiring python 2.4 or higher, on some platforms we get
+ # much faster performance from the subprocess module (where python
+ # doesn't try to close an exhorbitant number of file descriptors)
+ stdout = ""
+ stderr = ""
+ try:
+ if os.name == 'nt':
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, \
+ close_fds=False, stderr=subprocess.PIPE)
+ else:
+ # Use shlex to break up the parameters intelligently,
+ # respecting quotes. shlex can't handle unicode.
+ args = shlex.split(cmd.encode('ascii'))
+ p = subprocess.Popen(args, stdout=subprocess.PIPE, \
+ close_fds=False, stderr=subprocess.PIPE)
+ stdoutAndErr = p.communicate()
+ stdout = stdoutAndErr[0]
+ stderr = stdoutAndErr[1]
+ except OSError, inst:
+ # Using 1 as failure code; should get actual number somehow? For
+ # examples see svnmerge_test.py's TestCase_launch.test_failure and
+ # TestCase_launch.test_failurecode.
+ raise LaunchError(1, cmd, stdout + " " + stderr + ": " + str(inst))
+
+ if p.returncode == 0:
+ if split_lines:
+ # Setting keepends=True for compatibility with previous logic
+ # (where file.readlines() preserves newlines)
+ return stdout.splitlines(True)
+ else:
+ return stdout
+ else:
+ raise LaunchError(p.returncode, cmd, stdout + stderr)
+except ImportError:
+ # support versions of python before 2.4 (slower on some systems)
+ def launch(cmd, split_lines=True):
+ if os.name not in ['nt', 'os2']:
+ import popen2
+ p = popen2.Popen4(cmd)
+ p.tochild.close()
+ if split_lines:
+ out = p.fromchild.readlines()
+ else:
+ out = p.fromchild.read()
+ ret = p.wait()
+ if ret == 0:
+ ret = None
+ else:
+ ret >>= 8
+ else:
+ i,k = os.popen4(cmd)
+ i.close()
+ if split_lines:
+ out = k.readlines()
+ else:
+ out = k.read()
+ ret = k.close()
+
+ if ret is None:
+ return out
+ raise LaunchError(ret, cmd, out)
+
+def launchsvn(s, show=False, pretend=False, **kwargs):
+ """Launch SVN and grab its output."""
+ username = password = configdir = ""
+ if opts.get("username", None):
+ username = "--username=" + opts["username"]
+ if opts.get("password", None):
+ password = "--password=" + opts["password"]
+ if opts.get("config-dir", None):
+ configdir = "--config-dir=" + opts["config-dir"]
+ cmd = ' '.join(filter(None, [opts["svn"], "--non-interactive",
+ username, password, configdir, s]))
+ if show or opts["verbose"] >= 2:
+ print cmd
+ if pretend:
+ return None
+ return launch(cmd, **kwargs)
+
+def svn_command(s):
+ """Do (or pretend to do) an SVN command."""
+ out = launchsvn(s, show=opts["show-changes"] or opts["dry-run"],
+ pretend=opts["dry-run"],
+ split_lines=False)
+ if not opts["dry-run"]:
+ print out
+
+def check_dir_clean(dir):
+ """Check the current status of dir for local mods."""
+ if opts["force"]:
+ report('skipping status check because of --force')
+ return
+ report('checking status of "%s"' % dir)
+
+ # Checking with -q does not show unversioned files or external
+ # directories. Though it displays a debug message for external
+ # directories, after a blank line. So, practically, the first line
+ # matters: if it's non-empty there is a modification.
+ out = launchsvn("status -q %s" % dir)
+ if out and out[0].strip():
+ error('"%s" has local modifications; it must be clean' % dir)
+
+class PathIdentifier:
+ """Abstraction for a path identifier, so that we can start talking
+ about it before we know the form that it takes in the properties (its
+ external_form). Objects are referenced in the class variable 'locobjs',
+ keyed by all known forms."""
+
+ # a map of UUID (or None) to repository root URL.
+ repo_hints = {}
+
+ # a map from any known string form to the corresponding PathIdentifier
+ locobjs = {}
+
+ def __init__(self, repo_relative_path, uuid=None, url=None, external_form=None):
+ self.repo_relative_path = repo_relative_path
+ self.uuid = uuid
+ self.url = url
+ self.external_form = external_form
+
+ def __repr__(self):
+ return "<PathIdentifier " + ', '.join('%s=%r' % i for i in self.__dict__.items()) + '>'
+
+ def __str__(self):
+ """Return a printable string representation"""
+ if self.external_form:
+ return self.external_form
+ if self.url:
+ return self.format('url')
+ if self.uuid:
+ return self.format('uuid')
+ return self.format('path')
+
+ def from_pathid(pathid_str):
+ """convert pathid_str to a PathIdentifier"""
+ if not PathIdentifier.locobjs.has_key(pathid_str):
+ if is_url(pathid_str):
+ # we can determine every form; PathIdentifier.hint knows how to do that
+ PathIdentifier.hint(pathid_str)
+ elif pathid_str[:7] == 'uuid://':
+ mo = re.match('uuid://([^/]*)(.*)', pathid_str)
+ if not mo:
+ error("Invalid path identifier '%s'" % pathid_str)
+ uuid, repo_relative_path = mo.groups()
+ pathid = PathIdentifier(repo_relative_path, uuid=uuid)
+ # we can cache this by uuid:// pathid and by repo-relative path
+ PathIdentifier.locobjs[pathid_str] = PathIdentifier.locobjs[repo_relative_path] = pathid
+ elif pathid_str and pathid_str[0] == '/':
+ # strip any trailing slashes
+ pathid_str = pathid_str.rstrip('/')
+ pathid = PathIdentifier(repo_relative_path=pathid_str)
+ # we can only cache this by repo-relative path
+ PathIdentifier.locobjs[pathid_str] = pathid
+ else:
+ error("Invalid path identifier '%s'" % pathid_str)
+ return PathIdentifier.locobjs[pathid_str]
+ from_pathid = staticmethod(from_pathid)
+
+ def from_target(target):
+ """Convert a target (either a working copy path or an URL) into a
+ path identifier."""
+ # prime the cache first if we don't know about this target yet
+ if not PathIdentifier.locobjs.has_key(target):
+ PathIdentifier.hint(target)
+
+ try:
+ return PathIdentifier.locobjs[target]
+ except KeyError:
+ error("Could not recognize path identifier '%s'" % target)
+ from_target = staticmethod(from_target)
+
+ def hint(target):
+ """Cache some information about target, as it may be referenced by
+ repo-relative path in subversion properties; the cache can help to
+ expand such a relative path to a full path identifier."""
+ if PathIdentifier.locobjs.has_key(target): return
+ if not is_url(target) and not is_wc(target): return
+
+ url = target_to_url(target)
+
+ root = get_repo_root(url)
+ assert root[-1] != "/"
+ assert url[:len(root)] == root, "url=%r, root=%r" % (url, root)
+ repo_relative_path = url[len(root):]
+
+ try:
+ uuid = get_svninfo(target)['Repository UUID']
+ uuid_pathid = 'uuid://%s%s' % (uuid, repo_relative_path)
+ except KeyError:
+ uuid = None
+ uuid_pathid = None
+
+ locobj = PathIdentifier.locobjs.get(url) or \
+ (uuid_pathid and PathIdentifier.locobjs.get(uuid_pathid))
+ if not locobj:
+ locobj = PathIdentifier(repo_relative_path, uuid=uuid, url=url)
+
+ PathIdentifier.repo_hints[uuid] = root # (uuid may be None)
+
+ PathIdentifier.locobjs[target] = locobj
+ PathIdentifier.locobjs[url] = locobj
+ if uuid_pathid:
+ PathIdentifier.locobjs[uuid_pathid] = locobj
+ if not PathIdentifier.locobjs.has_key(repo_relative_path):
+ PathIdentifier.locobjs[repo_relative_path] = locobj
+ hint = staticmethod(hint)
+
+ def format(self, fmt):
+ if fmt == 'path':
+ return self.repo_relative_path
+ elif fmt == 'uuid':
+ return "uuid://%s%s" % (self.uuid, self.repo_relative_path)
+ elif fmt == 'url':
+ return self.url
+ else:
+ error("Unkonwn path type '%s'" % fmt)
+
+ def match_substring(self, str):
+ """Test whether str is a substring of any representation of this
+ PathIdentifier."""
+ if self.repo_relative_path.find(str) >= 0:
+ return True
+
+ if self.uuid:
+ if ("uuid://%s%s" % (self.uuid, self.repo_relative_path)).find(str) >= 0:
+ return True
+
+ if self.url:
+ if (self.url + self.repo_relative_path).find(str) >= 0:
+ return True
+
+ return False
+
+ def get_url(self):
+ """Convert a pathid into a URL. If this is not possible, error out."""
+ if self.url:
+ return self.url
+ # if we have a uuid and happen to know the URL for it, use that
+ elif self.uuid and PathIdentifier.repo_hints.has_key(self.uuid):
+ self.url = PathIdentifier.repo_hints[self.uuid] + self.repo_relative_path
+ PathIdentifier.locobjs[self.url] = self
+ return self.url
+ # if we've only seen one rep, use that (a guess, but an educated one)
+ elif not self.uuid and len(PathIdentifier.repo_hints) == 1:
+ uuid, root = PathIdentifier.repo_hints.items()[0]
+ if uuid:
+ self.uuid = uuid
+ PathIdentifier.locobjs['uuid://%s%s' % (uuid, self.repo_relative_path)] = self
+ self.url = root + self.repo_relative_path
+ PathIdentifier.locobjs[self.url] = self
+ report("Guessing that '%s' refers to '%s'" % (self, self.url))
+ return self.url
+ else:
+ error("Cannot determine URL for '%s'; " % self +
+ "Explicit source argument (-S/--source) required.\n")
+
+class RevisionLog:
+ """
+ A log of the revisions which affected a given URL between two
+ revisions.
+ """
+
+ def __init__(self, url, begin, end, find_propchanges=False):
+ """
+ Create a new RevisionLog object, which stores, in self.revs, a list
+ of the revisions which affected the specified URL between begin and
+ end. If find_propchanges is True, self.propchange_revs will contain a
+ list of the revisions which changed properties directly on the
+ specified URL. URL must be the URL for a directory in the repository.
+ """
+ self.url = url
+
+ # Setup the log options (--quiet, so we don't show log messages)
+ log_opts = '--xml --quiet -r%s:%s "%s"' % (begin, end, url)
+ if find_propchanges:
+ # The --verbose flag lets us grab merge tracking information
+ # by looking at propchanges
+ log_opts = "--verbose " + log_opts
+
+ # Read the log to look for revision numbers and merge-tracking info
+ self.revs = []
+ self.propchange_revs = []
+ repos_pathid = PathIdentifier.from_target(url)
+ for chg in SvnLogParser(launchsvn("log %s" % log_opts,
+ split_lines=False)):
+ self.revs.append(chg.revision())
+ for p in chg.paths():
+ if p.action() == 'M' and p.pathid() == repos_pathid.repo_relative_path:
+ self.propchange_revs.append(chg.revision())
+
+ # Save the range of the log
+ self.begin = int(begin)
+ if end == "HEAD":
+ # If end is not provided, we do not know which is the latest
+ # revision in the repository. So we set 'end' to the latest
+ # known revision.
+ self.end = self.revs[-1]
+ else:
+ self.end = int(end)
+
+ self._merges = None
+ self._blocks = None
+
+ def merge_metadata(self):
+ """
+ Return a VersionedProperty object, with a cached view of the merge
+ metadata in the range of this log.
+ """
+
+ # Load merge metadata if necessary
+ if not self._merges:
+ self._merges = VersionedProperty(self.url, opts["prop"])
+ self._merges.load(self)
+
+ return self._merges
+
+ def block_metadata(self):
+ if not self._blocks:
+ self._blocks = VersionedProperty(self.url, opts["block-prop"])
+ self._blocks.load(self)
+
+ return self._blocks
+
+
+class VersionedProperty:
+ """
+ A read-only, cached view of a versioned property.
+
+ self.revs contains a list of the revisions in which the property changes.
+ self.values stores the new values at each corresponding revision. If the
+ value of the property is unknown, it is set to None.
+
+ Initially, we set self.revs to [0] and self.values to [None]. This
+ indicates that, as of revision zero, we know nothing about the value of
+ the property.
+
+ Later, if you run self.load(log), we cache the value of this property over
+ the entire range of the log by noting each revision in which the property
+ was changed. At the end of the range of the log, we invalidate our cache
+ by adding the value "None" to our cache for any revisions which fall out
+ of the range of our log.
+
+ Once self.revs and self.values are filled, we can find the value of the
+ property at any arbitrary revision using a binary search on self.revs.
+ Once we find the last revision during which the property was changed,
+ we can lookup the associated value in self.values. (If the associated
+ value is None, the associated value was not cached and we have to do
+ a full propget.)
+
+ An example: We know that the 'svnmerge' property was added in r10, and
+ changed in r21. We gathered log info up until r40.
+
+ revs = [0, 10, 21, 40]
+ values = [None, "val1", "val2", None]
+
+ What these values say:
+ - From r0 to r9, we know nothing about the property.
+ - In r10, the property was set to "val1". This property stayed the same
+ until r21, when it was changed to "val2".
+ - We don't know what happened after r40.
+ """
+
+ def __init__(self, url, name):
+ """View the history of a versioned property at URL with name"""
+ self.url = url
+ self.name = name
+
+ # We know nothing about the value of the property. Setup revs
+ # and values to indicate as such.
+ self.revs = [0]
+ self.values = [None]
+
+ # We don't have any revisions cached
+ self._initial_value = None
+ self._changed_revs = []
+ self._changed_values = []
+
+ def load(self, log):
+ """
+ Load the history of property changes from the specified
+ RevisionLog object.
+ """
+
+ # Get the property value before the range of the log
+ if log.begin > 1:
+ self.revs.append(log.begin-1)
+ try:
+ self._initial_value = self.raw_get(log.begin-1)
+ except LaunchError:
+ # The specified URL might not exist before the
+ # range of the log. If so, we can safely assume
+ # that the property was empty at that time.
+ self._initial_value = { }
+ self.values.append(self._initial_value)
+ else:
+ self._initial_value = { }
+ self.values[0] = self._initial_value
+
+ # Cache the property values in the log range
+ old_value = self._initial_value
+ for rev in log.propchange_revs:
+ new_value = self.raw_get(rev)
+ if new_value != old_value:
+ self._changed_revs.append(rev)
+ self._changed_values.append(new_value)
+ self.revs.append(rev)
+ self.values.append(new_value)
+ old_value = new_value
+
+ # Indicate that we know nothing about the value of the property
+ # after the range of the log.
+ if log.revs:
+ self.revs.append(log.end+1)
+ self.values.append(None)
+
+ def raw_get(self, rev=None):
+ """
+ Get the property at revision REV. If rev is not specified, get
+ the property at revision HEAD.
+ """
+ return get_revlist_prop(self.url, self.name, rev)
+
+ def get(self, rev=None):
+ """
+ Get the property at revision REV. If rev is not specified, get
+ the property at revision HEAD.
+ """
+
+ if rev is not None:
+
+ # Find the index using a binary search
+ i = bisect(self.revs, rev) - 1
+
+ # Return the value of the property, if it was cached
+ if self.values[i] is not None:
+ return self.values[i]
+
+ # Get the current value of the property
+ return self.raw_get(rev)
+
+ def changed_revs(self, key=None):
+ """
+ Get a list of the revisions in which the specified dictionary
+ key was changed in this property. If key is not specified,
+ return a list of revisions in which any key was changed.
+ """
+ if key is None:
+ return self._changed_revs
+ else:
+ changed_revs = []
+ old_val = self._initial_value
+ for rev, val in zip(self._changed_revs, self._changed_values):
+ if val.get(key) != old_val.get(key):
+ changed_revs.append(rev)
+ old_val = val
+ return changed_revs
+
+ def initialized_revs(self):
+ """
+ Get a list of the revisions in which keys were added or
+ removed in this property.
+ """
+ initialized_revs = []
+ old_len = len(self._initial_value)
+ for rev, val in zip(self._changed_revs, self._changed_values):
+ if len(val) != old_len:
+ initialized_revs.append(rev)
+ old_len = len(val)
+ return initialized_revs
+
+class RevisionSet:
+ """
+ A set of revisions, held in dictionary form for easy manipulation. If we
+ were to rewrite this script for Python 2.3+, we would subclass this from
+ set (or UserSet). As this class does not include branch
+ information, it's assumed that one instance will be used per
+ branch.
+ """
+ def __init__(self, parm):
+ """Constructs a RevisionSet from a string in property form, or from
+ a dictionary whose keys are the revisions. Raises ValueError if the
+ input string is invalid."""
+
+ self._revs = {}
+
+ revision_range_split_re = re.compile('[-:]')
+
+ if isinstance(parm, types.DictType):
+ self._revs = parm.copy()
+ elif isinstance(parm, types.ListType):
+ for R in parm:
+ self._revs[int(R)] = 1
+ else:
+ parm = parm.strip()
+ if parm:
+ for R in parm.split(","):
+ rev_or_revs = re.split(revision_range_split_re, R)
+ if len(rev_or_revs) == 1:
+ self._revs[int(rev_or_revs[0])] = 1
+ elif len(rev_or_revs) == 2:
+ for rev in range(int(rev_or_revs[0]),
+ int(rev_or_revs[1])+1):
+ self._revs[rev] = 1
+ else:
+ raise ValueError, 'Ill formatted revision range: ' + R
+
+ def sorted(self):
+ revnums = self._revs.keys()
+ revnums.sort()
+ return revnums
+
+ def normalized(self):
+ """Returns a normalized version of the revision set, which is an
+ ordered list of couples (start,end), with the minimum number of
+ intervals."""
+ revnums = self.sorted()
+ revnums.reverse()
+ ret = []
+ while revnums:
+ s = e = revnums.pop()
+ while revnums and revnums[-1] in (e, e+1):
+ e = revnums.pop()
+ ret.append((s, e))
+ return ret
+
+ def __str__(self):
+ """Convert the revision set to a string, using its normalized form."""
+ L = []
+ for s,e in self.normalized():
+ if s == e:
+ L.append(str(s))
+ else:
+ L.append(str(s) + "-" + str(e))
+ return ",".join(L)
+
+ def __contains__(self, rev):
+ return self._revs.has_key(rev)
+
+ def __sub__(self, rs):
+ """Compute subtraction as in sets."""
+ revs = {}
+ for r in self._revs.keys():
+ if r not in rs:
+ revs[r] = 1
+ return RevisionSet(revs)
+
+ def __and__(self, rs):
+ """Compute intersections as in sets."""
+ revs = {}
+ for r in self._revs.keys():
+ if r in rs:
+ revs[r] = 1
+ return RevisionSet(revs)
+
+ def __nonzero__(self):
+ return len(self._revs) != 0
+
+ def __len__(self):
+ """Return the number of revisions in the set."""
+ return len(self._revs)
+
+ def __iter__(self):
+ return iter(self.sorted())
+
+ def __or__(self, rs):
+ """Compute set union."""
+ revs = self._revs.copy()
+ revs.update(rs._revs)
+ return RevisionSet(revs)
+
+def merge_props_to_revision_set(merge_props, pathid):
+ """A converter which returns a RevisionSet instance containing the
+ revisions from PATH as known to BRANCH_PROPS. BRANCH_PROPS is a
+ dictionary of pathid -> revision set branch integration information
+ (as returned by get_merge_props())."""
+ if not merge_props.has_key(pathid):
+ error('no integration info available for path "%s"' % pathid)
+ return RevisionSet(merge_props[pathid])
+
+def dict_from_revlist_prop(propvalue):
+ """Given a property value as a string containing per-source revision
+ lists, return a dictionary whose key is a source path identifier
+ and whose value is the revisions for that source."""
+ prop = {}
+
+ # Multiple sources are separated by any whitespace.
+ for L in propvalue.split():
+ # We use rsplit to play safe and allow colons in pathids.
+ pathid_str, revs = rsplit(L.strip(), ":", 1)
+
+ pathid = PathIdentifier.from_pathid(pathid_str)
+
+ # cache the "external" form we saw
+ pathid.external_form = pathid_str
+
+ prop[pathid] = revs
+ return prop
+
+def get_revlist_prop(url_or_dir, propname, rev=None):
+ """Given a repository URL or working copy path and a property
+ name, extract the values of the property which store per-source
+ revision lists and return a dictionary whose key is a source path
+ identifier, and whose value is the revisions for that source."""
+
+ # Note that propget does not return an error if the property does
+ # not exist, it simply does not output anything. So we do not need
+ # to check for LaunchError here.
+ args = '--strict "%s" "%s"' % (propname, url_or_dir)
+ if rev:
+ args = '-r %s %s' % (rev, args)
+ out = launchsvn('propget %s' % args, split_lines=False)
+
+ return dict_from_revlist_prop(out)
+
+def get_merge_props(dir):
+ """Extract the merged revisions."""
+ return get_revlist_prop(dir, opts["prop"])
+
+def get_block_props(dir):
+ """Extract the blocked revisions."""
+ return get_revlist_prop(dir, opts["block-prop"])
+
+def get_blocked_revs(dir, source_pathid):
+ p = get_block_props(dir)
+ if p.has_key(source_pathid):
+ return RevisionSet(p[source_pathid])
+ return RevisionSet("")
+
+def format_merge_props(props, sep=" "):
+ """Formats the hash PROPS as a string suitable for use as a
+ Subversion property value."""
+ assert sep in ["\t", "\n", " "] # must be a whitespace
+ props = props.items()
+ props.sort()
+ L = []
+ for h, r in props:
+ L.append("%s:%s" % (h, r))
+ return sep.join(L)
+
+def _run_propset(dir, prop, value):
+ """Set the property 'prop' of directory 'dir' to value 'value'. We go
+ through a temporary file to not run into command line length limits."""
+ try:
+ fd, fname = tempfile.mkstemp()
+ f = os.fdopen(fd, "wb")
+ except AttributeError:
+ # Fallback for Python <= 2.3 which does not have mkstemp (mktemp
+ # suffers from race conditions. Not that we care...)
+ fname = tempfile.mktemp()
+ f = open(fname, "wb")
+
+ try:
+ f.write(value)
+ f.close()
+ report("property data written to temp file: %s" % value)
+ svn_command('propset "%s" -F "%s" "%s"' % (prop, fname, dir))
+ finally:
+ os.remove(fname)
+
+def set_props(dir, name, props):
+ props = format_merge_props(props)
+ if props:
+ _run_propset(dir, name, props)
+ else:
+ # Check if NAME exists on DIR before trying to delete it.
+ # As of 1.6 propdel no longer supports deleting a
+ # non-existent property.
+ out = launchsvn('propget "%s" "%s"' % (name, dir))
+ if out:
+ svn_command('propdel "%s" "%s"' % (name, dir))
+
+def set_merge_props(dir, props):
+ set_props(dir, opts["prop"], props)
+
+def set_block_props(dir, props):
+ set_props(dir, opts["block-prop"], props)
+
+def set_blocked_revs(dir, source_pathid, revs):
+ props = get_block_props(dir)
+ if revs:
+ props[source_pathid] = str(revs)
+ elif props.has_key(source_pathid):
+ del props[source_pathid]
+ set_block_props(dir, props)
+
+def is_url(url):
+ """Check if url looks like a valid url."""
+ return re.search(r"^[a-zA-Z][-+\.\w]*://[^\s]+$", url) is not None and url[:4] != 'uuid'
+
+def check_url(url):
+ """Similar to is_url, but actually invoke get_svninfo to find out"""
+ return get_svninfo(url) != {}
+
+def is_pathid(pathid):
+ return isinstance(pathid, PathIdentifier)
+
+def is_wc(dir):
+ """Check if a directory is a working copy."""
+ return os.path.isdir(os.path.join(dir, ".svn")) or \
+ os.path.isdir(os.path.join(dir, "_svn"))
+
+_cache_svninfo = {}
+def get_svninfo(target):
+ """Extract the subversion information for a target (through 'svn info').
+ This function uses an internal cache to let clients query information
+ many times."""
+ if _cache_svninfo.has_key(target):
+ return _cache_svninfo[target]
+ info = {}
+ for L in launchsvn('info "%s"' % target):
+ L = L.strip()
+ if not L:
+ continue
+ key, value = L.split(": ", 1)
+ info[key] = value.strip()
+ _cache_svninfo[target] = info
+ return info
+
+def target_to_url(target):
+ """Convert working copy path or repos URL to a repos URL."""
+ if is_wc(target):
+ info = get_svninfo(target)
+ return info["URL"]
+ return target
+
+_cache_reporoot = {}
+def get_repo_root(target):
+ """Compute the root repos URL given a working-copy path, or a URL."""
+ # Try using "svn info WCDIR". This works only on SVN clients >= 1.3
+ if not is_url(target):
+ try:
+ info = get_svninfo(target)
+ root = info["Repository Root"]
+ _cache_reporoot[root] = None
+ return root
+ except KeyError:
+ pass
+ url = target_to_url(target)
+ assert url[-1] != '/'
+ else:
+ url = target
+
+ # Go through the cache of the repository roots. This avoids extra
+ # server round-trips if we are asking the root of different URLs
+ # in the same repository (the cache in get_svninfo() cannot detect
+ # that of course and would issue a remote command).
+ assert is_url(url)
+ for r in _cache_reporoot:
+ if url.startswith(r):
+ return r
+
+ # Try using "svn info URL". This works only on SVN clients >= 1.2
+ try:
+ info = get_svninfo(url)
+ # info may be {}, in which case we'll see KeyError here
+ root = info["Repository Root"]
+ _cache_reporoot[root] = None
+ return root
+ except (KeyError, LaunchError):
+ pass
+
+ # Constrained to older svn clients, we are stuck with this ugly
+ # trial-and-error implementation. It could be made faster with a
+ # binary search.
+ while url:
+ temp = os.path.dirname(url)
+ try:
+ launchsvn('proplist "%s"' % temp)
+ except LaunchError:
+ _cache_reporoot[url] = None
+ return rstrip(url, "/")
+ url = temp
+
+ error("svn repos root of %s not found" % target)
+
+class SvnLogParser:
+ """
+ Parse the "svn log", going through the XML output and using pulldom (which
+ would even allow streaming the command output).
+ """
+ def __init__(self, xml):
+ self._events = pulldom.parseString(xml)
+ def __getitem__(self, idx):
+ for event, node in self._events:
+ if event == pulldom.START_ELEMENT and node.tagName == "logentry":
+ self._events.expandNode(node)
+ return self.SvnLogRevision(node)
+ raise IndexError, "Could not find 'logentry' tag in xml"
+
+ class SvnLogRevision:
+ def __init__(self, xmlnode):
+ self.n = xmlnode
+ def revision(self):
+ return int(self.n.getAttribute("revision"))
+ def author(self):
+ return self.n.getElementsByTagName("author")[0].firstChild.data
+ def paths(self):
+ return [self.SvnLogPath(n)
+ for n in self.n.getElementsByTagName("path")]
+
+ class SvnLogPath:
+ def __init__(self, xmlnode):
+ self.n = xmlnode
+ def action(self):
+ return self.n.getAttribute("action")
+ def pathid(self):
+ return self.n.firstChild.data
+ def copyfrom_rev(self):
+ try: return self.n.getAttribute("copyfrom-rev")
+ except KeyError: return None
+ def copyfrom_pathid(self):
+ try: return self.n.getAttribute("copyfrom-path")
+ except KeyError: return None
+
+def get_copyfrom(target):
+ """Get copyfrom info for a given target (it represents the
+ repository-relative path from where it was branched). NOTE:
+ repos root has no copyfrom info. In this case None is returned.
+
+ Returns the:
+ - source file or directory from which the copy was made
+ - revision from which that source was copied
+ - revision in which the copy was committed
+ """
+ repos_path = PathIdentifier.from_target(target).repo_relative_path
+ for chg in SvnLogParser(launchsvn('log -v --xml --stop-on-copy "%s"'
+ % target, split_lines=False)):
+ for p in chg.paths():
+ if p.action() == 'A' and p.pathid() == repos_path:
+ # These values will be None if the corresponding elements are
+ # not found in the log.
+ return p.copyfrom_pathid(), p.copyfrom_rev(), chg.revision()
+ return None,None,None
+
+def get_latest_rev(url):
+ """Get the latest revision of the repository of which URL is part."""
+ try:
+ info = get_svninfo(url)
+ if not info.has_key("Revision"):
+ error("Not a valid URL: %s" % url)
+ return info["Revision"]
+ except LaunchError:
+ # Alternative method for latest revision checking (for svn < 1.2)
+ report('checking latest revision of "%s"' % url)
+ L = launchsvn('proplist --revprop -r HEAD "%s"' % opts["source-url"])[0]
+ rev = re.search("revision (\d+)", L).group(1)
+ report('latest revision of "%s" is %s' % (url, rev))
+ return rev
+
+def get_created_rev(url):
+ """Lookup the revision at which the path identified by the
+ provided URL was first created."""
+ oldest_rev = -1
+ report('determining oldest revision for URL "%s"' % url)
+ ### TODO: Refactor this to use a modified RevisionLog class.
+ lines = None
+ cmd = "log -r1:HEAD --stop-on-copy -q " + url
+ try:
+ lines = launchsvn(cmd + " --limit=1")
+ except LaunchError:
+ # Assume that --limit isn't supported by the installed 'svn'.
+ lines = launchsvn(cmd)
+ if lines and len(lines) > 1:
+ i = lines[1].find(" ")
+ if i != -1:
+ oldest_rev = int(lines[1][1:i])
+ if oldest_rev == -1:
+ error('unable to determine oldest revision for URL "%s"' % url)
+ return oldest_rev
+
+def get_commit_log(url, revnum):
+ """Return the log message for a specific integer revision
+ number."""
+ out = launchsvn("log --incremental -r%d %s" % (revnum, url))
+ return recode_stdout_to_file("".join(out[1:]))
+
+def construct_merged_log_message(url, revnums):
+ """Return a commit log message containing all the commit messages
+ in the specified revisions at the given URL. The separator used
+ in this log message is determined by searching for the longest
+ svnmerge separator existing in the commit log messages and
+ extending it by one more separator. This results in a new commit
+ log message that is clearer in describing merges that contain
+ other merges. Trailing newlines are removed from the embedded
+ log messages."""
+ messages = ['']
+ longest_sep = ''
+ for r in revnums.sorted():
+ message = get_commit_log(url, r)
+ if message:
+ message = re.sub(r'(\r\n|\r|\n)', "\n", message)
+ message = rstrip(message, "\n") + "\n"
+ messages.append(prefix_lines(LOG_LINE_PREFIX, message))
+ for match in LOG_SEPARATOR_RE.findall(message):
+ sep = match[1]
+ if len(sep) > len(longest_sep):
+ longest_sep = sep
+
+ longest_sep += LOG_SEPARATOR + "\n"
+ messages.append('')
+ return longest_sep.join(messages)
+
+def get_default_source(branch_target, branch_props):
+ """Return the default source for branch_target (given its branch_props).
+ Error out if there is ambiguity."""
+ if not branch_props:
+ error("no integration info available")
+
+ props = branch_props.copy()
+ pathid = PathIdentifier.from_target(branch_target)
+
+ # To make bidirectional merges easier, find the target's
+ # repository local path so it can be removed from the list of
+ # possible integration sources.
+ if props.has_key(pathid):
+ del props[pathid]
+
+ if len(props) > 1:
+ err_msg = "multiple sources found. "
+ err_msg += "Explicit source argument (-S/--source) required.\n"
+ err_msg += "The merge sources available are:"
+ for prop in props:
+ err_msg += "\n " + str(prop)
+ error(err_msg)
+
+ return props.keys()[0]
+
+def should_find_reflected(branch_dir):
+ should_find_reflected = opts["bidirectional"]
+
+ # If the source has integration info for the target, set find_reflected
+ # even if --bidirectional wasn't specified
+ if not should_find_reflected:
+ source_props = get_merge_props(opts["source-url"])
+ should_find_reflected = source_props.has_key(PathIdentifier.from_target(branch_dir))
+
+ return should_find_reflected
+
+def analyze_revs(target_pathid, url, begin=1, end=None,
+ find_reflected=False):
+ """For the source of the merges in the source URL being merged into
+ target_pathid, analyze the revisions in the interval begin-end (which
+ defaults to 1-HEAD), to find out which revisions are changes in
+ the url, which are changes elsewhere (so-called 'phantom'
+ revisions), optionally which are reflected changes (to avoid
+ conflicts that can occur when doing bidirectional merging between
+ branches), and which revisions initialize merge tracking against other
+ branches. Return a tuple of four RevisionSet's:
+ (real_revs, phantom_revs, reflected_revs, initialized_revs).
+
+ NOTE: To maximize speed, if "end" is not provided, the function is
+ not able to find phantom revisions following the last real
+ revision in the URL.
+ """
+
+ begin = str(begin)
+ if end is None:
+ end = "HEAD"
+ else:
+ end = str(end)
+ if long(begin) > long(end):
+ return RevisionSet(""), RevisionSet(""), \
+ RevisionSet(""), RevisionSet("")
+
+ logs[url] = RevisionLog(url, begin, end, find_reflected)
+ revs = RevisionSet(logs[url].revs)
+
+ if end == "HEAD":
+ # If end is not provided, we do not know which is the latest revision
+ # in the repository. So return the phantom revision set only up to
+ # the latest known revision.
+ end = str(list(revs)[-1])
+
+ phantom_revs = RevisionSet("%s-%s" % (begin, end)) - revs
+
+ if find_reflected:
+ reflected_revs = logs[url].merge_metadata().changed_revs(target_pathid)
+ reflected_revs += logs[url].block_metadata().changed_revs(target_pathid)
+ else:
+ reflected_revs = []
+
+ initialized_revs = RevisionSet(logs[url].merge_metadata().initialized_revs())
+ reflected_revs = RevisionSet(reflected_revs)
+
+ return revs, phantom_revs, reflected_revs, initialized_revs
+
+def analyze_source_revs(branch_target, source_url, **kwargs):
+ """For the given branch and source, extract the real and phantom
+ source revisions."""
+ branch_url = target_to_url(branch_target)
+ branch_pathid = PathIdentifier.from_target(branch_target)
+
+ # Extract the latest repository revision from the URL of the branch
+ # directory (which is already cached at this point).
+ end_rev = get_latest_rev(source_url)
+
+ # Calculate the base of analysis. If there is a "1-XX" interval in the
+ # merged_revs, we do not need to check those.
+ base = 1
+ r = opts["merged-revs"].normalized()
+ if r and r[0][0] == 1:
+ base = r[0][1] + 1
+
+ # See if the user filtered the revision set. If so, we are not
+ # interested in something outside that range.
+ if opts["revision"]:
+ revs = RevisionSet(opts["revision"]).sorted()
+ if base < revs[0]:
+ base = revs[0]
+ if end_rev > revs[-1]:
+ end_rev = revs[-1]
+
+ return analyze_revs(branch_pathid, source_url, base, end_rev, **kwargs)
+
+def minimal_merge_intervals(revs, phantom_revs):
+ """Produce the smallest number of intervals suitable for merging. revs
+ is the RevisionSet which we want to merge, and phantom_revs are phantom
+ revisions which can be used to concatenate intervals, thus minimizing the
+ number of operations."""
+ revnums = revs.normalized()
+ ret = []
+
+ cur = revnums.pop()
+ while revnums:
+ next = revnums.pop()
+ assert next[1] < cur[0] # otherwise it is not ordered
+ assert cur[0] - next[1] > 1 # otherwise it is not normalized
+ for i in range(next[1]+1, cur[0]):
+ if i not in phantom_revs:
+ ret.append(cur)
+ cur = next
+ break
+ else:
+ cur = (next[0], cur[1])
+
+ ret.append(cur)
+ ret.reverse()
+ return ret
+
+def display_revisions(revs, display_style, revisions_msg, source_url):
+ """Show REVS as dictated by DISPLAY_STYLE, either numerically, in
+ log format, or as diffs. When displaying revisions numerically,
+ prefix output with REVISIONS_MSG when in verbose mode. Otherwise,
+ request logs or diffs using SOURCE_URL."""
+ if display_style == "revisions":
+ if revs:
+ report(revisions_msg)
+ print revs
+ elif display_style == "logs":
+ for start,end in revs.normalized():
+ svn_command('log --incremental -v -r %d:%d %s' % \
+ (start, end, source_url))
+ elif display_style in ("diffs", "summarize"):
+ if display_style == 'summarize':
+ summarize = '--summarize '
+ else:
+ summarize = ''
+
+ for start, end in revs.normalized():
+ print
+ if start == end:
+ print "%s: changes in revision %d follow" % (NAME, start)
+ else:
+ print "%s: changes in revisions %d-%d follow" % (NAME,
+ start, end)
+ print
+
+ # Note: the starting revision number to 'svn diff' is
+ # NOT inclusive so we have to subtract one from ${START}.
+ svn_command("diff -r %d:%d %s %s" % (start - 1, end, summarize,
+ source_url))
+ else:
+ assert False, "unhandled display style: %s" % display_style
+
+def action_init(target_dir, target_props):
+ """Initialize for merges."""
+ # Check that directory is ready for being modified
+ check_dir_clean(target_dir)
+
+ target_pathid = PathIdentifier.from_target(target_dir)
+ source_pathid = opts['source-pathid']
+ if source_pathid == target_pathid:
+ error("cannot init integration source path '%s'\nIts path identifier does not "
+ "differ from the path identifier of the current directory, '%s'."
+ % (source_pathid, target_pathid))
+
+ source_url = opts['source-url']
+
+ # If the user hasn't specified the revisions to use, see if the
+ # "source" is a copy from the current tree and if so, we can use
+ # the version data obtained from it.
+ revision_range = opts["revision"]
+ if not revision_range:
+ # If source was originally copied from target, and we are merging
+ # changes from source to target (the copy target is the merge source,
+ # and the copy source is the merge target), then we want to mark as
+ # integrated up to the rev in which the copy was committed which
+ # created the merge source:
+ cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(source_url)
+
+ cf_pathid = None
+ if cf_source:
+ cf_url = get_repo_root(source_url) + cf_source
+ if is_url(cf_url) and check_url(cf_url):
+ cf_pathid = PathIdentifier.from_target(cf_url)
+
+ if target_pathid == cf_pathid:
+ report('the source "%s" was copied from "%s" in rev %s and committed in rev %s' %
+ (source_url, target_dir, cf_rev, copy_committed_in_rev))
+ revision_range = "1-" + str(copy_committed_in_rev)
+
+ if not revision_range:
+ # If the reverse is true: copy source is the merge source, and
+ # the copy target is the merge target, then we want to mark as
+ # integrated up to the specific rev of the merge target from
+ # which the merge source was copied. (Longer discussion at:
+ # http://subversion.tigris.org/issues/show_bug.cgi?id=2810 )
+ cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(target_dir)
+
+ cf_pathid = None
+ if cf_source:
+ cf_url = get_repo_root(target_dir) + cf_source
+ if is_url(cf_url) and check_url(cf_url):
+ cf_pathid = PathIdentifier.from_target(cf_url)
+
+ source_pathid = PathIdentifier.from_target(source_url)
+ if source_pathid == cf_pathid:
+ report('the target "%s" was copied the source "%s" in rev %s and committed in rev %s' %
+ (target_dir, source_url, cf_rev, copy_committed_in_rev))
+ revision_range = "1-" + cf_rev
+
+ # When neither the merge source nor target is a copy of the other, and
+ # the user did not specify a revision range, then choose a default which is
+ # the current revision; saying, in effect, "everything has been merged, so
+ # mark as integrated up to the latest rev on source url).
+ if not revision_range:
+ revision_range = "1-" + get_latest_rev(source_url)
+
+ revs = RevisionSet(revision_range)
+
+ report('marking "%s" as already containing revisions "%s" of "%s"' %
+ (target_dir, revs, source_url))
+
+ revs = str(revs)
+ # If the local svnmerge-integrated property already has an entry
+ # for the source-pathid, simply error out.
+ if not opts["force"] and target_props.has_key(source_pathid):
+ error('Repository-relative path %s has already been initialized at %s\n'
+ 'Use --force to re-initialize' % (source_pathid, target_dir))
+ # set the pathid's external_form based on the user's options
+ source_pathid.external_form = source_pathid.format(opts['location-type'])
+
+ revs = str(revs)
+ target_props[source_pathid] = revs
+
+ # Set property
+ set_merge_props(target_dir, target_props)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Initialized merge tracking via "%s" with revisions "%s" from ' \
+ % (NAME, revs)
+ print >>f, '%s' % source_url
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_avail(branch_dir, branch_props):
+ """Show commits available for merges."""
+ source_revs, phantom_revs, reflected_revs, initialized_revs = \
+ analyze_source_revs(branch_dir, opts["source-url"],
+ find_reflected=
+ should_find_reflected(branch_dir))
+ report('skipping phantom revisions: %s' % phantom_revs)
+ if reflected_revs:
+ report('skipping reflected revisions: %s' % reflected_revs)
+ report('skipping initialized revisions: %s' % initialized_revs)
+
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ avail_revs = source_revs - opts["merged-revs"] - blocked_revs - \
+ reflected_revs - initialized_revs
+
+ # Compose the set of revisions to show
+ revs = RevisionSet("")
+ report_msg = "revisions available to be merged are:"
+ if "avail" in opts["avail-showwhat"]:
+ revs |= avail_revs
+ if "blocked" in opts["avail-showwhat"]:
+ revs |= blocked_revs
+ report_msg = "revisions blocked are:"
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs = revs & RevisionSet(opts["revision"])
+
+ display_revisions(revs, opts["avail-display"],
+ report_msg,
+ opts["source-url"])
+
+def action_integrated(branch_dir, branch_props):
+ """Show change sets already merged. This set of revisions is
+ calculated from taking svnmerge-integrated property from the
+ branch, and subtracting any revision older than the branch
+ creation revision."""
+ # Extract the integration info for the branch_dir
+ branch_props = get_merge_props(branch_dir)
+ revs = merge_props_to_revision_set(branch_props, opts["source-pathid"])
+
+ # Lookup the oldest revision on the branch path.
+ oldest_src_rev = get_created_rev(opts["source-url"])
+
+ # Subtract any revisions which pre-date the branch.
+ report("subtracting revisions which pre-date the source URL (%d)" %
+ oldest_src_rev)
+ revs = revs - RevisionSet(range(1, oldest_src_rev))
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs = revs & RevisionSet(opts["revision"])
+
+ display_revisions(revs, opts["integrated-display"],
+ "revisions already integrated are:", opts["source-url"])
+
+def action_merge(branch_dir, branch_props):
+ """Record merge meta data, and do the actual merge (if not
+ requested otherwise via --record-only)."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ source_revs, phantom_revs, reflected_revs, initialized_revs = \
+ analyze_source_revs(branch_dir, opts["source-url"],
+ find_reflected=
+ should_find_reflected(branch_dir))
+
+ if opts["revision"]:
+ revs = RevisionSet(opts["revision"])
+ else:
+ revs = source_revs
+
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ merged_revs = opts["merged-revs"]
+
+ # Show what we're doing
+ if opts["verbose"]: # just to avoid useless calculations
+ if merged_revs & revs:
+ report('"%s" already contains revisions %s' % (branch_dir,
+ merged_revs & revs))
+ if phantom_revs:
+ report('memorizing phantom revision(s): %s' % phantom_revs)
+ if reflected_revs:
+ report('memorizing reflected revision(s): %s' % reflected_revs)
+ if blocked_revs & revs:
+ report('skipping blocked revisions(s): %s' % (blocked_revs & revs))
+ if initialized_revs:
+ report('skipping initialized revision(s): %s' % initialized_revs)
+
+ # Compute final merge set.
+ revs = revs - merged_revs - blocked_revs - reflected_revs - \
+ phantom_revs - initialized_revs
+ if not revs:
+ report('no revisions to merge, exiting')
+ return
+
+ # When manually marking revisions as merged, we only update the
+ # integration meta data, and don't perform an actual merge.
+ record_only = opts["record-only"]
+
+ if record_only:
+ report('recording merge of revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+ else:
+ report('merging in revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+
+ # Do the merge(s). Note: the starting revision number to 'svn merge'
+ # is NOT inclusive so we have to subtract one from start.
+ # We try to keep the number of merge operations as low as possible,
+ # because it is faster and reduces the number of conflicts.
+ old_block_props = get_block_props(branch_dir)
+ merge_metadata = logs[opts["source-url"]].merge_metadata()
+ block_metadata = logs[opts["source-url"]].block_metadata()
+ for start,end in minimal_merge_intervals(revs, phantom_revs):
+ if not record_only:
+ # Preset merge/blocked properties to the source value at
+ # the start rev to avoid spurious property conflicts
+ set_merge_props(branch_dir, merge_metadata.get(start - 1))
+ set_block_props(branch_dir, block_metadata.get(start - 1))
+ # Do the merge
+ svn_command("merge --force -r %d:%d %s %s" % \
+ (start - 1, end, opts["source-url"], branch_dir))
+ # TODO: to support graph merging, add logic to merge the property
+ # meta-data manually
+
+ # Update the set of merged revisions.
+ merged_revs = merged_revs | revs | reflected_revs | phantom_revs | initialized_revs
+ branch_props[opts["source-pathid"]] = str(merged_revs)
+ set_merge_props(branch_dir, branch_props)
+ # Reset the blocked revs
+ set_block_props(branch_dir, old_block_props)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ if record_only:
+ print >>f, 'Recorded merge of revisions %s via %s from ' % \
+ (revs, NAME)
+ else:
+ print >>f, 'Merged revisions %s via %s from ' % \
+ (revs, NAME)
+ print >>f, '%s' % opts["source-url"]
+ if opts["commit-verbose"]:
+ print >>f
+ print >>f, construct_merged_log_message(opts["source-url"], revs),
+
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_block(branch_dir, branch_props):
+ """Block revisions."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ source_revs, phantom_revs, reflected_revs, initialized_revs = \
+ analyze_source_revs(branch_dir, opts["source-url"])
+ revs_to_block = source_revs - opts["merged-revs"]
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs_to_block = RevisionSet(opts["revision"]) & revs_to_block
+
+ if not revs_to_block:
+ error('no available revisions to block')
+
+ # Change blocked information
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ blocked_revs = blocked_revs | revs_to_block
+ set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Blocked revisions %s via %s' % (revs_to_block, NAME)
+ if opts["commit-verbose"]:
+ print >>f
+ print >>f, construct_merged_log_message(opts["source-url"],
+ revs_to_block),
+
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_unblock(branch_dir, branch_props):
+ """Unblock revisions."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ revs_to_unblock = blocked_revs
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs_to_unblock = revs_to_unblock & RevisionSet(opts["revision"])
+
+ if not revs_to_unblock:
+ error('no available revisions to unblock')
+
+ # Change blocked information
+ blocked_revs = blocked_revs - revs_to_unblock
+ set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Unblocked revisions %s via %s' % (revs_to_unblock, NAME)
+ if opts["commit-verbose"]:
+ print >>f
+ print >>f, construct_merged_log_message(opts["source-url"],
+ revs_to_unblock),
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_rollback(branch_dir, branch_props):
+ """Rollback previously integrated revisions."""
+
+ # Make sure the revision arguments are present
+ if not opts["revision"]:
+ error("The '-r' option is mandatory for rollback")
+
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ # Extract the integration info for the branch_dir
+ branch_props = get_merge_props(branch_dir)
+ # Get the list of all revisions already merged into this source-pathid.
+ merged_revs = merge_props_to_revision_set(branch_props,
+ opts["source-pathid"])
+
+ # At which revision was the src created?
+ oldest_src_rev = get_created_rev(opts["source-url"])
+ src_pre_exist_range = RevisionSet("1-%d" % oldest_src_rev)
+
+ # Limit to revisions specified by -r (if any)
+ revs = merged_revs & RevisionSet(opts["revision"])
+
+ # make sure there's some revision to rollback
+ if not revs:
+ report("Nothing to rollback in revision range r%s" % opts["revision"])
+ return
+
+ # If even one specified revision lies outside the lifetime of the
+ # merge source, error out.
+ if revs & src_pre_exist_range:
+ err_str = "Specified revision range falls out of the rollback range.\n"
+ err_str += "%s was created at r%d" % (opts["source-pathid"],
+ oldest_src_rev)
+ error(err_str)
+
+ record_only = opts["record-only"]
+
+ if record_only:
+ report('recording rollback of revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+ else:
+ report('rollback of revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+
+ # Do the reverse merge(s). Note: the starting revision number
+ # to 'svn merge' is NOT inclusive so we have to subtract one from start.
+ # We try to keep the number of merge operations as low as possible,
+ # because it is faster and reduces the number of conflicts.
+ rollback_intervals = minimal_merge_intervals(revs, [])
+ # rollback in the reverse order of merge
+ rollback_intervals.reverse()
+ for start, end in rollback_intervals:
+ if not record_only:
+ # Do the merge
+ svn_command("merge --force -r %d:%d %s %s" % \
+ (end, start - 1, opts["source-url"], branch_dir))
+
+ # Write out commit message if desired
+ # calculate the phantom revs first
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ if record_only:
+ print >>f, 'Recorded rollback of revisions %s via %s from ' % \
+ (revs , NAME)
+ else:
+ print >>f, 'Rolled back revisions %s via %s from ' % \
+ (revs , NAME)
+ print >>f, '%s' % opts["source-url"]
+
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+ # Update the set of merged revisions.
+ merged_revs = merged_revs - revs
+ branch_props[opts["source-pathid"]] = str(merged_revs)
+ set_merge_props(branch_dir, branch_props)
+
+def action_uninit(branch_dir, branch_props):
+ """Uninit SOURCE URL."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ # If the source-pathid does not have an entry in the svnmerge-integrated
+ # property, simply error out.
+ if not branch_props.has_key(opts["source-pathid"]):
+ error('Repository-relative path "%s" does not contain merge '
+ 'tracking information for "%s"' \
+ % (opts["source-pathid"], branch_dir))
+
+ del branch_props[opts["source-pathid"]]
+
+ # Set merge property with the selected source deleted
+ set_merge_props(branch_dir, branch_props)
+
+ # Set blocked revisions for the selected source to None
+ set_blocked_revs(branch_dir, opts["source-pathid"], None)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Removed merge tracking for "%s" for ' % NAME
+ print >>f, '%s' % opts["source-url"]
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+###############################################################################
+# Command line parsing -- options and commands management
+###############################################################################
+
+class OptBase:
+ def __init__(self, *args, **kwargs):
+ self.help = kwargs["help"]
+ del kwargs["help"]
+ self.lflags = []
+ self.sflags = []
+ for a in args:
+ if a.startswith("--"): self.lflags.append(a)
+ elif a.startswith("-"): self.sflags.append(a)
+ else:
+ raise TypeError, "invalid flag name: %s" % a
+ if kwargs.has_key("dest"):
+ self.dest = kwargs["dest"]
+ del kwargs["dest"]
+ else:
+ if not self.lflags:
+ raise TypeError, "cannot deduce dest name without long options"
+ self.dest = self.lflags[0][2:]
+ if kwargs:
+ raise TypeError, "invalid keyword arguments: %r" % kwargs.keys()
+ def repr_flags(self):
+ f = self.sflags + self.lflags
+ r = f[0]
+ for fl in f[1:]:
+ r += " [%s]" % fl
+ return r
+
+class Option(OptBase):
+ def __init__(self, *args, **kwargs):
+ self.default = kwargs.setdefault("default", 0)
+ del kwargs["default"]
+ self.value = kwargs.setdefault("value", None)
+ del kwargs["value"]
+ OptBase.__init__(self, *args, **kwargs)
+ def apply(self, state, value):
+ assert value == ""
+ if self.value is not None:
+ state[self.dest] = self.value
+ else:
+ state[self.dest] += 1
+
+class OptionArg(OptBase):
+ def __init__(self, *args, **kwargs):
+ self.default = kwargs["default"]
+ del kwargs["default"]
+ self.metavar = kwargs.setdefault("metavar", None)
+ del kwargs["metavar"]
+ OptBase.__init__(self, *args, **kwargs)
+
+ if self.metavar is None:
+ if self.dest is not None:
+ self.metavar = self.dest.upper()
+ else:
+ self.metavar = "arg"
+ if self.default:
+ self.help += " (default: %s)" % self.default
+ def apply(self, state, value):
+ assert value is not None
+ state[self.dest] = value
+ def repr_flags(self):
+ r = OptBase.repr_flags(self)
+ return r + " " + self.metavar
+
+class CommandOpts:
+ class Cmd:
+ def __init__(self, *args):
+ self.name, self.func, self.usage, self.help, self.opts = args
+ def short_help(self):
+ return self.help.split(".")[0]
+ def __str__(self):
+ return self.name
+ def __call__(self, *args, **kwargs):
+ return self.func(*args, **kwargs)
+
+ def __init__(self, global_opts, common_opts, command_table, version=None):
+ self.progname = NAME
+ self.version = version.replace("%prog", self.progname)
+ self.cwidth = console_width() - 2
+ self.ctable = command_table.copy()
+ self.gopts = global_opts[:]
+ self.copts = common_opts[:]
+ self._add_builtins()
+ for k in self.ctable.keys():
+ cmd = self.Cmd(k, *self.ctable[k])
+ opts = []
+ for o in cmd.opts:
+ if isinstance(o, types.StringType) or \
+ isinstance(o, types.UnicodeType):
+ o = self._find_common(o)
+ opts.append(o)
+ cmd.opts = opts
+ self.ctable[k] = cmd
+
+ def _add_builtins(self):
+ self.gopts.append(
+ Option("-h", "--help", help="show help for this command and exit"))
+ if self.version is not None:
+ self.gopts.append(
+ Option("-V", "--version", help="show version info and exit"))
+ self.ctable["help"] = (self._cmd_help,
+ "help [COMMAND]",
+ "Display help for a specific command. If COMMAND is omitted, "
+ "display brief command description.",
+ [])
+
+ def _cmd_help(self, cmd=None, *args):
+ if args:
+ self.error("wrong number of arguments", "help")
+ if cmd is not None:
+ cmd = self._command(cmd)
+ self.print_command_help(cmd)
+ else:
+ self.print_command_list()
+
+ def _paragraph(self, text, width=78):
+ chunks = re.split("\s+", text.strip())
+ chunks.reverse()
+ lines = []
+ while chunks:
+ L = chunks.pop()
+ while chunks and len(L) + len(chunks[-1]) + 1 <= width:
+ L += " " + chunks.pop()
+ lines.append(L)
+ return lines
+
+ def _paragraphs(self, text, *args, **kwargs):
+ pars = text.split("\n\n")
+ lines = self._paragraph(pars[0], *args, **kwargs)
+ for p in pars[1:]:
+ lines.append("")
+ lines.extend(self._paragraph(p, *args, **kwargs))
+ return lines
+
+ def _print_wrapped(self, text, indent=0):
+ text = self._paragraphs(text, self.cwidth - indent)
+ print text.pop(0)
+ for t in text:
+ print " " * indent + t
+
+ def _find_common(self, fl):
+ for o in self.copts:
+ if fl in o.lflags+o.sflags:
+ return o
+ assert False, fl
+
+ def _compute_flags(self, opts, check_conflicts=True):
+ back = {}
+ sfl = ""
+ lfl = []
+ for o in opts:
+ sapp = lapp = ""
+ if isinstance(o, OptionArg):
+ sapp, lapp = ":", "="
+ for s in o.sflags:
+ if check_conflicts and back.has_key(s):
+ raise RuntimeError, "option conflict: %s" % s
+ back[s] = o
+ sfl += s[1:] + sapp
+ for l in o.lflags:
+ if check_conflicts and back.has_key(l):
+ raise RuntimeError, "option conflict: %s" % l
+ back[l] = o
+ lfl.append(l[2:] + lapp)
+ return sfl, lfl, back
+
+ def _extract_command(self, args):
+ """
+ Try to extract the command name from the argument list. This is
+ non-trivial because we want to allow command-specific options even
+ before the command itself.
+ """
+ opts = self.gopts[:]
+ for cmd in self.ctable.values():
+ opts.extend(cmd.opts)
+ sfl, lfl, _ = self._compute_flags(opts, check_conflicts=False)
+
+ lopts,largs = getopt.getopt(args, sfl, lfl)
+ if not largs:
+ return None
+ return self._command(largs[0])
+
+ def _fancy_getopt(self, args, opts, state=None):
+ if state is None:
+ state= {}
+ for o in opts:
+ if not state.has_key(o.dest):
+ state[o.dest] = o.default
+
+ sfl, lfl, back = self._compute_flags(opts)
+ try:
+ lopts,args = getopt.gnu_getopt(args, sfl, lfl)
+ except AttributeError:
+ # Before Python 2.3, there was no gnu_getopt support.
+ # So we can't parse intermixed positional arguments
+ # and options.
+ lopts,args = getopt.getopt(args, sfl, lfl)
+
+ for o,v in lopts:
+ back[o].apply(state, v)
+ return state, args
+
+ def _command(self, cmd):
+ if not self.ctable.has_key(cmd):
+ self.error("unknown command: '%s'" % cmd)
+ return self.ctable[cmd]
+
+ def parse(self, args):
+ if not args:
+ self.print_small_help()
+ sys.exit(0)
+
+ cmd = None
+ try:
+ cmd = self._extract_command(args)
+ opts = self.gopts[:]
+ if cmd:
+ opts.extend(cmd.opts)
+ args.remove(cmd.name)
+ state, args = self._fancy_getopt(args, opts)
+ except getopt.GetoptError, e:
+ self.error(e, cmd)
+
+ # Handle builtins
+ if self.version is not None and state["version"]:
+ self.print_version()
+ sys.exit(0)
+ if state["help"]: # special case for --help
+ if cmd:
+ self.print_command_help(cmd)
+ sys.exit(0)
+ cmd = self.ctable["help"]
+ else:
+ if cmd is None:
+ self.error("command argument required")
+ if str(cmd) == "help":
+ cmd(*args)
+ sys.exit(0)
+ return cmd, args, state
+
+ def error(self, s, cmd=None):
+ print >>sys.stderr, "%s: %s" % (self.progname, s)
+ if cmd is not None:
+ self.print_command_help(cmd)
+ else:
+ self.print_small_help()
+ sys.exit(1)
+ def print_small_help(self):
+ print "Type '%s help' for usage" % self.progname
+ def print_usage_line(self):
+ print "usage: %s <subcommand> [options...] [args...]\n" % self.progname
+ def print_command_list(self):
+ print "Available commands (use '%s help COMMAND' for more details):\n" \
+ % self.progname
+ cmds = self.ctable.keys()
+ cmds.sort()
+ indent = max(map(len, cmds))
+ for c in cmds:
+ h = self.ctable[c].short_help()
+ print " %-*s " % (indent, c),
+ self._print_wrapped(h, indent+6)
+ def print_command_help(self, cmd):
+ cmd = self.ctable[str(cmd)]
+ print 'usage: %s %s\n' % (self.progname, cmd.usage)
+ self._print_wrapped(cmd.help)
+ def print_opts(opts, self=self):
+ if not opts: return
+ flags = [o.repr_flags() for o in opts]
+ indent = max(map(len, flags))
+ for f,o in zip(flags, opts):
+ print " %-*s :" % (indent, f),
+ self._print_wrapped(o.help, indent+5)
+ print '\nCommand options:'
+ print_opts(cmd.opts)
+ print '\nGlobal options:'
+ print_opts(self.gopts)
+
+ def print_version(self):
+ print self.version
+
+###############################################################################
+# Options and Commands description
+###############################################################################
+
+global_opts = [
+ Option("-F", "--force",
+ help="force operation even if the working copy is not clean, or "
+ "there are pending updates"),
+ Option("-n", "--dry-run",
+ help="don't actually change anything, just pretend; "
+ "implies --show-changes"),
+ Option("-s", "--show-changes",
+ help="show subversion commands that make changes"),
+ Option("-v", "--verbose",
+ help="verbose mode: output more information about progress"),
+ OptionArg("-u", "--username",
+ default=None,
+ help="invoke subversion commands with the supplied username"),
+ OptionArg("-p", "--password",
+ default=None,
+ help="invoke subversion commands with the supplied password"),
+ OptionArg("-c", "--config-dir", metavar="DIR",
+ default=None,
+ help="cause subversion commands to consult runtime config directory DIR"),
+]
+
+common_opts = [
+ Option("-b", "--bidirectional",
+ value=True,
+ default=False,
+ help="remove reflected and initialized revisions from merge candidates. "
+ "Not required but may be specified to speed things up slightly"),
+ OptionArg("-f", "--commit-file", metavar="FILE",
+ default="svnmerge-commit-message.txt",
+ help="set the name of the file where the suggested log message "
+ "is written to"),
+ Option("-M", "--record-only",
+ value=True,
+ default=False,
+ help="do not perform an actual merge of the changes, yet record "
+ "that a merge happened"),
+ OptionArg("-r", "--revision",
+ metavar="REVLIST",
+ default="",
+ help="specify a revision list, consisting of revision numbers "
+ 'and ranges separated by commas, e.g., "534,537-539,540"'),
+ OptionArg("-S", "--source", "--head",
+ default=None,
+ help="specify a merge source for this branch. It can be either "
+ "a working directory path, a full URL, or an unambiguous "
+ "substring of one of the locations for which merge tracking was "
+ "already initialized. Needed only to disambiguate in case of "
+ "multiple merge sources"),
+]
+
+command_table = {
+ "init": (action_init,
+ "init [OPTION...] [SOURCE]",
+ """Initialize merge tracking from SOURCE on the current working
+ directory.
+
+ If SOURCE is specified, all the revisions in SOURCE are marked as already
+ merged; if this is not correct, you can use --revision to specify the
+ exact list of already-merged revisions.
+
+ If SOURCE is omitted, then it is computed from the "svn cp" history of the
+ current working directory (searching back for the branch point); in this
+ case, %s assumes that no revision has been integrated yet since
+ the branch point (unless you teach it with --revision).""" % NAME,
+ [
+ "-f", "-r", # import common opts
+ OptionArg("-L", "--location-type",
+ dest="location-type",
+ default="path",
+ help="Use this type of location identifier in the new " +
+ "Subversion properties; 'uuid', 'url', or 'path' " +
+ "(default)"),
+ ]),
+
+ "avail": (action_avail,
+ "avail [OPTION...] [PATH]",
+ """Show unmerged revisions available for PATH as a revision list.
+ If --revision is given, the revisions shown will be limited to those
+ also specified in the option.
+
+ When svnmerge is used to bidirectionally merge changes between a
+ branch and its source, it is necessary to not merge the same changes
+ forth and back: e.g., if you committed a merge of a certain
+ revision of the branch into the source, you do not want that commit
+ to appear as available to merged into the branch (as the code
+ originated in the branch itself!). svnmerge will automatically
+ exclude these so-called "reflected" revisions.""",
+ [
+ Option("-A", "--all",
+ dest="avail-showwhat",
+ value=["blocked", "avail"],
+ default=["avail"],
+ help="show both available and blocked revisions (aka ignore "
+ "blocked revisions)"),
+ "-b",
+ Option("-B", "--blocked",
+ dest="avail-showwhat",
+ value=["blocked"],
+ help="show the blocked revision list (see '%s block')" % NAME),
+ Option("-d", "--diff",
+ dest="avail-display",
+ value="diffs",
+ default="revisions",
+ help="show corresponding diff instead of revision list"),
+ Option("--summarize",
+ dest="avail-display",
+ value="summarize",
+ help="show summarized diff instead of revision list"),
+ Option("-l", "--log",
+ dest="avail-display",
+ value="logs",
+ help="show corresponding log history instead of revision list"),
+ "-r",
+ "-S",
+ ]),
+
+ "integrated": (action_integrated,
+ "integrated [OPTION...] [PATH]",
+ """Show merged revisions available for PATH as a revision list.
+ If --revision is given, the revisions shown will be limited to
+ those also specified in the option.""",
+ [
+ Option("-d", "--diff",
+ dest="integrated-display",
+ value="diffs",
+ default="revisions",
+ help="show corresponding diff instead of revision list"),
+ Option("-l", "--log",
+ dest="integrated-display",
+ value="logs",
+ help="show corresponding log history instead of revision list"),
+ "-r",
+ "-S",
+ ]),
+
+ "rollback": (action_rollback,
+ "rollback [OPTION...] [PATH]",
+ """Rollback previously merged in revisions from PATH. The
+ --revision option is mandatory, and specifies which revisions
+ will be rolled back. Only the previously integrated merges
+ will be rolled back.
+
+ When manually rolling back changes, --record-only can be used to
+ instruct %s that a manual rollback of a certain revision
+ already happened, so that it can record it and offer that
+ revision for merge henceforth.""" % (NAME),
+ [
+ "-f", "-r", "-S", "-M", # import common opts
+ ]),
+
+ "merge": (action_merge,
+ "merge [OPTION...] [PATH]",
+ """Merge in revisions into PATH from its source. If --revision is omitted,
+ all the available revisions will be merged. In any case, already merged-in
+ revisions will NOT be merged again.
+
+ When svnmerge is used to bidirectionally merge changes between a
+ branch and its source, it is necessary to not merge the same changes
+ forth and back: e.g., if you committed a merge of a certain
+ revision of the branch into the source, you do not want that commit
+ to appear as available to merged into the branch (as the code
+ originated in the branch itself!). svnmerge will automatically
+ exclude these so-called "reflected" revisions.
+
+ When manually merging changes across branches, --record-only can
+ be used to instruct %s that a manual merge of a certain revision
+ already happened, so that it can record it and not offer that
+ revision for merge anymore. Conversely, when there are revisions
+ which should not be merged, use '%s block'.""" % (NAME, NAME),
+ [
+ "-b", "-f", "-r", "-S", "-M", # import common opts
+ ]),
+
+ "block": (action_block,
+ "block [OPTION...] [PATH]",
+ """Block revisions within PATH so that they disappear from the available
+ list. This is useful to hide revisions which will not be integrated.
+ If --revision is omitted, it defaults to all the available revisions.
+
+ Do not use this option to hide revisions that were manually merged
+ into the branch. Instead, use '%s merge --record-only', which
+ records that a merge happened (as opposed to a merge which should
+ not happen).""" % NAME,
+ [
+ "-f", "-r", "-S", # import common opts
+ ]),
+
+ "unblock": (action_unblock,
+ "unblock [OPTION...] [PATH]",
+ """Revert the effect of '%s block'. If --revision is omitted, all the
+ blocked revisions are unblocked""" % NAME,
+ [
+ "-f", "-r", "-S", # import common opts
+ ]),
+
+ "uninit": (action_uninit,
+ "uninit [OPTION...] [PATH]",
+ """Remove merge tracking information from PATH. It cleans any kind of merge
+ tracking information (including the list of blocked revisions). If there
+ are multiple sources, use --source to indicate which source you want to
+ forget about.""",
+ [
+ "-f", "-S", # import common opts
+ ]),
+}
+
+
+def main(args):
+ global opts
+
+ # Initialize default options
+ opts = default_opts.copy()
+ logs.clear()
+
+ optsparser = CommandOpts(global_opts, common_opts, command_table,
+ version="%%prog r%s\n modified: %s\n\n"
+ "Copyright (C) 2004,2005 Awarix Inc.\n"
+ "Copyright (C) 2005, Giovanni Bajo"
+ % (__revision__, __date__))
+
+ cmd, args, state = optsparser.parse(args)
+ opts.update(state)
+
+ source = opts.get("source", None)
+ branch_dir = "."
+
+ if str(cmd) == "init":
+ if len(args) == 1:
+ source = args[0]
+ elif len(args) > 1:
+ optsparser.error("wrong number of parameters", cmd)
+ elif str(cmd) in command_table.keys():
+ if len(args) == 1:
+ branch_dir = args[0]
+ elif len(args) > 1:
+ optsparser.error("wrong number of parameters", cmd)
+ else:
+ assert False, "command not handled: %s" % cmd
+
+ # Validate branch_dir
+ if not is_wc(branch_dir):
+ if str(cmd) == "avail":
+ info = None
+ # it should be noted here that svn info does not error exit
+ # if an invalid target is specified to it (as is
+ # intuitive). so the try, except code is not absolutely
+ # necessary. but, I retain it to indicate the intuitive
+ # handling.
+ try:
+ info = get_svninfo(branch_dir)
+ except LaunchError:
+ pass
+ # test that we definitely targeted a subversion directory,
+ # mirroring the purpose of the earlier is_wc() call
+ if info is None or not info.has_key("Node Kind") or info["Node Kind"] != "directory":
+ error('"%s" is neither a valid URL, nor a working directory' % branch_dir)
+ else:
+ error('"%s" is not a subversion working directory' % branch_dir)
+
+ # give out some hints as to potential pathids
+ PathIdentifier.hint(branch_dir)
+ if source: PathIdentifier.hint(source)
+
+ # Extract the integration info for the branch_dir
+ branch_props = get_merge_props(branch_dir)
+
+ # Calculate source_url and source_path
+ report("calculate source path for the branch")
+ if not source:
+ if str(cmd) == "init":
+ cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(branch_dir)
+ if not cf_source:
+ error('no copyfrom info available. '
+ 'Explicit source argument (-S/--source) required.')
+ opts["source-url"] = get_repo_root(branch_dir) + cf_source
+ opts["source-pathid"] = PathIdentifier.from_target(opts["source-url"])
+
+ if not opts["revision"]:
+ opts["revision"] = "1-" + cf_rev
+ else:
+ opts["source-pathid"] = get_default_source(branch_dir, branch_props)
+ opts["source-url"] = opts["source-pathid"].get_url()
+
+ assert is_pathid(opts["source-pathid"])
+ assert is_url(opts["source-url"])
+ else:
+ # The source was given as a command line argument and is stored in
+ # SOURCE. Ensure that the specified source does not end in a /,
+ # otherwise it's easy to have the same source path listed more
+ # than once in the integrated version properties, with and without
+ # trailing /'s.
+ source = rstrip(source, "/")
+ if not is_wc(source) and not is_url(source):
+ # Check if it is a substring of a pathid recorded
+ # within the branch properties.
+ found = []
+ for pathid in branch_props.keys():
+ if pathid.match_substring(source):
+ found.append(pathid)
+ if len(found) == 1:
+ # (assumes pathid is a repository-relative-path)
+ source_pathid = found[0]
+ source = source_pathid.get_url()
+ else:
+ error('"%s" is neither a valid URL, nor an unambiguous '
+ 'substring of a repository path, nor a working directory'
+ % source)
+ else:
+ source_pathid = PathIdentifier.from_target(source)
+
+ source_pathid = PathIdentifier.from_target(source)
+ if str(cmd) == "init" and \
+ source_pathid == PathIdentifier.from_target("."):
+ error("cannot init integration source path '%s'\n"
+ "Its repository-relative path must differ from the "
+ "repository-relative path of the current directory."
+ % source_pathid)
+ opts["source-pathid"] = source_pathid
+ opts["source-url"] = target_to_url(source)
+
+ # Sanity check source_url
+ assert is_url(opts["source-url"])
+ # SVN does not support non-normalized URL (and we should not
+ # have created them)
+ assert opts["source-url"].find("/..") < 0
+
+ report('source is "%s"' % opts["source-url"])
+
+ # Get previously merged revisions (except when command is init)
+ if str(cmd) != "init":
+ opts["merged-revs"] = merge_props_to_revision_set(branch_props,
+ opts["source-pathid"])
+
+ # Perform the action
+ cmd(branch_dir, branch_props)
+
+
+if __name__ == "__main__":
+ try:
+ main(sys.argv[1:])
+ except LaunchError, (ret, cmd, out):
+ err_msg = "command execution failed (exit code: %d)\n" % ret
+ err_msg += cmd + "\n"
+ err_msg += "".join(out)
+ error(err_msg)
+ except KeyboardInterrupt:
+ # Avoid traceback on CTRL+C
+ print "aborted by user"
+ sys.exit(1)
diff --git a/testing/subversion/svnserve b/testing/subversion/svnserve
new file mode 100755
index 000000000..670fee742
--- /dev/null
+++ b/testing/subversion/svnserve
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/svnserve
+
+PID=`pidof -o %PPID /usr/bin/svnserve`
+case "$1" in
+ start)
+ stat_busy "Starting svnserve"
+ if [ -z "$PID" ]; then
+ if [ -n "$SVNSERVE_USER" ]; then
+ su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" &
+ else
+ /usr/bin/svnserve -d $SVNSERVE_ARGS &
+ fi
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon svnserve
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping svnserve"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon svnserve
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/testing/subversion/svnserve.conf b/testing/subversion/svnserve.conf
new file mode 100644
index 000000000..37fb7ea10
--- /dev/null
+++ b/testing/subversion/svnserve.conf
@@ -0,0 +1,7 @@
+#
+# Parameters to be passed to svnserve
+#
+#SVNSERVE_ARGS="-r /path/to/some/repos"
+SVNSERVE_ARGS=""
+
+#SVNSERVE_USER="svn"
diff --git a/testing/syslinux/PKGBUILD b/testing/syslinux/PKGBUILD
new file mode 100644
index 000000000..277bf3bf6
--- /dev/null
+++ b/testing/syslinux/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 144912 2011-12-10 00:40:44Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=syslinux
+pkgver=4.05
+pkgrel=1
+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)
+md5sums=('82299242418385da1274c9479a778cb2'
+ '1528c376e43f0eaccaa80d8ad1bc13b4'
+ '4dc27d8ab3802f8e50f3dda28168ce6d'
+ 'b5b4953c0a5a01cd16441402f6321765')
+
+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 mk/syslinux.mk
+ 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/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch b/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch
new file mode 100644
index 000000000..2b86ab828
--- /dev/null
+++ b/testing/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
+@@ -54,7 +54,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 \
+- diag libinstaller dos win32 win64 dosutil
++ libinstaller
+ ITARGET =
+ IOBJECTS = $(ITARGET) \
+ utils/gethostip utils/isohybrid utils/mkdiskimage \
diff --git a/testing/syslinux/syslinux-install_update b/testing/syslinux/syslinux-install_update
new file mode 100644
index 000000000..f7cd123e1
--- /dev/null
+++ b/testing/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/testing/syslinux/syslinux.cfg b/testing/syslinux/syslinux.cfg
new file mode 100644
index 000000000..02127d21d
--- /dev/null
+++ b/testing/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 ../vmlinuz-linux
+ APPEND root=/dev/sda3 ro
+ INITRD ../initramfs-linux.img
+
+LABEL archfallback
+ MENU LABEL Arch Linux Fallback
+ LINUX ../vmlinuz-linux
+ APPEND root=/dev/sda3 ro
+ INITRD ../initramfs-linux-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/testing/syslinux/syslinux.install b/testing/syslinux/syslinux.install
new file mode 100644
index 000000000..0dc0ece36
--- /dev/null
+++ b/testing/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/testing/texinfo/PKGBUILD b/testing/texinfo/PKGBUILD
new file mode 100644
index 000000000..cc20f22b7
--- /dev/null
+++ b/testing/texinfo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 144959 2011-12-12 08:29:38Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=texinfo
+pkgver=4.13a
+pkgrel=7
+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{,.sig}
+ texinfo-4.13a-data_types.patch)
+md5sums=('71ba711519209b5fb583fed2b3d86fcb'
+ 'db2ca82c831684cd7cef181234017c46'
+ 'd8574782ff7def1e2dc5c291dbeaec18')
+
+build() {
+ cd ${srcdir}/${pkgname}-4.13
+ patch -Np1 -i $srcdir/texinfo-4.13a-data_types.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-4.13
+ make DESTDIR=${pkgdir} install
+
+ # fix this here as it prevents make from trying to rebuild manual pages
+ sed -i 's#A-z#A-Za-z#' ${pkgdir}/usr/bin/texi2dvi
+}
diff --git a/testing/texinfo/texinfo-4.13a-data_types.patch b/testing/texinfo/texinfo-4.13a-data_types.patch
new file mode 100644
index 000000000..2a87c2146
--- /dev/null
+++ b/testing/texinfo/texinfo-4.13a-data_types.patch
@@ -0,0 +1,32 @@
+diff -up texinfo-4.13/info/window.c_old texinfo-4.13/info/window.c
+--- texinfo-4.13/info/window.c_old 2009-08-04 13:46:15.000000000 +0200
++++ texinfo-4.13/info/window.c 2009-08-04 13:47:29.000000000 +0200
+@@ -1581,7 +1581,7 @@ process_node_text (WINDOW *win, char *st
+ const char *carried_over_ptr;
+ size_t carried_over_len, carried_over_count;
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
++ size_t cur_len = mb_len (mbi_cur (iter));
+ int replen;
+ int delim = 0;
+ int rc;
+@@ -1754,7 +1754,7 @@ clean_manpage (char *manpage)
+ mbi_advance (iter))
+ {
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
++ size_t cur_len = mb_len (mbi_cur (iter));
+
+ if (cur_len == 1)
+ {
+@@ -1852,8 +1852,8 @@ window_scan_line (WINDOW *win, int line,
+ mbi_advance (iter))
+ {
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
+- int replen;
++ size_t cur_len = mb_len (mbi_cur (iter));
++ size_t replen;
+
+ if (cur_ptr >= endp)
+ break;
diff --git a/testing/texinfo/texinfo.install b/testing/texinfo/texinfo.install
new file mode 100644
index 000000000..f1554e4f4
--- /dev/null
+++ b/testing/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/~fauno/distccd-zeroconf/PKGBUILD b/~fauno/distccd-zeroconf/PKGBUILD
index 2faf6acb3..1690daad9 100644
--- a/~fauno/distccd-zeroconf/PKGBUILD
+++ b/~fauno/distccd-zeroconf/PKGBUILD
@@ -7,7 +7,7 @@ _pkgname=distcc
pkgver=3.1
pkgrel=1
pkgdesc="A distributed C, C++, Obj C compiler with zeroconf support"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://code.google.com/p/distcc/"
license=('GPL')
depends=('gcc' 'popt' 'avahi')
diff --git a/~fauno/minidjvu/PKGBUILD b/~fauno/minidjvu/PKGBUILD
new file mode 100644
index 000000000..42950e5d2
--- /dev/null
+++ b/~fauno/minidjvu/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Orivej Desh <masecretaire@gmx.fr>
+# Maintainer: Orivej Desh <masecretaire@gmx.fr>
+pkgname=minidjvu
+pkgver=0.8
+pkgrel=2
+pkgdesc="Highly efficient DjVu encoder for black-and-white images"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://minidjvu.sourceforge.net/"
+license=('GPL')
+depends=("gcc-libs" "libtiff")
+options=("!libtool")
+source=("http://downloads.sourceforge.net/project/minidjvu/minidjvu/$pkgver/minidjvu-$pkgver.tar.gz")
+md5sums=('b354eb74d83c6e2d91aab2a6c2879ba7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --libdir=/usr/lib
+ sed -i -e 's#/usr/bin/gzip#/bin/gzip#' Makefile
+ sed -i -e 's#-9 \$(MANDIR)#-9 $(DESTDIR)$(MANDIR)#' Makefile
+ make
+ mkdir -p "$pkgdir"/usr/{bin,lib,share/man/man1}
+ make DESTDIR="$pkgdir/" install
+}
+
diff --git a/~lukeshu/android-udev/51-android.rules b/~lukeshu/android-udev/51-android.rules
index 51f80cf54..37ea75649 100644
--- a/~lukeshu/android-udev/51-android.rules
+++ b/~lukeshu/android-udev/51-android.rules
@@ -19,6 +19,10 @@ SUBSYSTEM=="usb", ATTR{idVendor}=="0e79", ATTR{idProduct}=="1411", SYMLINK+="and
# Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666", GROUP="adbusers"
+# Blade
+SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1354", SYMLINK+="android_adb"
+SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", SYMLINK+="android_fastboot"
+
# Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666", GROUP="adbusers"
@@ -229,4 +233,4 @@ SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="adbusers"
# Blade
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1353",
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1351", SYMLINK+="android_adb"
-
+SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1354", SYMLINK+="android_fastboot"
diff --git a/~lukeshu/android-udev/PKGBUILD b/~lukeshu/android-udev/PKGBUILD
index 6900b46da..f495690bb 100644
--- a/~lukeshu/android-udev/PKGBUILD
+++ b/~lukeshu/android-udev/PKGBUILD
@@ -10,6 +10,7 @@ arch=('any')
url="http://developer.android.com/guide/developing/device.html"
license=('unknown')
source=('51-android.rules')
+md5sums=('818395c180666e4e9a4a5f1d18434674')
depends=('udev' 'libmtp')
conflicts=('udev-android-rules')
install='android-udev.install'
@@ -19,4 +20,3 @@ package() {
install -m644 "$srcdir/51-android.rules" "$pkgdir/etc/udev/rules.d/51-android.rules"
}
-md5sums=('909eb7629683efae838c6e9d65966b3b')
diff --git a/~lukeshu/openni-unstable/PKGBUILD b/~lukeshu/openni-unstable/PKGBUILD
index 19d1575a1..ad3cf0096 100644
--- a/~lukeshu/openni-unstable/PKGBUILD
+++ b/~lukeshu/openni-unstable/PKGBUILD
@@ -12,7 +12,7 @@ pkgname=(
openni$_suf-core
openni$_suf-core-samples
openni$_suf-core-samples-source
-
+
openni$_suf-mono
openni$_suf-mono-samples
openni$_suf-mono-samples-source
@@ -85,7 +85,7 @@ abs_mono: $(ALL_MONO_PROJS)
abs_mono_samples: $(MONO_SAMPLES) $(MONO_FORMS_SAMPLES)
' >> "Platform/${_os}/Build/Makefile"
-
+
# BUILD
cd "Platform/${_os}/Build"
make -j1 \
@@ -164,7 +164,7 @@ package_openni-unstable-java() {
install -d "${pkgdir}/usr/lib"
install -m755 libOpenNI.jni.so "${pkgdir}/usr/lib"
-
+
install -d "${pkgdir}/usr/share/openni/java"
install -m755 org.OpenNI.jar "${pkgdir}/usr/share/openni/java"
}
@@ -177,7 +177,7 @@ package_openni-unstable-mono() {
conflicts=('openni-mono')
cd "${srcdir}/${_gitname}-build/Platform/${_os}/Bin/${_arch}-Release"
-
+
install -d "${pkgdir}/usr/share/openni/mono"
install -m755 OpenNI.net.dll "${pkgdir}/usr/share/openni/mono"
}
diff --git a/~lukeshu/openni-unstable/openni.install b/~lukeshu/openni-unstable/openni.install
new file mode 100644
index 000000000..8470f4512
--- /dev/null
+++ b/~lukeshu/openni-unstable/openni.install
@@ -0,0 +1,11 @@
+post_install() {
+ MODULES="libnimMockNodes.so libnimCodecs.so libnimRecorder.so"
+ for module in $MODULES
+ do
+ /usr/bin/niReg /usr/lib/$module
+ done
+}
+
+pre_remove() {
+ rm /var/lib/ni/modules.xml
+}
diff --git a/~mtjm/zbar/PKGBUILD b/~mtjm/zbar/PKGBUILD
index 64b47b5dc..7e21561e6 100644
--- a/~mtjm/zbar/PKGBUILD
+++ b/~mtjm/zbar/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=zbar
pkgver=0.10
pkgrel=1
pkgdesc="A library for reading bar codes from various sources"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://zbar.sourceforge.net/"
license=('LGPL')
depends=('glibc')
diff --git a/~xihh/blast/PKGBUILD b/~xihh/blast/PKGBUILD
new file mode 100644
index 000000000..22052163f
--- /dev/null
+++ b/~xihh/blast/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Joshua Haase <hahj87@gmail.com>
+
+pkgname='blast'
+pkgver=2.2.25
+pkgrel=1
+pkgdesc="Basic Local Alignment Search Tool: BLAST finds regions of similarity between biological sequences"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastHome"
+license=('custom:Public_Domain')
+makedepends=()
+depends=()
+optdepends=()
+source=("ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/$pkgver/ncbi-blast-$pkgver+-src.tar.gz")
+md5sums=('01256b808e3af49a5087945b6a8c8293')
+
+build() {
+ cd "$srcdir/ncbi-blast-${pkgver}+-src/c++"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/ncbi-blast-${pkgver}+-src/c++"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/ncbi-blast-${pkgver}+-src/c++"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/~xihh/libtre/PKGBUILD b/~xihh/libtre/PKGBUILD
new file mode 100644
index 000000000..ad111c45d
--- /dev/null
+++ b/~xihh/libtre/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: pkgbuild-mode.el,v 1.23 2007/10/20 16:02:14 juergen Exp $
+# Maintainer: Joshua Ismael Haase Hernandez <joshpar@stravy>
+pkgbase='libtre'
+pkgname=('libtre' 'python2-tre')
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="The free and portable approximate regex matching library."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://laurikari.net/tre/download/"
+license=('custom:BSD2')
+groups=()
+depends=()
+makedepends=('python' 'python2')
+checkdepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+changelog=
+source=("http://laurikari.net/tre/tre-${pkgver}.tar.bz2")
+md5sums=('b4d3232593dadf6746f4727bdda20b41')
+noextract=()
+
+build() {
+ cd "$srcdir/tre-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/tre-$pkgver"
+ make -k check || true # some errors expected
+}
+
+package_libtre() {
+ cd "$srcdir/tre-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+package_python2-tre() {
+ depends=('libtre')
+ cd "$srcdir/tre-$pkgver/python"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
diff --git a/~xihh/muscle/LICENSE b/~xihh/muscle/LICENSE
new file mode 100644
index 000000000..e48f525fe
--- /dev/null
+++ b/~xihh/muscle/LICENSE
@@ -0,0 +1,10 @@
+MUSCLE is public domain software
+
+The MUSCLE software, including object and source code and
+documentation, is hereby donated to the public domain.
+
+Disclaimer of warranty
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/~xihh/muscle/PKGBUILD b/~xihh/muscle/PKGBUILD
new file mode 100644
index 000000000..101e2e312
--- /dev/null
+++ b/~xihh/muscle/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: pkgbuild-mode.el,v 1.23 2007/10/20 16:02:14 juergen Exp $
+# Maintainer: Joshua Ismael Haase Hernandez <joshpar@stravy>
+pkgname=muscle
+pkgver=3.8.31
+pkgrel=1
+epoch=
+pkgdesc="multiple sequence comparison by log-expectation"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.drive5.com/muscle/"
+license=('custom:PublicDomain')
+groups=()
+depends=()
+makedepends=('gcc-libs')
+checkdepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+changelog=
+source=(http://www.drive5.com/muscle/downloads${pkgver}/muscle${pkgver}_src.tar.gz LICENSE)
+md5sums=('f767f00fd15f0c5db944d41936779e10'
+ '57cfb6975987af93c89977f084d53b72')
+noextract=()
+
+build() {
+ cd "$srcdir/$pkgname$pkgver/src"
+ sed -i 's/ -msse2 -mfpmath=sse//' mk
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname$pkgver/src"
+ install -D -m755 muscle "$pkgdir/usr/bin/muscle"
+ install -D -m644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/~xihh/ugene/PKGBUILD b/~xihh/ugene/PKGBUILD
new file mode 100644
index 000000000..38cd578f6
--- /dev/null
+++ b/~xihh/ugene/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: bmpvieira <mail AT bmpvieira DOT com>
+pkgname=ugene
+pkgver=1.9.3
+pkgrel=1
+pkgdesc="A free cross-platform genome analysis suite."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://ugene.unipro.ru/"
+license=('GPL')
+depends=('qt' 'mesa')
+source=(${url}downloads/$pkgname-$pkgver.tar.gz)
+md5sums=('6ba5ff1bed47d928feb04ec15565c2b6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ case "$CARCH" in
+ "i686")
+ qmake PREFIX=/usr -r ;;
+ "x86_64"|"mips64el")
+ qmake CONFIG+=x64 PREFIX=/usr -r ;;
+ esac
+ make release || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALL_ROOT="$pkgdir" install || return 1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/~xihh/viennarna/PKGBUILD b/~xihh/viennarna/PKGBUILD
new file mode 100644
index 000000000..37de53d11
--- /dev/null
+++ b/~xihh/viennarna/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: pkgbuild-mode.el,v 1.23 2007/10/20 16:02:14 juergen Exp $
+# Maintainer: Joshua Ismael Haase Hernandez <joshpar@stravy>
+pkgbase='viennarna'
+pkgname=('viennarna' 'python2-viennarna')
+pkgver=1.8.5
+pkgrel=1
+pkgdesc="RNA Secondary Structure Prediction and Comparison"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.tbi.univie.ac.at/RNA/"
+makedepends=('python2' 'swig')
+license=('Custom:BSD3')
+source=("setup.py"
+ "http://www.tbi.univie.ac.at/RNA/ViennaRNA-${pkgver}.tar.gz")
+md5sums=('d006ef9bb878aea6c184afa89986788e'
+ 'cd70d63cc1be928a5f0973bd6c211e96')
+
+build() {
+ cd "$srcdir/ViennaRNA-$pkgver"
+ ./configure --prefix=/usr --without-forester
+ make
+}
+
+package_viennarna() {
+ cd "$srcdir/ViennaRNA-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+package_python2-viennarna() {
+ depends=('python2')
+ options=(!emptydirs)
+
+ mkdir -p "$srcdir/ViennaRNA-$pkgver/Python"
+ cp -r $srcdir/ViennaRNA-$pkgver/Perl/*.i "$srcdir/setup.py" \
+ "$srcdir/ViennaRNA-$pkgver/Python"
+
+ cd "$srcdir/ViennaRNA-$pkgver/Python"
+
+ swig -python RNA.i
+
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+
+}
diff --git a/~xihh/viennarna/setup.py b/~xihh/viennarna/setup.py
new file mode 100644
index 000000000..00ac0a28d
--- /dev/null
+++ b/~xihh/viennarna/setup.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+from distutils.core import setup, Extension
+import os
+import sys
+
+old_filename = os.path.join(os.path.curdir, "RNA.py")
+new_filename = os.path.join(os.path.curdir, "__init__.py")
+if os.path.exists(old_filename):
+ os.rename(old_filename, new_filename)
+
+extra_link_args = []
+if sys.platform != 'darwin':
+ extra_link_args.append('-s')
+
+extension = Extension("_RNA",
+ ["RNA_wrap.c"],
+ libraries=['RNA'],
+ library_dirs=['lib'],
+ extra_link_args=extra_link_args
+ )
+
+setup(name="RNA",
+ version="1.8.5",
+ description="Vienna RNA",
+ author="Ivo Hofacker, Institute for Theoretical Chemistry, University of Vienna",
+ url="http://www.tbi.univie.ac.at/RNA/",
+ package_dir = {'vienna': os.path.curdir},
+ packages = ['vienna'],
+ ext_modules=[extension],
+ )